Imported Upstream version 0.9.1
Francesco Paolo Lovergine
12 years ago
0 | * Alessandro Furieri <a.furieri@lqt.it> | |
1 | - a lot of improvements to code portability | |
2 | - porting to Windows (MSVC, MinGW) | |
3 | - bug fixes: name clash with zlib & libpng | |
4 | - fluff removal from the code |
0 | GNU GENERAL PUBLIC LICENSE | |
1 | Version 2, June 1991 | |
2 | ||
3 | Copyright (C) 1989, 1991 Free Software Foundation, Inc. | |
4 | 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA | |
5 | ||
6 | Everyone is permitted to copy and distribute verbatim copies | |
7 | of this license document, but changing it is not allowed. | |
8 | ||
9 | Preamble | |
10 | ======== | |
11 | ||
12 | The licenses for most software are designed to take away your freedom | |
13 | to share and change it. By contrast, the GNU General Public License is | |
14 | intended to guarantee your freedom to share and change free | |
15 | software--to make sure the software is free for all its users. This | |
16 | General Public License applies to most of the Free Software | |
17 | Foundation's software and to any other program whose authors commit to | |
18 | using it. (Some other Free Software Foundation software is covered by | |
19 | the GNU Library General Public License instead.) You can apply it to | |
0 | GNU GENERAL PUBLIC LICENSE | |
1 | Version 3, 29 June 2007 | |
2 | ||
3 | Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> | |
4 | Everyone is permitted to copy and distribute verbatim copies | |
5 | of this license document, but changing it is not allowed. | |
6 | ||
7 | Preamble | |
8 | ||
9 | The GNU General Public License is a free, copyleft license for | |
10 | software and other kinds of works. | |
11 | ||
12 | The licenses for most software and other practical works are designed | |
13 | to take away your freedom to share and change the works. By contrast, | |
14 | the GNU General Public License is intended to guarantee your freedom to | |
15 | share and change all versions of a program--to make sure it remains free | |
16 | software for all its users. We, the Free Software Foundation, use the | |
17 | GNU General Public License for most of our software; it applies also to | |
18 | any other work released this way by its authors. You can apply it to | |
20 | 19 | your programs, too. |
21 | 20 | |
22 | When we speak of free software, we are referring to freedom, not price. | |
23 | Our General Public Licenses are designed to make sure that you have | |
24 | the freedom to distribute copies of free software (and charge for this | |
25 | service if you wish), that you receive source code or can get it if you | |
21 | When we speak of free software, we are referring to freedom, not | |
22 | price. Our General Public Licenses are designed to make sure that you | |
23 | have the freedom to distribute copies of free software (and charge for | |
24 | them if you wish), that you receive source code or can get it if you | |
26 | 25 | want it, that you can change the software or use pieces of it in new |
27 | free programs; and that you know you can do these things. | |
28 | ||
29 | To protect your rights, we need to make restrictions that forbid anyone | |
30 | to deny you these rights or to ask you to surrender the rights. These | |
31 | restrictions translate to certain responsibilities for you if you | |
32 | distribute copies of the software, or if you modify it. | |
33 | ||
34 | For example, if you distribute copies of such a program, whether gratis | |
35 | or for a fee, you must give the recipients all the rights that you | |
36 | have. You must make sure that they, too, receive or can get the source | |
37 | code. And you must show them these terms so they know their rights. | |
38 | ||
39 | We protect your rights with two steps: (1) copyright the software, and | |
40 | (2) offer you this license which gives you legal permission to copy, | |
41 | distribute and/or modify the software. | |
42 | ||
43 | Also, for each author's protection and ours, we want to make certain | |
44 | that everyone understands that there is no warranty for this free | |
45 | software. If the software is modified by someone else and passed on, we | |
46 | want its recipients to know that what they have is not the original, so | |
47 | that any problems introduced by others will not reflect on the original | |
48 | authors' reputations. | |
49 | ||
50 | Finally, any free program is threatened constantly by software patents. | |
51 | We wish to avoid the danger that redistributors of a free program will | |
52 | individually obtain patent licenses, in effect making the program | |
53 | proprietary. To prevent this, we have made it clear that any patent | |
54 | must be licensed for everyone's free use or not licensed at all. | |
55 | ||
56 | The precise terms and conditions for copying, distribution and | |
26 | free programs, and that you know you can do these things. | |
27 | ||
28 | To protect your rights, we need to prevent others from denying you | |
29 | these rights or asking you to surrender the rights. Therefore, you have | |
30 | certain responsibilities if you distribute copies of the software, or if | |
31 | you modify it: responsibilities to respect the freedom of others. | |
32 | ||
33 | For example, if you distribute copies of such a program, whether | |
34 | gratis or for a fee, you must pass on to the recipients the same | |
35 | freedoms that you received. You must make sure that they, too, receive | |
36 | or can get the source code. And you must show them these terms so they | |
37 | know their rights. | |
38 | ||
39 | Developers that use the GNU GPL protect your rights with two steps: | |
40 | (1) assert copyright on the software, and (2) offer you this License | |
41 | giving you legal permission to copy, distribute and/or modify it. | |
42 | ||
43 | For the developers' and authors' protection, the GPL clearly explains | |
44 | that there is no warranty for this free software. For both users' and | |
45 | authors' sake, the GPL requires that modified versions be marked as | |
46 | changed, so that their problems will not be attributed erroneously to | |
47 | authors of previous versions. | |
48 | ||
49 | Some devices are designed to deny users access to install or run | |
50 | modified versions of the software inside them, although the manufacturer | |
51 | can do so. This is fundamentally incompatible with the aim of | |
52 | protecting users' freedom to change the software. The systematic | |
53 | pattern of such abuse occurs in the area of products for individuals to | |
54 | use, which is precisely where it is most unacceptable. Therefore, we | |
55 | have designed this version of the GPL to prohibit the practice for those | |
56 | products. If such problems arise substantially in other domains, we | |
57 | stand ready to extend this provision to those domains in future versions | |
58 | of the GPL, as needed to protect the freedom of users. | |
59 | ||
60 | Finally, every program is threatened constantly by software patents. | |
61 | States should not allow patents to restrict development and use of | |
62 | software on general-purpose computers, but in those that do, we wish to | |
63 | avoid the special danger that patents applied to a free program could | |
64 | make it effectively proprietary. To prevent this, the GPL assures that | |
65 | patents cannot be used to render the program non-free. | |
66 | ||
67 | The precise terms and conditions for copying, distribution and | |
57 | 68 | modification follow. |
58 | 69 | |
59 | GNU GENERAL PUBLIC LICENSE | |
60 | TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | |
61 | 0. This License applies to any program or other work which contains a | |
62 | notice placed by the copyright holder saying it may be distributed | |
63 | under the terms of this General Public License. The "Program", | |
64 | below, refers to any such program or work, and a "work based on | |
65 | the Program" means either the Program or any derivative work under | |
66 | copyright law: that is to say, a work containing the Program or a | |
67 | portion of it, either verbatim or with modifications and/or | |
68 | translated into another language. (Hereinafter, translation is | |
69 | included without limitation in the term "modification".) Each | |
70 | licensee is addressed as "you". | |
71 | ||
72 | Activities other than copying, distribution and modification are | |
73 | not covered by this License; they are outside its scope. The act | |
74 | of running the Program is not restricted, and the output from the | |
75 | Program is covered only if its contents constitute a work based on | |
76 | the Program (independent of having been made by running the | |
77 | Program). Whether that is true depends on what the Program does. | |
78 | ||
79 | 1. You may copy and distribute verbatim copies of the Program's | |
80 | source code as you receive it, in any medium, provided that you | |
81 | conspicuously and appropriately publish on each copy an appropriate | |
82 | copyright notice and disclaimer of warranty; keep intact all the | |
83 | notices that refer to this License and to the absence of any | |
84 | warranty; and give any other recipients of the Program a copy of | |
85 | this License along with the Program. | |
86 | ||
87 | You may charge a fee for the physical act of transferring a copy, | |
88 | and you may at your option offer warranty protection in exchange | |
89 | for a fee. | |
90 | ||
91 | 2. You may modify your copy or copies of the Program or any portion | |
92 | of it, thus forming a work based on the Program, and copy and | |
93 | distribute such modifications or work under the terms of Section 1 | |
94 | above, provided that you also meet all of these conditions: | |
95 | ||
96 | a. You must cause the modified files to carry prominent notices | |
97 | stating that you changed the files and the date of any change. | |
98 | ||
99 | b. You must cause any work that you distribute or publish, that | |
100 | in whole or in part contains or is derived from the Program | |
101 | or any part thereof, to be licensed as a whole at no charge | |
102 | to all third parties under the terms of this License. | |
103 | ||
104 | c. If the modified program normally reads commands interactively | |
105 | when run, you must cause it, when started running for such | |
106 | interactive use in the most ordinary way, to print or display | |
107 | an announcement including an appropriate copyright notice and | |
108 | a notice that there is no warranty (or else, saying that you | |
109 | provide a warranty) and that users may redistribute the | |
110 | program under these conditions, and telling the user how to | |
111 | view a copy of this License. (Exception: if the Program | |
112 | itself is interactive but does not normally print such an | |
113 | announcement, your work based on the Program is not required | |
114 | to print an announcement.) | |
115 | ||
116 | These requirements apply to the modified work as a whole. If | |
117 | identifiable sections of that work are not derived from the | |
118 | Program, and can be reasonably considered independent and separate | |
119 | works in themselves, then this License, and its terms, do not | |
120 | apply to those sections when you distribute them as separate | |
121 | works. But when you distribute the same sections as part of a | |
122 | whole which is a work based on the Program, the distribution of | |
123 | the whole must be on the terms of this License, whose permissions | |
124 | for other licensees extend to the entire whole, and thus to each | |
125 | and every part regardless of who wrote it. | |
126 | ||
127 | Thus, it is not the intent of this section to claim rights or | |
128 | contest your rights to work written entirely by you; rather, the | |
129 | intent is to exercise the right to control the distribution of | |
130 | derivative or collective works based on the Program. | |
131 | ||
132 | In addition, mere aggregation of another work not based on the | |
133 | Program with the Program (or with a work based on the Program) on | |
134 | a volume of a storage or distribution medium does not bring the | |
135 | other work under the scope of this License. | |
136 | ||
137 | 3. You may copy and distribute the Program (or a work based on it, | |
138 | under Section 2) in object code or executable form under the terms | |
139 | of Sections 1 and 2 above provided that you also do one of the | |
140 | following: | |
141 | ||
142 | a. Accompany it with the complete corresponding machine-readable | |
143 | source code, which must be distributed under the terms of | |
144 | Sections 1 and 2 above on a medium customarily used for | |
145 | software interchange; or, | |
146 | ||
147 | b. Accompany it with a written offer, valid for at least three | |
148 | years, to give any third-party, for a charge no more than your | |
149 | cost of physically performing source distribution, a complete | |
150 | machine-readable copy of the corresponding source code, to be | |
151 | distributed under the terms of Sections 1 and 2 above on a | |
152 | medium customarily used for software interchange; or, | |
153 | ||
154 | c. Accompany it with the information you received as to the offer | |
155 | to distribute corresponding source code. (This alternative is | |
156 | allowed only for noncommercial distribution and only if you | |
157 | received the program in object code or executable form with | |
158 | such an offer, in accord with Subsection b above.) | |
159 | ||
160 | The source code for a work means the preferred form of the work for | |
161 | making modifications to it. For an executable work, complete | |
162 | source code means all the source code for all modules it contains, | |
163 | plus any associated interface definition files, plus the scripts | |
164 | used to control compilation and installation of the executable. | |
165 | However, as a special exception, the source code distributed need | |
166 | not include anything that is normally distributed (in either | |
167 | source or binary form) with the major components (compiler, | |
168 | kernel, and so on) of the operating system on which the executable | |
169 | runs, unless that component itself accompanies the executable. | |
170 | ||
171 | If distribution of executable or object code is made by offering | |
172 | access to copy from a designated place, then offering equivalent | |
173 | access to copy the source code from the same place counts as | |
174 | distribution of the source code, even though third parties are not | |
175 | compelled to copy the source along with the object code. | |
176 | ||
177 | 4. You may not copy, modify, sublicense, or distribute the Program | |
178 | except as expressly provided under this License. Any attempt | |
179 | otherwise to copy, modify, sublicense or distribute the Program is | |
180 | void, and will automatically terminate your rights under this | |
181 | License. However, parties who have received copies, or rights, | |
182 | from you under this License will not have their licenses | |
183 | terminated so long as such parties remain in full compliance. | |
184 | ||
185 | 5. You are not required to accept this License, since you have not | |
186 | signed it. However, nothing else grants you permission to modify | |
187 | or distribute the Program or its derivative works. These actions | |
188 | are prohibited by law if you do not accept this License. | |
189 | Therefore, by modifying or distributing the Program (or any work | |
190 | based on the Program), you indicate your acceptance of this | |
191 | License to do so, and all its terms and conditions for copying, | |
192 | distributing or modifying the Program or works based on it. | |
193 | ||
194 | 6. Each time you redistribute the Program (or any work based on the | |
195 | Program), the recipient automatically receives a license from the | |
196 | original licensor to copy, distribute or modify the Program | |
197 | subject to these terms and conditions. You may not impose any | |
198 | further restrictions on the recipients' exercise of the rights | |
199 | granted herein. You are not responsible for enforcing compliance | |
200 | by third parties to this License. | |
201 | ||
202 | 7. If, as a consequence of a court judgment or allegation of patent | |
203 | infringement or for any other reason (not limited to patent | |
204 | issues), conditions are imposed on you (whether by court order, | |
205 | agreement or otherwise) that contradict the conditions of this | |
206 | License, they do not excuse you from the conditions of this | |
207 | License. If you cannot distribute so as to satisfy simultaneously | |
208 | your obligations under this License and any other pertinent | |
209 | obligations, then as a consequence you may not distribute the | |
210 | Program at all. For example, if a patent license would not permit | |
211 | royalty-free redistribution of the Program by all those who | |
212 | receive copies directly or indirectly through you, then the only | |
213 | way you could satisfy both it and this License would be to refrain | |
214 | entirely from distribution of the Program. | |
215 | ||
216 | If any portion of this section is held invalid or unenforceable | |
217 | under any particular circumstance, the balance of the section is | |
218 | intended to apply and the section as a whole is intended to apply | |
219 | in other circumstances. | |
220 | ||
221 | It is not the purpose of this section to induce you to infringe any | |
222 | patents or other property right claims or to contest validity of | |
223 | any such claims; this section has the sole purpose of protecting | |
224 | the integrity of the free software distribution system, which is | |
225 | implemented by public license practices. Many people have made | |
226 | generous contributions to the wide range of software distributed | |
227 | through that system in reliance on consistent application of that | |
228 | system; it is up to the author/donor to decide if he or she is | |
229 | willing to distribute software through any other system and a | |
230 | licensee cannot impose that choice. | |
231 | ||
232 | This section is intended to make thoroughly clear what is believed | |
233 | to be a consequence of the rest of this License. | |
234 | ||
235 | 8. If the distribution and/or use of the Program is restricted in | |
236 | certain countries either by patents or by copyrighted interfaces, | |
237 | the original copyright holder who places the Program under this | |
238 | License may add an explicit geographical distribution limitation | |
239 | excluding those countries, so that distribution is permitted only | |
240 | in or among countries not thus excluded. In such case, this | |
241 | License incorporates the limitation as if written in the body of | |
242 | this License. | |
243 | ||
244 | 9. The Free Software Foundation may publish revised and/or new | |
245 | versions of the General Public License from time to time. Such | |
246 | new versions will be similar in spirit to the present version, but | |
247 | may differ in detail to address new problems or concerns. | |
248 | ||
249 | Each version is given a distinguishing version number. If the | |
250 | Program specifies a version number of this License which applies | |
251 | to it and "any later version", you have the option of following | |
252 | the terms and conditions either of that version or of any later | |
253 | version published by the Free Software Foundation. If the Program | |
254 | does not specify a version number of this License, you may choose | |
255 | any version ever published by the Free Software Foundation. | |
256 | ||
257 | 10. If you wish to incorporate parts of the Program into other free | |
258 | programs whose distribution conditions are different, write to the | |
259 | author to ask for permission. For software which is copyrighted | |
260 | by the Free Software Foundation, write to the Free Software | |
261 | Foundation; we sometimes make exceptions for this. Our decision | |
262 | will be guided by the two goals of preserving the free status of | |
263 | all derivatives of our free software and of promoting the sharing | |
264 | and reuse of software generally. | |
265 | ||
266 | NO WARRANTY | |
267 | 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO | |
268 | WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE | |
269 | LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT | |
270 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT | |
271 | WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT | |
272 | NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND | |
273 | FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE | |
274 | QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE | |
275 | PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY | |
276 | SERVICING, REPAIR OR CORRECTION. | |
277 | ||
278 | 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN | |
279 | WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY | |
280 | MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE | |
281 | LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, | |
282 | INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR | |
283 | INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF | |
284 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU | |
285 | OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY | |
286 | OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN | |
287 | ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. | |
288 | ||
289 | END OF TERMS AND CONDITIONS | |
290 | How to Apply These Terms to Your New Programs | |
291 | ============================================= | |
292 | ||
293 | If you develop a new program, and you want it to be of the greatest | |
70 | TERMS AND CONDITIONS | |
71 | ||
72 | 0. Definitions. | |
73 | ||
74 | "This License" refers to version 3 of the GNU General Public License. | |
75 | ||
76 | "Copyright" also means copyright-like laws that apply to other kinds of | |
77 | works, such as semiconductor masks. | |
78 | ||
79 | "The Program" refers to any copyrightable work licensed under this | |
80 | License. Each licensee is addressed as "you". "Licensees" and | |
81 | "recipients" may be individuals or organizations. | |
82 | ||
83 | To "modify" a work means to copy from or adapt all or part of the work | |
84 | in a fashion requiring copyright permission, other than the making of an | |
85 | exact copy. The resulting work is called a "modified version" of the | |
86 | earlier work or a work "based on" the earlier work. | |
87 | ||
88 | A "covered work" means either the unmodified Program or a work based | |
89 | on the Program. | |
90 | ||
91 | To "propagate" a work means to do anything with it that, without | |
92 | permission, would make you directly or secondarily liable for | |
93 | infringement under applicable copyright law, except executing it on a | |
94 | computer or modifying a private copy. Propagation includes copying, | |
95 | distribution (with or without modification), making available to the | |
96 | public, and in some countries other activities as well. | |
97 | ||
98 | To "convey" a work means any kind of propagation that enables other | |
99 | parties to make or receive copies. Mere interaction with a user through | |
100 | a computer network, with no transfer of a copy, is not conveying. | |
101 | ||
102 | An interactive user interface displays "Appropriate Legal Notices" | |
103 | to the extent that it includes a convenient and prominently visible | |
104 | feature that (1) displays an appropriate copyright notice, and (2) | |
105 | tells the user that there is no warranty for the work (except to the | |
106 | extent that warranties are provided), that licensees may convey the | |
107 | work under this License, and how to view a copy of this License. If | |
108 | the interface presents a list of user commands or options, such as a | |
109 | menu, a prominent item in the list meets this criterion. | |
110 | ||
111 | 1. Source Code. | |
112 | ||
113 | The "source code" for a work means the preferred form of the work | |
114 | for making modifications to it. "Object code" means any non-source | |
115 | form of a work. | |
116 | ||
117 | A "Standard Interface" means an interface that either is an official | |
118 | standard defined by a recognized standards body, or, in the case of | |
119 | interfaces specified for a particular programming language, one that | |
120 | is widely used among developers working in that language. | |
121 | ||
122 | The "System Libraries" of an executable work include anything, other | |
123 | than the work as a whole, that (a) is included in the normal form of | |
124 | packaging a Major Component, but which is not part of that Major | |
125 | Component, and (b) serves only to enable use of the work with that | |
126 | Major Component, or to implement a Standard Interface for which an | |
127 | implementation is available to the public in source code form. A | |
128 | "Major Component", in this context, means a major essential component | |
129 | (kernel, window system, and so on) of the specific operating system | |
130 | (if any) on which the executable work runs, or a compiler used to | |
131 | produce the work, or an object code interpreter used to run it. | |
132 | ||
133 | The "Corresponding Source" for a work in object code form means all | |
134 | the source code needed to generate, install, and (for an executable | |
135 | work) run the object code and to modify the work, including scripts to | |
136 | control those activities. However, it does not include the work's | |
137 | System Libraries, or general-purpose tools or generally available free | |
138 | programs which are used unmodified in performing those activities but | |
139 | which are not part of the work. For example, Corresponding Source | |
140 | includes interface definition files associated with source files for | |
141 | the work, and the source code for shared libraries and dynamically | |
142 | linked subprograms that the work is specifically designed to require, | |
143 | such as by intimate data communication or control flow between those | |
144 | subprograms and other parts of the work. | |
145 | ||
146 | The Corresponding Source need not include anything that users | |
147 | can regenerate automatically from other parts of the Corresponding | |
148 | Source. | |
149 | ||
150 | The Corresponding Source for a work in source code form is that | |
151 | same work. | |
152 | ||
153 | 2. Basic Permissions. | |
154 | ||
155 | All rights granted under this License are granted for the term of | |
156 | copyright on the Program, and are irrevocable provided the stated | |
157 | conditions are met. This License explicitly affirms your unlimited | |
158 | permission to run the unmodified Program. The output from running a | |
159 | covered work is covered by this License only if the output, given its | |
160 | content, constitutes a covered work. This License acknowledges your | |
161 | rights of fair use or other equivalent, as provided by copyright law. | |
162 | ||
163 | You may make, run and propagate covered works that you do not | |
164 | convey, without conditions so long as your license otherwise remains | |
165 | in force. You may convey covered works to others for the sole purpose | |
166 | of having them make modifications exclusively for you, or provide you | |
167 | with facilities for running those works, provided that you comply with | |
168 | the terms of this License in conveying all material for which you do | |
169 | not control copyright. Those thus making or running the covered works | |
170 | for you must do so exclusively on your behalf, under your direction | |
171 | and control, on terms that prohibit them from making any copies of | |
172 | your copyrighted material outside their relationship with you. | |
173 | ||
174 | Conveying under any other circumstances is permitted solely under | |
175 | the conditions stated below. Sublicensing is not allowed; section 10 | |
176 | makes it unnecessary. | |
177 | ||
178 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. | |
179 | ||
180 | No covered work shall be deemed part of an effective technological | |
181 | measure under any applicable law fulfilling obligations under article | |
182 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or | |
183 | similar laws prohibiting or restricting circumvention of such | |
184 | measures. | |
185 | ||
186 | When you convey a covered work, you waive any legal power to forbid | |
187 | circumvention of technological measures to the extent such circumvention | |
188 | is effected by exercising rights under this License with respect to | |
189 | the covered work, and you disclaim any intention to limit operation or | |
190 | modification of the work as a means of enforcing, against the work's | |
191 | users, your or third parties' legal rights to forbid circumvention of | |
192 | technological measures. | |
193 | ||
194 | 4. Conveying Verbatim Copies. | |
195 | ||
196 | You may convey verbatim copies of the Program's source code as you | |
197 | receive it, in any medium, provided that you conspicuously and | |
198 | appropriately publish on each copy an appropriate copyright notice; | |
199 | keep intact all notices stating that this License and any | |
200 | non-permissive terms added in accord with section 7 apply to the code; | |
201 | keep intact all notices of the absence of any warranty; and give all | |
202 | recipients a copy of this License along with the Program. | |
203 | ||
204 | You may charge any price or no price for each copy that you convey, | |
205 | and you may offer support or warranty protection for a fee. | |
206 | ||
207 | 5. Conveying Modified Source Versions. | |
208 | ||
209 | You may convey a work based on the Program, or the modifications to | |
210 | produce it from the Program, in the form of source code under the | |
211 | terms of section 4, provided that you also meet all of these conditions: | |
212 | ||
213 | a) The work must carry prominent notices stating that you modified | |
214 | it, and giving a relevant date. | |
215 | ||
216 | b) The work must carry prominent notices stating that it is | |
217 | released under this License and any conditions added under section | |
218 | 7. This requirement modifies the requirement in section 4 to | |
219 | "keep intact all notices". | |
220 | ||
221 | c) You must license the entire work, as a whole, under this | |
222 | License to anyone who comes into possession of a copy. This | |
223 | License will therefore apply, along with any applicable section 7 | |
224 | additional terms, to the whole of the work, and all its parts, | |
225 | regardless of how they are packaged. This License gives no | |
226 | permission to license the work in any other way, but it does not | |
227 | invalidate such permission if you have separately received it. | |
228 | ||
229 | d) If the work has interactive user interfaces, each must display | |
230 | Appropriate Legal Notices; however, if the Program has interactive | |
231 | interfaces that do not display Appropriate Legal Notices, your | |
232 | work need not make them do so. | |
233 | ||
234 | A compilation of a covered work with other separate and independent | |
235 | works, which are not by their nature extensions of the covered work, | |
236 | and which are not combined with it such as to form a larger program, | |
237 | in or on a volume of a storage or distribution medium, is called an | |
238 | "aggregate" if the compilation and its resulting copyright are not | |
239 | used to limit the access or legal rights of the compilation's users | |
240 | beyond what the individual works permit. Inclusion of a covered work | |
241 | in an aggregate does not cause this License to apply to the other | |
242 | parts of the aggregate. | |
243 | ||
244 | 6. Conveying Non-Source Forms. | |
245 | ||
246 | You may convey a covered work in object code form under the terms | |
247 | of sections 4 and 5, provided that you also convey the | |
248 | machine-readable Corresponding Source under the terms of this License, | |
249 | in one of these ways: | |
250 | ||
251 | a) Convey the object code in, or embodied in, a physical product | |
252 | (including a physical distribution medium), accompanied by the | |
253 | Corresponding Source fixed on a durable physical medium | |
254 | customarily used for software interchange. | |
255 | ||
256 | b) Convey the object code in, or embodied in, a physical product | |
257 | (including a physical distribution medium), accompanied by a | |
258 | written offer, valid for at least three years and valid for as | |
259 | long as you offer spare parts or customer support for that product | |
260 | model, to give anyone who possesses the object code either (1) a | |
261 | copy of the Corresponding Source for all the software in the | |
262 | product that is covered by this License, on a durable physical | |
263 | medium customarily used for software interchange, for a price no | |
264 | more than your reasonable cost of physically performing this | |
265 | conveying of source, or (2) access to copy the | |
266 | Corresponding Source from a network server at no charge. | |
267 | ||
268 | c) Convey individual copies of the object code with a copy of the | |
269 | written offer to provide the Corresponding Source. This | |
270 | alternative is allowed only occasionally and noncommercially, and | |
271 | only if you received the object code with such an offer, in accord | |
272 | with subsection 6b. | |
273 | ||
274 | d) Convey the object code by offering access from a designated | |
275 | place (gratis or for a charge), and offer equivalent access to the | |
276 | Corresponding Source in the same way through the same place at no | |
277 | further charge. You need not require recipients to copy the | |
278 | Corresponding Source along with the object code. If the place to | |
279 | copy the object code is a network server, the Corresponding Source | |
280 | may be on a different server (operated by you or a third party) | |
281 | that supports equivalent copying facilities, provided you maintain | |
282 | clear directions next to the object code saying where to find the | |
283 | Corresponding Source. Regardless of what server hosts the | |
284 | Corresponding Source, you remain obligated to ensure that it is | |
285 | available for as long as needed to satisfy these requirements. | |
286 | ||
287 | e) Convey the object code using peer-to-peer transmission, provided | |
288 | you inform other peers where the object code and Corresponding | |
289 | Source of the work are being offered to the general public at no | |
290 | charge under subsection 6d. | |
291 | ||
292 | A separable portion of the object code, whose source code is excluded | |
293 | from the Corresponding Source as a System Library, need not be | |
294 | included in conveying the object code work. | |
295 | ||
296 | A "User Product" is either (1) a "consumer product", which means any | |
297 | tangible personal property which is normally used for personal, family, | |
298 | or household purposes, or (2) anything designed or sold for incorporation | |
299 | into a dwelling. In determining whether a product is a consumer product, | |
300 | doubtful cases shall be resolved in favor of coverage. For a particular | |
301 | product received by a particular user, "normally used" refers to a | |
302 | typical or common use of that class of product, regardless of the status | |
303 | of the particular user or of the way in which the particular user | |
304 | actually uses, or expects or is expected to use, the product. A product | |
305 | is a consumer product regardless of whether the product has substantial | |
306 | commercial, industrial or non-consumer uses, unless such uses represent | |
307 | the only significant mode of use of the product. | |
308 | ||
309 | "Installation Information" for a User Product means any methods, | |
310 | procedures, authorization keys, or other information required to install | |
311 | and execute modified versions of a covered work in that User Product from | |
312 | a modified version of its Corresponding Source. The information must | |
313 | suffice to ensure that the continued functioning of the modified object | |
314 | code is in no case prevented or interfered with solely because | |
315 | modification has been made. | |
316 | ||
317 | If you convey an object code work under this section in, or with, or | |
318 | specifically for use in, a User Product, and the conveying occurs as | |
319 | part of a transaction in which the right of possession and use of the | |
320 | User Product is transferred to the recipient in perpetuity or for a | |
321 | fixed term (regardless of how the transaction is characterized), the | |
322 | Corresponding Source conveyed under this section must be accompanied | |
323 | by the Installation Information. But this requirement does not apply | |
324 | if neither you nor any third party retains the ability to install | |
325 | modified object code on the User Product (for example, the work has | |
326 | been installed in ROM). | |
327 | ||
328 | The requirement to provide Installation Information does not include a | |
329 | requirement to continue to provide support service, warranty, or updates | |
330 | for a work that has been modified or installed by the recipient, or for | |
331 | the User Product in which it has been modified or installed. Access to a | |
332 | network may be denied when the modification itself materially and | |
333 | adversely affects the operation of the network or violates the rules and | |
334 | protocols for communication across the network. | |
335 | ||
336 | Corresponding Source conveyed, and Installation Information provided, | |
337 | in accord with this section must be in a format that is publicly | |
338 | documented (and with an implementation available to the public in | |
339 | source code form), and must require no special password or key for | |
340 | unpacking, reading or copying. | |
341 | ||
342 | 7. Additional Terms. | |
343 | ||
344 | "Additional permissions" are terms that supplement the terms of this | |
345 | License by making exceptions from one or more of its conditions. | |
346 | Additional permissions that are applicable to the entire Program shall | |
347 | be treated as though they were included in this License, to the extent | |
348 | that they are valid under applicable law. If additional permissions | |
349 | apply only to part of the Program, that part may be used separately | |
350 | under those permissions, but the entire Program remains governed by | |
351 | this License without regard to the additional permissions. | |
352 | ||
353 | When you convey a copy of a covered work, you may at your option | |
354 | remove any additional permissions from that copy, or from any part of | |
355 | it. (Additional permissions may be written to require their own | |
356 | removal in certain cases when you modify the work.) You may place | |
357 | additional permissions on material, added by you to a covered work, | |
358 | for which you have or can give appropriate copyright permission. | |
359 | ||
360 | Notwithstanding any other provision of this License, for material you | |
361 | add to a covered work, you may (if authorized by the copyright holders of | |
362 | that material) supplement the terms of this License with terms: | |
363 | ||
364 | a) Disclaiming warranty or limiting liability differently from the | |
365 | terms of sections 15 and 16 of this License; or | |
366 | ||
367 | b) Requiring preservation of specified reasonable legal notices or | |
368 | author attributions in that material or in the Appropriate Legal | |
369 | Notices displayed by works containing it; or | |
370 | ||
371 | c) Prohibiting misrepresentation of the origin of that material, or | |
372 | requiring that modified versions of such material be marked in | |
373 | reasonable ways as different from the original version; or | |
374 | ||
375 | d) Limiting the use for publicity purposes of names of licensors or | |
376 | authors of the material; or | |
377 | ||
378 | e) Declining to grant rights under trademark law for use of some | |
379 | trade names, trademarks, or service marks; or | |
380 | ||
381 | f) Requiring indemnification of licensors and authors of that | |
382 | material by anyone who conveys the material (or modified versions of | |
383 | it) with contractual assumptions of liability to the recipient, for | |
384 | any liability that these contractual assumptions directly impose on | |
385 | those licensors and authors. | |
386 | ||
387 | All other non-permissive additional terms are considered "further | |
388 | restrictions" within the meaning of section 10. If the Program as you | |
389 | received it, or any part of it, contains a notice stating that it is | |
390 | governed by this License along with a term that is a further | |
391 | restriction, you may remove that term. If a license document contains | |
392 | a further restriction but permits relicensing or conveying under this | |
393 | License, you may add to a covered work material governed by the terms | |
394 | of that license document, provided that the further restriction does | |
395 | not survive such relicensing or conveying. | |
396 | ||
397 | If you add terms to a covered work in accord with this section, you | |
398 | must place, in the relevant source files, a statement of the | |
399 | additional terms that apply to those files, or a notice indicating | |
400 | where to find the applicable terms. | |
401 | ||
402 | Additional terms, permissive or non-permissive, may be stated in the | |
403 | form of a separately written license, or stated as exceptions; | |
404 | the above requirements apply either way. | |
405 | ||
406 | 8. Termination. | |
407 | ||
408 | You may not propagate or modify a covered work except as expressly | |
409 | provided under this License. Any attempt otherwise to propagate or | |
410 | modify it is void, and will automatically terminate your rights under | |
411 | this License (including any patent licenses granted under the third | |
412 | paragraph of section 11). | |
413 | ||
414 | However, if you cease all violation of this License, then your | |
415 | license from a particular copyright holder is reinstated (a) | |
416 | provisionally, unless and until the copyright holder explicitly and | |
417 | finally terminates your license, and (b) permanently, if the copyright | |
418 | holder fails to notify you of the violation by some reasonable means | |
419 | prior to 60 days after the cessation. | |
420 | ||
421 | Moreover, your license from a particular copyright holder is | |
422 | reinstated permanently if the copyright holder notifies you of the | |
423 | violation by some reasonable means, this is the first time you have | |
424 | received notice of violation of this License (for any work) from that | |
425 | copyright holder, and you cure the violation prior to 30 days after | |
426 | your receipt of the notice. | |
427 | ||
428 | Termination of your rights under this section does not terminate the | |
429 | licenses of parties who have received copies or rights from you under | |
430 | this License. If your rights have been terminated and not permanently | |
431 | reinstated, you do not qualify to receive new licenses for the same | |
432 | material under section 10. | |
433 | ||
434 | 9. Acceptance Not Required for Having Copies. | |
435 | ||
436 | You are not required to accept this License in order to receive or | |
437 | run a copy of the Program. Ancillary propagation of a covered work | |
438 | occurring solely as a consequence of using peer-to-peer transmission | |
439 | to receive a copy likewise does not require acceptance. However, | |
440 | nothing other than this License grants you permission to propagate or | |
441 | modify any covered work. These actions infringe copyright if you do | |
442 | not accept this License. Therefore, by modifying or propagating a | |
443 | covered work, you indicate your acceptance of this License to do so. | |
444 | ||
445 | 10. Automatic Licensing of Downstream Recipients. | |
446 | ||
447 | Each time you convey a covered work, the recipient automatically | |
448 | receives a license from the original licensors, to run, modify and | |
449 | propagate that work, subject to this License. You are not responsible | |
450 | for enforcing compliance by third parties with this License. | |
451 | ||
452 | An "entity transaction" is a transaction transferring control of an | |
453 | organization, or substantially all assets of one, or subdividing an | |
454 | organization, or merging organizations. If propagation of a covered | |
455 | work results from an entity transaction, each party to that | |
456 | transaction who receives a copy of the work also receives whatever | |
457 | licenses to the work the party's predecessor in interest had or could | |
458 | give under the previous paragraph, plus a right to possession of the | |
459 | Corresponding Source of the work from the predecessor in interest, if | |
460 | the predecessor has it or can get it with reasonable efforts. | |
461 | ||
462 | You may not impose any further restrictions on the exercise of the | |
463 | rights granted or affirmed under this License. For example, you may | |
464 | not impose a license fee, royalty, or other charge for exercise of | |
465 | rights granted under this License, and you may not initiate litigation | |
466 | (including a cross-claim or counterclaim in a lawsuit) alleging that | |
467 | any patent claim is infringed by making, using, selling, offering for | |
468 | sale, or importing the Program or any portion of it. | |
469 | ||
470 | 11. Patents. | |
471 | ||
472 | A "contributor" is a copyright holder who authorizes use under this | |
473 | License of the Program or a work on which the Program is based. The | |
474 | work thus licensed is called the contributor's "contributor version". | |
475 | ||
476 | A contributor's "essential patent claims" are all patent claims | |
477 | owned or controlled by the contributor, whether already acquired or | |
478 | hereafter acquired, that would be infringed by some manner, permitted | |
479 | by this License, of making, using, or selling its contributor version, | |
480 | but do not include claims that would be infringed only as a | |
481 | consequence of further modification of the contributor version. For | |
482 | purposes of this definition, "control" includes the right to grant | |
483 | patent sublicenses in a manner consistent with the requirements of | |
484 | this License. | |
485 | ||
486 | Each contributor grants you a non-exclusive, worldwide, royalty-free | |
487 | patent license under the contributor's essential patent claims, to | |
488 | make, use, sell, offer for sale, import and otherwise run, modify and | |
489 | propagate the contents of its contributor version. | |
490 | ||
491 | In the following three paragraphs, a "patent license" is any express | |
492 | agreement or commitment, however denominated, not to enforce a patent | |
493 | (such as an express permission to practice a patent or covenant not to | |
494 | sue for patent infringement). To "grant" such a patent license to a | |
495 | party means to make such an agreement or commitment not to enforce a | |
496 | patent against the party. | |
497 | ||
498 | If you convey a covered work, knowingly relying on a patent license, | |
499 | and the Corresponding Source of the work is not available for anyone | |
500 | to copy, free of charge and under the terms of this License, through a | |
501 | publicly available network server or other readily accessible means, | |
502 | then you must either (1) cause the Corresponding Source to be so | |
503 | available, or (2) arrange to deprive yourself of the benefit of the | |
504 | patent license for this particular work, or (3) arrange, in a manner | |
505 | consistent with the requirements of this License, to extend the patent | |
506 | license to downstream recipients. "Knowingly relying" means you have | |
507 | actual knowledge that, but for the patent license, your conveying the | |
508 | covered work in a country, or your recipient's use of the covered work | |
509 | in a country, would infringe one or more identifiable patents in that | |
510 | country that you have reason to believe are valid. | |
511 | ||
512 | If, pursuant to or in connection with a single transaction or | |
513 | arrangement, you convey, or propagate by procuring conveyance of, a | |
514 | covered work, and grant a patent license to some of the parties | |
515 | receiving the covered work authorizing them to use, propagate, modify | |
516 | or convey a specific copy of the covered work, then the patent license | |
517 | you grant is automatically extended to all recipients of the covered | |
518 | work and works based on it. | |
519 | ||
520 | A patent license is "discriminatory" if it does not include within | |
521 | the scope of its coverage, prohibits the exercise of, or is | |
522 | conditioned on the non-exercise of one or more of the rights that are | |
523 | specifically granted under this License. You may not convey a covered | |
524 | work if you are a party to an arrangement with a third party that is | |
525 | in the business of distributing software, under which you make payment | |
526 | to the third party based on the extent of your activity of conveying | |
527 | the work, and under which the third party grants, to any of the | |
528 | parties who would receive the covered work from you, a discriminatory | |
529 | patent license (a) in connection with copies of the covered work | |
530 | conveyed by you (or copies made from those copies), or (b) primarily | |
531 | for and in connection with specific products or compilations that | |
532 | contain the covered work, unless you entered into that arrangement, | |
533 | or that patent license was granted, prior to 28 March 2007. | |
534 | ||
535 | Nothing in this License shall be construed as excluding or limiting | |
536 | any implied license or other defenses to infringement that may | |
537 | otherwise be available to you under applicable patent law. | |
538 | ||
539 | 12. No Surrender of Others' Freedom. | |
540 | ||
541 | If conditions are imposed on you (whether by court order, agreement or | |
542 | otherwise) that contradict the conditions of this License, they do not | |
543 | excuse you from the conditions of this License. If you cannot convey a | |
544 | covered work so as to satisfy simultaneously your obligations under this | |
545 | License and any other pertinent obligations, then as a consequence you may | |
546 | not convey it at all. For example, if you agree to terms that obligate you | |
547 | to collect a royalty for further conveying from those to whom you convey | |
548 | the Program, the only way you could satisfy both those terms and this | |
549 | License would be to refrain entirely from conveying the Program. | |
550 | ||
551 | 13. Use with the GNU Affero General Public License. | |
552 | ||
553 | Notwithstanding any other provision of this License, you have | |
554 | permission to link or combine any covered work with a work licensed | |
555 | under version 3 of the GNU Affero General Public License into a single | |
556 | combined work, and to convey the resulting work. The terms of this | |
557 | License will continue to apply to the part which is the covered work, | |
558 | but the special requirements of the GNU Affero General Public License, | |
559 | section 13, concerning interaction through a network will apply to the | |
560 | combination as such. | |
561 | ||
562 | 14. Revised Versions of this License. | |
563 | ||
564 | The Free Software Foundation may publish revised and/or new versions of | |
565 | the GNU General Public License from time to time. Such new versions will | |
566 | be similar in spirit to the present version, but may differ in detail to | |
567 | address new problems or concerns. | |
568 | ||
569 | Each version is given a distinguishing version number. If the | |
570 | Program specifies that a certain numbered version of the GNU General | |
571 | Public License "or any later version" applies to it, you have the | |
572 | option of following the terms and conditions either of that numbered | |
573 | version or of any later version published by the Free Software | |
574 | Foundation. If the Program does not specify a version number of the | |
575 | GNU General Public License, you may choose any version ever published | |
576 | by the Free Software Foundation. | |
577 | ||
578 | If the Program specifies that a proxy can decide which future | |
579 | versions of the GNU General Public License can be used, that proxy's | |
580 | public statement of acceptance of a version permanently authorizes you | |
581 | to choose that version for the Program. | |
582 | ||
583 | Later license versions may give you additional or different | |
584 | permissions. However, no additional obligations are imposed on any | |
585 | author or copyright holder as a result of your choosing to follow a | |
586 | later version. | |
587 | ||
588 | 15. Disclaimer of Warranty. | |
589 | ||
590 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY | |
591 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT | |
592 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY | |
593 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, | |
594 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR | |
595 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM | |
596 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF | |
597 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. | |
598 | ||
599 | 16. Limitation of Liability. | |
600 | ||
601 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING | |
602 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS | |
603 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY | |
604 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE | |
605 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF | |
606 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD | |
607 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), | |
608 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF | |
609 | SUCH DAMAGES. | |
610 | ||
611 | 17. Interpretation of Sections 15 and 16. | |
612 | ||
613 | If the disclaimer of warranty and limitation of liability provided | |
614 | above cannot be given local legal effect according to their terms, | |
615 | reviewing courts shall apply local law that most closely approximates | |
616 | an absolute waiver of all civil liability in connection with the | |
617 | Program, unless a warranty or assumption of liability accompanies a | |
618 | copy of the Program in return for a fee. | |
619 | ||
620 | END OF TERMS AND CONDITIONS | |
621 | ||
622 | How to Apply These Terms to Your New Programs | |
623 | ||
624 | If you develop a new program, and you want it to be of the greatest | |
294 | 625 | possible use to the public, the best way to achieve this is to make it |
295 | free software which everyone can redistribute and change under these | |
296 | terms. | |
297 | ||
298 | To do so, attach the following notices to the program. It is safest to | |
299 | attach them to the start of each source file to most effectively convey | |
300 | the exclusion of warranty; and each file should have at least the | |
301 | "copyright" line and a pointer to where the full notice is found. | |
302 | ||
303 | ONE LINE TO GIVE THE PROGRAM'S NAME AND A BRIEF IDEA OF WHAT IT DOES. | |
304 | Copyright (C) YYYY NAME OF AUTHOR | |
305 | ||
306 | This program is free software; you can redistribute it and/or modify | |
307 | it under the terms of the GNU General Public License as published by | |
308 | the Free Software Foundation; either version 2 of the License, or | |
309 | (at your option) any later version. | |
310 | ||
311 | This program is distributed in the hope that it will be useful, | |
312 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
313 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
314 | GNU General Public License for more details. | |
315 | ||
316 | You should have received a copy of the GNU General Public License | |
317 | along with this program; if not, write to the Free Software | |
318 | Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
626 | free software which everyone can redistribute and change under these terms. | |
627 | ||
628 | To do so, attach the following notices to the program. It is safest | |
629 | to attach them to the start of each source file to most effectively | |
630 | state the exclusion of warranty; and each file should have at least | |
631 | the "copyright" line and a pointer to where the full notice is found. | |
632 | ||
633 | <one line to give the program's name and a brief idea of what it does.> | |
634 | Copyright (C) <year> <name of author> | |
635 | ||
636 | This program is free software: you can redistribute it and/or modify | |
637 | it under the terms of the GNU General Public License as published by | |
638 | the Free Software Foundation, either version 3 of the License, or | |
639 | (at your option) any later version. | |
640 | ||
641 | This program is distributed in the hope that it will be useful, | |
642 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
643 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
644 | GNU General Public License for more details. | |
645 | ||
646 | You should have received a copy of the GNU General Public License | |
647 | along with this program. If not, see <http://www.gnu.org/licenses/>. | |
319 | 648 | |
320 | 649 | Also add information on how to contact you by electronic and paper mail. |
321 | 650 | |
322 | If the program is interactive, make it output a short notice like this | |
323 | when it starts in an interactive mode: | |
324 | ||
325 | Gnomovision version 69, Copyright (C) 19YY NAME OF AUTHOR | |
326 | Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | |
327 | This is free software, and you are welcome to redistribute it | |
328 | under certain conditions; type `show c' for details. | |
329 | ||
330 | The hypothetical commands `show w' and `show c' should show the | |
331 | appropriate parts of the General Public License. Of course, the | |
332 | commands you use may be called something other than `show w' and `show | |
333 | c'; they could even be mouse-clicks or menu items--whatever suits your | |
334 | program. | |
335 | ||
336 | You should also get your employer (if you work as a programmer) or your | |
337 | school, if any, to sign a "copyright disclaimer" for the program, if | |
338 | necessary. Here is a sample; alter the names: | |
339 | ||
340 | Yoyodyne, Inc., hereby disclaims all copyright interest in the program | |
341 | `Gnomovision' (which makes passes at compilers) written by James Hacker. | |
342 | ||
343 | SIGNATURE OF TY COON, 1 April 1989 | |
344 | Ty Coon, President of Vice | |
345 | ||
346 | This General Public License does not permit incorporating your program | |
347 | into proprietary programs. If your program is a subroutine library, | |
348 | you may consider it more useful to permit linking proprietary | |
349 | applications with the library. If this is what you want to do, use the | |
350 | GNU Library General Public License instead of this License. | |
351 | ||
651 | If the program does terminal interaction, make it output a short | |
652 | notice like this when it starts in an interactive mode: | |
653 | ||
654 | <program> Copyright (C) <year> <name of author> | |
655 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. | |
656 | This is free software, and you are welcome to redistribute it | |
657 | under certain conditions; type `show c' for details. | |
658 | ||
659 | The hypothetical commands `show w' and `show c' should show the appropriate | |
660 | parts of the General Public License. Of course, your program's commands | |
661 | might be different; for a GUI interface, you would use an "about box". | |
662 | ||
663 | You should also get your employer (if you work as a programmer) or school, | |
664 | if any, to sign a "copyright disclaimer" for the program, if necessary. | |
665 | For more information on this, and how to apply and follow the GNU GPL, see | |
666 | <http://www.gnu.org/licenses/>. | |
667 | ||
668 | The GNU General Public License does not permit incorporating your program | |
669 | into proprietary programs. If your program is a subroutine library, you | |
670 | may consider it more useful to permit linking proprietary applications with | |
671 | the library. If this is what you want to do, use the GNU Lesser General | |
672 | Public License instead of this License. But first, please read | |
673 | <http://www.gnu.org/philosophy/why-not-lgpl.html>. |
0 | GNU LESSER GENERAL PUBLIC LICENSE | |
1 | Version 3, 29 June 2007 | |
2 | ||
3 | Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/> | |
4 | Everyone is permitted to copy and distribute verbatim copies | |
5 | of this license document, but changing it is not allowed. | |
6 | ||
7 | ||
8 | This version of the GNU Lesser General Public License incorporates | |
9 | the terms and conditions of version 3 of the GNU General Public | |
10 | License, supplemented by the additional permissions listed below. | |
11 | ||
12 | 0. Additional Definitions. | |
13 | ||
14 | As used herein, "this License" refers to version 3 of the GNU Lesser | |
15 | General Public License, and the "GNU GPL" refers to version 3 of the GNU | |
16 | General Public License. | |
17 | ||
18 | "The Library" refers to a covered work governed by this License, | |
19 | other than an Application or a Combined Work as defined below. | |
20 | ||
21 | An "Application" is any work that makes use of an interface provided | |
22 | by the Library, but which is not otherwise based on the Library. | |
23 | Defining a subclass of a class defined by the Library is deemed a mode | |
24 | of using an interface provided by the Library. | |
25 | ||
26 | A "Combined Work" is a work produced by combining or linking an | |
27 | Application with the Library. The particular version of the Library | |
28 | with which the Combined Work was made is also called the "Linked | |
29 | Version". | |
30 | ||
31 | The "Minimal Corresponding Source" for a Combined Work means the | |
32 | Corresponding Source for the Combined Work, excluding any source code | |
33 | for portions of the Combined Work that, considered in isolation, are | |
34 | based on the Application, and not on the Linked Version. | |
35 | ||
36 | The "Corresponding Application Code" for a Combined Work means the | |
37 | object code and/or source code for the Application, including any data | |
38 | and utility programs needed for reproducing the Combined Work from the | |
39 | Application, but excluding the System Libraries of the Combined Work. | |
40 | ||
41 | 1. Exception to Section 3 of the GNU GPL. | |
42 | ||
43 | You may convey a covered work under sections 3 and 4 of this License | |
44 | without being bound by section 3 of the GNU GPL. | |
45 | ||
46 | 2. Conveying Modified Versions. | |
47 | ||
48 | If you modify a copy of the Library, and, in your modifications, a | |
49 | facility refers to a function or data to be supplied by an Application | |
50 | that uses the facility (other than as an argument passed when the | |
51 | facility is invoked), then you may convey a copy of the modified | |
52 | version: | |
53 | ||
54 | a) under this License, provided that you make a good faith effort to | |
55 | ensure that, in the event an Application does not supply the | |
56 | function or data, the facility still operates, and performs | |
57 | whatever part of its purpose remains meaningful, or | |
58 | ||
59 | b) under the GNU GPL, with none of the additional permissions of | |
60 | this License applicable to that copy. | |
61 | ||
62 | 3. Object Code Incorporating Material from Library Header Files. | |
63 | ||
64 | The object code form of an Application may incorporate material from | |
65 | a header file that is part of the Library. You may convey such object | |
66 | code under terms of your choice, provided that, if the incorporated | |
67 | material is not limited to numerical parameters, data structure | |
68 | layouts and accessors, or small macros, inline functions and templates | |
69 | (ten or fewer lines in length), you do both of the following: | |
70 | ||
71 | a) Give prominent notice with each copy of the object code that the | |
72 | Library is used in it and that the Library and its use are | |
73 | covered by this License. | |
74 | ||
75 | b) Accompany the object code with a copy of the GNU GPL and this license | |
76 | document. | |
77 | ||
78 | 4. Combined Works. | |
79 | ||
80 | You may convey a Combined Work under terms of your choice that, | |
81 | taken together, effectively do not restrict modification of the | |
82 | portions of the Library contained in the Combined Work and reverse | |
83 | engineering for debugging such modifications, if you also do each of | |
84 | the following: | |
85 | ||
86 | a) Give prominent notice with each copy of the Combined Work that | |
87 | the Library is used in it and that the Library and its use are | |
88 | covered by this License. | |
89 | ||
90 | b) Accompany the Combined Work with a copy of the GNU GPL and this license | |
91 | document. | |
92 | ||
93 | c) For a Combined Work that displays copyright notices during | |
94 | execution, include the copyright notice for the Library among | |
95 | these notices, as well as a reference directing the user to the | |
96 | copies of the GNU GPL and this license document. | |
97 | ||
98 | d) Do one of the following: | |
99 | ||
100 | 0) Convey the Minimal Corresponding Source under the terms of this | |
101 | License, and the Corresponding Application Code in a form | |
102 | suitable for, and under terms that permit, the user to | |
103 | recombine or relink the Application with a modified version of | |
104 | the Linked Version to produce a modified Combined Work, in the | |
105 | manner specified by section 6 of the GNU GPL for conveying | |
106 | Corresponding Source. | |
107 | ||
108 | 1) Use a suitable shared library mechanism for linking with the | |
109 | Library. A suitable mechanism is one that (a) uses at run time | |
110 | a copy of the Library already present on the user's computer | |
111 | system, and (b) will operate properly with a modified version | |
112 | of the Library that is interface-compatible with the Linked | |
113 | Version. | |
114 | ||
115 | e) Provide Installation Information, but only if you would otherwise | |
116 | be required to provide such information under section 6 of the | |
117 | GNU GPL, and only to the extent that such information is | |
118 | necessary to install and execute a modified version of the | |
119 | Combined Work produced by recombining or relinking the | |
120 | Application with a modified version of the Linked Version. (If | |
121 | you use option 4d0, the Installation Information must accompany | |
122 | the Minimal Corresponding Source and Corresponding Application | |
123 | Code. If you use option 4d1, you must provide the Installation | |
124 | Information in the manner specified by section 6 of the GNU GPL | |
125 | for conveying Corresponding Source.) | |
126 | ||
127 | 5. Combined Libraries. | |
128 | ||
129 | You may place library facilities that are a work based on the | |
130 | Library side by side in a single library together with other library | |
131 | facilities that are not Applications and are not covered by this | |
132 | License, and convey such a combined library under terms of your | |
133 | choice, if you do both of the following: | |
134 | ||
135 | a) Accompany the combined library with a copy of the same work based | |
136 | on the Library, uncombined with any other library facilities, | |
137 | conveyed under the terms of this License. | |
138 | ||
139 | b) Give prominent notice with the combined library that part of it | |
140 | is a work based on the Library, and explaining where to find the | |
141 | accompanying uncombined form of the same work. | |
142 | ||
143 | 6. Revised Versions of the GNU Lesser General Public License. | |
144 | ||
145 | The Free Software Foundation may publish revised and/or new versions | |
146 | of the GNU Lesser General Public License from time to time. Such new | |
147 | versions will be similar in spirit to the present version, but may | |
148 | differ in detail to address new problems or concerns. | |
149 | ||
150 | Each version is given a distinguishing version number. If the | |
151 | Library as you received it specifies that a certain numbered version | |
152 | of the GNU Lesser General Public License "or any later version" | |
153 | applies to it, you have the option of following the terms and | |
154 | conditions either of that published version or of any later version | |
155 | published by the Free Software Foundation. If the Library as you | |
156 | received it does not specify a version number of the GNU Lesser | |
157 | General Public License, you may choose any version of the GNU Lesser | |
158 | General Public License ever published by the Free Software Foundation. | |
159 | ||
160 | If the Library as you received it specifies that a proxy can decide | |
161 | whether future versions of the GNU Lesser General Public License shall | |
162 | apply, that proxy's public statement of acceptance of any version is | |
163 | permanent authorization for you to choose that version for the | |
164 | Library. |
0 | [2011-04-30] EPSILON 0.9.1 released | |
1 | ||
2 | * Switch to dual license: GPL-3 and LGPL-3 | |
3 | * Automatic verification tests added + HOW-TO on this matter | |
4 | * Bug fixes: remove name clash with zlib & libpng (Alessandro Furieri) | |
5 | * Porting to Windows: MSVC, MinGW (Alessandro Furieri) | |
6 | * Improvements to code portability and fluff removal (Alessandro Furieri) | |
7 | * HOW-TOs on running EPSILON/Cluster and EPSILON/MPI | |
8 | ||
0 | 9 | [2008-04-06] EPSILON 0.8.1 released |
1 | 10 | |
2 | 11 | * Set validation is now disabled by default |
22 | 22 | the `popt.h' header in standard include directories: it is a common |
23 | 23 | practice to separate development packages from commonly-used user |
24 | 24 | packages. For example, if you have RPM-based Linux system try |
25 | to install `libpopt-devel' package. | |
25 | to install `libpopt-devel' package, on Debian - libpopt-dev. | |
26 | 26 | |
27 | 27 | After installing EPSILON don`t forget to edit your /etc/ld.so.conf |
28 | 28 | and run ldconfig to update system cache of shared libraries. |
34 | 34 | with multicore CPU! The actual threading backend is POSIX threads |
35 | 35 | or Pthreads for short. So, in order to build multi-threaded |
36 | 36 | EPSILON version you have to have Pthreads on you system. I think |
37 | it`s not a big problem today: the vast majority of morden OS-es | |
38 | already have Pthread support. | |
37 | it`s not a big problem today: the vast majority of morden Unix-like | |
38 | OS-es already have Pthread support. | |
39 | 39 | |
40 | 40 | Assuming you have Pthreads on you system pass the `--enable-pthreads' |
41 | 41 | option to configure script. Also, you can specify default and maximal |
81 | 81 | called "set validation". With this option turned on the program |
82 | 82 | will strictly validate SPECK coding correctness. By default this |
83 | 83 | feature is disabled. Use `--enable-set-validation' to enable it. |
84 | ||
85 | [Building from CVS] | |
86 | ||
87 | Checkout latest version from CVS repository: | |
88 | ||
89 | $ cvs -z3 -d:pserver:anonymous@epsilon-project.cvs.sourceforge.net:/cvsroot/epsilon-project checkout -P epsilon | |
90 | ||
91 | Generate ./configure script | |
92 | ||
93 | $ cd epsilon | |
94 | $ make -f Makefile.cvs | |
95 | ||
96 | The rest is identical to what is said in "Building EPSILON" section |
0 | 0 | # not a GNU package. You can remove this line, if |
1 | 1 | # have all needed files, that a GNU package needs |
2 | AUTOMAKE_OPTIONS = foreign 1.4 | |
2 | AUTOMAKE_OPTIONS = foreign 1.4 dist-zip | |
3 | 3 | |
4 | SUBDIRS = lib src filters tools man | |
4 | SUBDIRS = lib src filters tools man tests | |
5 | 5 | |
6 | 6 | dist_noinst_DATA = Doxyfile INSTALL.generic |
7 | ||
8 | EXTRA_DIST = makefile.vc nmake.opt libepsilon.def CONTRIBUTORS README.cluster README.mpich README.testing |
0 | # Makefile.in generated by automake 1.10 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | 3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, |
4 | # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
7 | 7 | # with or without modifications, as long as this notice is preserved. |
35 | 35 | DIST_COMMON = README $(am__configure_deps) $(dist_noinst_DATA) \ |
36 | 36 | $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ |
37 | 37 | $(srcdir)/config.h.in $(top_srcdir)/configure AUTHORS COPYING \ |
38 | ChangeLog INSTALL NEWS TODO config.guess config.sub depcomp \ | |
39 | install-sh ltmain.sh missing mkinstalldirs | |
38 | COPYING.LESSER ChangeLog INSTALL NEWS TODO config.guess \ | |
39 | config.sub depcomp install-sh ltmain.sh missing mkinstalldirs | |
40 | 40 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 |
41 | 41 | am__aclocal_m4_deps = $(top_srcdir)/configure.in |
42 | 42 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ |
68 | 68 | { test ! -d $(distdir) \ |
69 | 69 | || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \ |
70 | 70 | && rm -fr $(distdir); }; } |
71 | DIST_ARCHIVES = $(distdir).tar.gz | |
71 | DIST_ARCHIVES = $(distdir).tar.gz $(distdir).zip | |
72 | 72 | GZIP_ENV = --best |
73 | 73 | distuninstallcheck_listfiles = find . -type f -print |
74 | 74 | distcleancheck_listfiles = find . -type f -print |
91 | 91 | CYGPATH_W = @CYGPATH_W@ |
92 | 92 | DEFS = @DEFS@ |
93 | 93 | DEPDIR = @DEPDIR@ |
94 | DSYMUTIL = @DSYMUTIL@ | |
94 | 95 | ECHO = @ECHO@ |
95 | 96 | ECHO_C = @ECHO_C@ |
96 | 97 | ECHO_N = @ECHO_N@ |
113 | 114 | LTLIBOBJS = @LTLIBOBJS@ |
114 | 115 | MAKEINFO = @MAKEINFO@ |
115 | 116 | MKDIR_P = @MKDIR_P@ |
117 | NMEDIT = @NMEDIT@ | |
116 | 118 | OBJEXT = @OBJEXT@ |
117 | 119 | PACKAGE = @PACKAGE@ |
118 | 120 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
122 | 124 | PACKAGE_VERSION = @PACKAGE_VERSION@ |
123 | 125 | PATH_SEPARATOR = @PATH_SEPARATOR@ |
124 | 126 | RANLIB = @RANLIB@ |
127 | SED = @SED@ | |
125 | 128 | SET_MAKE = @SET_MAKE@ |
126 | 129 | SHELL = @SHELL@ |
127 | 130 | STRIP = @STRIP@ |
180 | 183 | |
181 | 184 | # not a GNU package. You can remove this line, if |
182 | 185 | # have all needed files, that a GNU package needs |
183 | AUTOMAKE_OPTIONS = foreign 1.4 | |
184 | SUBDIRS = lib src filters tools man | |
186 | AUTOMAKE_OPTIONS = foreign 1.4 dist-zip | |
187 | SUBDIRS = lib src filters tools man tests | |
185 | 188 | dist_noinst_DATA = Doxyfile INSTALL.generic |
189 | EXTRA_DIST = makefile.vc nmake.opt libepsilon.def CONTRIBUTORS README.cluster README.mpich README.testing | |
186 | 190 | all: config.h |
187 | 191 | $(MAKE) $(AM_MAKEFLAGS) all-recursive |
188 | 192 | |
322 | 326 | unique=`for i in $$list; do \ |
323 | 327 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
324 | 328 | done | \ |
325 | $(AWK) ' { files[$$0] = 1; } \ | |
326 | END { for (i in files) print i; }'`; \ | |
329 | $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ | |
330 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
327 | 331 | mkid -fID $$unique |
328 | 332 | tags: TAGS |
329 | 333 | |
348 | 352 | unique=`for i in $$list; do \ |
349 | 353 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
350 | 354 | done | \ |
351 | $(AWK) ' { files[$$0] = 1; } \ | |
352 | END { for (i in files) print i; }'`; \ | |
355 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | |
356 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
353 | 357 | if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ |
354 | 358 | test -n "$$unique" || unique=$$empty_fix; \ |
355 | 359 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
359 | 363 | CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ |
360 | 364 | $(TAGS_FILES) $(LISP) |
361 | 365 | tags=; \ |
362 | here=`pwd`; \ | |
363 | 366 | list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ |
364 | 367 | unique=`for i in $$list; do \ |
365 | 368 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
366 | 369 | done | \ |
367 | $(AWK) ' { files[$$0] = 1; } \ | |
368 | END { for (i in files) print i; }'`; \ | |
370 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | |
371 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
369 | 372 | test -z "$(CTAGS_ARGS)$$tags$$unique" \ |
370 | 373 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
371 | 374 | $$tags $$unique |
436 | 439 | tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 |
437 | 440 | $(am__remove_distdir) |
438 | 441 | |
442 | dist-lzma: distdir | |
443 | tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma | |
444 | $(am__remove_distdir) | |
445 | ||
439 | 446 | dist-tarZ: distdir |
440 | 447 | tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z |
441 | 448 | $(am__remove_distdir) |
443 | 450 | dist-shar: distdir |
444 | 451 | shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz |
445 | 452 | $(am__remove_distdir) |
446 | ||
447 | 453 | dist-zip: distdir |
448 | 454 | -rm -f $(distdir).zip |
449 | 455 | zip -rq $(distdir).zip $(distdir) |
451 | 457 | |
452 | 458 | dist dist-all: distdir |
453 | 459 | tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz |
460 | -rm -f $(distdir).zip | |
461 | zip -rq $(distdir).zip $(distdir) | |
454 | 462 | $(am__remove_distdir) |
455 | 463 | |
456 | 464 | # This target untars the dist file and tries a VPATH configuration. Then |
462 | 470 | GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\ |
463 | 471 | *.tar.bz2*) \ |
464 | 472 | bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\ |
473 | *.tar.lzma*) \ | |
474 | unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\ | |
465 | 475 | *.tar.Z*) \ |
466 | 476 | uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ |
467 | 477 | *.shar.gz*) \ |
613 | 623 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ |
614 | 624 | all all-am am--refresh check check-am clean clean-generic \ |
615 | 625 | clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \ |
616 | dist-gzip dist-shar dist-tarZ dist-zip distcheck distclean \ | |
617 | distclean-generic distclean-hdr distclean-libtool \ | |
626 | dist-gzip dist-lzma dist-shar dist-tarZ dist-zip distcheck \ | |
627 | distclean distclean-generic distclean-hdr distclean-libtool \ | |
618 | 628 | distclean-tags distcleancheck distdir distuninstallcheck dvi \ |
619 | 629 | dvi-am html html-am info info-am install install-am \ |
620 | 630 | install-data install-data-am install-dvi install-dvi-am \ |
0 | [2011-04-30] EPSILON 0.9.1 released | |
1 | ||
2 | EPSILON 0.9.1 is available for download! | |
3 | ||
4 | This version includes automatic verification test suite, | |
5 | portability improvements, bug fixes, HOW-TOs on running | |
6 | EPSILON/Cluster and EPSILON/MPI. | |
7 | ||
8 | Also EPSILON has been switched to dual license: GPL-3 and LGPL-3 | |
9 | ||
0 | 10 | [2008-04-06] EPSILON 0.8.1 released |
1 | 11 | |
2 | 12 | EPSILON 0.8.1 is available for download! |
0 | [Running EPSILON cluster] | |
1 | ||
2 | 1. Build EPSILON with cluster support (see INSTALL for details) | |
3 | ||
4 | 2. Run `epsilon --start-node' on each SLAVE node. Default port 2718 | |
5 | can be changed using `--port' option. EPSILON node daemon logs | |
6 | messages to syslog using `daemon' facility. | |
7 | ||
8 | 3. Create file with list of cluster nodes on MASTER server. | |
9 | File format: user@host:port^number_of_CPUs | |
10 | ||
11 | host - EPSILON node's hostname or IP | |
12 | port - EPSILON node's port | |
13 | number_of_CPUs - number of simultaneous connections to that SLAVE node | |
14 | user - SSH login (used by start_epsilon_nodes.pl and stop_epsilon_nodes.pl) | |
15 | ||
16 | 4. Run epsilon from MASTER server as usual but pass `--node-list' option. | |
17 | Check logs on SLAVE nodes. | |
18 | ||
19 | 5. There are several default places for epsilon.nodes file. | |
20 | Please consult manual on this matter | |
21 | ||
22 | 6. There are two helper script start_epsilon_nodes.pl and stop_epsilon_nodes.pl | |
23 | that can be used to simplify starting/stopping EPSILON nodes. | |
24 | These script run `epsilon --start-node' on hosts, listed in | |
25 | epsilon.nodes file using DSH - Distributed SHell. | |
26 | ||
27 | That's it. |
0 | [Running MPI-enabled EPSILON version] | |
1 | ||
2 | This example describes configuration of MPICH on Debian Lenny. | |
3 | If you have another MPI implementation or different system, | |
4 | please adjust instructions below to fit your needs. In the latter | |
5 | cases your short HOW-TOs are welcome! | |
6 | ||
7 | 1. Install MPICH | |
8 | ||
9 | apt-get install mpich-bin libmpich1.0-dev mpi-doc | |
10 | ||
11 | 2. Build EPSILON with MPI support (see INSTALL for details) | |
12 | ||
13 | 3. Configure MPI environment (simplest case follows): | |
14 | ||
15 | 3.1 Edit machines file: /etc/mpich/machines.LINUX: | |
16 | ==8<== | |
17 | # <cluster node's hostname or IP>:<number of CPUs (not required)> | |
18 | localhost | |
19 | ==8<== | |
20 | ||
21 | 3.2 Generate SSH keys and put MASTER's public key into the ~/.ssh/authorized_keys | |
22 | file on each SLAVE cluster node: mpirun script will run epsilon's binary | |
23 | using SSH on each of them multiple times - one process for each | |
24 | processor you requested. Leave pass-phrase empty: | |
25 | ||
26 | Example: ssh-keygen -b 1024 -t rsa | |
27 | ||
28 | 3.3 Check connectivity to all SLAVE cluster nodes: | |
29 | tstmachines -v | |
30 | Trying true on localhost ... | |
31 | Trying ls on localhost ... | |
32 | Trying user program on localhost ... | |
33 | ||
34 | 4. Install EPSILON on each SLAVE cluster node (into the same location | |
35 | or accessible via $PATH) or configure NFS or alike for that purpose. | |
36 | ||
37 | 5. Run EPSILON from MASTER node (using 32 processors): | |
38 | ||
39 | mpirun -v -np 32 /path/to/epsilon /path/to/image_on_master_node.pgm | |
40 | ||
41 | That's it! |
0 | [Running EPSILON tests] | |
1 | ||
2 | As of release 0.9.1 EPSILON has a test suite written in Perl. | |
3 | ||
4 | 1. Install required Perl modules | |
5 | ||
6 | - Readonly | |
7 | - Params::Validate | |
8 | - Test::Exception | |
9 | ||
10 | 2. Install required external packages | |
11 | ||
12 | - netpbm | |
13 | ||
14 | 3. Prepare at least one EPSILON build (generic, pthreads, cluster, mpi) | |
15 | using scripts from the tests/build directory of source tree. | |
16 | ||
17 | 4. Run tests | |
18 | ||
19 | prove -v tests/t/*.t | |
20 | ||
21 | Some tests (e.g. verification.t) are very long and can take several hours to complete. | |
22 | Each test (*.t) has a description in the begining of a file. You can check it out. | |
23 | ||
24 | Your test reports either successful or unsuccessful are welcome. |
0 | [On-line TODO list] | |
0 | [TODO list] | |
1 | 1 | |
2 | EPSILON is a rapidly developing OpenSource project. | |
3 | A lot of new features are planned. Actual TODO list | |
4 | is always available via special SourceForge 'Tasks' | |
5 | tracker at https://sourceforge.net/pm/?group_id=178829 | |
2 | Nearest plans include: | |
3 | ||
4 | - More extensive testing of platforms other than Linux: *BSD, | |
5 | Solaris, OSX, Windows etc. If you succeed in building EPSILON | |
6 | on these systems please drop me an email. | |
7 | ||
8 | - Extending test suite. As of release 0.9.1 EPSILON has a flexible | |
9 | testing framework written in Perl. At the moment of writing test | |
10 | suite consists of two tests: complete verification test (all build | |
11 | types, all filters, all block sizes all applicable modes etc.) and | |
12 | quick check. | |
13 | ||
14 | - Try using CUDA in computation extensive parts. | |
15 | ||
16 | - Rollout RPMs, DEBs, BSD ports for different systems or find | |
17 | people who want to maintain certain port. | |
18 | ||
19 | - Extend documentation, write some tutorials. |
0 | # generated automatically by aclocal 1.10 -*- Autoconf -*- | |
0 | # generated automatically by aclocal 1.10.1 -*- Autoconf -*- | |
1 | 1 | |
2 | 2 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
3 | # 2005, 2006 Free Software Foundation, Inc. | |
3 | # 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
4 | 4 | # This file is free software; the Free Software Foundation |
5 | 5 | # gives unlimited permission to copy and/or distribute it, |
6 | 6 | # with or without modifications, as long as this notice is preserved. |
10 | 10 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A |
11 | 11 | # PARTICULAR PURPOSE. |
12 | 12 | |
13 | m4_if(m4_PACKAGE_VERSION, [2.61],, | |
14 | [m4_fatal([this file was generated for autoconf 2.61. | |
15 | You have another version of autoconf. If you want to use that, | |
16 | you should regenerate the build system entirely.], [63])]) | |
13 | m4_ifndef([AC_AUTOCONF_VERSION], | |
14 | [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl | |
15 | m4_if(AC_AUTOCONF_VERSION, [2.61],, | |
16 | [m4_warning([this file was generated for autoconf 2.61. | |
17 | You have another version of autoconf. It may work, but is not guaranteed to. | |
18 | If you have problems, you may need to regenerate the build system entirely. | |
19 | To do so, use the procedure documented by the package, typically `autoreconf'.])]) | |
17 | 20 | |
18 | 21 | # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- |
19 | 22 | |
20 | # serial 48 AC_PROG_LIBTOOL | |
23 | # serial 52 Debian 1.5.26-4+lenny1 AC_PROG_LIBTOOL | |
21 | 24 | |
22 | 25 | |
23 | 26 | # AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED) |
105 | 108 | AC_REQUIRE([AC_OBJEXT])dnl |
106 | 109 | AC_REQUIRE([AC_EXEEXT])dnl |
107 | 110 | dnl |
108 | ||
109 | 111 | AC_LIBTOOL_SYS_MAX_CMD_LEN |
110 | 112 | AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE |
111 | 113 | AC_LIBTOOL_OBJDIR |
180 | 182 | test -z "$ac_objext" && ac_objext=o |
181 | 183 | |
182 | 184 | # Determine commands to create old-style static archives. |
183 | old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' | |
185 | old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' | |
184 | 186 | old_postinstall_cmds='chmod 644 $oldlib' |
185 | 187 | old_postuninstall_cmds= |
186 | 188 | |
206 | 208 | fi |
207 | 209 | ;; |
208 | 210 | esac |
211 | ||
212 | _LT_REQUIRED_DARWIN_CHECKS | |
209 | 213 | |
210 | 214 | AC_PROVIDE_IFELSE([AC_LIBTOOL_DLOPEN], enable_dlopen=yes, enable_dlopen=no) |
211 | 215 | AC_PROVIDE_IFELSE([AC_LIBTOOL_WIN32_DLL], |
267 | 271 | # Check for compiler boilerplate output or warnings with |
268 | 272 | # the simple compiler test code. |
269 | 273 | AC_DEFUN([_LT_COMPILER_BOILERPLATE], |
270 | [ac_outfile=conftest.$ac_objext | |
271 | printf "$lt_simple_compile_test_code" >conftest.$ac_ext | |
274 | [AC_REQUIRE([LT_AC_PROG_SED])dnl | |
275 | ac_outfile=conftest.$ac_objext | |
276 | echo "$lt_simple_compile_test_code" >conftest.$ac_ext | |
272 | 277 | eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err |
273 | 278 | _lt_compiler_boilerplate=`cat conftest.err` |
274 | 279 | $rm conftest* |
280 | 285 | # Check for linker boilerplate output or warnings with |
281 | 286 | # the simple link test code. |
282 | 287 | AC_DEFUN([_LT_LINKER_BOILERPLATE], |
283 | [ac_outfile=conftest.$ac_objext | |
284 | printf "$lt_simple_link_test_code" >conftest.$ac_ext | |
288 | [AC_REQUIRE([LT_AC_PROG_SED])dnl | |
289 | ac_outfile=conftest.$ac_objext | |
290 | echo "$lt_simple_link_test_code" >conftest.$ac_ext | |
285 | 291 | eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err |
286 | 292 | _lt_linker_boilerplate=`cat conftest.err` |
287 | $rm conftest* | |
293 | $rm -r conftest* | |
288 | 294 | ])# _LT_LINKER_BOILERPLATE |
289 | 295 | |
296 | # _LT_REQUIRED_DARWIN_CHECKS | |
297 | # -------------------------- | |
298 | # Check for some things on darwin | |
299 | AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS],[ | |
300 | case $host_os in | |
301 | rhapsody* | darwin*) | |
302 | AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) | |
303 | AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) | |
304 | ||
305 | AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], | |
306 | [lt_cv_apple_cc_single_mod=no | |
307 | if test -z "${LT_MULTI_MODULE}"; then | |
308 | # By default we will add the -single_module flag. You can override | |
309 | # by either setting the environment variable LT_MULTI_MODULE | |
310 | # non-empty at configure time, or by adding -multi_module to the | |
311 | # link flags. | |
312 | echo "int foo(void){return 1;}" > conftest.c | |
313 | $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ | |
314 | -dynamiclib ${wl}-single_module conftest.c | |
315 | if test -f libconftest.dylib; then | |
316 | lt_cv_apple_cc_single_mod=yes | |
317 | rm -rf libconftest.dylib* | |
318 | fi | |
319 | rm conftest.c | |
320 | fi]) | |
321 | AC_CACHE_CHECK([for -exported_symbols_list linker flag], | |
322 | [lt_cv_ld_exported_symbols_list], | |
323 | [lt_cv_ld_exported_symbols_list=no | |
324 | save_LDFLAGS=$LDFLAGS | |
325 | echo "_main" > conftest.sym | |
326 | LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" | |
327 | AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], | |
328 | [lt_cv_ld_exported_symbols_list=yes], | |
329 | [lt_cv_ld_exported_symbols_list=no]) | |
330 | LDFLAGS="$save_LDFLAGS" | |
331 | ]) | |
332 | case $host_os in | |
333 | rhapsody* | darwin1.[[0123]]) | |
334 | _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; | |
335 | darwin1.*) | |
336 | _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; | |
337 | darwin*) | |
338 | # if running on 10.5 or later, the deployment target defaults | |
339 | # to the OS version, if on x86, and 10.4, the deployment | |
340 | # target defaults to 10.4. Don't you love it? | |
341 | case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in | |
342 | 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) | |
343 | _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; | |
344 | 10.[[012]]*) | |
345 | _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; | |
346 | 10.*) | |
347 | _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; | |
348 | esac | |
349 | ;; | |
350 | esac | |
351 | if test "$lt_cv_apple_cc_single_mod" = "yes"; then | |
352 | _lt_dar_single_mod='$single_module' | |
353 | fi | |
354 | if test "$lt_cv_ld_exported_symbols_list" = "yes"; then | |
355 | _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' | |
356 | else | |
357 | _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}" | |
358 | fi | |
359 | if test "$DSYMUTIL" != ":"; then | |
360 | _lt_dsymutil="~$DSYMUTIL \$lib || :" | |
361 | else | |
362 | _lt_dsymutil= | |
363 | fi | |
364 | ;; | |
365 | esac | |
366 | ]) | |
290 | 367 | |
291 | 368 | # _LT_AC_SYS_LIBPATH_AIX |
292 | 369 | # ---------------------- |
297 | 374 | # If we don't find anything, use the default library path according |
298 | 375 | # to the aix ld manual. |
299 | 376 | AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX], |
300 | [AC_LINK_IFELSE(AC_LANG_PROGRAM,[ | |
301 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
302 | }'` | |
377 | [AC_REQUIRE([LT_AC_PROG_SED])dnl | |
378 | AC_LINK_IFELSE(AC_LANG_PROGRAM,[ | |
379 | lt_aix_libpath_sed=' | |
380 | /Import File Strings/,/^$/ { | |
381 | /^0/ { | |
382 | s/^0 *\(.*\)$/\1/ | |
383 | p | |
384 | } | |
385 | }' | |
386 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
303 | 387 | # Check for a 64-bit object if we didn't find anything. |
304 | if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
305 | }'`; fi],[]) | |
388 | if test -z "$aix_libpath"; then | |
389 | aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
390 | fi],[]) | |
306 | 391 | if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi |
307 | 392 | ])# _LT_AC_SYS_LIBPATH_AIX |
308 | 393 | |
533 | 618 | rm -rf conftest* |
534 | 619 | ;; |
535 | 620 | |
536 | x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) | |
621 | x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ | |
622 | s390*-*linux*|sparc*-*linux*) | |
537 | 623 | # Find out which ABI we are using. |
538 | 624 | echo 'int i;' > conftest.$ac_ext |
539 | 625 | if AC_TRY_EVAL(ac_compile); then |
540 | 626 | case `/usr/bin/file conftest.o` in |
541 | 627 | *32-bit*) |
542 | 628 | case $host in |
629 | x86_64-*kfreebsd*-gnu) | |
630 | LD="${LD-ld} -m elf_i386_fbsd" | |
631 | ;; | |
543 | 632 | x86_64-*linux*) |
544 | 633 | LD="${LD-ld} -m elf_i386" |
545 | 634 | ;; |
556 | 645 | ;; |
557 | 646 | *64-bit*) |
558 | 647 | case $host in |
648 | x86_64-*kfreebsd*-gnu) | |
649 | LD="${LD-ld} -m elf_x86_64_fbsd" | |
650 | ;; | |
559 | 651 | x86_64-*linux*) |
560 | 652 | LD="${LD-ld} -m elf_x86_64" |
561 | 653 | ;; |
596 | 688 | *64-bit*) |
597 | 689 | case $lt_cv_prog_gnu_ld in |
598 | 690 | yes*) LD="${LD-ld} -m elf64_sparc" ;; |
599 | *) LD="${LD-ld} -64" ;; | |
691 | *) | |
692 | if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then | |
693 | LD="${LD-ld} -64" | |
694 | fi | |
695 | ;; | |
600 | 696 | esac |
601 | 697 | ;; |
602 | 698 | esac |
627 | 723 | AC_CACHE_CHECK([$1], [$2], |
628 | 724 | [$2=no |
629 | 725 | ifelse([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) |
630 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
726 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
631 | 727 | lt_compiler_flag="$3" |
632 | 728 | # Insert the option either (1) after the last *FLAGS variable, or |
633 | 729 | # (2) before a word containing "conftest.", or (3) at the end. |
668 | 764 | # ------------------------------------------------------------ |
669 | 765 | # Check whether the given compiler option works |
670 | 766 | AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], |
671 | [AC_CACHE_CHECK([$1], [$2], | |
767 | [AC_REQUIRE([LT_AC_PROG_SED])dnl | |
768 | AC_CACHE_CHECK([$1], [$2], | |
672 | 769 | [$2=no |
673 | 770 | save_LDFLAGS="$LDFLAGS" |
674 | 771 | LDFLAGS="$LDFLAGS $3" |
675 | printf "$lt_simple_link_test_code" > conftest.$ac_ext | |
772 | echo "$lt_simple_link_test_code" > conftest.$ac_ext | |
676 | 773 | if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then |
677 | 774 | # The linker can only warn and ignore the option if not recognized |
678 | 775 | # So say no if there are warnings |
688 | 785 | $2=yes |
689 | 786 | fi |
690 | 787 | fi |
691 | $rm conftest* | |
788 | $rm -r conftest* | |
692 | 789 | LDFLAGS="$save_LDFLAGS" |
693 | 790 | ]) |
694 | 791 | |
786 | 883 | fi |
787 | 884 | ;; |
788 | 885 | *) |
789 | # If test is not a shell built-in, we'll probably end up computing a | |
790 | # maximum length that is only half of the actual maximum length, but | |
791 | # we can't tell. | |
792 | SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} | |
793 | while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ | |
886 | lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` | |
887 | if test -n "$lt_cv_sys_max_cmd_len"; then | |
888 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` | |
889 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` | |
890 | else | |
891 | SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} | |
892 | while (test "X"`$SHELL [$]0 --fallback-echo "X$teststring" 2>/dev/null` \ | |
794 | 893 | = "XX$teststring") >/dev/null 2>&1 && |
795 | new_result=`expr "X$teststring" : ".*" 2>&1` && | |
796 | lt_cv_sys_max_cmd_len=$new_result && | |
797 | test $i != 17 # 1/2 MB should be enough | |
798 | do | |
799 | i=`expr $i + 1` | |
800 | teststring=$teststring$teststring | |
801 | done | |
802 | teststring= | |
803 | # Add a significant safety factor because C++ compilers can tack on massive | |
804 | # amounts of additional arguments before passing them to the linker. | |
805 | # It appears as though 1/2 is a usable value. | |
806 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` | |
894 | new_result=`expr "X$teststring" : ".*" 2>&1` && | |
895 | lt_cv_sys_max_cmd_len=$new_result && | |
896 | test $i != 17 # 1/2 MB should be enough | |
897 | do | |
898 | i=`expr $i + 1` | |
899 | teststring=$teststring$teststring | |
900 | done | |
901 | teststring= | |
902 | # Add a significant safety factor because C++ compilers can tack on massive | |
903 | # amounts of additional arguments before passing them to the linker. | |
904 | # It appears as though 1/2 is a usable value. | |
905 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` | |
906 | fi | |
807 | 907 | ;; |
808 | 908 | esac |
809 | 909 | ]) |
956 | 1056 | AC_CHECK_FUNC([shl_load], |
957 | 1057 | [lt_cv_dlopen="shl_load"], |
958 | 1058 | [AC_CHECK_LIB([dld], [shl_load], |
959 | [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"], | |
1059 | [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"], | |
960 | 1060 | [AC_CHECK_FUNC([dlopen], |
961 | 1061 | [lt_cv_dlopen="dlopen"], |
962 | 1062 | [AC_CHECK_LIB([dl], [dlopen], |
964 | 1064 | [AC_CHECK_LIB([svld], [dlopen], |
965 | 1065 | [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"], |
966 | 1066 | [AC_CHECK_LIB([dld], [dld_link], |
967 | [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"]) | |
1067 | [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"]) | |
968 | 1068 | ]) |
969 | 1069 | ]) |
970 | 1070 | ]) |
1030 | 1130 | # --------------------------------- |
1031 | 1131 | # Check to see if options -c and -o are simultaneously supported by compiler |
1032 | 1132 | AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O], |
1033 | [AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl | |
1133 | [AC_REQUIRE([LT_AC_PROG_SED])dnl | |
1134 | AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl | |
1034 | 1135 | AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], |
1035 | 1136 | [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)], |
1036 | 1137 | [_LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no |
1038 | 1139 | mkdir conftest |
1039 | 1140 | cd conftest |
1040 | 1141 | mkdir out |
1041 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
1142 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
1042 | 1143 | |
1043 | 1144 | lt_compiler_flag="-o out/conftest2.$ac_objext" |
1044 | 1145 | # Insert the option either (1) after the last *FLAGS variable, or |
1178 | 1279 | darwin*) |
1179 | 1280 | if test -n "$STRIP" ; then |
1180 | 1281 | striplib="$STRIP -x" |
1282 | old_striplib="$STRIP -S" | |
1181 | 1283 | AC_MSG_RESULT([yes]) |
1182 | 1284 | else |
1183 | 1285 | AC_MSG_RESULT([no]) |
1195 | 1297 | # ----------------------------- |
1196 | 1298 | # PORTME Fill in your ld.so characteristics |
1197 | 1299 | AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER], |
1198 | [AC_MSG_CHECKING([dynamic linker characteristics]) | |
1300 | [AC_REQUIRE([LT_AC_PROG_SED])dnl | |
1301 | AC_MSG_CHECKING([dynamic linker characteristics]) | |
1199 | 1302 | library_names_spec= |
1200 | 1303 | libname_spec='lib$name' |
1201 | 1304 | soname_spec= |
1209 | 1312 | version_type=none |
1210 | 1313 | dynamic_linker="$host_os ld.so" |
1211 | 1314 | sys_lib_dlsearch_path_spec="/lib /usr/lib" |
1315 | m4_if($1,[],[ | |
1212 | 1316 | if test "$GCC" = yes; then |
1213 | sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` | |
1214 | if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then | |
1317 | case $host_os in | |
1318 | darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; | |
1319 | *) lt_awk_arg="/^libraries:/" ;; | |
1320 | esac | |
1321 | lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` | |
1322 | if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then | |
1215 | 1323 | # if the path contains ";" then we assume it to be the separator |
1216 | 1324 | # otherwise default to the standard path separator (i.e. ":") - it is |
1217 | 1325 | # assumed that no part of a normal pathname contains ";" but that should |
1218 | 1326 | # okay in the real world where ";" in dirpaths is itself problematic. |
1219 | sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` | |
1327 | lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` | |
1220 | 1328 | else |
1221 | sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` | |
1329 | lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` | |
1222 | 1330 | fi |
1331 | # Ok, now we have the path, separated by spaces, we can step through it | |
1332 | # and add multilib dir if necessary. | |
1333 | lt_tmp_lt_search_path_spec= | |
1334 | lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` | |
1335 | for lt_sys_path in $lt_search_path_spec; do | |
1336 | if test -d "$lt_sys_path/$lt_multi_os_dir"; then | |
1337 | lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" | |
1338 | else | |
1339 | test -d "$lt_sys_path" && \ | |
1340 | lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" | |
1341 | fi | |
1342 | done | |
1343 | lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' | |
1344 | BEGIN {RS=" "; FS="/|\n";} { | |
1345 | lt_foo=""; | |
1346 | lt_count=0; | |
1347 | for (lt_i = NF; lt_i > 0; lt_i--) { | |
1348 | if ($lt_i != "" && $lt_i != ".") { | |
1349 | if ($lt_i == "..") { | |
1350 | lt_count++; | |
1351 | } else { | |
1352 | if (lt_count == 0) { | |
1353 | lt_foo="/" $lt_i lt_foo; | |
1354 | } else { | |
1355 | lt_count--; | |
1356 | } | |
1357 | } | |
1358 | } | |
1359 | } | |
1360 | if (lt_foo != "") { lt_freq[[lt_foo]]++; } | |
1361 | if (lt_freq[[lt_foo]] == 1) { print lt_foo; } | |
1362 | }'` | |
1363 | sys_lib_search_path_spec=`echo $lt_search_path_spec` | |
1223 | 1364 | else |
1224 | 1365 | sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" |
1225 | fi | |
1366 | fi]) | |
1226 | 1367 | need_lib_prefix=unknown |
1227 | 1368 | hardcode_into_libs=no |
1228 | 1369 | |
1240 | 1381 | soname_spec='${libname}${release}${shared_ext}$major' |
1241 | 1382 | ;; |
1242 | 1383 | |
1243 | aix4* | aix5*) | |
1384 | aix[[4-9]]*) | |
1244 | 1385 | version_type=linux |
1245 | 1386 | need_lib_prefix=no |
1246 | 1387 | need_version=no |
1379 | 1520 | shlibpath_overrides_runpath=yes |
1380 | 1521 | shlibpath_var=DYLD_LIBRARY_PATH |
1381 | 1522 | shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' |
1382 | # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. | |
1383 | if test "$GCC" = yes; then | |
1384 | sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` | |
1385 | else | |
1386 | sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' | |
1387 | fi | |
1523 | m4_if([$1], [],[ | |
1524 | sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) | |
1388 | 1525 | sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' |
1389 | 1526 | ;; |
1390 | 1527 | |
1399 | 1536 | |
1400 | 1537 | freebsd1*) |
1401 | 1538 | dynamic_linker=no |
1402 | ;; | |
1403 | ||
1404 | kfreebsd*-gnu) | |
1405 | version_type=linux | |
1406 | need_lib_prefix=no | |
1407 | need_version=no | |
1408 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' | |
1409 | soname_spec='${libname}${release}${shared_ext}$major' | |
1410 | shlibpath_var=LD_LIBRARY_PATH | |
1411 | shlibpath_overrides_runpath=no | |
1412 | hardcode_into_libs=yes | |
1413 | dynamic_linker='GNU ld.so' | |
1414 | 1539 | ;; |
1415 | 1540 | |
1416 | 1541 | freebsd* | dragonfly*) |
1450 | 1575 | shlibpath_overrides_runpath=no |
1451 | 1576 | hardcode_into_libs=yes |
1452 | 1577 | ;; |
1453 | freebsd*) # from 4.6 on | |
1578 | *) # from 4.6 on, and DragonFly | |
1454 | 1579 | shlibpath_overrides_runpath=yes |
1455 | 1580 | hardcode_into_libs=yes |
1456 | 1581 | ;; |
1513 | 1638 | postinstall_cmds='chmod 555 $lib' |
1514 | 1639 | ;; |
1515 | 1640 | |
1516 | interix3*) | |
1641 | interix[[3-9]]*) | |
1517 | 1642 | version_type=linux |
1518 | 1643 | need_lib_prefix=no |
1519 | 1644 | need_version=no |
1568 | 1693 | ;; |
1569 | 1694 | |
1570 | 1695 | # This must be Linux ELF. |
1571 | linux*) | |
1696 | linux* | k*bsd*-gnu) | |
1572 | 1697 | version_type=linux |
1573 | 1698 | need_lib_prefix=no |
1574 | 1699 | need_version=no |
1582 | 1707 | # before this can be enabled. |
1583 | 1708 | hardcode_into_libs=yes |
1584 | 1709 | |
1585 | # find out which ABI we are using | |
1586 | libsuff= | |
1587 | case "$host_cpu" in | |
1588 | x86_64*|s390x*|powerpc64*) | |
1589 | echo '[#]line __oline__ "configure"' > conftest.$ac_ext | |
1590 | if AC_TRY_EVAL(ac_compile); then | |
1591 | case `/usr/bin/file conftest.$ac_objext` in | |
1592 | *64-bit*) | |
1593 | libsuff=64 | |
1594 | sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" | |
1595 | ;; | |
1596 | esac | |
1597 | fi | |
1598 | rm -rf conftest* | |
1599 | ;; | |
1600 | esac | |
1601 | ||
1602 | 1710 | # Append ld.so.conf contents to the search path |
1603 | 1711 | if test -f /etc/ld.so.conf; then |
1604 | lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` | |
1605 | sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" | |
1712 | lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` | |
1713 | sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" | |
1606 | 1714 | fi |
1607 | 1715 | |
1608 | 1716 | # We used to test for /lib/ld.so.1 and disable shared libraries on |
1614 | 1722 | dynamic_linker='GNU/Linux ld.so' |
1615 | 1723 | ;; |
1616 | 1724 | |
1617 | knetbsd*-gnu) | |
1725 | netbsdelf*-gnu) | |
1618 | 1726 | version_type=linux |
1619 | 1727 | need_lib_prefix=no |
1620 | 1728 | need_version=no |
1623 | 1731 | shlibpath_var=LD_LIBRARY_PATH |
1624 | 1732 | shlibpath_overrides_runpath=no |
1625 | 1733 | hardcode_into_libs=yes |
1626 | dynamic_linker='GNU ld.so' | |
1734 | dynamic_linker='NetBSD ld.elf_so' | |
1627 | 1735 | ;; |
1628 | 1736 | |
1629 | 1737 | netbsd*) |
1705 | 1813 | shlibpath_var=LD_LIBRARY_PATH |
1706 | 1814 | sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" |
1707 | 1815 | sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" |
1816 | ;; | |
1817 | ||
1818 | rdos*) | |
1819 | dynamic_linker=no | |
1708 | 1820 | ;; |
1709 | 1821 | |
1710 | 1822 | solaris*) |
1802 | 1914 | AC_MSG_RESULT([$dynamic_linker]) |
1803 | 1915 | test "$dynamic_linker" = no && can_build_shared=no |
1804 | 1916 | |
1917 | AC_CACHE_VAL([lt_cv_sys_lib_search_path_spec], | |
1918 | [lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"]) | |
1919 | sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" | |
1920 | AC_CACHE_VAL([lt_cv_sys_lib_dlsearch_path_spec], | |
1921 | [lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"]) | |
1922 | sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" | |
1923 | ||
1805 | 1924 | variables_saved_for_relink="PATH $shlibpath_var $runpath_var" |
1806 | 1925 | if test "$GCC" = yes; then |
1807 | 1926 | variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" |
1812 | 1931 | # _LT_AC_TAGCONFIG |
1813 | 1932 | # ---------------- |
1814 | 1933 | AC_DEFUN([_LT_AC_TAGCONFIG], |
1815 | [AC_ARG_WITH([tags], | |
1934 | [AC_REQUIRE([LT_AC_PROG_SED])dnl | |
1935 | AC_ARG_WITH([tags], | |
1816 | 1936 | [AC_HELP_STRING([--with-tags@<:@=TAGS@:>@], |
1817 | 1937 | [include additional configurations @<:@automatic@:>@])], |
1818 | 1938 | [tagnames="$withval"]) |
2073 | 2193 | |
2074 | 2194 | # AC_PATH_TOOL_PREFIX |
2075 | 2195 | # ------------------- |
2076 | # find a file program which can recognise shared library | |
2196 | # find a file program which can recognize shared library | |
2077 | 2197 | AC_DEFUN([AC_PATH_TOOL_PREFIX], |
2078 | 2198 | [AC_REQUIRE([AC_PROG_EGREP])dnl |
2079 | 2199 | AC_MSG_CHECKING([for $1]) |
2136 | 2256 | |
2137 | 2257 | # AC_PATH_MAGIC |
2138 | 2258 | # ------------- |
2139 | # find a file program which can recognise a shared library | |
2259 | # find a file program which can recognize a shared library | |
2140 | 2260 | AC_DEFUN([AC_PATH_MAGIC], |
2141 | 2261 | [AC_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) |
2142 | 2262 | if test -z "$lt_cv_path_MAGIC_CMD"; then |
2283 | 2403 | # how to check for library dependencies |
2284 | 2404 | # -- PORTME fill in with the dynamic library characteristics |
2285 | 2405 | AC_DEFUN([AC_DEPLIBS_CHECK_METHOD], |
2286 | [AC_CACHE_CHECK([how to recognise dependent libraries], | |
2406 | [AC_CACHE_CHECK([how to recognize dependent libraries], | |
2287 | 2407 | lt_cv_deplibs_check_method, |
2288 | 2408 | [lt_cv_file_magic_cmd='$MAGIC_CMD' |
2289 | 2409 | lt_cv_file_magic_test_file= |
2300 | 2420 | # whether `pass_all' will *always* work, you probably want this one. |
2301 | 2421 | |
2302 | 2422 | case $host_os in |
2303 | aix4* | aix5*) | |
2423 | aix[[4-9]]*) | |
2304 | 2424 | lt_cv_deplibs_check_method=pass_all |
2305 | 2425 | ;; |
2306 | 2426 | |
2322 | 2442 | |
2323 | 2443 | mingw* | pw32*) |
2324 | 2444 | # Base MSYS/MinGW do not provide the 'file' command needed by |
2325 | # func_win32_libid shell function, so use a weaker test based on 'objdump'. | |
2326 | lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' | |
2327 | lt_cv_file_magic_cmd='$OBJDUMP -f' | |
2445 | # func_win32_libid shell function, so use a weaker test based on 'objdump', | |
2446 | # unless we find 'file', for example because we are cross-compiling. | |
2447 | if ( file / ) >/dev/null 2>&1; then | |
2448 | lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' | |
2449 | lt_cv_file_magic_cmd='func_win32_libid' | |
2450 | else | |
2451 | lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' | |
2452 | lt_cv_file_magic_cmd='$OBJDUMP -f' | |
2453 | fi | |
2328 | 2454 | ;; |
2329 | 2455 | |
2330 | 2456 | darwin* | rhapsody*) |
2331 | 2457 | lt_cv_deplibs_check_method=pass_all |
2332 | 2458 | ;; |
2333 | 2459 | |
2334 | freebsd* | kfreebsd*-gnu | dragonfly*) | |
2460 | freebsd* | dragonfly*) | |
2335 | 2461 | if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then |
2336 | 2462 | case $host_cpu in |
2337 | 2463 | i*86 ) |
2369 | 2495 | esac |
2370 | 2496 | ;; |
2371 | 2497 | |
2372 | interix3*) | |
2498 | interix[[3-9]]*) | |
2373 | 2499 | # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here |
2374 | 2500 | lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' |
2375 | 2501 | ;; |
2385 | 2511 | ;; |
2386 | 2512 | |
2387 | 2513 | # This must be Linux ELF. |
2388 | linux*) | |
2514 | linux* | k*bsd*-gnu) | |
2389 | 2515 | lt_cv_deplibs_check_method=pass_all |
2390 | 2516 | ;; |
2391 | 2517 | |
2392 | netbsd*) | |
2518 | netbsd* | netbsdelf*-gnu) | |
2393 | 2519 | if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then |
2394 | 2520 | lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' |
2395 | 2521 | else |
2416 | 2542 | ;; |
2417 | 2543 | |
2418 | 2544 | osf3* | osf4* | osf5*) |
2545 | lt_cv_deplibs_check_method=pass_all | |
2546 | ;; | |
2547 | ||
2548 | rdos*) | |
2419 | 2549 | lt_cv_deplibs_check_method=pass_all |
2420 | 2550 | ;; |
2421 | 2551 | |
2471 | 2601 | lt_cv_path_NM="$NM" |
2472 | 2602 | else |
2473 | 2603 | lt_nm_to_check="${ac_tool_prefix}nm" |
2474 | if test -n "$ac_tool_prefix" && test "$build" = "$host"; then | |
2604 | if test -n "$ac_tool_prefix" && test "$build" = "$host"; then | |
2475 | 2605 | lt_nm_to_check="$lt_nm_to_check nm" |
2476 | 2606 | fi |
2477 | 2607 | for lt_tmp_nm in $lt_nm_to_check; do |
2687 | 2817 | _LT_AC_TAGVAR(objext, $1)=$objext |
2688 | 2818 | |
2689 | 2819 | # Code to be used in simple compile tests |
2690 | lt_simple_compile_test_code="int some_variable = 0;\n" | |
2820 | lt_simple_compile_test_code="int some_variable = 0;" | |
2691 | 2821 | |
2692 | 2822 | # Code to be used in simple link tests |
2693 | lt_simple_link_test_code='int main(){return(0);}\n' | |
2823 | lt_simple_link_test_code='int main(){return(0);}' | |
2694 | 2824 | |
2695 | 2825 | _LT_AC_SYS_COMPILER |
2696 | 2826 | |
2726 | 2856 | fi |
2727 | 2857 | ;; |
2728 | 2858 | |
2729 | aix4* | aix5*) | |
2859 | aix[[4-9]]*) | |
2730 | 2860 | if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then |
2731 | 2861 | test "$enable_shared" = yes && enable_static=no |
2732 | 2862 | fi |
2783 | 2913 | _LT_AC_TAGVAR(predeps, $1)= |
2784 | 2914 | _LT_AC_TAGVAR(postdeps, $1)= |
2785 | 2915 | _LT_AC_TAGVAR(compiler_lib_search_path, $1)= |
2916 | _LT_AC_TAGVAR(compiler_lib_search_dirs, $1)= | |
2786 | 2917 | |
2787 | 2918 | # Source file extension for C++ test sources. |
2788 | 2919 | ac_ext=cpp |
2792 | 2923 | _LT_AC_TAGVAR(objext, $1)=$objext |
2793 | 2924 | |
2794 | 2925 | # Code to be used in simple compile tests |
2795 | lt_simple_compile_test_code="int some_variable = 0;\n" | |
2926 | lt_simple_compile_test_code="int some_variable = 0;" | |
2796 | 2927 | |
2797 | 2928 | # Code to be used in simple link tests |
2798 | lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }\n' | |
2929 | lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' | |
2799 | 2930 | |
2800 | 2931 | # ltmain only uses $CC for tagged configurations so make sure $CC is set. |
2801 | 2932 | _LT_AC_SYS_COMPILER |
2892 | 3023 | # FIXME: insert proper C++ library support |
2893 | 3024 | _LT_AC_TAGVAR(ld_shlibs, $1)=no |
2894 | 3025 | ;; |
2895 | aix4* | aix5*) | |
3026 | aix[[4-9]]*) | |
2896 | 3027 | if test "$host_cpu" = ia64; then |
2897 | 3028 | # On IA64, the linker does run time linking by default, so we don't |
2898 | 3029 | # have to do anything special. |
2905 | 3036 | # Test if we are trying to use run time linking or normal |
2906 | 3037 | # AIX style linking. If -brtl is somewhere in LDFLAGS, we |
2907 | 3038 | # need to do runtime linking. |
2908 | case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) | |
3039 | case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) | |
2909 | 3040 | for ld_flag in $LDFLAGS; do |
2910 | 3041 | case $ld_flag in |
2911 | 3042 | *-brtl*) |
2941 | 3072 | strings "$collect2name" | grep resolve_lib_name >/dev/null |
2942 | 3073 | then |
2943 | 3074 | # We have reworked collect2 |
2944 | _LT_AC_TAGVAR(hardcode_direct, $1)=yes | |
3075 | : | |
2945 | 3076 | else |
2946 | 3077 | # We have old collect2 |
2947 | 3078 | _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported |
3051 | 3182 | fi |
3052 | 3183 | ;; |
3053 | 3184 | darwin* | rhapsody*) |
3054 | case $host_os in | |
3055 | rhapsody* | darwin1.[[012]]) | |
3056 | _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}suppress' | |
3057 | ;; | |
3058 | *) # Darwin 1.3 on | |
3059 | if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then | |
3060 | _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' | |
3061 | else | |
3062 | case ${MACOSX_DEPLOYMENT_TARGET} in | |
3063 | 10.[[012]]) | |
3064 | _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' | |
3065 | ;; | |
3066 | 10.*) | |
3067 | _LT_AC_TAGVAR(allow_undefined_flag, $1)='${wl}-undefined ${wl}dynamic_lookup' | |
3068 | ;; | |
3069 | esac | |
3070 | fi | |
3071 | ;; | |
3072 | esac | |
3073 | 3185 | _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
3074 | 3186 | _LT_AC_TAGVAR(hardcode_direct, $1)=no |
3075 | 3187 | _LT_AC_TAGVAR(hardcode_automatic, $1)=yes |
3076 | 3188 | _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=unsupported |
3077 | 3189 | _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='' |
3078 | 3190 | _LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
3079 | ||
3080 | if test "$GXX" = yes ; then | |
3081 | lt_int_apple_cc_single_mod=no | |
3191 | _LT_AC_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined" | |
3192 | if test "$GXX" = yes ; then | |
3082 | 3193 | output_verbose_link_cmd='echo' |
3083 | if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then | |
3084 | lt_int_apple_cc_single_mod=yes | |
3194 | _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" | |
3195 | _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" | |
3196 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" | |
3197 | _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" | |
3198 | if test "$lt_cv_apple_cc_single_mod" != "yes"; then | |
3199 | _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" | |
3200 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" | |
3085 | 3201 | fi |
3086 | if test "X$lt_int_apple_cc_single_mod" = Xyes ; then | |
3087 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' | |
3088 | else | |
3089 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' | |
3090 | fi | |
3091 | _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' | |
3092 | # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds | |
3093 | if test "X$lt_int_apple_cc_single_mod" = Xyes ; then | |
3094 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
3095 | else | |
3096 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
3097 | fi | |
3098 | _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
3099 | 3202 | else |
3100 | 3203 | case $cc_basename in |
3101 | 3204 | xlc*) |
3102 | 3205 | output_verbose_link_cmd='echo' |
3103 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' | |
3206 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' | |
3104 | 3207 | _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' |
3105 | 3208 | # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds |
3106 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
3209 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
3107 | 3210 | _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
3108 | 3211 | ;; |
3109 | 3212 | *) |
3137 | 3240 | freebsd-elf*) |
3138 | 3241 | _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
3139 | 3242 | ;; |
3140 | freebsd* | kfreebsd*-gnu | dragonfly*) | |
3243 | freebsd* | dragonfly*) | |
3141 | 3244 | # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF |
3142 | 3245 | # conventions |
3143 | 3246 | _LT_AC_TAGVAR(ld_shlibs, $1)=yes |
3186 | 3289 | _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
3187 | 3290 | |
3188 | 3291 | case $host_cpu in |
3189 | hppa*64*|ia64*) | |
3190 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec_ld, $1)='+b $libdir' | |
3191 | ;; | |
3292 | hppa*64*|ia64*) ;; | |
3192 | 3293 | *) |
3193 | 3294 | _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' |
3194 | 3295 | ;; |
3256 | 3357 | ;; |
3257 | 3358 | esac |
3258 | 3359 | ;; |
3259 | interix3*) | |
3360 | interix[[3-9]]*) | |
3260 | 3361 | _LT_AC_TAGVAR(hardcode_direct, $1)=no |
3261 | 3362 | _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
3262 | 3363 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' |
3296 | 3397 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir' |
3297 | 3398 | _LT_AC_TAGVAR(hardcode_libdir_separator, $1)=: |
3298 | 3399 | ;; |
3299 | linux*) | |
3400 | linux* | k*bsd*-gnu) | |
3300 | 3401 | case $cc_basename in |
3301 | 3402 | KCC*) |
3302 | 3403 | # Kuck and Associates, Inc. (KAI) C++ Compiler |
3348 | 3449 | _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic' |
3349 | 3450 | _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive' |
3350 | 3451 | ;; |
3351 | pgCC*) | |
3452 | pgCC* | pgcpp*) | |
3352 | 3453 | # Portland Group C++ compiler |
3353 | 3454 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' |
3354 | 3455 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' |
3376 | 3477 | # dependencies. |
3377 | 3478 | output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' |
3378 | 3479 | ;; |
3480 | *) | |
3481 | case `$CC -V 2>&1 | sed 5q` in | |
3482 | *Sun\ C*) | |
3483 | # Sun C++ 5.9 | |
3484 | _LT_AC_TAGVAR(no_undefined_flag, $1)=' -zdefs' | |
3485 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' | |
3486 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' | |
3487 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' | |
3488 | _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' | |
3489 | ||
3490 | # Not sure whether something based on | |
3491 | # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | |
3492 | # would be better. | |
3493 | output_verbose_link_cmd='echo' | |
3494 | ||
3495 | # Archives containing C++ object files must be created using | |
3496 | # "CC -xar", where "CC" is the Sun C++ compiler. This is | |
3497 | # necessary to make sure instantiated templates are included | |
3498 | # in the archive. | |
3499 | _LT_AC_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' | |
3500 | ;; | |
3501 | esac | |
3502 | ;; | |
3379 | 3503 | esac |
3380 | 3504 | ;; |
3381 | 3505 | lynxos*) |
3398 | 3522 | ;; |
3399 | 3523 | esac |
3400 | 3524 | ;; |
3401 | netbsd*) | |
3525 | netbsd* | netbsdelf*-gnu) | |
3402 | 3526 | if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
3403 | 3527 | _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' |
3404 | 3528 | wlarc= |
3414 | 3538 | _LT_AC_TAGVAR(ld_shlibs, $1)=no |
3415 | 3539 | ;; |
3416 | 3540 | openbsd*) |
3417 | _LT_AC_TAGVAR(hardcode_direct, $1)=yes | |
3418 | _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no | |
3419 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' | |
3420 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | |
3421 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | |
3422 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' | |
3423 | _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' | |
3424 | _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' | |
3541 | if test -f /usr/libexec/ld.so; then | |
3542 | _LT_AC_TAGVAR(hardcode_direct, $1)=yes | |
3543 | _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no | |
3544 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' | |
3545 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | |
3546 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | |
3547 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' | |
3548 | _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' | |
3549 | _LT_AC_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' | |
3550 | fi | |
3551 | output_verbose_link_cmd='echo' | |
3552 | else | |
3553 | _LT_AC_TAGVAR(ld_shlibs, $1)=no | |
3425 | 3554 | fi |
3426 | output_verbose_link_cmd='echo' | |
3427 | 3555 | ;; |
3428 | 3556 | osf3*) |
3429 | 3557 | case $cc_basename in |
3585 | 3713 | case $host_os in |
3586 | 3714 | solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; |
3587 | 3715 | *) |
3588 | # The C++ compiler is used as linker so we must use $wl | |
3589 | # flag to pass the commands to the underlying system | |
3590 | # linker. We must also pass each convience library through | |
3591 | # to the system linker between allextract/defaultextract. | |
3592 | # The C++ compiler will combine linker options so we | |
3593 | # cannot just pass the convience library names through | |
3594 | # without $wl. | |
3716 | # The compiler driver will combine and reorder linker options, | |
3717 | # but understands `-z linker_flag'. | |
3595 | 3718 | # Supported since Solaris 2.6 (maybe 2.5.1?) |
3596 | _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' | |
3719 | _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' | |
3597 | 3720 | ;; |
3598 | 3721 | esac |
3599 | 3722 | _LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
3640 | 3763 | fi |
3641 | 3764 | |
3642 | 3765 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir' |
3766 | case $host_os in | |
3767 | solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; | |
3768 | *) | |
3769 | _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' | |
3770 | ;; | |
3771 | esac | |
3643 | 3772 | fi |
3644 | 3773 | ;; |
3645 | 3774 | esac |
3755 | 3884 | # compiler output when linking a shared library. |
3756 | 3885 | # Parse the compiler output and extract the necessary |
3757 | 3886 | # objects, libraries and library flags. |
3758 | AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP],[ | |
3887 | AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP], | |
3888 | [AC_REQUIRE([LT_AC_PROG_SED])dnl | |
3759 | 3889 | dnl we can't use the lt_simple_compile_test_code here, |
3760 | 3890 | dnl because it contains code intended for an executable, |
3761 | 3891 | dnl not a library. It's possible we should let each |
3880 | 4010 | |
3881 | 4011 | $rm -f confest.$objext |
3882 | 4012 | |
4013 | _LT_AC_TAGVAR(compiler_lib_search_dirs, $1)= | |
4014 | if test -n "$_LT_AC_TAGVAR(compiler_lib_search_path, $1)"; then | |
4015 | _LT_AC_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_AC_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` | |
4016 | fi | |
4017 | ||
3883 | 4018 | # PORTME: override above test on systems where it is broken |
3884 | 4019 | ifelse([$1],[CXX], |
3885 | 4020 | [case $host_os in |
3886 | interix3*) | |
4021 | interix[[3-9]]*) | |
3887 | 4022 | # Interix 3.5 installs completely hosed .la files for C++, so rather than |
3888 | 4023 | # hack all around it, let's just trust "g++" to DTRT. |
3889 | 4024 | _LT_AC_TAGVAR(predep_objects,$1)= |
3891 | 4026 | _LT_AC_TAGVAR(postdeps,$1)= |
3892 | 4027 | ;; |
3893 | 4028 | |
4029 | linux*) | |
4030 | case `$CC -V 2>&1 | sed 5q` in | |
4031 | *Sun\ C*) | |
4032 | # Sun C++ 5.9 | |
4033 | # | |
4034 | # The more standards-conforming stlport4 library is | |
4035 | # incompatible with the Cstd library. Avoid specifying | |
4036 | # it if it's in CXXFLAGS. Ignore libCrun as | |
4037 | # -library=stlport4 depends on it. | |
4038 | case " $CXX $CXXFLAGS " in | |
4039 | *" -library=stlport4 "*) | |
4040 | solaris_use_stlport4=yes | |
4041 | ;; | |
4042 | esac | |
4043 | if test "$solaris_use_stlport4" != yes; then | |
4044 | _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' | |
4045 | fi | |
4046 | ;; | |
4047 | esac | |
4048 | ;; | |
4049 | ||
3894 | 4050 | solaris*) |
3895 | 4051 | case $cc_basename in |
3896 | 4052 | CC*) |
4053 | # The more standards-conforming stlport4 library is | |
4054 | # incompatible with the Cstd library. Avoid specifying | |
4055 | # it if it's in CXXFLAGS. Ignore libCrun as | |
4056 | # -library=stlport4 depends on it. | |
4057 | case " $CXX $CXXFLAGS " in | |
4058 | *" -library=stlport4 "*) | |
4059 | solaris_use_stlport4=yes | |
4060 | ;; | |
4061 | esac | |
4062 | ||
3897 | 4063 | # Adding this requires a known-good setup of shared libraries for |
3898 | 4064 | # Sun compiler versions before 5.6, else PIC objects from an old |
3899 | 4065 | # archive will be linked into the output, leading to subtle bugs. |
3900 | _LT_AC_TAGVAR(postdeps,$1)='-lCstd -lCrun' | |
4066 | if test "$solaris_use_stlport4" != yes; then | |
4067 | _LT_AC_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun' | |
4068 | fi | |
3901 | 4069 | ;; |
3902 | 4070 | esac |
3903 | 4071 | ;; |
3904 | 4072 | esac |
3905 | 4073 | ]) |
3906 | ||
3907 | 4074 | case " $_LT_AC_TAGVAR(postdeps, $1) " in |
3908 | 4075 | *" -lc "*) _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no ;; |
3909 | 4076 | esac |
3946 | 4113 | _LT_AC_TAGVAR(objext, $1)=$objext |
3947 | 4114 | |
3948 | 4115 | # Code to be used in simple compile tests |
3949 | lt_simple_compile_test_code=" subroutine t\n return\n end\n" | |
4116 | lt_simple_compile_test_code="\ | |
4117 | subroutine t | |
4118 | return | |
4119 | end | |
4120 | " | |
3950 | 4121 | |
3951 | 4122 | # Code to be used in simple link tests |
3952 | lt_simple_link_test_code=" program t\n end\n" | |
4123 | lt_simple_link_test_code="\ | |
4124 | program t | |
4125 | end | |
4126 | " | |
3953 | 4127 | |
3954 | 4128 | # ltmain only uses $CC for tagged configurations so make sure $CC is set. |
3955 | 4129 | _LT_AC_SYS_COMPILER |
3981 | 4155 | postinstall_cmds='$RANLIB $lib' |
3982 | 4156 | fi |
3983 | 4157 | ;; |
3984 | aix4* | aix5*) | |
4158 | aix[[4-9]]*) | |
3985 | 4159 | if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then |
3986 | 4160 | test "$enable_shared" = yes && enable_static=no |
3987 | 4161 | fi |
4028 | 4202 | _LT_AC_TAGVAR(objext, $1)=$objext |
4029 | 4203 | |
4030 | 4204 | # Code to be used in simple compile tests |
4031 | lt_simple_compile_test_code="class foo {}\n" | |
4205 | lt_simple_compile_test_code="class foo {}" | |
4032 | 4206 | |
4033 | 4207 | # Code to be used in simple link tests |
4034 | lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }\n' | |
4208 | lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' | |
4035 | 4209 | |
4036 | 4210 | # ltmain only uses $CC for tagged configurations so make sure $CC is set. |
4037 | 4211 | _LT_AC_SYS_COMPILER |
4046 | 4220 | compiler=$CC |
4047 | 4221 | _LT_AC_TAGVAR(compiler, $1)=$CC |
4048 | 4222 | _LT_CC_BASENAME([$compiler]) |
4049 | _LT_AC_TAGVAR(LD, $1)="$LD" | |
4050 | 4223 | |
4051 | 4224 | # GCJ did not exist at the time GCC didn't implicitly link libc in. |
4052 | 4225 | _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
4085 | 4258 | _LT_AC_TAGVAR(objext, $1)=$objext |
4086 | 4259 | |
4087 | 4260 | # Code to be used in simple compile tests |
4088 | lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' | |
4261 | lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' | |
4089 | 4262 | |
4090 | 4263 | # Code to be used in simple link tests |
4091 | 4264 | lt_simple_link_test_code="$lt_simple_compile_test_code" |
4159 | 4332 | _LT_AC_TAGVAR(predeps, $1) \ |
4160 | 4333 | _LT_AC_TAGVAR(postdeps, $1) \ |
4161 | 4334 | _LT_AC_TAGVAR(compiler_lib_search_path, $1) \ |
4335 | _LT_AC_TAGVAR(compiler_lib_search_dirs, $1) \ | |
4162 | 4336 | _LT_AC_TAGVAR(archive_cmds, $1) \ |
4163 | 4337 | _LT_AC_TAGVAR(archive_expsym_cmds, $1) \ |
4164 | 4338 | _LT_AC_TAGVAR(postinstall_cmds, $1) \ |
4174 | 4348 | _LT_AC_TAGVAR(module_cmds, $1) \ |
4175 | 4349 | _LT_AC_TAGVAR(module_expsym_cmds, $1) \ |
4176 | 4350 | _LT_AC_TAGVAR(lt_cv_prog_compiler_c_o, $1) \ |
4351 | _LT_AC_TAGVAR(fix_srcfile_path, $1) \ | |
4177 | 4352 | _LT_AC_TAGVAR(exclude_expsyms, $1) \ |
4178 | 4353 | _LT_AC_TAGVAR(include_expsyms, $1); do |
4179 | 4354 | |
4220 | 4395 | # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) |
4221 | 4396 | # NOTE: Changes made to this file will be lost: look at ltmain.sh. |
4222 | 4397 | # |
4223 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 | |
4398 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 | |
4224 | 4399 | # Free Software Foundation, Inc. |
4225 | 4400 | # |
4226 | 4401 | # This file is part of GNU Libtool: |
4310 | 4485 | # Is the compiler the GNU C compiler? |
4311 | 4486 | with_gcc=$_LT_AC_TAGVAR(GCC, $1) |
4312 | 4487 | |
4313 | gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` | |
4314 | gcc_ver=\`gcc -dumpversion\` | |
4315 | ||
4316 | 4488 | # An ERE matcher. |
4317 | 4489 | EGREP=$lt_EGREP |
4318 | 4490 | |
4446 | 4618 | |
4447 | 4619 | # Dependencies to place before the objects being linked to create a |
4448 | 4620 | # shared library. |
4449 | predep_objects=\`echo $lt_[]_LT_AC_TAGVAR(predep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
4621 | predep_objects=$lt_[]_LT_AC_TAGVAR(predep_objects, $1) | |
4450 | 4622 | |
4451 | 4623 | # Dependencies to place after the objects being linked to create a |
4452 | 4624 | # shared library. |
4453 | postdep_objects=\`echo $lt_[]_LT_AC_TAGVAR(postdep_objects, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
4625 | postdep_objects=$lt_[]_LT_AC_TAGVAR(postdep_objects, $1) | |
4454 | 4626 | |
4455 | 4627 | # Dependencies to place before the objects being linked to create a |
4456 | 4628 | # shared library. |
4460 | 4632 | # shared library. |
4461 | 4633 | postdeps=$lt_[]_LT_AC_TAGVAR(postdeps, $1) |
4462 | 4634 | |
4635 | # The directories searched by this compiler when creating a shared | |
4636 | # library | |
4637 | compiler_lib_search_dirs=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_dirs, $1) | |
4638 | ||
4463 | 4639 | # The library search path used internally by the compiler when linking |
4464 | 4640 | # a shared library. |
4465 | compiler_lib_search_path=\`echo $lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
4641 | compiler_lib_search_path=$lt_[]_LT_AC_TAGVAR(compiler_lib_search_path, $1) | |
4466 | 4642 | |
4467 | 4643 | # Method to check whether dependent libraries are shared objects. |
4468 | 4644 | deplibs_check_method=$lt_deplibs_check_method |
4542 | 4718 | link_all_deplibs=$_LT_AC_TAGVAR(link_all_deplibs, $1) |
4543 | 4719 | |
4544 | 4720 | # Compile-time system search path for libraries |
4545 | sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
4721 | sys_lib_search_path_spec=$lt_sys_lib_search_path_spec | |
4546 | 4722 | |
4547 | 4723 | # Run-time system search path for libraries |
4548 | 4724 | sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec |
4549 | 4725 | |
4550 | 4726 | # Fix the shell variable \$srcfile for the compiler. |
4551 | fix_srcfile_path="$_LT_AC_TAGVAR(fix_srcfile_path, $1)" | |
4727 | fix_srcfile_path=$lt_fix_srcfile_path | |
4552 | 4728 | |
4553 | 4729 | # Set to yes if exported symbols are required. |
4554 | 4730 | always_export_symbols=$_LT_AC_TAGVAR(always_export_symbols, $1) |
4631 | 4807 | # --------------------------------- |
4632 | 4808 | AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], |
4633 | 4809 | [AC_REQUIRE([AC_CANONICAL_HOST]) |
4810 | AC_REQUIRE([LT_AC_PROG_SED]) | |
4634 | 4811 | AC_REQUIRE([AC_PROG_NM]) |
4635 | 4812 | AC_REQUIRE([AC_OBJEXT]) |
4636 | 4813 | # Check for command to grab the raw symbol name followed by C symbol from nm. |
4667 | 4844 | lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" |
4668 | 4845 | lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" |
4669 | 4846 | ;; |
4670 | linux*) | |
4847 | linux* | k*bsd*-gnu) | |
4671 | 4848 | if test "$host_cpu" = ia64; then |
4672 | 4849 | symcode='[[ABCDGIRSTW]]' |
4673 | 4850 | lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" |
4808 | 4985 | echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD |
4809 | 4986 | cat conftest.$ac_ext >&5 |
4810 | 4987 | fi |
4811 | rm -f conftest* conftst* | |
4988 | rm -rf conftest* conftst* | |
4812 | 4989 | |
4813 | 4990 | # Do not use the global_symbol_pipe unless it works. |
4814 | 4991 | if test "$pipe_works" = yes; then |
4857 | 5034 | # like `-m68040'. |
4858 | 5035 | _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' |
4859 | 5036 | ;; |
4860 | beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | |
5037 | beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | |
4861 | 5038 | # PIC is the default for these OSes. |
4862 | 5039 | ;; |
4863 | mingw* | os2* | pw32*) | |
5040 | mingw* | cygwin* | os2* | pw32*) | |
4864 | 5041 | # This hack is so that the source file can tell whether it is being |
4865 | 5042 | # built for inclusion in a dll (and should export symbols for example). |
4866 | _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' | |
5043 | # Although the cygwin gcc ignores -fPIC, still need this for old-style | |
5044 | # (--disable-auto-import) libraries | |
5045 | m4_if([$1], [GCJ], [], | |
5046 | [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) | |
4867 | 5047 | ;; |
4868 | 5048 | darwin* | rhapsody*) |
4869 | 5049 | # PIC is the default on this platform |
4874 | 5054 | # DJGPP does not support shared libraries at all |
4875 | 5055 | _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)= |
4876 | 5056 | ;; |
4877 | interix3*) | |
5057 | interix[[3-9]]*) | |
4878 | 5058 | # Interix 3.x gcc -fpic/-fPIC options generate broken code. |
4879 | 5059 | # Instead, we relocate shared libraries at runtime. |
4880 | 5060 | ;; |
4900 | 5080 | esac |
4901 | 5081 | else |
4902 | 5082 | case $host_os in |
4903 | aix4* | aix5*) | |
5083 | aix[[4-9]]*) | |
4904 | 5084 | # All AIX code is PIC. |
4905 | 5085 | if test "$host_cpu" = ia64; then |
4906 | 5086 | # AIX 5 now supports IA64 processor |
4940 | 5120 | ;; |
4941 | 5121 | esac |
4942 | 5122 | ;; |
4943 | freebsd* | kfreebsd*-gnu | dragonfly*) | |
5123 | freebsd* | dragonfly*) | |
4944 | 5124 | # FreeBSD uses GNU C++ |
4945 | 5125 | ;; |
4946 | 5126 | hpux9* | hpux10* | hpux11*) |
4983 | 5163 | ;; |
4984 | 5164 | esac |
4985 | 5165 | ;; |
4986 | linux*) | |
5166 | linux* | k*bsd*-gnu) | |
4987 | 5167 | case $cc_basename in |
4988 | 5168 | KCC*) |
4989 | 5169 | # KAI C++ Compiler |
4996 | 5176 | _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' |
4997 | 5177 | _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-static' |
4998 | 5178 | ;; |
4999 | pgCC*) | |
5179 | pgCC* | pgcpp*) | |
5000 | 5180 | # Portland Group C++ compiler. |
5001 | 5181 | _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
5002 | 5182 | _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' |
5010 | 5190 | _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' |
5011 | 5191 | ;; |
5012 | 5192 | *) |
5193 | case `$CC -V 2>&1 | sed 5q` in | |
5194 | *Sun\ C*) | |
5195 | # Sun C++ 5.9 | |
5196 | _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | |
5197 | _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | |
5198 | _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' | |
5199 | ;; | |
5200 | esac | |
5013 | 5201 | ;; |
5014 | 5202 | esac |
5015 | 5203 | ;; |
5026 | 5214 | ;; |
5027 | 5215 | esac |
5028 | 5216 | ;; |
5029 | netbsd*) | |
5217 | netbsd* | netbsdelf*-gnu) | |
5030 | 5218 | ;; |
5031 | 5219 | osf3* | osf4* | osf5*) |
5032 | 5220 | case $cc_basename in |
5130 | 5318 | _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' |
5131 | 5319 | ;; |
5132 | 5320 | |
5133 | beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | |
5321 | beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | |
5134 | 5322 | # PIC is the default for these OSes. |
5135 | 5323 | ;; |
5136 | 5324 | |
5137 | mingw* | pw32* | os2*) | |
5325 | mingw* | cygwin* | pw32* | os2*) | |
5138 | 5326 | # This hack is so that the source file can tell whether it is being |
5139 | 5327 | # built for inclusion in a dll (and should export symbols for example). |
5140 | _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' | |
5328 | # Although the cygwin gcc ignores -fPIC, still need this for old-style | |
5329 | # (--disable-auto-import) libraries | |
5330 | m4_if([$1], [GCJ], [], | |
5331 | [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) | |
5141 | 5332 | ;; |
5142 | 5333 | |
5143 | 5334 | darwin* | rhapsody*) |
5146 | 5337 | _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' |
5147 | 5338 | ;; |
5148 | 5339 | |
5149 | interix3*) | |
5340 | interix[[3-9]]*) | |
5150 | 5341 | # Interix 3.x gcc -fpic/-fPIC options generate broken code. |
5151 | 5342 | # Instead, we relocate shared libraries at runtime. |
5152 | 5343 | ;; |
5204 | 5395 | esac |
5205 | 5396 | ;; |
5206 | 5397 | |
5207 | mingw* | pw32* | os2*) | |
5398 | mingw* | cygwin* | pw32* | os2*) | |
5208 | 5399 | # This hack is so that the source file can tell whether it is being |
5209 | 5400 | # built for inclusion in a dll (and should export symbols for example). |
5210 | _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT' | |
5401 | m4_if([$1], [GCJ], [], | |
5402 | [_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) | |
5211 | 5403 | ;; |
5212 | 5404 | |
5213 | 5405 | hpux9* | hpux10* | hpux11*) |
5237 | 5429 | _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' |
5238 | 5430 | ;; |
5239 | 5431 | |
5240 | linux*) | |
5432 | linux* | k*bsd*-gnu) | |
5241 | 5433 | case $cc_basename in |
5242 | 5434 | icc* | ecc*) |
5243 | 5435 | _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
5256 | 5448 | # All Alpha code is PIC. |
5257 | 5449 | _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' |
5258 | 5450 | ;; |
5451 | *) | |
5452 | case `$CC -V 2>&1 | sed 5q` in | |
5453 | *Sun\ C*) | |
5454 | # Sun C 5.9 | |
5455 | _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | |
5456 | _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | |
5457 | _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' | |
5458 | ;; | |
5459 | *Sun\ F*) | |
5460 | # Sun Fortran 8.3 passes all unrecognized flags to the linker | |
5461 | _LT_AC_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' | |
5462 | _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' | |
5463 | _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='' | |
5464 | ;; | |
5465 | esac | |
5466 | ;; | |
5259 | 5467 | esac |
5260 | 5468 | ;; |
5261 | 5469 | |
5262 | 5470 | osf3* | osf4* | osf5*) |
5263 | 5471 | _LT_AC_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' |
5264 | 5472 | # All OSF/1 code is PIC. |
5473 | _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' | |
5474 | ;; | |
5475 | ||
5476 | rdos*) | |
5265 | 5477 | _LT_AC_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' |
5266 | 5478 | ;; |
5267 | 5479 | |
5324 | 5536 | # |
5325 | 5537 | if test -n "$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)"; then |
5326 | 5538 | AC_LIBTOOL_COMPILER_OPTION([if $compiler PIC flag $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) works], |
5327 | _LT_AC_TAGVAR(lt_prog_compiler_pic_works, $1), | |
5539 | _LT_AC_TAGVAR(lt_cv_prog_compiler_pic_works, $1), | |
5328 | 5540 | [$_LT_AC_TAGVAR(lt_prog_compiler_pic, $1)ifelse([$1],[],[ -DPIC],[ifelse([$1],[CXX],[ -DPIC],[])])], [], |
5329 | 5541 | [case $_LT_AC_TAGVAR(lt_prog_compiler_pic, $1) in |
5330 | 5542 | "" | " "*) ;; |
5348 | 5560 | # |
5349 | 5561 | wl=$_LT_AC_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_AC_TAGVAR(lt_prog_compiler_static, $1)\" |
5350 | 5562 | AC_LIBTOOL_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], |
5351 | _LT_AC_TAGVAR(lt_prog_compiler_static_works, $1), | |
5563 | _LT_AC_TAGVAR(lt_cv_prog_compiler_static_works, $1), | |
5352 | 5564 | $lt_tmp_static_flag, |
5353 | 5565 | [], |
5354 | 5566 | [_LT_AC_TAGVAR(lt_prog_compiler_static, $1)=]) |
5359 | 5571 | # ------------------------------------ |
5360 | 5572 | # See if the linker supports building shared libraries. |
5361 | 5573 | AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS], |
5362 | [AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) | |
5574 | [AC_REQUIRE([LT_AC_PROG_SED])dnl | |
5575 | AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) | |
5363 | 5576 | ifelse([$1],[CXX],[ |
5364 | 5577 | _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' |
5365 | 5578 | case $host_os in |
5366 | aix4* | aix5*) | |
5579 | aix[[4-9]]*) | |
5367 | 5580 | # If we're using GNU nm, then we don't want the "-C" option. |
5368 | 5581 | # -C means demangle to AIX nm, but means don't demangle with GNU nm |
5369 | 5582 | if $NM -V 2>&1 | grep 'GNU' > /dev/null; then |
5376 | 5589 | _LT_AC_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds" |
5377 | 5590 | ;; |
5378 | 5591 | cygwin* | mingw*) |
5379 | _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([[^ ]]*\) [[^ ]]*/\1 DATA/;/^I /d;/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' | |
5592 | _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;/^.*[[ ]]__nm__/s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' | |
5593 | ;; | |
5594 | linux* | k*bsd*-gnu) | |
5595 | _LT_AC_TAGVAR(link_all_deplibs, $1)=no | |
5380 | 5596 | ;; |
5381 | 5597 | *) |
5382 | 5598 | _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' |
5383 | 5599 | ;; |
5384 | 5600 | esac |
5601 | _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] | |
5385 | 5602 | ],[ |
5386 | 5603 | runpath_var= |
5387 | 5604 | _LT_AC_TAGVAR(allow_undefined_flag, $1)= |
5412 | 5629 | # it will be wrapped by ` (' and `)$', so one must not match beginning or |
5413 | 5630 | # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', |
5414 | 5631 | # as well as any symbol that contains `d'. |
5415 | _LT_AC_TAGVAR(exclude_expsyms, $1)="_GLOBAL_OFFSET_TABLE_" | |
5632 | _LT_AC_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] | |
5416 | 5633 | # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out |
5417 | 5634 | # platforms (ab)use it in PIC code, but their linkers get confused if |
5418 | 5635 | # the symbol is explicitly referenced. Since portable code cannot |
5419 | 5636 | # rely on this symbol name, it's probably fine to never include it in |
5420 | 5637 | # preloaded symbol tables. |
5638 | # Exclude shared library initialization/finalization symbols. | |
5639 | dnl Note also adjust exclude_expsyms for C++ above. | |
5421 | 5640 | extract_expsyms_cmds= |
5422 | 5641 | # Just being paranoid about ensuring that cc_basename is set. |
5423 | 5642 | _LT_CC_BASENAME([$compiler]) |
5467 | 5686 | |
5468 | 5687 | # See if GNU ld supports shared libraries. |
5469 | 5688 | case $host_os in |
5470 | aix3* | aix4* | aix5*) | |
5689 | aix[[3-9]]*) | |
5471 | 5690 | # On AIX/PPC, the GNU linker is very broken |
5472 | 5691 | if test "$host_cpu" != ia64; then |
5473 | 5692 | _LT_AC_TAGVAR(ld_shlibs, $1)=no |
5515 | 5734 | _LT_AC_TAGVAR(allow_undefined_flag, $1)=unsupported |
5516 | 5735 | _LT_AC_TAGVAR(always_export_symbols, $1)=no |
5517 | 5736 | _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes |
5518 | _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]] /s/.* \([[^ ]]*\)/\1 DATA/'\'' | $SED -e '\''/^[[AITW]] /s/.* //'\'' | sort | uniq > $export_symbols' | |
5737 | _LT_AC_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/'\'' -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' | |
5519 | 5738 | |
5520 | 5739 | if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then |
5521 | 5740 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' |
5533 | 5752 | fi |
5534 | 5753 | ;; |
5535 | 5754 | |
5536 | interix3*) | |
5755 | interix[[3-9]]*) | |
5537 | 5756 | _LT_AC_TAGVAR(hardcode_direct, $1)=no |
5538 | 5757 | _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
5539 | 5758 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' |
5548 | 5767 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' |
5549 | 5768 | ;; |
5550 | 5769 | |
5551 | linux*) | |
5770 | gnu* | linux* | k*bsd*-gnu) | |
5552 | 5771 | if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then |
5553 | 5772 | tmp_addflag= |
5554 | 5773 | case $cc_basename,$host_cpu in |
5566 | 5785 | ifc* | ifort*) # Intel Fortran compiler |
5567 | 5786 | tmp_addflag=' -nofor_main' ;; |
5568 | 5787 | esac |
5569 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | |
5788 | case `$CC -V 2>&1 | sed 5q` in | |
5789 | *Sun\ C*) # Sun C 5.9 | |
5790 | _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' | |
5791 | tmp_sharedflag='-G' ;; | |
5792 | *Sun\ F*) # Sun Fortran 8.3 | |
5793 | tmp_sharedflag='-G' ;; | |
5794 | *) | |
5795 | tmp_sharedflag='-shared' ;; | |
5796 | esac | |
5797 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | |
5570 | 5798 | |
5571 | 5799 | if test $supports_anon_versioning = yes; then |
5572 | 5800 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$echo "{ global:" > $output_objdir/$libname.ver~ |
5573 | 5801 | cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ |
5574 | 5802 | $echo "local: *; };" >> $output_objdir/$libname.ver~ |
5575 | $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' | |
5803 | $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' | |
5576 | 5804 | fi |
5805 | _LT_AC_TAGVAR(link_all_deplibs, $1)=no | |
5577 | 5806 | else |
5578 | 5807 | _LT_AC_TAGVAR(ld_shlibs, $1)=no |
5579 | 5808 | fi |
5580 | 5809 | ;; |
5581 | 5810 | |
5582 | netbsd*) | |
5811 | netbsd* | netbsdelf*-gnu) | |
5583 | 5812 | if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
5584 | 5813 | _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' |
5585 | 5814 | wlarc= |
5612 | 5841 | |
5613 | 5842 | sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) |
5614 | 5843 | case `$LD -v 2>&1` in |
5615 | *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) | |
5844 | *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) | |
5616 | 5845 | _LT_AC_TAGVAR(ld_shlibs, $1)=no |
5617 | 5846 | cat <<_LT_EOF 1>&2 |
5618 | 5847 | |
5677 | 5906 | fi |
5678 | 5907 | ;; |
5679 | 5908 | |
5680 | aix4* | aix5*) | |
5909 | aix[[4-9]]*) | |
5681 | 5910 | if test "$host_cpu" = ia64; then |
5682 | 5911 | # On IA64, the linker does run time linking by default, so we don't |
5683 | 5912 | # have to do anything special. |
5697 | 5926 | # Test if we are trying to use run time linking or normal |
5698 | 5927 | # AIX style linking. If -brtl is somewhere in LDFLAGS, we |
5699 | 5928 | # need to do runtime linking. |
5700 | case $host_os in aix4.[[23]]|aix4.[[23]].*|aix5*) | |
5929 | case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) | |
5701 | 5930 | for ld_flag in $LDFLAGS; do |
5702 | 5931 | if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then |
5703 | 5932 | aix_use_runtimelinking=yes |
5731 | 5960 | strings "$collect2name" | grep resolve_lib_name >/dev/null |
5732 | 5961 | then |
5733 | 5962 | # We have reworked collect2 |
5734 | _LT_AC_TAGVAR(hardcode_direct, $1)=yes | |
5963 | : | |
5735 | 5964 | else |
5736 | 5965 | # We have old collect2 |
5737 | 5966 | _LT_AC_TAGVAR(hardcode_direct, $1)=unsupported |
5824 | 6053 | # The linker will automatically build a .lib file if we build a DLL. |
5825 | 6054 | _LT_AC_TAGVAR(old_archive_From_new_cmds, $1)='true' |
5826 | 6055 | # FIXME: Should let the user specify the lib program. |
5827 | _LT_AC_TAGVAR(old_archive_cmds, $1)='lib /OUT:$oldlib$oldobjs$old_deplibs' | |
6056 | _LT_AC_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' | |
5828 | 6057 | _LT_AC_TAGVAR(fix_srcfile_path, $1)='`cygpath -w "$srcfile"`' |
5829 | 6058 | _LT_AC_TAGVAR(enable_shared_with_static_runtimes, $1)=yes |
5830 | 6059 | ;; |
5857 | 6086 | _LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
5858 | 6087 | if test "$GCC" = yes ; then |
5859 | 6088 | output_verbose_link_cmd='echo' |
5860 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' | |
5861 | _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' | |
5862 | # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds | |
5863 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
5864 | _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
6089 | _LT_AC_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" | |
6090 | _LT_AC_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" | |
6091 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" | |
6092 | _LT_AC_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" | |
5865 | 6093 | else |
5866 | 6094 | case $cc_basename in |
5867 | 6095 | xlc*) |
5868 | 6096 | output_verbose_link_cmd='echo' |
5869 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' | |
6097 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' | |
5870 | 6098 | _LT_AC_TAGVAR(module_cmds, $1)='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' |
5871 | 6099 | # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds |
5872 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
6100 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
5873 | 6101 | _LT_AC_TAGVAR(module_expsym_cmds, $1)='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
5874 | 6102 | ;; |
5875 | 6103 | *) |
5909 | 6137 | ;; |
5910 | 6138 | |
5911 | 6139 | # FreeBSD 3 and greater uses gcc -shared to do shared libraries. |
5912 | freebsd* | kfreebsd*-gnu | dragonfly*) | |
6140 | freebsd* | dragonfly*) | |
5913 | 6141 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' |
5914 | 6142 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' |
5915 | 6143 | _LT_AC_TAGVAR(hardcode_direct, $1)=yes |
6011 | 6239 | _LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
6012 | 6240 | ;; |
6013 | 6241 | |
6014 | netbsd*) | |
6242 | netbsd* | netbsdelf*-gnu) | |
6015 | 6243 | if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
6016 | 6244 | _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out |
6017 | 6245 | else |
6031 | 6259 | ;; |
6032 | 6260 | |
6033 | 6261 | openbsd*) |
6034 | _LT_AC_TAGVAR(hardcode_direct, $1)=yes | |
6035 | _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no | |
6036 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | |
6037 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
6038 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' | |
6039 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | |
6040 | _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' | |
6262 | if test -f /usr/libexec/ld.so; then | |
6263 | _LT_AC_TAGVAR(hardcode_direct, $1)=yes | |
6264 | _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no | |
6265 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | |
6266 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
6267 | _LT_AC_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' | |
6268 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | |
6269 | _LT_AC_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E' | |
6270 | else | |
6271 | case $host_os in | |
6272 | openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) | |
6273 | _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' | |
6274 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' | |
6275 | ;; | |
6276 | *) | |
6277 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
6278 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | |
6279 | ;; | |
6280 | esac | |
6281 | fi | |
6041 | 6282 | else |
6042 | case $host_os in | |
6043 | openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*) | |
6044 | _LT_AC_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' | |
6045 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' | |
6046 | ;; | |
6047 | *) | |
6048 | _LT_AC_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
6049 | _LT_AC_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir' | |
6050 | ;; | |
6051 | esac | |
6283 | _LT_AC_TAGVAR(ld_shlibs, $1)=no | |
6052 | 6284 | fi |
6053 | 6285 | ;; |
6054 | 6286 | |
6107 | 6339 | case $host_os in |
6108 | 6340 | solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; |
6109 | 6341 | *) |
6110 | # The compiler driver will combine linker options so we | |
6111 | # cannot just pass the convience library names through | |
6112 | # without $wl, iff we do not link with $LD. | |
6113 | # Luckily, gcc supports the same syntax we need for Sun Studio. | |
6342 | # The compiler driver will combine and reorder linker options, | |
6343 | # but understands `-z linker_flag'. GCC discards it without `$wl', | |
6344 | # but is careful enough not to reorder. | |
6114 | 6345 | # Supported since Solaris 2.6 (maybe 2.5.1?) |
6115 | case $wlarc in | |
6116 | '') | |
6117 | _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' ;; | |
6118 | *) | |
6119 | _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; | |
6120 | esac ;; | |
6346 | if test "$GCC" = yes; then | |
6347 | _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' | |
6348 | else | |
6349 | _LT_AC_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' | |
6350 | fi | |
6351 | ;; | |
6121 | 6352 | esac |
6122 | 6353 | _LT_AC_TAGVAR(link_all_deplibs, $1)=yes |
6123 | 6354 | ;; |
6174 | 6405 | fi |
6175 | 6406 | ;; |
6176 | 6407 | |
6177 | sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7*) | |
6408 | sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) | |
6178 | 6409 | _LT_AC_TAGVAR(no_undefined_flag, $1)='${wl}-z,text' |
6179 | 6410 | _LT_AC_TAGVAR(archive_cmds_need_lc, $1)=no |
6180 | 6411 | _LT_AC_TAGVAR(hardcode_shlibpath_var, $1)=no |
6249 | 6480 | # to ld, don't add -lc before -lgcc. |
6250 | 6481 | AC_MSG_CHECKING([whether -lc should be explicitly linked in]) |
6251 | 6482 | $rm conftest* |
6252 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
6483 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
6253 | 6484 | |
6254 | 6485 | if AC_TRY_EVAL(ac_compile) 2>conftest.err; then |
6255 | 6486 | soname=conftest |
6352 | 6583 | [AC_CHECK_TOOL(RC, windres, no) |
6353 | 6584 | ]) |
6354 | 6585 | |
6586 | ||
6587 | # Cheap backport of AS_EXECUTABLE_P and required macros | |
6588 | # from Autoconf 2.59; we should not use $as_executable_p directly. | |
6589 | ||
6590 | # _AS_TEST_PREPARE | |
6591 | # ---------------- | |
6592 | m4_ifndef([_AS_TEST_PREPARE], | |
6593 | [m4_defun([_AS_TEST_PREPARE], | |
6594 | [if test -x / >/dev/null 2>&1; then | |
6595 | as_executable_p='test -x' | |
6596 | else | |
6597 | as_executable_p='test -f' | |
6598 | fi | |
6599 | ])])# _AS_TEST_PREPARE | |
6600 | ||
6601 | # AS_EXECUTABLE_P | |
6602 | # --------------- | |
6603 | # Check whether a file is executable. | |
6604 | m4_ifndef([AS_EXECUTABLE_P], | |
6605 | [m4_defun([AS_EXECUTABLE_P], | |
6606 | [AS_REQUIRE([_AS_TEST_PREPARE])dnl | |
6607 | $as_executable_p $1[]dnl | |
6608 | ])])# AS_EXECUTABLE_P | |
6609 | ||
6355 | 6610 | # NOTE: This macro has been submitted for inclusion into # |
6356 | 6611 | # GNU Autoconf as AC_PROG_SED. When it is available in # |
6357 | 6612 | # a released version of Autoconf we should remove this # |
6372 | 6627 | test -z "$as_dir" && as_dir=. |
6373 | 6628 | for lt_ac_prog in sed gsed; do |
6374 | 6629 | for ac_exec_ext in '' $ac_executable_extensions; do |
6375 | if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then | |
6630 | if AS_EXECUTABLE_P(["$as_dir/$lt_ac_prog$ac_exec_ext"]); then | |
6376 | 6631 | lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" |
6377 | 6632 | fi |
6378 | 6633 | done |
6379 | 6634 | done |
6380 | 6635 | done |
6636 | IFS=$as_save_IFS | |
6381 | 6637 | lt_ac_max=0 |
6382 | 6638 | lt_ac_count=0 |
6383 | 6639 | # Add /usr/xpg4/bin/sed as it is typically found on Solaris |
6410 | 6666 | done |
6411 | 6667 | ]) |
6412 | 6668 | SED=$lt_cv_path_SED |
6669 | AC_SUBST([SED]) | |
6413 | 6670 | AC_MSG_RESULT([$SED]) |
6414 | 6671 | ]) |
6415 | 6672 | |
6416 | # Copyright (C) 2002, 2003, 2005, 2006 Free Software Foundation, Inc. | |
6673 | # Copyright (C) 2002, 2003, 2005, 2006, 2007 Free Software Foundation, Inc. | |
6417 | 6674 | # |
6418 | 6675 | # This file is free software; the Free Software Foundation |
6419 | 6676 | # gives unlimited permission to copy and/or distribute it, |
6428 | 6685 | [am__api_version='1.10' |
6429 | 6686 | dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to |
6430 | 6687 | dnl require some minimum version. Point them to the right macro. |
6431 | m4_if([$1], [1.10], [], | |
6688 | m4_if([$1], [1.10.1], [], | |
6432 | 6689 | [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl |
6433 | 6690 | ]) |
6434 | 6691 | |
6444 | 6701 | # Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. |
6445 | 6702 | # This function is AC_REQUIREd by AC_INIT_AUTOMAKE. |
6446 | 6703 | AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], |
6447 | [AM_AUTOMAKE_VERSION([1.10])dnl | |
6448 | _AM_AUTOCONF_VERSION(m4_PACKAGE_VERSION)]) | |
6704 | [AM_AUTOMAKE_VERSION([1.10.1])dnl | |
6705 | m4_ifndef([AC_AUTOCONF_VERSION], | |
6706 | [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl | |
6707 | _AM_AUTOCONF_VERSION(AC_AUTOCONF_VERSION)]) | |
6449 | 6708 | |
6450 | 6709 | # AM_AUX_DIR_EXPAND -*- Autoconf -*- |
6451 | 6710 | |
6717 | 6976 | # each Makefile.in and add a new line on top of each file to say so. |
6718 | 6977 | # Grep'ing the whole file is not good either: AIX grep has a line |
6719 | 6978 | # limit of 2048, but all sed's we know have understand at least 4000. |
6720 | if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then | |
6979 | if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then | |
6721 | 6980 | dirpart=`AS_DIRNAME("$mf")` |
6722 | 6981 | else |
6723 | 6982 | continue |
6777 | 7036 | # Do all the work for Automake. -*- Autoconf -*- |
6778 | 7037 | |
6779 | 7038 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, |
6780 | # 2005, 2006 Free Software Foundation, Inc. | |
7039 | # 2005, 2006, 2008 Free Software Foundation, Inc. | |
6781 | 7040 | # |
6782 | 7041 | # This file is free software; the Free Software Foundation |
6783 | 7042 | # gives unlimited permission to copy and/or distribute it, |
6784 | 7043 | # with or without modifications, as long as this notice is preserved. |
6785 | 7044 | |
6786 | # serial 12 | |
7045 | # serial 13 | |
6787 | 7046 | |
6788 | 7047 | # This macro actually does too much. Some checks are only needed if |
6789 | 7048 | # your package does certain things. But this isn't really a big deal. |
6888 | 7147 | # our stamp files there. |
6889 | 7148 | AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], |
6890 | 7149 | [# Compute $1's index in $config_headers. |
7150 | _am_arg=$1 | |
6891 | 7151 | _am_stamp_count=1 |
6892 | 7152 | for _am_header in $config_headers :; do |
6893 | 7153 | case $_am_header in |
6894 | $1 | $1:* ) | |
7154 | $_am_arg | $_am_arg:* ) | |
6895 | 7155 | break ;; |
6896 | 7156 | * ) |
6897 | 7157 | _am_stamp_count=`expr $_am_stamp_count + 1` ;; |
6898 | 7158 | esac |
6899 | 7159 | done |
6900 | echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) | |
7160 | echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) | |
6901 | 7161 | |
6902 | 7162 | # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. |
6903 | 7163 | # |
7169 | 7429 | |
7170 | 7430 | # _AM_SUBST_NOTMAKE(VARIABLE) |
7171 | 7431 | # --------------------------- |
7172 | # Prevent Automake from outputing VARIABLE = @VARIABLE@ in Makefile.in. | |
7432 | # Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. | |
7173 | 7433 | # This macro is traced by Automake. |
7174 | 7434 | AC_DEFUN([_AM_SUBST_NOTMAKE]) |
7175 | 7435 |
849 | 849 | host_cpu |
850 | 850 | host_vendor |
851 | 851 | host_os |
852 | SED | |
852 | 853 | GREP |
853 | 854 | EGREP |
854 | 855 | LN_S |
855 | 856 | ECHO |
856 | 857 | AR |
857 | 858 | RANLIB |
859 | DSYMUTIL | |
860 | NMEDIT | |
858 | 861 | CPP |
859 | 862 | CXX |
860 | 863 | CXXFLAGS |
2262 | 2265 | |
2263 | 2266 | # Define the identity of the package. |
2264 | 2267 | PACKAGE=epsilon |
2265 | VERSION=0.8.1 | |
2268 | VERSION=0.9.1 | |
2266 | 2269 | |
2267 | 2270 | |
2268 | 2271 | cat >>confdefs.h <<_ACEOF |
4024 | 4027 | test -z "$as_dir" && as_dir=. |
4025 | 4028 | for lt_ac_prog in sed gsed; do |
4026 | 4029 | for ac_exec_ext in '' $ac_executable_extensions; do |
4027 | if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then | |
4030 | if { test -f "$as_dir/$lt_ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$lt_ac_prog$ac_exec_ext"; }; then | |
4028 | 4031 | lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" |
4029 | 4032 | fi |
4030 | 4033 | done |
4031 | 4034 | done |
4032 | 4035 | done |
4036 | IFS=$as_save_IFS | |
4033 | 4037 | lt_ac_max=0 |
4034 | 4038 | lt_ac_count=0 |
4035 | 4039 | # Add /usr/xpg4/bin/sed as it is typically found on Solaris |
4064 | 4068 | fi |
4065 | 4069 | |
4066 | 4070 | SED=$lt_cv_path_SED |
4071 | ||
4067 | 4072 | { echo "$as_me:$LINENO: result: $SED" >&5 |
4068 | 4073 | echo "${ECHO_T}$SED" >&6; } |
4069 | 4074 | |
4425 | 4430 | echo "${ECHO_T}no, using $LN_S" >&6; } |
4426 | 4431 | fi |
4427 | 4432 | |
4428 | { echo "$as_me:$LINENO: checking how to recognise dependent libraries" >&5 | |
4429 | echo $ECHO_N "checking how to recognise dependent libraries... $ECHO_C" >&6; } | |
4433 | { echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5 | |
4434 | echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; } | |
4430 | 4435 | if test "${lt_cv_deplibs_check_method+set}" = set; then |
4431 | 4436 | echo $ECHO_N "(cached) $ECHO_C" >&6 |
4432 | 4437 | else |
4445 | 4450 | # whether `pass_all' will *always* work, you probably want this one. |
4446 | 4451 | |
4447 | 4452 | case $host_os in |
4448 | aix4* | aix5*) | |
4453 | aix[4-9]*) | |
4449 | 4454 | lt_cv_deplibs_check_method=pass_all |
4450 | 4455 | ;; |
4451 | 4456 | |
4467 | 4472 | |
4468 | 4473 | mingw* | pw32*) |
4469 | 4474 | # Base MSYS/MinGW do not provide the 'file' command needed by |
4470 | # func_win32_libid shell function, so use a weaker test based on 'objdump'. | |
4471 | lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' | |
4472 | lt_cv_file_magic_cmd='$OBJDUMP -f' | |
4475 | # func_win32_libid shell function, so use a weaker test based on 'objdump', | |
4476 | # unless we find 'file', for example because we are cross-compiling. | |
4477 | if ( file / ) >/dev/null 2>&1; then | |
4478 | lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' | |
4479 | lt_cv_file_magic_cmd='func_win32_libid' | |
4480 | else | |
4481 | lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' | |
4482 | lt_cv_file_magic_cmd='$OBJDUMP -f' | |
4483 | fi | |
4473 | 4484 | ;; |
4474 | 4485 | |
4475 | 4486 | darwin* | rhapsody*) |
4476 | 4487 | lt_cv_deplibs_check_method=pass_all |
4477 | 4488 | ;; |
4478 | 4489 | |
4479 | freebsd* | kfreebsd*-gnu | dragonfly*) | |
4490 | freebsd* | dragonfly*) | |
4480 | 4491 | if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then |
4481 | 4492 | case $host_cpu in |
4482 | 4493 | i*86 ) |
4514 | 4525 | esac |
4515 | 4526 | ;; |
4516 | 4527 | |
4517 | interix3*) | |
4528 | interix[3-9]*) | |
4518 | 4529 | # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here |
4519 | 4530 | lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' |
4520 | 4531 | ;; |
4530 | 4541 | ;; |
4531 | 4542 | |
4532 | 4543 | # This must be Linux ELF. |
4533 | linux*) | |
4544 | linux* | k*bsd*-gnu) | |
4534 | 4545 | lt_cv_deplibs_check_method=pass_all |
4535 | 4546 | ;; |
4536 | 4547 | |
4537 | netbsd*) | |
4548 | netbsd* | netbsdelf*-gnu) | |
4538 | 4549 | if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then |
4539 | 4550 | lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' |
4540 | 4551 | else |
4561 | 4572 | ;; |
4562 | 4573 | |
4563 | 4574 | osf3* | osf4* | osf5*) |
4575 | lt_cv_deplibs_check_method=pass_all | |
4576 | ;; | |
4577 | ||
4578 | rdos*) | |
4564 | 4579 | lt_cv_deplibs_check_method=pass_all |
4565 | 4580 | ;; |
4566 | 4581 | |
4650 | 4665 | ;; |
4651 | 4666 | *-*-irix6*) |
4652 | 4667 | # Find out which ABI we are using. |
4653 | echo '#line 4654 "configure"' > conftest.$ac_ext | |
4668 | echo '#line 4669 "configure"' > conftest.$ac_ext | |
4654 | 4669 | if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 |
4655 | 4670 | (eval $ac_compile) 2>&5 |
4656 | 4671 | ac_status=$? |
4685 | 4700 | rm -rf conftest* |
4686 | 4701 | ;; |
4687 | 4702 | |
4688 | x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*|s390*-*linux*|sparc*-*linux*) | |
4703 | x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ | |
4704 | s390*-*linux*|sparc*-*linux*) | |
4689 | 4705 | # Find out which ABI we are using. |
4690 | 4706 | echo 'int i;' > conftest.$ac_ext |
4691 | 4707 | if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 |
4696 | 4712 | case `/usr/bin/file conftest.o` in |
4697 | 4713 | *32-bit*) |
4698 | 4714 | case $host in |
4715 | x86_64-*kfreebsd*-gnu) | |
4716 | LD="${LD-ld} -m elf_i386_fbsd" | |
4717 | ;; | |
4699 | 4718 | x86_64-*linux*) |
4700 | 4719 | LD="${LD-ld} -m elf_i386" |
4701 | 4720 | ;; |
4712 | 4731 | ;; |
4713 | 4732 | *64-bit*) |
4714 | 4733 | case $host in |
4734 | x86_64-*kfreebsd*-gnu) | |
4735 | LD="${LD-ld} -m elf_x86_64_fbsd" | |
4736 | ;; | |
4715 | 4737 | x86_64-*linux*) |
4716 | 4738 | LD="${LD-ld} -m elf_x86_64" |
4717 | 4739 | ;; |
4815 | 4837 | *64-bit*) |
4816 | 4838 | case $lt_cv_prog_gnu_ld in |
4817 | 4839 | yes*) LD="${LD-ld} -m elf64_sparc" ;; |
4818 | *) LD="${LD-ld} -64" ;; | |
4840 | *) | |
4841 | if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then | |
4842 | LD="${LD-ld} -64" | |
4843 | fi | |
4844 | ;; | |
4819 | 4845 | esac |
4820 | 4846 | ;; |
4821 | 4847 | esac |
6412 | 6438 | |
6413 | 6439 | |
6414 | 6440 | # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers! |
6415 | ||
6416 | 6441 | # find the maximum length of command line arguments |
6417 | 6442 | { echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5 |
6418 | 6443 | echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; } |
6499 | 6524 | fi |
6500 | 6525 | ;; |
6501 | 6526 | *) |
6502 | # If test is not a shell built-in, we'll probably end up computing a | |
6503 | # maximum length that is only half of the actual maximum length, but | |
6504 | # we can't tell. | |
6505 | SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} | |
6506 | while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ | |
6527 | lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` | |
6528 | if test -n "$lt_cv_sys_max_cmd_len"; then | |
6529 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` | |
6530 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` | |
6531 | else | |
6532 | SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} | |
6533 | while (test "X"`$SHELL $0 --fallback-echo "X$teststring" 2>/dev/null` \ | |
6507 | 6534 | = "XX$teststring") >/dev/null 2>&1 && |
6508 | new_result=`expr "X$teststring" : ".*" 2>&1` && | |
6509 | lt_cv_sys_max_cmd_len=$new_result && | |
6510 | test $i != 17 # 1/2 MB should be enough | |
6511 | do | |
6512 | i=`expr $i + 1` | |
6513 | teststring=$teststring$teststring | |
6514 | done | |
6515 | teststring= | |
6516 | # Add a significant safety factor because C++ compilers can tack on massive | |
6517 | # amounts of additional arguments before passing them to the linker. | |
6518 | # It appears as though 1/2 is a usable value. | |
6519 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` | |
6535 | new_result=`expr "X$teststring" : ".*" 2>&1` && | |
6536 | lt_cv_sys_max_cmd_len=$new_result && | |
6537 | test $i != 17 # 1/2 MB should be enough | |
6538 | do | |
6539 | i=`expr $i + 1` | |
6540 | teststring=$teststring$teststring | |
6541 | done | |
6542 | teststring= | |
6543 | # Add a significant safety factor because C++ compilers can tack on massive | |
6544 | # amounts of additional arguments before passing them to the linker. | |
6545 | # It appears as though 1/2 is a usable value. | |
6546 | lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` | |
6547 | fi | |
6520 | 6548 | ;; |
6521 | 6549 | esac |
6522 | 6550 | |
6529 | 6557 | { echo "$as_me:$LINENO: result: none" >&5 |
6530 | 6558 | echo "${ECHO_T}none" >&6; } |
6531 | 6559 | fi |
6560 | ||
6532 | 6561 | |
6533 | 6562 | |
6534 | 6563 | |
6570 | 6599 | lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" |
6571 | 6600 | lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (lt_ptr) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (lt_ptr) \&\2},/p'" |
6572 | 6601 | ;; |
6573 | linux*) | |
6602 | linux* | k*bsd*-gnu) | |
6574 | 6603 | if test "$host_cpu" = ia64; then |
6575 | 6604 | symcode='[ABCDGIRSTW]' |
6576 | 6605 | lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" |
6723 | 6752 | echo "$progname: failed program was:" >&5 |
6724 | 6753 | cat conftest.$ac_ext >&5 |
6725 | 6754 | fi |
6726 | rm -f conftest* conftst* | |
6755 | rm -rf conftest* conftst* | |
6727 | 6756 | |
6728 | 6757 | # Do not use the global_symbol_pipe unless it works. |
6729 | 6758 | if test "$pipe_works" = yes; then |
7121 | 7150 | test -z "$ac_objext" && ac_objext=o |
7122 | 7151 | |
7123 | 7152 | # Determine commands to create old-style static archives. |
7124 | old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs' | |
7153 | old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' | |
7125 | 7154 | old_postinstall_cmds='chmod 644 $oldlib' |
7126 | 7155 | old_postuninstall_cmds= |
7127 | 7156 | |
7283 | 7312 | ;; |
7284 | 7313 | esac |
7285 | 7314 | |
7315 | ||
7316 | case $host_os in | |
7317 | rhapsody* | darwin*) | |
7318 | if test -n "$ac_tool_prefix"; then | |
7319 | # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. | |
7320 | set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 | |
7321 | { echo "$as_me:$LINENO: checking for $ac_word" >&5 | |
7322 | echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } | |
7323 | if test "${ac_cv_prog_DSYMUTIL+set}" = set; then | |
7324 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
7325 | else | |
7326 | if test -n "$DSYMUTIL"; then | |
7327 | ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. | |
7328 | else | |
7329 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
7330 | for as_dir in $PATH | |
7331 | do | |
7332 | IFS=$as_save_IFS | |
7333 | test -z "$as_dir" && as_dir=. | |
7334 | for ac_exec_ext in '' $ac_executable_extensions; do | |
7335 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | |
7336 | ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" | |
7337 | echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 | |
7338 | break 2 | |
7339 | fi | |
7340 | done | |
7341 | done | |
7342 | IFS=$as_save_IFS | |
7343 | ||
7344 | fi | |
7345 | fi | |
7346 | DSYMUTIL=$ac_cv_prog_DSYMUTIL | |
7347 | if test -n "$DSYMUTIL"; then | |
7348 | { echo "$as_me:$LINENO: result: $DSYMUTIL" >&5 | |
7349 | echo "${ECHO_T}$DSYMUTIL" >&6; } | |
7350 | else | |
7351 | { echo "$as_me:$LINENO: result: no" >&5 | |
7352 | echo "${ECHO_T}no" >&6; } | |
7353 | fi | |
7354 | ||
7355 | ||
7356 | fi | |
7357 | if test -z "$ac_cv_prog_DSYMUTIL"; then | |
7358 | ac_ct_DSYMUTIL=$DSYMUTIL | |
7359 | # Extract the first word of "dsymutil", so it can be a program name with args. | |
7360 | set dummy dsymutil; ac_word=$2 | |
7361 | { echo "$as_me:$LINENO: checking for $ac_word" >&5 | |
7362 | echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } | |
7363 | if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then | |
7364 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
7365 | else | |
7366 | if test -n "$ac_ct_DSYMUTIL"; then | |
7367 | ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. | |
7368 | else | |
7369 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
7370 | for as_dir in $PATH | |
7371 | do | |
7372 | IFS=$as_save_IFS | |
7373 | test -z "$as_dir" && as_dir=. | |
7374 | for ac_exec_ext in '' $ac_executable_extensions; do | |
7375 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | |
7376 | ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" | |
7377 | echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 | |
7378 | break 2 | |
7379 | fi | |
7380 | done | |
7381 | done | |
7382 | IFS=$as_save_IFS | |
7383 | ||
7384 | fi | |
7385 | fi | |
7386 | ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL | |
7387 | if test -n "$ac_ct_DSYMUTIL"; then | |
7388 | { echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5 | |
7389 | echo "${ECHO_T}$ac_ct_DSYMUTIL" >&6; } | |
7390 | else | |
7391 | { echo "$as_me:$LINENO: result: no" >&5 | |
7392 | echo "${ECHO_T}no" >&6; } | |
7393 | fi | |
7394 | ||
7395 | if test "x$ac_ct_DSYMUTIL" = x; then | |
7396 | DSYMUTIL=":" | |
7397 | else | |
7398 | case $cross_compiling:$ac_tool_warned in | |
7399 | yes:) | |
7400 | { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools | |
7401 | whose name does not start with the host triplet. If you think this | |
7402 | configuration is useful to you, please write to autoconf@gnu.org." >&5 | |
7403 | echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools | |
7404 | whose name does not start with the host triplet. If you think this | |
7405 | configuration is useful to you, please write to autoconf@gnu.org." >&2;} | |
7406 | ac_tool_warned=yes ;; | |
7407 | esac | |
7408 | DSYMUTIL=$ac_ct_DSYMUTIL | |
7409 | fi | |
7410 | else | |
7411 | DSYMUTIL="$ac_cv_prog_DSYMUTIL" | |
7412 | fi | |
7413 | ||
7414 | if test -n "$ac_tool_prefix"; then | |
7415 | # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. | |
7416 | set dummy ${ac_tool_prefix}nmedit; ac_word=$2 | |
7417 | { echo "$as_me:$LINENO: checking for $ac_word" >&5 | |
7418 | echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } | |
7419 | if test "${ac_cv_prog_NMEDIT+set}" = set; then | |
7420 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
7421 | else | |
7422 | if test -n "$NMEDIT"; then | |
7423 | ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. | |
7424 | else | |
7425 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
7426 | for as_dir in $PATH | |
7427 | do | |
7428 | IFS=$as_save_IFS | |
7429 | test -z "$as_dir" && as_dir=. | |
7430 | for ac_exec_ext in '' $ac_executable_extensions; do | |
7431 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | |
7432 | ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" | |
7433 | echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 | |
7434 | break 2 | |
7435 | fi | |
7436 | done | |
7437 | done | |
7438 | IFS=$as_save_IFS | |
7439 | ||
7440 | fi | |
7441 | fi | |
7442 | NMEDIT=$ac_cv_prog_NMEDIT | |
7443 | if test -n "$NMEDIT"; then | |
7444 | { echo "$as_me:$LINENO: result: $NMEDIT" >&5 | |
7445 | echo "${ECHO_T}$NMEDIT" >&6; } | |
7446 | else | |
7447 | { echo "$as_me:$LINENO: result: no" >&5 | |
7448 | echo "${ECHO_T}no" >&6; } | |
7449 | fi | |
7450 | ||
7451 | ||
7452 | fi | |
7453 | if test -z "$ac_cv_prog_NMEDIT"; then | |
7454 | ac_ct_NMEDIT=$NMEDIT | |
7455 | # Extract the first word of "nmedit", so it can be a program name with args. | |
7456 | set dummy nmedit; ac_word=$2 | |
7457 | { echo "$as_me:$LINENO: checking for $ac_word" >&5 | |
7458 | echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; } | |
7459 | if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then | |
7460 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
7461 | else | |
7462 | if test -n "$ac_ct_NMEDIT"; then | |
7463 | ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. | |
7464 | else | |
7465 | as_save_IFS=$IFS; IFS=$PATH_SEPARATOR | |
7466 | for as_dir in $PATH | |
7467 | do | |
7468 | IFS=$as_save_IFS | |
7469 | test -z "$as_dir" && as_dir=. | |
7470 | for ac_exec_ext in '' $ac_executable_extensions; do | |
7471 | if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then | |
7472 | ac_cv_prog_ac_ct_NMEDIT="nmedit" | |
7473 | echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 | |
7474 | break 2 | |
7475 | fi | |
7476 | done | |
7477 | done | |
7478 | IFS=$as_save_IFS | |
7479 | ||
7480 | fi | |
7481 | fi | |
7482 | ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT | |
7483 | if test -n "$ac_ct_NMEDIT"; then | |
7484 | { echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5 | |
7485 | echo "${ECHO_T}$ac_ct_NMEDIT" >&6; } | |
7486 | else | |
7487 | { echo "$as_me:$LINENO: result: no" >&5 | |
7488 | echo "${ECHO_T}no" >&6; } | |
7489 | fi | |
7490 | ||
7491 | if test "x$ac_ct_NMEDIT" = x; then | |
7492 | NMEDIT=":" | |
7493 | else | |
7494 | case $cross_compiling:$ac_tool_warned in | |
7495 | yes:) | |
7496 | { echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools | |
7497 | whose name does not start with the host triplet. If you think this | |
7498 | configuration is useful to you, please write to autoconf@gnu.org." >&5 | |
7499 | echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools | |
7500 | whose name does not start with the host triplet. If you think this | |
7501 | configuration is useful to you, please write to autoconf@gnu.org." >&2;} | |
7502 | ac_tool_warned=yes ;; | |
7503 | esac | |
7504 | NMEDIT=$ac_ct_NMEDIT | |
7505 | fi | |
7506 | else | |
7507 | NMEDIT="$ac_cv_prog_NMEDIT" | |
7508 | fi | |
7509 | ||
7510 | ||
7511 | { echo "$as_me:$LINENO: checking for -single_module linker flag" >&5 | |
7512 | echo $ECHO_N "checking for -single_module linker flag... $ECHO_C" >&6; } | |
7513 | if test "${lt_cv_apple_cc_single_mod+set}" = set; then | |
7514 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
7515 | else | |
7516 | lt_cv_apple_cc_single_mod=no | |
7517 | if test -z "${LT_MULTI_MODULE}"; then | |
7518 | # By default we will add the -single_module flag. You can override | |
7519 | # by either setting the environment variable LT_MULTI_MODULE | |
7520 | # non-empty at configure time, or by adding -multi_module to the | |
7521 | # link flags. | |
7522 | echo "int foo(void){return 1;}" > conftest.c | |
7523 | $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ | |
7524 | -dynamiclib ${wl}-single_module conftest.c | |
7525 | if test -f libconftest.dylib; then | |
7526 | lt_cv_apple_cc_single_mod=yes | |
7527 | rm -rf libconftest.dylib* | |
7528 | fi | |
7529 | rm conftest.c | |
7530 | fi | |
7531 | fi | |
7532 | { echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5 | |
7533 | echo "${ECHO_T}$lt_cv_apple_cc_single_mod" >&6; } | |
7534 | { echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5 | |
7535 | echo $ECHO_N "checking for -exported_symbols_list linker flag... $ECHO_C" >&6; } | |
7536 | if test "${lt_cv_ld_exported_symbols_list+set}" = set; then | |
7537 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
7538 | else | |
7539 | lt_cv_ld_exported_symbols_list=no | |
7540 | save_LDFLAGS=$LDFLAGS | |
7541 | echo "_main" > conftest.sym | |
7542 | LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" | |
7543 | cat >conftest.$ac_ext <<_ACEOF | |
7544 | /* confdefs.h. */ | |
7545 | _ACEOF | |
7546 | cat confdefs.h >>conftest.$ac_ext | |
7547 | cat >>conftest.$ac_ext <<_ACEOF | |
7548 | /* end confdefs.h. */ | |
7549 | ||
7550 | int | |
7551 | main () | |
7552 | { | |
7553 | ||
7554 | ; | |
7555 | return 0; | |
7556 | } | |
7557 | _ACEOF | |
7558 | rm -f conftest.$ac_objext conftest$ac_exeext | |
7559 | if { (ac_try="$ac_link" | |
7560 | case "(($ac_try" in | |
7561 | *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; | |
7562 | *) ac_try_echo=$ac_try;; | |
7563 | esac | |
7564 | eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5 | |
7565 | (eval "$ac_link") 2>conftest.er1 | |
7566 | ac_status=$? | |
7567 | grep -v '^ *+' conftest.er1 >conftest.err | |
7568 | rm -f conftest.er1 | |
7569 | cat conftest.err >&5 | |
7570 | echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
7571 | (exit $ac_status); } && { | |
7572 | test -z "$ac_c_werror_flag" || | |
7573 | test ! -s conftest.err | |
7574 | } && test -s conftest$ac_exeext && | |
7575 | $as_test_x conftest$ac_exeext; then | |
7576 | lt_cv_ld_exported_symbols_list=yes | |
7577 | else | |
7578 | echo "$as_me: failed program was:" >&5 | |
7579 | sed 's/^/| /' conftest.$ac_ext >&5 | |
7580 | ||
7581 | lt_cv_ld_exported_symbols_list=no | |
7582 | fi | |
7583 | ||
7584 | rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ | |
7585 | conftest$ac_exeext conftest.$ac_ext | |
7586 | LDFLAGS="$save_LDFLAGS" | |
7587 | ||
7588 | fi | |
7589 | { echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5 | |
7590 | echo "${ECHO_T}$lt_cv_ld_exported_symbols_list" >&6; } | |
7591 | case $host_os in | |
7592 | rhapsody* | darwin1.[0123]) | |
7593 | _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; | |
7594 | darwin1.*) | |
7595 | _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; | |
7596 | darwin*) | |
7597 | # if running on 10.5 or later, the deployment target defaults | |
7598 | # to the OS version, if on x86, and 10.4, the deployment | |
7599 | # target defaults to 10.4. Don't you love it? | |
7600 | case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in | |
7601 | 10.0,*86*-darwin8*|10.0,*-darwin[91]*) | |
7602 | _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; | |
7603 | 10.[012]*) | |
7604 | _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; | |
7605 | 10.*) | |
7606 | _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; | |
7607 | esac | |
7608 | ;; | |
7609 | esac | |
7610 | if test "$lt_cv_apple_cc_single_mod" = "yes"; then | |
7611 | _lt_dar_single_mod='$single_module' | |
7612 | fi | |
7613 | if test "$lt_cv_ld_exported_symbols_list" = "yes"; then | |
7614 | _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' | |
7615 | else | |
7616 | _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}" | |
7617 | fi | |
7618 | if test "$DSYMUTIL" != ":"; then | |
7619 | _lt_dsymutil="~$DSYMUTIL \$lib || :" | |
7620 | else | |
7621 | _lt_dsymutil= | |
7622 | fi | |
7623 | ;; | |
7624 | esac | |
7625 | ||
7626 | ||
7286 | 7627 | enable_dlopen=no |
7287 | 7628 | enable_win32_dll=no |
7288 | 7629 | |
7321 | 7662 | objext=$objext |
7322 | 7663 | |
7323 | 7664 | # Code to be used in simple compile tests |
7324 | lt_simple_compile_test_code="int some_variable = 0;\n" | |
7665 | lt_simple_compile_test_code="int some_variable = 0;" | |
7325 | 7666 | |
7326 | 7667 | # Code to be used in simple link tests |
7327 | lt_simple_link_test_code='int main(){return(0);}\n' | |
7668 | lt_simple_link_test_code='int main(){return(0);}' | |
7328 | 7669 | |
7329 | 7670 | |
7330 | 7671 | # If no C compiler was specified, use CC. |
7339 | 7680 | |
7340 | 7681 | # save warnings/boilerplate of simple test code |
7341 | 7682 | ac_outfile=conftest.$ac_objext |
7342 | printf "$lt_simple_compile_test_code" >conftest.$ac_ext | |
7683 | echo "$lt_simple_compile_test_code" >conftest.$ac_ext | |
7343 | 7684 | eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err |
7344 | 7685 | _lt_compiler_boilerplate=`cat conftest.err` |
7345 | 7686 | $rm conftest* |
7346 | 7687 | |
7347 | 7688 | ac_outfile=conftest.$ac_objext |
7348 | printf "$lt_simple_link_test_code" >conftest.$ac_ext | |
7689 | echo "$lt_simple_link_test_code" >conftest.$ac_ext | |
7349 | 7690 | eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err |
7350 | 7691 | _lt_linker_boilerplate=`cat conftest.err` |
7351 | $rm conftest* | |
7692 | $rm -r conftest* | |
7352 | 7693 | |
7353 | 7694 | |
7354 | 7695 | |
7365 | 7706 | else |
7366 | 7707 | lt_cv_prog_compiler_rtti_exceptions=no |
7367 | 7708 | ac_outfile=conftest.$ac_objext |
7368 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
7709 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
7369 | 7710 | lt_compiler_flag="-fno-rtti -fno-exceptions" |
7370 | 7711 | # Insert the option either (1) after the last *FLAGS variable, or |
7371 | 7712 | # (2) before a word containing "conftest.", or (3) at the end. |
7376 | 7717 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
7377 | 7718 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
7378 | 7719 | -e 's:$: $lt_compiler_flag:'` |
7379 | (eval echo "\"\$as_me:7380: $lt_compile\"" >&5) | |
7720 | (eval echo "\"\$as_me:7721: $lt_compile\"" >&5) | |
7380 | 7721 | (eval "$lt_compile" 2>conftest.err) |
7381 | 7722 | ac_status=$? |
7382 | 7723 | cat conftest.err >&5 |
7383 | echo "$as_me:7384: \$? = $ac_status" >&5 | |
7724 | echo "$as_me:7725: \$? = $ac_status" >&5 | |
7384 | 7725 | if (exit $ac_status) && test -s "$ac_outfile"; then |
7385 | 7726 | # The compiler can only warn and ignore the option if not recognized |
7386 | 7727 | # So say no if there are warnings other than the usual output. |
7431 | 7772 | lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' |
7432 | 7773 | ;; |
7433 | 7774 | |
7434 | beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | |
7775 | beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | |
7435 | 7776 | # PIC is the default for these OSes. |
7436 | 7777 | ;; |
7437 | 7778 | |
7438 | mingw* | pw32* | os2*) | |
7779 | mingw* | cygwin* | pw32* | os2*) | |
7439 | 7780 | # This hack is so that the source file can tell whether it is being |
7440 | 7781 | # built for inclusion in a dll (and should export symbols for example). |
7782 | # Although the cygwin gcc ignores -fPIC, still need this for old-style | |
7783 | # (--disable-auto-import) libraries | |
7441 | 7784 | lt_prog_compiler_pic='-DDLL_EXPORT' |
7442 | 7785 | ;; |
7443 | 7786 | |
7447 | 7790 | lt_prog_compiler_pic='-fno-common' |
7448 | 7791 | ;; |
7449 | 7792 | |
7450 | interix3*) | |
7793 | interix[3-9]*) | |
7451 | 7794 | # Interix 3.x gcc -fpic/-fPIC options generate broken code. |
7452 | 7795 | # Instead, we relocate shared libraries at runtime. |
7453 | 7796 | ;; |
7505 | 7848 | esac |
7506 | 7849 | ;; |
7507 | 7850 | |
7508 | mingw* | pw32* | os2*) | |
7851 | mingw* | cygwin* | pw32* | os2*) | |
7509 | 7852 | # This hack is so that the source file can tell whether it is being |
7510 | 7853 | # built for inclusion in a dll (and should export symbols for example). |
7511 | 7854 | lt_prog_compiler_pic='-DDLL_EXPORT' |
7538 | 7881 | lt_prog_compiler_static='-Bstatic' |
7539 | 7882 | ;; |
7540 | 7883 | |
7541 | linux*) | |
7884 | linux* | k*bsd*-gnu) | |
7542 | 7885 | case $cc_basename in |
7543 | 7886 | icc* | ecc*) |
7544 | 7887 | lt_prog_compiler_wl='-Wl,' |
7557 | 7900 | # All Alpha code is PIC. |
7558 | 7901 | lt_prog_compiler_static='-non_shared' |
7559 | 7902 | ;; |
7903 | *) | |
7904 | case `$CC -V 2>&1 | sed 5q` in | |
7905 | *Sun\ C*) | |
7906 | # Sun C 5.9 | |
7907 | lt_prog_compiler_pic='-KPIC' | |
7908 | lt_prog_compiler_static='-Bstatic' | |
7909 | lt_prog_compiler_wl='-Wl,' | |
7910 | ;; | |
7911 | *Sun\ F*) | |
7912 | # Sun Fortran 8.3 passes all unrecognized flags to the linker | |
7913 | lt_prog_compiler_pic='-KPIC' | |
7914 | lt_prog_compiler_static='-Bstatic' | |
7915 | lt_prog_compiler_wl='' | |
7916 | ;; | |
7917 | esac | |
7918 | ;; | |
7560 | 7919 | esac |
7561 | 7920 | ;; |
7562 | 7921 | |
7563 | 7922 | osf3* | osf4* | osf5*) |
7564 | 7923 | lt_prog_compiler_wl='-Wl,' |
7565 | 7924 | # All OSF/1 code is PIC. |
7925 | lt_prog_compiler_static='-non_shared' | |
7926 | ;; | |
7927 | ||
7928 | rdos*) | |
7566 | 7929 | lt_prog_compiler_static='-non_shared' |
7567 | 7930 | ;; |
7568 | 7931 | |
7628 | 7991 | |
7629 | 7992 | { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 |
7630 | 7993 | echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; } |
7631 | if test "${lt_prog_compiler_pic_works+set}" = set; then | |
7994 | if test "${lt_cv_prog_compiler_pic_works+set}" = set; then | |
7632 | 7995 | echo $ECHO_N "(cached) $ECHO_C" >&6 |
7633 | 7996 | else |
7634 | lt_prog_compiler_pic_works=no | |
7997 | lt_cv_prog_compiler_pic_works=no | |
7635 | 7998 | ac_outfile=conftest.$ac_objext |
7636 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
7999 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
7637 | 8000 | lt_compiler_flag="$lt_prog_compiler_pic -DPIC" |
7638 | 8001 | # Insert the option either (1) after the last *FLAGS variable, or |
7639 | 8002 | # (2) before a word containing "conftest.", or (3) at the end. |
7644 | 8007 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
7645 | 8008 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
7646 | 8009 | -e 's:$: $lt_compiler_flag:'` |
7647 | (eval echo "\"\$as_me:7648: $lt_compile\"" >&5) | |
8010 | (eval echo "\"\$as_me:8011: $lt_compile\"" >&5) | |
7648 | 8011 | (eval "$lt_compile" 2>conftest.err) |
7649 | 8012 | ac_status=$? |
7650 | 8013 | cat conftest.err >&5 |
7651 | echo "$as_me:7652: \$? = $ac_status" >&5 | |
8014 | echo "$as_me:8015: \$? = $ac_status" >&5 | |
7652 | 8015 | if (exit $ac_status) && test -s "$ac_outfile"; then |
7653 | 8016 | # The compiler can only warn and ignore the option if not recognized |
7654 | 8017 | # So say no if there are warnings other than the usual output. |
7655 | 8018 | $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp |
7656 | 8019 | $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 |
7657 | 8020 | if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then |
7658 | lt_prog_compiler_pic_works=yes | |
8021 | lt_cv_prog_compiler_pic_works=yes | |
7659 | 8022 | fi |
7660 | 8023 | fi |
7661 | 8024 | $rm conftest* |
7662 | 8025 | |
7663 | 8026 | fi |
7664 | { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5 | |
7665 | echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; } | |
7666 | ||
7667 | if test x"$lt_prog_compiler_pic_works" = xyes; then | |
8027 | { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5 | |
8028 | echo "${ECHO_T}$lt_cv_prog_compiler_pic_works" >&6; } | |
8029 | ||
8030 | if test x"$lt_cv_prog_compiler_pic_works" = xyes; then | |
7668 | 8031 | case $lt_prog_compiler_pic in |
7669 | 8032 | "" | " "*) ;; |
7670 | 8033 | *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; |
7691 | 8054 | wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" |
7692 | 8055 | { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 |
7693 | 8056 | echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } |
7694 | if test "${lt_prog_compiler_static_works+set}" = set; then | |
8057 | if test "${lt_cv_prog_compiler_static_works+set}" = set; then | |
7695 | 8058 | echo $ECHO_N "(cached) $ECHO_C" >&6 |
7696 | 8059 | else |
7697 | lt_prog_compiler_static_works=no | |
8060 | lt_cv_prog_compiler_static_works=no | |
7698 | 8061 | save_LDFLAGS="$LDFLAGS" |
7699 | 8062 | LDFLAGS="$LDFLAGS $lt_tmp_static_flag" |
7700 | printf "$lt_simple_link_test_code" > conftest.$ac_ext | |
8063 | echo "$lt_simple_link_test_code" > conftest.$ac_ext | |
7701 | 8064 | if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then |
7702 | 8065 | # The linker can only warn and ignore the option if not recognized |
7703 | 8066 | # So say no if there are warnings |
7707 | 8070 | $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp |
7708 | 8071 | $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 |
7709 | 8072 | if diff conftest.exp conftest.er2 >/dev/null; then |
7710 | lt_prog_compiler_static_works=yes | |
8073 | lt_cv_prog_compiler_static_works=yes | |
7711 | 8074 | fi |
7712 | 8075 | else |
7713 | lt_prog_compiler_static_works=yes | |
8076 | lt_cv_prog_compiler_static_works=yes | |
7714 | 8077 | fi |
7715 | 8078 | fi |
7716 | $rm conftest* | |
8079 | $rm -r conftest* | |
7717 | 8080 | LDFLAGS="$save_LDFLAGS" |
7718 | 8081 | |
7719 | 8082 | fi |
7720 | { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5 | |
7721 | echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; } | |
7722 | ||
7723 | if test x"$lt_prog_compiler_static_works" = xyes; then | |
8083 | { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5 | |
8084 | echo "${ECHO_T}$lt_cv_prog_compiler_static_works" >&6; } | |
8085 | ||
8086 | if test x"$lt_cv_prog_compiler_static_works" = xyes; then | |
7724 | 8087 | : |
7725 | 8088 | else |
7726 | 8089 | lt_prog_compiler_static= |
7737 | 8100 | mkdir conftest |
7738 | 8101 | cd conftest |
7739 | 8102 | mkdir out |
7740 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
8103 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
7741 | 8104 | |
7742 | 8105 | lt_compiler_flag="-o out/conftest2.$ac_objext" |
7743 | 8106 | # Insert the option either (1) after the last *FLAGS variable, or |
7748 | 8111 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
7749 | 8112 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
7750 | 8113 | -e 's:$: $lt_compiler_flag:'` |
7751 | (eval echo "\"\$as_me:7752: $lt_compile\"" >&5) | |
8114 | (eval echo "\"\$as_me:8115: $lt_compile\"" >&5) | |
7752 | 8115 | (eval "$lt_compile" 2>out/conftest.err) |
7753 | 8116 | ac_status=$? |
7754 | 8117 | cat out/conftest.err >&5 |
7755 | echo "$as_me:7756: \$? = $ac_status" >&5 | |
8118 | echo "$as_me:8119: \$? = $ac_status" >&5 | |
7756 | 8119 | if (exit $ac_status) && test -s out/conftest2.$ac_objext |
7757 | 8120 | then |
7758 | 8121 | # The compiler can only warn and ignore the option if not recognized |
7832 | 8195 | # it will be wrapped by ` (' and `)$', so one must not match beginning or |
7833 | 8196 | # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', |
7834 | 8197 | # as well as any symbol that contains `d'. |
7835 | exclude_expsyms="_GLOBAL_OFFSET_TABLE_" | |
8198 | exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' | |
7836 | 8199 | # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out |
7837 | 8200 | # platforms (ab)use it in PIC code, but their linkers get confused if |
7838 | 8201 | # the symbol is explicitly referenced. Since portable code cannot |
7839 | 8202 | # rely on this symbol name, it's probably fine to never include it in |
7840 | 8203 | # preloaded symbol tables. |
8204 | # Exclude shared library initialization/finalization symbols. | |
7841 | 8205 | extract_expsyms_cmds= |
7842 | 8206 | # Just being paranoid about ensuring that cc_basename is set. |
7843 | 8207 | for cc_temp in $compiler""; do |
7896 | 8260 | |
7897 | 8261 | # See if GNU ld supports shared libraries. |
7898 | 8262 | case $host_os in |
7899 | aix3* | aix4* | aix5*) | |
8263 | aix[3-9]*) | |
7900 | 8264 | # On AIX/PPC, the GNU linker is very broken |
7901 | 8265 | if test "$host_cpu" != ia64; then |
7902 | 8266 | ld_shlibs=no |
7944 | 8308 | allow_undefined_flag=unsupported |
7945 | 8309 | always_export_symbols=no |
7946 | 8310 | enable_shared_with_static_runtimes=yes |
7947 | export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' | |
8311 | export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' | |
7948 | 8312 | |
7949 | 8313 | if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then |
7950 | 8314 | archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' |
7962 | 8326 | fi |
7963 | 8327 | ;; |
7964 | 8328 | |
7965 | interix3*) | |
8329 | interix[3-9]*) | |
7966 | 8330 | hardcode_direct=no |
7967 | 8331 | hardcode_shlibpath_var=no |
7968 | 8332 | hardcode_libdir_flag_spec='${wl}-rpath,$libdir' |
7977 | 8341 | archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' |
7978 | 8342 | ;; |
7979 | 8343 | |
7980 | linux*) | |
8344 | gnu* | linux* | k*bsd*-gnu) | |
7981 | 8345 | if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then |
7982 | 8346 | tmp_addflag= |
7983 | 8347 | case $cc_basename,$host_cpu in |
7995 | 8359 | ifc* | ifort*) # Intel Fortran compiler |
7996 | 8360 | tmp_addflag=' -nofor_main' ;; |
7997 | 8361 | esac |
7998 | archive_cmds='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | |
8362 | case `$CC -V 2>&1 | sed 5q` in | |
8363 | *Sun\ C*) # Sun C 5.9 | |
8364 | whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' | |
8365 | tmp_sharedflag='-G' ;; | |
8366 | *Sun\ F*) # Sun Fortran 8.3 | |
8367 | tmp_sharedflag='-G' ;; | |
8368 | *) | |
8369 | tmp_sharedflag='-shared' ;; | |
8370 | esac | |
8371 | archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | |
7999 | 8372 | |
8000 | 8373 | if test $supports_anon_versioning = yes; then |
8001 | 8374 | archive_expsym_cmds='$echo "{ global:" > $output_objdir/$libname.ver~ |
8002 | 8375 | cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ |
8003 | 8376 | $echo "local: *; };" >> $output_objdir/$libname.ver~ |
8004 | $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' | |
8377 | $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' | |
8005 | 8378 | fi |
8379 | link_all_deplibs=no | |
8006 | 8380 | else |
8007 | 8381 | ld_shlibs=no |
8008 | 8382 | fi |
8009 | 8383 | ;; |
8010 | 8384 | |
8011 | netbsd*) | |
8385 | netbsd* | netbsdelf*-gnu) | |
8012 | 8386 | if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
8013 | 8387 | archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' |
8014 | 8388 | wlarc= |
8106 | 8480 | fi |
8107 | 8481 | ;; |
8108 | 8482 | |
8109 | aix4* | aix5*) | |
8483 | aix[4-9]*) | |
8110 | 8484 | if test "$host_cpu" = ia64; then |
8111 | 8485 | # On IA64, the linker does run time linking by default, so we don't |
8112 | 8486 | # have to do anything special. |
8126 | 8500 | # Test if we are trying to use run time linking or normal |
8127 | 8501 | # AIX style linking. If -brtl is somewhere in LDFLAGS, we |
8128 | 8502 | # need to do runtime linking. |
8129 | case $host_os in aix4.[23]|aix4.[23].*|aix5*) | |
8503 | case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) | |
8130 | 8504 | for ld_flag in $LDFLAGS; do |
8131 | 8505 | if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then |
8132 | 8506 | aix_use_runtimelinking=yes |
8160 | 8534 | strings "$collect2name" | grep resolve_lib_name >/dev/null |
8161 | 8535 | then |
8162 | 8536 | # We have reworked collect2 |
8163 | hardcode_direct=yes | |
8537 | : | |
8164 | 8538 | else |
8165 | 8539 | # We have old collect2 |
8166 | 8540 | hardcode_direct=unsupported |
8234 | 8608 | } && test -s conftest$ac_exeext && |
8235 | 8609 | $as_test_x conftest$ac_exeext; then |
8236 | 8610 | |
8237 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
8238 | }'` | |
8611 | lt_aix_libpath_sed=' | |
8612 | /Import File Strings/,/^$/ { | |
8613 | /^0/ { | |
8614 | s/^0 *\(.*\)$/\1/ | |
8615 | p | |
8616 | } | |
8617 | }' | |
8618 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
8239 | 8619 | # Check for a 64-bit object if we didn't find anything. |
8240 | if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
8241 | }'`; fi | |
8620 | if test -z "$aix_libpath"; then | |
8621 | aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
8622 | fi | |
8242 | 8623 | else |
8243 | 8624 | echo "$as_me: failed program was:" >&5 |
8244 | 8625 | sed 's/^/| /' conftest.$ac_ext >&5 |
8293 | 8674 | } && test -s conftest$ac_exeext && |
8294 | 8675 | $as_test_x conftest$ac_exeext; then |
8295 | 8676 | |
8296 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
8297 | }'` | |
8677 | lt_aix_libpath_sed=' | |
8678 | /Import File Strings/,/^$/ { | |
8679 | /^0/ { | |
8680 | s/^0 *\(.*\)$/\1/ | |
8681 | p | |
8682 | } | |
8683 | }' | |
8684 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
8298 | 8685 | # Check for a 64-bit object if we didn't find anything. |
8299 | if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
8300 | }'`; fi | |
8686 | if test -z "$aix_libpath"; then | |
8687 | aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
8688 | fi | |
8301 | 8689 | else |
8302 | 8690 | echo "$as_me: failed program was:" >&5 |
8303 | 8691 | sed 's/^/| /' conftest.$ac_ext >&5 |
8351 | 8739 | # The linker will automatically build a .lib file if we build a DLL. |
8352 | 8740 | old_archive_From_new_cmds='true' |
8353 | 8741 | # FIXME: Should let the user specify the lib program. |
8354 | old_archive_cmds='lib /OUT:$oldlib$oldobjs$old_deplibs' | |
8742 | old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' | |
8355 | 8743 | fix_srcfile_path='`cygpath -w "$srcfile"`' |
8356 | 8744 | enable_shared_with_static_runtimes=yes |
8357 | 8745 | ;; |
8384 | 8772 | link_all_deplibs=yes |
8385 | 8773 | if test "$GCC" = yes ; then |
8386 | 8774 | output_verbose_link_cmd='echo' |
8387 | archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' | |
8388 | module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' | |
8389 | # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds | |
8390 | archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
8391 | module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
8775 | archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" | |
8776 | module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" | |
8777 | archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" | |
8778 | module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" | |
8392 | 8779 | else |
8393 | 8780 | case $cc_basename in |
8394 | 8781 | xlc*) |
8395 | 8782 | output_verbose_link_cmd='echo' |
8396 | archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' | |
8783 | archive_cmds='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' | |
8397 | 8784 | module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' |
8398 | 8785 | # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds |
8399 | archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
8786 | archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
8400 | 8787 | module_expsym_cmds='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
8401 | 8788 | ;; |
8402 | 8789 | *) |
8436 | 8823 | ;; |
8437 | 8824 | |
8438 | 8825 | # FreeBSD 3 and greater uses gcc -shared to do shared libraries. |
8439 | freebsd* | kfreebsd*-gnu | dragonfly*) | |
8826 | freebsd* | dragonfly*) | |
8440 | 8827 | archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' |
8441 | 8828 | hardcode_libdir_flag_spec='-R$libdir' |
8442 | 8829 | hardcode_direct=yes |
8538 | 8925 | link_all_deplibs=yes |
8539 | 8926 | ;; |
8540 | 8927 | |
8541 | netbsd*) | |
8928 | netbsd* | netbsdelf*-gnu) | |
8542 | 8929 | if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
8543 | 8930 | archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out |
8544 | 8931 | else |
8558 | 8945 | ;; |
8559 | 8946 | |
8560 | 8947 | openbsd*) |
8561 | hardcode_direct=yes | |
8562 | hardcode_shlibpath_var=no | |
8563 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | |
8564 | archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
8565 | archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' | |
8566 | hardcode_libdir_flag_spec='${wl}-rpath,$libdir' | |
8567 | export_dynamic_flag_spec='${wl}-E' | |
8948 | if test -f /usr/libexec/ld.so; then | |
8949 | hardcode_direct=yes | |
8950 | hardcode_shlibpath_var=no | |
8951 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | |
8952 | archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
8953 | archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' | |
8954 | hardcode_libdir_flag_spec='${wl}-rpath,$libdir' | |
8955 | export_dynamic_flag_spec='${wl}-E' | |
8956 | else | |
8957 | case $host_os in | |
8958 | openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) | |
8959 | archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' | |
8960 | hardcode_libdir_flag_spec='-R$libdir' | |
8961 | ;; | |
8962 | *) | |
8963 | archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
8964 | hardcode_libdir_flag_spec='${wl}-rpath,$libdir' | |
8965 | ;; | |
8966 | esac | |
8967 | fi | |
8568 | 8968 | else |
8569 | case $host_os in | |
8570 | openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) | |
8571 | archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' | |
8572 | hardcode_libdir_flag_spec='-R$libdir' | |
8573 | ;; | |
8574 | *) | |
8575 | archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
8576 | hardcode_libdir_flag_spec='${wl}-rpath,$libdir' | |
8577 | ;; | |
8578 | esac | |
8969 | ld_shlibs=no | |
8579 | 8970 | fi |
8580 | 8971 | ;; |
8581 | 8972 | |
8634 | 9025 | case $host_os in |
8635 | 9026 | solaris2.[0-5] | solaris2.[0-5].*) ;; |
8636 | 9027 | *) |
8637 | # The compiler driver will combine linker options so we | |
8638 | # cannot just pass the convience library names through | |
8639 | # without $wl, iff we do not link with $LD. | |
8640 | # Luckily, gcc supports the same syntax we need for Sun Studio. | |
9028 | # The compiler driver will combine and reorder linker options, | |
9029 | # but understands `-z linker_flag'. GCC discards it without `$wl', | |
9030 | # but is careful enough not to reorder. | |
8641 | 9031 | # Supported since Solaris 2.6 (maybe 2.5.1?) |
8642 | case $wlarc in | |
8643 | '') | |
8644 | whole_archive_flag_spec='-z allextract$convenience -z defaultextract' ;; | |
8645 | *) | |
8646 | whole_archive_flag_spec='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; | |
8647 | esac ;; | |
9032 | if test "$GCC" = yes; then | |
9033 | whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' | |
9034 | else | |
9035 | whole_archive_flag_spec='-z allextract$convenience -z defaultextract' | |
9036 | fi | |
9037 | ;; | |
8648 | 9038 | esac |
8649 | 9039 | link_all_deplibs=yes |
8650 | 9040 | ;; |
8701 | 9091 | fi |
8702 | 9092 | ;; |
8703 | 9093 | |
8704 | sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) | |
9094 | sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) | |
8705 | 9095 | no_undefined_flag='${wl}-z,text' |
8706 | 9096 | archive_cmds_need_lc=no |
8707 | 9097 | hardcode_shlibpath_var=no |
8778 | 9168 | { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 |
8779 | 9169 | echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } |
8780 | 9170 | $rm conftest* |
8781 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
9171 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
8782 | 9172 | |
8783 | 9173 | if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 |
8784 | 9174 | (eval $ac_compile) 2>&5 |
8836 | 9226 | version_type=none |
8837 | 9227 | dynamic_linker="$host_os ld.so" |
8838 | 9228 | sys_lib_dlsearch_path_spec="/lib /usr/lib" |
9229 | ||
8839 | 9230 | if test "$GCC" = yes; then |
8840 | sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` | |
8841 | if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then | |
9231 | case $host_os in | |
9232 | darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; | |
9233 | *) lt_awk_arg="/^libraries:/" ;; | |
9234 | esac | |
9235 | lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` | |
9236 | if echo "$lt_search_path_spec" | grep ';' >/dev/null ; then | |
8842 | 9237 | # if the path contains ";" then we assume it to be the separator |
8843 | 9238 | # otherwise default to the standard path separator (i.e. ":") - it is |
8844 | 9239 | # assumed that no part of a normal pathname contains ";" but that should |
8845 | 9240 | # okay in the real world where ";" in dirpaths is itself problematic. |
8846 | sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` | |
9241 | lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e 's/;/ /g'` | |
8847 | 9242 | else |
8848 | sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` | |
9243 | lt_search_path_spec=`echo "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` | |
8849 | 9244 | fi |
9245 | # Ok, now we have the path, separated by spaces, we can step through it | |
9246 | # and add multilib dir if necessary. | |
9247 | lt_tmp_lt_search_path_spec= | |
9248 | lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` | |
9249 | for lt_sys_path in $lt_search_path_spec; do | |
9250 | if test -d "$lt_sys_path/$lt_multi_os_dir"; then | |
9251 | lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" | |
9252 | else | |
9253 | test -d "$lt_sys_path" && \ | |
9254 | lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" | |
9255 | fi | |
9256 | done | |
9257 | lt_search_path_spec=`echo $lt_tmp_lt_search_path_spec | awk ' | |
9258 | BEGIN {RS=" "; FS="/|\n";} { | |
9259 | lt_foo=""; | |
9260 | lt_count=0; | |
9261 | for (lt_i = NF; lt_i > 0; lt_i--) { | |
9262 | if ($lt_i != "" && $lt_i != ".") { | |
9263 | if ($lt_i == "..") { | |
9264 | lt_count++; | |
9265 | } else { | |
9266 | if (lt_count == 0) { | |
9267 | lt_foo="/" $lt_i lt_foo; | |
9268 | } else { | |
9269 | lt_count--; | |
9270 | } | |
9271 | } | |
9272 | } | |
9273 | } | |
9274 | if (lt_foo != "") { lt_freq[lt_foo]++; } | |
9275 | if (lt_freq[lt_foo] == 1) { print lt_foo; } | |
9276 | }'` | |
9277 | sys_lib_search_path_spec=`echo $lt_search_path_spec` | |
8850 | 9278 | else |
8851 | 9279 | sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" |
8852 | 9280 | fi |
8867 | 9295 | soname_spec='${libname}${release}${shared_ext}$major' |
8868 | 9296 | ;; |
8869 | 9297 | |
8870 | aix4* | aix5*) | |
9298 | aix[4-9]*) | |
8871 | 9299 | version_type=linux |
8872 | 9300 | need_lib_prefix=no |
8873 | 9301 | need_version=no |
9006 | 9434 | shlibpath_overrides_runpath=yes |
9007 | 9435 | shlibpath_var=DYLD_LIBRARY_PATH |
9008 | 9436 | shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' |
9009 | # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. | |
9010 | if test "$GCC" = yes; then | |
9011 | sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` | |
9012 | else | |
9013 | sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' | |
9014 | fi | |
9437 | ||
9438 | sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" | |
9015 | 9439 | sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' |
9016 | 9440 | ;; |
9017 | 9441 | |
9026 | 9450 | |
9027 | 9451 | freebsd1*) |
9028 | 9452 | dynamic_linker=no |
9029 | ;; | |
9030 | ||
9031 | kfreebsd*-gnu) | |
9032 | version_type=linux | |
9033 | need_lib_prefix=no | |
9034 | need_version=no | |
9035 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' | |
9036 | soname_spec='${libname}${release}${shared_ext}$major' | |
9037 | shlibpath_var=LD_LIBRARY_PATH | |
9038 | shlibpath_overrides_runpath=no | |
9039 | hardcode_into_libs=yes | |
9040 | dynamic_linker='GNU ld.so' | |
9041 | 9453 | ;; |
9042 | 9454 | |
9043 | 9455 | freebsd* | dragonfly*) |
9077 | 9489 | shlibpath_overrides_runpath=no |
9078 | 9490 | hardcode_into_libs=yes |
9079 | 9491 | ;; |
9080 | freebsd*) # from 4.6 on | |
9492 | *) # from 4.6 on, and DragonFly | |
9081 | 9493 | shlibpath_overrides_runpath=yes |
9082 | 9494 | hardcode_into_libs=yes |
9083 | 9495 | ;; |
9140 | 9552 | postinstall_cmds='chmod 555 $lib' |
9141 | 9553 | ;; |
9142 | 9554 | |
9143 | interix3*) | |
9555 | interix[3-9]*) | |
9144 | 9556 | version_type=linux |
9145 | 9557 | need_lib_prefix=no |
9146 | 9558 | need_version=no |
9195 | 9607 | ;; |
9196 | 9608 | |
9197 | 9609 | # This must be Linux ELF. |
9198 | linux*) | |
9610 | linux* | k*bsd*-gnu) | |
9199 | 9611 | version_type=linux |
9200 | 9612 | need_lib_prefix=no |
9201 | 9613 | need_version=no |
9209 | 9621 | # before this can be enabled. |
9210 | 9622 | hardcode_into_libs=yes |
9211 | 9623 | |
9212 | # find out which ABI we are using | |
9213 | libsuff= | |
9214 | case "$host_cpu" in | |
9215 | x86_64*|s390x*|powerpc64*) | |
9216 | echo '#line 9217 "configure"' > conftest.$ac_ext | |
9217 | if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 | |
9218 | (eval $ac_compile) 2>&5 | |
9219 | ac_status=$? | |
9220 | echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
9221 | (exit $ac_status); }; then | |
9222 | case `/usr/bin/file conftest.$ac_objext` in | |
9223 | *64-bit*) | |
9224 | libsuff=64 | |
9225 | sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" | |
9226 | ;; | |
9227 | esac | |
9228 | fi | |
9229 | rm -rf conftest* | |
9230 | ;; | |
9231 | esac | |
9232 | ||
9233 | 9624 | # Append ld.so.conf contents to the search path |
9234 | 9625 | if test -f /etc/ld.so.conf; then |
9235 | lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` | |
9236 | sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" | |
9626 | lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` | |
9627 | sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" | |
9237 | 9628 | fi |
9238 | 9629 | |
9239 | 9630 | # We used to test for /lib/ld.so.1 and disable shared libraries on |
9245 | 9636 | dynamic_linker='GNU/Linux ld.so' |
9246 | 9637 | ;; |
9247 | 9638 | |
9248 | knetbsd*-gnu) | |
9639 | netbsdelf*-gnu) | |
9249 | 9640 | version_type=linux |
9250 | 9641 | need_lib_prefix=no |
9251 | 9642 | need_version=no |
9254 | 9645 | shlibpath_var=LD_LIBRARY_PATH |
9255 | 9646 | shlibpath_overrides_runpath=no |
9256 | 9647 | hardcode_into_libs=yes |
9257 | dynamic_linker='GNU ld.so' | |
9648 | dynamic_linker='NetBSD ld.elf_so' | |
9258 | 9649 | ;; |
9259 | 9650 | |
9260 | 9651 | netbsd*) |
9338 | 9729 | sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" |
9339 | 9730 | ;; |
9340 | 9731 | |
9732 | rdos*) | |
9733 | dynamic_linker=no | |
9734 | ;; | |
9735 | ||
9341 | 9736 | solaris*) |
9342 | 9737 | version_type=linux |
9343 | 9738 | need_lib_prefix=no |
9434 | 9829 | echo "${ECHO_T}$dynamic_linker" >&6; } |
9435 | 9830 | test "$dynamic_linker" = no && can_build_shared=no |
9436 | 9831 | |
9832 | if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then | |
9833 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
9834 | else | |
9835 | lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" | |
9836 | fi | |
9837 | ||
9838 | sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" | |
9839 | if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then | |
9840 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
9841 | else | |
9842 | lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" | |
9843 | fi | |
9844 | ||
9845 | sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" | |
9846 | ||
9437 | 9847 | variables_saved_for_relink="PATH $shlibpath_var $runpath_var" |
9438 | 9848 | if test "$GCC" = yes; then |
9439 | 9849 | variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" |
9491 | 9901 | darwin*) |
9492 | 9902 | if test -n "$STRIP" ; then |
9493 | 9903 | striplib="$STRIP -x" |
9904 | old_striplib="$STRIP -S" | |
9494 | 9905 | { echo "$as_me:$LINENO: result: yes" >&5 |
9495 | 9906 | echo "${ECHO_T}yes" >&6; } |
9496 | 9907 | else |
9752 | 10163 | { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5 |
9753 | 10164 | echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; } |
9754 | 10165 | if test $ac_cv_lib_dld_shl_load = yes; then |
9755 | lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld" | |
10166 | lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" | |
9756 | 10167 | else |
9757 | 10168 | { echo "$as_me:$LINENO: checking for dlopen" >&5 |
9758 | 10169 | echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; } |
10028 | 10439 | { echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5 |
10029 | 10440 | echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; } |
10030 | 10441 | if test $ac_cv_lib_dld_dld_link = yes; then |
10031 | lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld" | |
10442 | lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" | |
10032 | 10443 | fi |
10033 | 10444 | |
10034 | 10445 | |
10077 | 10488 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
10078 | 10489 | lt_status=$lt_dlunknown |
10079 | 10490 | cat > conftest.$ac_ext <<EOF |
10080 | #line 10081 "configure" | |
10491 | #line 10492 "configure" | |
10081 | 10492 | #include "confdefs.h" |
10082 | 10493 | |
10083 | 10494 | #if HAVE_DLFCN_H |
10177 | 10588 | lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 |
10178 | 10589 | lt_status=$lt_dlunknown |
10179 | 10590 | cat > conftest.$ac_ext <<EOF |
10180 | #line 10181 "configure" | |
10591 | #line 10592 "configure" | |
10181 | 10592 | #include "confdefs.h" |
10182 | 10593 | |
10183 | 10594 | #if HAVE_DLFCN_H |
10304 | 10715 | fi |
10305 | 10716 | ;; |
10306 | 10717 | |
10307 | aix4* | aix5*) | |
10718 | aix[4-9]*) | |
10308 | 10719 | if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then |
10309 | 10720 | test "$enable_shared" = yes && enable_static=no |
10310 | 10721 | fi |
10360 | 10771 | predeps \ |
10361 | 10772 | postdeps \ |
10362 | 10773 | compiler_lib_search_path \ |
10774 | compiler_lib_search_dirs \ | |
10363 | 10775 | archive_cmds \ |
10364 | 10776 | archive_expsym_cmds \ |
10365 | 10777 | postinstall_cmds \ |
10375 | 10787 | module_cmds \ |
10376 | 10788 | module_expsym_cmds \ |
10377 | 10789 | lt_cv_prog_compiler_c_o \ |
10790 | fix_srcfile_path \ | |
10378 | 10791 | exclude_expsyms \ |
10379 | 10792 | include_expsyms; do |
10380 | 10793 | |
10419 | 10832 | # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP) |
10420 | 10833 | # NOTE: Changes made to this file will be lost: look at ltmain.sh. |
10421 | 10834 | # |
10422 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 | |
10835 | # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 | |
10423 | 10836 | # Free Software Foundation, Inc. |
10424 | 10837 | # |
10425 | 10838 | # This file is part of GNU Libtool: |
10508 | 10921 | # Is the compiler the GNU C compiler? |
10509 | 10922 | with_gcc=$GCC |
10510 | 10923 | |
10511 | gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` | |
10512 | gcc_ver=\`gcc -dumpversion\` | |
10513 | ||
10514 | 10924 | # An ERE matcher. |
10515 | 10925 | EGREP=$lt_EGREP |
10516 | 10926 | |
10644 | 11054 | |
10645 | 11055 | # Dependencies to place before the objects being linked to create a |
10646 | 11056 | # shared library. |
10647 | predep_objects=\`echo $lt_predep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
11057 | predep_objects=$lt_predep_objects | |
10648 | 11058 | |
10649 | 11059 | # Dependencies to place after the objects being linked to create a |
10650 | 11060 | # shared library. |
10651 | postdep_objects=\`echo $lt_postdep_objects | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
11061 | postdep_objects=$lt_postdep_objects | |
10652 | 11062 | |
10653 | 11063 | # Dependencies to place before the objects being linked to create a |
10654 | 11064 | # shared library. |
10658 | 11068 | # shared library. |
10659 | 11069 | postdeps=$lt_postdeps |
10660 | 11070 | |
11071 | # The directories searched by this compiler when creating a shared | |
11072 | # library | |
11073 | compiler_lib_search_dirs=$lt_compiler_lib_search_dirs | |
11074 | ||
10661 | 11075 | # The library search path used internally by the compiler when linking |
10662 | 11076 | # a shared library. |
10663 | compiler_lib_search_path=\`echo $lt_compiler_lib_search_path | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
11077 | compiler_lib_search_path=$lt_compiler_lib_search_path | |
10664 | 11078 | |
10665 | 11079 | # Method to check whether dependent libraries are shared objects. |
10666 | 11080 | deplibs_check_method=$lt_deplibs_check_method |
10740 | 11154 | link_all_deplibs=$link_all_deplibs |
10741 | 11155 | |
10742 | 11156 | # Compile-time system search path for libraries |
10743 | sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
11157 | sys_lib_search_path_spec=$lt_sys_lib_search_path_spec | |
10744 | 11158 | |
10745 | 11159 | # Run-time system search path for libraries |
10746 | 11160 | sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec |
10747 | 11161 | |
10748 | 11162 | # Fix the shell variable \$srcfile for the compiler. |
10749 | fix_srcfile_path="$fix_srcfile_path" | |
11163 | fix_srcfile_path=$lt_fix_srcfile_path | |
10750 | 11164 | |
10751 | 11165 | # Set to yes if exported symbols are required. |
10752 | 11166 | always_export_symbols=$always_export_symbols |
10906 | 11320 | predeps_CXX= |
10907 | 11321 | postdeps_CXX= |
10908 | 11322 | compiler_lib_search_path_CXX= |
11323 | compiler_lib_search_dirs_CXX= | |
10909 | 11324 | |
10910 | 11325 | # Source file extension for C++ test sources. |
10911 | 11326 | ac_ext=cpp |
10915 | 11330 | objext_CXX=$objext |
10916 | 11331 | |
10917 | 11332 | # Code to be used in simple compile tests |
10918 | lt_simple_compile_test_code="int some_variable = 0;\n" | |
11333 | lt_simple_compile_test_code="int some_variable = 0;" | |
10919 | 11334 | |
10920 | 11335 | # Code to be used in simple link tests |
10921 | lt_simple_link_test_code='int main(int, char *[]) { return(0); }\n' | |
11336 | lt_simple_link_test_code='int main(int, char *[]) { return(0); }' | |
10922 | 11337 | |
10923 | 11338 | # ltmain only uses $CC for tagged configurations so make sure $CC is set. |
10924 | 11339 | |
10934 | 11349 | |
10935 | 11350 | # save warnings/boilerplate of simple test code |
10936 | 11351 | ac_outfile=conftest.$ac_objext |
10937 | printf "$lt_simple_compile_test_code" >conftest.$ac_ext | |
11352 | echo "$lt_simple_compile_test_code" >conftest.$ac_ext | |
10938 | 11353 | eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err |
10939 | 11354 | _lt_compiler_boilerplate=`cat conftest.err` |
10940 | 11355 | $rm conftest* |
10941 | 11356 | |
10942 | 11357 | ac_outfile=conftest.$ac_objext |
10943 | printf "$lt_simple_link_test_code" >conftest.$ac_ext | |
11358 | echo "$lt_simple_link_test_code" >conftest.$ac_ext | |
10944 | 11359 | eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err |
10945 | 11360 | _lt_linker_boilerplate=`cat conftest.err` |
10946 | $rm conftest* | |
11361 | $rm -r conftest* | |
10947 | 11362 | |
10948 | 11363 | |
10949 | 11364 | # Allow CC to be a program name with arguments. |
11150 | 11565 | # FIXME: insert proper C++ library support |
11151 | 11566 | ld_shlibs_CXX=no |
11152 | 11567 | ;; |
11153 | aix4* | aix5*) | |
11568 | aix[4-9]*) | |
11154 | 11569 | if test "$host_cpu" = ia64; then |
11155 | 11570 | # On IA64, the linker does run time linking by default, so we don't |
11156 | 11571 | # have to do anything special. |
11163 | 11578 | # Test if we are trying to use run time linking or normal |
11164 | 11579 | # AIX style linking. If -brtl is somewhere in LDFLAGS, we |
11165 | 11580 | # need to do runtime linking. |
11166 | case $host_os in aix4.[23]|aix4.[23].*|aix5*) | |
11581 | case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) | |
11167 | 11582 | for ld_flag in $LDFLAGS; do |
11168 | 11583 | case $ld_flag in |
11169 | 11584 | *-brtl*) |
11199 | 11614 | strings "$collect2name" | grep resolve_lib_name >/dev/null |
11200 | 11615 | then |
11201 | 11616 | # We have reworked collect2 |
11202 | hardcode_direct_CXX=yes | |
11617 | : | |
11203 | 11618 | else |
11204 | 11619 | # We have old collect2 |
11205 | 11620 | hardcode_direct_CXX=unsupported |
11273 | 11688 | } && test -s conftest$ac_exeext && |
11274 | 11689 | $as_test_x conftest$ac_exeext; then |
11275 | 11690 | |
11276 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
11277 | }'` | |
11691 | lt_aix_libpath_sed=' | |
11692 | /Import File Strings/,/^$/ { | |
11693 | /^0/ { | |
11694 | s/^0 *\(.*\)$/\1/ | |
11695 | p | |
11696 | } | |
11697 | }' | |
11698 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
11278 | 11699 | # Check for a 64-bit object if we didn't find anything. |
11279 | if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
11280 | }'`; fi | |
11700 | if test -z "$aix_libpath"; then | |
11701 | aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
11702 | fi | |
11281 | 11703 | else |
11282 | 11704 | echo "$as_me: failed program was:" >&5 |
11283 | 11705 | sed 's/^/| /' conftest.$ac_ext >&5 |
11333 | 11755 | } && test -s conftest$ac_exeext && |
11334 | 11756 | $as_test_x conftest$ac_exeext; then |
11335 | 11757 | |
11336 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
11337 | }'` | |
11758 | lt_aix_libpath_sed=' | |
11759 | /Import File Strings/,/^$/ { | |
11760 | /^0/ { | |
11761 | s/^0 *\(.*\)$/\1/ | |
11762 | p | |
11763 | } | |
11764 | }' | |
11765 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
11338 | 11766 | # Check for a 64-bit object if we didn't find anything. |
11339 | if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
11340 | }'`; fi | |
11767 | if test -z "$aix_libpath"; then | |
11768 | aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
11769 | fi | |
11341 | 11770 | else |
11342 | 11771 | echo "$as_me: failed program was:" >&5 |
11343 | 11772 | sed 's/^/| /' conftest.$ac_ext >&5 |
11407 | 11836 | fi |
11408 | 11837 | ;; |
11409 | 11838 | darwin* | rhapsody*) |
11410 | case $host_os in | |
11411 | rhapsody* | darwin1.[012]) | |
11412 | allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress' | |
11413 | ;; | |
11414 | *) # Darwin 1.3 on | |
11415 | if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then | |
11416 | allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' | |
11417 | else | |
11418 | case ${MACOSX_DEPLOYMENT_TARGET} in | |
11419 | 10.[012]) | |
11420 | allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' | |
11421 | ;; | |
11422 | 10.*) | |
11423 | allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup' | |
11424 | ;; | |
11425 | esac | |
11426 | fi | |
11427 | ;; | |
11428 | esac | |
11429 | 11839 | archive_cmds_need_lc_CXX=no |
11430 | 11840 | hardcode_direct_CXX=no |
11431 | 11841 | hardcode_automatic_CXX=yes |
11432 | 11842 | hardcode_shlibpath_var_CXX=unsupported |
11433 | 11843 | whole_archive_flag_spec_CXX='' |
11434 | 11844 | link_all_deplibs_CXX=yes |
11435 | ||
11436 | if test "$GXX" = yes ; then | |
11437 | lt_int_apple_cc_single_mod=no | |
11845 | allow_undefined_flag_CXX="$_lt_dar_allow_undefined" | |
11846 | if test "$GXX" = yes ; then | |
11438 | 11847 | output_verbose_link_cmd='echo' |
11439 | if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then | |
11440 | lt_int_apple_cc_single_mod=yes | |
11848 | archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" | |
11849 | module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" | |
11850 | archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" | |
11851 | module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" | |
11852 | if test "$lt_cv_apple_cc_single_mod" != "yes"; then | |
11853 | archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" | |
11854 | archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" | |
11441 | 11855 | fi |
11442 | if test "X$lt_int_apple_cc_single_mod" = Xyes ; then | |
11443 | archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' | |
11444 | else | |
11445 | archive_cmds_CXX='$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring' | |
11446 | fi | |
11447 | module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' | |
11448 | # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds | |
11449 | if test "X$lt_int_apple_cc_single_mod" = Xyes ; then | |
11450 | archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
11451 | else | |
11452 | archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -r -keep_private_externs -nostdlib -o ${lib}-master.o $libobjs~$CC -dynamiclib $allow_undefined_flag -o $lib ${lib}-master.o $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
11453 | fi | |
11454 | module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
11455 | 11856 | else |
11456 | 11857 | case $cc_basename in |
11457 | 11858 | xlc*) |
11458 | 11859 | output_verbose_link_cmd='echo' |
11459 | archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' | |
11860 | archive_cmds_CXX='$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' | |
11460 | 11861 | module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' |
11461 | 11862 | # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds |
11462 | archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
11863 | archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj ${wl}-single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
11463 | 11864 | module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
11464 | 11865 | ;; |
11465 | 11866 | *) |
11493 | 11894 | freebsd-elf*) |
11494 | 11895 | archive_cmds_need_lc_CXX=no |
11495 | 11896 | ;; |
11496 | freebsd* | kfreebsd*-gnu | dragonfly*) | |
11897 | freebsd* | dragonfly*) | |
11497 | 11898 | # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF |
11498 | 11899 | # conventions |
11499 | 11900 | ld_shlibs_CXX=yes |
11542 | 11943 | hardcode_libdir_separator_CXX=: |
11543 | 11944 | |
11544 | 11945 | case $host_cpu in |
11545 | hppa*64*|ia64*) | |
11546 | hardcode_libdir_flag_spec_ld_CXX='+b $libdir' | |
11547 | ;; | |
11946 | hppa*64*|ia64*) ;; | |
11548 | 11947 | *) |
11549 | 11948 | export_dynamic_flag_spec_CXX='${wl}-E' |
11550 | 11949 | ;; |
11612 | 12011 | ;; |
11613 | 12012 | esac |
11614 | 12013 | ;; |
11615 | interix3*) | |
12014 | interix[3-9]*) | |
11616 | 12015 | hardcode_direct_CXX=no |
11617 | 12016 | hardcode_shlibpath_var_CXX=no |
11618 | 12017 | hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' |
11652 | 12051 | hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' |
11653 | 12052 | hardcode_libdir_separator_CXX=: |
11654 | 12053 | ;; |
11655 | linux*) | |
12054 | linux* | k*bsd*-gnu) | |
11656 | 12055 | case $cc_basename in |
11657 | 12056 | KCC*) |
11658 | 12057 | # Kuck and Associates, Inc. (KAI) C++ Compiler |
11704 | 12103 | export_dynamic_flag_spec_CXX='${wl}--export-dynamic' |
11705 | 12104 | whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' |
11706 | 12105 | ;; |
11707 | pgCC*) | |
12106 | pgCC* | pgcpp*) | |
11708 | 12107 | # Portland Group C++ compiler |
11709 | 12108 | archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' |
11710 | 12109 | archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' |
11731 | 12130 | # from the output so that they don't get included in the library |
11732 | 12131 | # dependencies. |
11733 | 12132 | output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | grep "ld"`; templist=`echo $templist | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; echo $list' |
12133 | ;; | |
12134 | *) | |
12135 | case `$CC -V 2>&1 | sed 5q` in | |
12136 | *Sun\ C*) | |
12137 | # Sun C++ 5.9 | |
12138 | no_undefined_flag_CXX=' -zdefs' | |
12139 | archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' | |
12140 | archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' | |
12141 | hardcode_libdir_flag_spec_CXX='-R$libdir' | |
12142 | whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' | |
12143 | ||
12144 | # Not sure whether something based on | |
12145 | # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | |
12146 | # would be better. | |
12147 | output_verbose_link_cmd='echo' | |
12148 | ||
12149 | # Archives containing C++ object files must be created using | |
12150 | # "CC -xar", where "CC" is the Sun C++ compiler. This is | |
12151 | # necessary to make sure instantiated templates are included | |
12152 | # in the archive. | |
12153 | old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' | |
12154 | ;; | |
12155 | esac | |
11734 | 12156 | ;; |
11735 | 12157 | esac |
11736 | 12158 | ;; |
11754 | 12176 | ;; |
11755 | 12177 | esac |
11756 | 12178 | ;; |
11757 | netbsd*) | |
12179 | netbsd* | netbsdelf*-gnu) | |
11758 | 12180 | if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
11759 | 12181 | archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' |
11760 | 12182 | wlarc= |
11770 | 12192 | ld_shlibs_CXX=no |
11771 | 12193 | ;; |
11772 | 12194 | openbsd*) |
11773 | hardcode_direct_CXX=yes | |
11774 | hardcode_shlibpath_var_CXX=no | |
11775 | archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' | |
11776 | hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' | |
11777 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | |
11778 | archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' | |
11779 | export_dynamic_flag_spec_CXX='${wl}-E' | |
11780 | whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' | |
12195 | if test -f /usr/libexec/ld.so; then | |
12196 | hardcode_direct_CXX=yes | |
12197 | hardcode_shlibpath_var_CXX=no | |
12198 | archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' | |
12199 | hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' | |
12200 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | |
12201 | archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' | |
12202 | export_dynamic_flag_spec_CXX='${wl}-E' | |
12203 | whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' | |
12204 | fi | |
12205 | output_verbose_link_cmd='echo' | |
12206 | else | |
12207 | ld_shlibs_CXX=no | |
11781 | 12208 | fi |
11782 | output_verbose_link_cmd='echo' | |
11783 | 12209 | ;; |
11784 | 12210 | osf3*) |
11785 | 12211 | case $cc_basename in |
11941 | 12367 | case $host_os in |
11942 | 12368 | solaris2.[0-5] | solaris2.[0-5].*) ;; |
11943 | 12369 | *) |
11944 | # The C++ compiler is used as linker so we must use $wl | |
11945 | # flag to pass the commands to the underlying system | |
11946 | # linker. We must also pass each convience library through | |
11947 | # to the system linker between allextract/defaultextract. | |
11948 | # The C++ compiler will combine linker options so we | |
11949 | # cannot just pass the convience library names through | |
11950 | # without $wl. | |
12370 | # The compiler driver will combine and reorder linker options, | |
12371 | # but understands `-z linker_flag'. | |
11951 | 12372 | # Supported since Solaris 2.6 (maybe 2.5.1?) |
11952 | whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' | |
12373 | whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' | |
11953 | 12374 | ;; |
11954 | 12375 | esac |
11955 | 12376 | link_all_deplibs_CXX=yes |
11996 | 12417 | fi |
11997 | 12418 | |
11998 | 12419 | hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' |
12420 | case $host_os in | |
12421 | solaris2.[0-5] | solaris2.[0-5].*) ;; | |
12422 | *) | |
12423 | whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' | |
12424 | ;; | |
12425 | esac | |
11999 | 12426 | fi |
12000 | 12427 | ;; |
12001 | 12428 | esac |
12083 | 12510 | GCC_CXX="$GXX" |
12084 | 12511 | LD_CXX="$LD" |
12085 | 12512 | |
12086 | ||
12087 | 12513 | cat > conftest.$ac_ext <<EOF |
12088 | 12514 | class Foo |
12089 | 12515 | { |
12185 | 12611 | |
12186 | 12612 | $rm -f confest.$objext |
12187 | 12613 | |
12614 | compiler_lib_search_dirs_CXX= | |
12615 | if test -n "$compiler_lib_search_path_CXX"; then | |
12616 | compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` | |
12617 | fi | |
12618 | ||
12188 | 12619 | # PORTME: override above test on systems where it is broken |
12189 | 12620 | case $host_os in |
12190 | interix3*) | |
12621 | interix[3-9]*) | |
12191 | 12622 | # Interix 3.5 installs completely hosed .la files for C++, so rather than |
12192 | 12623 | # hack all around it, let's just trust "g++" to DTRT. |
12193 | 12624 | predep_objects_CXX= |
12195 | 12626 | postdeps_CXX= |
12196 | 12627 | ;; |
12197 | 12628 | |
12629 | linux*) | |
12630 | case `$CC -V 2>&1 | sed 5q` in | |
12631 | *Sun\ C*) | |
12632 | # Sun C++ 5.9 | |
12633 | # | |
12634 | # The more standards-conforming stlport4 library is | |
12635 | # incompatible with the Cstd library. Avoid specifying | |
12636 | # it if it's in CXXFLAGS. Ignore libCrun as | |
12637 | # -library=stlport4 depends on it. | |
12638 | case " $CXX $CXXFLAGS " in | |
12639 | *" -library=stlport4 "*) | |
12640 | solaris_use_stlport4=yes | |
12641 | ;; | |
12642 | esac | |
12643 | if test "$solaris_use_stlport4" != yes; then | |
12644 | postdeps_CXX='-library=Cstd -library=Crun' | |
12645 | fi | |
12646 | ;; | |
12647 | esac | |
12648 | ;; | |
12649 | ||
12198 | 12650 | solaris*) |
12199 | 12651 | case $cc_basename in |
12200 | 12652 | CC*) |
12653 | # The more standards-conforming stlport4 library is | |
12654 | # incompatible with the Cstd library. Avoid specifying | |
12655 | # it if it's in CXXFLAGS. Ignore libCrun as | |
12656 | # -library=stlport4 depends on it. | |
12657 | case " $CXX $CXXFLAGS " in | |
12658 | *" -library=stlport4 "*) | |
12659 | solaris_use_stlport4=yes | |
12660 | ;; | |
12661 | esac | |
12662 | ||
12201 | 12663 | # Adding this requires a known-good setup of shared libraries for |
12202 | 12664 | # Sun compiler versions before 5.6, else PIC objects from an old |
12203 | 12665 | # archive will be linked into the output, leading to subtle bugs. |
12204 | postdeps_CXX='-lCstd -lCrun' | |
12666 | if test "$solaris_use_stlport4" != yes; then | |
12667 | postdeps_CXX='-library=Cstd -library=Crun' | |
12668 | fi | |
12205 | 12669 | ;; |
12206 | 12670 | esac |
12207 | 12671 | ;; |
12208 | 12672 | esac |
12209 | ||
12210 | 12673 | |
12211 | 12674 | case " $postdeps_CXX " in |
12212 | 12675 | *" -lc "*) archive_cmds_need_lc_CXX=no ;; |
12238 | 12701 | # like `-m68040'. |
12239 | 12702 | lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' |
12240 | 12703 | ;; |
12241 | beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | |
12704 | beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | |
12242 | 12705 | # PIC is the default for these OSes. |
12243 | 12706 | ;; |
12244 | mingw* | os2* | pw32*) | |
12707 | mingw* | cygwin* | os2* | pw32*) | |
12245 | 12708 | # This hack is so that the source file can tell whether it is being |
12246 | 12709 | # built for inclusion in a dll (and should export symbols for example). |
12710 | # Although the cygwin gcc ignores -fPIC, still need this for old-style | |
12711 | # (--disable-auto-import) libraries | |
12247 | 12712 | lt_prog_compiler_pic_CXX='-DDLL_EXPORT' |
12248 | 12713 | ;; |
12249 | 12714 | darwin* | rhapsody*) |
12255 | 12720 | # DJGPP does not support shared libraries at all |
12256 | 12721 | lt_prog_compiler_pic_CXX= |
12257 | 12722 | ;; |
12258 | interix3*) | |
12723 | interix[3-9]*) | |
12259 | 12724 | # Interix 3.x gcc -fpic/-fPIC options generate broken code. |
12260 | 12725 | # Instead, we relocate shared libraries at runtime. |
12261 | 12726 | ;; |
12281 | 12746 | esac |
12282 | 12747 | else |
12283 | 12748 | case $host_os in |
12284 | aix4* | aix5*) | |
12749 | aix[4-9]*) | |
12285 | 12750 | # All AIX code is PIC. |
12286 | 12751 | if test "$host_cpu" = ia64; then |
12287 | 12752 | # AIX 5 now supports IA64 processor |
12321 | 12786 | ;; |
12322 | 12787 | esac |
12323 | 12788 | ;; |
12324 | freebsd* | kfreebsd*-gnu | dragonfly*) | |
12789 | freebsd* | dragonfly*) | |
12325 | 12790 | # FreeBSD uses GNU C++ |
12326 | 12791 | ;; |
12327 | 12792 | hpux9* | hpux10* | hpux11*) |
12364 | 12829 | ;; |
12365 | 12830 | esac |
12366 | 12831 | ;; |
12367 | linux*) | |
12832 | linux* | k*bsd*-gnu) | |
12368 | 12833 | case $cc_basename in |
12369 | 12834 | KCC*) |
12370 | 12835 | # KAI C++ Compiler |
12377 | 12842 | lt_prog_compiler_pic_CXX='-KPIC' |
12378 | 12843 | lt_prog_compiler_static_CXX='-static' |
12379 | 12844 | ;; |
12380 | pgCC*) | |
12845 | pgCC* | pgcpp*) | |
12381 | 12846 | # Portland Group C++ compiler. |
12382 | 12847 | lt_prog_compiler_wl_CXX='-Wl,' |
12383 | 12848 | lt_prog_compiler_pic_CXX='-fpic' |
12391 | 12856 | lt_prog_compiler_static_CXX='-non_shared' |
12392 | 12857 | ;; |
12393 | 12858 | *) |
12859 | case `$CC -V 2>&1 | sed 5q` in | |
12860 | *Sun\ C*) | |
12861 | # Sun C++ 5.9 | |
12862 | lt_prog_compiler_pic_CXX='-KPIC' | |
12863 | lt_prog_compiler_static_CXX='-Bstatic' | |
12864 | lt_prog_compiler_wl_CXX='-Qoption ld ' | |
12865 | ;; | |
12866 | esac | |
12394 | 12867 | ;; |
12395 | 12868 | esac |
12396 | 12869 | ;; |
12407 | 12880 | ;; |
12408 | 12881 | esac |
12409 | 12882 | ;; |
12410 | netbsd*) | |
12883 | netbsd* | netbsdelf*-gnu) | |
12411 | 12884 | ;; |
12412 | 12885 | osf3* | osf4* | osf5*) |
12413 | 12886 | case $cc_basename in |
12500 | 12973 | |
12501 | 12974 | { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 |
12502 | 12975 | echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; } |
12503 | if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then | |
12976 | if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then | |
12504 | 12977 | echo $ECHO_N "(cached) $ECHO_C" >&6 |
12505 | 12978 | else |
12506 | lt_prog_compiler_pic_works_CXX=no | |
12979 | lt_cv_prog_compiler_pic_works_CXX=no | |
12507 | 12980 | ac_outfile=conftest.$ac_objext |
12508 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
12981 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
12509 | 12982 | lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" |
12510 | 12983 | # Insert the option either (1) after the last *FLAGS variable, or |
12511 | 12984 | # (2) before a word containing "conftest.", or (3) at the end. |
12516 | 12989 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
12517 | 12990 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
12518 | 12991 | -e 's:$: $lt_compiler_flag:'` |
12519 | (eval echo "\"\$as_me:12520: $lt_compile\"" >&5) | |
12992 | (eval echo "\"\$as_me:12993: $lt_compile\"" >&5) | |
12520 | 12993 | (eval "$lt_compile" 2>conftest.err) |
12521 | 12994 | ac_status=$? |
12522 | 12995 | cat conftest.err >&5 |
12523 | echo "$as_me:12524: \$? = $ac_status" >&5 | |
12996 | echo "$as_me:12997: \$? = $ac_status" >&5 | |
12524 | 12997 | if (exit $ac_status) && test -s "$ac_outfile"; then |
12525 | 12998 | # The compiler can only warn and ignore the option if not recognized |
12526 | 12999 | # So say no if there are warnings other than the usual output. |
12527 | 13000 | $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp |
12528 | 13001 | $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 |
12529 | 13002 | if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then |
12530 | lt_prog_compiler_pic_works_CXX=yes | |
13003 | lt_cv_prog_compiler_pic_works_CXX=yes | |
12531 | 13004 | fi |
12532 | 13005 | fi |
12533 | 13006 | $rm conftest* |
12534 | 13007 | |
12535 | 13008 | fi |
12536 | { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5 | |
12537 | echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; } | |
12538 | ||
12539 | if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then | |
13009 | { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 | |
13010 | echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_CXX" >&6; } | |
13011 | ||
13012 | if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then | |
12540 | 13013 | case $lt_prog_compiler_pic_CXX in |
12541 | 13014 | "" | " "*) ;; |
12542 | 13015 | *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; |
12563 | 13036 | wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" |
12564 | 13037 | { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 |
12565 | 13038 | echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } |
12566 | if test "${lt_prog_compiler_static_works_CXX+set}" = set; then | |
13039 | if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then | |
12567 | 13040 | echo $ECHO_N "(cached) $ECHO_C" >&6 |
12568 | 13041 | else |
12569 | lt_prog_compiler_static_works_CXX=no | |
13042 | lt_cv_prog_compiler_static_works_CXX=no | |
12570 | 13043 | save_LDFLAGS="$LDFLAGS" |
12571 | 13044 | LDFLAGS="$LDFLAGS $lt_tmp_static_flag" |
12572 | printf "$lt_simple_link_test_code" > conftest.$ac_ext | |
13045 | echo "$lt_simple_link_test_code" > conftest.$ac_ext | |
12573 | 13046 | if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then |
12574 | 13047 | # The linker can only warn and ignore the option if not recognized |
12575 | 13048 | # So say no if there are warnings |
12579 | 13052 | $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp |
12580 | 13053 | $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 |
12581 | 13054 | if diff conftest.exp conftest.er2 >/dev/null; then |
12582 | lt_prog_compiler_static_works_CXX=yes | |
13055 | lt_cv_prog_compiler_static_works_CXX=yes | |
12583 | 13056 | fi |
12584 | 13057 | else |
12585 | lt_prog_compiler_static_works_CXX=yes | |
13058 | lt_cv_prog_compiler_static_works_CXX=yes | |
12586 | 13059 | fi |
12587 | 13060 | fi |
12588 | $rm conftest* | |
13061 | $rm -r conftest* | |
12589 | 13062 | LDFLAGS="$save_LDFLAGS" |
12590 | 13063 | |
12591 | 13064 | fi |
12592 | { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5 | |
12593 | echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; } | |
12594 | ||
12595 | if test x"$lt_prog_compiler_static_works_CXX" = xyes; then | |
13065 | { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5 | |
13066 | echo "${ECHO_T}$lt_cv_prog_compiler_static_works_CXX" >&6; } | |
13067 | ||
13068 | if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then | |
12596 | 13069 | : |
12597 | 13070 | else |
12598 | 13071 | lt_prog_compiler_static_CXX= |
12609 | 13082 | mkdir conftest |
12610 | 13083 | cd conftest |
12611 | 13084 | mkdir out |
12612 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
13085 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
12613 | 13086 | |
12614 | 13087 | lt_compiler_flag="-o out/conftest2.$ac_objext" |
12615 | 13088 | # Insert the option either (1) after the last *FLAGS variable, or |
12620 | 13093 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
12621 | 13094 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
12622 | 13095 | -e 's:$: $lt_compiler_flag:'` |
12623 | (eval echo "\"\$as_me:12624: $lt_compile\"" >&5) | |
13096 | (eval echo "\"\$as_me:13097: $lt_compile\"" >&5) | |
12624 | 13097 | (eval "$lt_compile" 2>out/conftest.err) |
12625 | 13098 | ac_status=$? |
12626 | 13099 | cat out/conftest.err >&5 |
12627 | echo "$as_me:12628: \$? = $ac_status" >&5 | |
13100 | echo "$as_me:13101: \$? = $ac_status" >&5 | |
12628 | 13101 | if (exit $ac_status) && test -s out/conftest2.$ac_objext |
12629 | 13102 | then |
12630 | 13103 | # The compiler can only warn and ignore the option if not recognized |
12677 | 13150 | |
12678 | 13151 | export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' |
12679 | 13152 | case $host_os in |
12680 | aix4* | aix5*) | |
13153 | aix[4-9]*) | |
12681 | 13154 | # If we're using GNU nm, then we don't want the "-C" option. |
12682 | 13155 | # -C means demangle to AIX nm, but means don't demangle with GNU nm |
12683 | 13156 | if $NM -V 2>&1 | grep 'GNU' > /dev/null; then |
12690 | 13163 | export_symbols_cmds_CXX="$ltdll_cmds" |
12691 | 13164 | ;; |
12692 | 13165 | cygwin* | mingw*) |
12693 | export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/;/^.* __nm__/s/^.* __nm__\([^ ]*\) [^ ]*/\1 DATA/;/^I /d;/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' | |
13166 | export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' | |
13167 | ;; | |
13168 | linux* | k*bsd*-gnu) | |
13169 | link_all_deplibs_CXX=no | |
12694 | 13170 | ;; |
12695 | 13171 | *) |
12696 | 13172 | export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' |
12697 | 13173 | ;; |
12698 | 13174 | esac |
13175 | exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' | |
12699 | 13176 | |
12700 | 13177 | { echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5 |
12701 | 13178 | echo "${ECHO_T}$ld_shlibs_CXX" >&6; } |
12721 | 13198 | { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 |
12722 | 13199 | echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } |
12723 | 13200 | $rm conftest* |
12724 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
13201 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
12725 | 13202 | |
12726 | 13203 | if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 |
12727 | 13204 | (eval $ac_compile) 2>&5 |
12779 | 13256 | version_type=none |
12780 | 13257 | dynamic_linker="$host_os ld.so" |
12781 | 13258 | sys_lib_dlsearch_path_spec="/lib /usr/lib" |
12782 | if test "$GCC" = yes; then | |
12783 | sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` | |
12784 | if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then | |
12785 | # if the path contains ";" then we assume it to be the separator | |
12786 | # otherwise default to the standard path separator (i.e. ":") - it is | |
12787 | # assumed that no part of a normal pathname contains ";" but that should | |
12788 | # okay in the real world where ";" in dirpaths is itself problematic. | |
12789 | sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` | |
12790 | else | |
12791 | sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` | |
12792 | fi | |
12793 | else | |
12794 | sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" | |
12795 | fi | |
13259 | ||
12796 | 13260 | need_lib_prefix=unknown |
12797 | 13261 | hardcode_into_libs=no |
12798 | 13262 | |
12810 | 13274 | soname_spec='${libname}${release}${shared_ext}$major' |
12811 | 13275 | ;; |
12812 | 13276 | |
12813 | aix4* | aix5*) | |
13277 | aix[4-9]*) | |
12814 | 13278 | version_type=linux |
12815 | 13279 | need_lib_prefix=no |
12816 | 13280 | need_version=no |
12949 | 13413 | shlibpath_overrides_runpath=yes |
12950 | 13414 | shlibpath_var=DYLD_LIBRARY_PATH |
12951 | 13415 | shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' |
12952 | # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. | |
12953 | if test "$GCC" = yes; then | |
12954 | sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` | |
12955 | else | |
12956 | sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' | |
12957 | fi | |
13416 | ||
12958 | 13417 | sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' |
12959 | 13418 | ;; |
12960 | 13419 | |
12969 | 13428 | |
12970 | 13429 | freebsd1*) |
12971 | 13430 | dynamic_linker=no |
12972 | ;; | |
12973 | ||
12974 | kfreebsd*-gnu) | |
12975 | version_type=linux | |
12976 | need_lib_prefix=no | |
12977 | need_version=no | |
12978 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' | |
12979 | soname_spec='${libname}${release}${shared_ext}$major' | |
12980 | shlibpath_var=LD_LIBRARY_PATH | |
12981 | shlibpath_overrides_runpath=no | |
12982 | hardcode_into_libs=yes | |
12983 | dynamic_linker='GNU ld.so' | |
12984 | 13431 | ;; |
12985 | 13432 | |
12986 | 13433 | freebsd* | dragonfly*) |
13020 | 13467 | shlibpath_overrides_runpath=no |
13021 | 13468 | hardcode_into_libs=yes |
13022 | 13469 | ;; |
13023 | freebsd*) # from 4.6 on | |
13470 | *) # from 4.6 on, and DragonFly | |
13024 | 13471 | shlibpath_overrides_runpath=yes |
13025 | 13472 | hardcode_into_libs=yes |
13026 | 13473 | ;; |
13083 | 13530 | postinstall_cmds='chmod 555 $lib' |
13084 | 13531 | ;; |
13085 | 13532 | |
13086 | interix3*) | |
13533 | interix[3-9]*) | |
13087 | 13534 | version_type=linux |
13088 | 13535 | need_lib_prefix=no |
13089 | 13536 | need_version=no |
13138 | 13585 | ;; |
13139 | 13586 | |
13140 | 13587 | # This must be Linux ELF. |
13141 | linux*) | |
13588 | linux* | k*bsd*-gnu) | |
13142 | 13589 | version_type=linux |
13143 | 13590 | need_lib_prefix=no |
13144 | 13591 | need_version=no |
13152 | 13599 | # before this can be enabled. |
13153 | 13600 | hardcode_into_libs=yes |
13154 | 13601 | |
13155 | # find out which ABI we are using | |
13156 | libsuff= | |
13157 | case "$host_cpu" in | |
13158 | x86_64*|s390x*|powerpc64*) | |
13159 | echo '#line 13160 "configure"' > conftest.$ac_ext | |
13160 | if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 | |
13161 | (eval $ac_compile) 2>&5 | |
13162 | ac_status=$? | |
13163 | echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
13164 | (exit $ac_status); }; then | |
13165 | case `/usr/bin/file conftest.$ac_objext` in | |
13166 | *64-bit*) | |
13167 | libsuff=64 | |
13168 | sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" | |
13169 | ;; | |
13170 | esac | |
13171 | fi | |
13172 | rm -rf conftest* | |
13173 | ;; | |
13174 | esac | |
13175 | ||
13176 | 13602 | # Append ld.so.conf contents to the search path |
13177 | 13603 | if test -f /etc/ld.so.conf; then |
13178 | lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` | |
13179 | sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" | |
13604 | lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` | |
13605 | sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" | |
13180 | 13606 | fi |
13181 | 13607 | |
13182 | 13608 | # We used to test for /lib/ld.so.1 and disable shared libraries on |
13188 | 13614 | dynamic_linker='GNU/Linux ld.so' |
13189 | 13615 | ;; |
13190 | 13616 | |
13191 | knetbsd*-gnu) | |
13617 | netbsdelf*-gnu) | |
13192 | 13618 | version_type=linux |
13193 | 13619 | need_lib_prefix=no |
13194 | 13620 | need_version=no |
13197 | 13623 | shlibpath_var=LD_LIBRARY_PATH |
13198 | 13624 | shlibpath_overrides_runpath=no |
13199 | 13625 | hardcode_into_libs=yes |
13200 | dynamic_linker='GNU ld.so' | |
13626 | dynamic_linker='NetBSD ld.elf_so' | |
13201 | 13627 | ;; |
13202 | 13628 | |
13203 | 13629 | netbsd*) |
13281 | 13707 | sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" |
13282 | 13708 | ;; |
13283 | 13709 | |
13710 | rdos*) | |
13711 | dynamic_linker=no | |
13712 | ;; | |
13713 | ||
13284 | 13714 | solaris*) |
13285 | 13715 | version_type=linux |
13286 | 13716 | need_lib_prefix=no |
13376 | 13806 | { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 |
13377 | 13807 | echo "${ECHO_T}$dynamic_linker" >&6; } |
13378 | 13808 | test "$dynamic_linker" = no && can_build_shared=no |
13809 | ||
13810 | if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then | |
13811 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
13812 | else | |
13813 | lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" | |
13814 | fi | |
13815 | ||
13816 | sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" | |
13817 | if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then | |
13818 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
13819 | else | |
13820 | lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" | |
13821 | fi | |
13822 | ||
13823 | sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" | |
13379 | 13824 | |
13380 | 13825 | variables_saved_for_relink="PATH $shlibpath_var $runpath_var" |
13381 | 13826 | if test "$GCC" = yes; then |
13460 | 13905 | predeps_CXX \ |
13461 | 13906 | postdeps_CXX \ |
13462 | 13907 | compiler_lib_search_path_CXX \ |
13908 | compiler_lib_search_dirs_CXX \ | |
13463 | 13909 | archive_cmds_CXX \ |
13464 | 13910 | archive_expsym_cmds_CXX \ |
13465 | 13911 | postinstall_cmds_CXX \ |
13475 | 13921 | module_cmds_CXX \ |
13476 | 13922 | module_expsym_cmds_CXX \ |
13477 | 13923 | lt_cv_prog_compiler_c_o_CXX \ |
13924 | fix_srcfile_path_CXX \ | |
13478 | 13925 | exclude_expsyms_CXX \ |
13479 | 13926 | include_expsyms_CXX; do |
13480 | 13927 | |
13560 | 14007 | # Is the compiler the GNU C compiler? |
13561 | 14008 | with_gcc=$GCC_CXX |
13562 | 14009 | |
13563 | gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` | |
13564 | gcc_ver=\`gcc -dumpversion\` | |
13565 | ||
13566 | 14010 | # An ERE matcher. |
13567 | 14011 | EGREP=$lt_EGREP |
13568 | 14012 | |
13696 | 14140 | |
13697 | 14141 | # Dependencies to place before the objects being linked to create a |
13698 | 14142 | # shared library. |
13699 | predep_objects=\`echo $lt_predep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
14143 | predep_objects=$lt_predep_objects_CXX | |
13700 | 14144 | |
13701 | 14145 | # Dependencies to place after the objects being linked to create a |
13702 | 14146 | # shared library. |
13703 | postdep_objects=\`echo $lt_postdep_objects_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
14147 | postdep_objects=$lt_postdep_objects_CXX | |
13704 | 14148 | |
13705 | 14149 | # Dependencies to place before the objects being linked to create a |
13706 | 14150 | # shared library. |
13710 | 14154 | # shared library. |
13711 | 14155 | postdeps=$lt_postdeps_CXX |
13712 | 14156 | |
14157 | # The directories searched by this compiler when creating a shared | |
14158 | # library | |
14159 | compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX | |
14160 | ||
13713 | 14161 | # The library search path used internally by the compiler when linking |
13714 | 14162 | # a shared library. |
13715 | compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_CXX | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
14163 | compiler_lib_search_path=$lt_compiler_lib_search_path_CXX | |
13716 | 14164 | |
13717 | 14165 | # Method to check whether dependent libraries are shared objects. |
13718 | 14166 | deplibs_check_method=$lt_deplibs_check_method |
13792 | 14240 | link_all_deplibs=$link_all_deplibs_CXX |
13793 | 14241 | |
13794 | 14242 | # Compile-time system search path for libraries |
13795 | sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
14243 | sys_lib_search_path_spec=$lt_sys_lib_search_path_spec | |
13796 | 14244 | |
13797 | 14245 | # Run-time system search path for libraries |
13798 | 14246 | sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec |
13799 | 14247 | |
13800 | 14248 | # Fix the shell variable \$srcfile for the compiler. |
13801 | fix_srcfile_path="$fix_srcfile_path_CXX" | |
14249 | fix_srcfile_path=$lt_fix_srcfile_path | |
13802 | 14250 | |
13803 | 14251 | # Set to yes if exported symbols are required. |
13804 | 14252 | always_export_symbols=$always_export_symbols_CXX |
13889 | 14337 | objext_F77=$objext |
13890 | 14338 | |
13891 | 14339 | # Code to be used in simple compile tests |
13892 | lt_simple_compile_test_code=" subroutine t\n return\n end\n" | |
14340 | lt_simple_compile_test_code="\ | |
14341 | subroutine t | |
14342 | return | |
14343 | end | |
14344 | " | |
13893 | 14345 | |
13894 | 14346 | # Code to be used in simple link tests |
13895 | lt_simple_link_test_code=" program t\n end\n" | |
14347 | lt_simple_link_test_code="\ | |
14348 | program t | |
14349 | end | |
14350 | " | |
13896 | 14351 | |
13897 | 14352 | # ltmain only uses $CC for tagged configurations so make sure $CC is set. |
13898 | 14353 | |
13908 | 14363 | |
13909 | 14364 | # save warnings/boilerplate of simple test code |
13910 | 14365 | ac_outfile=conftest.$ac_objext |
13911 | printf "$lt_simple_compile_test_code" >conftest.$ac_ext | |
14366 | echo "$lt_simple_compile_test_code" >conftest.$ac_ext | |
13912 | 14367 | eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err |
13913 | 14368 | _lt_compiler_boilerplate=`cat conftest.err` |
13914 | 14369 | $rm conftest* |
13915 | 14370 | |
13916 | 14371 | ac_outfile=conftest.$ac_objext |
13917 | printf "$lt_simple_link_test_code" >conftest.$ac_ext | |
14372 | echo "$lt_simple_link_test_code" >conftest.$ac_ext | |
13918 | 14373 | eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err |
13919 | 14374 | _lt_linker_boilerplate=`cat conftest.err` |
13920 | $rm conftest* | |
14375 | $rm -r conftest* | |
13921 | 14376 | |
13922 | 14377 | |
13923 | 14378 | # Allow CC to be a program name with arguments. |
13955 | 14410 | postinstall_cmds='$RANLIB $lib' |
13956 | 14411 | fi |
13957 | 14412 | ;; |
13958 | aix4* | aix5*) | |
14413 | aix[4-9]*) | |
13959 | 14414 | if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then |
13960 | 14415 | test "$enable_shared" = yes && enable_static=no |
13961 | 14416 | fi |
14001 | 14456 | lt_prog_compiler_pic_F77='-m68020 -resident32 -malways-restore-a4' |
14002 | 14457 | ;; |
14003 | 14458 | |
14004 | beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | |
14459 | beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | |
14005 | 14460 | # PIC is the default for these OSes. |
14006 | 14461 | ;; |
14007 | 14462 | |
14008 | mingw* | pw32* | os2*) | |
14463 | mingw* | cygwin* | pw32* | os2*) | |
14009 | 14464 | # This hack is so that the source file can tell whether it is being |
14010 | 14465 | # built for inclusion in a dll (and should export symbols for example). |
14466 | # Although the cygwin gcc ignores -fPIC, still need this for old-style | |
14467 | # (--disable-auto-import) libraries | |
14011 | 14468 | lt_prog_compiler_pic_F77='-DDLL_EXPORT' |
14012 | 14469 | ;; |
14013 | 14470 | |
14017 | 14474 | lt_prog_compiler_pic_F77='-fno-common' |
14018 | 14475 | ;; |
14019 | 14476 | |
14020 | interix3*) | |
14477 | interix[3-9]*) | |
14021 | 14478 | # Interix 3.x gcc -fpic/-fPIC options generate broken code. |
14022 | 14479 | # Instead, we relocate shared libraries at runtime. |
14023 | 14480 | ;; |
14075 | 14532 | esac |
14076 | 14533 | ;; |
14077 | 14534 | |
14078 | mingw* | pw32* | os2*) | |
14535 | mingw* | cygwin* | pw32* | os2*) | |
14079 | 14536 | # This hack is so that the source file can tell whether it is being |
14080 | 14537 | # built for inclusion in a dll (and should export symbols for example). |
14081 | 14538 | lt_prog_compiler_pic_F77='-DDLL_EXPORT' |
14108 | 14565 | lt_prog_compiler_static_F77='-Bstatic' |
14109 | 14566 | ;; |
14110 | 14567 | |
14111 | linux*) | |
14568 | linux* | k*bsd*-gnu) | |
14112 | 14569 | case $cc_basename in |
14113 | 14570 | icc* | ecc*) |
14114 | 14571 | lt_prog_compiler_wl_F77='-Wl,' |
14127 | 14584 | # All Alpha code is PIC. |
14128 | 14585 | lt_prog_compiler_static_F77='-non_shared' |
14129 | 14586 | ;; |
14587 | *) | |
14588 | case `$CC -V 2>&1 | sed 5q` in | |
14589 | *Sun\ C*) | |
14590 | # Sun C 5.9 | |
14591 | lt_prog_compiler_pic_F77='-KPIC' | |
14592 | lt_prog_compiler_static_F77='-Bstatic' | |
14593 | lt_prog_compiler_wl_F77='-Wl,' | |
14594 | ;; | |
14595 | *Sun\ F*) | |
14596 | # Sun Fortran 8.3 passes all unrecognized flags to the linker | |
14597 | lt_prog_compiler_pic_F77='-KPIC' | |
14598 | lt_prog_compiler_static_F77='-Bstatic' | |
14599 | lt_prog_compiler_wl_F77='' | |
14600 | ;; | |
14601 | esac | |
14602 | ;; | |
14130 | 14603 | esac |
14131 | 14604 | ;; |
14132 | 14605 | |
14133 | 14606 | osf3* | osf4* | osf5*) |
14134 | 14607 | lt_prog_compiler_wl_F77='-Wl,' |
14135 | 14608 | # All OSF/1 code is PIC. |
14609 | lt_prog_compiler_static_F77='-non_shared' | |
14610 | ;; | |
14611 | ||
14612 | rdos*) | |
14136 | 14613 | lt_prog_compiler_static_F77='-non_shared' |
14137 | 14614 | ;; |
14138 | 14615 | |
14198 | 14675 | |
14199 | 14676 | { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5 |
14200 | 14677 | echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; } |
14201 | if test "${lt_prog_compiler_pic_works_F77+set}" = set; then | |
14678 | if test "${lt_cv_prog_compiler_pic_works_F77+set}" = set; then | |
14202 | 14679 | echo $ECHO_N "(cached) $ECHO_C" >&6 |
14203 | 14680 | else |
14204 | lt_prog_compiler_pic_works_F77=no | |
14681 | lt_cv_prog_compiler_pic_works_F77=no | |
14205 | 14682 | ac_outfile=conftest.$ac_objext |
14206 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
14683 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
14207 | 14684 | lt_compiler_flag="$lt_prog_compiler_pic_F77" |
14208 | 14685 | # Insert the option either (1) after the last *FLAGS variable, or |
14209 | 14686 | # (2) before a word containing "conftest.", or (3) at the end. |
14214 | 14691 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
14215 | 14692 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
14216 | 14693 | -e 's:$: $lt_compiler_flag:'` |
14217 | (eval echo "\"\$as_me:14218: $lt_compile\"" >&5) | |
14694 | (eval echo "\"\$as_me:14695: $lt_compile\"" >&5) | |
14218 | 14695 | (eval "$lt_compile" 2>conftest.err) |
14219 | 14696 | ac_status=$? |
14220 | 14697 | cat conftest.err >&5 |
14221 | echo "$as_me:14222: \$? = $ac_status" >&5 | |
14698 | echo "$as_me:14699: \$? = $ac_status" >&5 | |
14222 | 14699 | if (exit $ac_status) && test -s "$ac_outfile"; then |
14223 | 14700 | # The compiler can only warn and ignore the option if not recognized |
14224 | 14701 | # So say no if there are warnings other than the usual output. |
14225 | 14702 | $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp |
14226 | 14703 | $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 |
14227 | 14704 | if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then |
14228 | lt_prog_compiler_pic_works_F77=yes | |
14705 | lt_cv_prog_compiler_pic_works_F77=yes | |
14229 | 14706 | fi |
14230 | 14707 | fi |
14231 | 14708 | $rm conftest* |
14232 | 14709 | |
14233 | 14710 | fi |
14234 | { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5 | |
14235 | echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; } | |
14236 | ||
14237 | if test x"$lt_prog_compiler_pic_works_F77" = xyes; then | |
14711 | { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_F77" >&5 | |
14712 | echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_F77" >&6; } | |
14713 | ||
14714 | if test x"$lt_cv_prog_compiler_pic_works_F77" = xyes; then | |
14238 | 14715 | case $lt_prog_compiler_pic_F77 in |
14239 | 14716 | "" | " "*) ;; |
14240 | 14717 | *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;; |
14261 | 14738 | wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\" |
14262 | 14739 | { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 |
14263 | 14740 | echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } |
14264 | if test "${lt_prog_compiler_static_works_F77+set}" = set; then | |
14741 | if test "${lt_cv_prog_compiler_static_works_F77+set}" = set; then | |
14265 | 14742 | echo $ECHO_N "(cached) $ECHO_C" >&6 |
14266 | 14743 | else |
14267 | lt_prog_compiler_static_works_F77=no | |
14744 | lt_cv_prog_compiler_static_works_F77=no | |
14268 | 14745 | save_LDFLAGS="$LDFLAGS" |
14269 | 14746 | LDFLAGS="$LDFLAGS $lt_tmp_static_flag" |
14270 | printf "$lt_simple_link_test_code" > conftest.$ac_ext | |
14747 | echo "$lt_simple_link_test_code" > conftest.$ac_ext | |
14271 | 14748 | if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then |
14272 | 14749 | # The linker can only warn and ignore the option if not recognized |
14273 | 14750 | # So say no if there are warnings |
14277 | 14754 | $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp |
14278 | 14755 | $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 |
14279 | 14756 | if diff conftest.exp conftest.er2 >/dev/null; then |
14280 | lt_prog_compiler_static_works_F77=yes | |
14757 | lt_cv_prog_compiler_static_works_F77=yes | |
14281 | 14758 | fi |
14282 | 14759 | else |
14283 | lt_prog_compiler_static_works_F77=yes | |
14760 | lt_cv_prog_compiler_static_works_F77=yes | |
14284 | 14761 | fi |
14285 | 14762 | fi |
14286 | $rm conftest* | |
14763 | $rm -r conftest* | |
14287 | 14764 | LDFLAGS="$save_LDFLAGS" |
14288 | 14765 | |
14289 | 14766 | fi |
14290 | { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5 | |
14291 | echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; } | |
14292 | ||
14293 | if test x"$lt_prog_compiler_static_works_F77" = xyes; then | |
14767 | { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_F77" >&5 | |
14768 | echo "${ECHO_T}$lt_cv_prog_compiler_static_works_F77" >&6; } | |
14769 | ||
14770 | if test x"$lt_cv_prog_compiler_static_works_F77" = xyes; then | |
14294 | 14771 | : |
14295 | 14772 | else |
14296 | 14773 | lt_prog_compiler_static_F77= |
14307 | 14784 | mkdir conftest |
14308 | 14785 | cd conftest |
14309 | 14786 | mkdir out |
14310 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
14787 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
14311 | 14788 | |
14312 | 14789 | lt_compiler_flag="-o out/conftest2.$ac_objext" |
14313 | 14790 | # Insert the option either (1) after the last *FLAGS variable, or |
14318 | 14795 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
14319 | 14796 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
14320 | 14797 | -e 's:$: $lt_compiler_flag:'` |
14321 | (eval echo "\"\$as_me:14322: $lt_compile\"" >&5) | |
14798 | (eval echo "\"\$as_me:14799: $lt_compile\"" >&5) | |
14322 | 14799 | (eval "$lt_compile" 2>out/conftest.err) |
14323 | 14800 | ac_status=$? |
14324 | 14801 | cat out/conftest.err >&5 |
14325 | echo "$as_me:14326: \$? = $ac_status" >&5 | |
14802 | echo "$as_me:14803: \$? = $ac_status" >&5 | |
14326 | 14803 | if (exit $ac_status) && test -s out/conftest2.$ac_objext |
14327 | 14804 | then |
14328 | 14805 | # The compiler can only warn and ignore the option if not recognized |
14402 | 14879 | # it will be wrapped by ` (' and `)$', so one must not match beginning or |
14403 | 14880 | # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', |
14404 | 14881 | # as well as any symbol that contains `d'. |
14405 | exclude_expsyms_F77="_GLOBAL_OFFSET_TABLE_" | |
14882 | exclude_expsyms_F77='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' | |
14406 | 14883 | # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out |
14407 | 14884 | # platforms (ab)use it in PIC code, but their linkers get confused if |
14408 | 14885 | # the symbol is explicitly referenced. Since portable code cannot |
14409 | 14886 | # rely on this symbol name, it's probably fine to never include it in |
14410 | 14887 | # preloaded symbol tables. |
14888 | # Exclude shared library initialization/finalization symbols. | |
14411 | 14889 | extract_expsyms_cmds= |
14412 | 14890 | # Just being paranoid about ensuring that cc_basename is set. |
14413 | 14891 | for cc_temp in $compiler""; do |
14466 | 14944 | |
14467 | 14945 | # See if GNU ld supports shared libraries. |
14468 | 14946 | case $host_os in |
14469 | aix3* | aix4* | aix5*) | |
14947 | aix[3-9]*) | |
14470 | 14948 | # On AIX/PPC, the GNU linker is very broken |
14471 | 14949 | if test "$host_cpu" != ia64; then |
14472 | 14950 | ld_shlibs_F77=no |
14514 | 14992 | allow_undefined_flag_F77=unsupported |
14515 | 14993 | always_export_symbols_F77=no |
14516 | 14994 | enable_shared_with_static_runtimes_F77=yes |
14517 | export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' | |
14995 | export_symbols_cmds_F77='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' | |
14518 | 14996 | |
14519 | 14997 | if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then |
14520 | 14998 | archive_cmds_F77='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' |
14532 | 15010 | fi |
14533 | 15011 | ;; |
14534 | 15012 | |
14535 | interix3*) | |
15013 | interix[3-9]*) | |
14536 | 15014 | hardcode_direct_F77=no |
14537 | 15015 | hardcode_shlibpath_var_F77=no |
14538 | 15016 | hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' |
14547 | 15025 | archive_expsym_cmds_F77='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' |
14548 | 15026 | ;; |
14549 | 15027 | |
14550 | linux*) | |
15028 | gnu* | linux* | k*bsd*-gnu) | |
14551 | 15029 | if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then |
14552 | 15030 | tmp_addflag= |
14553 | 15031 | case $cc_basename,$host_cpu in |
14565 | 15043 | ifc* | ifort*) # Intel Fortran compiler |
14566 | 15044 | tmp_addflag=' -nofor_main' ;; |
14567 | 15045 | esac |
14568 | archive_cmds_F77='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | |
15046 | case `$CC -V 2>&1 | sed 5q` in | |
15047 | *Sun\ C*) # Sun C 5.9 | |
15048 | whole_archive_flag_spec_F77='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' | |
15049 | tmp_sharedflag='-G' ;; | |
15050 | *Sun\ F*) # Sun Fortran 8.3 | |
15051 | tmp_sharedflag='-G' ;; | |
15052 | *) | |
15053 | tmp_sharedflag='-shared' ;; | |
15054 | esac | |
15055 | archive_cmds_F77='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | |
14569 | 15056 | |
14570 | 15057 | if test $supports_anon_versioning = yes; then |
14571 | 15058 | archive_expsym_cmds_F77='$echo "{ global:" > $output_objdir/$libname.ver~ |
14572 | 15059 | cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ |
14573 | 15060 | $echo "local: *; };" >> $output_objdir/$libname.ver~ |
14574 | $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' | |
15061 | $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' | |
14575 | 15062 | fi |
15063 | link_all_deplibs_F77=no | |
14576 | 15064 | else |
14577 | 15065 | ld_shlibs_F77=no |
14578 | 15066 | fi |
14579 | 15067 | ;; |
14580 | 15068 | |
14581 | netbsd*) | |
15069 | netbsd* | netbsdelf*-gnu) | |
14582 | 15070 | if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
14583 | 15071 | archive_cmds_F77='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' |
14584 | 15072 | wlarc= |
14676 | 15164 | fi |
14677 | 15165 | ;; |
14678 | 15166 | |
14679 | aix4* | aix5*) | |
15167 | aix[4-9]*) | |
14680 | 15168 | if test "$host_cpu" = ia64; then |
14681 | 15169 | # On IA64, the linker does run time linking by default, so we don't |
14682 | 15170 | # have to do anything special. |
14696 | 15184 | # Test if we are trying to use run time linking or normal |
14697 | 15185 | # AIX style linking. If -brtl is somewhere in LDFLAGS, we |
14698 | 15186 | # need to do runtime linking. |
14699 | case $host_os in aix4.[23]|aix4.[23].*|aix5*) | |
15187 | case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) | |
14700 | 15188 | for ld_flag in $LDFLAGS; do |
14701 | 15189 | if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then |
14702 | 15190 | aix_use_runtimelinking=yes |
14730 | 15218 | strings "$collect2name" | grep resolve_lib_name >/dev/null |
14731 | 15219 | then |
14732 | 15220 | # We have reworked collect2 |
14733 | hardcode_direct_F77=yes | |
15221 | : | |
14734 | 15222 | else |
14735 | 15223 | # We have old collect2 |
14736 | 15224 | hardcode_direct_F77=unsupported |
14794 | 15282 | } && test -s conftest$ac_exeext && |
14795 | 15283 | $as_test_x conftest$ac_exeext; then |
14796 | 15284 | |
14797 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
14798 | }'` | |
15285 | lt_aix_libpath_sed=' | |
15286 | /Import File Strings/,/^$/ { | |
15287 | /^0/ { | |
15288 | s/^0 *\(.*\)$/\1/ | |
15289 | p | |
15290 | } | |
15291 | }' | |
15292 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
14799 | 15293 | # Check for a 64-bit object if we didn't find anything. |
14800 | if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
14801 | }'`; fi | |
15294 | if test -z "$aix_libpath"; then | |
15295 | aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
15296 | fi | |
14802 | 15297 | else |
14803 | 15298 | echo "$as_me: failed program was:" >&5 |
14804 | 15299 | sed 's/^/| /' conftest.$ac_ext >&5 |
14843 | 15338 | } && test -s conftest$ac_exeext && |
14844 | 15339 | $as_test_x conftest$ac_exeext; then |
14845 | 15340 | |
14846 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
14847 | }'` | |
15341 | lt_aix_libpath_sed=' | |
15342 | /Import File Strings/,/^$/ { | |
15343 | /^0/ { | |
15344 | s/^0 *\(.*\)$/\1/ | |
15345 | p | |
15346 | } | |
15347 | }' | |
15348 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
14848 | 15349 | # Check for a 64-bit object if we didn't find anything. |
14849 | if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
14850 | }'`; fi | |
15350 | if test -z "$aix_libpath"; then | |
15351 | aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
15352 | fi | |
14851 | 15353 | else |
14852 | 15354 | echo "$as_me: failed program was:" >&5 |
14853 | 15355 | sed 's/^/| /' conftest.$ac_ext >&5 |
14901 | 15403 | # The linker will automatically build a .lib file if we build a DLL. |
14902 | 15404 | old_archive_From_new_cmds_F77='true' |
14903 | 15405 | # FIXME: Should let the user specify the lib program. |
14904 | old_archive_cmds_F77='lib /OUT:$oldlib$oldobjs$old_deplibs' | |
15406 | old_archive_cmds_F77='lib -OUT:$oldlib$oldobjs$old_deplibs' | |
14905 | 15407 | fix_srcfile_path_F77='`cygpath -w "$srcfile"`' |
14906 | 15408 | enable_shared_with_static_runtimes_F77=yes |
14907 | 15409 | ;; |
14934 | 15436 | link_all_deplibs_F77=yes |
14935 | 15437 | if test "$GCC" = yes ; then |
14936 | 15438 | output_verbose_link_cmd='echo' |
14937 | archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' | |
14938 | module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' | |
14939 | # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds | |
14940 | archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
14941 | module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
15439 | archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" | |
15440 | module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" | |
15441 | archive_expsym_cmds_F77="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" | |
15442 | module_expsym_cmds_F77="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" | |
14942 | 15443 | else |
14943 | 15444 | case $cc_basename in |
14944 | 15445 | xlc*) |
14945 | 15446 | output_verbose_link_cmd='echo' |
14946 | archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' | |
15447 | archive_cmds_F77='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' | |
14947 | 15448 | module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' |
14948 | 15449 | # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds |
14949 | archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
15450 | archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
14950 | 15451 | module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
14951 | 15452 | ;; |
14952 | 15453 | *) |
14986 | 15487 | ;; |
14987 | 15488 | |
14988 | 15489 | # FreeBSD 3 and greater uses gcc -shared to do shared libraries. |
14989 | freebsd* | kfreebsd*-gnu | dragonfly*) | |
15490 | freebsd* | dragonfly*) | |
14990 | 15491 | archive_cmds_F77='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' |
14991 | 15492 | hardcode_libdir_flag_spec_F77='-R$libdir' |
14992 | 15493 | hardcode_direct_F77=yes |
15088 | 15589 | link_all_deplibs_F77=yes |
15089 | 15590 | ;; |
15090 | 15591 | |
15091 | netbsd*) | |
15592 | netbsd* | netbsdelf*-gnu) | |
15092 | 15593 | if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
15093 | 15594 | archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out |
15094 | 15595 | else |
15108 | 15609 | ;; |
15109 | 15610 | |
15110 | 15611 | openbsd*) |
15111 | hardcode_direct_F77=yes | |
15112 | hardcode_shlibpath_var_F77=no | |
15113 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | |
15114 | archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
15115 | archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' | |
15116 | hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' | |
15117 | export_dynamic_flag_spec_F77='${wl}-E' | |
15612 | if test -f /usr/libexec/ld.so; then | |
15613 | hardcode_direct_F77=yes | |
15614 | hardcode_shlibpath_var_F77=no | |
15615 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | |
15616 | archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
15617 | archive_expsym_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' | |
15618 | hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' | |
15619 | export_dynamic_flag_spec_F77='${wl}-E' | |
15620 | else | |
15621 | case $host_os in | |
15622 | openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) | |
15623 | archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' | |
15624 | hardcode_libdir_flag_spec_F77='-R$libdir' | |
15625 | ;; | |
15626 | *) | |
15627 | archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
15628 | hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' | |
15629 | ;; | |
15630 | esac | |
15631 | fi | |
15118 | 15632 | else |
15119 | case $host_os in | |
15120 | openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) | |
15121 | archive_cmds_F77='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' | |
15122 | hardcode_libdir_flag_spec_F77='-R$libdir' | |
15123 | ;; | |
15124 | *) | |
15125 | archive_cmds_F77='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
15126 | hardcode_libdir_flag_spec_F77='${wl}-rpath,$libdir' | |
15127 | ;; | |
15128 | esac | |
15633 | ld_shlibs_F77=no | |
15129 | 15634 | fi |
15130 | 15635 | ;; |
15131 | 15636 | |
15184 | 15689 | case $host_os in |
15185 | 15690 | solaris2.[0-5] | solaris2.[0-5].*) ;; |
15186 | 15691 | *) |
15187 | # The compiler driver will combine linker options so we | |
15188 | # cannot just pass the convience library names through | |
15189 | # without $wl, iff we do not link with $LD. | |
15190 | # Luckily, gcc supports the same syntax we need for Sun Studio. | |
15692 | # The compiler driver will combine and reorder linker options, | |
15693 | # but understands `-z linker_flag'. GCC discards it without `$wl', | |
15694 | # but is careful enough not to reorder. | |
15191 | 15695 | # Supported since Solaris 2.6 (maybe 2.5.1?) |
15192 | case $wlarc in | |
15193 | '') | |
15194 | whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' ;; | |
15195 | *) | |
15196 | whole_archive_flag_spec_F77='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; | |
15197 | esac ;; | |
15696 | if test "$GCC" = yes; then | |
15697 | whole_archive_flag_spec_F77='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' | |
15698 | else | |
15699 | whole_archive_flag_spec_F77='-z allextract$convenience -z defaultextract' | |
15700 | fi | |
15701 | ;; | |
15198 | 15702 | esac |
15199 | 15703 | link_all_deplibs_F77=yes |
15200 | 15704 | ;; |
15251 | 15755 | fi |
15252 | 15756 | ;; |
15253 | 15757 | |
15254 | sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) | |
15758 | sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) | |
15255 | 15759 | no_undefined_flag_F77='${wl}-z,text' |
15256 | 15760 | archive_cmds_need_lc_F77=no |
15257 | 15761 | hardcode_shlibpath_var_F77=no |
15328 | 15832 | { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 |
15329 | 15833 | echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } |
15330 | 15834 | $rm conftest* |
15331 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
15835 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
15332 | 15836 | |
15333 | 15837 | if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 |
15334 | 15838 | (eval $ac_compile) 2>&5 |
15386 | 15890 | version_type=none |
15387 | 15891 | dynamic_linker="$host_os ld.so" |
15388 | 15892 | sys_lib_dlsearch_path_spec="/lib /usr/lib" |
15389 | if test "$GCC" = yes; then | |
15390 | sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` | |
15391 | if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then | |
15392 | # if the path contains ";" then we assume it to be the separator | |
15393 | # otherwise default to the standard path separator (i.e. ":") - it is | |
15394 | # assumed that no part of a normal pathname contains ";" but that should | |
15395 | # okay in the real world where ";" in dirpaths is itself problematic. | |
15396 | sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` | |
15397 | else | |
15398 | sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` | |
15399 | fi | |
15400 | else | |
15401 | sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" | |
15402 | fi | |
15893 | ||
15403 | 15894 | need_lib_prefix=unknown |
15404 | 15895 | hardcode_into_libs=no |
15405 | 15896 | |
15417 | 15908 | soname_spec='${libname}${release}${shared_ext}$major' |
15418 | 15909 | ;; |
15419 | 15910 | |
15420 | aix4* | aix5*) | |
15911 | aix[4-9]*) | |
15421 | 15912 | version_type=linux |
15422 | 15913 | need_lib_prefix=no |
15423 | 15914 | need_version=no |
15556 | 16047 | shlibpath_overrides_runpath=yes |
15557 | 16048 | shlibpath_var=DYLD_LIBRARY_PATH |
15558 | 16049 | shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' |
15559 | # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. | |
15560 | if test "$GCC" = yes; then | |
15561 | sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` | |
15562 | else | |
15563 | sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' | |
15564 | fi | |
16050 | ||
15565 | 16051 | sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' |
15566 | 16052 | ;; |
15567 | 16053 | |
15576 | 16062 | |
15577 | 16063 | freebsd1*) |
15578 | 16064 | dynamic_linker=no |
15579 | ;; | |
15580 | ||
15581 | kfreebsd*-gnu) | |
15582 | version_type=linux | |
15583 | need_lib_prefix=no | |
15584 | need_version=no | |
15585 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' | |
15586 | soname_spec='${libname}${release}${shared_ext}$major' | |
15587 | shlibpath_var=LD_LIBRARY_PATH | |
15588 | shlibpath_overrides_runpath=no | |
15589 | hardcode_into_libs=yes | |
15590 | dynamic_linker='GNU ld.so' | |
15591 | 16065 | ;; |
15592 | 16066 | |
15593 | 16067 | freebsd* | dragonfly*) |
15627 | 16101 | shlibpath_overrides_runpath=no |
15628 | 16102 | hardcode_into_libs=yes |
15629 | 16103 | ;; |
15630 | freebsd*) # from 4.6 on | |
16104 | *) # from 4.6 on, and DragonFly | |
15631 | 16105 | shlibpath_overrides_runpath=yes |
15632 | 16106 | hardcode_into_libs=yes |
15633 | 16107 | ;; |
15690 | 16164 | postinstall_cmds='chmod 555 $lib' |
15691 | 16165 | ;; |
15692 | 16166 | |
15693 | interix3*) | |
16167 | interix[3-9]*) | |
15694 | 16168 | version_type=linux |
15695 | 16169 | need_lib_prefix=no |
15696 | 16170 | need_version=no |
15745 | 16219 | ;; |
15746 | 16220 | |
15747 | 16221 | # This must be Linux ELF. |
15748 | linux*) | |
16222 | linux* | k*bsd*-gnu) | |
15749 | 16223 | version_type=linux |
15750 | 16224 | need_lib_prefix=no |
15751 | 16225 | need_version=no |
15759 | 16233 | # before this can be enabled. |
15760 | 16234 | hardcode_into_libs=yes |
15761 | 16235 | |
15762 | # find out which ABI we are using | |
15763 | libsuff= | |
15764 | case "$host_cpu" in | |
15765 | x86_64*|s390x*|powerpc64*) | |
15766 | echo '#line 15767 "configure"' > conftest.$ac_ext | |
15767 | if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 | |
15768 | (eval $ac_compile) 2>&5 | |
15769 | ac_status=$? | |
15770 | echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
15771 | (exit $ac_status); }; then | |
15772 | case `/usr/bin/file conftest.$ac_objext` in | |
15773 | *64-bit*) | |
15774 | libsuff=64 | |
15775 | sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" | |
15776 | ;; | |
15777 | esac | |
15778 | fi | |
15779 | rm -rf conftest* | |
15780 | ;; | |
15781 | esac | |
15782 | ||
15783 | 16236 | # Append ld.so.conf contents to the search path |
15784 | 16237 | if test -f /etc/ld.so.conf; then |
15785 | lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` | |
15786 | sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" | |
16238 | lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` | |
16239 | sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" | |
15787 | 16240 | fi |
15788 | 16241 | |
15789 | 16242 | # We used to test for /lib/ld.so.1 and disable shared libraries on |
15795 | 16248 | dynamic_linker='GNU/Linux ld.so' |
15796 | 16249 | ;; |
15797 | 16250 | |
15798 | knetbsd*-gnu) | |
16251 | netbsdelf*-gnu) | |
15799 | 16252 | version_type=linux |
15800 | 16253 | need_lib_prefix=no |
15801 | 16254 | need_version=no |
15804 | 16257 | shlibpath_var=LD_LIBRARY_PATH |
15805 | 16258 | shlibpath_overrides_runpath=no |
15806 | 16259 | hardcode_into_libs=yes |
15807 | dynamic_linker='GNU ld.so' | |
16260 | dynamic_linker='NetBSD ld.elf_so' | |
15808 | 16261 | ;; |
15809 | 16262 | |
15810 | 16263 | netbsd*) |
15888 | 16341 | sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" |
15889 | 16342 | ;; |
15890 | 16343 | |
16344 | rdos*) | |
16345 | dynamic_linker=no | |
16346 | ;; | |
16347 | ||
15891 | 16348 | solaris*) |
15892 | 16349 | version_type=linux |
15893 | 16350 | need_lib_prefix=no |
15983 | 16440 | { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 |
15984 | 16441 | echo "${ECHO_T}$dynamic_linker" >&6; } |
15985 | 16442 | test "$dynamic_linker" = no && can_build_shared=no |
16443 | ||
16444 | if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then | |
16445 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
16446 | else | |
16447 | lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" | |
16448 | fi | |
16449 | ||
16450 | sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" | |
16451 | if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then | |
16452 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
16453 | else | |
16454 | lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" | |
16455 | fi | |
16456 | ||
16457 | sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" | |
15986 | 16458 | |
15987 | 16459 | variables_saved_for_relink="PATH $shlibpath_var $runpath_var" |
15988 | 16460 | if test "$GCC" = yes; then |
16067 | 16539 | predeps_F77 \ |
16068 | 16540 | postdeps_F77 \ |
16069 | 16541 | compiler_lib_search_path_F77 \ |
16542 | compiler_lib_search_dirs_F77 \ | |
16070 | 16543 | archive_cmds_F77 \ |
16071 | 16544 | archive_expsym_cmds_F77 \ |
16072 | 16545 | postinstall_cmds_F77 \ |
16082 | 16555 | module_cmds_F77 \ |
16083 | 16556 | module_expsym_cmds_F77 \ |
16084 | 16557 | lt_cv_prog_compiler_c_o_F77 \ |
16558 | fix_srcfile_path_F77 \ | |
16085 | 16559 | exclude_expsyms_F77 \ |
16086 | 16560 | include_expsyms_F77; do |
16087 | 16561 | |
16167 | 16641 | # Is the compiler the GNU C compiler? |
16168 | 16642 | with_gcc=$GCC_F77 |
16169 | 16643 | |
16170 | gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` | |
16171 | gcc_ver=\`gcc -dumpversion\` | |
16172 | ||
16173 | 16644 | # An ERE matcher. |
16174 | 16645 | EGREP=$lt_EGREP |
16175 | 16646 | |
16303 | 16774 | |
16304 | 16775 | # Dependencies to place before the objects being linked to create a |
16305 | 16776 | # shared library. |
16306 | predep_objects=\`echo $lt_predep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
16777 | predep_objects=$lt_predep_objects_F77 | |
16307 | 16778 | |
16308 | 16779 | # Dependencies to place after the objects being linked to create a |
16309 | 16780 | # shared library. |
16310 | postdep_objects=\`echo $lt_postdep_objects_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
16781 | postdep_objects=$lt_postdep_objects_F77 | |
16311 | 16782 | |
16312 | 16783 | # Dependencies to place before the objects being linked to create a |
16313 | 16784 | # shared library. |
16317 | 16788 | # shared library. |
16318 | 16789 | postdeps=$lt_postdeps_F77 |
16319 | 16790 | |
16791 | # The directories searched by this compiler when creating a shared | |
16792 | # library | |
16793 | compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_F77 | |
16794 | ||
16320 | 16795 | # The library search path used internally by the compiler when linking |
16321 | 16796 | # a shared library. |
16322 | compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_F77 | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
16797 | compiler_lib_search_path=$lt_compiler_lib_search_path_F77 | |
16323 | 16798 | |
16324 | 16799 | # Method to check whether dependent libraries are shared objects. |
16325 | 16800 | deplibs_check_method=$lt_deplibs_check_method |
16399 | 16874 | link_all_deplibs=$link_all_deplibs_F77 |
16400 | 16875 | |
16401 | 16876 | # Compile-time system search path for libraries |
16402 | sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
16877 | sys_lib_search_path_spec=$lt_sys_lib_search_path_spec | |
16403 | 16878 | |
16404 | 16879 | # Run-time system search path for libraries |
16405 | 16880 | sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec |
16406 | 16881 | |
16407 | 16882 | # Fix the shell variable \$srcfile for the compiler. |
16408 | fix_srcfile_path="$fix_srcfile_path_F77" | |
16883 | fix_srcfile_path=$lt_fix_srcfile_path | |
16409 | 16884 | |
16410 | 16885 | # Set to yes if exported symbols are required. |
16411 | 16886 | always_export_symbols=$always_export_symbols_F77 |
16463 | 16938 | objext_GCJ=$objext |
16464 | 16939 | |
16465 | 16940 | # Code to be used in simple compile tests |
16466 | lt_simple_compile_test_code="class foo {}\n" | |
16941 | lt_simple_compile_test_code="class foo {}" | |
16467 | 16942 | |
16468 | 16943 | # Code to be used in simple link tests |
16469 | lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }\n' | |
16944 | lt_simple_link_test_code='public class conftest { public static void main(String[] argv) {}; }' | |
16470 | 16945 | |
16471 | 16946 | # ltmain only uses $CC for tagged configurations so make sure $CC is set. |
16472 | 16947 | |
16482 | 16957 | |
16483 | 16958 | # save warnings/boilerplate of simple test code |
16484 | 16959 | ac_outfile=conftest.$ac_objext |
16485 | printf "$lt_simple_compile_test_code" >conftest.$ac_ext | |
16960 | echo "$lt_simple_compile_test_code" >conftest.$ac_ext | |
16486 | 16961 | eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err |
16487 | 16962 | _lt_compiler_boilerplate=`cat conftest.err` |
16488 | 16963 | $rm conftest* |
16489 | 16964 | |
16490 | 16965 | ac_outfile=conftest.$ac_objext |
16491 | printf "$lt_simple_link_test_code" >conftest.$ac_ext | |
16966 | echo "$lt_simple_link_test_code" >conftest.$ac_ext | |
16492 | 16967 | eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err |
16493 | 16968 | _lt_linker_boilerplate=`cat conftest.err` |
16494 | $rm conftest* | |
16969 | $rm -r conftest* | |
16495 | 16970 | |
16496 | 16971 | |
16497 | 16972 | # Allow CC to be a program name with arguments. |
16509 | 16984 | done |
16510 | 16985 | cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` |
16511 | 16986 | |
16512 | LD_GCJ="$LD" | |
16513 | 16987 | |
16514 | 16988 | # GCJ did not exist at the time GCC didn't implicitly link libc in. |
16515 | 16989 | archive_cmds_need_lc_GCJ=no |
16530 | 17004 | else |
16531 | 17005 | lt_cv_prog_compiler_rtti_exceptions=no |
16532 | 17006 | ac_outfile=conftest.$ac_objext |
16533 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
17007 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
16534 | 17008 | lt_compiler_flag="-fno-rtti -fno-exceptions" |
16535 | 17009 | # Insert the option either (1) after the last *FLAGS variable, or |
16536 | 17010 | # (2) before a word containing "conftest.", or (3) at the end. |
16541 | 17015 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
16542 | 17016 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
16543 | 17017 | -e 's:$: $lt_compiler_flag:'` |
16544 | (eval echo "\"\$as_me:16545: $lt_compile\"" >&5) | |
17018 | (eval echo "\"\$as_me:17019: $lt_compile\"" >&5) | |
16545 | 17019 | (eval "$lt_compile" 2>conftest.err) |
16546 | 17020 | ac_status=$? |
16547 | 17021 | cat conftest.err >&5 |
16548 | echo "$as_me:16549: \$? = $ac_status" >&5 | |
17022 | echo "$as_me:17023: \$? = $ac_status" >&5 | |
16549 | 17023 | if (exit $ac_status) && test -s "$ac_outfile"; then |
16550 | 17024 | # The compiler can only warn and ignore the option if not recognized |
16551 | 17025 | # So say no if there are warnings other than the usual output. |
16596 | 17070 | lt_prog_compiler_pic_GCJ='-m68020 -resident32 -malways-restore-a4' |
16597 | 17071 | ;; |
16598 | 17072 | |
16599 | beos* | cygwin* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | |
17073 | beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) | |
16600 | 17074 | # PIC is the default for these OSes. |
16601 | 17075 | ;; |
16602 | 17076 | |
16603 | mingw* | pw32* | os2*) | |
17077 | mingw* | cygwin* | pw32* | os2*) | |
16604 | 17078 | # This hack is so that the source file can tell whether it is being |
16605 | 17079 | # built for inclusion in a dll (and should export symbols for example). |
16606 | lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' | |
17080 | # Although the cygwin gcc ignores -fPIC, still need this for old-style | |
17081 | # (--disable-auto-import) libraries | |
17082 | ||
16607 | 17083 | ;; |
16608 | 17084 | |
16609 | 17085 | darwin* | rhapsody*) |
16612 | 17088 | lt_prog_compiler_pic_GCJ='-fno-common' |
16613 | 17089 | ;; |
16614 | 17090 | |
16615 | interix3*) | |
17091 | interix[3-9]*) | |
16616 | 17092 | # Interix 3.x gcc -fpic/-fPIC options generate broken code. |
16617 | 17093 | # Instead, we relocate shared libraries at runtime. |
16618 | 17094 | ;; |
16670 | 17146 | esac |
16671 | 17147 | ;; |
16672 | 17148 | |
16673 | mingw* | pw32* | os2*) | |
17149 | mingw* | cygwin* | pw32* | os2*) | |
16674 | 17150 | # This hack is so that the source file can tell whether it is being |
16675 | 17151 | # built for inclusion in a dll (and should export symbols for example). |
16676 | lt_prog_compiler_pic_GCJ='-DDLL_EXPORT' | |
17152 | ||
16677 | 17153 | ;; |
16678 | 17154 | |
16679 | 17155 | hpux9* | hpux10* | hpux11*) |
16703 | 17179 | lt_prog_compiler_static_GCJ='-Bstatic' |
16704 | 17180 | ;; |
16705 | 17181 | |
16706 | linux*) | |
17182 | linux* | k*bsd*-gnu) | |
16707 | 17183 | case $cc_basename in |
16708 | 17184 | icc* | ecc*) |
16709 | 17185 | lt_prog_compiler_wl_GCJ='-Wl,' |
16722 | 17198 | # All Alpha code is PIC. |
16723 | 17199 | lt_prog_compiler_static_GCJ='-non_shared' |
16724 | 17200 | ;; |
17201 | *) | |
17202 | case `$CC -V 2>&1 | sed 5q` in | |
17203 | *Sun\ C*) | |
17204 | # Sun C 5.9 | |
17205 | lt_prog_compiler_pic_GCJ='-KPIC' | |
17206 | lt_prog_compiler_static_GCJ='-Bstatic' | |
17207 | lt_prog_compiler_wl_GCJ='-Wl,' | |
17208 | ;; | |
17209 | *Sun\ F*) | |
17210 | # Sun Fortran 8.3 passes all unrecognized flags to the linker | |
17211 | lt_prog_compiler_pic_GCJ='-KPIC' | |
17212 | lt_prog_compiler_static_GCJ='-Bstatic' | |
17213 | lt_prog_compiler_wl_GCJ='' | |
17214 | ;; | |
17215 | esac | |
17216 | ;; | |
16725 | 17217 | esac |
16726 | 17218 | ;; |
16727 | 17219 | |
16728 | 17220 | osf3* | osf4* | osf5*) |
16729 | 17221 | lt_prog_compiler_wl_GCJ='-Wl,' |
16730 | 17222 | # All OSF/1 code is PIC. |
17223 | lt_prog_compiler_static_GCJ='-non_shared' | |
17224 | ;; | |
17225 | ||
17226 | rdos*) | |
16731 | 17227 | lt_prog_compiler_static_GCJ='-non_shared' |
16732 | 17228 | ;; |
16733 | 17229 | |
16793 | 17289 | |
16794 | 17290 | { echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5 |
16795 | 17291 | echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; } |
16796 | if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then | |
17292 | if test "${lt_cv_prog_compiler_pic_works_GCJ+set}" = set; then | |
16797 | 17293 | echo $ECHO_N "(cached) $ECHO_C" >&6 |
16798 | 17294 | else |
16799 | lt_prog_compiler_pic_works_GCJ=no | |
17295 | lt_cv_prog_compiler_pic_works_GCJ=no | |
16800 | 17296 | ac_outfile=conftest.$ac_objext |
16801 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
17297 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
16802 | 17298 | lt_compiler_flag="$lt_prog_compiler_pic_GCJ" |
16803 | 17299 | # Insert the option either (1) after the last *FLAGS variable, or |
16804 | 17300 | # (2) before a word containing "conftest.", or (3) at the end. |
16809 | 17305 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
16810 | 17306 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
16811 | 17307 | -e 's:$: $lt_compiler_flag:'` |
16812 | (eval echo "\"\$as_me:16813: $lt_compile\"" >&5) | |
17308 | (eval echo "\"\$as_me:17309: $lt_compile\"" >&5) | |
16813 | 17309 | (eval "$lt_compile" 2>conftest.err) |
16814 | 17310 | ac_status=$? |
16815 | 17311 | cat conftest.err >&5 |
16816 | echo "$as_me:16817: \$? = $ac_status" >&5 | |
17312 | echo "$as_me:17313: \$? = $ac_status" >&5 | |
16817 | 17313 | if (exit $ac_status) && test -s "$ac_outfile"; then |
16818 | 17314 | # The compiler can only warn and ignore the option if not recognized |
16819 | 17315 | # So say no if there are warnings other than the usual output. |
16820 | 17316 | $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp |
16821 | 17317 | $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 |
16822 | 17318 | if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then |
16823 | lt_prog_compiler_pic_works_GCJ=yes | |
17319 | lt_cv_prog_compiler_pic_works_GCJ=yes | |
16824 | 17320 | fi |
16825 | 17321 | fi |
16826 | 17322 | $rm conftest* |
16827 | 17323 | |
16828 | 17324 | fi |
16829 | { echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5 | |
16830 | echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; } | |
16831 | ||
16832 | if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then | |
17325 | { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_GCJ" >&5 | |
17326 | echo "${ECHO_T}$lt_cv_prog_compiler_pic_works_GCJ" >&6; } | |
17327 | ||
17328 | if test x"$lt_cv_prog_compiler_pic_works_GCJ" = xyes; then | |
16833 | 17329 | case $lt_prog_compiler_pic_GCJ in |
16834 | 17330 | "" | " "*) ;; |
16835 | 17331 | *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;; |
16856 | 17352 | wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\" |
16857 | 17353 | { echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5 |
16858 | 17354 | echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; } |
16859 | if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then | |
17355 | if test "${lt_cv_prog_compiler_static_works_GCJ+set}" = set; then | |
16860 | 17356 | echo $ECHO_N "(cached) $ECHO_C" >&6 |
16861 | 17357 | else |
16862 | lt_prog_compiler_static_works_GCJ=no | |
17358 | lt_cv_prog_compiler_static_works_GCJ=no | |
16863 | 17359 | save_LDFLAGS="$LDFLAGS" |
16864 | 17360 | LDFLAGS="$LDFLAGS $lt_tmp_static_flag" |
16865 | printf "$lt_simple_link_test_code" > conftest.$ac_ext | |
17361 | echo "$lt_simple_link_test_code" > conftest.$ac_ext | |
16866 | 17362 | if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then |
16867 | 17363 | # The linker can only warn and ignore the option if not recognized |
16868 | 17364 | # So say no if there are warnings |
16872 | 17368 | $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp |
16873 | 17369 | $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 |
16874 | 17370 | if diff conftest.exp conftest.er2 >/dev/null; then |
16875 | lt_prog_compiler_static_works_GCJ=yes | |
17371 | lt_cv_prog_compiler_static_works_GCJ=yes | |
16876 | 17372 | fi |
16877 | 17373 | else |
16878 | lt_prog_compiler_static_works_GCJ=yes | |
17374 | lt_cv_prog_compiler_static_works_GCJ=yes | |
16879 | 17375 | fi |
16880 | 17376 | fi |
16881 | $rm conftest* | |
17377 | $rm -r conftest* | |
16882 | 17378 | LDFLAGS="$save_LDFLAGS" |
16883 | 17379 | |
16884 | 17380 | fi |
16885 | { echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5 | |
16886 | echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; } | |
16887 | ||
16888 | if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then | |
17381 | { echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_GCJ" >&5 | |
17382 | echo "${ECHO_T}$lt_cv_prog_compiler_static_works_GCJ" >&6; } | |
17383 | ||
17384 | if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then | |
16889 | 17385 | : |
16890 | 17386 | else |
16891 | 17387 | lt_prog_compiler_static_GCJ= |
16902 | 17398 | mkdir conftest |
16903 | 17399 | cd conftest |
16904 | 17400 | mkdir out |
16905 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
17401 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
16906 | 17402 | |
16907 | 17403 | lt_compiler_flag="-o out/conftest2.$ac_objext" |
16908 | 17404 | # Insert the option either (1) after the last *FLAGS variable, or |
16913 | 17409 | -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ |
16914 | 17410 | -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ |
16915 | 17411 | -e 's:$: $lt_compiler_flag:'` |
16916 | (eval echo "\"\$as_me:16917: $lt_compile\"" >&5) | |
17412 | (eval echo "\"\$as_me:17413: $lt_compile\"" >&5) | |
16917 | 17413 | (eval "$lt_compile" 2>out/conftest.err) |
16918 | 17414 | ac_status=$? |
16919 | 17415 | cat out/conftest.err >&5 |
16920 | echo "$as_me:16921: \$? = $ac_status" >&5 | |
17416 | echo "$as_me:17417: \$? = $ac_status" >&5 | |
16921 | 17417 | if (exit $ac_status) && test -s out/conftest2.$ac_objext |
16922 | 17418 | then |
16923 | 17419 | # The compiler can only warn and ignore the option if not recognized |
16997 | 17493 | # it will be wrapped by ` (' and `)$', so one must not match beginning or |
16998 | 17494 | # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', |
16999 | 17495 | # as well as any symbol that contains `d'. |
17000 | exclude_expsyms_GCJ="_GLOBAL_OFFSET_TABLE_" | |
17496 | exclude_expsyms_GCJ='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' | |
17001 | 17497 | # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out |
17002 | 17498 | # platforms (ab)use it in PIC code, but their linkers get confused if |
17003 | 17499 | # the symbol is explicitly referenced. Since portable code cannot |
17004 | 17500 | # rely on this symbol name, it's probably fine to never include it in |
17005 | 17501 | # preloaded symbol tables. |
17502 | # Exclude shared library initialization/finalization symbols. | |
17006 | 17503 | extract_expsyms_cmds= |
17007 | 17504 | # Just being paranoid about ensuring that cc_basename is set. |
17008 | 17505 | for cc_temp in $compiler""; do |
17061 | 17558 | |
17062 | 17559 | # See if GNU ld supports shared libraries. |
17063 | 17560 | case $host_os in |
17064 | aix3* | aix4* | aix5*) | |
17561 | aix[3-9]*) | |
17065 | 17562 | # On AIX/PPC, the GNU linker is very broken |
17066 | 17563 | if test "$host_cpu" != ia64; then |
17067 | 17564 | ld_shlibs_GCJ=no |
17109 | 17606 | allow_undefined_flag_GCJ=unsupported |
17110 | 17607 | always_export_symbols_GCJ=no |
17111 | 17608 | enable_shared_with_static_runtimes_GCJ=yes |
17112 | export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS] /s/.* \([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW] /s/.* //'\'' | sort | uniq > $export_symbols' | |
17609 | export_symbols_cmds_GCJ='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' | |
17113 | 17610 | |
17114 | 17611 | if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then |
17115 | 17612 | archive_cmds_GCJ='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' |
17127 | 17624 | fi |
17128 | 17625 | ;; |
17129 | 17626 | |
17130 | interix3*) | |
17627 | interix[3-9]*) | |
17131 | 17628 | hardcode_direct_GCJ=no |
17132 | 17629 | hardcode_shlibpath_var_GCJ=no |
17133 | 17630 | hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' |
17142 | 17639 | archive_expsym_cmds_GCJ='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' |
17143 | 17640 | ;; |
17144 | 17641 | |
17145 | linux*) | |
17642 | gnu* | linux* | k*bsd*-gnu) | |
17146 | 17643 | if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then |
17147 | 17644 | tmp_addflag= |
17148 | 17645 | case $cc_basename,$host_cpu in |
17160 | 17657 | ifc* | ifort*) # Intel Fortran compiler |
17161 | 17658 | tmp_addflag=' -nofor_main' ;; |
17162 | 17659 | esac |
17163 | archive_cmds_GCJ='$CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | |
17660 | case `$CC -V 2>&1 | sed 5q` in | |
17661 | *Sun\ C*) # Sun C 5.9 | |
17662 | whole_archive_flag_spec_GCJ='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}--no-whole-archive' | |
17663 | tmp_sharedflag='-G' ;; | |
17664 | *Sun\ F*) # Sun Fortran 8.3 | |
17665 | tmp_sharedflag='-G' ;; | |
17666 | *) | |
17667 | tmp_sharedflag='-shared' ;; | |
17668 | esac | |
17669 | archive_cmds_GCJ='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' | |
17164 | 17670 | |
17165 | 17671 | if test $supports_anon_versioning = yes; then |
17166 | 17672 | archive_expsym_cmds_GCJ='$echo "{ global:" > $output_objdir/$libname.ver~ |
17167 | 17673 | cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ |
17168 | 17674 | $echo "local: *; };" >> $output_objdir/$libname.ver~ |
17169 | $CC -shared'"$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' | |
17675 | $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' | |
17170 | 17676 | fi |
17677 | link_all_deplibs_GCJ=no | |
17171 | 17678 | else |
17172 | 17679 | ld_shlibs_GCJ=no |
17173 | 17680 | fi |
17174 | 17681 | ;; |
17175 | 17682 | |
17176 | netbsd*) | |
17683 | netbsd* | netbsdelf*-gnu) | |
17177 | 17684 | if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
17178 | 17685 | archive_cmds_GCJ='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' |
17179 | 17686 | wlarc= |
17271 | 17778 | fi |
17272 | 17779 | ;; |
17273 | 17780 | |
17274 | aix4* | aix5*) | |
17781 | aix[4-9]*) | |
17275 | 17782 | if test "$host_cpu" = ia64; then |
17276 | 17783 | # On IA64, the linker does run time linking by default, so we don't |
17277 | 17784 | # have to do anything special. |
17291 | 17798 | # Test if we are trying to use run time linking or normal |
17292 | 17799 | # AIX style linking. If -brtl is somewhere in LDFLAGS, we |
17293 | 17800 | # need to do runtime linking. |
17294 | case $host_os in aix4.[23]|aix4.[23].*|aix5*) | |
17801 | case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) | |
17295 | 17802 | for ld_flag in $LDFLAGS; do |
17296 | 17803 | if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then |
17297 | 17804 | aix_use_runtimelinking=yes |
17325 | 17832 | strings "$collect2name" | grep resolve_lib_name >/dev/null |
17326 | 17833 | then |
17327 | 17834 | # We have reworked collect2 |
17328 | hardcode_direct_GCJ=yes | |
17835 | : | |
17329 | 17836 | else |
17330 | 17837 | # We have old collect2 |
17331 | 17838 | hardcode_direct_GCJ=unsupported |
17399 | 17906 | } && test -s conftest$ac_exeext && |
17400 | 17907 | $as_test_x conftest$ac_exeext; then |
17401 | 17908 | |
17402 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
17403 | }'` | |
17909 | lt_aix_libpath_sed=' | |
17910 | /Import File Strings/,/^$/ { | |
17911 | /^0/ { | |
17912 | s/^0 *\(.*\)$/\1/ | |
17913 | p | |
17914 | } | |
17915 | }' | |
17916 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
17404 | 17917 | # Check for a 64-bit object if we didn't find anything. |
17405 | if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
17406 | }'`; fi | |
17918 | if test -z "$aix_libpath"; then | |
17919 | aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
17920 | fi | |
17407 | 17921 | else |
17408 | 17922 | echo "$as_me: failed program was:" >&5 |
17409 | 17923 | sed 's/^/| /' conftest.$ac_ext >&5 |
17458 | 17972 | } && test -s conftest$ac_exeext && |
17459 | 17973 | $as_test_x conftest$ac_exeext; then |
17460 | 17974 | |
17461 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
17462 | }'` | |
17975 | lt_aix_libpath_sed=' | |
17976 | /Import File Strings/,/^$/ { | |
17977 | /^0/ { | |
17978 | s/^0 *\(.*\)$/\1/ | |
17979 | p | |
17980 | } | |
17981 | }' | |
17982 | aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
17463 | 17983 | # Check for a 64-bit object if we didn't find anything. |
17464 | if test -z "$aix_libpath"; then aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } | |
17465 | }'`; fi | |
17984 | if test -z "$aix_libpath"; then | |
17985 | aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` | |
17986 | fi | |
17466 | 17987 | else |
17467 | 17988 | echo "$as_me: failed program was:" >&5 |
17468 | 17989 | sed 's/^/| /' conftest.$ac_ext >&5 |
17516 | 18037 | # The linker will automatically build a .lib file if we build a DLL. |
17517 | 18038 | old_archive_From_new_cmds_GCJ='true' |
17518 | 18039 | # FIXME: Should let the user specify the lib program. |
17519 | old_archive_cmds_GCJ='lib /OUT:$oldlib$oldobjs$old_deplibs' | |
18040 | old_archive_cmds_GCJ='lib -OUT:$oldlib$oldobjs$old_deplibs' | |
17520 | 18041 | fix_srcfile_path_GCJ='`cygpath -w "$srcfile"`' |
17521 | 18042 | enable_shared_with_static_runtimes_GCJ=yes |
17522 | 18043 | ;; |
17549 | 18070 | link_all_deplibs_GCJ=yes |
17550 | 18071 | if test "$GCC" = yes ; then |
17551 | 18072 | output_verbose_link_cmd='echo' |
17552 | archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring' | |
17553 | module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' | |
17554 | # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds | |
17555 | archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
17556 | module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
18073 | archive_cmds_GCJ="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" | |
18074 | module_cmds_GCJ="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" | |
18075 | archive_expsym_cmds_GCJ="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" | |
18076 | module_expsym_cmds_GCJ="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" | |
17557 | 18077 | else |
17558 | 18078 | case $cc_basename in |
17559 | 18079 | xlc*) |
17560 | 18080 | output_verbose_link_cmd='echo' |
17561 | archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $verstring' | |
18081 | archive_cmds_GCJ='$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}`echo $rpath/$soname` $xlcverstring' | |
17562 | 18082 | module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags' |
17563 | 18083 | # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds |
17564 | archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
18084 | archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -qmkshrobj $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-install_name ${wl}$rpath/$soname $xlcverstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' | |
17565 | 18085 | module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[ ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}' |
17566 | 18086 | ;; |
17567 | 18087 | *) |
17601 | 18121 | ;; |
17602 | 18122 | |
17603 | 18123 | # FreeBSD 3 and greater uses gcc -shared to do shared libraries. |
17604 | freebsd* | kfreebsd*-gnu | dragonfly*) | |
18124 | freebsd* | dragonfly*) | |
17605 | 18125 | archive_cmds_GCJ='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' |
17606 | 18126 | hardcode_libdir_flag_spec_GCJ='-R$libdir' |
17607 | 18127 | hardcode_direct_GCJ=yes |
17703 | 18223 | link_all_deplibs_GCJ=yes |
17704 | 18224 | ;; |
17705 | 18225 | |
17706 | netbsd*) | |
18226 | netbsd* | netbsdelf*-gnu) | |
17707 | 18227 | if echo __ELF__ | $CC -E - | grep __ELF__ >/dev/null; then |
17708 | 18228 | archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out |
17709 | 18229 | else |
17723 | 18243 | ;; |
17724 | 18244 | |
17725 | 18245 | openbsd*) |
17726 | hardcode_direct_GCJ=yes | |
17727 | hardcode_shlibpath_var_GCJ=no | |
17728 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | |
17729 | archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
17730 | archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' | |
17731 | hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' | |
17732 | export_dynamic_flag_spec_GCJ='${wl}-E' | |
18246 | if test -f /usr/libexec/ld.so; then | |
18247 | hardcode_direct_GCJ=yes | |
18248 | hardcode_shlibpath_var_GCJ=no | |
18249 | if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then | |
18250 | archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
18251 | archive_expsym_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' | |
18252 | hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' | |
18253 | export_dynamic_flag_spec_GCJ='${wl}-E' | |
18254 | else | |
18255 | case $host_os in | |
18256 | openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) | |
18257 | archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' | |
18258 | hardcode_libdir_flag_spec_GCJ='-R$libdir' | |
18259 | ;; | |
18260 | *) | |
18261 | archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
18262 | hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' | |
18263 | ;; | |
18264 | esac | |
18265 | fi | |
17733 | 18266 | else |
17734 | case $host_os in | |
17735 | openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) | |
17736 | archive_cmds_GCJ='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' | |
17737 | hardcode_libdir_flag_spec_GCJ='-R$libdir' | |
17738 | ;; | |
17739 | *) | |
17740 | archive_cmds_GCJ='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' | |
17741 | hardcode_libdir_flag_spec_GCJ='${wl}-rpath,$libdir' | |
17742 | ;; | |
17743 | esac | |
18267 | ld_shlibs_GCJ=no | |
17744 | 18268 | fi |
17745 | 18269 | ;; |
17746 | 18270 | |
17799 | 18323 | case $host_os in |
17800 | 18324 | solaris2.[0-5] | solaris2.[0-5].*) ;; |
17801 | 18325 | *) |
17802 | # The compiler driver will combine linker options so we | |
17803 | # cannot just pass the convience library names through | |
17804 | # without $wl, iff we do not link with $LD. | |
17805 | # Luckily, gcc supports the same syntax we need for Sun Studio. | |
18326 | # The compiler driver will combine and reorder linker options, | |
18327 | # but understands `-z linker_flag'. GCC discards it without `$wl', | |
18328 | # but is careful enough not to reorder. | |
17806 | 18329 | # Supported since Solaris 2.6 (maybe 2.5.1?) |
17807 | case $wlarc in | |
17808 | '') | |
17809 | whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' ;; | |
17810 | *) | |
17811 | whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $echo \"$new_convenience\"` ${wl}-z ${wl}defaultextract' ;; | |
17812 | esac ;; | |
18330 | if test "$GCC" = yes; then | |
18331 | whole_archive_flag_spec_GCJ='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' | |
18332 | else | |
18333 | whole_archive_flag_spec_GCJ='-z allextract$convenience -z defaultextract' | |
18334 | fi | |
18335 | ;; | |
17813 | 18336 | esac |
17814 | 18337 | link_all_deplibs_GCJ=yes |
17815 | 18338 | ;; |
17866 | 18389 | fi |
17867 | 18390 | ;; |
17868 | 18391 | |
17869 | sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7*) | |
18392 | sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) | |
17870 | 18393 | no_undefined_flag_GCJ='${wl}-z,text' |
17871 | 18394 | archive_cmds_need_lc_GCJ=no |
17872 | 18395 | hardcode_shlibpath_var_GCJ=no |
17943 | 18466 | { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5 |
17944 | 18467 | echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; } |
17945 | 18468 | $rm conftest* |
17946 | printf "$lt_simple_compile_test_code" > conftest.$ac_ext | |
18469 | echo "$lt_simple_compile_test_code" > conftest.$ac_ext | |
17947 | 18470 | |
17948 | 18471 | if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 |
17949 | 18472 | (eval $ac_compile) 2>&5 |
18001 | 18524 | version_type=none |
18002 | 18525 | dynamic_linker="$host_os ld.so" |
18003 | 18526 | sys_lib_dlsearch_path_spec="/lib /usr/lib" |
18004 | if test "$GCC" = yes; then | |
18005 | sys_lib_search_path_spec=`$CC -print-search-dirs | grep "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` | |
18006 | if echo "$sys_lib_search_path_spec" | grep ';' >/dev/null ; then | |
18007 | # if the path contains ";" then we assume it to be the separator | |
18008 | # otherwise default to the standard path separator (i.e. ":") - it is | |
18009 | # assumed that no part of a normal pathname contains ";" but that should | |
18010 | # okay in the real world where ";" in dirpaths is itself problematic. | |
18011 | sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` | |
18012 | else | |
18013 | sys_lib_search_path_spec=`echo "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` | |
18014 | fi | |
18015 | else | |
18016 | sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" | |
18017 | fi | |
18527 | ||
18018 | 18528 | need_lib_prefix=unknown |
18019 | 18529 | hardcode_into_libs=no |
18020 | 18530 | |
18032 | 18542 | soname_spec='${libname}${release}${shared_ext}$major' |
18033 | 18543 | ;; |
18034 | 18544 | |
18035 | aix4* | aix5*) | |
18545 | aix[4-9]*) | |
18036 | 18546 | version_type=linux |
18037 | 18547 | need_lib_prefix=no |
18038 | 18548 | need_version=no |
18171 | 18681 | shlibpath_overrides_runpath=yes |
18172 | 18682 | shlibpath_var=DYLD_LIBRARY_PATH |
18173 | 18683 | shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' |
18174 | # Apple's gcc prints 'gcc -print-search-dirs' doesn't operate the same. | |
18175 | if test "$GCC" = yes; then | |
18176 | sys_lib_search_path_spec=`$CC -print-search-dirs | tr "\n" "$PATH_SEPARATOR" | sed -e 's/libraries:/@libraries:/' | tr "@" "\n" | grep "^libraries:" | sed -e "s/^libraries://" -e "s,=/,/,g" -e "s,$PATH_SEPARATOR, ,g" -e "s,.*,& /lib /usr/lib /usr/local/lib,g"` | |
18177 | else | |
18178 | sys_lib_search_path_spec='/lib /usr/lib /usr/local/lib' | |
18179 | fi | |
18684 | ||
18180 | 18685 | sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' |
18181 | 18686 | ;; |
18182 | 18687 | |
18191 | 18696 | |
18192 | 18697 | freebsd1*) |
18193 | 18698 | dynamic_linker=no |
18194 | ;; | |
18195 | ||
18196 | kfreebsd*-gnu) | |
18197 | version_type=linux | |
18198 | need_lib_prefix=no | |
18199 | need_version=no | |
18200 | library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' | |
18201 | soname_spec='${libname}${release}${shared_ext}$major' | |
18202 | shlibpath_var=LD_LIBRARY_PATH | |
18203 | shlibpath_overrides_runpath=no | |
18204 | hardcode_into_libs=yes | |
18205 | dynamic_linker='GNU ld.so' | |
18206 | 18699 | ;; |
18207 | 18700 | |
18208 | 18701 | freebsd* | dragonfly*) |
18242 | 18735 | shlibpath_overrides_runpath=no |
18243 | 18736 | hardcode_into_libs=yes |
18244 | 18737 | ;; |
18245 | freebsd*) # from 4.6 on | |
18738 | *) # from 4.6 on, and DragonFly | |
18246 | 18739 | shlibpath_overrides_runpath=yes |
18247 | 18740 | hardcode_into_libs=yes |
18248 | 18741 | ;; |
18305 | 18798 | postinstall_cmds='chmod 555 $lib' |
18306 | 18799 | ;; |
18307 | 18800 | |
18308 | interix3*) | |
18801 | interix[3-9]*) | |
18309 | 18802 | version_type=linux |
18310 | 18803 | need_lib_prefix=no |
18311 | 18804 | need_version=no |
18360 | 18853 | ;; |
18361 | 18854 | |
18362 | 18855 | # This must be Linux ELF. |
18363 | linux*) | |
18856 | linux* | k*bsd*-gnu) | |
18364 | 18857 | version_type=linux |
18365 | 18858 | need_lib_prefix=no |
18366 | 18859 | need_version=no |
18374 | 18867 | # before this can be enabled. |
18375 | 18868 | hardcode_into_libs=yes |
18376 | 18869 | |
18377 | # find out which ABI we are using | |
18378 | libsuff= | |
18379 | case "$host_cpu" in | |
18380 | x86_64*|s390x*|powerpc64*) | |
18381 | echo '#line 18382 "configure"' > conftest.$ac_ext | |
18382 | if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 | |
18383 | (eval $ac_compile) 2>&5 | |
18384 | ac_status=$? | |
18385 | echo "$as_me:$LINENO: \$? = $ac_status" >&5 | |
18386 | (exit $ac_status); }; then | |
18387 | case `/usr/bin/file conftest.$ac_objext` in | |
18388 | *64-bit*) | |
18389 | libsuff=64 | |
18390 | sys_lib_search_path_spec="/lib${libsuff} /usr/lib${libsuff} /usr/local/lib${libsuff}" | |
18391 | ;; | |
18392 | esac | |
18393 | fi | |
18394 | rm -rf conftest* | |
18395 | ;; | |
18396 | esac | |
18397 | ||
18398 | 18870 | # Append ld.so.conf contents to the search path |
18399 | 18871 | if test -f /etc/ld.so.conf; then |
18400 | lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` | |
18401 | sys_lib_dlsearch_path_spec="/lib${libsuff} /usr/lib${libsuff} $lt_ld_extra" | |
18872 | lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` | |
18873 | sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" | |
18402 | 18874 | fi |
18403 | 18875 | |
18404 | 18876 | # We used to test for /lib/ld.so.1 and disable shared libraries on |
18410 | 18882 | dynamic_linker='GNU/Linux ld.so' |
18411 | 18883 | ;; |
18412 | 18884 | |
18413 | knetbsd*-gnu) | |
18885 | netbsdelf*-gnu) | |
18414 | 18886 | version_type=linux |
18415 | 18887 | need_lib_prefix=no |
18416 | 18888 | need_version=no |
18419 | 18891 | shlibpath_var=LD_LIBRARY_PATH |
18420 | 18892 | shlibpath_overrides_runpath=no |
18421 | 18893 | hardcode_into_libs=yes |
18422 | dynamic_linker='GNU ld.so' | |
18894 | dynamic_linker='NetBSD ld.elf_so' | |
18423 | 18895 | ;; |
18424 | 18896 | |
18425 | 18897 | netbsd*) |
18503 | 18975 | sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" |
18504 | 18976 | ;; |
18505 | 18977 | |
18978 | rdos*) | |
18979 | dynamic_linker=no | |
18980 | ;; | |
18981 | ||
18506 | 18982 | solaris*) |
18507 | 18983 | version_type=linux |
18508 | 18984 | need_lib_prefix=no |
18598 | 19074 | { echo "$as_me:$LINENO: result: $dynamic_linker" >&5 |
18599 | 19075 | echo "${ECHO_T}$dynamic_linker" >&6; } |
18600 | 19076 | test "$dynamic_linker" = no && can_build_shared=no |
19077 | ||
19078 | if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then | |
19079 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
19080 | else | |
19081 | lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec" | |
19082 | fi | |
19083 | ||
19084 | sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" | |
19085 | if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then | |
19086 | echo $ECHO_N "(cached) $ECHO_C" >&6 | |
19087 | else | |
19088 | lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec" | |
19089 | fi | |
19090 | ||
19091 | sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" | |
18601 | 19092 | |
18602 | 19093 | variables_saved_for_relink="PATH $shlibpath_var $runpath_var" |
18603 | 19094 | if test "$GCC" = yes; then |
18682 | 19173 | predeps_GCJ \ |
18683 | 19174 | postdeps_GCJ \ |
18684 | 19175 | compiler_lib_search_path_GCJ \ |
19176 | compiler_lib_search_dirs_GCJ \ | |
18685 | 19177 | archive_cmds_GCJ \ |
18686 | 19178 | archive_expsym_cmds_GCJ \ |
18687 | 19179 | postinstall_cmds_GCJ \ |
18697 | 19189 | module_cmds_GCJ \ |
18698 | 19190 | module_expsym_cmds_GCJ \ |
18699 | 19191 | lt_cv_prog_compiler_c_o_GCJ \ |
19192 | fix_srcfile_path_GCJ \ | |
18700 | 19193 | exclude_expsyms_GCJ \ |
18701 | 19194 | include_expsyms_GCJ; do |
18702 | 19195 | |
18782 | 19275 | # Is the compiler the GNU C compiler? |
18783 | 19276 | with_gcc=$GCC_GCJ |
18784 | 19277 | |
18785 | gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` | |
18786 | gcc_ver=\`gcc -dumpversion\` | |
18787 | ||
18788 | 19278 | # An ERE matcher. |
18789 | 19279 | EGREP=$lt_EGREP |
18790 | 19280 | |
18918 | 19408 | |
18919 | 19409 | # Dependencies to place before the objects being linked to create a |
18920 | 19410 | # shared library. |
18921 | predep_objects=\`echo $lt_predep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
19411 | predep_objects=$lt_predep_objects_GCJ | |
18922 | 19412 | |
18923 | 19413 | # Dependencies to place after the objects being linked to create a |
18924 | 19414 | # shared library. |
18925 | postdep_objects=\`echo $lt_postdep_objects_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
19415 | postdep_objects=$lt_postdep_objects_GCJ | |
18926 | 19416 | |
18927 | 19417 | # Dependencies to place before the objects being linked to create a |
18928 | 19418 | # shared library. |
18932 | 19422 | # shared library. |
18933 | 19423 | postdeps=$lt_postdeps_GCJ |
18934 | 19424 | |
19425 | # The directories searched by this compiler when creating a shared | |
19426 | # library | |
19427 | compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_GCJ | |
19428 | ||
18935 | 19429 | # The library search path used internally by the compiler when linking |
18936 | 19430 | # a shared library. |
18937 | compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_GCJ | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
19431 | compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ | |
18938 | 19432 | |
18939 | 19433 | # Method to check whether dependent libraries are shared objects. |
18940 | 19434 | deplibs_check_method=$lt_deplibs_check_method |
19014 | 19508 | link_all_deplibs=$link_all_deplibs_GCJ |
19015 | 19509 | |
19016 | 19510 | # Compile-time system search path for libraries |
19017 | sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
19511 | sys_lib_search_path_spec=$lt_sys_lib_search_path_spec | |
19018 | 19512 | |
19019 | 19513 | # Run-time system search path for libraries |
19020 | 19514 | sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec |
19021 | 19515 | |
19022 | 19516 | # Fix the shell variable \$srcfile for the compiler. |
19023 | fix_srcfile_path="$fix_srcfile_path_GCJ" | |
19517 | fix_srcfile_path=$lt_fix_srcfile_path | |
19024 | 19518 | |
19025 | 19519 | # Set to yes if exported symbols are required. |
19026 | 19520 | always_export_symbols=$always_export_symbols_GCJ |
19077 | 19571 | objext_RC=$objext |
19078 | 19572 | |
19079 | 19573 | # Code to be used in simple compile tests |
19080 | lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }\n' | |
19574 | lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' | |
19081 | 19575 | |
19082 | 19576 | # Code to be used in simple link tests |
19083 | 19577 | lt_simple_link_test_code="$lt_simple_compile_test_code" |
19096 | 19590 | |
19097 | 19591 | # save warnings/boilerplate of simple test code |
19098 | 19592 | ac_outfile=conftest.$ac_objext |
19099 | printf "$lt_simple_compile_test_code" >conftest.$ac_ext | |
19593 | echo "$lt_simple_compile_test_code" >conftest.$ac_ext | |
19100 | 19594 | eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err |
19101 | 19595 | _lt_compiler_boilerplate=`cat conftest.err` |
19102 | 19596 | $rm conftest* |
19103 | 19597 | |
19104 | 19598 | ac_outfile=conftest.$ac_objext |
19105 | printf "$lt_simple_link_test_code" >conftest.$ac_ext | |
19599 | echo "$lt_simple_link_test_code" >conftest.$ac_ext | |
19106 | 19600 | eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err |
19107 | 19601 | _lt_linker_boilerplate=`cat conftest.err` |
19108 | $rm conftest* | |
19602 | $rm -r conftest* | |
19109 | 19603 | |
19110 | 19604 | |
19111 | 19605 | # Allow CC to be a program name with arguments. |
19165 | 19659 | predeps_RC \ |
19166 | 19660 | postdeps_RC \ |
19167 | 19661 | compiler_lib_search_path_RC \ |
19662 | compiler_lib_search_dirs_RC \ | |
19168 | 19663 | archive_cmds_RC \ |
19169 | 19664 | archive_expsym_cmds_RC \ |
19170 | 19665 | postinstall_cmds_RC \ |
19180 | 19675 | module_cmds_RC \ |
19181 | 19676 | module_expsym_cmds_RC \ |
19182 | 19677 | lt_cv_prog_compiler_c_o_RC \ |
19678 | fix_srcfile_path_RC \ | |
19183 | 19679 | exclude_expsyms_RC \ |
19184 | 19680 | include_expsyms_RC; do |
19185 | 19681 | |
19265 | 19761 | # Is the compiler the GNU C compiler? |
19266 | 19762 | with_gcc=$GCC_RC |
19267 | 19763 | |
19268 | gcc_dir=\`gcc -print-file-name=. | $SED 's,/\.$,,'\` | |
19269 | gcc_ver=\`gcc -dumpversion\` | |
19270 | ||
19271 | 19764 | # An ERE matcher. |
19272 | 19765 | EGREP=$lt_EGREP |
19273 | 19766 | |
19401 | 19894 | |
19402 | 19895 | # Dependencies to place before the objects being linked to create a |
19403 | 19896 | # shared library. |
19404 | predep_objects=\`echo $lt_predep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
19897 | predep_objects=$lt_predep_objects_RC | |
19405 | 19898 | |
19406 | 19899 | # Dependencies to place after the objects being linked to create a |
19407 | 19900 | # shared library. |
19408 | postdep_objects=\`echo $lt_postdep_objects_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
19901 | postdep_objects=$lt_postdep_objects_RC | |
19409 | 19902 | |
19410 | 19903 | # Dependencies to place before the objects being linked to create a |
19411 | 19904 | # shared library. |
19415 | 19908 | # shared library. |
19416 | 19909 | postdeps=$lt_postdeps_RC |
19417 | 19910 | |
19911 | # The directories searched by this compiler when creating a shared | |
19912 | # library | |
19913 | compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_RC | |
19914 | ||
19418 | 19915 | # The library search path used internally by the compiler when linking |
19419 | 19916 | # a shared library. |
19420 | compiler_lib_search_path=\`echo $lt_compiler_lib_search_path_RC | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
19917 | compiler_lib_search_path=$lt_compiler_lib_search_path_RC | |
19421 | 19918 | |
19422 | 19919 | # Method to check whether dependent libraries are shared objects. |
19423 | 19920 | deplibs_check_method=$lt_deplibs_check_method |
19497 | 19994 | link_all_deplibs=$link_all_deplibs_RC |
19498 | 19995 | |
19499 | 19996 | # Compile-time system search path for libraries |
19500 | sys_lib_search_path_spec=\`echo $lt_sys_lib_search_path_spec | \$SED -e "s@\${gcc_dir}@\\\${gcc_dir}@g;s@\${gcc_ver}@\\\${gcc_ver}@g"\` | |
19997 | sys_lib_search_path_spec=$lt_sys_lib_search_path_spec | |
19501 | 19998 | |
19502 | 19999 | # Run-time system search path for libraries |
19503 | 20000 | sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec |
19504 | 20001 | |
19505 | 20002 | # Fix the shell variable \$srcfile for the compiler. |
19506 | fix_srcfile_path="$fix_srcfile_path_RC" | |
20003 | fix_srcfile_path=$lt_fix_srcfile_path | |
19507 | 20004 | |
19508 | 20005 | # Set to yes if exported symbols are required. |
19509 | 20006 | always_export_symbols=$always_export_symbols_RC |
20761 | 21258 | fi |
20762 | 21259 | |
20763 | 21260 | |
20764 | ac_config_files="$ac_config_files Makefile src/Makefile filters/Makefile tools/Makefile lib/Makefile man/Makefile" | |
21261 | ac_config_files="$ac_config_files Makefile src/Makefile filters/Makefile tools/Makefile lib/Makefile man/Makefile tests/lib/EPSILON/Makefile tests/lib/Test/PBM/Makefile tests/lib/Test/Makefile tests/lib/Makefile tests/t/Makefile tests/Makefile tests/build/Makefile tests/images/Makefile" | |
20765 | 21262 | |
20766 | 21263 | cat >confcache <<\_ACEOF |
20767 | 21264 | # This file is a shell script that caches the results of configure |
21355 | 21852 | "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; |
21356 | 21853 | "lib/Makefile") CONFIG_FILES="$CONFIG_FILES lib/Makefile" ;; |
21357 | 21854 | "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; |
21855 | "tests/lib/EPSILON/Makefile") CONFIG_FILES="$CONFIG_FILES tests/lib/EPSILON/Makefile" ;; | |
21856 | "tests/lib/Test/PBM/Makefile") CONFIG_FILES="$CONFIG_FILES tests/lib/Test/PBM/Makefile" ;; | |
21857 | "tests/lib/Test/Makefile") CONFIG_FILES="$CONFIG_FILES tests/lib/Test/Makefile" ;; | |
21858 | "tests/lib/Makefile") CONFIG_FILES="$CONFIG_FILES tests/lib/Makefile" ;; | |
21859 | "tests/t/Makefile") CONFIG_FILES="$CONFIG_FILES tests/t/Makefile" ;; | |
21860 | "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; | |
21861 | "tests/build/Makefile") CONFIG_FILES="$CONFIG_FILES tests/build/Makefile" ;; | |
21862 | "tests/images/Makefile") CONFIG_FILES="$CONFIG_FILES tests/images/Makefile" ;; | |
21358 | 21863 | |
21359 | 21864 | *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 |
21360 | 21865 | echo "$as_me: error: invalid argument: $ac_config_target" >&2;} |
21500 | 22005 | host_cpu!$host_cpu$ac_delim |
21501 | 22006 | host_vendor!$host_vendor$ac_delim |
21502 | 22007 | host_os!$host_os$ac_delim |
22008 | SED!$SED$ac_delim | |
21503 | 22009 | GREP!$GREP$ac_delim |
21504 | 22010 | EGREP!$EGREP$ac_delim |
21505 | 22011 | LN_S!$LN_S$ac_delim |
21506 | 22012 | ECHO!$ECHO$ac_delim |
21507 | 22013 | AR!$AR$ac_delim |
21508 | 22014 | RANLIB!$RANLIB$ac_delim |
22015 | DSYMUTIL!$DSYMUTIL$ac_delim | |
22016 | NMEDIT!$NMEDIT$ac_delim | |
21509 | 22017 | CPP!$CPP$ac_delim |
21510 | 22018 | CXX!$CXX$ac_delim |
21511 | 22019 | CXXFLAGS!$CXXFLAGS$ac_delim |
21512 | 22020 | ac_ct_CXX!$ac_ct_CXX$ac_delim |
21513 | 22021 | CXXDEPMODE!$CXXDEPMODE$ac_delim |
21514 | am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim | |
21515 | am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim | |
21516 | CXXCPP!$CXXCPP$ac_delim | |
21517 | 22022 | _ACEOF |
21518 | 22023 | |
21519 | 22024 | if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then |
21555 | 22060 | ac_delim='%!_!# ' |
21556 | 22061 | for ac_last_try in false false false false false :; do |
21557 | 22062 | cat >conf$$subs.sed <<_ACEOF |
22063 | am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim | |
22064 | am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim | |
22065 | CXXCPP!$CXXCPP$ac_delim | |
21558 | 22066 | F77!$F77$ac_delim |
21559 | 22067 | FFLAGS!$FFLAGS$ac_delim |
21560 | 22068 | ac_ct_F77!$ac_ct_F77$ac_delim |
21563 | 22071 | LTLIBOBJS!$LTLIBOBJS$ac_delim |
21564 | 22072 | _ACEOF |
21565 | 22073 | |
21566 | if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 6; then | |
22074 | if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 9; then | |
21567 | 22075 | break |
21568 | 22076 | elif $ac_last_try; then |
21569 | 22077 | { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 |
21964 | 22472 | fi |
21965 | 22473 | rm -f "$tmp/out12" |
21966 | 22474 | # Compute $ac_file's index in $config_headers. |
22475 | _am_arg=$ac_file | |
21967 | 22476 | _am_stamp_count=1 |
21968 | 22477 | for _am_header in $config_headers :; do |
21969 | 22478 | case $_am_header in |
21970 | $ac_file | $ac_file:* ) | |
22479 | $_am_arg | $_am_arg:* ) | |
21971 | 22480 | break ;; |
21972 | 22481 | * ) |
21973 | 22482 | _am_stamp_count=`expr $_am_stamp_count + 1` ;; |
21974 | 22483 | esac |
21975 | 22484 | done |
21976 | echo "timestamp for $ac_file" >`$as_dirname -- $ac_file || | |
21977 | $as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | |
21978 | X$ac_file : 'X\(//\)[^/]' \| \ | |
21979 | X$ac_file : 'X\(//\)$' \| \ | |
21980 | X$ac_file : 'X\(/\)' \| . 2>/dev/null || | |
21981 | echo X$ac_file | | |
22485 | echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || | |
22486 | $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ | |
22487 | X"$_am_arg" : 'X\(//\)[^/]' \| \ | |
22488 | X"$_am_arg" : 'X\(//\)$' \| \ | |
22489 | X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || | |
22490 | echo X"$_am_arg" | | |
21982 | 22491 | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ |
21983 | 22492 | s//\1/ |
21984 | 22493 | q |
22015 | 22524 | # each Makefile.in and add a new line on top of each file to say so. |
22016 | 22525 | # Grep'ing the whole file is not good either: AIX grep has a line |
22017 | 22526 | # limit of 2048, but all sed's we know have understand at least 4000. |
22018 | if sed 10q "$mf" | grep '^#.*generated by automake' > /dev/null 2>&1; then | |
22527 | if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then | |
22019 | 22528 | dirpart=`$as_dirname -- "$mf" || |
22020 | 22529 | $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ |
22021 | 22530 | X"$mf" : 'X\(//\)[^/]' \| \ |
22161 | 22670 | $ac_cs_success || { (exit 1); exit 1; } |
22162 | 22671 | fi |
22163 | 22672 | |
22673 | ||
22674 | ||
22675 | echo "#define VERSION \"$VERSION\"" > src/epsilon_version.h |
0 | 0 | dnl |
1 | dnl $Id: configure.in,v 1.28 2008/03/19 18:33:48 simakov Exp $ | |
1 | dnl $Id: configure.in,v 1.30 2011/04/25 16:23:49 simakov Exp $ | |
2 | 2 | dnl |
3 | 3 | |
4 | 4 | AC_INIT(configure.in) |
5 | 5 | |
6 | 6 | AM_CONFIG_HEADER(config.h) |
7 | AM_INIT_AUTOMAKE(epsilon, 0.8.1) | |
7 | AM_INIT_AUTOMAKE(epsilon, 0.9.1) | |
8 | 8 | |
9 | 9 | AC_LANG_C |
10 | 10 | AC_PROG_CC |
166 | 166 | ], |
167 | 167 | ) |
168 | 168 | |
169 | AC_OUTPUT(Makefile src/Makefile filters/Makefile tools/Makefile lib/Makefile man/Makefile) | |
169 | AC_OUTPUT( | |
170 | Makefile | |
171 | src/Makefile | |
172 | filters/Makefile | |
173 | tools/Makefile | |
174 | lib/Makefile | |
175 | man/Makefile | |
176 | tests/lib/EPSILON/Makefile | |
177 | tests/lib/Test/PBM/Makefile | |
178 | tests/lib/Test/Makefile | |
179 | tests/lib/Makefile | |
180 | tests/t/Makefile | |
181 | tests/Makefile | |
182 | tests/build/Makefile | |
183 | tests/images/Makefile | |
184 | ) | |
185 | ||
186 | dnl | |
187 | dnl Output current VERSION into separate header file. | |
188 | dnl This is a workaround for platforms that have no | |
189 | dnl autotools support. | |
190 | dnl | |
191 | ||
192 | echo "#define VERSION \"$VERSION\"" > src/epsilon_version.h |
0 | # Makefile.in generated by automake 1.10 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | 3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, |
4 | # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
7 | 7 | # with or without modifications, as long as this notice is preserved. |
64 | 64 | CYGPATH_W = @CYGPATH_W@ |
65 | 65 | DEFS = @DEFS@ |
66 | 66 | DEPDIR = @DEPDIR@ |
67 | DSYMUTIL = @DSYMUTIL@ | |
67 | 68 | ECHO = @ECHO@ |
68 | 69 | ECHO_C = @ECHO_C@ |
69 | 70 | ECHO_N = @ECHO_N@ |
86 | 87 | LTLIBOBJS = @LTLIBOBJS@ |
87 | 88 | MAKEINFO = @MAKEINFO@ |
88 | 89 | MKDIR_P = @MKDIR_P@ |
90 | NMEDIT = @NMEDIT@ | |
89 | 91 | OBJEXT = @OBJEXT@ |
90 | 92 | PACKAGE = @PACKAGE@ |
91 | 93 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
95 | 97 | PACKAGE_VERSION = @PACKAGE_VERSION@ |
96 | 98 | PATH_SEPARATOR = @PATH_SEPARATOR@ |
97 | 99 | RANLIB = @RANLIB@ |
100 | SED = @SED@ | |
98 | 101 | SET_MAKE = @SET_MAKE@ |
99 | 102 | SHELL = @SHELL@ |
100 | 103 | STRIP = @STRIP@ |
6 | 6 | resample.c speck.c |
7 | 7 | noinst_HEADERS = bit_io.h checksum.h cobs.h color.h common.h daub97lift.h \ |
8 | 8 | dc_level.h filter.h filterbank.h libmain.h list.h mem_alloc.h merge_split.h pad.h \ |
9 | resample.h speck.h | |
10 | include_HEADERS = epsilon.h | |
9 | resample.h speck.h msvc/inttypes.h msvc/stdint.h | |
10 | include_HEADERS = epsilon.h |
0 | # Makefile.in generated by automake 1.10 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | 3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, |
4 | # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
7 | 7 | # with or without modifications, as long as this notice is preserved. |
60 | 60 | libepsilon_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \ |
61 | 61 | $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ |
62 | 62 | $(libepsilon_la_LDFLAGS) $(LDFLAGS) -o $@ |
63 | DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ | |
63 | DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) | |
64 | 64 | depcomp = $(SHELL) $(top_srcdir)/depcomp |
65 | 65 | am__depfiles_maybe = depfiles |
66 | 66 | COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
98 | 98 | CYGPATH_W = @CYGPATH_W@ |
99 | 99 | DEFS = @DEFS@ |
100 | 100 | DEPDIR = @DEPDIR@ |
101 | DSYMUTIL = @DSYMUTIL@ | |
101 | 102 | ECHO = @ECHO@ |
102 | 103 | ECHO_C = @ECHO_C@ |
103 | 104 | ECHO_N = @ECHO_N@ |
120 | 121 | LTLIBOBJS = @LTLIBOBJS@ |
121 | 122 | MAKEINFO = @MAKEINFO@ |
122 | 123 | MKDIR_P = @MKDIR_P@ |
124 | NMEDIT = @NMEDIT@ | |
123 | 125 | OBJEXT = @OBJEXT@ |
124 | 126 | PACKAGE = @PACKAGE@ |
125 | 127 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
129 | 131 | PACKAGE_VERSION = @PACKAGE_VERSION@ |
130 | 132 | PATH_SEPARATOR = @PATH_SEPARATOR@ |
131 | 133 | RANLIB = @RANLIB@ |
134 | SED = @SED@ | |
132 | 135 | SET_MAKE = @SET_MAKE@ |
133 | 136 | SHELL = @SHELL@ |
134 | 137 | STRIP = @STRIP@ |
194 | 197 | |
195 | 198 | noinst_HEADERS = bit_io.h checksum.h cobs.h color.h common.h daub97lift.h \ |
196 | 199 | dc_level.h filter.h filterbank.h libmain.h list.h mem_alloc.h merge_split.h pad.h \ |
197 | resample.h speck.h | |
198 | ||
199 | include_HEADERS = epsilon.h | |
200 | resample.h speck.h msvc/inttypes.h msvc/stdint.h | |
201 | ||
202 | include_HEADERS = epsilon.h | |
200 | 203 | all: all-am |
201 | 204 | |
202 | 205 | .SUFFIXES: |
236 | 239 | @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ |
237 | 240 | if test -f $$p; then \ |
238 | 241 | f=$(am__strip_dir) \ |
239 | echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ | |
240 | $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ | |
242 | echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(libdir)/$$f'"; \ | |
243 | $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(libdir)/$$f"; \ | |
241 | 244 | else :; fi; \ |
242 | 245 | done |
243 | 246 | |
245 | 248 | @$(NORMAL_UNINSTALL) |
246 | 249 | @list='$(lib_LTLIBRARIES)'; for p in $$list; do \ |
247 | 250 | p=$(am__strip_dir) \ |
248 | echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ | |
249 | $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ | |
251 | echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$p'"; \ | |
252 | $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$p"; \ | |
250 | 253 | done |
251 | 254 | |
252 | 255 | clean-libLTLIBRARIES: |
331 | 334 | unique=`for i in $$list; do \ |
332 | 335 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
333 | 336 | done | \ |
334 | $(AWK) ' { files[$$0] = 1; } \ | |
335 | END { for (i in files) print i; }'`; \ | |
337 | $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ | |
338 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
336 | 339 | mkid -fID $$unique |
337 | 340 | tags: TAGS |
338 | 341 | |
344 | 347 | unique=`for i in $$list; do \ |
345 | 348 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
346 | 349 | done | \ |
347 | $(AWK) ' { files[$$0] = 1; } \ | |
348 | END { for (i in files) print i; }'`; \ | |
350 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | |
351 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
349 | 352 | if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ |
350 | 353 | test -n "$$unique" || unique=$$empty_fix; \ |
351 | 354 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
355 | 358 | CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ |
356 | 359 | $(TAGS_FILES) $(LISP) |
357 | 360 | tags=; \ |
358 | here=`pwd`; \ | |
359 | 361 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ |
360 | 362 | unique=`for i in $$list; do \ |
361 | 363 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
362 | 364 | done | \ |
363 | $(AWK) ' { files[$$0] = 1; } \ | |
364 | END { for (i in files) print i; }'`; \ | |
365 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | |
366 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
365 | 367 | test -z "$(CTAGS_ARGS)$$tags$$unique" \ |
366 | 368 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
367 | 369 | $$tags $$unique |
0 | 0 | /* |
1 | * $Id: bit_io.c,v 1.12 2008/03/25 19:31:44 simakov Exp $ | |
1 | * $Id: bit_io.c,v 1.14 2010/02/05 23:50:21 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: bit_io.h,v 1.15 2008/03/25 19:31:45 simakov Exp $ | |
1 | * $Id: bit_io.h,v 1.17 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: checksum.c,v 1.13 2007/07/21 15:15:25 simakov Exp $ | |
1 | * $Id: checksum.c,v 1.15 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006-2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
107 | 108 | 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d, |
108 | 109 | }; |
109 | 110 | |
110 | crc32_t adler32(unsigned char *data, int length) | |
111 | crc32_t epsilon_adler32(unsigned char *data, int length) | |
111 | 112 | { |
112 | 113 | crc32_t s1 = 1; |
113 | 114 | crc32_t s2 = 0; |
141 | 142 | return (s2 << 16) | s1; |
142 | 143 | } |
143 | 144 | |
144 | crc32_t crc32(unsigned char *data, int length) | |
145 | crc32_t epsilon_crc32(unsigned char *data, int length) | |
145 | 146 | { |
146 | 147 | crc32_t crc = 0xffffffff; |
147 | 148 | int i; |
0 | 0 | /* |
1 | * $Id: checksum.h,v 1.13 2007/07/21 15:15:25 simakov Exp $ | |
1 | * $Id: checksum.h,v 1.15 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006-2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
54 | 55 | * \param length Data length |
55 | 56 | * |
56 | 57 | * \return Checksum */ |
57 | crc32_t adler32(unsigned char *data, int length); | |
58 | crc32_t epsilon_adler32(unsigned char *data, int length); | |
58 | 59 | |
59 | 60 | /** Compute CRC-32 checksum |
60 | 61 | * |
64 | 65 | * \param length Data length |
65 | 66 | * |
66 | 67 | * \return Checksum */ |
67 | crc32_t crc32(unsigned char *data, int length); | |
68 | crc32_t epsilon_crc32(unsigned char *data, int length); | |
68 | 69 | |
69 | 70 | /*@}*/ |
70 | 71 |
0 | 0 | /* |
1 | * $Id: cobs.c,v 1.12 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: cobs.c,v 1.14 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: cobs.h,v 1.14 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: cobs.h,v 1.16 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: color.c,v 1.13 2008/03/29 21:37:06 simakov Exp $ | |
1 | * $Id: color.c,v 1.15 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
16 | * GNU Lesser General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: color.h,v 1.16 2008/03/29 21:37:06 simakov Exp $ | |
1 | * $Id: color.h,v 1.18 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: common.c,v 1.13 2008/03/25 19:31:45 simakov Exp $ | |
1 | * $Id: common.c,v 1.15 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: common.h,v 1.27 2008/03/25 19:31:45 simakov Exp $ | |
1 | * $Id: common.h,v 1.30 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
36 | 37 | |
37 | 38 | /** \addtogroup misc Miscellanea */ |
38 | 39 | /*@{*/ |
40 | ||
41 | /* Use _snprintf instead of snprintf under MSVC compiler */ | |
42 | #if defined(_WIN32) && !defined(__MINGW32__) | |
43 | #define snprintf _snprintf | |
44 | #endif | |
39 | 45 | |
40 | 46 | #ifdef HAVE_CONFIG_H |
41 | 47 | # include <config.h> |
0 | 0 | /* |
1 | * $Id: daub97lift.h,v 1.2 2008/03/29 19:57:31 simakov Exp $ | |
1 | * $Id: daub97lift.h,v 1.4 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
16 | * GNU Lesser General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: dc_level.c,v 1.9 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: dc_level.c,v 1.11 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: dc_level.h,v 1.11 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: dc_level.h,v 1.13 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: epsilon.h,v 1.58 2007/07/22 15:45:02 simakov Exp $ | |
1 | * $Id: epsilon.h,v 1.61 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
16 | * GNU Lesser General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
236 | 237 | gs_hdr gs; |
237 | 238 | /** Special information for TRUECOLOR blocks */ |
238 | 239 | tc_hdr tc; |
239 | }; | |
240 | } hdr_data; | |
240 | 241 | } eps_block_header; |
241 | 242 | |
242 | 243 | /** Query available filterbanks |
0 | 0 | /* |
1 | * $Id: filter.c,v 1.18 2008/03/30 07:38:53 simakov Exp $ | |
1 | * $Id: filter.c,v 1.21 2010/04/05 06:11:55 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
16 | * GNU Lesser General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
78 | 79 | return index; |
79 | 80 | } |
80 | 81 | |
82 | /* Note: output_length parameter is not actually used but it's preserved | |
83 | * in order to make downsample_signal() symmetric to and upsample_signal(). */ | |
81 | 84 | inline local void downsample_signal(coeff_t *input_signal, coeff_t *output_signal, |
82 | 85 | int input_length, int output_length, int phase) |
83 | 86 | { |
0 | 0 | /* |
1 | * $Id: filter.h,v 1.19 2008/03/28 22:52:29 simakov Exp $ | |
1 | * $Id: filter.h,v 1.22 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
16 | * GNU Lesser General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
39 | 40 | |
40 | 41 | #ifdef __cplusplus |
41 | 42 | extern "C" { |
43 | #endif | |
44 | ||
45 | /* Use __inline instead of inline under MSVC compiler */ | |
46 | #if defined(_MSC_VER) && !defined(__cplusplus) | |
47 | #define inline __inline | |
42 | 48 | #endif |
43 | 49 | |
44 | 50 | /** \addtogroup wavelet Wavelet transform */ |
0 | 0 | /* |
1 | * $Id: filterbank.c,v 1.12 2008/03/28 22:52:29 simakov Exp $ | |
1 | * $Id: filterbank.c,v 1.15 2010/03/19 22:57:29 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
1276 | 1277 | &vaidyanathan_highpass_synthesis, |
1277 | 1278 | }; |
1278 | 1279 | |
1279 | /* Coeflet �6 filter. */ | |
1280 | /* Coeflet C6 filter. */ | |
1280 | 1281 | |
1281 | 1282 | static coeff_t coiflet6_lowpass_analysis_coeffs[] = { |
1282 | 1283 | 0.038580777748, |
0 | 0 | /* |
1 | * $Id: filterbank.h,v 1.15 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: filterbank.h,v 1.17 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: libmain.c,v 1.59 2008/03/25 19:31:45 simakov Exp $ | |
1 | * $Id: libmain.c,v 1.63 2010/04/05 05:01:04 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006-2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
34 | 35 | #include <pad.h> |
35 | 36 | #include <merge_split.h> |
36 | 37 | #include <speck.h> |
37 | #include <strings.h> | |
38 | 38 | #include <string.h> |
39 | 39 | |
40 | 40 | local void round_channel(coeff_t **in_channel, int **out_channel, |
239 | 239 | result = sscanf(str, |
240 | 240 | "type=gs;W=%d;H=%d;w=%d;h=%d;x=%d;y=%d;" |
241 | 241 | "m=%d;dc=%d;fb=%31[a-z0-9];chk=%x;crc=%x%n", |
242 | &hdr->gs.W, &hdr->gs.H, &hdr->gs.w, &hdr->gs.h, | |
243 | &hdr->gs.x, &hdr->gs.y, &hdr->gs.mode, &hdr->gs.dc, | |
242 | &hdr->hdr_data.gs.W, &hdr->hdr_data.gs.H, | |
243 | &hdr->hdr_data.gs.w, &hdr->hdr_data.gs.h, | |
244 | &hdr->hdr_data.gs.x, &hdr->hdr_data.gs.y, | |
245 | &hdr->hdr_data.gs.mode, &hdr->hdr_data.gs.dc, | |
244 | 246 | fb_id, &hdr->chk, &hdr->crc, &n); |
245 | 247 | |
246 | 248 | unterminate_header(buf); |
259 | 261 | assert(hdr->hdr_size + hdr->data_size == buf_size); |
260 | 262 | |
261 | 263 | /* Check transform mode */ |
262 | if ((hdr->gs.mode != EPS_MODE_NORMAL) && (hdr->gs.mode != EPS_MODE_OTLPF)) { | |
264 | if ((hdr->hdr_data.gs.mode != EPS_MODE_NORMAL) && | |
265 | (hdr->hdr_data.gs.mode != EPS_MODE_OTLPF)) { | |
263 | 266 | return EPS_FORMAT_ERROR; |
264 | 267 | } |
265 | 268 | |
266 | 269 | /* Check image (W, H) and block (w, y, w, h) parameters for consistency */ |
267 | if ((hdr->gs.W <= 0) || (hdr->gs.H <= 0)) { | |
268 | return EPS_FORMAT_ERROR; | |
269 | } | |
270 | ||
271 | if ((hdr->gs.w < 1) || (hdr->gs.h < 1)) { | |
272 | return EPS_FORMAT_ERROR; | |
273 | } | |
274 | ||
275 | if (hdr->gs.w > EPS_MAX_BLOCK_SIZE + hdr->gs.mode == EPS_MODE_OTLPF) { | |
276 | return EPS_FORMAT_ERROR; | |
277 | } | |
278 | ||
279 | if (hdr->gs.h > EPS_MAX_BLOCK_SIZE + hdr->gs.mode == EPS_MODE_OTLPF) { | |
280 | return EPS_FORMAT_ERROR; | |
281 | } | |
282 | ||
283 | if ((hdr->gs.x < 0) || (hdr->gs.y < 0)) { | |
284 | return EPS_FORMAT_ERROR; | |
285 | } | |
286 | ||
287 | if (hdr->gs.x + hdr->gs.w > hdr->gs.W) { | |
288 | return EPS_FORMAT_ERROR; | |
289 | } | |
290 | ||
291 | if (hdr->gs.y + hdr->gs.h > hdr->gs.H) { | |
270 | if ((hdr->hdr_data.gs.W <= 0) || (hdr->hdr_data.gs.H <= 0)) { | |
271 | return EPS_FORMAT_ERROR; | |
272 | } | |
273 | ||
274 | if ((hdr->hdr_data.gs.w < 1) || (hdr->hdr_data.gs.h < 1)) { | |
275 | return EPS_FORMAT_ERROR; | |
276 | } | |
277 | ||
278 | if (hdr->hdr_data.gs.w > EPS_MAX_BLOCK_SIZE + (hdr->hdr_data.gs.mode == EPS_MODE_OTLPF)) { | |
279 | return EPS_FORMAT_ERROR; | |
280 | } | |
281 | ||
282 | if (hdr->hdr_data.gs.h > EPS_MAX_BLOCK_SIZE + (hdr->hdr_data.gs.mode == EPS_MODE_OTLPF)) { | |
283 | return EPS_FORMAT_ERROR; | |
284 | } | |
285 | ||
286 | if ((hdr->hdr_data.gs.x < 0) || (hdr->hdr_data.gs.y < 0)) { | |
287 | return EPS_FORMAT_ERROR; | |
288 | } | |
289 | ||
290 | if (hdr->hdr_data.gs.x + hdr->hdr_data.gs.w > hdr->hdr_data.gs.W) { | |
291 | return EPS_FORMAT_ERROR; | |
292 | } | |
293 | ||
294 | if (hdr->hdr_data.gs.y + hdr->hdr_data.gs.h > hdr->hdr_data.gs.H) { | |
292 | 295 | return EPS_FORMAT_ERROR; |
293 | 296 | } |
294 | 297 | |
295 | 298 | /* Check DC level */ |
296 | if ((hdr->gs.dc < 0) || (hdr->gs.dc > 255)) { | |
299 | if ((hdr->hdr_data.gs.dc < 0) || (hdr->hdr_data.gs.dc > 255)) { | |
297 | 300 | return EPS_FORMAT_ERROR; |
298 | 301 | } |
299 | 302 | |
300 | 303 | /* Find filterbank by id */ |
301 | if (fb = get_fb(fb_id)) { | |
302 | hdr->gs.fb_id = fb->id; | |
304 | fb = get_fb(fb_id); | |
305 | if (fb) { | |
306 | hdr->hdr_data.gs.fb_id = fb->id; | |
303 | 307 | } else { |
304 | hdr->gs.fb_id = NULL; | |
308 | hdr->hdr_data.gs.fb_id = NULL; | |
305 | 309 | } |
306 | 310 | |
307 | 311 | /* EPS_MODE_NORMAL is the only valid choise for orthogonal filters */ |
308 | if ((fb->type == ORTHOGONAL) && (hdr->gs.mode != EPS_MODE_NORMAL)) { | |
312 | if ((fb->type == ORTHOGONAL) && (hdr->hdr_data.gs.mode != EPS_MODE_NORMAL)) { | |
309 | 313 | return EPS_FORMAT_ERROR; |
310 | 314 | } |
311 | 315 | |
312 | 316 | assert(chk_pos); |
313 | 317 | |
314 | 318 | /* Compute header CRC and compare it against stored one */ |
315 | hdr_crc = crc32(buf, chk_pos - (char *) buf); | |
319 | hdr_crc = epsilon_crc32(buf, chk_pos - (char *) buf); | |
316 | 320 | hdr_crc = (hdr_crc ^ (hdr_crc >> 16)) & 0xffff; |
317 | 321 | |
318 | 322 | if (hdr_crc == hdr->chk) { |
322 | 326 | } |
323 | 327 | |
324 | 328 | /* Compute data CRC and compare it against stored one */ |
325 | data_crc = crc32(buf + hdr->hdr_size, hdr->data_size); | |
329 | data_crc = epsilon_crc32(buf + hdr->hdr_size, hdr->data_size); | |
326 | 330 | |
327 | 331 | if (data_crc == hdr->crc) { |
328 | 332 | hdr->crc_flag = EPS_GOOD_CRC; |
382 | 386 | "type=tc;W=%d;H=%d;w=%d;h=%d;x=%d;y=%d;m=%d;" |
383 | 387 | "r=%d;dc=%d:%d:%d;rt=%d:%d:%d;fb=%31[a-z0-9];" |
384 | 388 | "chk=%x;crc=%x%n", |
385 | &hdr->tc.W, &hdr->tc.H, &hdr->tc.w, &hdr->tc.h, | |
386 | &hdr->tc.x, &hdr->tc.y, &hdr->tc.mode, &hdr->tc.resample, | |
387 | &hdr->tc.dc_Y, &hdr->tc.dc_Cb, &hdr->tc.dc_Cr, | |
388 | &hdr->tc.Y_rt, &hdr->tc.Cb_rt, &hdr->tc.Cr_rt, | |
389 | &hdr->hdr_data.tc.W, &hdr->hdr_data.tc.H, | |
390 | &hdr->hdr_data.tc.w, &hdr->hdr_data.tc.h, | |
391 | &hdr->hdr_data.tc.x, &hdr->hdr_data.tc.y, | |
392 | &hdr->hdr_data.tc.mode, &hdr->hdr_data.tc.resample, | |
393 | &hdr->hdr_data.tc.dc_Y, &hdr->hdr_data.tc.dc_Cb, | |
394 | &hdr->hdr_data.tc.dc_Cr, &hdr->hdr_data.tc.Y_rt, | |
395 | &hdr->hdr_data.tc.Cb_rt, &hdr->hdr_data.tc.Cr_rt, | |
389 | 396 | fb_id, &hdr->chk, &hdr->crc, &n); |
390 | 397 | |
391 | 398 | unterminate_header(buf); |
404 | 411 | assert(hdr->hdr_size + hdr->data_size == buf_size); |
405 | 412 | |
406 | 413 | /* Check transform mode */ |
407 | if ((hdr->tc.mode != EPS_MODE_NORMAL) && (hdr->tc.mode != EPS_MODE_OTLPF)) { | |
414 | if ((hdr->hdr_data.tc.mode != EPS_MODE_NORMAL) && | |
415 | (hdr->hdr_data.tc.mode != EPS_MODE_OTLPF)) | |
416 | { | |
408 | 417 | return EPS_FORMAT_ERROR; |
409 | 418 | } |
410 | 419 | |
411 | 420 | /* Check image (W, H) and block (w, y, w, h) parameters for consistency */ |
412 | if ((hdr->tc.W <= 0) || (hdr->tc.H <= 0)) { | |
413 | return EPS_FORMAT_ERROR; | |
414 | } | |
415 | ||
416 | if ((hdr->tc.w < 1) || (hdr->tc.h < 1)) { | |
417 | return EPS_FORMAT_ERROR; | |
418 | } | |
419 | ||
420 | if (hdr->tc.w > EPS_MAX_BLOCK_SIZE + hdr->tc.mode == EPS_MODE_OTLPF) { | |
421 | return EPS_FORMAT_ERROR; | |
422 | } | |
423 | ||
424 | if (hdr->tc.h > EPS_MAX_BLOCK_SIZE + hdr->tc.mode == EPS_MODE_OTLPF) { | |
425 | return EPS_FORMAT_ERROR; | |
426 | } | |
427 | ||
428 | if ((hdr->tc.x < 0) || (hdr->tc.y < 0)) { | |
429 | return EPS_FORMAT_ERROR; | |
430 | } | |
431 | ||
432 | if (hdr->tc.x + hdr->tc.w > hdr->tc.W) { | |
433 | return EPS_FORMAT_ERROR; | |
434 | } | |
435 | ||
436 | if (hdr->tc.y + hdr->tc.h > hdr->tc.H) { | |
421 | if ((hdr->hdr_data.tc.W <= 0) || (hdr->hdr_data.tc.H <= 0)) { | |
422 | return EPS_FORMAT_ERROR; | |
423 | } | |
424 | ||
425 | if ((hdr->hdr_data.tc.w < 1) || (hdr->hdr_data.tc.h < 1)) { | |
426 | return EPS_FORMAT_ERROR; | |
427 | } | |
428 | ||
429 | if (hdr->hdr_data.tc.w > EPS_MAX_BLOCK_SIZE + (hdr->hdr_data.tc.mode == EPS_MODE_OTLPF)) { | |
430 | return EPS_FORMAT_ERROR; | |
431 | } | |
432 | ||
433 | if (hdr->hdr_data.tc.h > EPS_MAX_BLOCK_SIZE + (hdr->hdr_data.tc.mode == EPS_MODE_OTLPF)) { | |
434 | return EPS_FORMAT_ERROR; | |
435 | } | |
436 | ||
437 | if ((hdr->hdr_data.tc.x < 0) || (hdr->hdr_data.tc.y < 0)) { | |
438 | return EPS_FORMAT_ERROR; | |
439 | } | |
440 | ||
441 | if (hdr->hdr_data.tc.x + hdr->hdr_data.tc.w > hdr->hdr_data.tc.W) { | |
442 | return EPS_FORMAT_ERROR; | |
443 | } | |
444 | ||
445 | if (hdr->hdr_data.tc.y + hdr->hdr_data.tc.h > hdr->hdr_data.tc.H) { | |
437 | 446 | return EPS_FORMAT_ERROR; |
438 | 447 | } |
439 | 448 | |
440 | 449 | /* Check resampling mode */ |
441 | if ((hdr->tc.resample != EPS_RESAMPLE_444) && | |
442 | (hdr->tc.resample != EPS_RESAMPLE_420)) | |
450 | if ((hdr->hdr_data.tc.resample != EPS_RESAMPLE_444) && | |
451 | (hdr->hdr_data.tc.resample != EPS_RESAMPLE_420)) | |
443 | 452 | { |
444 | 453 | return EPS_FORMAT_ERROR; |
445 | 454 | } |
446 | 455 | |
447 | 456 | /* Check DC level for Y, Cb and Cr channels */ |
448 | if ((hdr->tc.dc_Y < 0) || (hdr->tc.dc_Y > 255)) { | |
449 | return EPS_FORMAT_ERROR; | |
450 | } | |
451 | ||
452 | if ((hdr->tc.dc_Cb < 0) || (hdr->tc.dc_Cb > 255)) { | |
453 | return EPS_FORMAT_ERROR; | |
454 | } | |
455 | ||
456 | if ((hdr->tc.dc_Cr < 0) || (hdr->tc.dc_Cr > 255)) { | |
457 | return EPS_FORMAT_ERROR; | |
458 | } | |
459 | ||
460 | if ((hdr->tc.Y_rt <= 0) || (hdr->tc.Cb_rt <= 0) || (hdr->tc.Cr_rt <= 0)) { | |
457 | if ((hdr->hdr_data.tc.dc_Y < 0) || (hdr->hdr_data.tc.dc_Y > 255)) { | |
458 | return EPS_FORMAT_ERROR; | |
459 | } | |
460 | ||
461 | if ((hdr->hdr_data.tc.dc_Cb < 0) || (hdr->hdr_data.tc.dc_Cb > 255)) { | |
462 | return EPS_FORMAT_ERROR; | |
463 | } | |
464 | ||
465 | if ((hdr->hdr_data.tc.dc_Cr < 0) || (hdr->hdr_data.tc.dc_Cr > 255)) { | |
466 | return EPS_FORMAT_ERROR; | |
467 | } | |
468 | ||
469 | if ((hdr->hdr_data.tc.Y_rt <= 0) || | |
470 | (hdr->hdr_data.tc.Cb_rt <= 0) || | |
471 | (hdr->hdr_data.tc.Cr_rt <= 0)) | |
472 | { | |
461 | 473 | return EPS_FORMAT_ERROR; |
462 | 474 | } |
463 | 475 | |
464 | 476 | /* Find filterbank by id */ |
465 | if (fb = get_fb(fb_id)) { | |
466 | hdr->tc.fb_id = fb->id; | |
477 | fb = get_fb(fb_id); | |
478 | if (fb) { | |
479 | hdr->hdr_data.tc.fb_id = fb->id; | |
467 | 480 | } else { |
468 | hdr->tc.fb_id = NULL; | |
481 | hdr->hdr_data.tc.fb_id = NULL; | |
469 | 482 | } |
470 | 483 | |
471 | 484 | /* EPS_MODE_NORMAL is the only valid choise for orthogonal filters */ |
472 | if ((fb->type == ORTHOGONAL) && (hdr->tc.mode != EPS_MODE_NORMAL)) { | |
485 | if ((fb->type == ORTHOGONAL) && (hdr->hdr_data.tc.mode != EPS_MODE_NORMAL)) { | |
473 | 486 | return EPS_FORMAT_ERROR; |
474 | 487 | } |
475 | 488 | |
476 | 489 | assert(chk_pos); |
477 | 490 | |
478 | 491 | /* Compute header CRC and compare it against stored one */ |
479 | hdr_crc = crc32(buf, chk_pos - (char *) buf); | |
492 | hdr_crc = epsilon_crc32(buf, chk_pos - (char *) buf); | |
480 | 493 | hdr_crc = (hdr_crc ^ (hdr_crc >> 16)) & 0xffff; |
481 | 494 | |
482 | 495 | if (hdr_crc == hdr->chk) { |
486 | 499 | } |
487 | 500 | |
488 | 501 | /* Compute data CRC and compare it against stored one */ |
489 | data_crc = crc32(buf + hdr->hdr_size, hdr->data_size); | |
502 | data_crc = epsilon_crc32(buf + hdr->hdr_size, hdr->data_size); | |
490 | 503 | |
491 | 504 | if (data_crc == hdr->crc) { |
492 | 505 | hdr->crc_flag = EPS_GOOD_CRC; |
550 | 563 | break; |
551 | 564 | } |
552 | 565 | } |
566 | ||
567 | /* This code is unreachable, just to be on a safe side */ | |
568 | assert(0); | |
569 | ||
570 | /* Fake return disables 'not all control paths return a value' warning */ | |
571 | return EPS_FORMAT_ERROR; | |
553 | 572 | } |
554 | 573 | |
555 | 574 | char **eps_get_fb_info(int type) |
652 | 671 | return EPS_PARAM_ERROR; |
653 | 672 | } |
654 | 673 | |
655 | if (w > EPS_MAX_BLOCK_SIZE + mode == EPS_MODE_OTLPF) { | |
656 | return EPS_PARAM_ERROR; | |
657 | } | |
658 | ||
659 | if (h > EPS_MAX_BLOCK_SIZE + mode == EPS_MODE_OTLPF) { | |
674 | if (w > EPS_MAX_BLOCK_SIZE + (mode == EPS_MODE_OTLPF)) { | |
675 | return EPS_PARAM_ERROR; | |
676 | } | |
677 | ||
678 | if (h > EPS_MAX_BLOCK_SIZE + (mode == EPS_MODE_OTLPF)) { | |
660 | 679 | return EPS_PARAM_ERROR; |
661 | 680 | } |
662 | 681 | |
718 | 737 | bytes_left -= str_len; |
719 | 738 | |
720 | 739 | /* Compute and save block CRC */ |
721 | hdr_crc = crc32(buf, str_len); | |
740 | hdr_crc = epsilon_crc32(buf, str_len); | |
722 | 741 | hdr_crc = (hdr_crc ^ (hdr_crc >> 16)) & 0xffff; |
723 | 742 | |
724 | 743 | str_len = snprintf((char *) buf_next, bytes_left, |
751 | 770 | free(stuff_buf); |
752 | 771 | |
753 | 772 | /* Compute and save data CRC */ |
754 | data_crc = crc32(buf_next, stuff_cut); | |
773 | data_crc = epsilon_crc32(buf_next, stuff_cut); | |
755 | 774 | snprintf((char *) crc_pos, 9, "%08x", data_crc); |
756 | 775 | crc_pos[8] = ';'; |
757 | 776 | |
788 | 807 | return EPS_PARAM_ERROR; |
789 | 808 | } |
790 | 809 | |
791 | if (!hdr->gs.fb_id) { | |
810 | if (!hdr->hdr_data.gs.fb_id) { | |
792 | 811 | return EPS_UNSUPPORTED_FB; |
793 | 812 | } |
794 | 813 | |
795 | 814 | /* Reset Y channel */ |
796 | reset_Y(block, hdr->gs.w, hdr->gs.h); | |
815 | reset_Y(block, hdr->hdr_data.gs.w, hdr->hdr_data.gs.h); | |
797 | 816 | |
798 | 817 | /* Find filterbank from id */ |
799 | fb = get_fb(hdr->gs.fb_id); | |
818 | fb = get_fb(hdr->hdr_data.gs.fb_id); | |
800 | 819 | assert(fb); |
801 | 820 | |
802 | 821 | /* Unstuff data */ |
812 | 831 | } |
813 | 832 | |
814 | 833 | /* Compute block size */ |
815 | block_size = get_block_size(hdr->gs.w, hdr->gs.h, hdr->gs.mode, 2); | |
834 | block_size = get_block_size(hdr->hdr_data.gs.w, hdr->hdr_data.gs.h, | |
835 | hdr->hdr_data.gs.mode, 2); | |
816 | 836 | |
817 | 837 | /* Decode coefficients */ |
818 | 838 | int_block = (int **) malloc_2D(block_size, block_size, sizeof(int)); |
826 | 846 | |
827 | 847 | /* Inverse wavelet transform */ |
828 | 848 | pad_block = (coeff_t **) malloc_2D(block_size, block_size, sizeof(coeff_t)); |
829 | synthesis_2D(dwt_block, pad_block, block_size, hdr->gs.mode, fb); | |
849 | synthesis_2D(dwt_block, pad_block, block_size, hdr->hdr_data.gs.mode, fb); | |
830 | 850 | free_2D((void *) dwt_block, block_size, block_size); |
831 | 851 | |
832 | dc_int = (unsigned char) hdr->gs.dc; | |
852 | dc_int = (unsigned char) hdr->hdr_data.gs.dc; | |
833 | 853 | |
834 | 854 | /* DC level unshift */ |
835 | 855 | dc_level_unshift(pad_block, (coeff_t) dc_int, |
837 | 857 | |
838 | 858 | /* Extract original data */ |
839 | 859 | extract_channel(pad_block, block, block_size, block_size, |
840 | hdr->gs.w, hdr->gs.h); | |
860 | hdr->hdr_data.gs.w, hdr->hdr_data.gs.h); | |
841 | 861 | |
842 | 862 | free_2D((void *) pad_block, block_size, block_size); |
843 | 863 | |
944 | 964 | return EPS_PARAM_ERROR; |
945 | 965 | } |
946 | 966 | |
947 | if (w > EPS_MAX_BLOCK_SIZE + mode == EPS_MODE_OTLPF) { | |
948 | return EPS_PARAM_ERROR; | |
949 | } | |
950 | ||
951 | if (h > EPS_MAX_BLOCK_SIZE + mode == EPS_MODE_OTLPF) { | |
967 | if (w > EPS_MAX_BLOCK_SIZE + (mode == EPS_MODE_OTLPF)) { | |
968 | return EPS_PARAM_ERROR; | |
969 | } | |
970 | ||
971 | if (h > EPS_MAX_BLOCK_SIZE + (mode == EPS_MODE_OTLPF)) { | |
952 | 972 | return EPS_PARAM_ERROR; |
953 | 973 | } |
954 | 974 | |
1193 | 1213 | bytes_left -= str_len; |
1194 | 1214 | |
1195 | 1215 | /* Compute and save header CRC */ |
1196 | hdr_crc = crc32(buf, str_len); | |
1216 | hdr_crc = epsilon_crc32(buf, str_len); | |
1197 | 1217 | hdr_crc = (hdr_crc ^ (hdr_crc >> 16)) & 0xffff; |
1198 | 1218 | |
1199 | 1219 | str_len = snprintf((char *) buf_next, bytes_left, |
1213 | 1233 | free(stuff_buf); |
1214 | 1234 | |
1215 | 1235 | /* Compute and save data CRC */ |
1216 | data_crc = crc32(buf_next, stuff_cut); | |
1236 | data_crc = epsilon_crc32(buf_next, stuff_cut); | |
1217 | 1237 | snprintf((char *) crc_pos, 9, "%08x", data_crc); |
1218 | 1238 | crc_pos[8] = ';'; |
1219 | 1239 | |
1292 | 1312 | } |
1293 | 1313 | |
1294 | 1314 | /* Reset RGB channels */ |
1295 | reset_RGB(block_R, block_G, block_B, hdr->tc.w, hdr->tc.h); | |
1315 | reset_RGB(block_R, block_G, block_B, hdr->hdr_data.tc.w, hdr->hdr_data.tc.h); | |
1296 | 1316 | |
1297 | 1317 | /* Find filterbank by id */ |
1298 | if (!hdr->tc.fb_id) { | |
1318 | if (!hdr->hdr_data.tc.fb_id) { | |
1299 | 1319 | return EPS_UNSUPPORTED_FB; |
1300 | 1320 | } |
1301 | 1321 | |
1302 | fb = get_fb(hdr->tc.fb_id); | |
1322 | fb = get_fb(hdr->hdr_data.tc.fb_id); | |
1303 | 1323 | assert(fb); |
1304 | 1324 | |
1305 | 1325 | /* Unstaff data */ |
1310 | 1330 | hdr->data_size, hdr->data_size); |
1311 | 1331 | |
1312 | 1332 | /* Consistency check */ |
1313 | if (unstuff_bytes > hdr->tc.Y_rt + hdr->tc.Cb_rt + hdr->tc.Cr_rt) { | |
1333 | if (unstuff_bytes > hdr->hdr_data.tc.Y_rt + hdr->hdr_data.tc.Cb_rt + hdr->hdr_data.tc.Cr_rt) { | |
1314 | 1334 | free(unstuff_buf); |
1315 | 1335 | return EPS_FORMAT_ERROR; |
1316 | 1336 | } |
1329 | 1349 | sizeof(unsigned char)); |
1330 | 1350 | |
1331 | 1351 | /* Split stream into Y and (Cb + Cr) channels */ |
1332 | split_channels(unstuff_buf, buf_Y, buf_Cb_Cr, unstuff_bytes, | |
1333 | hdr->tc.Y_rt, hdr->tc.Cb_rt + hdr->tc.Cr_rt, | |
1352 | split_channels(unstuff_buf, buf_Y, buf_Cb_Cr, | |
1353 | unstuff_bytes, hdr->hdr_data.tc.Y_rt, | |
1354 | hdr->hdr_data.tc.Cb_rt + hdr->hdr_data.tc.Cr_rt, | |
1334 | 1355 | &speck_bytes_Y, &speck_bytes_Cb_Cr); |
1335 | 1356 | |
1336 | 1357 | /* No longer needed */ |
1337 | 1358 | free(unstuff_buf); |
1338 | 1359 | |
1339 | 1360 | /* Consistency check */ |
1340 | if (speck_bytes_Cb_Cr > hdr->tc.Cb_rt + hdr->tc.Cr_rt) { | |
1361 | if (speck_bytes_Cb_Cr > hdr->hdr_data.tc.Cb_rt + hdr->hdr_data.tc.Cr_rt) { | |
1341 | 1362 | free(buf_Y); |
1342 | 1363 | free(buf_Cb_Cr); |
1343 | 1364 | return EPS_FORMAT_ERROR; |
1364 | 1385 | |
1365 | 1386 | /* Split merged (Cb + Cr) channel into Cb and Cr channels */ |
1366 | 1387 | split_channels(buf_Cb_Cr, buf_Cb, buf_Cr, speck_bytes_Cb_Cr, |
1367 | hdr->tc.Cb_rt, hdr->tc.Cr_rt, | |
1388 | hdr->hdr_data.tc.Cb_rt, hdr->hdr_data.tc.Cr_rt, | |
1368 | 1389 | &speck_bytes_Cb, &speck_bytes_Cr); |
1369 | 1390 | |
1370 | 1391 | /* No longer needed */ |
1383 | 1404 | } |
1384 | 1405 | |
1385 | 1406 | /* Compute block sizes for full and resampled channels */ |
1386 | full_size = get_block_size(hdr->tc.w, hdr->tc.h, hdr->tc.mode, 4); | |
1387 | half_size = full_size / 2 + (hdr->tc.mode == EPS_MODE_OTLPF); | |
1388 | ||
1389 | if (hdr->tc.resample == EPS_RESAMPLE_444) { | |
1407 | full_size = get_block_size(hdr->hdr_data.tc.w, hdr->hdr_data.tc.h, hdr->hdr_data.tc.mode, 4); | |
1408 | half_size = full_size / 2 + (hdr->hdr_data.tc.mode == EPS_MODE_OTLPF); | |
1409 | ||
1410 | if (hdr->hdr_data.tc.resample == EPS_RESAMPLE_444) { | |
1390 | 1411 | block_Y_size = full_size; |
1391 | 1412 | block_Cb_size = full_size; |
1392 | 1413 | block_Cr_size = full_size; |
1441 | 1462 | sizeof(coeff_t)); |
1442 | 1463 | |
1443 | 1464 | /* Inverse wavelet transform */ |
1444 | synthesis_2D(dwt_block_Y, block_Y, block_Y_size, hdr->tc.mode, fb); | |
1445 | synthesis_2D(dwt_block_Cb, block_Cb, block_Cb_size, hdr->tc.mode, fb); | |
1446 | synthesis_2D(dwt_block_Cr, block_Cr, block_Cr_size, hdr->tc.mode, fb); | |
1465 | synthesis_2D(dwt_block_Y, block_Y, block_Y_size, hdr->hdr_data.tc.mode, fb); | |
1466 | synthesis_2D(dwt_block_Cb, block_Cb, block_Cb_size, hdr->hdr_data.tc.mode, fb); | |
1467 | synthesis_2D(dwt_block_Cr, block_Cr, block_Cr_size, hdr->hdr_data.tc.mode, fb); | |
1447 | 1468 | |
1448 | 1469 | /* No longer needed */ |
1449 | 1470 | free_2D((void *) dwt_block_Y, block_Y_size, block_Y_size); |
1451 | 1472 | free_2D((void *) dwt_block_Cr, block_Cr_size, block_Cr_size); |
1452 | 1473 | |
1453 | 1474 | /* Get DC values */ |
1454 | dc_Y_int = (unsigned char) hdr->tc.dc_Y; | |
1455 | dc_Cb_int = (unsigned char) hdr->tc.dc_Cb; | |
1456 | dc_Cr_int = (unsigned char) hdr->tc.dc_Cr; | |
1475 | dc_Y_int = (unsigned char) hdr->hdr_data.tc.dc_Y; | |
1476 | dc_Cb_int = (unsigned char) hdr->hdr_data.tc.dc_Cb; | |
1477 | dc_Cr_int = (unsigned char) hdr->hdr_data.tc.dc_Cr; | |
1457 | 1478 | |
1458 | 1479 | /* DC level unshift */ |
1459 | 1480 | dc_level_unshift(block_Y, (coeff_t) dc_Y_int, |
1463 | 1484 | dc_level_unshift(block_Cr, (coeff_t) dc_Cr_int, |
1464 | 1485 | block_Cr_size, block_Cr_size); |
1465 | 1486 | |
1466 | if (hdr->tc.resample == EPS_RESAMPLE_444) { | |
1487 | if (hdr->hdr_data.tc.resample == EPS_RESAMPLE_444) { | |
1467 | 1488 | /* No upsampling */ |
1468 | 1489 | pad_block_Y = block_Y; |
1469 | 1490 | pad_block_Cb = block_Cb; |
1518 | 1539 | /* Extract original data from R,G,B channels */ |
1519 | 1540 | extract_channel(pad_block_R, block_R, |
1520 | 1541 | full_size, full_size, |
1521 | hdr->tc.w, hdr->tc.h); | |
1542 | hdr->hdr_data.tc.w, | |
1543 | hdr->hdr_data.tc.h); | |
1522 | 1544 | |
1523 | 1545 | extract_channel(pad_block_G, block_G, |
1524 | 1546 | full_size, full_size, |
1525 | hdr->tc.w, hdr->tc.h); | |
1547 | hdr->hdr_data.tc.w, | |
1548 | hdr->hdr_data.tc.h); | |
1526 | 1549 | |
1527 | 1550 | extract_channel(pad_block_B, block_B, |
1528 | 1551 | full_size, full_size, |
1529 | hdr->tc.w, hdr->tc.h); | |
1552 | hdr->hdr_data.tc.w, | |
1553 | hdr->hdr_data.tc.h); | |
1530 | 1554 | |
1531 | 1555 | /* No longer needed */ |
1532 | 1556 | free_2D((void *) pad_block_R, full_size, full_size); |
1555 | 1579 | memcpy(buf_out, buf_in, *truncate_size); |
1556 | 1580 | |
1557 | 1581 | /* Recompute data CRC */ |
1558 | data_crc = crc32(buf_out + hdr->hdr_size, *truncate_size - hdr->hdr_size); | |
1582 | data_crc = epsilon_crc32(buf_out + hdr->hdr_size, *truncate_size - hdr->hdr_size); | |
1559 | 1583 | snprintf((char *) (buf_out + hdr->hdr_size - 9), 9, "%08x", data_crc); |
1560 | 1584 | *(buf_out + hdr->hdr_size - 1) = ';'; |
1561 | 1585 |
0 | 0 | /* |
1 | * $Id: libmain.h,v 1.17 2007/06/15 18:09:16 simakov Exp $ | |
1 | * $Id: libmain.h,v 1.19 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: list.c,v 1.16 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: list.c,v 1.18 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: list.h,v 1.17 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: list.h,v 1.19 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: mem_alloc.c,v 1.15 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: mem_alloc.c,v 1.17 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: mem_alloc.h,v 1.14 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: mem_alloc.h,v 1.16 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: merge_split.c,v 1.13 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: merge_split.c,v 1.15 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: merge_split.h,v 1.15 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: merge_split.h,v 1.17 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | // ISO C9x compliant inttypes.h for Microsoft Visual Studio | |
1 | // Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 | |
2 | // | |
3 | // Copyright (c) 2006 Alexander Chemeris | |
4 | // | |
5 | // Redistribution and use in source and binary forms, with or without | |
6 | // modification, are permitted provided that the following conditions are met: | |
7 | // | |
8 | // 1. Redistributions of source code must retain the above copyright notice, | |
9 | // this list of conditions and the following disclaimer. | |
10 | // | |
11 | // 2. Redistributions in binary form must reproduce the above copyright | |
12 | // notice, this list of conditions and the following disclaimer in the | |
13 | // documentation and/or other materials provided with the distribution. | |
14 | // | |
15 | // 3. The name of the author may be used to endorse or promote products | |
16 | // derived from this software without specific prior written permission. | |
17 | // | |
18 | // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED | |
19 | // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
20 | // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO | |
21 | // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
23 | // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | |
24 | // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |
25 | // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | |
26 | // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | |
27 | // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
28 | // | |
29 | /////////////////////////////////////////////////////////////////////////////// | |
30 | ||
31 | #ifndef _MSC_VER // [ | |
32 | #error "Use this header only with Microsoft Visual C++ compilers!" | |
33 | #endif // _MSC_VER ] | |
34 | ||
35 | #ifndef _MSC_INTTYPES_H_ // [ | |
36 | #define _MSC_INTTYPES_H_ | |
37 | ||
38 | #if _MSC_VER > 1000 | |
39 | #pragma once | |
40 | #endif | |
41 | ||
42 | #include <stdint.h> | |
43 | ||
44 | // 7.8 Format conversion of integer types | |
45 | ||
46 | typedef struct { | |
47 | intmax_t quot; | |
48 | intmax_t rem; | |
49 | } imaxdiv_t; | |
50 | ||
51 | // 7.8.1 Macros for format specifiers | |
52 | ||
53 | // The fprintf macros for signed integers are: | |
54 | #define PRId8 "d" | |
55 | #define PRIi8 "i" | |
56 | #define PRIdLEAST8 "d" | |
57 | #define PRIiLEAST8 "i" | |
58 | #define PRIdFAST8 "d" | |
59 | #define PRIiFAST8 "i" | |
60 | ||
61 | #define PRId16 "hd" | |
62 | #define PRIi16 "hi" | |
63 | #define PRIdLEAST16 "hd" | |
64 | #define PRIiLEAST16 "hi" | |
65 | #define PRIdFAST16 "hd" | |
66 | #define PRIiFAST16 "hi" | |
67 | ||
68 | #define PRId32 "I32d" | |
69 | #define PRIi32 "I32i" | |
70 | #define PRIdLEAST32 "I32d" | |
71 | #define PRIiLEAST32 "I32i" | |
72 | #define PRIdFAST32 "I32d" | |
73 | #define PRIiFAST32 "I32i" | |
74 | ||
75 | #define PRId64 "I64d" | |
76 | #define PRIi64 "I64i" | |
77 | #define PRIdLEAST64 "I64d" | |
78 | #define PRIiLEAST64 "I64i" | |
79 | #define PRIdFAST64 "I64d" | |
80 | #define PRIiFAST64 "I64i" | |
81 | ||
82 | #define PRIdMAX "I64d" | |
83 | #define PRIiMAX "I64i" | |
84 | ||
85 | #define PRIdPTR "Id" | |
86 | #define PRIiPTR "Ii" | |
87 | ||
88 | // The fprintf macros for unsigned integers are: | |
89 | #define PRIo8 "o" | |
90 | #define PRIu8 "u" | |
91 | #define PRIx8 "x" | |
92 | #define PRIX8 "X" | |
93 | #define PRIoLEAST8 "o" | |
94 | #define PRIuLEAST8 "u" | |
95 | #define PRIxLEAST8 "x" | |
96 | #define PRIXLEAST8 "X" | |
97 | #define PRIoFAST8 "o" | |
98 | #define PRIuFAST8 "u" | |
99 | #define PRIxFAST8 "x" | |
100 | #define PRIXFAST8 "X" | |
101 | ||
102 | #define PRIo16 "ho" | |
103 | #define PRIu16 "hu" | |
104 | #define PRIx16 "hx" | |
105 | #define PRIX16 "hX" | |
106 | #define PRIoLEAST16 "ho" | |
107 | #define PRIuLEAST16 "hu" | |
108 | #define PRIxLEAST16 "hx" | |
109 | #define PRIXLEAST16 "hX" | |
110 | #define PRIoFAST16 "ho" | |
111 | #define PRIuFAST16 "hu" | |
112 | #define PRIxFAST16 "hx" | |
113 | #define PRIXFAST16 "hX" | |
114 | ||
115 | #define PRIo32 "I32o" | |
116 | #define PRIu32 "I32u" | |
117 | #define PRIx32 "I32x" | |
118 | #define PRIX32 "I32X" | |
119 | #define PRIoLEAST32 "I32o" | |
120 | #define PRIuLEAST32 "I32u" | |
121 | #define PRIxLEAST32 "I32x" | |
122 | #define PRIXLEAST32 "I32X" | |
123 | #define PRIoFAST32 "I32o" | |
124 | #define PRIuFAST32 "I32u" | |
125 | #define PRIxFAST32 "I32x" | |
126 | #define PRIXFAST32 "I32X" | |
127 | ||
128 | #define PRIo64 "I64o" | |
129 | #define PRIu64 "I64u" | |
130 | #define PRIx64 "I64x" | |
131 | #define PRIX64 "I64X" | |
132 | #define PRIoLEAST64 "I64o" | |
133 | #define PRIuLEAST64 "I64u" | |
134 | #define PRIxLEAST64 "I64x" | |
135 | #define PRIXLEAST64 "I64X" | |
136 | #define PRIoFAST64 "I64o" | |
137 | #define PRIuFAST64 "I64u" | |
138 | #define PRIxFAST64 "I64x" | |
139 | #define PRIXFAST64 "I64X" | |
140 | ||
141 | #define PRIoMAX "I64o" | |
142 | #define PRIuMAX "I64u" | |
143 | #define PRIxMAX "I64x" | |
144 | #define PRIXMAX "I64X" | |
145 | ||
146 | #define PRIoPTR "Io" | |
147 | #define PRIuPTR "Iu" | |
148 | #define PRIxPTR "Ix" | |
149 | #define PRIXPTR "IX" | |
150 | ||
151 | // The fscanf macros for signed integers are: | |
152 | #define SCNd8 "d" | |
153 | #define SCNi8 "i" | |
154 | #define SCNdLEAST8 "d" | |
155 | #define SCNiLEAST8 "i" | |
156 | #define SCNdFAST8 "d" | |
157 | #define SCNiFAST8 "i" | |
158 | ||
159 | #define SCNd16 "hd" | |
160 | #define SCNi16 "hi" | |
161 | #define SCNdLEAST16 "hd" | |
162 | #define SCNiLEAST16 "hi" | |
163 | #define SCNdFAST16 "hd" | |
164 | #define SCNiFAST16 "hi" | |
165 | ||
166 | #define SCNd32 "ld" | |
167 | #define SCNi32 "li" | |
168 | #define SCNdLEAST32 "ld" | |
169 | #define SCNiLEAST32 "li" | |
170 | #define SCNdFAST32 "ld" | |
171 | #define SCNiFAST32 "li" | |
172 | ||
173 | #define SCNd64 "I64d" | |
174 | #define SCNi64 "I64i" | |
175 | #define SCNdLEAST64 "I64d" | |
176 | #define SCNiLEAST64 "I64i" | |
177 | #define SCNdFAST64 "I64d" | |
178 | #define SCNiFAST64 "I64i" | |
179 | ||
180 | #define SCNdMAX "I64d" | |
181 | #define SCNiMAX "I64i" | |
182 | ||
183 | #ifdef _WIN64 // [ | |
184 | # define SCNdPTR "I64d" | |
185 | # define SCNiPTR "I64i" | |
186 | #else // _WIN64 ][ | |
187 | # define SCNdPTR "ld" | |
188 | # define SCNiPTR "li" | |
189 | #endif // _WIN64 ] | |
190 | ||
191 | // The fscanf macros for unsigned integers are: | |
192 | #define SCNo8 "o" | |
193 | #define SCNu8 "u" | |
194 | #define SCNx8 "x" | |
195 | #define SCNX8 "X" | |
196 | #define SCNoLEAST8 "o" | |
197 | #define SCNuLEAST8 "u" | |
198 | #define SCNxLEAST8 "x" | |
199 | #define SCNXLEAST8 "X" | |
200 | #define SCNoFAST8 "o" | |
201 | #define SCNuFAST8 "u" | |
202 | #define SCNxFAST8 "x" | |
203 | #define SCNXFAST8 "X" | |
204 | ||
205 | ||
206 | #define SCNo16 "ho" | |
207 | #define SCNu16 "hu" | |
208 | #define SCNx16 "hx" | |
209 | #define SCNX16 "hX" | |
210 | #define SCNoLEAST16 "ho" | |
211 | #define SCNuLEAST16 "hu" | |
212 | #define SCNxLEAST16 "hx" | |
213 | #define SCNXLEAST16 "hX" | |
214 | #define SCNoFAST16 "ho" | |
215 | #define SCNuFAST16 "hu" | |
216 | #define SCNxFAST16 "hx" | |
217 | #define SCNXFAST16 "hX" | |
218 | ||
219 | #define SCNo32 "lo" | |
220 | #define SCNu32 "lu" | |
221 | #define SCNx32 "lx" | |
222 | #define SCNX32 "lX" | |
223 | #define SCNoLEAST32 "lo" | |
224 | #define SCNuLEAST32 "lu" | |
225 | #define SCNxLEAST32 "lx" | |
226 | #define SCNXLEAST32 "lX" | |
227 | #define SCNoFAST32 "lo" | |
228 | #define SCNuFAST32 "lu" | |
229 | #define SCNxFAST32 "lx" | |
230 | #define SCNXFAST32 "lX" | |
231 | ||
232 | #define SCNo64 "I64o" | |
233 | #define SCNu64 "I64u" | |
234 | #define SCNx64 "I64x" | |
235 | #define SCNX64 "I64X" | |
236 | #define SCNoLEAST64 "I64o" | |
237 | #define SCNuLEAST64 "I64u" | |
238 | #define SCNxLEAST64 "I64x" | |
239 | #define SCNXLEAST64 "I64X" | |
240 | #define SCNoFAST64 "I64o" | |
241 | #define SCNuFAST64 "I64u" | |
242 | #define SCNxFAST64 "I64x" | |
243 | #define SCNXFAST64 "I64X" | |
244 | ||
245 | #define SCNoMAX "I64o" | |
246 | #define SCNuMAX "I64u" | |
247 | #define SCNxMAX "I64x" | |
248 | #define SCNXMAX "I64X" | |
249 | ||
250 | #ifdef _WIN64 // [ | |
251 | # define SCNoPTR "I64o" | |
252 | # define SCNuPTR "I64u" | |
253 | # define SCNxPTR "I64x" | |
254 | # define SCNXPTR "I64X" | |
255 | #else // _WIN64 ][ | |
256 | # define SCNoPTR "lo" | |
257 | # define SCNuPTR "lu" | |
258 | # define SCNxPTR "lx" | |
259 | # define SCNXPTR "lX" | |
260 | #endif // _WIN64 ] | |
261 | ||
262 | // 7.8.2 Functions for greatest-width integer types | |
263 | ||
264 | // 7.8.2.1 The imaxabs function | |
265 | #define imaxabs _abs64 | |
266 | ||
267 | // 7.8.2.2 The imaxdiv function | |
268 | ||
269 | // This is modified version of div() function from Microsoft's div.c found | |
270 | // in %MSVC.NET%\crt\src\div.c | |
271 | #ifdef STATIC_IMAXDIV // [ | |
272 | static | |
273 | #else // STATIC_IMAXDIV ][ | |
274 | _inline | |
275 | #endif // STATIC_IMAXDIV ] | |
276 | imaxdiv_t __cdecl imaxdiv(intmax_t numer, intmax_t denom) | |
277 | { | |
278 | imaxdiv_t result; | |
279 | ||
280 | result.quot = numer / denom; | |
281 | result.rem = numer % denom; | |
282 | ||
283 | if (numer < 0 && result.rem > 0) { | |
284 | // did division wrong; must fix up | |
285 | ++result.quot; | |
286 | result.rem -= denom; | |
287 | } | |
288 | ||
289 | return result; | |
290 | } | |
291 | ||
292 | // 7.8.2.3 The strtoimax and strtoumax functions | |
293 | #define strtoimax _strtoi64 | |
294 | #define strtoumax _strtoui64 | |
295 | ||
296 | // 7.8.2.4 The wcstoimax and wcstoumax functions | |
297 | #define wcstoimax _wcstoi64 | |
298 | #define wcstoumax _wcstoui64 | |
299 | ||
300 | ||
301 | #endif // _MSC_INTTYPES_H_ ] |
0 | // ISO C9x compliant stdint.h for Microsoft Visual Studio | |
1 | // Based on ISO/IEC 9899:TC2 Committee draft (May 6, 2005) WG14/N1124 | |
2 | // | |
3 | // Copyright (c) 2006-2008 Alexander Chemeris | |
4 | // | |
5 | // Redistribution and use in source and binary forms, with or without | |
6 | // modification, are permitted provided that the following conditions are met: | |
7 | // | |
8 | // 1. Redistributions of source code must retain the above copyright notice, | |
9 | // this list of conditions and the following disclaimer. | |
10 | // | |
11 | // 2. Redistributions in binary form must reproduce the above copyright | |
12 | // notice, this list of conditions and the following disclaimer in the | |
13 | // documentation and/or other materials provided with the distribution. | |
14 | // | |
15 | // 3. The name of the author may be used to endorse or promote products | |
16 | // derived from this software without specific prior written permission. | |
17 | // | |
18 | // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED | |
19 | // WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF | |
20 | // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO | |
21 | // EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | |
22 | // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
23 | // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; | |
24 | // OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, | |
25 | // WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR | |
26 | // OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF | |
27 | // ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
28 | // | |
29 | /////////////////////////////////////////////////////////////////////////////// | |
30 | ||
31 | #ifndef _MSC_VER // [ | |
32 | #error "Use this header only with Microsoft Visual C++ compilers!" | |
33 | #endif // _MSC_VER ] | |
34 | ||
35 | #ifndef _MSC_STDINT_H_ // [ | |
36 | #define _MSC_STDINT_H_ | |
37 | ||
38 | #if _MSC_VER > 1000 | |
39 | #pragma once | |
40 | #endif | |
41 | ||
42 | #include <limits.h> | |
43 | ||
44 | // For Visual Studio 6 in C++ mode and for many Visual Studio versions when | |
45 | // compiling for ARM we should wrap <wchar.h> include with 'extern "C++" {}' | |
46 | // or compiler give many errors like this: | |
47 | // error C2733: second C linkage of overloaded function 'wmemchr' not allowed | |
48 | #ifdef __cplusplus | |
49 | extern "C" { | |
50 | #endif | |
51 | # include <wchar.h> | |
52 | #ifdef __cplusplus | |
53 | } | |
54 | #endif | |
55 | ||
56 | // Define _W64 macros to mark types changing their size, like intptr_t. | |
57 | #ifndef _W64 | |
58 | # if !defined(__midl) && (defined(_X86_) || defined(_M_IX86)) && _MSC_VER >= 1300 | |
59 | # define _W64 __w64 | |
60 | # else | |
61 | # define _W64 | |
62 | # endif | |
63 | #endif | |
64 | ||
65 | ||
66 | // 7.18.1 Integer types | |
67 | ||
68 | // 7.18.1.1 Exact-width integer types | |
69 | ||
70 | // Visual Studio 6 and Embedded Visual C++ 4 doesn't | |
71 | // realize that, e.g. char has the same size as __int8 | |
72 | // so we give up on __intX for them. | |
73 | #if (_MSC_VER < 1300) | |
74 | typedef signed char int8_t; | |
75 | typedef signed short int16_t; | |
76 | typedef signed int int32_t; | |
77 | typedef unsigned char uint8_t; | |
78 | typedef unsigned short uint16_t; | |
79 | typedef unsigned int uint32_t; | |
80 | #else | |
81 | typedef signed __int8 int8_t; | |
82 | typedef signed __int16 int16_t; | |
83 | typedef signed __int32 int32_t; | |
84 | typedef unsigned __int8 uint8_t; | |
85 | typedef unsigned __int16 uint16_t; | |
86 | typedef unsigned __int32 uint32_t; | |
87 | #endif | |
88 | typedef signed __int64 int64_t; | |
89 | typedef unsigned __int64 uint64_t; | |
90 | ||
91 | ||
92 | // 7.18.1.2 Minimum-width integer types | |
93 | typedef int8_t int_least8_t; | |
94 | typedef int16_t int_least16_t; | |
95 | typedef int32_t int_least32_t; | |
96 | typedef int64_t int_least64_t; | |
97 | typedef uint8_t uint_least8_t; | |
98 | typedef uint16_t uint_least16_t; | |
99 | typedef uint32_t uint_least32_t; | |
100 | typedef uint64_t uint_least64_t; | |
101 | ||
102 | // 7.18.1.3 Fastest minimum-width integer types | |
103 | typedef int8_t int_fast8_t; | |
104 | typedef int16_t int_fast16_t; | |
105 | typedef int32_t int_fast32_t; | |
106 | typedef int64_t int_fast64_t; | |
107 | typedef uint8_t uint_fast8_t; | |
108 | typedef uint16_t uint_fast16_t; | |
109 | typedef uint32_t uint_fast32_t; | |
110 | typedef uint64_t uint_fast64_t; | |
111 | ||
112 | // 7.18.1.4 Integer types capable of holding object pointers | |
113 | #ifdef _WIN64 // [ | |
114 | typedef signed __int64 intptr_t; | |
115 | typedef unsigned __int64 uintptr_t; | |
116 | #else // _WIN64 ][ | |
117 | typedef _W64 signed int intptr_t; | |
118 | typedef _W64 unsigned int uintptr_t; | |
119 | #endif // _WIN64 ] | |
120 | ||
121 | // 7.18.1.5 Greatest-width integer types | |
122 | typedef int64_t intmax_t; | |
123 | typedef uint64_t uintmax_t; | |
124 | ||
125 | ||
126 | // 7.18.2 Limits of specified-width integer types | |
127 | ||
128 | #if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) // [ See footnote 220 at page 257 and footnote 221 at page 259 | |
129 | ||
130 | // 7.18.2.1 Limits of exact-width integer types | |
131 | #define INT8_MIN ((int8_t)_I8_MIN) | |
132 | #define INT8_MAX _I8_MAX | |
133 | #define INT16_MIN ((int16_t)_I16_MIN) | |
134 | #define INT16_MAX _I16_MAX | |
135 | #define INT32_MIN ((int32_t)_I32_MIN) | |
136 | #define INT32_MAX _I32_MAX | |
137 | #define INT64_MIN ((int64_t)_I64_MIN) | |
138 | #define INT64_MAX _I64_MAX | |
139 | #define UINT8_MAX _UI8_MAX | |
140 | #define UINT16_MAX _UI16_MAX | |
141 | #define UINT32_MAX _UI32_MAX | |
142 | #define UINT64_MAX _UI64_MAX | |
143 | ||
144 | // 7.18.2.2 Limits of minimum-width integer types | |
145 | #define INT_LEAST8_MIN INT8_MIN | |
146 | #define INT_LEAST8_MAX INT8_MAX | |
147 | #define INT_LEAST16_MIN INT16_MIN | |
148 | #define INT_LEAST16_MAX INT16_MAX | |
149 | #define INT_LEAST32_MIN INT32_MIN | |
150 | #define INT_LEAST32_MAX INT32_MAX | |
151 | #define INT_LEAST64_MIN INT64_MIN | |
152 | #define INT_LEAST64_MAX INT64_MAX | |
153 | #define UINT_LEAST8_MAX UINT8_MAX | |
154 | #define UINT_LEAST16_MAX UINT16_MAX | |
155 | #define UINT_LEAST32_MAX UINT32_MAX | |
156 | #define UINT_LEAST64_MAX UINT64_MAX | |
157 | ||
158 | // 7.18.2.3 Limits of fastest minimum-width integer types | |
159 | #define INT_FAST8_MIN INT8_MIN | |
160 | #define INT_FAST8_MAX INT8_MAX | |
161 | #define INT_FAST16_MIN INT16_MIN | |
162 | #define INT_FAST16_MAX INT16_MAX | |
163 | #define INT_FAST32_MIN INT32_MIN | |
164 | #define INT_FAST32_MAX INT32_MAX | |
165 | #define INT_FAST64_MIN INT64_MIN | |
166 | #define INT_FAST64_MAX INT64_MAX | |
167 | #define UINT_FAST8_MAX UINT8_MAX | |
168 | #define UINT_FAST16_MAX UINT16_MAX | |
169 | #define UINT_FAST32_MAX UINT32_MAX | |
170 | #define UINT_FAST64_MAX UINT64_MAX | |
171 | ||
172 | // 7.18.2.4 Limits of integer types capable of holding object pointers | |
173 | #ifdef _WIN64 // [ | |
174 | # define INTPTR_MIN INT64_MIN | |
175 | # define INTPTR_MAX INT64_MAX | |
176 | # define UINTPTR_MAX UINT64_MAX | |
177 | #else // _WIN64 ][ | |
178 | # define INTPTR_MIN INT32_MIN | |
179 | # define INTPTR_MAX INT32_MAX | |
180 | # define UINTPTR_MAX UINT32_MAX | |
181 | #endif // _WIN64 ] | |
182 | ||
183 | // 7.18.2.5 Limits of greatest-width integer types | |
184 | #define INTMAX_MIN INT64_MIN | |
185 | #define INTMAX_MAX INT64_MAX | |
186 | #define UINTMAX_MAX UINT64_MAX | |
187 | ||
188 | // 7.18.3 Limits of other integer types | |
189 | ||
190 | #ifdef _WIN64 // [ | |
191 | # define PTRDIFF_MIN _I64_MIN | |
192 | # define PTRDIFF_MAX _I64_MAX | |
193 | #else // _WIN64 ][ | |
194 | # define PTRDIFF_MIN _I32_MIN | |
195 | # define PTRDIFF_MAX _I32_MAX | |
196 | #endif // _WIN64 ] | |
197 | ||
198 | #define SIG_ATOMIC_MIN INT_MIN | |
199 | #define SIG_ATOMIC_MAX INT_MAX | |
200 | ||
201 | #ifndef SIZE_MAX // [ | |
202 | # ifdef _WIN64 // [ | |
203 | # define SIZE_MAX _UI64_MAX | |
204 | # else // _WIN64 ][ | |
205 | # define SIZE_MAX _UI32_MAX | |
206 | # endif // _WIN64 ] | |
207 | #endif // SIZE_MAX ] | |
208 | ||
209 | // WCHAR_MIN and WCHAR_MAX are also defined in <wchar.h> | |
210 | #ifndef WCHAR_MIN // [ | |
211 | # define WCHAR_MIN 0 | |
212 | #endif // WCHAR_MIN ] | |
213 | #ifndef WCHAR_MAX // [ | |
214 | # define WCHAR_MAX _UI16_MAX | |
215 | #endif // WCHAR_MAX ] | |
216 | ||
217 | #define WINT_MIN 0 | |
218 | #define WINT_MAX _UI16_MAX | |
219 | ||
220 | #endif // __STDC_LIMIT_MACROS ] | |
221 | ||
222 | ||
223 | // 7.18.4 Limits of other integer types | |
224 | ||
225 | #if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) // [ See footnote 224 at page 260 | |
226 | ||
227 | // 7.18.4.1 Macros for minimum-width integer constants | |
228 | ||
229 | #define INT8_C(val) val##i8 | |
230 | #define INT16_C(val) val##i16 | |
231 | #define INT32_C(val) val##i32 | |
232 | #define INT64_C(val) val##i64 | |
233 | ||
234 | #define UINT8_C(val) val##ui8 | |
235 | #define UINT16_C(val) val##ui16 | |
236 | #define UINT32_C(val) val##ui32 | |
237 | #define UINT64_C(val) val##ui64 | |
238 | ||
239 | // 7.18.4.2 Macros for greatest-width integer constants | |
240 | #define INTMAX_C INT64_C | |
241 | #define UINTMAX_C UINT64_C | |
242 | ||
243 | #endif // __STDC_CONSTANT_MACROS ] | |
244 | ||
245 | ||
246 | #endif // _MSC_STDINT_H_ ] |
0 | 0 | /* |
1 | * $Id: pad.c,v 1.13 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: pad.c,v 1.15 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: pad.h,v 1.15 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: pad.h,v 1.17 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: resample.c,v 1.9 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: resample.c,v 1.11 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: resample.h,v 1.12 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: resample.h,v 1.14 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: speck.c,v 1.58 2008/03/22 18:04:23 simakov Exp $ | |
1 | * $Id: speck.c,v 1.62 2010/04/05 05:01:04 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
258 | 259 | break; |
259 | 260 | } |
260 | 261 | } |
262 | ||
263 | /* This code is unreachable, just to be on a safe side */ | |
264 | assert(0); | |
265 | ||
266 | /* Fake return disables 'not all control paths return a value' warning */ | |
267 | return -1; | |
261 | 268 | } |
262 | 269 | |
263 | 270 | local void select_part_type(pixel_set *set) |
1111 | 1118 | threshold >>= 1; |
1112 | 1119 | } |
1113 | 1120 | |
1114 | mem_free: | |
1115 | 1121 | free(bb); |
1116 | 1122 | free(I); |
1117 | 1123 | free_LIS_slots(LIS_slots, channel_size); |
0 | 0 | /* |
1 | * $Id: speck.h,v 1.48 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: speck.h,v 1.50 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
16 | * GNU Lesser General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | LIBRARY epsilon.dll | |
1 | EXPORTS | |
2 | alloc_linked_list | |
3 | alloc_list_node | |
4 | analysis_2D | |
5 | append_list_node | |
6 | bilinear_resample_channel | |
7 | clip_channel | |
8 | convert_RGB_to_YCbCr | |
9 | convert_YCbCr_to_RGB | |
10 | dc_level_shift | |
11 | dc_level_unshift | |
12 | eps_decode_grayscale_block | |
13 | eps_decode_truecolor_block | |
14 | eps_encode_grayscale_block | |
15 | eps_encode_truecolor_block | |
16 | eps_free_2D | |
17 | eps_free_fb_info | |
18 | eps_get_fb_info | |
19 | eps_malloc_2D | |
20 | eps_read_block_header | |
21 | eps_truncate_block | |
22 | eps_xmalloc | |
23 | epsilon_adler32 | |
24 | epsilon_crc32 | |
25 | extend_channel | |
26 | extract_channel | |
27 | flush_bits | |
28 | free_2D | |
29 | free_linked_list | |
30 | free_list_node | |
31 | init_bits | |
32 | insert_after_list_node | |
33 | insert_before_list_node | |
34 | is_power_of_two | |
35 | malloc_2D | |
36 | merge_channels | |
37 | move_list_node | |
38 | number_of_bits | |
39 | prepend_list_node | |
40 | read_bits | |
41 | remove_list_node | |
42 | remove_list_node_link | |
43 | speck_decode | |
44 | speck_encode | |
45 | split_channels | |
46 | stuff_data | |
47 | synthesis_2D | |
48 | unstuff_data | |
49 | write_bits | |
50 | xmalloc |
0 | # $Id: makefile.vc,v 1.1 2010/03/19 22:57:28 simakov Exp $ | |
1 | # | |
2 | # NMAKE Makefile to build EPSILON on Windows | |
3 | # Written by Sandro Furieri | |
4 | # | |
5 | !INCLUDE nmake.opt | |
6 | ||
7 | OBJ_EXT = obj | |
8 | EXT = $(OBJ_EXT) | |
9 | ||
10 | LIBOBJ = lib\bit_io.$(EXT) lib\checksum.$(EXT) \ | |
11 | lib\cobs.$(EXT) lib\color.$(EXT) lib\common.$(EXT) \ | |
12 | lib\dc_level.$(EXT) lib\filter.$(EXT) \ | |
13 | lib\filterbank.$(EXT) lib\libmain.$(EXT) \ | |
14 | lib\list.$(EXT) lib\mem_alloc.$(EXT) \ | |
15 | lib\merge_split.$(EXT) lib\pad.$(EXT) \ | |
16 | lib\resample.$(EXT) lib\speck.$(EXT) | |
17 | EPSILON_DLL = epsilon$(VERSION).dll | |
18 | EPSILON_EXE = epsilon.exe | |
19 | ||
20 | CFLAGS = /nologo -IC:\OSGeo4W\include -I.\lib -I.\lib\msvc \ | |
21 | -I.\src -I..\popt\include \ | |
22 | $(OPTFLAGS) | |
23 | ||
24 | default: all | |
25 | ||
26 | all: epsilon.lib epsilon_i.lib $(EPSILON_EXE) | |
27 | ||
28 | epsilon.lib: $(LIBOBJ) | |
29 | if exist epsilon.lib del epsilon.lib | |
30 | lib /out:epsilon.lib $(LIBOBJ) | |
31 | ||
32 | $(EPSILON_DLL): epsilon_i.lib | |
33 | ||
34 | epsilon_i.lib: $(LIBOBJ) | |
35 | link /debug /dll /def:libepsilon.def /out:$(EPSILON_DLL) \ | |
36 | /implib:epsilon_i.lib $(LIBOBJ) | |
37 | if exist $(EPSILON_DLL).manifest mt -manifest \ | |
38 | $(EPSILON_DLL).manifest -outputresource:$(EPSILON_DLL);2 | |
39 | ||
40 | $(EPSILON_EXE): $(EPSILON_DLL) src\epsilon.obj \ | |
41 | src\cmd_version.obj src\cmd_list_all_fb.obj \ | |
42 | src\cmd_truncate_file.obj src\cmd_decode_file.obj \ | |
43 | src\cmd_encode_file.obj src\misc.obj \ | |
44 | src\psi.obj src\pbm.obj | |
45 | cl src\epsilon.obj $(LIBOBJ) \ | |
46 | src\cmd_version.obj src\cmd_list_all_fb.obj \ | |
47 | src\cmd_truncate_file.obj src\cmd_decode_file.obj \ | |
48 | src\cmd_encode_file.obj src\misc.obj \ | |
49 | src\psi.obj src\pbm.obj \ | |
50 | ..\popt\lib\libpopt.lib | |
51 | /Fe$(EPSILON_EXE) | |
52 | if exist $(EPSILON_EXE).manifest mt -manifest \ | |
53 | $(EPSILON_EXE).manifest -outputresource:$(EPSILON_EXE);1 | |
54 | ||
55 | .c.obj: | |
56 | $(CC) $(CFLAGS) /c $*.c /Fo$@ | |
57 | ||
58 | clean: | |
59 | del *.dll | |
60 | del *.exp | |
61 | del *.manifest | |
62 | del *.lib | |
63 | del lib\*.obj | |
64 | del src\*.obj | |
65 | del *.exe | |
66 | del *.pdb | |
67 | ||
68 | install: all | |
69 | -mkdir $(INSTDIR) | |
70 | -mkdir $(INSTDIR)\bin | |
71 | -mkdir $(INSTDIR)\lib | |
72 | -mkdir $(INSTDIR)\include | |
73 | copy *.dll $(INSTDIR)\bin | |
74 | copy *.lib $(INSTDIR)\lib | |
75 | copy *.exe $(INSTDIR)\bin | |
76 | copy lib\epsilon.h $(INSTDIR)\include | |
77 |
0 | # Makefile.in generated by automake 1.10 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | 3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, |
4 | # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
7 | 7 | # with or without modifications, as long as this notice is preserved. |
66 | 66 | CYGPATH_W = @CYGPATH_W@ |
67 | 67 | DEFS = @DEFS@ |
68 | 68 | DEPDIR = @DEPDIR@ |
69 | DSYMUTIL = @DSYMUTIL@ | |
69 | 70 | ECHO = @ECHO@ |
70 | 71 | ECHO_C = @ECHO_C@ |
71 | 72 | ECHO_N = @ECHO_N@ |
88 | 89 | LTLIBOBJS = @LTLIBOBJS@ |
89 | 90 | MAKEINFO = @MAKEINFO@ |
90 | 91 | MKDIR_P = @MKDIR_P@ |
92 | NMEDIT = @NMEDIT@ | |
91 | 93 | OBJEXT = @OBJEXT@ |
92 | 94 | PACKAGE = @PACKAGE@ |
93 | 95 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
97 | 99 | PACKAGE_VERSION = @PACKAGE_VERSION@ |
98 | 100 | PATH_SEPARATOR = @PATH_SEPARATOR@ |
99 | 101 | RANLIB = @RANLIB@ |
102 | SED = @SED@ | |
100 | 103 | SET_MAKE = @SET_MAKE@ |
101 | 104 | SHELL = @SHELL@ |
102 | 105 | STRIP = @STRIP@ |
0 | 0 | .\" |
1 | .\" $Id: epsilon.1,v 1.9 2008/04/02 20:22:37 simakov Exp $ | |
1 | .\" $Id: epsilon.1,v 1.10 2011/04/25 14:43:19 simakov Exp $ | |
2 | 2 | .\" |
3 | 3 | .TH EPSILON "1" "April 2008" "epsilon" "User Commands" |
4 | 4 | .SH NAME |
196 | 196 | |
197 | 197 | If you omit this option, EPSILON will try \fI.epsilon.nodes\fR |
198 | 198 | in the current and home directory (in that order). |
199 | ||
200 | Note 1: \'user\' field is used by \fBstart\_epsilon\_nodes.pl\fR | |
201 | and \fBstop\_epsilon\_nodes.pl\fR to SSH into the target box. | |
202 | ||
203 | Note 2: \'port\' is EPSILON node's port not SSH's. | |
204 | ||
199 | 205 | .TP |
200 | 206 | \fB\-T\fR, \fB\-\-threads\fR |
201 | 207 | Number of encoding threads. Note: this option is available |
0 | # Directory tree where EPSILON will be installed. | |
1 | INSTDIR=C:\OSGeo4W | |
2 | ||
3 | # Uncomment the first for an optimized build, or the second for debug. | |
4 | OPTFLAGS= /nologo /Ox /fp:precise /W3 /MD /D_CRT_SECURE_NO_WARNINGS | |
5 | #OPTFLAGS= /nologo /Zi /MD /Fdepsilon.pdb | |
6 | ||
7 | # Set the version number for the DLL. Normally we leave this blank since | |
8 | # we want software that is dynamically loading the DLL to have no problem | |
9 | # with version numbers. | |
10 | VERSION= |
9 | 9 | epsilon_LDFLAGS = $(all_libraries) |
10 | 10 | epsilon_LDADD = $(top_builddir)/lib/libepsilon.la |
11 | 11 | noinst_HEADERS = pbm.h options.h cmd_version.h cmd_list_all_fb.h \ |
12 | cmd_encode_file.h psi.h misc.h cmd_decode_file.h cmd_truncate_file.h cmd_start_node.h \ | |
13 | worker_mpi_node.h | |
12 | cmd_encode_file.h psi.h misc.h cmd_decode_file.h cmd_truncate_file.h cmd_start_node.h \ | |
13 | worker_mpi_node.h epsilon_version.h |
0 | # Makefile.in generated by automake 1.10 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | 3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, |
4 | # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
7 | 7 | # with or without modifications, as long as this notice is preserved. |
57 | 57 | epsilon_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ |
58 | 58 | --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(epsilon_LDFLAGS) \ |
59 | 59 | $(LDFLAGS) -o $@ |
60 | DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@ | |
60 | DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) | |
61 | 61 | depcomp = $(SHELL) $(top_srcdir)/depcomp |
62 | 62 | am__depfiles_maybe = depfiles |
63 | 63 | COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ |
94 | 94 | CYGPATH_W = @CYGPATH_W@ |
95 | 95 | DEFS = @DEFS@ |
96 | 96 | DEPDIR = @DEPDIR@ |
97 | DSYMUTIL = @DSYMUTIL@ | |
97 | 98 | ECHO = @ECHO@ |
98 | 99 | ECHO_C = @ECHO_C@ |
99 | 100 | ECHO_N = @ECHO_N@ |
116 | 117 | LTLIBOBJS = @LTLIBOBJS@ |
117 | 118 | MAKEINFO = @MAKEINFO@ |
118 | 119 | MKDIR_P = @MKDIR_P@ |
120 | NMEDIT = @NMEDIT@ | |
119 | 121 | OBJEXT = @OBJEXT@ |
120 | 122 | PACKAGE = @PACKAGE@ |
121 | 123 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
125 | 127 | PACKAGE_VERSION = @PACKAGE_VERSION@ |
126 | 128 | PATH_SEPARATOR = @PATH_SEPARATOR@ |
127 | 129 | RANLIB = @RANLIB@ |
130 | SED = @SED@ | |
128 | 131 | SET_MAKE = @SET_MAKE@ |
129 | 132 | SHELL = @SHELL@ |
130 | 133 | STRIP = @STRIP@ |
192 | 195 | epsilon_LDFLAGS = $(all_libraries) |
193 | 196 | epsilon_LDADD = $(top_builddir)/lib/libepsilon.la |
194 | 197 | noinst_HEADERS = pbm.h options.h cmd_version.h cmd_list_all_fb.h \ |
195 | cmd_encode_file.h psi.h misc.h cmd_decode_file.h cmd_truncate_file.h cmd_start_node.h \ | |
196 | worker_mpi_node.h | |
198 | cmd_encode_file.h psi.h misc.h cmd_decode_file.h cmd_truncate_file.h cmd_start_node.h \ | |
199 | worker_mpi_node.h epsilon_version.h | |
197 | 200 | |
198 | 201 | all: all-am |
199 | 202 | |
237 | 240 | || test -f $$p1 \ |
238 | 241 | ; then \ |
239 | 242 | f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \ |
240 | echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ | |
241 | $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ | |
243 | echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \ | |
244 | $(INSTALL_PROGRAM_ENV) $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \ | |
242 | 245 | else :; fi; \ |
243 | 246 | done |
244 | 247 | |
310 | 313 | unique=`for i in $$list; do \ |
311 | 314 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
312 | 315 | done | \ |
313 | $(AWK) ' { files[$$0] = 1; } \ | |
314 | END { for (i in files) print i; }'`; \ | |
316 | $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ | |
317 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
315 | 318 | mkid -fID $$unique |
316 | 319 | tags: TAGS |
317 | 320 | |
323 | 326 | unique=`for i in $$list; do \ |
324 | 327 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
325 | 328 | done | \ |
326 | $(AWK) ' { files[$$0] = 1; } \ | |
327 | END { for (i in files) print i; }'`; \ | |
329 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | |
330 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
328 | 331 | if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ |
329 | 332 | test -n "$$unique" || unique=$$empty_fix; \ |
330 | 333 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ |
334 | 337 | CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ |
335 | 338 | $(TAGS_FILES) $(LISP) |
336 | 339 | tags=; \ |
337 | here=`pwd`; \ | |
338 | 340 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ |
339 | 341 | unique=`for i in $$list; do \ |
340 | 342 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ |
341 | 343 | done | \ |
342 | $(AWK) ' { files[$$0] = 1; } \ | |
343 | END { for (i in files) print i; }'`; \ | |
344 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | |
345 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
344 | 346 | test -z "$(CTAGS_ARGS)$$tags$$unique" \ |
345 | 347 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ |
346 | 348 | $$tags $$unique |
0 | 0 | /* |
1 | * $Id: cmd_decode_file.c,v 1.33 2008/03/25 19:31:45 simakov Exp $ | |
1 | * $Id: cmd_decode_file.c,v 1.37 2010/03/19 22:57:29 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
61 | 62 | return 0; |
62 | 63 | } |
63 | 64 | |
64 | ext = rindex(file, '.'); | |
65 | ext = strrchr(file, '.'); | |
65 | 66 | |
66 | 67 | if ((ext == NULL) || (strlen(ext) != 4)) { |
67 | 68 | return 0; |
77 | 78 | /* Replace source file extension with .pgm or .ppm */ |
78 | 79 | static void replace_psi_to_pbm(char *file, int pbm_type) |
79 | 80 | { |
80 | char *ext = rindex(file, '.'); | |
81 | char *ext = strrchr(file, '.'); | |
81 | 82 | |
82 | 83 | if (pbm_type == PBM_TYPE_PGM) { |
83 | 84 | snprintf(ext, 5, ".pgm"); |
315 | 316 | |
316 | 317 | if (ctx->pbm->type == PBM_TYPE_PGM) { |
317 | 318 | /* Skip over broken blocks */ |
318 | if ((hdr.gs.W != W) || (hdr.gs.H != H)) { | |
319 | if ((hdr.hdr_data.gs.W != W) || (hdr.hdr_data.gs.H != H)) { | |
319 | 320 | continue; |
320 | 321 | } |
321 | 322 | |
325 | 326 | SEND_BUF_TO_SLAVE(buf, real_buf_size); |
326 | 327 | |
327 | 328 | /* Receive raw data */ |
328 | RECV_BUF_FROM_SLAVE(Y0, hdr.gs.w * hdr.gs.h); | |
329 | transform_1D_to_2D(Y0, Y, hdr.gs.w, hdr.gs.h); | |
329 | RECV_BUF_FROM_SLAVE(Y0, hdr.hdr_data.gs.w * hdr.hdr_data.gs.h); | |
330 | transform_1D_to_2D(Y0, Y, hdr.hdr_data.gs.w, hdr.hdr_data.gs.h); | |
330 | 331 | #else |
331 | 332 | /* All function parameters are checked at the moment, |
332 | 333 | * so everything except EPS_OK is a logical error. */ |
335 | 336 | #endif |
336 | 337 | |
337 | 338 | LOCK(w_lock); |
338 | rc = pbm_write_pgm(ctx->pbm, Y, hdr.gs.x, hdr.gs.y, hdr.gs.w, hdr.gs.h); | |
339 | rc = pbm_write_pgm(ctx->pbm, Y, | |
340 | hdr.hdr_data.gs.x, hdr.hdr_data.gs.y, | |
341 | hdr.hdr_data.gs.w, hdr.hdr_data.gs.h); | |
339 | 342 | UNLOCK(w_lock); |
340 | 343 | |
341 | 344 | if (rc != PBM_OK) { |
358 | 361 | } |
359 | 362 | } else { |
360 | 363 | /* Skip over broken blocks */ |
361 | if ((hdr.tc.W != W) || (hdr.tc.H != H)) { | |
364 | if ((hdr.hdr_data.tc.W != W) || (hdr.hdr_data.tc.H != H)) { | |
362 | 365 | continue; |
363 | 366 | } |
364 | 367 | |
368 | 371 | SEND_BUF_TO_SLAVE(buf, real_buf_size); |
369 | 372 | |
370 | 373 | /* Receive raw data */ |
371 | RECV_BUF_FROM_SLAVE(Y0, hdr.tc.w * hdr.tc.h); | |
372 | transform_1D_to_2D(Y0, R, hdr.tc.w, hdr.tc.h); | |
373 | ||
374 | RECV_BUF_FROM_SLAVE(Y0, hdr.tc.w * hdr.tc.h); | |
375 | transform_1D_to_2D(Y0, G, hdr.tc.w, hdr.tc.h); | |
376 | ||
377 | RECV_BUF_FROM_SLAVE(Y0, hdr.tc.w * hdr.tc.h); | |
378 | transform_1D_to_2D(Y0, B, hdr.tc.w, hdr.tc.h); | |
374 | RECV_BUF_FROM_SLAVE(Y0, hdr.hdr_data.tc.w * hdr.hdr_data.tc.h); | |
375 | transform_1D_to_2D(Y0, R, hdr.hdr_data.tc.w, hdr.hdr_data.tc.h); | |
376 | ||
377 | RECV_BUF_FROM_SLAVE(Y0, hdr.hdr_data.tc.w * hdr.hdr_data.tc.h); | |
378 | transform_1D_to_2D(Y0, G, hdr.hdr_data.tc.w, hdr.hdr_data.tc.h); | |
379 | ||
380 | RECV_BUF_FROM_SLAVE(Y0, hdr.hdr_data.tc.w * hdr.hdr_data.tc.h); | |
381 | transform_1D_to_2D(Y0, B, hdr.hdr_data.tc.w, hdr.hdr_data.tc.h); | |
379 | 382 | #else |
380 | 383 | /* Decode block */ |
381 | 384 | rc = eps_decode_truecolor_block(R, G, B, buf, &hdr); |
397 | 400 | |
398 | 401 | /* Write encoded block */ |
399 | 402 | LOCK(w_lock); |
400 | rc = pbm_write_ppm(ctx->pbm, R, G, B, hdr.tc.x, hdr.tc.y, | |
401 | hdr.tc.w, hdr.tc.h); | |
403 | rc = pbm_write_ppm(ctx->pbm, R, G, B, | |
404 | hdr.hdr_data.tc.x, hdr.hdr_data.tc.y, | |
405 | hdr.hdr_data.tc.w, hdr.hdr_data.tc.h); | |
402 | 406 | UNLOCK(w_lock); |
403 | 407 | |
404 | 408 | if (rc != PBM_OK) { |
423 | 427 | |
424 | 428 | /* Update progress indicator */ |
425 | 429 | if (quiet != OPT_YES) { |
430 | time_t cur_time; | |
426 | 431 | LOCK(p_lock); |
427 | time_t cur_time = time(NULL); | |
432 | cur_time = time(NULL); | |
428 | 433 | |
429 | 434 | snprintf(progress_buf, sizeof(progress_buf), |
430 | 435 | "Decoding file (%d of %d): %s - %.2f%% done in %s", |
431 | 436 | ctx->current + 1, ctx->total, ctx->psi_file, |
432 | 437 | (100.0 * *ctx->done_blocks / ctx->n_blocks), |
433 | format_time(cur_time - ctx->start_time, | |
438 | format_time((int)(cur_time - ctx->start_time), | |
434 | 439 | timer_buf, sizeof(timer_buf))); |
435 | 440 | |
436 | 441 | print_blank_line(*ctx->clear_len); |
534 | 539 | |
535 | 540 | /* Save decoded file in the output_dir if set */ |
536 | 541 | if (output_dir) { |
537 | char *pos = rindex(file, DIR_SEPARATOR); | |
542 | char *pos = strrchr(file, DIR_SEPARATOR); | |
538 | 543 | |
539 | 544 | snprintf(pbm_file, sizeof(pbm_file), "%s%c%s", |
540 | 545 | strcmp(output_dir, "/") ? output_dir : "", DIR_SEPARATOR, |
709 | 714 | MPI_Request dummy; |
710 | 715 | |
711 | 716 | /* Fill context */ |
712 | ctx[i].w = hdr.gs.w; | |
713 | ctx[i].h = hdr.gs.h; | |
714 | ctx[i].x = hdr.gs.x; | |
715 | ctx[i].y = hdr.gs.y; | |
717 | ctx[i].w = hdr.hdr_data.gs.w; | |
718 | ctx[i].h = hdr.hdr_data.gs.h; | |
719 | ctx[i].x = hdr.hdr_data.gs.x; | |
720 | ctx[i].y = hdr.hdr_data.gs.y; | |
716 | 721 | |
717 | 722 | /* Send data to the SLAVE node (async) */ |
718 | 723 | |
743 | 748 | MPI_Request dummy; |
744 | 749 | |
745 | 750 | /* Fill context */ |
746 | ctx[i].w = hdr.tc.w; | |
747 | ctx[i].h = hdr.tc.h; | |
748 | ctx[i].x = hdr.tc.x; | |
749 | ctx[i].y = hdr.tc.y; | |
751 | ctx[i].w = hdr.hdr_data.tc.w; | |
752 | ctx[i].h = hdr.hdr_data.tc.h; | |
753 | ctx[i].x = hdr.hdr_data.tc.x; | |
754 | ctx[i].y = hdr.hdr_data.tc.y; | |
750 | 755 | |
751 | 756 | /* Send data to the SLAVE node (async) */ |
752 | 757 | |
931 | 936 | |
932 | 937 | /* Save decoded file in the output_dir if set */ |
933 | 938 | if (output_dir) { |
934 | char *pos = rindex(file, DIR_SEPARATOR); | |
939 | char *pos = strrchr(file, DIR_SEPARATOR); | |
935 | 940 | |
936 | 941 | snprintf(pbm_file, sizeof(pbm_file), "%s%c%s", |
937 | 942 | strcmp(output_dir, "/") ? output_dir : "", DIR_SEPARATOR, |
1187 | 1192 | |
1188 | 1193 | if (n > 1 && quiet == OPT_NO) { |
1189 | 1194 | printf("Total %d file(s) done in %s\n", |
1190 | n, format_time(total_time, timer_buf, sizeof(timer_buf))); | |
1195 | n, format_time((int)total_time, timer_buf, sizeof(timer_buf))); | |
1191 | 1196 | } |
1192 | 1197 | } |
0 | 0 | /* |
1 | * $Id: cmd_decode_file.h,v 1.15 2007/08/30 20:12:00 simakov Exp $ | |
1 | * $Id: cmd_decode_file.h,v 1.18 2011/04/28 08:57:31 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
26 | 27 | #ifdef __cplusplus |
27 | 28 | extern "C" { |
28 | 29 | #endif |
30 | ||
31 | #include <time.h> | |
29 | 32 | |
30 | 33 | /* Decoding context for multi-theaded environment. |
31 | 34 | * This code is designed to be compatible with |
0 | 0 | /* |
1 | * $Id: cmd_encode_file.c,v 1.63 2008/03/25 19:31:45 simakov Exp $ | |
1 | * $Id: cmd_encode_file.c,v 1.66 2010/03/19 22:57:29 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
62 | 63 | return 0; |
63 | 64 | } |
64 | 65 | |
65 | ext = rindex(file, '.'); | |
66 | ext = strrchr(file, '.'); | |
66 | 67 | |
67 | 68 | if ((ext == NULL) || (strlen(ext) != 4)) { |
68 | 69 | return 0; |
78 | 79 | /* Replace source file extension with .psi */ |
79 | 80 | static void replace_pbm_to_psi(char *file) |
80 | 81 | { |
81 | char *ext = rindex(file, '.'); | |
82 | char *ext = strrchr(file, '.'); | |
82 | 83 | snprintf(ext, 5, ".psi"); |
83 | 84 | } |
84 | 85 | |
142 | 143 | |
143 | 144 | /* Save encoded file in the output_dir if set */ |
144 | 145 | if (output_dir) { |
145 | char *pos = rindex(file, DIR_SEPARATOR); | |
146 | char *pos = strrchr(file, DIR_SEPARATOR); | |
146 | 147 | |
147 | 148 | snprintf(psi_file, sizeof(psi_file), "%s%c%s", |
148 | 149 | strcmp(output_dir, "/") ? output_dir : "", DIR_SEPARATOR, |
530 | 531 | "Encoding file (%d of %d): %s - %.2f%% done in %s", |
531 | 532 | current + 1, total, pbm_file, |
532 | 533 | (100.0 * done_blocks / n_blocks), |
533 | format_time(cur_time - start_time, | |
534 | format_time((int)(cur_time - start_time), | |
534 | 535 | timer_buf, sizeof(timer_buf))); |
535 | 536 | |
536 | 537 | /* Clear old string */ |
877 | 878 | #else |
878 | 879 | /* Encode block */ |
879 | 880 | rc = eps_encode_truecolor_block(R, G, B, W, H, w, h, |
880 | x, y, ctx->resample, buf, &buf_size, ctx->Y_ratio, | |
881 | ctx->Cb_ratio, ctx->Cr_ratio, ctx->filter_id, ctx->mode); | |
881 | x, y, ctx->resample, buf, &buf_size, (int)(ctx->Y_ratio), | |
882 | (int)(ctx->Cb_ratio), (int)(ctx->Cr_ratio), ctx->filter_id, ctx->mode); | |
882 | 883 | |
883 | 884 | /* All function parameters are checked at the moment, |
884 | 885 | * so everything except EPS_OK is a logical error. */ |
913 | 914 | |
914 | 915 | /* Update progress indicator */ |
915 | 916 | if (ctx->quiet != OPT_YES) { |
917 | time_t cur_time; | |
916 | 918 | LOCK(p_lock); |
917 | time_t cur_time = time(NULL); | |
919 | cur_time = time(NULL); | |
918 | 920 | |
919 | 921 | /* Increment counter of processed blocks */ |
920 | 922 | (*ctx->done_blocks)++; |
924 | 926 | "Encoding file (%d of %d): %s - %.2f%% done in %s", |
925 | 927 | ctx->current + 1, ctx->total, ctx->pbm_file, |
926 | 928 | (100.0 * *ctx->done_blocks / ctx->n_blocks), |
927 | format_time(cur_time - ctx->start_time, | |
929 | format_time((int)cur_time - ctx->start_time, | |
928 | 930 | timer_buf, sizeof(timer_buf))); |
929 | 931 | |
930 | 932 | /* Clear old string */ |
1027 | 1029 | |
1028 | 1030 | /* Save encoded file in the output_dir if set */ |
1029 | 1031 | if (output_dir) { |
1030 | char *pos = rindex(file, DIR_SEPARATOR); | |
1032 | char *pos = strrchr(file, DIR_SEPARATOR); | |
1031 | 1033 | |
1032 | 1034 | snprintf(psi_file, sizeof(psi_file), "%s%c%s", |
1033 | 1035 | strcmp(output_dir, "/") ? output_dir : "", DIR_SEPARATOR, |
1192 | 1194 | /* Optimize file */ |
1193 | 1195 | if (two_pass == OPT_YES) { |
1194 | 1196 | off_t original_size = pbm.hdr_size + pbm.data_size; |
1195 | off_t desired_size = original_size / ratio; | |
1197 | off_t desired_size = (off_t)(original_size / ratio); | |
1196 | 1198 | off_t encoded_size; |
1197 | 1199 | double truncation_ratio; |
1198 | 1200 |
0 | 0 | /* |
1 | * $Id: cmd_encode_file.h,v 1.30 2007/08/30 20:12:00 simakov Exp $ | |
1 | * $Id: cmd_encode_file.h,v 1.33 2011/04/28 08:57:32 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
42 | 43 | |
43 | 44 | #include <pbm.h> |
44 | 45 | #include <psi.h> |
46 | #include <time.h> | |
45 | 47 | |
46 | 48 | #define ORTHOGONAL 0 |
47 | 49 | #define BIORTHOGONAL 1 |
0 | 0 | /* |
1 | * $Id: cmd_list_all_fb.c,v 1.6 2007/05/20 21:19:36 simakov Exp $ | |
1 | * $Id: cmd_list_all_fb.c,v 1.8 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: cmd_list_all_fb.h,v 1.5 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: cmd_list_all_fb.h,v 1.7 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: cmd_start_node.c,v 1.19 2007/08/26 18:59:39 simakov Exp $ | |
1 | * $Id: cmd_start_node.c,v 1.23 2010/03/19 22:57:29 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
40 | 41 | #include <stdio.h> |
41 | 42 | #include <ctype.h> |
42 | 43 | #include <time.h> |
43 | #include <unistd.h> | |
44 | 44 | #include <string.h> |
45 | 45 | #include <strings.h> |
46 | 46 | #include <fcntl.h> |
668 | 668 | assert(rc == EPS_OK); |
669 | 669 | |
670 | 670 | /* Transform Y channel */ |
671 | transform_2D_to_1D(Y, Y0, hdr.gs.w, hdr.gs.h); | |
671 | transform_2D_to_1D(Y, Y0, hdr.hdr_data.gs.w, hdr.hdr_data.gs.h); | |
672 | 672 | TIMER_STOP(d_time_start, d_time_stop, decode_time); |
673 | 673 | |
674 | 674 | /* Send decoded data to the MASTER */ |
675 | 675 | TIMER_START(w_time_start); |
676 | SEND_BUF_TO_MASTER(Y0, hdr.gs.w * hdr.gs.h); | |
676 | SEND_BUF_TO_MASTER(Y0, hdr.hdr_data.gs.w * hdr.hdr_data.gs.h); | |
677 | 677 | TIMER_STOP(w_time_start, w_time_stop, write_time); |
678 | 678 | |
679 | 679 | /* Syslog statistics */ |
680 | 680 | syslog(LOG_INFO, |
681 | 681 | "[DECODE GS] W=%d H=%d w=%d h=%d x=%d y=%d rtime=%.3f " |
682 | 682 | "wtime=%.3f dtime=%.3f bpb=%d m=%s f=%s ", |
683 | hdr.gs.W, hdr.gs.H, hdr.gs.w, hdr.gs.h, hdr.gs.x, hdr.gs.y, | |
684 | read_time, write_time, decode_time, hdr.hdr_size + hdr.data_size, | |
685 | hdr.gs.mode == EPS_MODE_NORMAL ? "normal" : "otlpf", | |
686 | hdr.gs.fb_id); | |
683 | hdr.hdr_data.gs.W, hdr.hdr_data.gs.H, | |
684 | hdr.hdr_data.gs.w, hdr.hdr_data.gs.h, | |
685 | hdr.hdr_data.gs.x, hdr.hdr_data.gs.y, | |
686 | read_time, write_time, decode_time, | |
687 | hdr.hdr_size + hdr.data_size, | |
688 | hdr.hdr_data.gs.mode == EPS_MODE_NORMAL ? "normal" : "otlpf", | |
689 | hdr.hdr_data.gs.fb_id); | |
687 | 690 | } |
688 | 691 | } |
689 | 692 | |
748 | 751 | assert(rc == EPS_OK || rc == EPS_FORMAT_ERROR); |
749 | 752 | |
750 | 753 | /* Transform R channel */ |
751 | transform_2D_to_1D(R, Y0, hdr.tc.w, hdr.tc.h); | |
754 | transform_2D_to_1D(R, Y0, hdr.hdr_data.tc.w, hdr.hdr_data.tc.h); | |
752 | 755 | TIMER_STOP(d_time_start, d_time_stop, decode_time); |
753 | 756 | |
754 | 757 | /* Send R channel to the MASTER */ |
755 | 758 | TIMER_START(w_time_start); |
756 | SEND_BUF_TO_MASTER(Y0, hdr.tc.w * hdr.tc.h); | |
759 | SEND_BUF_TO_MASTER(Y0, hdr.hdr_data.tc.w * hdr.hdr_data.tc.h); | |
757 | 760 | TIMER_STOP(w_time_start, w_time_stop, write_time); |
758 | 761 | |
759 | 762 | /* Transform G channel */ |
760 | 763 | TIMER_START(d_time_start); |
761 | transform_2D_to_1D(G, Y0, hdr.tc.w, hdr.tc.h); | |
764 | transform_2D_to_1D(G, Y0, hdr.hdr_data.tc.w, hdr.hdr_data.tc.h); | |
762 | 765 | TIMER_STOP(d_time_start, d_time_stop, decode_time); |
763 | 766 | |
764 | 767 | /* Send G channel to the MASTER */ |
765 | 768 | TIMER_START(w_time_start); |
766 | SEND_BUF_TO_MASTER(Y0, hdr.tc.w * hdr.tc.h); | |
769 | SEND_BUF_TO_MASTER(Y0, hdr.hdr_data.tc.w * hdr.hdr_data.tc.h); | |
767 | 770 | TIMER_STOP(w_time_start, w_time_stop, write_time); |
768 | 771 | |
769 | 772 | /* Transform B channel */ |
770 | 773 | TIMER_START(d_time_start); |
771 | transform_2D_to_1D(B, Y0, hdr.tc.w, hdr.tc.h); | |
774 | transform_2D_to_1D(B, Y0, hdr.hdr_data.tc.w, hdr.hdr_data.tc.h); | |
772 | 775 | TIMER_STOP(d_time_start, d_time_stop, decode_time); |
773 | 776 | |
774 | 777 | /* Send B channel to the MASTER */ |
775 | 778 | TIMER_START(w_time_start); |
776 | SEND_BUF_TO_MASTER(Y0, hdr.tc.w * hdr.tc.h); | |
779 | SEND_BUF_TO_MASTER(Y0, hdr.hdr_data.tc.w * hdr.hdr_data.tc.h); | |
777 | 780 | TIMER_STOP(w_time_start, w_time_stop, write_time); |
778 | 781 | |
779 | 782 | /* Syslog statistics */ |
780 | 783 | syslog(LOG_INFO, |
781 | 784 | "[DECODE TC] W=%d H=%d w=%d h=%d x=%d y=%d rtime=%.3f " |
782 | 785 | "wtime=%.3f dtime=%.3f bpb=%d m=%s f=%s resample=%s", |
783 | hdr.tc.W, hdr.tc.H, hdr.tc.w, hdr.tc.h, hdr.tc.x, hdr.tc.y, | |
784 | read_time, write_time, decode_time, hdr.hdr_size + hdr.data_size, | |
785 | hdr.tc.mode == EPS_MODE_NORMAL ? "normal" : "otlpf", | |
786 | hdr.tc.fb_id, hdr.tc.resample == EPS_RESAMPLE_444 ? "no" : "yes"); | |
786 | hdr.hdr_data.tc.W, hdr.hdr_data.tc.H, | |
787 | hdr.hdr_data.tc.w, hdr.hdr_data.tc.h, | |
788 | hdr.hdr_data.tc.x, hdr.hdr_data.tc.y, | |
789 | read_time, write_time, decode_time, | |
790 | hdr.hdr_size + hdr.data_size, | |
791 | hdr.hdr_data.tc.mode == EPS_MODE_NORMAL ? "normal" : "otlpf", | |
792 | hdr.hdr_data.tc.fb_id, | |
793 | hdr.hdr_data.tc.resample == EPS_RESAMPLE_444 ? "no" : "yes"); | |
787 | 794 | } |
788 | 795 | } |
789 | 796 |
0 | 0 | /* |
1 | * $Id: cmd_start_node.h,v 1.16 2007/08/26 18:59:39 simakov Exp $ | |
1 | * $Id: cmd_start_node.h,v 1.18 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: cmd_truncate_file.c,v 1.3 2007/06/02 19:55:22 simakov Exp $ | |
1 | * $Id: cmd_truncate_file.c,v 1.6 2010/03/19 22:57:29 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
16 | * GNU Lesser General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
28 | 29 | #include <stdlib.h> |
29 | 30 | #include <string.h> |
30 | 31 | #include <assert.h> |
31 | #include <unistd.h> | |
32 | 32 | #include <time.h> |
33 | 33 | #include <options.h> |
34 | 34 | #include <misc.h> |
40 | 40 | /* Replace source file extension with .tmp */ |
41 | 41 | static void replace_psi_to_tmp(char *file) |
42 | 42 | { |
43 | char *ext = rindex(file, '.'); | |
43 | char *ext = strrchr(file, '.'); | |
44 | 44 | snprintf(ext, 5, ".tmp"); |
45 | 45 | } |
46 | 46 | |
88 | 88 | |
89 | 89 | /* Save truncated file in the output_dir if set */ |
90 | 90 | if (output_dir) { |
91 | char *pos = rindex(file, DIR_SEPARATOR); | |
91 | char *pos = strrchr(file, DIR_SEPARATOR); | |
92 | 92 | |
93 | 93 | snprintf(psi_out_file, sizeof(psi_out_file), "%s%c%s", |
94 | 94 | strcmp(output_dir, "/") ? output_dir : "", DIR_SEPARATOR, |
243 | 243 | } |
244 | 244 | } |
245 | 245 | |
246 | truncate_size = real_buf_size / ratio; | |
246 | truncate_size = (int)(real_buf_size / ratio); | |
247 | 247 | |
248 | 248 | if (truncate_size < MAX(EPS_MIN_GRAYSCALE_BUF, EPS_MIN_TRUECOLOR_BUF)) { |
249 | 249 | truncate_size = MAX(EPS_MIN_GRAYSCALE_BUF, EPS_MIN_TRUECOLOR_BUF); |
279 | 279 | snprintf(progress_buf, sizeof(progress_buf), |
280 | 280 | "%s file (%d of %d): %s - %.2f%% done in %s", msg, |
281 | 281 | current + 1, total, psi_in_file, (100.0 * done_blocks / n_blocks), |
282 | format_time(cur_time - start_time, timer_buf, sizeof(timer_buf))); | |
282 | format_time((int)(cur_time - start_time), timer_buf, sizeof(timer_buf))); | |
283 | 283 | |
284 | 284 | print_blank_line(clear_len); |
285 | 285 | clear_len = strlen(progress_buf); |
351 | 351 | |
352 | 352 | if (n > 1 && quiet == OPT_NO) { |
353 | 353 | printf("Total %d file(s) done in %s\n", |
354 | n, format_time(total_time, timer_buf, sizeof(timer_buf))); | |
354 | n, format_time((int)total_time, timer_buf, sizeof(timer_buf))); | |
355 | 355 | } |
356 | 356 | } |
0 | 0 | /* |
1 | * $Id: cmd_truncate_file.h,v 1.2 2007/06/02 19:55:22 simakov Exp $ | |
1 | * $Id: cmd_truncate_file.h,v 1.4 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: cmd_version.c,v 1.9 2007/06/07 20:45:23 simakov Exp $ | |
1 | * $Id: cmd_version.c,v 1.12 2010/04/05 05:01:04 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
22 | 23 | |
23 | 24 | #ifdef HAVE_CONFIG_H |
24 | 25 | # include <config.h> |
26 | #endif | |
27 | ||
28 | /* Some platforms have no autotools support. On such platforms | |
29 | * config.h header mentioned above is not available and VERSION | |
30 | * is not defined. To work this around, EPSILON's VERSION is | |
31 | * duplicated in separate header. */ | |
32 | #ifndef VERSION | |
33 | # include <epsilon_version.h> | |
25 | 34 | #endif |
26 | 35 | |
27 | 36 | #include <stdio.h> |
35 | 44 | { |
36 | 45 | printf("This is EPSILON version %s\n\n", VERSION); |
37 | 46 | |
38 | printf("Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info>\n"); | |
47 | printf("Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info>\n"); | |
39 | 48 | printf("Home page: http://epsilon-project.sourceforge.net\n\n"); |
40 | 49 | |
41 | printf("This program is free software; you can redistribute it and/or modify\n"); | |
42 | printf("it under the terms of the GNU General Public License.\n"); | |
50 | printf("EPSILON is free software: you can redistribute it and/or modify\n"); | |
51 | printf("it under the terms of the GNU Lesser General Public License as published by\n"); | |
52 | printf("the Free Software Foundation, either version 3 of the License, or\n"); | |
53 | printf("(at your option) any later version.\n"); | |
43 | 54 | } |
0 | 0 | /* |
1 | * $Id: cmd_version.h,v 1.6 2007/05/20 13:19:12 simakov Exp $ | |
1 | * $Id: cmd_version.h,v 1.8 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: epsilon.c,v 1.197 2008/03/25 19:31:45 simakov Exp $ | |
1 | * $Id: epsilon.c,v 1.201 2010/04/05 05:01:04 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
16 | * GNU Lesser General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
27 | 28 | #include <stdio.h> |
28 | 29 | #include <stdlib.h> |
29 | 30 | #include <string.h> |
30 | #include <strings.h> | |
31 | 31 | #include <assert.h> |
32 | 32 | #include <popt.h> |
33 | 33 | |
202 | 202 | poptContext opt_ctx; |
203 | 203 | |
204 | 204 | /* Parse options */ |
205 | opt_ctx = poptGetContext(PACKAGE, argc, (const char **) argv, | |
205 | opt_ctx = poptGetContext("epsilon", argc, (const char **) argv, | |
206 | 206 | options, 0); |
207 | 207 | |
208 | 208 | poptSetOtherOptionHelp(opt_ctx, "COMMAND [OPTIONS] FILES..."); |
0 | #define VERSION "0.9.1" |
0 | 0 | /* |
1 | * $Id: misc.c,v 1.9 2008/03/25 19:31:45 simakov Exp $ | |
1 | * $Id: misc.c,v 1.11 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: misc.h,v 1.19 2008/03/25 19:31:45 simakov Exp $ | |
1 | * $Id: misc.h,v 1.22 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
25 | 26 | |
26 | 27 | #ifdef __cplusplus |
27 | 28 | extern "C" { |
29 | #endif | |
30 | ||
31 | /* Use _snprintf instead of snprintf under MSVC compiler */ | |
32 | #if defined(_WIN32) && !defined(__MINGW32__) | |
33 | #define snprintf _snprintf | |
28 | 34 | #endif |
29 | 35 | |
30 | 36 | #ifdef HAVE_CONFIG_H |
0 | 0 | /* |
1 | * $Id: options.h,v 1.24 2008/04/02 20:22:37 simakov Exp $ | |
1 | * $Id: options.h,v 1.26 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: pbm.c,v 1.16 2008/03/25 19:31:45 simakov Exp $ | |
1 | * $Id: pbm.c,v 1.19 2010/03/19 22:57:29 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
28 | 29 | #include <stdlib.h> |
29 | 30 | #include <sys/types.h> |
30 | 31 | #include <sys/stat.h> |
31 | #include <unistd.h> | |
32 | 32 | #include <string.h> |
33 | 33 | #include <pbm.h> |
34 | 34 | #include <misc.h> |
0 | 0 | /* |
1 | * $Id: pbm.h,v 1.13 2007/06/02 19:55:22 simakov Exp $ | |
1 | * $Id: pbm.h,v 1.16 2010/03/19 22:57:29 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
28 | 29 | #endif |
29 | 30 | |
30 | 31 | #include <stdio.h> |
32 | ||
33 | #ifdef _MSC_VER | |
34 | #define off_t long | |
35 | #define ftello ftell | |
36 | #define fseeko fseek | |
37 | #endif | |
31 | 38 | |
32 | 39 | /* PBM file type */ |
33 | 40 | #define PBM_TYPE_PGM 0 |
0 | 0 | /* |
1 | * $Id: psi.c,v 1.10 2007/06/17 20:32:29 simakov Exp $ | |
1 | * $Id: psi.c,v 1.13 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
16 | * GNU Lesser General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
182 | 183 | |
183 | 184 | /* Image width */ |
184 | 185 | if (W == -1) { |
185 | W = type == EPS_GRAYSCALE_BLOCK ? hdr.gs.W : hdr.tc.W; | |
186 | } else { | |
187 | if (type == EPS_GRAYSCALE_BLOCK ? W != hdr.gs.W : W != hdr.tc.W) { | |
186 | W = type == EPS_GRAYSCALE_BLOCK ? hdr.hdr_data.gs.W : hdr.hdr_data.tc.W; | |
187 | } else { | |
188 | if (type == EPS_GRAYSCALE_BLOCK ? W != hdr.hdr_data.gs.W : W != hdr.hdr_data.tc.W) { | |
188 | 189 | rewind(psi->f); |
189 | 190 | free(buf); |
190 | 191 | return PSI_GUESS_ERROR; |
193 | 194 | |
194 | 195 | /* Image height */ |
195 | 196 | if (H == -1) { |
196 | H = type == EPS_GRAYSCALE_BLOCK ? hdr.gs.H : hdr.tc.H; | |
197 | } else { | |
198 | if (type == EPS_GRAYSCALE_BLOCK ? H != hdr.gs.H : H != hdr.tc.H) { | |
197 | H = type == EPS_GRAYSCALE_BLOCK ? hdr.hdr_data.gs.H : hdr.hdr_data.tc.H; | |
198 | } else { | |
199 | if (type == EPS_GRAYSCALE_BLOCK ? H != hdr.hdr_data.gs.H : H != hdr.hdr_data.tc.H) { | |
199 | 200 | rewind(psi->f); |
200 | 201 | free(buf); |
201 | 202 | return PSI_GUESS_ERROR; |
204 | 205 | |
205 | 206 | /* Maximal block width and height */ |
206 | 207 | if (type == EPS_GRAYSCALE_BLOCK) { |
207 | if (hdr.gs.w > w) w = hdr.gs.w; | |
208 | if (hdr.gs.h > h) h = hdr.gs.h; | |
209 | } else { | |
210 | if (hdr.tc.w > w) w = hdr.tc.w; | |
211 | if (hdr.tc.h > h) h = hdr.tc.h; | |
208 | if (hdr.hdr_data.gs.w > w) w = hdr.hdr_data.gs.w; | |
209 | if (hdr.hdr_data.gs.h > h) h = hdr.hdr_data.gs.h; | |
210 | } else { | |
211 | if (hdr.hdr_data.tc.w > w) w = hdr.hdr_data.tc.w; | |
212 | if (hdr.hdr_data.tc.h > h) h = hdr.hdr_data.tc.h; | |
212 | 213 | } |
213 | 214 | } |
214 | 215 |
0 | 0 | /* |
1 | * $Id: psi.h,v 1.7 2007/05/22 18:01:00 simakov Exp $ | |
1 | * $Id: psi.h,v 1.9 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | /* |
1 | * $Id: worker_mpi_node.c,v 1.14 2008/04/04 19:17:26 simakov Exp $ | |
1 | * $Id: worker_mpi_node.c,v 1.17 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | * | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
15 | * | |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
16 | * GNU Lesser General Public License for more details. | |
17 | * | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
303 | 304 | assert(eps_read_block_header(data, data_size, &hdr) == EPS_OK); |
304 | 305 | |
305 | 306 | /* Image buffers */ |
306 | Y = (unsigned char **) eps_malloc_2D(hdr.gs.w, hdr.gs.h, sizeof(unsigned char)); | |
307 | Y0 = (unsigned char *) xmalloc(hdr.gs.w * hdr.gs.h); | |
307 | Y = (unsigned char **) eps_malloc_2D(hdr.hdr_data.gs.w, hdr.hdr_data.gs.h, | |
308 | sizeof(unsigned char)); | |
309 | Y0 = (unsigned char *) xmalloc(hdr.hdr_data.gs.w * hdr.hdr_data.gs.h); | |
308 | 310 | |
309 | 311 | /* Decode data */ |
310 | 312 | assert(eps_decode_grayscale_block(Y, data, &hdr) == EPS_OK); |
311 | 313 | |
312 | 314 | /* Transform data */ |
313 | transform_2D_to_1D(Y, Y0, hdr.gs.w, hdr.gs.h); | |
315 | transform_2D_to_1D(Y, Y0, hdr.hdr_data.gs.w, hdr.hdr_data.gs.h); | |
314 | 316 | |
315 | 317 | /* Send decoded data to the MASTER node */ |
316 | assert(MPI_Send(Y0, hdr.gs.w * hdr.gs.h, MPI_UNSIGNED_CHAR, | |
317 | 0, 0, MPI_COMM_WORLD) == MPI_SUCCESS); | |
318 | assert(MPI_Send(Y0, hdr.hdr_data.gs.w * hdr.hdr_data.gs.h, | |
319 | MPI_UNSIGNED_CHAR, 0, 0, MPI_COMM_WORLD) == MPI_SUCCESS); | |
318 | 320 | |
319 | 321 | /* Free memory buffers */ |
320 | 322 | free(Y0); |
321 | eps_free_2D((void **) Y, hdr.gs.w, hdr.gs.h); | |
323 | eps_free_2D((void **) Y, hdr.hdr_data.gs.w, hdr.hdr_data.gs.h); | |
322 | 324 | free(data); |
323 | 325 | } |
324 | 326 | |
349 | 351 | assert(eps_read_block_header(data, data_size, &hdr) == EPS_OK); |
350 | 352 | |
351 | 353 | /* Image buffers */ |
352 | R = (unsigned char **) eps_malloc_2D(hdr.tc.w, hdr.tc.h, sizeof(unsigned char)); | |
353 | G = (unsigned char **) eps_malloc_2D(hdr.tc.w, hdr.tc.h, sizeof(unsigned char)); | |
354 | B = (unsigned char **) eps_malloc_2D(hdr.tc.w, hdr.tc.h, sizeof(unsigned char)); | |
355 | ||
356 | Y0 = (unsigned char *) xmalloc(hdr.tc.w * hdr.tc.h); | |
354 | R = (unsigned char **) eps_malloc_2D(hdr.hdr_data.tc.w, hdr.hdr_data.tc.h, | |
355 | sizeof(unsigned char)); | |
356 | G = (unsigned char **) eps_malloc_2D(hdr.hdr_data.tc.w, hdr.hdr_data.tc.h, | |
357 | sizeof(unsigned char)); | |
358 | B = (unsigned char **) eps_malloc_2D(hdr.hdr_data.tc.w, hdr.hdr_data.tc.h, | |
359 | sizeof(unsigned char)); | |
360 | ||
361 | Y0 = (unsigned char *) xmalloc(hdr.hdr_data.tc.w * hdr.hdr_data.tc.h); | |
357 | 362 | |
358 | 363 | /* Decode data */ |
359 | 364 | assert(eps_decode_truecolor_block(R, G, B, data, &hdr) == EPS_OK); |
360 | 365 | |
361 | 366 | /* Transform and send decoded data to the MASTER node */ |
362 | transform_2D_to_1D(R, Y0, hdr.tc.w, hdr.tc.h); | |
363 | assert(MPI_Send(Y0, hdr.tc.w * hdr.tc.h, MPI_UNSIGNED_CHAR, | |
364 | 0, 0, MPI_COMM_WORLD) == MPI_SUCCESS); | |
365 | ||
366 | transform_2D_to_1D(G, Y0, hdr.tc.w, hdr.tc.h); | |
367 | assert(MPI_Send(Y0, hdr.tc.w * hdr.tc.h, MPI_UNSIGNED_CHAR, | |
368 | 0, 0, MPI_COMM_WORLD) == MPI_SUCCESS); | |
369 | ||
370 | transform_2D_to_1D(B, Y0, hdr.tc.w, hdr.tc.h); | |
371 | assert(MPI_Send(Y0, hdr.tc.w * hdr.tc.h, MPI_UNSIGNED_CHAR, | |
372 | 0, 0, MPI_COMM_WORLD) == MPI_SUCCESS); | |
367 | transform_2D_to_1D(R, Y0, hdr.hdr_data.tc.w, hdr.hdr_data.tc.h); | |
368 | assert(MPI_Send(Y0, hdr.hdr_data.tc.w * hdr.hdr_data.tc.h, | |
369 | MPI_UNSIGNED_CHAR, 0, 0, MPI_COMM_WORLD) == MPI_SUCCESS); | |
370 | ||
371 | transform_2D_to_1D(G, Y0, hdr.hdr_data.tc.w, hdr.hdr_data.tc.h); | |
372 | assert(MPI_Send(Y0, hdr.hdr_data.tc.w * hdr.hdr_data.tc.h, | |
373 | MPI_UNSIGNED_CHAR, 0, 0, MPI_COMM_WORLD) == MPI_SUCCESS); | |
374 | ||
375 | transform_2D_to_1D(B, Y0, hdr.hdr_data.tc.w, hdr.hdr_data.tc.h); | |
376 | assert(MPI_Send(Y0, hdr.hdr_data.tc.w * hdr.hdr_data.tc.h, | |
377 | MPI_UNSIGNED_CHAR, 0, 0, MPI_COMM_WORLD) == MPI_SUCCESS); | |
373 | 378 | |
374 | 379 | /* Free memory buffers */ |
375 | 380 | free(Y0); |
376 | 381 | |
377 | eps_free_2D((void **) R, hdr.tc.w, hdr.tc.h); | |
378 | eps_free_2D((void **) G, hdr.tc.w, hdr.tc.h); | |
379 | eps_free_2D((void **) B, hdr.tc.w, hdr.tc.h); | |
382 | eps_free_2D((void **) R, hdr.hdr_data.tc.w, hdr.hdr_data.tc.h); | |
383 | eps_free_2D((void **) G, hdr.hdr_data.tc.w, hdr.hdr_data.tc.h); | |
384 | eps_free_2D((void **) B, hdr.hdr_data.tc.w, hdr.hdr_data.tc.h); | |
380 | 385 | |
381 | 386 | free(data); |
382 | 387 | } |
0 | 0 | /* |
1 | * $Id: worker_mpi_node.h,v 1.13 2007/08/30 20:26:05 simakov Exp $ | |
1 | * $Id: worker_mpi_node.h,v 1.15 2010/02/05 23:50:22 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | SUBDIRS = build images lib t |
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | # @configure_input@ | |
2 | ||
3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | # This Makefile.in is free software; the Free Software Foundation | |
6 | # gives unlimited permission to copy and/or distribute it, | |
7 | # with or without modifications, as long as this notice is preserved. | |
8 | ||
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | |
11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | |
12 | # PARTICULAR PURPOSE. | |
13 | ||
14 | @SET_MAKE@ | |
15 | VPATH = @srcdir@ | |
16 | pkgdatadir = $(datadir)/@PACKAGE@ | |
17 | pkglibdir = $(libdir)/@PACKAGE@ | |
18 | pkgincludedir = $(includedir)/@PACKAGE@ | |
19 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | |
20 | install_sh_DATA = $(install_sh) -c -m 644 | |
21 | install_sh_PROGRAM = $(install_sh) -c | |
22 | install_sh_SCRIPT = $(install_sh) -c | |
23 | INSTALL_HEADER = $(INSTALL_DATA) | |
24 | transform = $(program_transform_name) | |
25 | NORMAL_INSTALL = : | |
26 | PRE_INSTALL = : | |
27 | POST_INSTALL = : | |
28 | NORMAL_UNINSTALL = : | |
29 | PRE_UNINSTALL = : | |
30 | POST_UNINSTALL = : | |
31 | build_triplet = @build@ | |
32 | host_triplet = @host@ | |
33 | subdir = tests | |
34 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
35 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
36 | am__aclocal_m4_deps = $(top_srcdir)/configure.in | |
37 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | |
38 | $(ACLOCAL_M4) | |
39 | mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs | |
40 | CONFIG_HEADER = $(top_builddir)/config.h | |
41 | CONFIG_CLEAN_FILES = | |
42 | SOURCES = | |
43 | DIST_SOURCES = | |
44 | RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ | |
45 | html-recursive info-recursive install-data-recursive \ | |
46 | install-dvi-recursive install-exec-recursive \ | |
47 | install-html-recursive install-info-recursive \ | |
48 | install-pdf-recursive install-ps-recursive install-recursive \ | |
49 | installcheck-recursive installdirs-recursive pdf-recursive \ | |
50 | ps-recursive uninstall-recursive | |
51 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ | |
52 | distclean-recursive maintainer-clean-recursive | |
53 | ETAGS = etags | |
54 | CTAGS = ctags | |
55 | DIST_SUBDIRS = $(SUBDIRS) | |
56 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
57 | ACLOCAL = @ACLOCAL@ | |
58 | AMTAR = @AMTAR@ | |
59 | AR = @AR@ | |
60 | AUTOCONF = @AUTOCONF@ | |
61 | AUTOHEADER = @AUTOHEADER@ | |
62 | AUTOMAKE = @AUTOMAKE@ | |
63 | AWK = @AWK@ | |
64 | CC = @CC@ | |
65 | CCDEPMODE = @CCDEPMODE@ | |
66 | CFLAGS = @CFLAGS@ | |
67 | CPP = @CPP@ | |
68 | CPPFLAGS = @CPPFLAGS@ | |
69 | CXX = @CXX@ | |
70 | CXXCPP = @CXXCPP@ | |
71 | CXXDEPMODE = @CXXDEPMODE@ | |
72 | CXXFLAGS = @CXXFLAGS@ | |
73 | CYGPATH_W = @CYGPATH_W@ | |
74 | DEFS = @DEFS@ | |
75 | DEPDIR = @DEPDIR@ | |
76 | DSYMUTIL = @DSYMUTIL@ | |
77 | ECHO = @ECHO@ | |
78 | ECHO_C = @ECHO_C@ | |
79 | ECHO_N = @ECHO_N@ | |
80 | ECHO_T = @ECHO_T@ | |
81 | EGREP = @EGREP@ | |
82 | EXEEXT = @EXEEXT@ | |
83 | F77 = @F77@ | |
84 | FFLAGS = @FFLAGS@ | |
85 | GREP = @GREP@ | |
86 | INSTALL = @INSTALL@ | |
87 | INSTALL_DATA = @INSTALL_DATA@ | |
88 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | |
89 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | |
90 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | |
91 | LDFLAGS = @LDFLAGS@ | |
92 | LIBOBJS = @LIBOBJS@ | |
93 | LIBS = @LIBS@ | |
94 | LIBTOOL = @LIBTOOL@ | |
95 | LN_S = @LN_S@ | |
96 | LTLIBOBJS = @LTLIBOBJS@ | |
97 | MAKEINFO = @MAKEINFO@ | |
98 | MKDIR_P = @MKDIR_P@ | |
99 | NMEDIT = @NMEDIT@ | |
100 | OBJEXT = @OBJEXT@ | |
101 | PACKAGE = @PACKAGE@ | |
102 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | |
103 | PACKAGE_NAME = @PACKAGE_NAME@ | |
104 | PACKAGE_STRING = @PACKAGE_STRING@ | |
105 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | |
106 | PACKAGE_VERSION = @PACKAGE_VERSION@ | |
107 | PATH_SEPARATOR = @PATH_SEPARATOR@ | |
108 | RANLIB = @RANLIB@ | |
109 | SED = @SED@ | |
110 | SET_MAKE = @SET_MAKE@ | |
111 | SHELL = @SHELL@ | |
112 | STRIP = @STRIP@ | |
113 | VERSION = @VERSION@ | |
114 | abs_builddir = @abs_builddir@ | |
115 | abs_srcdir = @abs_srcdir@ | |
116 | abs_top_builddir = @abs_top_builddir@ | |
117 | abs_top_srcdir = @abs_top_srcdir@ | |
118 | ac_ct_CC = @ac_ct_CC@ | |
119 | ac_ct_CXX = @ac_ct_CXX@ | |
120 | ac_ct_F77 = @ac_ct_F77@ | |
121 | am__include = @am__include@ | |
122 | am__leading_dot = @am__leading_dot@ | |
123 | am__quote = @am__quote@ | |
124 | am__tar = @am__tar@ | |
125 | am__untar = @am__untar@ | |
126 | bindir = @bindir@ | |
127 | build = @build@ | |
128 | build_alias = @build_alias@ | |
129 | build_cpu = @build_cpu@ | |
130 | build_os = @build_os@ | |
131 | build_vendor = @build_vendor@ | |
132 | builddir = @builddir@ | |
133 | datadir = @datadir@ | |
134 | datarootdir = @datarootdir@ | |
135 | docdir = @docdir@ | |
136 | dvidir = @dvidir@ | |
137 | exec_prefix = @exec_prefix@ | |
138 | host = @host@ | |
139 | host_alias = @host_alias@ | |
140 | host_cpu = @host_cpu@ | |
141 | host_os = @host_os@ | |
142 | host_vendor = @host_vendor@ | |
143 | htmldir = @htmldir@ | |
144 | includedir = @includedir@ | |
145 | infodir = @infodir@ | |
146 | install_sh = @install_sh@ | |
147 | libdir = @libdir@ | |
148 | libexecdir = @libexecdir@ | |
149 | localedir = @localedir@ | |
150 | localstatedir = @localstatedir@ | |
151 | mandir = @mandir@ | |
152 | mkdir_p = @mkdir_p@ | |
153 | oldincludedir = @oldincludedir@ | |
154 | pdfdir = @pdfdir@ | |
155 | prefix = @prefix@ | |
156 | program_transform_name = @program_transform_name@ | |
157 | psdir = @psdir@ | |
158 | sbindir = @sbindir@ | |
159 | sharedstatedir = @sharedstatedir@ | |
160 | srcdir = @srcdir@ | |
161 | sysconfdir = @sysconfdir@ | |
162 | target_alias = @target_alias@ | |
163 | top_builddir = @top_builddir@ | |
164 | top_srcdir = @top_srcdir@ | |
165 | SUBDIRS = build images lib t | |
166 | all: all-recursive | |
167 | ||
168 | .SUFFIXES: | |
169 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | |
170 | @for dep in $?; do \ | |
171 | case '$(am__configure_deps)' in \ | |
172 | *$$dep*) \ | |
173 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ | |
174 | && exit 0; \ | |
175 | exit 1;; \ | |
176 | esac; \ | |
177 | done; \ | |
178 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/Makefile'; \ | |
179 | cd $(top_srcdir) && \ | |
180 | $(AUTOMAKE) --gnu tests/Makefile | |
181 | .PRECIOUS: Makefile | |
182 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | |
183 | @case '$?' in \ | |
184 | *config.status*) \ | |
185 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | |
186 | *) \ | |
187 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
188 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
189 | esac; | |
190 | ||
191 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | |
192 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
193 | ||
194 | $(top_srcdir)/configure: $(am__configure_deps) | |
195 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
196 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | |
197 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
198 | ||
199 | mostlyclean-libtool: | |
200 | -rm -f *.lo | |
201 | ||
202 | clean-libtool: | |
203 | -rm -rf .libs _libs | |
204 | ||
205 | # This directory's subdirectories are mostly independent; you can cd | |
206 | # into them and run `make' without going through this Makefile. | |
207 | # To change the values of `make' variables: instead of editing Makefiles, | |
208 | # (1) if the variable is set in `config.status', edit `config.status' | |
209 | # (which will cause the Makefiles to be regenerated when you run `make'); | |
210 | # (2) otherwise, pass the desired values on the `make' command line. | |
211 | $(RECURSIVE_TARGETS): | |
212 | @failcom='exit 1'; \ | |
213 | for f in x $$MAKEFLAGS; do \ | |
214 | case $$f in \ | |
215 | *=* | --[!k]*);; \ | |
216 | *k*) failcom='fail=yes';; \ | |
217 | esac; \ | |
218 | done; \ | |
219 | dot_seen=no; \ | |
220 | target=`echo $@ | sed s/-recursive//`; \ | |
221 | list='$(SUBDIRS)'; for subdir in $$list; do \ | |
222 | echo "Making $$target in $$subdir"; \ | |
223 | if test "$$subdir" = "."; then \ | |
224 | dot_seen=yes; \ | |
225 | local_target="$$target-am"; \ | |
226 | else \ | |
227 | local_target="$$target"; \ | |
228 | fi; \ | |
229 | (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | |
230 | || eval $$failcom; \ | |
231 | done; \ | |
232 | if test "$$dot_seen" = "no"; then \ | |
233 | $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ | |
234 | fi; test -z "$$fail" | |
235 | ||
236 | $(RECURSIVE_CLEAN_TARGETS): | |
237 | @failcom='exit 1'; \ | |
238 | for f in x $$MAKEFLAGS; do \ | |
239 | case $$f in \ | |
240 | *=* | --[!k]*);; \ | |
241 | *k*) failcom='fail=yes';; \ | |
242 | esac; \ | |
243 | done; \ | |
244 | dot_seen=no; \ | |
245 | case "$@" in \ | |
246 | distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ | |
247 | *) list='$(SUBDIRS)' ;; \ | |
248 | esac; \ | |
249 | rev=''; for subdir in $$list; do \ | |
250 | if test "$$subdir" = "."; then :; else \ | |
251 | rev="$$subdir $$rev"; \ | |
252 | fi; \ | |
253 | done; \ | |
254 | rev="$$rev ."; \ | |
255 | target=`echo $@ | sed s/-recursive//`; \ | |
256 | for subdir in $$rev; do \ | |
257 | echo "Making $$target in $$subdir"; \ | |
258 | if test "$$subdir" = "."; then \ | |
259 | local_target="$$target-am"; \ | |
260 | else \ | |
261 | local_target="$$target"; \ | |
262 | fi; \ | |
263 | (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | |
264 | || eval $$failcom; \ | |
265 | done && test -z "$$fail" | |
266 | tags-recursive: | |
267 | list='$(SUBDIRS)'; for subdir in $$list; do \ | |
268 | test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ | |
269 | done | |
270 | ctags-recursive: | |
271 | list='$(SUBDIRS)'; for subdir in $$list; do \ | |
272 | test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ | |
273 | done | |
274 | ||
275 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | |
276 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | |
277 | unique=`for i in $$list; do \ | |
278 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | |
279 | done | \ | |
280 | $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ | |
281 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
282 | mkid -fID $$unique | |
283 | tags: TAGS | |
284 | ||
285 | TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | |
286 | $(TAGS_FILES) $(LISP) | |
287 | tags=; \ | |
288 | here=`pwd`; \ | |
289 | if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ | |
290 | include_option=--etags-include; \ | |
291 | empty_fix=.; \ | |
292 | else \ | |
293 | include_option=--include; \ | |
294 | empty_fix=; \ | |
295 | fi; \ | |
296 | list='$(SUBDIRS)'; for subdir in $$list; do \ | |
297 | if test "$$subdir" = .; then :; else \ | |
298 | test ! -f $$subdir/TAGS || \ | |
299 | tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ | |
300 | fi; \ | |
301 | done; \ | |
302 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | |
303 | unique=`for i in $$list; do \ | |
304 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | |
305 | done | \ | |
306 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | |
307 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
308 | if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ | |
309 | test -n "$$unique" || unique=$$empty_fix; \ | |
310 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | |
311 | $$tags $$unique; \ | |
312 | fi | |
313 | ctags: CTAGS | |
314 | CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | |
315 | $(TAGS_FILES) $(LISP) | |
316 | tags=; \ | |
317 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | |
318 | unique=`for i in $$list; do \ | |
319 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | |
320 | done | \ | |
321 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | |
322 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
323 | test -z "$(CTAGS_ARGS)$$tags$$unique" \ | |
324 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | |
325 | $$tags $$unique | |
326 | ||
327 | GTAGS: | |
328 | here=`$(am__cd) $(top_builddir) && pwd` \ | |
329 | && cd $(top_srcdir) \ | |
330 | && gtags -i $(GTAGS_ARGS) $$here | |
331 | ||
332 | distclean-tags: | |
333 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
334 | ||
335 | distdir: $(DISTFILES) | |
336 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
337 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
338 | list='$(DISTFILES)'; \ | |
339 | dist_files=`for file in $$list; do echo $$file; done | \ | |
340 | sed -e "s|^$$srcdirstrip/||;t" \ | |
341 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
342 | case $$dist_files in \ | |
343 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
344 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
345 | sort -u` ;; \ | |
346 | esac; \ | |
347 | for file in $$dist_files; do \ | |
348 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
349 | if test -d $$d/$$file; then \ | |
350 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
351 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
352 | cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ | |
353 | fi; \ | |
354 | cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ | |
355 | else \ | |
356 | test -f $(distdir)/$$file \ | |
357 | || cp -p $$d/$$file $(distdir)/$$file \ | |
358 | || exit 1; \ | |
359 | fi; \ | |
360 | done | |
361 | list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
362 | if test "$$subdir" = .; then :; else \ | |
363 | test -d "$(distdir)/$$subdir" \ | |
364 | || $(MKDIR_P) "$(distdir)/$$subdir" \ | |
365 | || exit 1; \ | |
366 | distdir=`$(am__cd) $(distdir) && pwd`; \ | |
367 | top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ | |
368 | (cd $$subdir && \ | |
369 | $(MAKE) $(AM_MAKEFLAGS) \ | |
370 | top_distdir="$$top_distdir" \ | |
371 | distdir="$$distdir/$$subdir" \ | |
372 | am__remove_distdir=: \ | |
373 | am__skip_length_check=: \ | |
374 | distdir) \ | |
375 | || exit 1; \ | |
376 | fi; \ | |
377 | done | |
378 | check-am: all-am | |
379 | check: check-recursive | |
380 | all-am: Makefile | |
381 | installdirs: installdirs-recursive | |
382 | installdirs-am: | |
383 | install: install-recursive | |
384 | install-exec: install-exec-recursive | |
385 | install-data: install-data-recursive | |
386 | uninstall: uninstall-recursive | |
387 | ||
388 | install-am: all-am | |
389 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | |
390 | ||
391 | installcheck: installcheck-recursive | |
392 | install-strip: | |
393 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | |
394 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | |
395 | `test -z '$(STRIP)' || \ | |
396 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | |
397 | mostlyclean-generic: | |
398 | ||
399 | clean-generic: | |
400 | ||
401 | distclean-generic: | |
402 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | |
403 | ||
404 | maintainer-clean-generic: | |
405 | @echo "This command is intended for maintainers to use" | |
406 | @echo "it deletes files that may require special tools to rebuild." | |
407 | clean: clean-recursive | |
408 | ||
409 | clean-am: clean-generic clean-libtool mostlyclean-am | |
410 | ||
411 | distclean: distclean-recursive | |
412 | -rm -f Makefile | |
413 | distclean-am: clean-am distclean-generic distclean-tags | |
414 | ||
415 | dvi: dvi-recursive | |
416 | ||
417 | dvi-am: | |
418 | ||
419 | html: html-recursive | |
420 | ||
421 | info: info-recursive | |
422 | ||
423 | info-am: | |
424 | ||
425 | install-data-am: | |
426 | ||
427 | install-dvi: install-dvi-recursive | |
428 | ||
429 | install-exec-am: | |
430 | ||
431 | install-html: install-html-recursive | |
432 | ||
433 | install-info: install-info-recursive | |
434 | ||
435 | install-man: | |
436 | ||
437 | install-pdf: install-pdf-recursive | |
438 | ||
439 | install-ps: install-ps-recursive | |
440 | ||
441 | installcheck-am: | |
442 | ||
443 | maintainer-clean: maintainer-clean-recursive | |
444 | -rm -f Makefile | |
445 | maintainer-clean-am: distclean-am maintainer-clean-generic | |
446 | ||
447 | mostlyclean: mostlyclean-recursive | |
448 | ||
449 | mostlyclean-am: mostlyclean-generic mostlyclean-libtool | |
450 | ||
451 | pdf: pdf-recursive | |
452 | ||
453 | pdf-am: | |
454 | ||
455 | ps: ps-recursive | |
456 | ||
457 | ps-am: | |
458 | ||
459 | uninstall-am: | |
460 | ||
461 | .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ | |
462 | install-strip | |
463 | ||
464 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ | |
465 | all all-am check check-am clean clean-generic clean-libtool \ | |
466 | ctags ctags-recursive distclean distclean-generic \ | |
467 | distclean-libtool distclean-tags distdir dvi dvi-am html \ | |
468 | html-am info info-am install install-am install-data \ | |
469 | install-data-am install-dvi install-dvi-am install-exec \ | |
470 | install-exec-am install-html install-html-am install-info \ | |
471 | install-info-am install-man install-pdf install-pdf-am \ | |
472 | install-ps install-ps-am install-strip installcheck \ | |
473 | installcheck-am installdirs installdirs-am maintainer-clean \ | |
474 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
475 | mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ | |
476 | uninstall uninstall-am | |
477 | ||
478 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
479 | # Otherwise a system limit (for SysV at least) may be exceeded. | |
480 | .NOEXPORT: |
0 | INCLUDES = | |
1 | METASOURCES = AUTO | |
2 | dist_noinst_SCRIPTS = generic.sh ptheads.sh cluster.sh mpi.sh | |
3 | dist_noinst_DATA = common.inc epsilon.nodes machines.MPICH |
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | # @configure_input@ | |
2 | ||
3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | # This Makefile.in is free software; the Free Software Foundation | |
6 | # gives unlimited permission to copy and/or distribute it, | |
7 | # with or without modifications, as long as this notice is preserved. | |
8 | ||
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | |
11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | |
12 | # PARTICULAR PURPOSE. | |
13 | ||
14 | @SET_MAKE@ | |
15 | ||
16 | ||
17 | VPATH = @srcdir@ | |
18 | pkgdatadir = $(datadir)/@PACKAGE@ | |
19 | pkglibdir = $(libdir)/@PACKAGE@ | |
20 | pkgincludedir = $(includedir)/@PACKAGE@ | |
21 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | |
22 | install_sh_DATA = $(install_sh) -c -m 644 | |
23 | install_sh_PROGRAM = $(install_sh) -c | |
24 | install_sh_SCRIPT = $(install_sh) -c | |
25 | INSTALL_HEADER = $(INSTALL_DATA) | |
26 | transform = $(program_transform_name) | |
27 | NORMAL_INSTALL = : | |
28 | PRE_INSTALL = : | |
29 | POST_INSTALL = : | |
30 | NORMAL_UNINSTALL = : | |
31 | PRE_UNINSTALL = : | |
32 | POST_UNINSTALL = : | |
33 | build_triplet = @build@ | |
34 | host_triplet = @host@ | |
35 | subdir = tests/build | |
36 | DIST_COMMON = $(dist_noinst_DATA) $(dist_noinst_SCRIPTS) \ | |
37 | $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
38 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
39 | am__aclocal_m4_deps = $(top_srcdir)/configure.in | |
40 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | |
41 | $(ACLOCAL_M4) | |
42 | mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs | |
43 | CONFIG_HEADER = $(top_builddir)/config.h | |
44 | CONFIG_CLEAN_FILES = | |
45 | SCRIPTS = $(dist_noinst_SCRIPTS) | |
46 | SOURCES = | |
47 | DIST_SOURCES = | |
48 | DATA = $(dist_noinst_DATA) | |
49 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
50 | ACLOCAL = @ACLOCAL@ | |
51 | AMTAR = @AMTAR@ | |
52 | AR = @AR@ | |
53 | AUTOCONF = @AUTOCONF@ | |
54 | AUTOHEADER = @AUTOHEADER@ | |
55 | AUTOMAKE = @AUTOMAKE@ | |
56 | AWK = @AWK@ | |
57 | CC = @CC@ | |
58 | CCDEPMODE = @CCDEPMODE@ | |
59 | CFLAGS = @CFLAGS@ | |
60 | CPP = @CPP@ | |
61 | CPPFLAGS = @CPPFLAGS@ | |
62 | CXX = @CXX@ | |
63 | CXXCPP = @CXXCPP@ | |
64 | CXXDEPMODE = @CXXDEPMODE@ | |
65 | CXXFLAGS = @CXXFLAGS@ | |
66 | CYGPATH_W = @CYGPATH_W@ | |
67 | DEFS = @DEFS@ | |
68 | DEPDIR = @DEPDIR@ | |
69 | DSYMUTIL = @DSYMUTIL@ | |
70 | ECHO = @ECHO@ | |
71 | ECHO_C = @ECHO_C@ | |
72 | ECHO_N = @ECHO_N@ | |
73 | ECHO_T = @ECHO_T@ | |
74 | EGREP = @EGREP@ | |
75 | EXEEXT = @EXEEXT@ | |
76 | F77 = @F77@ | |
77 | FFLAGS = @FFLAGS@ | |
78 | GREP = @GREP@ | |
79 | INSTALL = @INSTALL@ | |
80 | INSTALL_DATA = @INSTALL_DATA@ | |
81 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | |
82 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | |
83 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | |
84 | LDFLAGS = @LDFLAGS@ | |
85 | LIBOBJS = @LIBOBJS@ | |
86 | LIBS = @LIBS@ | |
87 | LIBTOOL = @LIBTOOL@ | |
88 | LN_S = @LN_S@ | |
89 | LTLIBOBJS = @LTLIBOBJS@ | |
90 | MAKEINFO = @MAKEINFO@ | |
91 | MKDIR_P = @MKDIR_P@ | |
92 | NMEDIT = @NMEDIT@ | |
93 | OBJEXT = @OBJEXT@ | |
94 | PACKAGE = @PACKAGE@ | |
95 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | |
96 | PACKAGE_NAME = @PACKAGE_NAME@ | |
97 | PACKAGE_STRING = @PACKAGE_STRING@ | |
98 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | |
99 | PACKAGE_VERSION = @PACKAGE_VERSION@ | |
100 | PATH_SEPARATOR = @PATH_SEPARATOR@ | |
101 | RANLIB = @RANLIB@ | |
102 | SED = @SED@ | |
103 | SET_MAKE = @SET_MAKE@ | |
104 | SHELL = @SHELL@ | |
105 | STRIP = @STRIP@ | |
106 | VERSION = @VERSION@ | |
107 | abs_builddir = @abs_builddir@ | |
108 | abs_srcdir = @abs_srcdir@ | |
109 | abs_top_builddir = @abs_top_builddir@ | |
110 | abs_top_srcdir = @abs_top_srcdir@ | |
111 | ac_ct_CC = @ac_ct_CC@ | |
112 | ac_ct_CXX = @ac_ct_CXX@ | |
113 | ac_ct_F77 = @ac_ct_F77@ | |
114 | am__include = @am__include@ | |
115 | am__leading_dot = @am__leading_dot@ | |
116 | am__quote = @am__quote@ | |
117 | am__tar = @am__tar@ | |
118 | am__untar = @am__untar@ | |
119 | bindir = @bindir@ | |
120 | build = @build@ | |
121 | build_alias = @build_alias@ | |
122 | build_cpu = @build_cpu@ | |
123 | build_os = @build_os@ | |
124 | build_vendor = @build_vendor@ | |
125 | builddir = @builddir@ | |
126 | datadir = @datadir@ | |
127 | datarootdir = @datarootdir@ | |
128 | docdir = @docdir@ | |
129 | dvidir = @dvidir@ | |
130 | exec_prefix = @exec_prefix@ | |
131 | host = @host@ | |
132 | host_alias = @host_alias@ | |
133 | host_cpu = @host_cpu@ | |
134 | host_os = @host_os@ | |
135 | host_vendor = @host_vendor@ | |
136 | htmldir = @htmldir@ | |
137 | includedir = @includedir@ | |
138 | infodir = @infodir@ | |
139 | install_sh = @install_sh@ | |
140 | libdir = @libdir@ | |
141 | libexecdir = @libexecdir@ | |
142 | localedir = @localedir@ | |
143 | localstatedir = @localstatedir@ | |
144 | mandir = @mandir@ | |
145 | mkdir_p = @mkdir_p@ | |
146 | oldincludedir = @oldincludedir@ | |
147 | pdfdir = @pdfdir@ | |
148 | prefix = @prefix@ | |
149 | program_transform_name = @program_transform_name@ | |
150 | psdir = @psdir@ | |
151 | sbindir = @sbindir@ | |
152 | sharedstatedir = @sharedstatedir@ | |
153 | srcdir = @srcdir@ | |
154 | sysconfdir = @sysconfdir@ | |
155 | target_alias = @target_alias@ | |
156 | top_builddir = @top_builddir@ | |
157 | top_srcdir = @top_srcdir@ | |
158 | INCLUDES = | |
159 | METASOURCES = AUTO | |
160 | dist_noinst_SCRIPTS = generic.sh ptheads.sh cluster.sh mpi.sh | |
161 | dist_noinst_DATA = common.inc epsilon.nodes machines.MPICH | |
162 | all: all-am | |
163 | ||
164 | .SUFFIXES: | |
165 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | |
166 | @for dep in $?; do \ | |
167 | case '$(am__configure_deps)' in \ | |
168 | *$$dep*) \ | |
169 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ | |
170 | && exit 0; \ | |
171 | exit 1;; \ | |
172 | esac; \ | |
173 | done; \ | |
174 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/build/Makefile'; \ | |
175 | cd $(top_srcdir) && \ | |
176 | $(AUTOMAKE) --gnu tests/build/Makefile | |
177 | .PRECIOUS: Makefile | |
178 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | |
179 | @case '$?' in \ | |
180 | *config.status*) \ | |
181 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | |
182 | *) \ | |
183 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
184 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
185 | esac; | |
186 | ||
187 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | |
188 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
189 | ||
190 | $(top_srcdir)/configure: $(am__configure_deps) | |
191 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
192 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | |
193 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
194 | ||
195 | mostlyclean-libtool: | |
196 | -rm -f *.lo | |
197 | ||
198 | clean-libtool: | |
199 | -rm -rf .libs _libs | |
200 | tags: TAGS | |
201 | TAGS: | |
202 | ||
203 | ctags: CTAGS | |
204 | CTAGS: | |
205 | ||
206 | ||
207 | distdir: $(DISTFILES) | |
208 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
209 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
210 | list='$(DISTFILES)'; \ | |
211 | dist_files=`for file in $$list; do echo $$file; done | \ | |
212 | sed -e "s|^$$srcdirstrip/||;t" \ | |
213 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
214 | case $$dist_files in \ | |
215 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
216 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
217 | sort -u` ;; \ | |
218 | esac; \ | |
219 | for file in $$dist_files; do \ | |
220 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
221 | if test -d $$d/$$file; then \ | |
222 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
223 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
224 | cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ | |
225 | fi; \ | |
226 | cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ | |
227 | else \ | |
228 | test -f $(distdir)/$$file \ | |
229 | || cp -p $$d/$$file $(distdir)/$$file \ | |
230 | || exit 1; \ | |
231 | fi; \ | |
232 | done | |
233 | check-am: all-am | |
234 | check: check-am | |
235 | all-am: Makefile $(SCRIPTS) $(DATA) | |
236 | installdirs: | |
237 | install: install-am | |
238 | install-exec: install-exec-am | |
239 | install-data: install-data-am | |
240 | uninstall: uninstall-am | |
241 | ||
242 | install-am: all-am | |
243 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | |
244 | ||
245 | installcheck: installcheck-am | |
246 | install-strip: | |
247 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | |
248 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | |
249 | `test -z '$(STRIP)' || \ | |
250 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | |
251 | mostlyclean-generic: | |
252 | ||
253 | clean-generic: | |
254 | ||
255 | distclean-generic: | |
256 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | |
257 | ||
258 | maintainer-clean-generic: | |
259 | @echo "This command is intended for maintainers to use" | |
260 | @echo "it deletes files that may require special tools to rebuild." | |
261 | clean: clean-am | |
262 | ||
263 | clean-am: clean-generic clean-libtool mostlyclean-am | |
264 | ||
265 | distclean: distclean-am | |
266 | -rm -f Makefile | |
267 | distclean-am: clean-am distclean-generic | |
268 | ||
269 | dvi: dvi-am | |
270 | ||
271 | dvi-am: | |
272 | ||
273 | html: html-am | |
274 | ||
275 | info: info-am | |
276 | ||
277 | info-am: | |
278 | ||
279 | install-data-am: | |
280 | ||
281 | install-dvi: install-dvi-am | |
282 | ||
283 | install-exec-am: | |
284 | ||
285 | install-html: install-html-am | |
286 | ||
287 | install-info: install-info-am | |
288 | ||
289 | install-man: | |
290 | ||
291 | install-pdf: install-pdf-am | |
292 | ||
293 | install-ps: install-ps-am | |
294 | ||
295 | installcheck-am: | |
296 | ||
297 | maintainer-clean: maintainer-clean-am | |
298 | -rm -f Makefile | |
299 | maintainer-clean-am: distclean-am maintainer-clean-generic | |
300 | ||
301 | mostlyclean: mostlyclean-am | |
302 | ||
303 | mostlyclean-am: mostlyclean-generic mostlyclean-libtool | |
304 | ||
305 | pdf: pdf-am | |
306 | ||
307 | pdf-am: | |
308 | ||
309 | ps: ps-am | |
310 | ||
311 | ps-am: | |
312 | ||
313 | uninstall-am: | |
314 | ||
315 | .MAKE: install-am install-strip | |
316 | ||
317 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
318 | distclean distclean-generic distclean-libtool distdir dvi \ | |
319 | dvi-am html html-am info info-am install install-am \ | |
320 | install-data install-data-am install-dvi install-dvi-am \ | |
321 | install-exec install-exec-am install-html install-html-am \ | |
322 | install-info install-info-am install-man install-pdf \ | |
323 | install-pdf-am install-ps install-ps-am install-strip \ | |
324 | installcheck installcheck-am installdirs maintainer-clean \ | |
325 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
326 | mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am | |
327 | ||
328 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
329 | # Otherwise a system limit (for SysV at least) may be exceeded. | |
330 | .NOEXPORT: |
0 | #!/bin/sh | |
1 | ||
2 | # | |
3 | # $Id: cluster.sh,v 1.2 2011/04/26 09:59:31 simakov Exp $ | |
4 | # | |
5 | # Build cluster EPSILON version (self-made TCP based solution) | |
6 | # Please read README.cluster before! | |
7 | # | |
8 | ||
9 | SCRIPT_DIR=$(dirname $0) | |
10 | source "$SCRIPT_DIR/common.inc" | |
11 | ||
12 | BUILD_TAG='cluster' | |
13 | ||
14 | check_EPSILON_TEST_BUILD_ROOT_environment_variable | |
15 | BUILD_ROOT="$EPSILON_TEST_BUILD_ROOT/$BUILD_TAG" | |
16 | ||
17 | echo "Removing previous build: '$BUILD_ROOT'..." | |
18 | rm -frv "$BUILD_ROOT" | |
19 | ||
20 | echo "Stopping running EPSILON nodes..." | |
21 | killall epsilon | |
22 | ||
23 | echo "Building '$BUILD_TAG' EPSILON version..." | |
24 | pushd "$EPSILON_SOURCE_ROOT" | |
25 | trap 'popd' EXIT | |
26 | make distclean | |
27 | ./configure --prefix "$EPSILON_TEST_BUILD_ROOT/$BUILD_TAG" \ | |
28 | --enable-pthreads \ | |
29 | --enable-cluster \ | |
30 | && make && make install | |
31 | ||
32 | check_ldconfig $BUILD_TAG | |
33 | ||
34 | for port in `cat "./tests/build/epsilon.nodes" | perl -ne 'print "$1\n" if /\:(\d+)\^/'`; do | |
35 | echo "Starting EPSILON node on port $port..." | |
36 | "$EPSILON_TEST_BUILD_ROOT/$BUILD_TAG/bin/epsilon" --start-node --port $port | |
37 | done | |
38 | ||
39 | if ! ps aux | grep [e]psilon; then | |
40 | echo "WARNING: EPSILON node hasn't been started. Please check syslog messages (daemon facility)" | |
41 | fi |
0 | #!/bin/sh | |
1 | ||
2 | # | |
3 | # $Id: common.inc,v 1.2 2011/04/25 14:13:15 simakov Exp $ | |
4 | # | |
5 | # Common snippets for EPSILON build scripts | |
6 | # | |
7 | ||
8 | SCRIPT_DIR=$(dirname $0) | |
9 | EPSILON_SOURCE_ROOT="$SCRIPT_DIR/../.." | |
10 | ||
11 | function check_EPSILON_TEST_BUILD_ROOT_environment_variable() { | |
12 | if [ -z "$EPSILON_TEST_BUILD_ROOT" ]; then | |
13 | echo "Please set EPSILON_TEST_BUILD_ROOT environment variable" | |
14 | exit 1 | |
15 | fi | |
16 | ||
17 | if ! [ -d "$EPSILON_TEST_BUILD_ROOT" ]; then | |
18 | echo "No such directory: $EPSILON_TEST_BUILD_ROOT" | |
19 | exit 1 | |
20 | fi | |
21 | } | |
22 | ||
23 | function check_ldconfig() { | |
24 | echo "Updating so libs cache using ldconfig..." | |
25 | sudo ldconfig | |
26 | ||
27 | if ! sudo ldconfig -p | fgrep "$EPSILON_TEST_BUILD_ROOT/$1/lib/libepsilon"; then | |
28 | echo "WARNING: please add '$EPSILON_TEST_BUILD_ROOT/$1/lib' to your /etc/ld.so.conf and run 'sudo ldconfig'" | |
29 | fi | |
30 | } |
0 | #!/bin/sh | |
1 | ||
2 | # | |
3 | # $Id: generic.sh,v 1.1 2011/04/25 13:49:09 simakov Exp $ | |
4 | # | |
5 | # Build generic EPSILON version | |
6 | # | |
7 | ||
8 | SCRIPT_DIR=$(dirname $0) | |
9 | source "$SCRIPT_DIR/common.inc" | |
10 | ||
11 | BUILD_TAG='generic' | |
12 | ||
13 | check_EPSILON_TEST_BUILD_ROOT_environment_variable | |
14 | BUILD_ROOT="$EPSILON_TEST_BUILD_ROOT/$BUILD_TAG" | |
15 | ||
16 | echo "Removing previous build: '$BUILD_ROOT'..." | |
17 | rm -frv "$BUILD_ROOT" | |
18 | ||
19 | echo "Building '$BUILD_TAG' EPSILON version..." | |
20 | pushd "$EPSILON_SOURCE_ROOT" | |
21 | trap 'popd' EXIT | |
22 | make distclean | |
23 | ./configure --prefix "$EPSILON_TEST_BUILD_ROOT/$BUILD_TAG" && make && make install | |
24 | ||
25 | check_ldconfig $BUILD_TAG |
0 | # Sample machines file for testing MPI version of EPSILON | |
1 | # <cluster node's hostname or IP>:<number of CPUs (not required)> | |
2 | localhost |
0 | #!/bin/sh | |
1 | ||
2 | # | |
3 | # $Id: mpi.sh,v 1.3 2011/04/26 09:59:31 simakov Exp $ | |
4 | # | |
5 | # Build MPI-enabled EPSILON version (MPICH) | |
6 | # Please read README.mpich before! | |
7 | # | |
8 | # Hint: to simplify SSH keys management for the test, just | |
9 | # put your public key into yours authorized_keys | |
10 | # | |
11 | ||
12 | SCRIPT_DIR=$(dirname $0) | |
13 | source "$SCRIPT_DIR/common.inc" | |
14 | ||
15 | BUILD_TAG='mpi' | |
16 | ||
17 | check_EPSILON_TEST_BUILD_ROOT_environment_variable | |
18 | BUILD_ROOT="$EPSILON_TEST_BUILD_ROOT/$BUILD_TAG" | |
19 | ||
20 | echo "Removing previous build: '$BUILD_ROOT'..." | |
21 | rm -frv "$BUILD_ROOT" | |
22 | ||
23 | echo "Building '$BUILD_TAG' EPSILON version..." | |
24 | pushd "$EPSILON_SOURCE_ROOT" | |
25 | trap 'popd' EXIT | |
26 | make distclean | |
27 | ./configure --prefix "$EPSILON_TEST_BUILD_ROOT/$BUILD_TAG" \ | |
28 | --enable-mpi CC=mpicc \ | |
29 | && make && make install | |
30 | ||
31 | check_ldconfig $BUILD_TAG |
0 | #!/bin/sh | |
1 | ||
2 | # | |
3 | # $Id: ptheads.sh,v 1.2 2011/04/26 09:50:24 simakov Exp $ | |
4 | # | |
5 | # Build multi-threaded EPSILON version (POSIX threads) | |
6 | # | |
7 | ||
8 | SCRIPT_DIR=$(dirname $0) | |
9 | source "$SCRIPT_DIR/common.inc" | |
10 | ||
11 | BUILD_TAG='pthreads' | |
12 | ||
13 | check_EPSILON_TEST_BUILD_ROOT_environment_variable | |
14 | BUILD_ROOT="$EPSILON_TEST_BUILD_ROOT/$BUILD_TAG" | |
15 | ||
16 | echo "Removing previous build: '$BUILD_ROOT'..." | |
17 | rm -frv "$BUILD_ROOT" | |
18 | ||
19 | echo "Building '$BUILD_TAG' EPSILON version..." | |
20 | pushd "$EPSILON_SOURCE_ROOT" | |
21 | trap 'popd' EXIT | |
22 | make distclean | |
23 | ./configure --prefix "$EPSILON_TEST_BUILD_ROOT/$BUILD_TAG" \ | |
24 | --enable-pthreads \ | |
25 | --with-def-threads=4 \ | |
26 | --with-max-threads=256 \ | |
27 | && make && make install | |
28 | ||
29 | check_ldconfig $BUILD_TAG |
0 | INCLUDES = | |
1 | METASOURCES = AUTO | |
2 | dist_noinst_DATA = lena.pgm nirvana.ppm gray_dot.pgm horizontal_rainbow.ppm horizontal_gradient.pgm red_dot.ppm vertical_gradient.pgm vertical_rainbow.ppm |
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | # @configure_input@ | |
2 | ||
3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | # This Makefile.in is free software; the Free Software Foundation | |
6 | # gives unlimited permission to copy and/or distribute it, | |
7 | # with or without modifications, as long as this notice is preserved. | |
8 | ||
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | |
11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | |
12 | # PARTICULAR PURPOSE. | |
13 | ||
14 | @SET_MAKE@ | |
15 | ||
16 | VPATH = @srcdir@ | |
17 | pkgdatadir = $(datadir)/@PACKAGE@ | |
18 | pkglibdir = $(libdir)/@PACKAGE@ | |
19 | pkgincludedir = $(includedir)/@PACKAGE@ | |
20 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | |
21 | install_sh_DATA = $(install_sh) -c -m 644 | |
22 | install_sh_PROGRAM = $(install_sh) -c | |
23 | install_sh_SCRIPT = $(install_sh) -c | |
24 | INSTALL_HEADER = $(INSTALL_DATA) | |
25 | transform = $(program_transform_name) | |
26 | NORMAL_INSTALL = : | |
27 | PRE_INSTALL = : | |
28 | POST_INSTALL = : | |
29 | NORMAL_UNINSTALL = : | |
30 | PRE_UNINSTALL = : | |
31 | POST_UNINSTALL = : | |
32 | build_triplet = @build@ | |
33 | host_triplet = @host@ | |
34 | subdir = tests/images | |
35 | DIST_COMMON = $(dist_noinst_DATA) $(srcdir)/Makefile.am \ | |
36 | $(srcdir)/Makefile.in | |
37 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
38 | am__aclocal_m4_deps = $(top_srcdir)/configure.in | |
39 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | |
40 | $(ACLOCAL_M4) | |
41 | mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs | |
42 | CONFIG_HEADER = $(top_builddir)/config.h | |
43 | CONFIG_CLEAN_FILES = | |
44 | SOURCES = | |
45 | DIST_SOURCES = | |
46 | DATA = $(dist_noinst_DATA) | |
47 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
48 | ACLOCAL = @ACLOCAL@ | |
49 | AMTAR = @AMTAR@ | |
50 | AR = @AR@ | |
51 | AUTOCONF = @AUTOCONF@ | |
52 | AUTOHEADER = @AUTOHEADER@ | |
53 | AUTOMAKE = @AUTOMAKE@ | |
54 | AWK = @AWK@ | |
55 | CC = @CC@ | |
56 | CCDEPMODE = @CCDEPMODE@ | |
57 | CFLAGS = @CFLAGS@ | |
58 | CPP = @CPP@ | |
59 | CPPFLAGS = @CPPFLAGS@ | |
60 | CXX = @CXX@ | |
61 | CXXCPP = @CXXCPP@ | |
62 | CXXDEPMODE = @CXXDEPMODE@ | |
63 | CXXFLAGS = @CXXFLAGS@ | |
64 | CYGPATH_W = @CYGPATH_W@ | |
65 | DEFS = @DEFS@ | |
66 | DEPDIR = @DEPDIR@ | |
67 | DSYMUTIL = @DSYMUTIL@ | |
68 | ECHO = @ECHO@ | |
69 | ECHO_C = @ECHO_C@ | |
70 | ECHO_N = @ECHO_N@ | |
71 | ECHO_T = @ECHO_T@ | |
72 | EGREP = @EGREP@ | |
73 | EXEEXT = @EXEEXT@ | |
74 | F77 = @F77@ | |
75 | FFLAGS = @FFLAGS@ | |
76 | GREP = @GREP@ | |
77 | INSTALL = @INSTALL@ | |
78 | INSTALL_DATA = @INSTALL_DATA@ | |
79 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | |
80 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | |
81 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | |
82 | LDFLAGS = @LDFLAGS@ | |
83 | LIBOBJS = @LIBOBJS@ | |
84 | LIBS = @LIBS@ | |
85 | LIBTOOL = @LIBTOOL@ | |
86 | LN_S = @LN_S@ | |
87 | LTLIBOBJS = @LTLIBOBJS@ | |
88 | MAKEINFO = @MAKEINFO@ | |
89 | MKDIR_P = @MKDIR_P@ | |
90 | NMEDIT = @NMEDIT@ | |
91 | OBJEXT = @OBJEXT@ | |
92 | PACKAGE = @PACKAGE@ | |
93 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | |
94 | PACKAGE_NAME = @PACKAGE_NAME@ | |
95 | PACKAGE_STRING = @PACKAGE_STRING@ | |
96 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | |
97 | PACKAGE_VERSION = @PACKAGE_VERSION@ | |
98 | PATH_SEPARATOR = @PATH_SEPARATOR@ | |
99 | RANLIB = @RANLIB@ | |
100 | SED = @SED@ | |
101 | SET_MAKE = @SET_MAKE@ | |
102 | SHELL = @SHELL@ | |
103 | STRIP = @STRIP@ | |
104 | VERSION = @VERSION@ | |
105 | abs_builddir = @abs_builddir@ | |
106 | abs_srcdir = @abs_srcdir@ | |
107 | abs_top_builddir = @abs_top_builddir@ | |
108 | abs_top_srcdir = @abs_top_srcdir@ | |
109 | ac_ct_CC = @ac_ct_CC@ | |
110 | ac_ct_CXX = @ac_ct_CXX@ | |
111 | ac_ct_F77 = @ac_ct_F77@ | |
112 | am__include = @am__include@ | |
113 | am__leading_dot = @am__leading_dot@ | |
114 | am__quote = @am__quote@ | |
115 | am__tar = @am__tar@ | |
116 | am__untar = @am__untar@ | |
117 | bindir = @bindir@ | |
118 | build = @build@ | |
119 | build_alias = @build_alias@ | |
120 | build_cpu = @build_cpu@ | |
121 | build_os = @build_os@ | |
122 | build_vendor = @build_vendor@ | |
123 | builddir = @builddir@ | |
124 | datadir = @datadir@ | |
125 | datarootdir = @datarootdir@ | |
126 | docdir = @docdir@ | |
127 | dvidir = @dvidir@ | |
128 | exec_prefix = @exec_prefix@ | |
129 | host = @host@ | |
130 | host_alias = @host_alias@ | |
131 | host_cpu = @host_cpu@ | |
132 | host_os = @host_os@ | |
133 | host_vendor = @host_vendor@ | |
134 | htmldir = @htmldir@ | |
135 | includedir = @includedir@ | |
136 | infodir = @infodir@ | |
137 | install_sh = @install_sh@ | |
138 | libdir = @libdir@ | |
139 | libexecdir = @libexecdir@ | |
140 | localedir = @localedir@ | |
141 | localstatedir = @localstatedir@ | |
142 | mandir = @mandir@ | |
143 | mkdir_p = @mkdir_p@ | |
144 | oldincludedir = @oldincludedir@ | |
145 | pdfdir = @pdfdir@ | |
146 | prefix = @prefix@ | |
147 | program_transform_name = @program_transform_name@ | |
148 | psdir = @psdir@ | |
149 | sbindir = @sbindir@ | |
150 | sharedstatedir = @sharedstatedir@ | |
151 | srcdir = @srcdir@ | |
152 | sysconfdir = @sysconfdir@ | |
153 | target_alias = @target_alias@ | |
154 | top_builddir = @top_builddir@ | |
155 | top_srcdir = @top_srcdir@ | |
156 | INCLUDES = | |
157 | METASOURCES = AUTO | |
158 | dist_noinst_DATA = lena.pgm nirvana.ppm gray_dot.pgm horizontal_rainbow.ppm horizontal_gradient.pgm red_dot.ppm vertical_gradient.pgm vertical_rainbow.ppm | |
159 | all: all-am | |
160 | ||
161 | .SUFFIXES: | |
162 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | |
163 | @for dep in $?; do \ | |
164 | case '$(am__configure_deps)' in \ | |
165 | *$$dep*) \ | |
166 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ | |
167 | && exit 0; \ | |
168 | exit 1;; \ | |
169 | esac; \ | |
170 | done; \ | |
171 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/images/Makefile'; \ | |
172 | cd $(top_srcdir) && \ | |
173 | $(AUTOMAKE) --gnu tests/images/Makefile | |
174 | .PRECIOUS: Makefile | |
175 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | |
176 | @case '$?' in \ | |
177 | *config.status*) \ | |
178 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | |
179 | *) \ | |
180 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
181 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
182 | esac; | |
183 | ||
184 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | |
185 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
186 | ||
187 | $(top_srcdir)/configure: $(am__configure_deps) | |
188 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
189 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | |
190 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
191 | ||
192 | mostlyclean-libtool: | |
193 | -rm -f *.lo | |
194 | ||
195 | clean-libtool: | |
196 | -rm -rf .libs _libs | |
197 | tags: TAGS | |
198 | TAGS: | |
199 | ||
200 | ctags: CTAGS | |
201 | CTAGS: | |
202 | ||
203 | ||
204 | distdir: $(DISTFILES) | |
205 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
206 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
207 | list='$(DISTFILES)'; \ | |
208 | dist_files=`for file in $$list; do echo $$file; done | \ | |
209 | sed -e "s|^$$srcdirstrip/||;t" \ | |
210 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
211 | case $$dist_files in \ | |
212 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
213 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
214 | sort -u` ;; \ | |
215 | esac; \ | |
216 | for file in $$dist_files; do \ | |
217 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
218 | if test -d $$d/$$file; then \ | |
219 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
220 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
221 | cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ | |
222 | fi; \ | |
223 | cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ | |
224 | else \ | |
225 | test -f $(distdir)/$$file \ | |
226 | || cp -p $$d/$$file $(distdir)/$$file \ | |
227 | || exit 1; \ | |
228 | fi; \ | |
229 | done | |
230 | check-am: all-am | |
231 | check: check-am | |
232 | all-am: Makefile $(DATA) | |
233 | installdirs: | |
234 | install: install-am | |
235 | install-exec: install-exec-am | |
236 | install-data: install-data-am | |
237 | uninstall: uninstall-am | |
238 | ||
239 | install-am: all-am | |
240 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | |
241 | ||
242 | installcheck: installcheck-am | |
243 | install-strip: | |
244 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | |
245 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | |
246 | `test -z '$(STRIP)' || \ | |
247 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | |
248 | mostlyclean-generic: | |
249 | ||
250 | clean-generic: | |
251 | ||
252 | distclean-generic: | |
253 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | |
254 | ||
255 | maintainer-clean-generic: | |
256 | @echo "This command is intended for maintainers to use" | |
257 | @echo "it deletes files that may require special tools to rebuild." | |
258 | clean: clean-am | |
259 | ||
260 | clean-am: clean-generic clean-libtool mostlyclean-am | |
261 | ||
262 | distclean: distclean-am | |
263 | -rm -f Makefile | |
264 | distclean-am: clean-am distclean-generic | |
265 | ||
266 | dvi: dvi-am | |
267 | ||
268 | dvi-am: | |
269 | ||
270 | html: html-am | |
271 | ||
272 | info: info-am | |
273 | ||
274 | info-am: | |
275 | ||
276 | install-data-am: | |
277 | ||
278 | install-dvi: install-dvi-am | |
279 | ||
280 | install-exec-am: | |
281 | ||
282 | install-html: install-html-am | |
283 | ||
284 | install-info: install-info-am | |
285 | ||
286 | install-man: | |
287 | ||
288 | install-pdf: install-pdf-am | |
289 | ||
290 | install-ps: install-ps-am | |
291 | ||
292 | installcheck-am: | |
293 | ||
294 | maintainer-clean: maintainer-clean-am | |
295 | -rm -f Makefile | |
296 | maintainer-clean-am: distclean-am maintainer-clean-generic | |
297 | ||
298 | mostlyclean: mostlyclean-am | |
299 | ||
300 | mostlyclean-am: mostlyclean-generic mostlyclean-libtool | |
301 | ||
302 | pdf: pdf-am | |
303 | ||
304 | pdf-am: | |
305 | ||
306 | ps: ps-am | |
307 | ||
308 | ps-am: | |
309 | ||
310 | uninstall-am: | |
311 | ||
312 | .MAKE: install-am install-strip | |
313 | ||
314 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
315 | distclean distclean-generic distclean-libtool distdir dvi \ | |
316 | dvi-am html html-am info info-am install install-am \ | |
317 | install-data install-data-am install-dvi install-dvi-am \ | |
318 | install-exec install-exec-am install-html install-html-am \ | |
319 | install-info install-info-am install-man install-pdf \ | |
320 | install-pdf-am install-ps install-ps-am install-strip \ | |
321 | installcheck installcheck-am installdirs maintainer-clean \ | |
322 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
323 | mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am | |
324 | ||
325 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
326 | # Otherwise a system limit (for SysV at least) may be exceeded. | |
327 | .NOEXPORT: |
0 | P5 | |
1 | # CREATOR: GIMP PNM Filter Version 1.1 | |
2 | ||
3 | 300 1 | |
4 | 255 | |
5 | UX\^adgjmqswy|ВЕИЛОТФЧЪЭбгзйнп▓╡╕╝┐┴┼╚╩═╤╘╫┌▄ртр▀▌▄┌┘╫╒╘╥╤╧╬╠╦╔╚╞┼├┴└╛╜╝║╕╖╡┤▓▒помлйзжегбаЮЭЫЪШЧЦЦЧШШЩЩЪЫЫЬЬЭЮЮЯЯаабввггддежжззиийккллмннооп░░▒▒▓▓▓олиевЯЬЩЧФРНКЗДБ{xurolifd`]ZWTQNKIEB?<9630-*'$! !#$&')*,-/1235689;=>@ACDFHIKLNOPRTUWXZ[]_`bcefhiihhggfeeddcbbaa``_^^]]\[[ZZYXXWWVVUTTSSRQQPPOONMMLLLL⏎ |
Binary diff not shown
0 | P5 | |
1 | 512 512 | |
2 | 255 | |
3 | ¢¢¢¡¢£¡¦¢¢ £ ¡¡ § ¦¦¥¦¬«¯ª¬¬§¯¨§¢¡wvjaa^\Xag`heiiiihnnlkihmmmljjlnmkmmnnlhjjlmovoqvywpzyz}zy|{{z~~ ~ ~~~}~~y||ywzywuroqsifghptvz£¢¡ ±ÀÆÎÐÓÓÔ×ÚÚÚÚÜØÓÌÀ¬zkjeghoiqtuwuwvy{ywux}yv{z}yw{vy|{xzyy{z|v|~|~~{{|}vvz~~~|~~z|~w{rytwvsx|¢¨©«ª¢¢¢¡¢£¡¦¢¢ £ ¡¡ § ¦¦¥¦¬«¯ª¬¬§¯¨§¢¡wvjaa^\Xag`heiiiihnnlkihmmmljjlnmkmmnnlhjjlmovoqvywpzyz}zy|{{z~~ ~ ~~~}~~y||ywzywuroqsifghptvz£¢¡ ±ÀÆÎÐÓÓÔ×ÚÚÚÚÜØÓÌÀ¬zkjeghoiqtuwuwvy{ywux}yv{z}yw{vy|{xzyy{z|v|~|~~{{|}vvz~~~|~~z|~w{rytwvsx|¢¨©«ª¢¢¢¡¢£¡¦¢¢ £ ¡¡ § ¦¦¥¦¬«¯ª¬¬§¯¨§¢¡wvjaa^\Xag`heiiiihnnlkihmmmljjlnmkmmnnlhjjlmovoqvywpzyz}zy|{{z~~ ~ ~~~}~~y||ywzywuroqsifghptvz£¢¡ ±ÀÆÎÐÓÓÔ×ÚÚÚÚÜØÓÌÀ¬zkjeghoiqtuwuwvy{ywux}yv{z}yw{vy|{xzyy{z|v|~|~~{{|}vvz~~~|~~z|~w{rytwvsx|¢¨©«ª¢¢¢¡¢£¡¦¢¢ £ ¡¡ § ¦¦¥¦¬«¯ª¬¬§¯¨§¢¡wvjaa^\Xag`heiiiihnnlkihmmmljjlnmkmmnnlhjjlmovoqvywpzyz}zy|{{z~~ ~ ~~~}~~y||ywzywuroqsifghptvz£¢¡ ±ÀÆÎÐÓÓÔ×ÚÚÚÚÜØÓÌÀ¬zkjeghoiqtuwuwvy{ywux}yv{z}yw{vy|{xzyy{z|v|~|~~{{|}vvz~~~|~~z|~w{rytwvsx|¢¨©«ª¢¢¢¡¢£¡¦¢¢ £ ¡¡ § ¦¦¥¦¬«¯ª¬¬§¯¨§¢¡wvjaa^\Xag`heiiiihnnlkihmmmljjlnmkmmnnlhjjlmovoqvywpzyz}zy|{{z~~ ~ ~~~}~~y||ywzywuroqsifghptvz£¢¡ ±ÀÆÎÐÓÓÔ×ÚÚÚÚÜØÓÌÀ¬zkjeghoiqtuwuwvy{ywux}yv{z}yw{vy|{xzyy{z|v|~|~~{{|}vvz~~~|~~z|~w{rytwvsx|¢¨©«ª¤¤¡ ¡ ¡¥¥¨ªª«°«ª°««¨§{wonf`\_Y_`afecdlhjjiklidjhljdihjliflhogikohloorwsvxxzwy|zz}z}~||}| } ~ ~~{ }~ {z| ~ ~~}{xz{||wtrrvloijhenmxz¡¤©ºÂÈÐÑÔÖ×ØÚÚÙÚÛ×ÑȺ£pgahfipooxtwuvxyx|zzuzz|z|{zy|vwt}yuzx{~{}|zx}{z|{vvzy||~~|}y{wsr{zz~~|gM £ ¢££ ¤¦¨§©««««®¬©§§¦z~kkabY^[c\ca``hhmohfcjgjejfbfhlllekhjkhffsglkoqxxswuxx{y|{{}w}|z }~ {~ }~ }~ ~ ~}~~{~~ }~~{}{{z|z{~wttpnongghffrvz~}£¡®ÁÇËÏÓÔÖØÙÚÜÜÛÙÔÍòljdfgmiqutsw|vsxzyvyzzz|}~xxvy}y|z~vz}|{x}zzzv~}z}zz{~{}yz{}}~}~~|wxv~~~yp\O@:¢¢ ¤¢¨©©ª¯««¯ª¬¦¤£ |yrn^^ZSVVX]]daeinjmjhgecijlegfcjgikggkjjikimpppqsswyz}}~|}{zx{~ ~} } }~| }}~}|~zxuvyxtwpqsojjmceqtz{~£ ¡¡¥´ÂÉÍÐÓ×××ÙÙÚÚÚ×ÑÉ»©zfagholrqurvwrtwtwvyt{wvy|{~y~|{|w{z|||}}z}x|{w~{y}yywz~~z}}{|x~|r^SFC27/ £ ¢¡ ¨¥ªª°©¬©ª®§¨ª¥¢ |xnra^ZWX\]_^gchighfinkghellffkikglgfmsgjkgrnqnrnrwuwxy|wxz~}|}}z~~} ~ { }| ~ {}||~{~{~~}~|x~z~zwztqpploqojfgkjsuy¢©ºÃÊÍÓÓÔØØÚØÙÛØÕÌijpgfmljposqtv{wv}wyuy}vwzwwv|||xvyzx|}|~}{v{~{y|~{{x|}{~||}}|}}{l^I@02./1¡££¢¤¦ª¨ª¨ª©¬¬¬©¨ª yyqja^[\Z[Y[a]fgbcefleigchipigkjihgfckgcdnimmmjsrttrut}wv|x|~|x~|~~} | }}|~||~ ~}}|}{|z|}{~x{}}}||}twxxrspooqgoigflouv|¡¢ ¡¡³¾ÇÍÑÓÕ×ØÙØØÙÚ×Ô̽¬|nihhlnqpsuuuvwztxwyzw|ww~xzxwx{y}z{|~z{{}{uz~|y~~zz|~}|}~}~}|~}wiaR;5.1/., §¥«§¨©«¦¨ª¥¨¤£|qhaZZYZ[_ciabdddihgegihhcgfknjdggegifejnloplmmquxsw{|}y}y{{z{{}} ~ }| ~~}} ~~}~~~||~}xw{pvvzvpstqknjnjgdmqx| ¢£ ¡ ¨¸ÂÊÎÑÕÕØ×ÙÙÚÛÙÖÐÆ·¥ojddjilmosnuu{zswvuz|yuyyvwxwxuyywwyxy||}z{v~z{zy{}~|z|||}{~}|~rk[M=/04/.33 ¦¢¤¦¨©ª««««¬®«ª¦§§ ~tjk`\Y[VWW^d^cf`dhfefiigilkkffhggjhhngdehhkqorrortttwwy~{|z}||~~}~~ ~ ~ |} ~ ~~}|}}}zwwzytqqulmmnhlhlijrw ¡ ºÆÊÐÔÔÖ×ØÚÚÝÚØÕÌÀ°khjhhjqprosuxyww{uzyxz}xuzxz{ywxuwx}xx{|x|{{|{|y|yz|}{|}}~}~ |wiWH85,,+0.-0¡ «¢£¥¢£§¬ª©«ªª¥¥¬¤«§¦§¢}ulfd_TZYWa_Yaadegkiggijimklkhkdfaigefigfcilrrmtpsrvwxuxzy{z{zy}~||~^ ~}~ ~||~{W}}{{}y}xxyzystpqqqookojgfinyy £ ¢£¢ ¦´ÃÉÍÒÔÕÚÙÜÙÛÚÛÙÒɺ§tigjgjknqpvsru{xxvxy{yy|zxuztvzv|wzy{yy{wwx{yy~zyz|}|x{|z |n_I<22(.+0/02 ¤¦¦¦¨«©§«©¨©¨©¦££{smig[W[`\\Y`cdgfckiiionjjmkqleiggkifdggjfioqpnrsrwzyttx{ywwyzz~~|}}z} | ~~ | ~~~~~}~|X~~|x|}z|uqxoinmqrppkgdgku| ¢¡¡¢ ¤ ¢¡£¢£ ¢©ºÄÉÎÒÕÖ×ÙÚÛÛÝØØÎÅ´kgkintsltspt|qwvv{wt|vzx{x}}wyz||vz}vzx{{{}|{|}vz|}~|~}~ |tm_G9<B1*(-,212 ¥¦§§ª§¨¨§ª¨«©¦¨¥¤¥¡}qkc[^YX``]_ddifahhglklglnjgsifechjmffbfdijniqrrsrxuwvx{|z}{yyy||}|~| ~ ~ ~ ~ ~~ ~ ~~}~}}{} ~}{xyz|zywuuukspotimkkghmqvw ¥¡¢¡ ¡¡¥¤£ ¥¥£¢£´ÁÇÎÐÕ××ÙÚÚÚÚÛØÓÌÀ°zgkkljjmpppvvpruqxuzyuz|zxz{vxxsx|{|wuxz~}yy~}}z}~{z}z}~ |qgYB6/2H400/6413« ¤¢£¦¨¤©©©«¬©¦§¦©¨¢¥ ytnpe\]Y\\[[[bigidhgkkohlkjicjjghgiglkfdehjmononoqvqtuwxy|}~~|}~~~~~ ~ ~~~~~~||~|z{yzxtutlst~kophihjiory ¤¡£ ¡ ¢¡¡££¤£ ¢¬ºÃÉÎÒÕ×ØÚÛÛÛÜÛÖÐÆ»¤piimhnmlkpytvrsvz{ttxw~~yywy{~z{x{}xz{yy~yz~}|{}y~} {pdT@53*+2..-+5.70 ¤¡¡£¥¥«¥§¦¦©©¦¦§¨¦¨§¦ zmhc]ZTZX][\^fhge_bjpojmgombieejfneehhhddihkpporrqqsyy|y}|v|}}~~ |~ ~}|{z~~{~tvz}txwprs{wninljegkswz £¦§ £ ¢ £¢¢¥ §¡¢£¡ ¡¢±ÁÇÎÑÔ××ØÛÜÜÜÛÛÔÎij|qiidkqllrzttqrsvyzyxw{zuxs}yzvxwy}w|}}{xw|{~ zp_R>/10*(0+000-*15 £¡¥¦©¨¦¥§§¨¦¦£¨¤¥¦£ ¡zplh_X\ZTX^_W`idoedemhehigknkhjicjniegfdfhgfmoqpqtqyuuuxw}y~|z|xy~}~ } ~ {}~ {~~~|~} ~|~}~{tqrqqruxoomtiliifpsy¢ ¡£¡¡¤£¡¡££¤¢¥¡¢¡¢¡¢¡¡¡©·ÂÌÏÓ×ÙØØÙÜÚÜÛ×ÒÊ»«wdgpkhjnqtutswyywxv{w{y}wzz~~{yzyz~|~~{y~~~~}}|q`P=/-2+-.(02//,(-5¡ ¡¢¦¦§§¨¦¥©§ª§¦§§¢¡©¤£¡ }tmd^d^W^X]a_cgkbdegejdhnigjgglfgigibbheehmnkntrrxryvvvvxz}yx{{x|~~ } ~} ~{z}~}}~|}}}}|{ytsuoqvtmplqhejfgnux ¡¦¡ ¡ ¤¢ ¡¦£¥£¥¡¤¢£¥ ¡¡¬»ÇÌÑÔ×ÚÙÚÙÜÛÛÜÔÍƱifghmlkopuozrxytwxy}}x}}zw{{z{y||y|~w}|~~{n]S92+(.4..+2.1.01.2 ¡ £¡¥¦¥¥¢¦©¤¨¦¦ª£¤ ¦¦£¡~q_cXVWY___c`bkcdcilnkirlkjfghhmgjmfnifejkorupusss{{}zxyxv}~zz{} }| } ~~~y{z~zvxvxsqtrlomqkleehnru{¡¡¢£¢¢¡¥¡¢¢¢¡¡ §§£¢£¢£¡ ´ÀÉÏÓÖ×ÚÚÙÚÛÛÛØÓË¿uggfhjjmpprtprwuxy~x}wyy||z|z|{zx~{{y||||~}~nbLA0&-22-2/1;13+*,-4¡ ¢¢ ¢£¤¥§¥¤§«¨¥¥¢£¥¤¡££¡tg^bUWZY_`_ebfjigjkmihnljegfeigeejldhggdilrpqrroszuuwwxvz~z|t{|}|~ ~ ~ ~ ~~ }~~ |{{}~~~~}~y}z{xyxwtosslnjimidfmqu{£¤¡¢£¡¤¡£¡¥¥¤££¦¦ £¡ ¡£ªºÅÌÏÒ×ØÙÙÛÜÞßÜÕÏƹ¢qcppmkqurqmuxuwszyyyx{{{zx~uv~ztxzyy~~~} ~pdR?43++7C52-/92.2.5.4¢¡¢§§¦¨¦¨ £§£¦¦§¤¤¡¡¤¡£ ¡~yoid]cWV^]bc\gcgigfwkjjegimfini_dgbgmcgeghkpqqqsptqxrvzzx~zy}~|{yy~ ~ ~ ~~ ~|{|}~~||{~|{~~}~z{{{{{|ypoprpojnjpkkgmoos¡£¢£¢¤¦§ ¢¡ ¢ ¢¡£¡¡¢£¢ ²½ÉÏÑÔÕ×ÙÚÛÜÜÛØÖÌįxhimqjiqrqnuwtxtwzsx{~u|s{{||x||~|} p_I<4.--))1151,(+0/1/72¢¢¢§¤§ª¦¥¢¥¥¥¨£¥¢¢ yyib[]WZa_``fbdcgahjggihdceglfadhdkfhhfhinonvsoouysw|uuxxwt}|zz{~~} ~ ~ |~~~ ~~|}|}z~~|}~}~~~}~y{y|{xxxyrrupolqukjjfginnr~¤¤££¡¥ ££ ¡¢¢¢¥££ ¢¡£ §¸ÄÉÑÑÖ×ØÙÚÛÜÛÜØÔÌ»¤ljfijlourmyqxwtvvrsry|~~|xwzwuzyu|} t[G615)*-,-65>/34+.11846£ ¢¦©§ª¦¦ª¤¥¤¤¤££ £¡ ¥¤ ~tec`VYWX^_bchbckkhjgefghkgegggknmgcekihjkgkjmloqqsqt}xu|yvy}w|~| ~~~ |~|~~|}~} |} ~~~{~~|~}{}|~~||}~~{|x}wxxuzrsqqllppikmimppry¤¡¡¡£¥¡¡£ ¢ ¡¤¤ ¢¡¡¬¿ÇÌÐÔØØÙÛÛÜÛßÛÕγ~qlelskloqtrtxruysxvzw{{xyy{t{y{xy||~ }qaI83::.6?32063//././//0=¡ ¢ ¢£¤§¦¥¥©©¦£¦¤£¥¡¥¦ ¡xqjc]YYYV\^b^_cfefknfjgihgceojkgdgijcehhkkolkmtlopsxxw}y{|xxzt{}}x|~~~~~} }~~||~~~{}~} ~{~}|z}}}}|||~|||yxy{xvvsunonolknjjklovuu} ¤¡¥¥£¤ ¡£§£¡¡ ¡ ¢¡ ¢¡ ¢ §´ÅÉÏÔÕÙÚÚÜÛÛÜÜØÓËÀ©tfjhnkoqovv{|vz}ytwzv{xyyxzwvxw{yw~|} q^J;L?/0+-0,2(,4,-,6147766£¢¡¡ ¤§¦¨¨¥§¨¤§¥¢££££¢¢¢£ }xrg`_XURX[e_^aa`eikingmjjhdhilfhghechjbhhnkqqpoqpsqxw{yy{xvx}w}~}}|{{ ~~~ ~ |~}}}y}{~~}{}~}z|~~z|~~ ~~~{|z}{}}~|}| }~{~}{y yutpoklnmjiihnqpxz~¡¢¡¡¢£¡¢¢¨¦£¡ ¡¡¡¢¢ ½ÆËÑÕÕÙÙÜÛÝÞÜÛÖÐǺ¥jedjjlkrwrvyzwzzv~|{|y}}zzxyztv}|~yx} o^H9>KJ10(/+.0('..,).01476: £ ¡¥ £¥¦¦¨¦¨©¦¦¤¡¢¢ £ ¡¡ ¢ ztmc\VWVNSTa]`aedhgeidlekghgiiegfdeilgfeihljoollqrqrwzzwxw~vzyz|{{}~~||~}}}}~ ~~ z~z~|~{}~{~|}}}~}y~y~ ~~|~}~~|}{}{|}{yy|||~wvrmqqlkjhjjmltrww¢¢¡ ¤ ¡¡£¢¢ ¡¥ £³ÄÌÎÔÕÙØÚÛÞÝÞÝÛÕβydhjklnorrts|}z{~~y|{x|}vxwxzx|}}w{z~~o`R52)0<4.&'%)/**.-.-.74;</0¡¢ ¡ ¡§§©¥©¥«¥¤¦¦§¢¦ £ ¦zrnbaW[\TUTU`_cgfdkghijhkjukgkkkdhgeicfghklmmkklptuuuy|ywt|~z~|{{ ~||}~ |~ }| ~{~|~}wy}|}{~|}~~~{|}}} {||~~ }~}z~}}z|~{~~~|}~{y}vxz|yzswknpnqjmgiinsw{z ¥¢¡¡££¡¡ £ ¾ÇÎÑÕÖØÛÜÞÝÝßÝØÐÉÀ¥mghhonrtslo~~|y|{xy~}|zzwst{~{wy{}} ~r^F7+0,.70.(,(,...-33.+184401¡£ ¢ ¡£¥¥¥©¨§¬§£¦¤¦£ ¡¢¡ |vof`VXSUTV__caeefdigcjgjlhgimicikchggcjiglmlloosuruty}x{wu|zzy}}~}}x||~ | ~}}}}}|}xy|x}{{||{|}{|~z}}~}~~ {~~~~{~~~|}~}}|||}}}|{{{|}ux}zqzvtnsonmjklkrpz| ¡§¢£¡¢¦ £¡¡ ¡¢¢°ÃËÏÒØÙØÛÛÚÝÝÝÜØÐŵ}egjklmnutsuyywwv{y{{xzxy{yy{w|}~|{ spYJ5+'))20/0+,+/-/.0./15:7/69M ¡ ¢ ¡¥£§ª¨ª©ª¨¥ªª¦¥ £¡¡¡¤¢¥ ¥spfhZYXSV]]`iabbijjgflhhjiijkdhihekjjgdhkjmkpiosqsusuww|xy}{x|}{~}~}y~}|}~~}} {|}~z ~|}}{yzxz{{}}zw{~ ~}}~{{||{z}}|{ ~ {|~~|~}}{}}|}|{ }}|}xqwv{r{wolqqqoplllpsux~ £¢¡£¡£ ¢¡¢ ¡ ¡©ºÈÍÐÕÖØÛÛÝÝÝÞÝÚÕË«ngijkpqruursuz}yz}}yy~{{xw{vx{x|| }{lYG310((,/.+036*++:21635.53/33? ¡ £¡¥¢¢¡¥§¦¨¥©¦¨§¦¥¤¦¥¤ ££¥£¢tre_Y][WUZ]]cdfahfjlkhhqhdgikffhgfehjfdfkfokokjmpqutvvxyy{{y}zy{}}~ ~|~}~ ~}}}w{|{xz{{}w{~zz}~}{~y~}}{~ }~~~~|xy{{~~~| } zz{suxtwwuusqlqmmmlhktvy| ¥¡¡¢ ¢ £ ¡³ÄÇÐÒÕÙÛÙÛÝÜÝÞÝØÓ˺ fajqnqqwvqtuutu}|v~t}xz{yxxx|}zq_J/+(,-.21/2.)./6)./053251-58:9¡¡ £¦ ¡ ¡ ¤¤¤¦¤¥§¨©¬ª©©©¦¦ ¢¡¥¢¢¦ ~rqfa^[WVW_`bcagbdeinlpnmoheikmcfeglhmghiljkjlnpotsvuzw}||{zzzw|{}|}{|~|~}}|~~} | }~zyt|{{{z~y}}~y~~z~~|~}~yz~||| |} ~~~~}{y}|}~|~}{|}~~zzzpvxtvvvwrplppqmklso|}¤¢£ ¢¡¡¡¢§¸ÆËÎÔØØÛÛßÞÞÝÞÝØÐÆ®vjjkiinortuvzvwy}}~vyyww|y}|}z}~~ {l[H6)+'*22+/-2/-.5-1452213-1,5683 ¢ £ ¡¥§¥©§©©§«©§¦¦©¥£¢¡ ¤¡¤ymid\ZWV\\db__cefegghoilmmkklncdefchhbdghhjkloquqqquuuz{wxxx}xvx~||~~~~{z~z{|}~{}~ } ~| }~}{|wx}z|{y}}xl}}||w||~~}}|}{|{~~ ~}~~~x~}}~~z~~~|{~}}}z~}}y}w|yxyvtshtpnnomikikkszz ¢£¡¡¢ ¡¡¡ ¡µ½Ç¿ÍÒÑÖØÙÛÚÞÞÝÚÒ̼ soskvqrsvzuvtwwu{|y{yx}}w}|}~xoWC314(),85.)0/++0214863314/23=99¡ ¢ ¢¤¡¡¡¤¡ ¤¥¥¨§«¨ªªª««¦©§©¤ ¡¡ ¡ £ ¤¤}wpf`X]Y^Y``]`bjcaehjiighlijiodegffdcjfjimjilopmporvuuvw{{y|}wx|~}~ {|~}~~ ~ ~~~||{y~{|z{uvx{{xz{~}}~~~}}}{~y|{}w}}|~ ~} |~}~~z~|}}|~~|y~~~}zwzyxqvnqnlnrlhilnotv{| £¡¡ ¡¢¢ ¢ £³ÁËÑÔØØÚÜÝàßÞßÝÙÕɸ~mjihmlpusruttxu{y}~}}y~{|||yk^F84'%02((665474+.:;64522/11/32;78¡¡ £¢ ££¡ £¢¤¥£¨ª¦¥¨¦§§§¦¥¨©¦ ¢¢ ¤£¡ |smg_`RV\\aZ\hdc`ciggkkjiilhbhgdhhgde`ifffhgoooslsusqvsv{s{y||zzv~z|}|}~~~}{ ~ }~}}~~}||z{}y~x{wv{yx|x}}}{|{zy}y{~{}~}z| |~~|}{z~|z{}}}~{~}~~||||{wuqysqprktnogmpqwvw}| ¢¤¡¡ ¢¬ºÊÍÓÕØÛÚÛÞßÝßßÝÖÏÁ°qjigiknitqptwuvxzyz{xzy{~} zqcK:.+(&*,++-39>244096.14;115126;538 ¡£¦¡£¢ ¨£¥¦¦©¦©§©©§¨§¨¥©§££¡ ¡ ¡¦¢£ ~rmc_]WZYXY]ccdgcgiohhgihiiigfiglhgggge_cjhhlkorotruvwuwz{zu{{v{}y||{{{~~~ ||}}y} ||~| ~}~~|z|{|z|yyzzyz|{}z|~zw{xx{|wxzx|}}{ ~| }}}z}|~~|~x{}}}{~|yxvt{vrwronrrlyphnnpsvzx} ¢µÁËÐÖ×ÛßÞßÞßßßßÜÑɽ¥ jglcokpqrqtsuw{y|~|wzw|y |uaG4.,,(,,&+/2.6;16D4354283322067520. ¡¢¥¢¢¢ §¢¤£¤¦©§¥§¥¥¨¦©©¤©§¨¡¢¢¢¡¡ vklaYZVU^X]eadheccfclhdgfggfeehhecheikikhkfnnpotontwxuvvzywwwuz|~y}xw}|~}~ }~|}|{y~ |{|~~}{~|}~}~~}y}}~z}||zzz}}~x}|~}~~}zx|}yzxwy}~{vz ~||~}|~}}||~{|z|~}~|~}~{y~u~xuyuqvyrpsvqpmgjmnqvyz| ¡ ¢©¹ÇÌÖÖØÛÛÞÜÝÞßßÞÔÍɱzicjiekrrurqqwyyw||}}y}}yi[K<*+*())/-/6549<98853/17130.40765/2, ¤«¬¦£¡£¡¦¤¥ª§©¨¦ª¦ª¨¥¦¨§¥¢£¤¡¡ ¡¡¡ ¡ ~xkf^YRTSS\YfZ[dciggihedgbgedjfhffchafikhjjkoklrrpprxuqu||syzqyy{{xyz~{|}| ||}~z}xz{~}|~~}{}| ~}}~~|{}x{{|xv~yvy~||}~~{vv{u|{|vyx||{}}}}~~}~yy}z| }}}}}~{{{zx~zwvtr}w{sqsooplniplxt| £®¿ÈÒÕ×ÛÛÜÝÞßààÞÝÔÌÀ¨r``hgolpowsvqu~~|y|z| vi[A8,')-+,*.,./31-1236556.;4:322/432,,, £ ¢£ ¢¢¤¤¤£§¥©©§¨©¥ª¨§£¦¤¤¤£¢¢¢£¢¢ ¢¢¢¡£|vpd]TPRXSW[[_^ecichmifhdcgddidfgffhgighddigjonpoussrwvs{yxxwvtxx}}z{}||}{{|}}{}y|}}{~~}}|~ }|}~}~~~}y{~|{xuz|yux{}~}z{vzwxxyuxw{ywz|}}}}~|~~ ~|~ }}~|~|~~{|}~}y|~}~~zwyytw{~vxusnoilhhkkqt| ¡ ¢£¹ÅÎÒÕØÛÝÞÝÞßßáÞÙÒʹ}fcbckionopssrwxwuy|~y~ vk\J6-+02,()*+(.5254777>:8=6854285.,3//44¤¤ ¢¢ ¢¤¡¤ §§¨©©©¦¢¤££¥¡¤¢¤¦ ¢ £¡¡¢£¢~vm`W[WRSSV\cdecfdfeehmoefjfeecfcjigdjjfbehhiprnqpvutuvux{vuyur{wv||}{}||}|{}z|zyx}z~ ~~|{}~~|~~{~~{zzzxy|xz|yvzzz|zutu|uxxzux{w|z~zz~}|}|y~~z}~}~|}~{|{{|}~}z{|zxwsvstsussupoqjmnntww|~¢ ¡ °ÁÊÏÓ×ÚÜÝÞÞßáàßÝ×Ðůubbcqoplmprrvyyqwy}}xl\I4,'-(.1,11-(/;ACLF???@9>3451342-0--..:¤¤¦¢£¡£¢£¤£¡¢¡§¥¤¥§ª¨¦¥¥¤££ ¡¤¥¤§¦¡¤¡ ¢¡¡ ¢¡¢¥zthd`YSOQU\d\[ebjjggidgcdigkfffefddmechfkfjijmtpssvrrxxuyu{zxz|xxyzy~wyy{~{{}~}~~|y}z|{w| |~|~~ }~~}~}vyyy{{~wvsywzyzy{yy{uwxx{xxv{zw|}}} ~{}|z~}}}~xy~}}z||}~||~{zxuyrstuwvsnurqstmmors{|| ¡ ¦¹ÅÎÕÖØÚÝÝÞÝààáÞÚÒÉ¿¡kdehhrhkponsuswxz{y yp[K80+&-2,)*.4-)-02375181435101//040,-/,/2££¡¡¤¡ ¤¥¡ ¦£¥¨ª«ª¨§¦£¤£ £¢¤ ¡ ¢¡ £ ¡¡£¡¢¡ysfd_XTQSXZYdWYlffqifleccdefdffbdkefcibgffchgikoporrv{xyuxxzvw~zxvwz|xz{w{}{}{z}y||~}~z||||~|}}||{}~||z}}~}~yzzzxutvxyuuyvx{yzyvxs{xyyx||~~|~}~{~}{}}}}{~z~{~}x|zyxwsuptrusnxunommsoptz| ¯ÁÌÑÕ×ÚÚÝÞÞààáÞÜÔÍÆ®xdbimkmjpqurqoqtx|z}~|qaQ46/*,,-*.)+/4/4:573:3<42.57711-.1.,-,/), ¡¢ ¡¢ ¥¥©ª¨«¨¥¢¡¢¤ ¡¤¥¡¢ ¢¡¢¡¡¢¢ }|pie]VYQQSZ]Ybdkgfchfdkfhhfifhilackddaiehggjjjoqnpssrzxyyzuwwvz{|y|y}{y{z}|~{}|||}}{}~}|||}~}}}~}}{{}{{x}zxxwtwvz{wzxttwwzurtvxwx}|~}~||~}x||}}| |~~}}}|~}|}|}z{zzxtqyusrswsqxsnqmlnruxx~| £µÄËÒ×ÚÛÜÝÞßÞßßàÚÓʺ¢lchgmhimkqormtryz|vq^Q=.-+-))*+.+,40.667:<=64461:1341051+.---)1¤ ¢£¥¡£¢¢¡£¦§©©ª§¬¥¡¡¡ ¢§ ¡ ¡¡¢ymb^WUOZWWa_\afcdgidfjgkmjieenjcfljfhcclifilomomqrqs||w{yxuutwy}{x~{}z{y~x}}v{z|z}y}}~|~}~~~}}}|}~~}{~{~{vz~||zy|rzuvqxxrw|vvtzwytxu}zzz{|~z}~|{| |~~||{}{{}}~uwwx~{xuu{urtrtqqoonmnjmmssxz¡ °½ÈÏÔØÛÝÜÞßÝßàÞßÖÍƳxdagjlmljomtrwwzz}wr_I@,0+(*+*-./000975<9E>>:914642833/.,,,03.)-¢¢¡¡¤¤ ¡¡¢¢¤§¨ªª¯¦£¡ ¡ ¤ ¡¡¢¤ ¢|uja`]TOWV[^]adfhacmjcegkdejddjoidfgedifeefjnlknorrwutyuxzzxyz|{z}{~{{|}}}}~|{||~~~}~|~~}|{ ~~~{{ ~|}x{}xuw|~y}y}}vuztustxwwxw}~yuxx{{}{~}|z{|~}~| ~}}}~}|{{y{{||tuyqppstuuqsnkllprqrs{~ ¶ÅÌÑÔÙÙÛÞßÞÞààÞÛÓÌÁ¨kbjflkjnprtquxyy{kaO92,+)(.0.)11133616<;5;95>7:542452-++-..1/+0¡¡¡¢ £¢¢§¬ªª£¢¡ £¥¤ ¡¡£¢¡¦¡ ~qja`XSNRT`\^babceddigkfjgcjbfcfkifelefgkhhlrmknouxvuwxxysvzvz|{z|yw{|}||~~~y{{}z{~~}|}|~ |}||}}{~~z|zzz|~}|~{}{«±¨´¢£vz|wtwyv{|{|vwzyz{yx|{~yzz}{}|~}{}}}}y}}|zztwvptvouvrpoogknlptrtz~ª»ÈÐÐÖÙÜÝÝßßàßßÝÖÐȲvedjfillpyqory}xf^Q;/,100*-+,*/2,11562:9;?=:5433076<1/+,,/20.1-¤¤¡¤¢ £¤£¤¨¦§¨¥ ¤¥¡¤¦¥¥ ¡¡¤¢¡¡¤|tig\YWNUS^[YZ__ecjdhfmihmhmijeljkeffehffkhmtoqnvutssx}yvzy{xz}xz|{zz}z{y}~~{|~y{~||~~zy}~ |y{~~|{~²¸±ºª¢²±¦¦®¸® ¤§||rwwvutvywv{zxy}|}~}}}~z~~ |~y|}|}}{}~{|~|}{xvtwrpupovxqonqnkjpqvswy ²ÀÌÎÔÖÜÜÝÞßàààÞÚÔÏÀ¬lbgvijmuuwty}}|siXR@/-+,*200,*+1..0446<:7<8=4788>5*;2/6,-,/.4-,/££¥¤£ ¢¥¤£««©«¢ ¤¢¢¦£¢¤¤¨¤¢£|kfa[ZQVT]Zccadagghglhelnqkfdgedfelfgidgjflrlooprqsvwyyxxz}u{z{zz|z~}~|}}}~|~z~|}} ~}}|} ~}z}||} ~~~~y }´³¢·¯¤§µ±¯¿½®±»À¾¯¨§¨zxuqsvqwvquzy|{}z{|}~}{}|y}~}}}||{ z~}}||{||xxxyvvtvuquvrponljpglqsuwx¨¹ÆÌÓÖØÛÜÞàÞßÞßÝÚÒ̽ ~om}poopvqs|v}xjYB0-/,.++00/-*.214229678:@?;;88333-0++1+,0.+/00-££ ¢ ¤ ¢££ª§ª«¬¨¤£¢¦¢ £¡¤¡ ¡¥£¤¢¡~mh\_YSRU\Z__\^_gdfglkhkijneeheldhffjfghiklportopqlpwvyz}zwy}{|||z{}|}||~z}~}}~ |}~~~ }~~}~~ | §©¬¹¯¡³³¨£³À·¨³ÂÁ´¯»Äö¤¢ ¡|{xruvuttvy{y{z||{y~}~~z~}}}}~}y{zwyyyvtqppotorrplmknmpswy||°ÀËÎÑ×ÚÜÝßÞÝàÝÞÛ×ÐƯtilifnurr|~zsnbN<,'/(&**,-*)01233:=43<77=:<984341.**,..1.'.-005£££ £ ¢¡¦¨©ª©ª£ ¡£¢ ¤£¡¢¨¢££¡yod_\[TRXW[\aaibcdedfeghfhjckegkgjgfbfeehkjpqtqrpppqxwxwzyuuyw{{}|}}z~{~|~~~~|| z}}~{} ~y|}{~}¢²¡§«³¬º´¢®¸·°©¼Çº²½Ãº²¯¹Àû®zwxswystwsxz{}z~}|{~{~z|~}~}|~~||uxxyyvvunsqrorpmlkjnlqrzw} £¸ÄËÒÖÙÙÚÝÞßàààÞÛÖ˼©loglpxvx~}vj]L3+&*+-1+,*1--,126278546H<A998??84,.'+,**/4.161/-¢¢£¡¡ £¦¦ª«®¦©¨¡¡£¤§¤¨ ¢£ ¡¡£¢¤¡¡zlcY^QTYY\[_Zeccdbkfjifikidfeechhkffdgghhnlqosprtntuyz|y|{{zzy}~~z||x|z}~z{|~} }{~} }|}~{y|~¡¤µ±¦²¢¦°´´°¶º¬©°º»´°´¹¹²¨²¹º¿ÁÁÁ¼ºªvuqr{ptzzxy|{{|z{}~{||~}}~{}}~zzvuyuxw{wmqnspoppkjnmortw~}©½ÇÎÒ×ÙÛÛÝàÞàâáßÚÒɶnklux~{tg]H:0*%))**-+(,-.*/2592:678685;66379-1/)*,++,*/-1+/3¡¡¡¡£ ¥¦ª¬ª¬¦¡ ¤¥¦¤¢ ¥£¤ ¡£¢£¥¤¢tjd]WVRSTYZ]`aY_ccdgmggfiehfbefhikhonggfmlpnorrpquvwuzzyux{wtxx|}{}~||}}||~~{}}{~~||} |~}~{~}~¡ª°®¯¦¡§°©ª¹Áº«¸¶®¬ª¶º°¨¥²³³·»¿¿»¸¼»½½»²rrnoryxxz{yxyz~|} }|{~{|~{}|{|wwuyuyyvsruvssnqponnkjhniprtt{´ÀÊÑÔØÚÚÝààáâááÞ×ÏÀ«xqpxrw|{f]K4-++)*,)*/,,++.0-/84173247444768330/',+-+/1,,.1(*/ ¢£¡¢©§«¨ªª¥£ ¤£¥¥¡¢¡¢¡£¥§¡¢¤¢~xmeaUVSSQYY`^[Ygfeefihgiffidcljfeeghlfhcmhmlkouqtttwuxyw}}~tv{wzz}~~|z~zz}{}}~ ||~~|~~}{~ ®¢ªµ §¬©¤·¸¸¹¹¹¯©º¼·¡®®¨¯µÀ¶¯®º¼¼¼Áþ»¶¯}vuswwtusw|vz}}|~|~||{}}~{|}|}~||{uxv{xxtw{uwrosqopmmimhlnnpwv¡¨ºÅÍÑÖÙÚÜÝÞàããäãÝÕξ§uptvxysdL:1**((*-.,)+..0*.,33;75249575215201/2,-00/3-,/+)1,-¢¢¡¡¡¡£¥¨¨©ª¨§¥¥¢ ¤¢£¤¤§£¡££¢¥¦¦££~vhf_UTQOZWW_]]`fbfcgmhkffjkbjkffiifejijlpoklnmurtwrvx{xz~y{wvxw}}{|{}~~|||~~}~|z~z~~{~~{|£¦¡¯°¡¨¦¯´±¬¸³¶°©´¸·¬¢ª¬«ª·µ®¨¶»¾¹¬¸ÀÄ¿À¾·°£knstuwx|t{{|}|}~~}~|~{zy|w}||y|}v{wwxywxuoprurprrqqsmjjhkosou| «¾ÉÏÔØÙÜÞààßáãâáÛÔɶ~vzyxsiQ:/--)%&),/+-*-/1,.25:3<628-155444254-0,3421133)-*,,* ¡¢¤¥©§©«©§ª¡¡¤¢¤¥£¦¡¤¤£¤£¦¢¦ ¡zvma^VRTXXV[cb\bh`gcffkhhb_legihdhdiljfcihllmsquzvustyzzxwz{{{xx}}~z~|z~~~{z}{~zz}||~|z|~¢ª¬£¡¡¡¬¨©³º¬°³¹»«¯®²«¨¨¶¯¥¬¹¼»µ®¶º¿Ä¾µ¸ÁÇÀÄÁÀ´vrpussvu|vx}{|{}|}|||}~zw}{||{w|{zzwyxvtwlpsuoomorssnijfjpmtz{} ´ÅÌÑÖÙÜÞÞàÞàãääÞÚÑȱxy~obQ@1''-1*.)-.51//55088:768818.7825-3)).4635/51/0/.32+03¢£¡£§¦¨¨ª§«¦§¢¡¢¡¥¥¥¤¢£¤ £¢¢§§¢¥££¡wpbZUJOSWXYYY\_`_^ceffhf`bgfecghfghphhgjfgpqppyyvutyw{vyuyv{z~y{}~{~~|}z}~ z~~~~}z~~}{xz~~}} ~ ¢ ª¢¥®©¨³£¨»¿µ²®²²¨²·±¥¨±¼À±¥¯·¿·³¸¸½ÂÃÅ¿¿ÁÆż¯qosu|stvt{|~}~{z~|~|z~zv}~z{z}zvv|vvy|oqqustpqrkqkkljk|mtw|~ «¾ÊÏÓ×ÚÞÞààáâããâÞ×п¤ zqc[=4/6%+)((67,1042311757868:244546-0++-0359;011,00)++,.3¢¢£¡£¦©««ª¦¥¡}~¡£¦¥§£§£¢¤§¨¦¥¥¥¢¢£ xl_\UPPNRWUXY]bc__eheefkcdecekhhigejghijifookos{sssxxxw{wwyz{uwy~~~}z{{~z }~|~| |y~|z}~~ ~}z ¢ ª¥¡¨µ¶µ¨¹·¨¸¼¸¬¦§º¼®®°µ»¼±©¶»ÃÄÁ·¾¿ÀÉÉËÅ¿¸©yrotswysuz|~~}zz{~zy}~~}{{}yx||{v{wxxuwujssrsoqtplnpkjer|ms{}³ÂËÔ×ÜÝßÞßááääâãÝ×Ì·xhSC,)*.)-**$14)*..4553644475054634//,+0875220.-*)6()..70, ¡¦¤§§¬¯¬ª¥¥ {{z~¡¥§¤¤¥¦¦¤¡¥§¦¨¤¨¤¢ ~xk^ZVMPNRVXS_\^cca^_^_cdd_fhddceebefhhongfimmmrtsqqwtuwyx{yxzy|~zzzzy|z|}~}{z{z{|||~|{|}{{}|y~ yz~§©¦¢©¢¨²µ³®§¶¯¦®¼»²¥£·À½±¬¶º¼¼º»¹»ÃÄÈÈÅÁ¿ÄÆôqqpmvpt~|}{z~}~|z|y}|y}y}zw}{xzsrqouorrqtqpopvjmrnmkjoppzx ¤·ÆÑÓÚÝÞÞÝàáãäääâÚÓǦxXA3,*.'(,&,'.*/05899:8<25=69361357123,2077<:0//9-(*,-.2.. ¢¢£¥£¨¨®®§ª¢¢ }|yuxw} ¡£¤¨¦¤©¨¢¥£¥§ ¥¡ ~ribXUNMNWUUX\b``c\bbebdecihc^faifcb_elnlmjjioorqswqttzvvx{{{yx~y}||~zt{|zxw|~|{}{||}~~|}~wxz|{wyzvtxz ¡¢££ ª§§¦¤¡§µ±¯¬¦¬±¹»ª¡´´¾¹°¬¼Ã¹²¸¾ÀÁÅ¿ÿÁÄÈÆÃþ©vrnmsu||z{z}|}{vxwx|~|{{z}|yzxxtvuussqmpplosmllmjigilioqsqs{~¬ÀÎÓÖÛÜÝÞàáâããäâßÙ͸M0..***&.3'+)3.)+646811978116>3<=6439..06;34/.11+(,.,.2-3¢¢£¡£§«©°¯§«¥¡ |yswurx£§¥¥¤¥¨¥¥¤¢ ¥¦¥¤£rjcZUMNLMOWeg[dec_a^_ceecbhbbfbcdcccfjjfjjjlmmtqnuryvutwuuy{wwwyw{{z|z|wxwxx~}}~~~~{~}}{~{y¦~~usy{}| ¡ª¢§¡¡°°¬ ¬¥©°¬©¤¬¹¸¬«¬°¼³«°ºÂž¶±½ÃÆýº»ÀÆÇÃÈþ¾ÇÉDZnmmrwvyuvwvywx~{xzxxxz~vz{{|{{wxsrsqwvwsqtorqnnoniiggkhmqlsut}¡¸ÊÎÓØÜÜÝàããããääâß×»C,,'++'),2+05+1*0-47567027644553,-.50/33.10-/1.:082++(/05 ¥¡ª©ª¬¬¬©¨¢¡xtpmgpw¥¢©¨¨£¦ª¤¥¡¤¥¢ ¦¥¡ wj`YTPNRVV_d[^\`_dhjccaeeb_bffbbdedchmfknljkmoppprkxr}pttxqww{wyw{uxywyy~}y|x~z~{{|~~}||||}|~|y|®´£|z~}wx}x §¯¤« ©®¨©«®¹²±®¶·°©¬»»À¿µ´º¿¾Â¾»¼¿ÃÇÉþ½Á¿ÆÊÊʺ¥ponyyxqszwwwu}yvx}{tzzv|yz|y{x|zysvqtrprpvpqmoijmildfcillptuyªÂÇÏÔÚÜÜÞàäåäçåâàÖ´p/$!*&($()-0.031).4:53230333543.0-.-0221M7425//,768.-.9328¢¢¥¬§©ª¬©¨¡zynjjelu~ ª©¥¦¤§§¥¢£§£¥¥¥¢ ¡{pa]VYSJKLTZQWU\^\dafnja]dddcbg`eakfifgcjihkooopoqq~svry{wux{{vxyzyzzy}z|yz{}~|}|}|v|y|w§¬~| z{zwz{u|z ~¤ ª¦ ¥´²¥¡¢§±ªª»¼·°§¥·Á¿³²¶¼ÀÁ¶²µÀÁýÁ¾À¿ÅÈÈÈÂÄÅÉÆ·jsttlusoqsqxzy}xyvxzzwzyuxzyzzvvwvsuusuqrppqplpnmkigggplppuu}±ÂÉÐÔ×ÛÝàâääæçåß×¹p)&$-()*..-)03(-35379;66584==;1,/-/+-15236526,'*246*-+0721¡¡£§ª©«®¬©¥¡unecefs}¡¤¦¦«¦¨¢¬§¦£¢¥¥¥£¥xpdXWSJMORS]ZXU^Y\_`acac_[c`c_ed`ekhbcgfihjrkulnptussvzqq|uuxxyvysxyyyz{}{~}}}{|{}{~}{{}|{y|~~z }v}yyuxxxyy~ |y~ ¤¤«¢£¨ £®°°¦«¯µÀª£³¸¼¾µ±¯½ÀÀ·¨¯½ÅÀÀº³»ÁÅÇÃÂÂÃÃÄÉÎÊÆø¥yrruopppw{vxvxuvw|{yu{yxtytwwwuwuvssspnqpikllnmeiefchiorrxy©ºÇÏÕØÛÞâäåååçâÙà 8#(+)++)/)*/01325377553564565..,-*/+319<040,/0++-..-+48993¤¤¦¦¦¬¬°¦ª¦¦zrhg[\hpz©©§¥§¥¦¦¢©£¦¨¤£§¤slb[TNJSNTUWUZX^Y]ab]_`ab_ce`b_faggcibghgidijojrpnsqypuuspwxxuz{rz|xxx}xxy|}|}}}|}|zx|yz~²y{|}~~{x~}{|~}{~|| ¡£¥ ¤¤££ °¥¬¥§²·¸´µ°±¼ÁÀ´·½½À·®·¿Áø°º½ÀÄÅÁ»½ÄÇÉÊÊǽÅÆǹlilnoopswvutuuxz|xzx|xxx}yzwyuuwttrqnsqoohmjkhilj`cnmkoux°¿ËÕÚÛÞâãæçäâÚ̦[$()()-,,*-2*'///6445793778561-/+-0--3487310+,-,0.-2.346<:4¦¦¨©®±¬ªª£¡zuiiZ\[cox¢¦©¥¦¨¦£¦¤££ª£ª¥£¨¡}vja^QQHKNKPRVW[`\c^`_c_[`_hcdbacddbfggkjghjkjnmhlnnvyswwqqyqzw{w{ty}zyx|}{xwzz{|{}{z{~{{||z}}¯Æoq}|{z}}~zvv}zzwy}y~ } ¨ ¥®³¶°¥¦¸¸½¾¼»º¾¿µ±±·¼¾Àº·À¼ÁÇÀ¹µ½ÀÂÈÉÇÀÄ¿ÃÃÄÌÉ÷ pjnjlnpnqtttvzwrxxtzzwvuvwuvrsuusqplrmnlmpijmngidfjnqqtx³ÉÏÖÛáãäååáÛÑ·z4"'*($%'+,+32,44/485411/;=4583)..-.,.466380/-+).*/)14687421¤¤©®¯®¬©© yme]SQVcpx ¦¤¨£©¥¦¨¦¥££¥¥¦¢£¢ul`YOJKJPUWPUVVXZ^`__^`^`bfa^ibcfg`hhgdihjikiqoiksqmusu}rszvxrttwvs{}|{|z}{y|x}~|~~y~{y|zyz±ifm||{t{xxuv{zx}|vzzzzw uy ¢¤¨§ µ²¢¡®±°¸¶¹·»¾½º²ª¹½¾»´º¼Á¿»·®´ÂÄÃÂÁÁÀÁÅÃÉÇÆÄÂÁ¿°mhkkmoksuturuvvrwuwvwvvuwsxwrstptqurqqphljlejhifilonz¤¸ÎØÚßãääàÚÑ»D'&"*+,'))+.+2.127<=57644<5:2-,(+,))02.932/7//+-/).01/731-($§§ª°®ªª§ ¡¡ui_VQPXhmx¢©¦ª¦¦¨¥¤¦§¦¡£¢£¥¥ |tr_VONJGMQQVWZZ[_]]^\c\ba`a__bbbflaehbhnjhgengjiempnruqvssxzxrrqvxuzy{zy||}y~yy||~}yzzyw}y¾¨m[Wjmxx}vz|q{}ysy}zyzu{zq~} ~}¡¥´º°¥¥¢¬º³®®º»¿¼±±»½¾À¼·°¸Ã¿Á½±µ¾ÁÇľ¾ÂÅÈÅÈÇÇÂÃÂÀÀÅÄÁº£}nihmhmjqos~rpspwsusu{wwurtwrospptkkmpkokjkicgdbelnpq}ªËÕ×ÞáãÞÙÓ¿V1$,#'--+**)+.6-395;926=684<865--/+/-43772.)/,//.1./856;6-'" ªª³¬°±¬«ª ~pf]YHOZery ¦¤¤¨§§¥©ª¥§¥¦¢ ¥£wneZRSJGNKORVW]\a[]]_c__`bb`egacacc`gicdhbeogjjfjktrrqsvprqrqtrqvvw|~{x{||y}|y{}{}z~y{{ssz|¡Ï©gb[ns~yx{yxy~zvszxx|wvt}wz| ¥¤±¸«³¶µ¯«µº¹º·¯©·¼¿Á¸¨¶ÀÄÁ½³·º¿ÂÁ¿Á½½ÃÈÉÈÿÂÃÂÃÄÆĽ¾ÄÃÀ©veeajijomqorrmsprsotvstusutsponpjmlolmlljkhidfhltqyz{ ¹ÌÓÜßÛ×Ó¿W3*)+%,++//.(-+420987;0639;74542('+-3336294/**.0*00876:86+'$¨¨¨®«®¦«¤vmZPJKOTdow¦£¢¦«¥©¦µ£¦¤¥¥¤¥¡¢ ~umcVUPHELVRSUZ_^\]d_ad_gab`bcdfh_befhgbdedhekmlmoopqotsrqslqxssvwtty}{wxt}wx|zz|w}y||}||~z|x~}z±i`fosuttw|}vy{v{|yytysuz}~ y{~{ «ª¥¤¦²·²¬¥©¸·¸±«®º¹¼»²¶¹·¼Ã¿¶´¹Â½¶º¿ÃÄÆÅÅÃÀÃÈÇÇżÁ¾ÃÇÈÈû¡mdfgjpijgjnmuosunsustrrrqvtppjonqojhmjknleigjhktrv ®ÄÑØÛ×Ï¿b1,&&*-./),-+/,,152152/6:77648.,-/.-.12725-.,-)*0+-3:5<>:;($ ¬¬¯®¬¨¡ {l^SOLJQYcqw¢¥£§¥ªª§£¤¥¥¥¢¢¥¥¢ }sk_SWGIFQNUYY\V\[Zb^_ceaead_cabbcecigecheenklkppmqmpuronsuqptusxxxuuwxyxxvx}~zz|~}|}|}x{smqspsxxv{}vvuw{y|p{z~ }~ ©¤«²º¬¤³·¶²¨«¸´¸º³²¶¶¸¿¾³³³·»ÅŽºº¼¿Á¿¾Ã½ÁÄÅÊÊÊüÁÇËÉÅÉÉÆȽ©qfgnljikiikjkprrrptsosrqqslplooplilohjjhiaghnoqsv ¥¿ÊÕÒ̸Z6'++**--,.**)/,2-<3.272436789002-1432874;7/+,21,1//5;<@38+!«««¬¬ª¥£ uveVQLIJRWgrx ¥¤¨¦¨©ª¤¥£¦ª¥§¦§£¢~tlcQUQEDKNQT_V[aX]dbikfillgbhegbib`dfdfimjgllkmgkqqvstxnorrttuuuuvt{uzvwvxw}z|}wx|||{smmlrumltvw{|ysyszxx|uuxx~{| u ¡¢¬®ªª©°»¸¨¤©º½·®¦¡¸¿¿º³®ºÀ¿Â¾¼¹¿ÆÅýº¼ÄÆÈÊËÅÅÁÁÆÄÄÇÈÆÄÉÉÌÌÈìoaedabhlhhmknkjpqqprnstnomqlpmrjjlkknjfgb`iknqp{~ ¸ÇÌÁ®S1-'//+-00+./,-/627014500656352,,1-:1869@95753,/.1115=??F;1& #$¯¯ª©¬§¦¤¡ vj_RHKKQX]gpu£§§¨ª¦¨¤¤¤¥§£¤¤£¢ ~tn^QQGIJLQXWXXU\\^_ehjbadal^afhaddcideeajaglklmolmopwwwkmmoquupwuywxvwxxvzy~yxx|}x{z|zy}||{qlntrsnr{vxwwro}{{yr{}~~}yx}{y{¡ ¤¯¨©µ²ª¢«±½»®¦®±¸Á¹°§¯µ»ÀÅĹ´ÀÅÅļº¹ÃÄÅÉÄÃÁ¿ÃÄÉÉÈÁÁ¿ÀÆÍÍÉÉÈËÆ´la_bddehgfmlkorqqvvoqqprnriphmiilhnmkkmiadlgpqz{ ³½¶£S6.,+-3,*+*/+-3,,20(42102=<21430.-13@5864.5023)+341.24ECM@<.$#7¬¬¬«ª¨£¡ ~sf[QKLHOX`enw ¢ ¦¥¦ª¬§§¥¥¦§¢¢¤¡¡¤ysi_RLPHGNPSWT_\X]_^fecc`cnrgbdc^a`egbdf^baifijopomoprrpr{ussvupr{qtzxuzqvyxy|wz}{{}~}w|{tx{~|nsroquxtystrnklzxwwuz~{{ }yw } ~y}zw ££¤³°¡««³³¯©±´¼¼¾¹¯¯³ÀÃþ¸¸¾¿ÅÈÀº½¿ÄÈÃÂÃÁÃÆÅÇÆÇÁ¼¼ÄÅÈÈÌÌÈÇÆÌÌʵsbX]^bc\efgelmiqspnqrrjnllijjlmprpjlhgedekjnpv uJ22))-24-)),-.2351036120:771=932*()/3=>836.3+,1,+:6/9?EJHD62, "4b««ª¨§¢}xm`STKKHQXbdmx£¨©ªª©©ª¦©¦¤£¢£¢¢{yl^UMLHFHOQW^VZ]d`df_gdg]_faafdb^ag`cef`ehghmkljmllumqnqwtvptuusuyvw}vywyzyyy|xz}}z{~yy|u{£vjovpryvvqotlppvrrwsvy}||||u}ys~ {~£¨¬¤¡«µ´¦¡µ½½¸¸¯²¹¼ÀÀ¼À½¼ÁÅž¸¹ÀÅÇÅÁºÁÅÅÆÉÆĽ¼ÃÅÈÇÊÈÂÂÈÌÊËÌËËõ¡p]_\_^\^fbdfilktolinopnjhhdlollpnimfhfdghknvx| ~¤nP43,/02'+-/(/413*14564472561+02.,+(,/6;:722->3..006679@EAF<*&% $4^¯¯«¬§¢¡yqdYPMMNNOYchty ¢¤§«¨§¦¨¦£¥¢¤£¦¤¡~yn[VHPJHNSRWXWZ]a[\]ca\ceffccjee]fegaccbekhlmjjompmtqsptpwtpspsrtxvw~xxxwy}|yy}}{y{~}|yyyzµ´|looqtvprlmqjomrqrvuyvzp~ytyzy~¥¥¡©¬ ¥¨·¹·¬¯¶´º¼¼¹³´ÀÀÃÄ¿¾³½ÃÄÅü¾ÃÉÇÇÆÆÀÀÂÁÄÅÈÆÆÃÄÇÉÅÉÄÂÈÆÉËÉrnmkcZZb_eagheqlllppoomkjjlljejrghgggagejpmr ~~}z}qP;0./1.,'&0).()*135<=D:6133/11,,*'))07569899<1/7514674=DCD80&" &3Vzªªª§¢¤|tl\UNNPKMVU[hww¤¡¨¨¦«¦§¨§«¤¢¦¥§¥¡¡{qgbTMJGKLRSTZeX```ceefdaihfcchfgbehd`ebefddhkklolohsnqrtrspmrpsytv{yxvuyuxt{{~zw|~~|{|z{~Æ©tprprtrrtoqjhqtrwzwwuv{x{n}|}xzx~¡¦® «¯¼¹³²¨·º¼¾²¼¾ÀÁÀ¿¼¹ÀÃÄź½¾ÁÈÉËȾºÄÅÈÇý¿¿ÆÉÅÆÀ¹¶µ»ÁÉÌÑÒ»ª£iY[^]`igonpmmrljghnmihjfjikhedadc`ilptv|¡ ~xwv{|~{VA/.-*)'/*,4)&)+,0137547556/4.,,..(*/0353966/0/-21264@>CCG<30%""/Sp ¬¬¦¥ ¤wmaVQMRXNPRU]kr{ ¤¦¦¨ª¦¦©¦§©£¢¡¨ ~sf]THMHINSQTWWUae]fef_^a`fad`ebececedggcejephdkiqkkkqrmsvuxnuvuvx~xzvxoxuwr~wy{v{{x{||zv«nrtuwnijnginmrnuyvxxrvzxwt~~z~}|{z | ¨ª±´¬¨®µ¸·»º¶µµ¼¿Á¾³³¾¾ÁÄľ¸¼¼ÂÉÆÆ¿ÃÁÃÅÇÇû»¿ÂÅƾ·±µº¹ÁÄÍÑÔ×ÛÙÖÖÐÍÀr^TX_`cglkjlodqlkfiffjghmlnhhegberoqtt~ xzwrwvwz iG----+,-(50),')0276372529=5740--,+0,6758D632--,320175=CGB8/('$#'/Ko§§§¥¥¡ ~we]PRoPONIPZbfqz¡¥£¦¦¦¦©ª©¥¦¤¦¡¢ ¤¡ }rh_VOJMJLSPVXXX^_^\ldbbe_b_b_ddbfedfccfbkdfjfmpimpplstpsxvwouqorrzytvzu{z|v{}{zvvz{{z}{ªtosqrrjmnpkhlqsqz}uuxqzw{r{{v~x}y {u ¢ ¦¶µ¨©µº··²²´¼Âúµ²µ»¾ÀÀ¼¶µ¿ÄÆÀ½ÁÿÈÇÆÅþ¾¾ÄÃÂÀµµ°¼ÆÉÐÒÒ×ØÝÛßâääãâÞË¢kVY[[eflnmjmkofgieakhllggeffge`bhkmtwywurosvrv}pU6,/(*00(((,)+(,33:/3688861021*),-005<3:;313/502511468AMM@8*&&"#+Gc} ¨¥¥¢¤{m^RNPPUUUPQY\gvx££¨©©¬©©§«¦¦¦¤¡¤¡ztp`ZPFJOPLV`ZUZ[_ahrdcfbciaj_afbidbbieeeelgkekponprnvvrtrrsooquryrwxzxuysxz{{|zzx{uz}y{|}¤~ooyomklnkholmouvvxursswtj~zs~vy|uy~ w £©©©¶º¿¿°°»º½Äò©¶¾À»µ³½À¼ÂÉƶµÁÅÆÈǽº¿ÂÂĽ·´¹¹ÀÆÑÒÒÔÔÖØÙÛÛÛàããåãåÝË]ZYYY]ejgfjlmhefcffhhhijeheja`kjipmw {vxjklpsou|~wX;32)+/04-'*,9''+.421645453.2,,0+.+20;958876//-08224<99GOJ>7'%),1;Zv£¨§§¢yrhZQPXUWZTRJXagm|¡¥ª¥¨¨¨ª¬«©¦¦£¤¡¢zth`WPJLJQTSYZXX^efbjb_g`ccfhb\efdbcggddfgffklhirnsoyru{~qortqsnyqsp||ww|xu}~yy{|wy|{}{vvrqpnkmdgjupiq|w|yvusxqk{{}{zvyz xw|~ £ª¢¦®®·¶®´´¼ÁÁÁºµ¶µ¾ÀÀ»³²ºÀÃÇƵ¸ÄÍÆľ¹½ÂŽ½²¬µ½ÈÈÏÐÕÖ×ÔÔÖÙÙØØØÜÞâãäæäܽ{VRSSZaaeiiieeagcdcecighehda^cgilmlw} |wsnfafighox{|[?9.--+++--%&/2-.154354433413,*).)*+608?:1-28/11.1006:AHOVM;3)%%1>Vl £«¢¢£~un`_QMTSUVVXQW^js~ ¤¤¤©¦¥«§§§¨¨¤¤¥£¡£}{rk]XVMKCLMTRSZ\_^_`\b`[cacggbbd^acffjefbffiilllhqonqlpsvwowxout|zwy{xww~y}w{}vwwwz~||zsmjojnnijpomosutrqswro|{~}}xyw |z~~x|x ©¤¯·´°¬²¾¿ÄÁ¸±¼¼¿½¶°´¿½Á¿¿À»¿ÂÄÃÁ¸¶À¿»·¶°·ÀÉÐÓÓÒÓÒÖÚÖÔÓÒÖ×Ö×ÙÛßãâææäÕ£cSMQV]adcihgbehgfdfghcehef_fdjhmrssxplg]aZcehrymH.)-0,,-1)**/55.1-1:>.12<042538.-(*.3497:00-2//.,2136>EKZRI=4+,1CXp ¦©¤ yqkYSPRSSTPTVTYcjq~¤¢¥¥¨©§¦§§«§¤§£¥£~xshZWPKKDKPUZW\]^Y^dabagf^\^aiciafhgajfcbhhhjknnqplnpnssrroorqyxzr|}z{{wyw|zxzwv{w|~~~utjmphmmrmnpnxruw|rspowzx{|x|rv~|twz{}|¡}¦¤£©®©ª¬µ»Â¾±¬·¸ºÁƶ«´¹ºÄž¹´¸ÂÄÆƾ¸·»½½¶±¸ÂÃÉÓÒ×ÓØÔÓÒÒ×ÖÖÓÓÕÖ×Ú×ØÜàãâäáÞ½ZJSZ[\cadfhekfcchhffddaeg_^[agooqtzqea^\\UYbomwoO6+*23(,9&,,%:+1.31;972264876/./.')05A6<<71-(120++318=DNQQOF=/'1<Xn ¥ª££|si`OQSSQRUTXRWW^jn}¡¤©«§¦§¦¬ª§¤¨¦£¢¢{sh[WRMMKMPVYX[_^_a]]cfjq^bbhf]f`ccddcgchgkhjnhkolnooooqtuqvurvouvyxwwwuyz{|~sysy}|z}z{{volrnjohtnsptwsx}vvysoy}}}uu~z}zxxvvr}}v|yw|y~¡«¦µ¿Æºª¨´»ÀÁ¼µª¹À¼´¶¾ÂÂÄÀ¸±²¸³²°¹»ÈÏÏÒÕÕ×ÒÑÔÑÓÑÐÕ×ÔÒÒÔÖ××××ÜáàâäÞÏ«uQKUYX^dcgcdiecjedbchgcgecaa`jilpq {wjZYRVRWY`lqxsX7**(0('()/*,/*3./5163:30627422+.1+,04;89;3./7-5/./77=B<NGML@901<Tl¡ §¢¢wqb`TOSPT\VRLTVU_iry ¢¡¥©¨¨¦ª§ª¨¥£¨¥ ¡{wnj]RQHKOIRUX[Y_a`````cjf`gec`^ggc_f_edhhggjgjmornxjursqpqrsoqrxvuzw}xwx|z{z}xyz}{|x~ ~ytojhjlqsmopotxxt}u~vul~}y|otyw|ss|yln|{ ~ {¡¡¥¦£¬µ¶º±·»¼Á³³¸»ÁÆ·®³ºÃÃĽ³®³²ª¥®¼ÅÊËÐÔÕÕ×ÕÔÑÍÑÒÒÓÏÐÕÕÒÏÑÒÖØÖ×ÚÞâââáÜͤgNPSVY[ce`debfeeeacdace`c]Y\ekrqsvl^UNPSORWfqthA4.1&(''#&(+))+02079658?4241./**,,(/295<21,'.2+1-105;BCEKALF;00DRm} |uf`YOLVRXTUVUYX[bns}~¥¦§©©¨©ª§¦§¨§£¢ }vmqhSSIHJINUX\\\d___ddbbg]fchc`djjjec_chcchfdcgpoponqwuppsq|tpsv{qyxy|{w|syz}zy|yy{}qpmnjdnnpompwv|zurwtrv{{xytqxzt{ztnz}vt|zv} z{{¢¦¬µ§ª±½½Áº½·°½¾Æȵ³½Â¿¿¹·±«ªª¯´ÃÈÑÑÔÔÏÕÔÕÔÒÑÌÏÒÓÓÐÏÐÒÓÐÊÏÏÓ×ØØÚàáâßäàÊYSWQWV\]ac]debabe^dbabeba\aenoow~ ~tjZUS@DCGS[kv{ kR21*.$###(*07,-14714867.1900021-+.5,1151821.-/2.15347>FJHLBAB=?FRgx~vi^VQPSWYVU[SXVV\_gpv}¢¤§©§©¬§ª§§§¤§¤¤¡|uqie]WSKOQSVTWY^]_c_]cdcfag^be]ejohhiehffajngimnnporpsvussouvsuysuv~swzz}wyzx~{|}~{x}wnelmmgqqimnmlt}sxyvm|~|}tx|{}x|rxsk~ { }{ ~ ¥©¦§®©¤ª´ÀÀº±ª¹¼¿¿ÄÄ»½¼¿¾»µ®©®ª©³½ÄÇÐÓÔÕÓ×ÐÒÑÐÑÎÐÒÑÍÒÑÏÐÐÑÓÖÎÍÎÐÓØÙÖÜáâÞââÙ»wUOQWVW\`[\]fbadbefeca_cccbaikrq yi_SG:@>>NZemw tU6+*$)*,())(,+..<84<6798267744..%*-3357;832),.+/.4443?=FORPC@8=K[jw¡tneXOQUUVWY`WWTQ\\Yepv¡ ¤©©©§ª«ª©§§¦¥¦¢§xsjaZUPLUKQW\X]]X\\[aaebafcaebcfmhgeegdbefgfililjjnqopqqtrrutrsusuvwyxzy}wy{{|y} z{}utiijfmlirkrp{qyuqpsry~ysz{u|yxux}uqoz|~§¥«¬½Äµ§¥±¼¼¿¶»³»ÂÁø¥«©¥©µ¾ÉÍÏÐÛØÒ×ÒÓÏÎÌÑÐÏÐÔÓÐÏÏÏÌÍÐÒÔÔÓËËÎÕ×Û×àâáßáàÒ¨mWJPOVVaZ]c`b_^_bjf^ba]bY`dippr} wfaOA599;BV]rpz} ^8**$$&()&)'%.)/-425?3B6859753,)&&.246588.0.)58,3;BMI<?BES[=G<<IPgx|riXTSRWZW[Y[^YVSZ^bkt{ ¢¤¤¥¤©ª¦¤©¦¤¢¦§¥¤¡ |tmb[SNLSQRS]ZZ\_\a^bbd`efdee_ckekgecdacfdegfmnmkolntottpqstwnryuvvy{xuxs{zv{|y}}{~~}rpkjielgkrspvuqzvkm|{|vzs}zwyzsku}tmvwyv}w¤¥¤°´®²³¯µ·¾³±¶ºÀÀ¿»ª ¦¯½ÇÉÔÔÔÔØØÑÑÑÌÅËËÌÐÎÐÑÐÒÍÌÌÐÌÌÏÔÔÖÓËÎÓ×ØÖØÞßßÝÞÙÇ¡mMKQPTX[Z]`faabce_\ca^^[befmrt{{laQC<8/3:NYbouymH5,1&&'+)())),2/7:<481/7823:42..((1836;47-0-.+,0.8<GEPCADVHBECLZiv|rj_ZWPQWYW[[Y\SSOU[dim~£¢¨¦§¬¦§¦©¢©¥©©¤¢|rj`YXNNHMNQTW^_Z_^a\`^aafdgghgihgbfhgbggfidkqlkloshkqotrstuusnwuwzzyuxzzv{xyw}{~ |utnnmqliohhroqtnnxpmwy|{sxstz}urrxsouuv~ z{ }~~}¢ £§¯°¦£«¶³¼¹²§±¸½Áº±ª°¨¿ÂÊÒÑÑ×ÕÓÔ×ÔÏÍÍÈÈËÎÑÐÍÌÎÐÐÌËÍÎÏÍÐÐÕÔÓÎÉÏÔÔÒÖÛááßÝÙÆhQLMTVQ[\[aaba_bd]eb`^\`filtu||qfXF<3.88ARWeut{pP4(,'&+/3'-)+1.05<;<45:5:886241*1'.2;9>51/*,%(,.-5DA?=FGDKUKKCQZk|{reYUOVXWX[U[XXSVXU\_jn{¡¢¦¥¨¥©ª¦£¦§§¦¦¥ tqj_VTNKJMRXUX\\Yaaca`^f`aeme`gcmfgjdegagbgdlkoqjoniovpwypsuvvttwzxvzxx|{~}{wy{{{ wmlspfofgqlopsusvlpmztwyuwqsmq{lstpqvwsz}| t | £©¤¤°¸¹²ª®¯¸¾À¥ ¥¸ÃÇËËÔ×ÔÔÔÏÎÏÎÐÎÍÏÊÇÏÐÒÏÍÍÏÎÑÉÊÎÏÎÎÐÌÒÕÐÍÌÔÖÑÔØáäßÜÞÙÅ\JRMOUXVW\b_^^]^]_^a_bg`hnqty }{mkSI@4.05;GW`lrw Z=25,'1)'&,.+1.5;=:3590=46822/-0.++5<>;:432,-3030>6:<<>AGCKPIJMXhs}rc[YSSVWUZYWZZ[WVYUZajpy}¤¥¥©§«©¥¥§¦¨¥¥§£tok`ZPOIIMTX^Z_]^`_aa^]dibghe`jjhghbff`gebfimmopjjkpnrqyrstuntvrzv~~}z{xys|yyvu||{thokgjoiipjktoqtqkvy}zxquwrnv}woqsrmxz|vw{}{r} ¥¨¥¬³½½¬´²²À¿± µÄÏÐÏÏÐØ×ÐÏÏËÉÈËÎÐÑÐÆÇÐÐÐÎÎÏÍÏÎËÉÎÐÑÎÊÌÏÒÑÑÕØÔ×ÛÞâáÞÚÝØ°pTNOPTTY[ZYYZfdbd_aa^_b_fhps}|se]Q93)*-4CL[flqz~fF0*'<=IF;),*+-4;6?756689;1746/-3..,879=35/3*,-0-)7?9;:<EMNKOQPZds wob[RVSS]X^WY[ZWVXXRVaeps} ¤¢¥¥¥«©§¥¦¢¤¤¡¡¥ ysna\OIHMNPVX]Z`]bebb`aej_eid^eefhg^edaggcgmikiljopjqsmqrytwsqsxzwyy{xy{us|y~y}{nkmskjkonosmmqquqitz|vtr|tu{ryxyrfjxuy~xy ~zsyª§¨²»µ®¨¶¶°±½ ¯»ÂÆÊÎÒÑÎËÓÔÌÈÈÌÎÍËÎÑÍÐÌÇËÏÐÓÐÎÎÐÌÌÉÉÊÏÎËÎÎÔ×ØÕÚÔÙÞáäæäÜÜÚÌfPJQOQSQVTYW[]]X^]^[W\fhipw| }rf[O9,((1-=KUbkquz £ kI3)01RV;>99.+,255375341668;71/,/-)1468:862+1-0840.8?8?BCKNJKER\dpy |tf^OTX\W[]\ZV^ZRSZVXZ]hq}}¢¥¦¥¤¨¨«¤§¥¥¨¦¢¡ }{pcb\PLNGKTXTWZ`a_a``^]cb]bhabbcdgcgc_dahcekjkilkjnnktltutsurtuvxvxy}v}|zvxy|y}z~tjkopghonqqynqrtqlvxvzxtutuvzvlzxkdgtrs~z}}v ¦±·´®©·¶·³¬£§¡©½ÆÉÌÌÇÉÍÏÎÌÇÌÎÊÊÏÑ×ÓÎÐËÉÍÍÆÌÍÏÌÌÌÍÊÊÉÉÇËÑÐÔÏ×ØÙÕÚÙÙÛáâäæáÝÜÛÁYKLNIVRRUXZXZUXYZ[]`^digtw| |xg]N@0-)--:FTbcjsvvZ>+33+*1--.--).1/47238045499800+-,/3=8;30///-4/472155<=I?EPKUQXcmy {{xjcXVUUS^\]a[VZ\[X[XTWYdo{¡ ¥¢¥£ª©§ª¤¢£¡££¤¤ wyoe_]TNHMQVXZ\]`b_adgc^[f^bea``efdZcecdcjfhmihelinuqqtnyttvtutuvzwsztw{zzvzxy}{tmokjmmonsmtoowoplvvvztszv{wvsusvoimuup~~zv ¡ ¬¬¦£§¶®º±¤±ÄÉÍÍÏÏÍÉÇÊÎËÅÆÇÍÓÓÔ×ÕÎÑÐÊÈÊÇÆÊÆËÉÈÆÆÉÉËÑÑÖØÚÐÔØÙÓÕØØØÞßßäààÝßÚ¾MGKLNOKUTUTZUX_\[Y[abgirv~xj]J61)%,189R`_hkw| dA*(0&*.'3-&*)0*6436474.38430./-/-125:=DB..025:25/13/4B=CHJPQTXdpz £zznbVSQUVSYic[][\[WXSVTVcbpt¡£¥©«§§§¤ª¥¨§ ¡ zljaWSOLUNQT\^^eacddfbfbf__haa`ghg^`kfcb`gjlmihknknmywmupstsrrytxvxwzy{{|}{z}|yuwqjljjor|rrmmn{rrttyvrtttyrcpvsiopqnx}yv}v { y ¡¤§£²·°«¬ ªÁÍÏÏÍÏÐÐÍÉÄÈÉÌËËÌÙØÐÏÑÒÍÊÌÉÈÆÂÄÀÃÉÈËÈÆÐÏÛÖÚØÖÔÐ×ÖÕÏÓÕÕÚÛÛàääÞßãÖ¨`URJJHHQQVOXXW_ZZYW`_giqvq`XN</%%$,7=JPdgrxzqQ8((%'%,.+),*4014887215@<5622/,#),,56<=A9/+102172147289BBQMMQ_iqy ¤¢tti^TVQYXZ\_]\Y[XX]WQWVYabky¡¥§¤©ª§«¥ª§§¤¥¥ ~sqd`ZSLGMMNWUYc_da_aqccad`bfdbfeccgjefgdbghlgekijkkrnlttrxywuqttvvtrwurxy|~|~wrrrrnljmluvoorkmwoqvwvsvuyypkmtlcgmpqtxrw |xy}~ |~¢§¤¥´¼·«¯¾½ÄÒÐÍÊÍÏÌÍÊÅÂÊÎÑÍÊ×ÕÍËÊÐËÉÄÉÈƽÀÂÄÐÓÏÈÒÌ×ÔØÖÓÓËÐÏÐÍÏÎÒÐ×Ó×ÜÞßÜàÝÅ iYNLKFRQRNTTSVTXXY`bgirx~yndVM>0&$,-15DOdafuyd?+)*&#)0*,,00117;25:78396552&.)%(-08<7;21),)4//3301:5=7;@JJQ[irz £££kkfUPSS[XW[[ZX][Z[VZWPXT^dow¢£¦¤¤§©¨§§¥¤¤¥¢~wrlwYRHGPWV^YY_``eY^bheh\cadcbf_dafkhcfhaejgdfejlnpotmquvzyyorrtuuwywzywzy||~ wuxssnkrzokuvqpvkpstuxzty|xqrsuooqrrsy|wv{|s|zxz ¨±·¥¬½ËÉÈÎÎËÊÉÊÉÊËÉÈÈÏÓÐÉÇÏÑÍÈÇÊÉÂÃÈÍÌÄÉÎÆÑÓÑÉÌÌÔÑÏÌÉÏÇÊËÌÍÏÍÍÑÕÓÓÖØÙÙÜßÖ¸z_VPPLJQMMUXT]YSSV_akpu|~tcXK;/'/@5,*:O\`jjt lK96-&#%%+0+,1/1;686??631942,--+&%1159<<3-++285450578@H;=7@FOUcuz¡¤¥cc[UTWWSWX[_][_[]]WVSR[\[ejz~ ¢¢©¤¦©¨¦¨§¨£¥£¨£|nkaYPOKOPLS_]X_baaecdagZhddcac]gh`cbddifjigjjilmjroqptr}zsswssyuwwwyw|x{wu~|ssztovonzkioqnsojoystztpxoinrqn}zq{ztty||y {y}v}¥¬©²©¦¿¾»ÊÎËÉÊÇÉÉÊÌÍËÍÌÌÉÏÏÇÂÅÊÉÆÁ¼ÄÅÄÅÎÓÍÊÓÆÌÓÍÈÇÃÇÆÄÄÄÉÐÍÌÏÏÓÐÓÓÔ×ÖÓÔÖÚÝßÞÙθ~jULGKJKLMTS[YV\a_km|}tdVL;1-*#)9A>;T[]dntvZ4),,$%)'&'(,.83:;8<<5-4461/,-30)*2;>;791,,-.5557;:;<?@B@:>FRdn¢¤¢¥aaWQUWXUXZ\b\`[\Z^[XVYUYggkv ¡¢¤¤¥ª¦§§©§¤£¡¤}{oiaZSNLKNMNXYa_`_aadh`jbfdgaacc`dcchgicnhigjiqkgmolttr{v}twstsq{u|y}zw|wyzypqrprtyvonnoqlopoootvor{tkp}qyr{xk}rm}zw {~zx ~~ §«¯¤|z¯·ÄÇÁÆËÎÉÉÆÀÅÉÍÏÐÑÎÊÄÃËËÉÅÿÂÆÂÁÆÌÆÎÔÐÉÍÄÄËÆÅÂÄÆÇÊÈÊÉÍÒÐÓÑÒÔÓÓÑÕÔÓÖØ×ÛÜßãâÝÍ´aGDCHJLIWWSWUX_ceow}£|rdYS73*-(-=;30;O]`hzy|h=')%))%(('022.=D777656937291-./+2-17?994/0**38924943887:==FFXhx¢©£¥£ZZTSTZTY[YW_]a[ZY`[ZUVSW\kjxz¡ ¢§¦§¦£§£§¡£¤¢}yqja`SJHKJNLU_W\`_e]b_bbd`cha_da^cccadeahblhlhelllqmlrqvusqrzprpyttvw~{yy~~xxpjslmmrwuuqpmpmsputruwzuvrryx}z|z|vuwyxrz x}y|z©ª {¢»¿¿¼ÈžÂÊËÉÊÄÁÌÐÑÑÑÏÊÆÁÃÊÏËÈ¿¾ÉÍÿÎÇÍÒÐÈÆÁÆÉÃÅÈÏÑËËÎÈÌÏÑÓÓÒÐÔÔÓÔÑÔÔÕ×ÖØÜÛÝâáÞÙÂ_NRNDGLSMTNRXcainv||qdXS;3.-,.*"+03?VYblv{lL8,.-%*%')',1-:29;>7::977750/*+&..12;><50+0,1014:37/77:@<D?DRcq¢£¥¢£¦¦¦WWNYQ^^]WY\^XYZV[b^WVYTZ]bivz¡ ¡£¦§§ª£¦¥¦¤ª¨¥¡¤ xsk_XQKLLONQWV\`]_cc`fkddicfbeffbcgccffjffgfflipmnolnortwrsrqv{xyuuxsu{xzyojlrlmnnutuknkkjnmrrp|tts|nm}ywz|{uqzqzz ~{~p ~ £ª¢«ÁÄÅÁ½¿ÅÁÀ¿ÄÌÏÉÅÄÌÐÍÏÍËÊƼÆÈÈÉÄ¿ÍÓƺÈÅÅÅÈÇÇÊÌÊËÉÊÍÑÎËÑÌÌÐÍÏÕÓÒÐÓÓÓÐÒÔÔÖ×ØÚÛÙÝäáãÜÁnlS>EHMQRQVX^ahkr|~ªymfYT>0(*&',+(20>FP]erw}vY4+%+(%(&)/+++1=724;7D:8822497+,'028B::60-+1:/,:76;267<;?ACHPZm~¡££¦¥£¢§ZZUUUZYY][[[ZZ[\_YYVTXWZ`dqt ¤¤¦ ¥¤¤¨¥£¦¦ ¤¤ |yrlb]SPKMIMVZZU[b\`^Zegeabd``dddaceh_fhlpefdgjilmonnoqqsxrvtrvtvtuuy~tuv|xtpjijninntyypnwspnmommostzqrpvtpz{ou|sqz~|x }¯¾ÇÈÇľ¼¾ÈľÁËÏÉÅÀÄÊÊÇÈÈÆÅÆÃÂÊÎËÆÆÒǹÁÅÅÂÁËÏÏÏÌÎÍÌÌÍÐÎÏÐÍÏÏÌÒÓÐÐÏÓÓÓÓÓÔÖ×Ø×ÚÚÛßàáàÜÅxUCFHIHORNUV_hntz|xrjYOA5=22+)")+54=OWbht} ~a?.%#&')+%(-,.-//5<;9878857735--,..278663-.231./8445?;0;3:9>P]k{¤¤¤¤£¤¤¤£YY[QS\Y\`\YbZ^]Z^_\WVXXZ\for}¢¦¥¦¦¦¦©¨¬§©¨£¢ }~roc_WNJHMOSVW\]_`_afc_cc_^c_bffabddeghgachhegpmmlqpoqvvwuvyuwtxuyv{zwyxz{ulotpfjopnrtrotmpqluqipsqmqsutwtqvy~wq|xy ~ §´ÀÈÆÆÇÄÄ÷ÂËÅÁ½ÃÇÆÂÂÂÇÇÅÇÃÅÅÆÇÈÎËÄ»ÇÅÂÆÍÎÊÃÅÎÐÒÑÍÏÍÌÍÐÏÍÒÑÐÐÐÎÒÑÑÑÐÕÓÖÎÏÔÖÖÔØÔÔÙÛÛàæÜÅaA@DCGIONWY_cks¢~xmf\PA4-+1*($(*.08FWZjhvqH-3(#)%++'+)7/5/5B77935078:60/3.2.7<:@G;6.,.9=145343742688>M[qz ¢£¦¤¨¤¤£¢ZZWYW_]_[^]Y][b[VX]XUZ[\bgls¤¦¤ª¦¦¦¦ª¥¤¨£¤¢~|nlbcWNIFLRQVR[][`[^cd^decifefdfhbfcdgch`dgdhkjknrnnpsuruuuswxtzytsstwxyxwlkrojhdimnvvvrnqxpnpsuwriqqovvrmy|qvv yz~||u{»Ã¿ÁÄÅÇÃÇÇÁ¹ÍÊļ¼ºÂÿ¿¿¿ÄÄÆÅËÈÉÆÈÁ¾ÅÉÉÉÏÓÑËÁÄÌÓÓÍÏÑÍÍÍÎÒÎÑÓÎÐËÎÏÑÐÏÓÒÐËÉÓÔÕÔÔÑÐÔÖÓÜäãÙÃ}L=B<DGKMVY^fkv{¡ypf]OB4,52*+&'.0+5?MZ\_ouV4+)*$.***+3,2,15;78217365:730,++70596351(.-29745238166195?PTi}¢¤¤¦¤££¦¥¡UU\X_^[]^]Z^`Za^YZ_]YVWbadmw¡£¦§§©¥¨¦£¥¥¤¡zrl^dTMJMNQRYYY__a\`_``\^ajegeaeg`febdggb`keghhikqmhlqquurwtuvyzxtvuurt|zsrpj_gddfjglu|tvworooqxruyvyouosr{xrnzx|w~ }~©´¶ÄÂÀÄÈÄÉÆÉż¼ÄÄÀ¾¼½Âþ½»ÃÈÅÇÃÃÁ¼ÃÊÌÌÎÐÈÇÐÐÑËÆÃÍ×ÎÍÎÓÍÎÎÏÒÌÓÐÍÉÈÍÎÐÐÓÏÎÌÎÖÔÖÕÔÐÒÖÓÓ×àßÞÖµr>56?FGLTZYems| vqeZOF3/,(++%&&-)/5:LX^i{y c@..,()-.0*)--5.2294;75/346H4400,3254<23-,**/0142?@74/3333;FUgz¡¥¦¤£¤£§¡£UUVUP^[^_\`^Y\]Y^[VZWW^^_cu}¤¢¦§§§¡¦£¦¢¢¡£ ynh\^ZMLOHKRR]]^a[a_cae]c_hdkihdd`cbebbdldbgghrklomlsoosutwtyyvzwuoossr¼|rfe^njfbklckpossusvljtoksprtxtlmwsxw}wvx~~| y®°³²´·ÄÀÃÉÊÇÆÆÈÁ·¹ÅǼºº½ÅÃÿ¾ÇÄÀ»»ÂÇÇÎÑÎÍÎÍÃÈÑÒÐÍÆÆÏÓÍÍÒÒÎÍËÐËÐÐËËÊÓÐÓÐÖÑÒÑÏÑÓÚ×Ö×ÖØÓÒÙÚ×ÜâÖ§[;9<BFLPV_`mry }vl_[C;--.),++%+'-17AK[er{{ sT/*,+-(+2+.4.151;54437944;76142.,-4=<=/1,-+)142302E62.24.;=Lgw¡©§© ¦¦¤£¡¤TTTSW[Z^^]_`\a__^^Z]V\Zafipt ¤¤¤£££¤¨¢¬¤ ¤¤ wrk_WWQKOJPSWTY]b^a`_\^ff`adefh`bc_cd`]eedfhgljilmppouonrpwxwsqw{muuqr}²Ä}medjfhlhdjiloqpqrqtmopkprjsqnkttrkz}}vxvz|} { ~s| y{{w«¶½»±®°°ÃÅÂÄÎÈÁÀÁÃÀ¹¾Æǽµ·ºÂÈÇÀ³½»»¼¾ÄÌÊÊÍÐÍÌÍÊÂÈÏÓÐÎÉÆÌÐÊÉÐËÈÌÏÏÐÕÎÏÍÖÔÓÑÒÑÐÏÍËÏÙÚ×ØØ×ÚØÝÝÓÜÞÚÅE<B@DHORXakpz~sj^UC80*-)03&,&*(,1@IU^_sw~ vW7'.,,)),,()7).46692547?@4?773.,,.+4?:838+.03-=4500160-47:;E\oz¢¡¡¤¦¢¤¥¦£¦¢£XX\TYa\c[_U]Z\`_\^Y[Z\YYagrv¢¢¤£¥ ¢£¢§¢¡¢£ wqjaYTMLMKKTYX`^[[`__a`^c]bjehceffe`badhefegehkimmkpumrqvsrxppsqroqkos½¸xgehiikmkepjosrjrtlslqtrrrvsnnqpmp{{|x|py~uu{yu~v~~}£½Ã½º¶´º½ÇȼÊÊü½Äź¶ÄÅÁ¼¿ÂÁÁ±¬¶¼ÃÅÅÇÌÏÐÌÏÏÉÍÎÉÅÉÏÏÒÏÅÅÐËÊÑÎÊÎÐÑÑÔÏÎÌÏÎÎÏÏÍÏÑÍÊÍÔÔÓÕÕÖÙÖÝÚÕÚÙÙ×±W?<ABCLRZ]cmv~tk^RA;2/-1--/'0*(.,/BHTZmvv~hC6)+0-,-.*1+(1.561;842;9361726.4.41567320*10664;73/.4-+.:<IUi| ¡¡¢¢££££¤£¦£¥^^ZW]]\Ya[^^XZTXY_[ZYYZWderx ¡¤§¦¤£¤¤¤££¦£ £¡zpod`YLPLOSPXX\\_\Y_a`gae``feebefcfbccd`gejejeikknmnvssvxsqtmostwqqnrsƪvdcccghmqehpstpmrpplqsmqyukovurrqxzz}lu vt }zv{y|x¡®¶Å¿¸µ´¿¿¸¾ÈýÃƼ»ÁÁž¸´ÀÈÁ½»¯¹´¹»ÃÆÇÉÇÅÊÍÊÎÎÎÍÍÎÇÇÎÔÔÒƺÒÎÌÒÒÍËÍÑÒÑÌÎÍÍÐÍÍÍÌÎÏËÈÊÎÏÑÖØØ×ÕßÜÚßÞßàÃqUZWGBGOWbimt|zrk]TC<6++.,*-)$'$%*07BOYcov|}sL2)/(,++*)+,;4/22;3875:8;162?2/)034=9:=52025464?=;606(',.6NWiv £¢ ¢¤¡££§¤¥YYXYXZ`eZ\``[[]ZY[YXVXVT_epyz ¥¤¨¦¤§¥£¤¢¦££§£ xpia^XNEFPVTSWZYY^[^dd`gfadbaeadjdeaeahdgbfelkiljlnqusvnvtssurvsooosmºÇ¨ocZhjmjsmdltnrhlwqirnsotpmnrrvr}{zr{~zy|{{}z} {~{tytxt}ox£¶±¿ÇÀº½¼Ã¹³Ç¸µÁÁ¼ÀÀÁÇú´Ã³¶¶ÁÀÂÂÅÉÇÉËÃÆÍÑÊÊÌÎÎÑÓÊÄÓÒÎÇÀÌÒÐÌÏÏÍÍÎÐÍÍÎÐÏÐÎÍÇÇÊËÅËËÑÐÓÕÖÚÕ×ÙÝÞàâßÞÑ¥{aQ8FKLSX^nv|¢{qi]WA:2/.-.,./),&),..5GNYaitx|y`8-)*+/+-1+1-51259710-155236:1/0-/6359:526,-5/76;8281.()/99Lfz¡¡¤¤¥¢¢¢¦£¢\\Y_[Z\]aXZZY[`_Y[WVRZXT_eov ¢ ¢£¥¤¦¦¤©¡¢¢¢£¦¢ ~~ukeUWLNLMPXWSVX[a_[_`b`fabfeedbfcffccedh`gemnkqppnpsrqruptvswusqkjppÆÇ©hbigdrubfikklkkqukkwltstppxwwzys{uw{vyz|| t }~|{qgrpmx®§°¹µ¶ÄÉÆ¿¼À¿³º¼½¶ºÅþÀÄÆ¿°«¸¾À¿ÅÆÇÅÅÀÇÊÊÉÅÈËÍËËÎËÍÐÎÀÊÒÑÎÇÇÌÏÍÉËÎËÊÎÍÌËÌÌÊÌÍÊÉËÎÏÌÎÒÖÔÕÕÚÙ×ÖÜßàâäáßÍ¥nI8?HKSUbmyy}oi[TG:70.,02/(,(%()(*47DN\bkrw~ hB1+,(),0(*.2024/3?<8134868:6/52+466:89:/*3/.678<;110-&!(.2E\s ¦£¢¢ ¢¢¢¡^^][[Y\]aZX]][Z^^]XYW[]V[ekq} ¡¥¥¥¦¦¥£¥ ¥ ¢©¥¢{sjc\QNHJPQOY[RUVa_^abdb`acbgccdhiekefefejfmmonsmnllqooqrlsrtollkhjow«Ï¿¤ubkabehghmmloknpmmrggntrsuqx~z{wt{xv|wx }z zw xolorn®·®£¼Â·ÀËÈÀº½Â´³µ·Â¼¼Ãƽ¸³²«´¿ÆÇÃÀÆËÅûÀÅÈÉÆÃÃÎÐÌÎËËÌÏÅÂÉÑÑËÉÆÉÎÌËÌÏËÆËÇÈÄÇÅÌÒÓÑÎÎÒÍÌÊÒÔÒÔÕÖÖÓØÞßßáäáÝÍ¢a98EGPYbo|{pl_SLA150-0**3-,*)&)'(.<CP[_gn|¬²¹ÁÄÈȽ¢¥¬¢qJ0+*/1,*63,,.028;9<@6210;55:85618410:25:2-/5873;9942/)*##0;\h} ¡¤ ¢££¡ ££¡ ¡¡XXd]W^]W]]`b^[`]\]W]RTXV\ciu~¢¦¥¨¦¤¦¤¥¥¢¤£¨£¤¡}wsn_[PQIGQUQWXXYYe`_`^a^[adcbbckjgcefacbiihnpkhlmprolmtutsxopmqookoqÌζrdegjjgkkilngpkhqsqjntoqyppzvuvzzxotx }{}~||zu{kkug{¦®¼´¶±±¸ÄÁ¶ÄÊŶ²¹¹¸¶±¿Ã¾·Áµ®¥®»ÂÅÇÌÄÁÀÊÉÈÃÀÁÀÊÇÇÆÉÍÌÍÎÍÏÏËÅÆËÓÍÎÌÉÐÒÏËÌË¿½ÂÇÉÊËÍÏÖÔÓÑÎÏÌÏÎÓÔÓÖÕÔÔÓ×ÞßßáääÞÇ>6>CKYanv }qlcRD>83-,)(/0*,&1*%(%(-5COVe§ÃÃÉÒÚÚÛÙÐꫳÆÅ«r\6,+''+/-+;453/7608:6721.7489=84/901;846-//775=4172251.&(-<Pf{¡£¡£ ¢ ¡¢ aaZaZ]X^^Y[Z[^[\YVY\UOQWZcit £¢¢¤¦£¤¨ ¦£¥£¥ ¤¤ztneZQONJLPTWXV^`]]cZ\a]^aaee`dfmgbeidgmggnonknfpkmrmqovtturollkpfly´ÕÈxachrjkhcgjjisnljororsppmlxwnvuvu}} |||z}}nhgl{ª¸¶²¶¹À»¶ºÁ¼·À¾¾±»½¿»·¹Âĸ°±¬¸»¾¿ÇÇÈÊÆÃÃÄÊÈþ½ÇÊÌÈÊÍÐÎÐÍÈÉÈÍËÌÌÌËÊÉÍÎÈÅÇÀÀÆÍÍÌÍÐÐÒÒÕÓÏÌÎÑÌÑÓÓÒÒÕÖÓÔÝàßáãàáݲX6?CKS_ip~ ~vg]R??2+//-0-'0+),&()#(..>NiÀËÉÓÙÞÚÖÕÕÏÉ¿¹ÆËÒÌÁ©Y@/.-.**,102.)116828489678:@B;:71<9540.60,2/0398<920-./,,+7Lar ¤¡¡¡¡¡£¡¡ ¡ZZac[X[[^ZZ\VWYUWTVVSUSW[fkv¡¥¤¦¦¥¢¤ ¥¡¦ ¤¨¢¤~|mh^XSFPKRRS[]^Y``^^\[abf_hlbcdibeb^bejiixqpjnlkihokqnootrooqrlkjjÅÓ¦sebdpojdhjjmnmsmgptosvmillldp}{usu~w|zv~}tn~ytmkr¤«¹²¹½½Â¶°ºÃ´³´¾¾½½¾¿¿·²´¨¢©¶µºÅ¾¾ÂÃÃÆÉÅÄÁÃËÉÇžÃÌÊËÅÌÎÍÌÈËÆÉÊÍÈÆÍÏËÈÄÅÄÇËËÉÈÌËËÍÐÐÍÌÒÕÓÑÌÊÊÑÕÕÏÐÓÕÖÖÙáâáãâßßÄh35CJ[^km}wc_UH953()-.-,+.-&"&#$#&2Iq¯ÇÍÓÚáÛØÓÏÍÃÂÆÍÓÙ×ÙÙØÏ°qF/*+,,3**8C7*33=;:65753485:>CB8422;85:3.1.-3626<7710,++.7;L[s¡¢£¡£ ¢¡ \\`VX^XX\ZWXTV[]TVSTUUTUZbjs¤¡¤©¦¡£¦¥¡ ¡¢¡¤¡|ypfZRPIJQRPPSW\\^]][_```cca`^_\b`ca_`aehfchggkqkmookppwjpppommlkdlÓÏ¿¡|j_aiiekhgekclirvqquroklpoifpyzqn|y|}} ndl}xrpqlw¤°©µÂÀ¾Á¼¯¯¹´¯¯¿Å¼ÂÁÆŵ¤¦¬¼Â»½ÁÁÁÀÅÅÆÇÊÄÀÆËÊÄÁÁÊÈÊÄÄËÌËËÌËÇÅÎÌÆÆÆÆÂÅÆÇËÓÒÏÌÆÆÍÍÐÐÐÌÑÔÑÔÏÇÈÌÒÓÑÐÑÒÕ××ÜßâââàÞÓC:ANSYkw|{si^RI460/1+-1),+'($%#"'2A|¸ÐÒØááÕÖÐĹ½ÃÍÑÔ×ØÕØÜÝÝÊ?**(+,.*+*-.*/,4:;316663521538801664861,5.7165<8/.+(%'278NXl~¢£¤¡¤£ ¡ ¡XXX\[^XX_U_XVYV[U_ZWSXXTYdioy¢£¤¥¦¨¤¦¡¨¤¡¢££¥£ ztmb`THFGMOPOUX\U[X]Z_bXd]]]ab`_^c_affh`^egcehjnjlpmnrwqnqnrnmhelby¾ÙÊ·uk]dgmejaljinhlqvsxuoqiyvlkpxvny{yur ~~{}nqx|~xqqpo~®«²®¥ª°ÆÇÁÁ½»²¨¯°¬µ½½Æ¾ª¦«µ»¸·ÅÀ¸¹Â¿ÀÁÄÅÆÉÊľÅÊÅÃÇÇÆÉÃÃÁÅÌÌÍËÉÃÇÌž¼ÅËÍÐÊÈÐÕÒÏÈÅÈËÍÐÏÐÏÏÒÓÑÍÈÐÐÔÒÐÍÒÕÕ××ÛàâÞààÚ®T5?GQ[hq{~olgRG:/2.-//-.'(*(&3&'-F ¼ÓÕÜÞÛÕÏÄ»¸ÁÍÐÐÑÕØØÖÙØÚÚÒ¸P"#%(/+1.124*195>A=4:89>.17064/=59779<440053<6E>5.+'%*-->Xix¡¢§¡¡¡¡ ¢ VVXYXV]]Z[[ZY]\^\b]TTOVQV`kuy¡¢¥¦¥¦¤ ¦¤¦¤£¤¡¢¡xsga\PFBCJPOSTX[ZUXX[`^]__^a[_a__a^_dbe_fimhghekgjjoikmlolppjgeadc×ØÉ¥{mf`gnifdgmmnnrlpx|qgoluqwtoiu{ztniz|~ ~~v|}xnoy{qrnsqv«®³±±¬¯ÀÉÁºº±¹¬ªª«°²¹ÁǼ¯°¹¹»ÅöµÁ¾»¼ÅÆÃÄÄÄÇÈĹ»ÈËÅÅÁÂÄÈÆÆÂÆÎÌÉÆÃÀ¿ÀÂÄÍÐÎÑÍÉÊÏÐÐÎÈÃÈÌÌÐÏÎÏÎÑÒÐÑÎÒÒÑÓÑÒÏÓÕÖÖÞäÞààØÃx@=ILYanvynkaVI;2*/).()'%%$'!%(.OÀÎÙÛÜÕÑÉ·¶¿ÇÎÐÒÕÛßßááááÚÓÔÈp&&*0,-(1//01247774703AAM73,3415646683520057D9<A96*1*,-4E]v¡£§©¥ ¡ aa[YZW]][YTXUXZY[ZXVURZPTdhp~ ¢£¦¡§£¤§£¡£¤¤¡ wplaSOFDKKPTWRVX\VX]a\`Zbb^a^bc^a^`_ebfaebifejgiiilhljopokmlmeddil£ÝÓ½ymj`fjcdkiigsnkjrsvpmuppsyupp~vmzz}~| y~rqkpy|oaahl}§¨¡£¬¶¸¹·»È¸¯²²µ°¨¯·À¸´¨«¯»ÀÁ¼»Á»µµ½À¾¿ÆÅľÃÁÃÄ¿»ÄÍÇÄ¿ÁÂÇÆÇÄÆÇËȾ»¼ÁÂÆÉËÐÏÍÎÏÇÉÏÑÏÐËÇÊÊÍÎÏÒÍÎÓÑÒÏÐÒÌÏÓÑÑÓÔÕÓÚàãááÜÎN9BKS]oz|woecO@93.+)++%+$$&'#-5k£ÅÏÚàÚÑË¿³ºÊÏÎÖØÝáâääåéèæãÜÜ×0*((-,2,/.036<>465162=7>96:;2333074;5003/:7493750-')*.DWm§§£¨¢ ¡ ¡ __WY\ZXVZWZ[Z\ZYXZYVUVUXV_hr} ¡£¤¥£££¥£¢£¤££§¦¥ zth_TQEJENIQNZSUZT^[_^``faab_]`]b_^Zb^ededhlijnkljjhjjltjnoskhfgmyÃÚ̶§}ohd^akfjkirqhotkkmxtqrutuuyswsy{s|{{ xsy}y|xnekip «©¤¦®»»½·¦¶¿·°ª¬±²³´´³°°¡¬¸¹ºÃÁ½·¶¿¼³²¹ÂÃÁÆÃÀÀÂÄÆÇÀ»ÁÆÇÀÁÄÁÅÈÅƼ¾»ÂÄÉÇÈÉÈÌÌÏÎÐÉÉËÏÏÍÎÊÊÊÎÍÏÐÏÌÌÏÐÒÐÏËÊÏÒÒÏÓÓÖØÙàâãßØ¿sBCNVbjqwmb\NC:1.++)('""(&)+@x±ÇÒÚßÚÑÄ«±ÀÏÓÐ×Ýàââãàääåçèçæãß¾O"*-).',6/,/;7<=91415=739112.3483820.-:5=.87666<,1'++=Ljy © £££¢¡¢¡¡WWY^YU[ZZ_^_W\Z^\]^]WYPT[dnr| £¥¦§¢§¤¥£££¢¤£ xyrk]ONLFEIINLOSYZ\[[_^cc`bcc_bcde]`bgfbfe`lghgenkjmjoonooslkohfckØØijªria`hikkfimqoohgstvqqzomt}{prw~zvs |{ywnjv {x~vkmkjp¢¬¯¦ª°³À½¯©¥¨±ºµ¯¬¨¯¸¿·¢©«¾¾¼¾½½³´¶À¿»µ¼ÂÄÄÄ¿ÁÄÄÃÅÅ¿½ÀÅǾ½ÃÃÀÁÁº´¿ÅÆËÌÊÉÊÈÊÌÊÐÏÉÈÈÈËÏÏÌËÇÆÊÍÍÏÎÎÏÑÎÏÎËÊÉËÌÌÎÑÓÙ×ÝäáßÛÍ ^?BXZmt{yod]SC4-.&*'(3%"$(1M¹ÌÔÝÝÕ͹£§ÄÑÓ×ÚÝÞßâàßàßáâäåêêèäÔ~*)/),2.+,10/499477:6483610...520820,3418;341>62-+*=CKgu¢££££¤ WWUYW][Y^]_^^_]b__ZXX[TYZbmsz¡¢£¨¤©ª¥¥¢§££¦¢¤¡~tj]XNDBIJLNTRTWW^Z][c`baab`aabaeabecaaah`dgmglfjijknmtqsnnlpjbcl ×Ðë rfgibledkmrorkclvvtqlquuwruwxy}qq{}~zxw ~ser |x| {qjomfv¦¦®°¯¶µº»»¬¢¢££¬´°²²·µ¹¬¡ ª±±³µ¸¼±·¿º»¼»¾Â»º½Æ½Â½¿ÉÿÂÄÅù½Éľ½Â»¶¸¼ÁÆÈÊÍÐÉÉÉÊËÉËÑÐÊÉÉÄÃÇÏÏÌÇÁÇËÌÍÎÏÊÍÍËÍÌÉÈÈËÎÏÐÐÕÙÛàáàÝÙ¾MIKTjrwkh^UD03,+$) $$%(2a¼ÎÔÛÙÓÆ« °ÊÒÓÙÞÙÝÜÞàßÞÜÝÝßáâåêêåÛ 4(++()-/,210125;666:23.-*/2/9.63/2/,/.;4<?5:-5-0/32EWq ¢¢¡ ¢ ¥¡ ZZUX[XU[[[[ZZ_^Z``_UZZZX]bhu~ ¢¥¢¥©¤ª©¨¨§¥£¦£ ¡ |ueYVMJBDIGKQPPZZ]__[^^fbbhcbchbac`ccdhc_fefjemigiijiqsroophhheg{¬ÕÒÀ²§wjcjbee`iaiplegjow~smklwvnky|xkpn~ |un|qk]u |zronnkx¡£§¬º¸´´¶³© ¢§£¦³¸Á¿´¦¢®´¹ºµ«²º´´º¾½¿½¸¿¾¿ºÄŵ¿ÉÅÂÂÅÆÀ¾¾ÅÁº·¶¶ÁÅËËÇÉÉÎÌÇÉÉÍÊËÎÊÈÈÉÇÅÂÇÊÌÆÅÆÇÏÌÐÏËÊÎÊÌÐÌËÊËÓÓÐÎÎÕØÝâáÞÝÓ²kMKVhp|¡{oiZH8+''(!$"$$,Dl²ÇÑÖ×ÖÍ»¡¸ÏÕÔÙÚÜÛØÚÚÚÛÙØÜÞÜÝÞâêéç߶B'+*-,,)-5./16239<F.-0072+-35:=:00-9.045454617-052EXh¡¡£¡¤¢ ¡¡¢ ¡ZZ_X][Xda[^a][fa_b\W[\YSZamty¡¡¢¥§©¨¨¦¤§¦¢¢ ¤¡vmf[WREGJELJIMPWX^d_Z\b_ccb`cdfafedcbddceadjjjliekljprrmrrlxihcgËØÑ·ujegebajkhjqiioloywlnlspts~tknw | vot}tcov{~zqjprfi¥« ¤©´¸½¬±¯¬«¤¦¥ §¦°½Ã¬¥¦¯»º¶±·¶§«·º¶»À»´¿ÂÁ¹¿ÁÁº¶ÄÊÂÂÅÃÃÁ¸²¼¶¹¼½ÈÈÇËÊÇÉÈÉÃÆÊÍÌÍÊÆÄÇÊÉÇÆÂÂËÉÆÆÄÍÊÌÐÍËÊÌÎÏÏÎÎÑÑÓÒÍÎÑØØßßßÞÛÉZIVaq{¤¡}yoZXD3++&$ ($*0H¶ÌÔÙÖÐÉ´»ÍÔ×ÝÜÜÙÙÙØ×ØØÖÔÙÚÚÝÜÝæêéßÅ_,*-%',+/45<4;@3477.2:31,22<650)(,11422:569822/.9=Ghy ¡¤¡ ¡ ¡ ZZaV^``]\Z^`\\_``^[\Y[W[Zepox¢¥¦§ª§©¥¤¤¦¢¦¥¤ |xmiaUOSHHKJLEPWTS\a[^acadfc``achc_fdbehddcfffigfkoghnpqrsquxicfiÛÕÍâug`cbdegihgfkmmktv{qqiipysshr}}~wrz|znozzw| ytkmokZf¨¤¯®¤¯´º¸¯§«©¦¤£¡¨½²¥«¤²±»Ã»³µ¸³©¥±Â¾»¿Ãƾ´¹Ä¹·ºÆ¿¸·ÅÈÄÂÂÇÁ±ª»ÁÆŽÃÊÇÇÊÈÅÂÃÇÅÈËÍÊÈÈÄÉËÊÊÈÃÄÉÈÉÈÄÊÎÍÏÓÌÈÐÐÏÒÑÒÏÒÑÐÐÑÏ××ÛàßÜßÓ»|LR\oz vh`PF0+$"$"#&0R¼ÉÔÚØÎÁ«¸ÊÓÚÝÛÙØ×ÖÔÔÓØÙØÙÕÖÑÖÛÞãééßËs,,*,(0,.7/.2140;4;54814/2.3+-,*$+7-02999;:8838.8EXp ¢¢£ ¤¡¢ ¢aa\YW_W[_Y_^`]ce`][]ZUO\\cimz¡¦¨§ª¦©¦ª§¨¥§¨¥¡¢xqf\QJQMJPQNNLWW][a``fhdamcddddci_ddcffdachgihjkkkkolpsrtytsjkgmÝÓɼ¬uba^]iijleiikjovqiszl^fv}uikxzyvzyphuz}xz~rjptqff¨ª¯§µ²®²¸´¥«¢§¡©¤©¥¯··¦¦¨®µº·»¿·±¯¬¬«°ºÇÄ»¾ÃÁ¼±³¹»½¸¼Â¿º·ÀÉ¿¼·´»ÃÇÊÊÄÀÅÉÄÆÆÈľÂÃÄÇÍËÉÆÄÇÈÉÊÉÈÈÇÆÏÌÉËÌÏÐÒÏÌÐÑÒÐÑÓÎÍÐÏÌÍÏÒÔÑÙÜÚàÛϬiNZqx ~pjbY?/-#$"#*9^£ÃÐÖÚÒË»°ÀÇÕÛÛÛÛØ×ÖÔÓÒÒÕÖ×ÔÏÉÊÔÕßáèêàÎ,)*-+.+0021378/81222/--23022.&+//9609=;8<2170..?Mj¡¡¡¡ ZZ][`[\`cY]]]a``c\c`_VVY_hkly~¢£««¬¦§§ª¨¦¤¥¤§¤£|sl]SOILMKIOROXU\[_]b^dfacbc`hgeibfddbehifefgfhnkqrqssmtsrqzojip±ÙÒ¿¸²r_^\d`njegijfpswoureYcopkmz~~~ yt|w|vrsv} yurxvqovoij ©«¬°¯»²¯©¨¤¨¢¡¥£¯¸º¬¡£°¯º°¯³µ³¹¸·¯®¶¹´¾ÇÁºÂŽ±´»¶»¹¼Äú°¸¼¯«´ÃÇËÉÉËÉÃÂÃÇÇÂÅÆÀ¼¹½ÄÉÌËÈÉÇÇÇËÊÊÍÈÈÍÊÍËÌÐÔÐÎÐÎÑÐÐÎËËÉËÌÊÍÐÐÎÑÕ×ÕÛàÖÆRXhx~ vmj`b;+&!'+Cq§ÉÓÜÚÒÊ´²ÅÌÕÛÝÛÛØ×ÕÓÑÓÓÒØÔÏÐÊÊÎÔÖÞßæéãÓ/--*),/+.0018822<<;1/./+002,/&(124250=67375//38Fap ¡¡¡ __\]Y`Z\]]```b]_`a`^c_Y[]cls~¡¤¤ª§¥¨¦§©§§§©©£uql`XMFEIGNOTPYX]\]abddaceacfbdhdedhiddcfffjgjhkolmpmkoslnollfh|Æ×ÏÀ¼¢¢k]Za_ccdfdmlpklqro`Yaktvotv{{~x}}tmhr}uqusqukgkt££²®¯³´¶©¨ £ ¦©©´²±§¢±¶»µ¹±¬¯µ²¯¶¸·¶¼Áµ²ÈŹµ¿ÃÁ·¶¸µ³¹·¹Ä°£¯¶¹»ÇÊËÈÈÈÈÈÁ¿ÅÈÅÆÈĽ»¸½ÈÉÌÌÈÈÅÉËËÌÍÍÌËËÌÐÍÐÑÎÊÈÊÅÈÈÇÇÇÍÏÎÏËÑÐÏÑÒÓÕ×ÙØÑ©l_nw| rq\UF2-)%'/M·ËØÝÙÍÀ¬ÆÎÕØ×ÚÙÚØÔÒÒÑÑÑÎÓÐÌÌÈÎÏÖØÜÝäèåÖ,('('+2023.2311685/0-.3005*/+.&0.4,1.38865-/,/?Vp £¡ ¡]]_Yb^ba__cad\a^`c]`k^ccbamt| ¦¥©¨¨©©¨¥§©¥¢£~woh^TOMJMNQEQVZ[^`\``b__cbbc`eejeeccf`iclkgmohjjlpolpoqvpnjciahÕ×Éì«ne\`hgdamjoqoclko\Wgqqyvyzuyy~wqzzoroy~{uy {swngjz ¡ ¯µ®±««ª£¤£®·µ¬¨°º¸·º¶µ®¯³±²ÀÁ»ºÄ½¯µÁ¾µ°Âû¸¿Â·³¶¹¹¶®µÁÁ¾¾ÆÈÈÅÈÅÇÈÁ¾ÂÇÈÈÇÅļ¹ÂÈÉÊÈÈÆÅÇÉÊÊÏÒÐÑÈÏÎËÉǾÁÃÈÉÇÊËÎÍÎÎÏÍÎÎÏÏÐÒÔÖØØ×Äqkv~{qj[Q?4+(,?eÂÐÚÙÓÏÀ§¤¶ÇÌØØ×ÕØØ×ÖÖÒÐÎÊÃÉÒÌËÌÐÓÔÖØÜàâçãÖ(*&*),.-476?4960.4)++-/4/.,,'0+-1103=7833.**35Me|¡¡ ¢¢ ¡¡ \\__dZ`b]_j`gb`aae_b`c]Y`ckw| ¡§¥§¦§©¦«ª¨¨¦¨¦¦¤¢{pmc\UHLNLQQTSV[X[]_`babcbggeheddecebehegkhllgmnlljmoqrnrxlif_bÙÖϼ«ªqf^acjnhkgoiljmbT`juoqtsv}z}~~{r{{xtgv}~~~}{ {rlmdq£ª¨£¡¨«²²¨¦¡¢ª£©¸µ§¥²²¶µ¶´º¶±°ª§¬·²¾Ã»µ¼¿´³¾¾²´¼À»´¾À¹¯ª¥ ³¿ÀÂÃÁ¾¼ÄÉÈÇÆËÉǼºÀÈÈÆÇÈÃÀ½¿ÉÊÊÊÌÆÅÅÇÄÍÓÎÍÊÀ¾ÁÅÁ¿ÇÈÌÌÏÍÌËÊÉÌÐÏÍÏÏÍÐÒÏÖÚÙÛÒÄ¢~xwtlc`WH/-:WÆÕÚ×ÐȺ®¤¯ÁËÑÕØÕÖÕ×ÕÓÓÔÐÐɾÃÉÌËÌÍÐÔÖÚÚÝâãêåÔ*'&*)38326992<+0+.)/()+631-316-/2;2638.,''+14BWp¢¢ __`]^^aad^cagdba`f_bb_b__fmpw ¥¤¥¬ªª¦«©ª§¨¡¦¥¢ {ricTTNOJKNNVXX]Y_b_h`h`_cdd^jeecbjfgda`dkmjlnhnmkksmrsponknhcn ÙÒÔ¹¸xok_ejjhacqijdeaRVmssqzxnryyuy~xwzx|~ywr yvofbjx¦¬¬£¥¦¦£¢ ¨©¨¨°¢¡©¼¸²·´º¶³³««¬³½½µÂ¾´´¸¼¸·²¹¿±±¼¾º±º¹§¦©´Ãþº½À¼ÂÄÈÈÆÊÉǼ½¿ÀÇÃÆÅÇÁ½ÂÊÊÊÍÈÅžÃÏ͸´¾ÄÃƽÆÎÌËÌÍÍÌÌÄÐÎÍËÏÐÎÏÑÍÐ×Ö××ÖǪ xl_RG9=Is ºÐÚÚÒËij«©¹ÉÌÒÙÙ×ÕÕÓ×ÑÔÑÐÍËÆÅÊÌÊÉËÐÑÔ×ÚÝÝââäâÓ&%%(+,..27;:B>342.2-0-*+,/)*62,8513038*+&"&97Jg¡ ¢£ ¢___e^c`bcc_eecbe`ec_a^^]\cpp| ¤¨¨©ª©¦¨§¤¥¦¤¤¨£¢ zpkeXTVINPTTSXZ\a]`\bcfedghdg`_cnehagfeggfkkhhjnopnmoqqrqplkefp¶ÙÔÈÇ«wuhcdgie_lkigjfZ`kuxzxtunw~}vz~zvtq|~|xm{ ~nabi«²¯¨¥¡¢£¤µº¬¡¬«´¾·¶±³¶¯·µ®²¶¼º´¶ÁÀ³¸º·¹°¯ºÀµ²·Áµª¨«½»´¾Ã½´¶ÀÃÀÂÇËÆÃÄÇÃÃÃÀ¿ÅÅÃÃÅÈÄÀÁÈÉÌËÈÇÀ¿·º¶¥¯ÁÉÊÅÆÃÄÌÌÌÉËÌÌËÆÍÎËÍÍËÐÍÌÍÓÕ××ÔØÖÍÀ |xfZPDKa¸ÉÒÜØÏÁ¶°ªª½ËÏÔ×ÜØÖÔÐÓÒÑÒÍÏÊÈÊÊÍÌÍËÍÐÓÔÖÚÜÝáââàÓ((%))/7763877:8)222*.+-,+)*,-152826310($"!%-GZw ¡¢¤¢£ ¡¢^^e`cca^dcgmcbbbcab\a``^_glq~¢©§§¥¦¦ªªª¥¥§¨¨¥¤zolcWTNJLPMSQZ[`a\\bbdfbaajgbfbfjgqghgdeefgmoklkpmlpqqourpigdcwÎÛËÆÉ}gn[ba_ddgejhc^ilqu}wqqvyrqtsz~|wigpzz|yw{ ~{zm\[p}£ ±µ¨´»¤«®±¬³¾º°³®®·º¼·º©µ³³¸À¿·µµ¼¹²®¸¾·®±´£©±¾Ã½½À¾¹µ¶¸ÁÃÂÃÄÄÂÇÆÈÆÄÄÁÂÄÀÅÈÇýÃËÉÍËÇ¿¸©¨ÀÆÊÊÈÉÅÅÇÍÌÉÈÈËÉÉÈÊÊÌÍÌËËÈÌÍÐÖÔÕÕØÙÖ¡ zqeYV[w¥ÁÓÝÕÏÊ¿¯´¬¬ÀÌÑÖ×ÕÖÖÒÏÏÒÔÑÏÍÌÉÉÈÊÊËÌÌÐÔÕÖ×ÚÛßãâáßÑ|'0(-22-33346<870/5321.00.*),707>268>0) $!$)AUk¡¢£¢¢ ¡cce`cb]eeeccdc`eaa`^e]X\`eip~¤¤¢¨¤¨¤©¥¥©ªª¬©§©¤ysk`XUOJOQQPWX[ba^]edhfbdfhlikcghemhjgafejfmonsqkmootvqttomjdcÏØÊÐÃxrle]\bdabgda^lpnqryulq}snn~ vofq}{yx}{}zu}{ug\_d{¨¢¢ §°¶®£¬«««°»¸®°º½¿º±©«°²µ³¾½±®°¶¸´±¹½« ©µ°·»Áÿ¾¶¹µ¶»ÁÀ¾¼ÃÆÇÅÂÅÀÅÃÆÃÃÆÄÊÇÃÂÊËËÍɺ µÅÅÉÌÆÊÉÆÉÈËÌÈÅÇÉËÊÈÇÉÊÊÉÇÉÈÍËÌÓÕÖÒÕÚÚÕÁtq`drºÍ×ÛÕË¿²À¹±²ÄÊÐ×ÙÖÓÓÓÐÏÏÎÍÎÌËËÉÅÈÈËËËÏÐÔÖÙ×ÚÛÞáãßÝÍm',)*112354354F110330.-4.6-17978969;40.# %1Lc¢ ¡ ccacddecdddcgfbda`a`_ba^adjpy¢¢¤§©§§©ª©§£¨©ª¨¥£{rj`XONKOPRQ[UW[`^a_d_dbffehbfijfkikdfccddhhjtimlqltolwosqjjggÔÒÐαwwofe]]c^dhhaennnproqnovri`kxuqej{~vw~|v{sqz |mf_p}¦§¦¢´²¢³¶ª©ª«ª°¶ºµµ¶¼¿¿²ª®¬¯¶±±¿ºµ´·µ¶®£¨°·´µ²°¶¿Á¾¸¼½µ²¾Â¾ÀÁÄÅÃÆÄ¿»ÆÈÈÈÅÃÅÇËÃÇËÉÆÄ®©·ÄÃÃÈÇÊÈÇÉÊÍÌÈÄÈÉÌÊËÊÈÇÇÄÂÇÆÌËÊÍÑÑÔÓÙ×Ùλwpy¶ÇÓÝ×ÏȾ¶½¿±¼ÆÎÑÖÕÔÕÒÒÑÐËÊÍÐÌÊÊÉÈÈÉÍÍÊÎÏÐÒÕØÛÚÛÝàáÞÝÊZ-/*'&//20/..4>68B765013/.51312-74184,(#!",:]v¡¡¡¢¡¡¤bbaccdbj`fgddcdjcdj_]]`c\djq~¡¥¤§©§§¦¨§¤¥«¦«¥¤}tjb[VLJROTPWTUW`^_\ebdbdbbeafebikkbjeedcdehosknmoopqmsqqrmdfh©ßÓÕȶ¡{utstf`cX\c`dirnquskfjqyj_[g|vtuhiw|}| wqmpxy{wibfo£¤ £§¨ª´³®ª©¯¯«©¿¿º¯ªº¿·®³§°µ´°¸¼±¶³µ²¨±¶·¼¹¶´³±¹ÀÀ¾½º¹µ»¼½Ä¾¼ÁÃÅÃÁ½ÃÇÌÉÅÅÂÆÍÄÆÊÅ°©¨²º»»¾ÃÄÆÆÉÊÉÉËÍÉÈÉÌËÊÊÈÈÅÅÅÄÄÂÈÈÌÉÍÏÑÑÔÓÕÓ˪¬ÄÑÙÛÚÌÄ·¿¼½¶ÀÈÎÔÖÖÑÒÓÑÐÐÍÉÊÌÎÍÊÇÉÇËÌÌËÎÒÐÐÓÖØÚÚÛÞàáÜߺ?(1-*+,34-21364774882/,**--05<1675543(%%(4Sk~ ¤¤ ¡eebccccfddcecfccdja`cc__ebot}¢¤¥§¥©¦¨«¬©§©§§¤¤¨ {woeYRIJNQMPXZWW^^]ahfebahehedchgdcjgcac[helmlijmmlnpotplof`]i¶ã×ϼ²vlwtgc^\gg^hllhmyqdcpvocbivzvvrv{{ywy||sqxzywtlfks£¡¤¥ª¥©¯¯±±««±³¯²±²»¶²§ªµ¸³¯©©¬·¸±±¿¼¶®«¥µÀ¿¾¸¸´°³²½ÁÁ½½·ºººÁÄ¿¼»½Ã½º¿ÅÊÉÈÈÇÇÉÉÊõ§·¾Ã¾½¿¾ÄÆÄÊËÈÆËÉÈËÌÇËÉÊÇÇÉÆÇÄÄÀÃÆÈÉÉËÎÏÐÏÐÒÒ¾ µÂÏØÛÓÐƸ»ÁÀ±»ÃÈÏÕÖÓÓÒÑÐÐÐËÈÉÍÏËÊÊÆÈËÌÌÈÌÎÒÔÓÖØÖØ×ÜÝààÞÞ®5*/+1.563,/2.6538630.0.).-*/531567973(#&,<_t¡¤ ¤¡¡ ffi`ba_ikibccefcc`cada[cchntz £¢§¥¨©©¬¨©¨¥©¨§¢ yvqgYOPJIORSWYU^^[cfdilfhfdgdefja_jkeh_e`fedhlhmohqopmpnlihb^i¯ß×ɺy{wnje\cffjlhlpki``nnf^dmrwuutyxwxu{{{}~}ypr|}utmlkr£©¢¯®¨ª±¬¬±³±¸¹¬¦¨´¯ª¨·¼²¯°¶¸¬²Á¾®¡£«±º¿¾··º´³¹¸·¾¿À»¼»¹ºÁ¿½¿º¿ÁÁ¹ÀÆÉÆËÌÈÊÆÈǶ¤³ºÁÄ¿¿ÁÁÃÆÇÄÈÆÉÇÇÅÉÌÇÈÉÈÆÊÇÇÆÅÆÄÁÅÆÅÉÅÈËÍÏÏÍÖ˨¸ÅÎÑÙØÐǹµ½Ã·®ºÇÇÏÒÓÓÒÒÑÐÑÍÉÉÊÌËËÉÇÉÉËÌÌËÌÏÏÒÕÔ×××ØÚÜÜâÞßÙ+'*)/6/;=301/4103056/'*),*,-32/84/4(+-''.@Qo¡£¡ £¡ cchbgdfdfbacadbahabcccaccgnv} ¨¤¦¨¦ª«¨¬¨ªª¨ª©«¡|spcZMPMORNVVZY][^]a`deffageefgcabgeid`gbhhjbggmokjmumlihfc^_pÀÞÒÀ²~vtpbiiaclgioifbeig_Zeuvrxuxzvpmw|~|zvomr|~uyqqijtª¤£¬²«¨«±®µ²³º§«©¢®®¨¤®ÀÀ»²¬®¸¶©²´¢ ¦³·µ±¯¸¼»µ½·²··´¯±¸ÃÁ¼¸³°¶ÀÁ¾½¾¾Ã½¿ÉÊÊÌÌÊŽ³©¤¬±´½½¾»ÃÈÇÅÇÈÆÅÅÆÆÅÂÄÉÈÄÇÈÇÇÅÉÅÈÅÆÂÁÂÁÉÄÃÄÈÍÐËÔιÁÉÔÝ×Ò˾¸¹Å«³ÁÈÌÒÕÒÒÐÏÏÎÏÌËÈËÊËÉÇÊÌÊÊËËÌËÏÒÑÒÕØØØÙÚÚÞÝÞÜßÖ/*.*+-640110-.0706:312-1-/%-23763104-*.48Lbz¥£¡ dd`aihgggdeicdcchf_dbcahinqy¥¦¤¦ª©ª±ª«ª©ª¬®©|vmaYNMPKQQUUV[c[b`\cc]`celedhhdf_ghcdbe`dcfelmjikmlnmonkjc^aØÚÍÆ xxxndmdcliejhf[ethZYknsnoszvocfmy}~ujktzwvsuswjw¢¡¦£vz¢¥¤§¦««®¯²·³±¦«°§¤¡°®±ÃĽµ¬²©¢¯³±¶·²¬°¼¾»³¶´µµ±©¬¶¼½¶µ¬³½ÁÁÂÁÂÿÅÊËÊÉŹ£°½½¼¿ÀÀ¿»½ÂÅÂÃÆÇÂÄÃÅļÈÇÅÄÆÅÆÈÇÅÇÃÃÆÀ»ÂÅÅÃÂÆËÎÌÑÐÄ»ÂÌÕ×ÒÍ´¯ÁÈ»´¼ÇÍÐÔÓÓÒÏÎÎÎÍÉÉÊÊÈÊÈÅÉÍÍÍÍËËÌÌÎÑÓÔÔ×ÔÖØÚÛÝÝßÜÞÏi(*,&*164/9;./22.28.22(-*/+,,15.6.60220/:Jas ¢ ¡ ¢ £ aagc_gafdgf`fagcgb_]`f\dklow£¦§¦¦¬©ª©«¬¬¬«ª¦¢ vlc_PJNMMMSVZ[cZ\]_d_hbcbgkccccgcfebecbcfehckjhlmljikkonbaacØÙÑÄvjkkimhfngc^fgi`\irg^gsuph[er{ywwx}{snlv{srtqtr|«¦¥«¥¨°®µ¶²¸¦¦¤ª¥¥¯ ªººµµÀÀ¼°¨£²¹¹³°³²±²¨¯¾Á¹´²·³´°²¯¬´¿¼³¬¬³¼ÁÄÇÆÄÁ»ÃÇÃÀ·¦¤¯¾À½ÄŽÁ¿À·¿¾»¿Å½ÂÂÅÄÁ¿ÂÈľÁ¾ÅÅÄÅÆÅĺ¾¿ÄÀ¾¿ÂÆÉÍÑÄ ¿ÇÏØÑËƺ»·ÁÁ¯³ÀÇÏÔÒÓÐÐÍÏÌËÌÊÆÈÈÉÈËÉËÌÍÍÌÎÊËÍÍÍÐÒÓÖÔÔ×ØÚÚÚÝÞÞÝÈS-)033D675650519108,+5*()('-/25544716577GTj~¢¡¡¡¡¢ ggefcca^d`dbfbd_fia_ca`hcpru ¤¥¥§§©¬¬«®©ª¬¨©§£¡}tn`]KPLKIMZ]XZcV`bfbhcbccafhc`geihfig`kf_ehcjknjkmmhimgk_YefÙÖÍæzuhfimofnlbdimaZZoqne`qqie`lv{ywtx|tqrhm|z{|xuvpm¢¢y~ ¦¢£§¤ ²¼³²¦¬®¤©¨¥£§¬¤§À¾°²½¸±£©³»¸³«©«°±¯«¯º¿·¯«²³´´²¦§·½¶²°®³Â¿ýº¬³´±±«¨°¶»¾»¾¿º¹¼·³¶¸·¿Â¾½ÀÅÅÄÅż¹ÁÂÁ¿¼»ÄÃÁÈÅÂÂÀµ¿ÁÀ½»ºÂÇÈÍɱ¬¿ÄÊÑ×Õ˾´¶ÈǸ²¸ÅÊÔÕÓÒÐÎÍÌÉÉÆÈÊÈÉÈÈÈÇÊËËËÍÏÎÉÊÎÍÍÐÒÔÓÔÕ×ÛÛßÞÞÞÞÞ·B()0/304:3841372/1./+,)%*-52347639=58?@FN`w¡¡¡¢¤ ¡¢¢ cceahbdfadccg_bbfga^e_]ggmmw ¢¦¤§¨©ª««¬ª¬¬¬¦£ sh`YPQOOLOTW[YcY`]`eg_daadfhffcfdg_^afaecdhfilpjnknjjhjj`_YhµÜÒÊ·°¢{~{kakpkilkioppcfiiifhnuplcquzzv~}ykostx~}zzyom} z¡¡¡££¨¡¦¬¤±¶«©©ª¨¨§¦¨®´µ¥£©¾¸®²¬®²µ±±°ª¯°©²µ¬°µ»·¯¨±¸¾´ª©¨¶¼»µ´º¾¾·´¶ ¨²´¹¾¾Á¸»°²¬¶·´·½»ÀÀ¾¼ÀÈÆÆÅÆ¿·¹Àÿ¾½ºÀ½ÄÂÀÀ¾¶»º¾»¸·ÁÃÄÉʽ ª»ÅÆÎÖÍÿÀÂÃÊÁµºÆÅÌÓÔÕÑÎÍÍÌÉÅÇÇÇËÉÊÉÇÊÈËËÍÎÎËÍÉÍÐÊÎÌÍÓÑÓÕÙÝÛÞßÜÞßÛ05002434476:2-76,00*+)'(-43,1350078;CCDIYj¡¢¢¢£ £ ggfce`adadcacddffkbda_agfmru¤£¤¦¦©¬¬²¬¬¨²®®«¥ ~um_`MONPQWU[]aZ[aa^geaeaddf_bffdded``fadfhiehjngmkmhikeba^ZuÏÝÒʹz{magglhchooqlmpmcbkjropivwqpsw zplrqz~}{vqn{¦§ty ¢¤«¯©©²®ª§§«© ©£§¶··¥¬¼°£§®°¹³¯¯®°¯®´³²ª«·¸¬©³À·¶®¨®¹À¼³¼¼¿¦©¬µ²´³¹¾¾¾¹¢²°¶´·¾½¼»¿ÃÇþ¿ÁÇÈÂÂÀ¿·¹¼¾¿¾Â»¾Â¿¿½¿¹´¹¾¼¹¼À¾ÀÂÉÆ·¬ÅÉËÌÐ˼¿»ÆÊž·¾ÇÈÍÓÕÓÐÏËÎÍÉÆÈÊÊÈÊÊÊÉÊËÉËÌÍÎÍÍÌËÌÍÉÈÉÊÒÒÓÓ×ÚÛÛÝÞÞàÖ4-0.,1071;555348222..'(2.44.3:4399:?:FGVes ¡¢ £¢ ddgaccbgjafaacbageded`_eehry} ¦¢¦©ªª©ª¯¬®¬¬´¬¬§©rgc]RRHOPQW\ng^X\_baceabeafbbfcdcgb`cgafjddiglhgkfiojjfaY^aÒØÕÈæ¦skndeke`gjhhonngglsiahqprrnpz{yqklsz}~zpji}x¡¤£¥««²¥©¤¦©¯¯©¦§²¸¸§«²°¬®µµ°°´³²µ°ª¯¶°¨«´·±±»»µª®¹Á»·¹¾Â¶¤¨´¹º¸¸µ¼¼¶·«£«¶ÀÀ¿¿ÅÀ½¼ÄÈÃÁÀ¾Âž¼¸¶¸¸¿¿Á¿¾¹À¼½º½¹µµ¿¿½º·¾¼¾ÆÊ謸ÉÕÓÑÉ¿µ®ÅÇÁ»ºÄÌÍÎÏÒÑÒÐÍÍÍÍÉÉÈÇÌÉÉËÉÈÈÉËÎÎÍÎÎÍÉÊÌÊÈÈÇÊÎÒÒÔÔØÚÞÝÝÞáßÑ,',183769@64,7<963.33-*//31.,-40/1?@AEJYo ¢¢ ddgfefdcceidhfgcfebcagabemquz ¢¢§¤¦¨¬©ª®¨®«««®¬ª¦¤|spf[RJMRJNTVWb[[Y[]`degfedgcabbdccb\d_ccfbdjffhjjkggheca[Y\ÓÕÓÉ·¶¥zwvgeldciohkkhfgnvvddmyrlik|zqom{}z~~skju ¢¤ty¥¡¯ ©«¨¯®´³¨£µ¶¯¡¨³¸¸°§¦¯¶±®°²´¯¨§°¶±¨©µ·±«¬¸¾º·»¿Á½¾Â¶©ª®°²¼¼½¼¼Á¾¸»·°°·½ÀÀ¿ÂÆÁ»ÂÇŽ¿¿ÀÀ»¹²³ºº»¼»»¿µ·¾¾¼¸»µ²¼Á»¹º¸»¸ÀÆÇ»¥±ÁÈÔÔÓËÀ³®¾À¹±ÁÉÊÐÎÐÏÎÍÎÌÍËÌËÉÇÈÊÇÆÈÉÊÉËÊÍÍÌÏÏÎÍËÍÊÉÆÆÆËÑÓÒÔÓ×ÚßáÛßàßÐd!%*-1011.745040560,*.+*4+40/3569A9>@EK]k¡¡¡ ¡ bbcagbejjica^]ceab`afbahfloz¡£¦©«¯¬®®ª¯«®¬ª¤ }unh[TPJGKNOTUT]Z]\b^cbab`ffgade`bbdbcagfbcdkgifigjihjefbWYd¦ÛÛÐÆ´µ§ztjqedjniokle`clnkplqurtsps{xuolx}{ ~ysmjw{{~££§¡¨§ ¥§¡ «°±·²²¶ª °°¯¢¬³®±²¶¯¥¦¦¹µ³²´¬°°¯®¤©¹·³«½ÂÁÁ¿ÅÀ¹±¬°¯³³®°³´¶¾À¾À½À¹µº½¼À¿ÀÂÄ»·ÄÁÀ½»¶¹»¼¹²µ·¹º¼¾º½º±º¾½¶¹¸°³¿½·¸»¾º½Âƽ¿ÆÌÏÑÉƹ¼¾Ä¹¾ÃÇÊÐÑÒÍÌÍÍÎÍËÉÉÊËÊÈËÂÅÅÈÈÇÉÌÎÍÎÎÌÊÍÌÑÇÃÂÃÄÎÔÒÔÓÓÕÝÞÞÛàáÞÃK%$,,)(2-'-127G7?8/23)()40-+-1728B?ENIXlx ¡£¢¡¢£¢ ddaedecghaeaaae_leccb_eghntu¡ª¦¬¬¬¬°¯³®¯¯«¨«£~uqbXRLMPLSOXY]Z]_aaY^ecgdgg``dadbd__deg_^fbaadjflsgkgea^^Zl½Û×ÑÀµ·wpmndfjsrmhnbdhhlpipqrtu{ytrwsp{wz} |zukjfv ywvª´ª¡ ¢¡¡¨¡¢¯¸¹¸´¼·¡ £§ ¬·±¶±©¬±³°§¦¥´¹±¯¬³²¬©©¨¦°¸·°¯²ÂÆź¹±¬±¶·¸·³µ¶¶³±¹Á¼À¼À»»¹º»»ÃÁ¾Á»»ºÁÀÀº°²µ¸µ¶¸¹·¹ºº¶¼»´µ»»±²µ®±··´¯»¹¹ºÁÆÄÉÎÍǸ¼ÇÃÀÁÈÇÈËÑÔÏÍËÈÌÌÊËÊÊÇÆÉÈÆÇÂÅÉÊÉÊÉÉÎËÌÏËËÎÍÊÃÂÀÇÈÏÑÑÑÑÒÔÛÜÝÞàßÛ©4(,%+0*,471,,29216/5.'.),73;3/;;=B<AJT\p~¡ ¢¢ ¢¡ ccd_`cfbji^dg^e`geadcggdflvr¡¨¦ªª«©°¬¯°¯®¯°¬«¨¥xqtdVWNIOLOPSY\]\`___`^c`bikfhbdba^fb`bdbfd_ccbjkjgdfgeba\]tÅßÔÎʶ§®r{{ojvolmficfifnmlpllot{}xwu|~v}~xnj`o{wv¢¦¯¥ ¥¤¨¨¦ª³¶¹µ·ª¢¤«µ¿²²§¥²®«ª¢®¹±©®°±¦«¬¤«´¸¸´¶¿¿¶°±°´¹¸¹º¹³¹½¸´³°¹½¾º¾À¿º¹¼Â¿½¼ÀÁ»¹½¿¶µ±«²°²¸»¹¸¼º®¶½¶³º¸·µ´ª¨¨°¸¶¯¹¸º¿ÊÇÉÇĺÂÁÄÄÂÁÆËÌÏÔÔÑÑËÌÉÈÉÆÊÊÉÉÈÊÉÆÆÆÇÇÉËÌÊÍÊËÌÌÍÍÎÍƽ¿ÀÅÊÌÎÑÒÒÓ×ÛÛÜÞÞÝÕ'$$'***250---715/.0+)+++/402<166128>H\hv¡¢¡¦¢¢ jjd`ecbdc_X_b_h_eadffgceiknuz££¥¨«¯«®¯²¯¬ª«¨¦ {rs`[SRJGKSOTW[Z`b[]^c_^bebd^ddaa`ecdcab`j_hcgdkmkhieega[Z`vÎáÓÊǬµ¼~} |o{ tknibhrccknjulpruqqls|z wyz~{znfs{x{£££¦¤¨°³ª¥«®³ª¡¥¥§¤²¼µ¶ª©¥¨²°³´ª¨¤³±®¯²¯®¥¬¨¦¥©´¸»³®°·¸¶µµµ¶²µ·¼½²°²²³¹½½¿Å¼·¸½¿¿¾½¿º¶±±·¼·¬§¯²°º»¼¹¹´®¸·¶°¸º±©©¤¥¨±³³ºÄÂÍÍÈó©«»ÇÉÃÂÃÃÊÏÒÓÓÒÑÌËÅÂÅÉÉÉÈÈÈÈÈÅÆÇÇÃÇÊÊËÉÏÌÉÍÊÍÎÎŽ·¼¾ÅËÌÏÓÑÑÔÔÞÜÛÝÙÙËi)(&$2+..50.,454/.,.*0'>10078>73:.6:PNiu £¡ ¡jjg`_b`eadceaabaaaaac`cejeqq|~¡¡©¬¬¬¯®°°¬¬«°¬¨§uocYQJGMKNLW[\WZ_bc]ffd_^dd_ed^bcdebc__h`feaeempkgjefka]X^{ÕÚÔÍ»³Ã¸¡xxxslpokmghnkkhor{nhcjrzyttzzzztip¨z ¨ «§¬«°³§¥ ¨« ¦³²¬£¥±³¯ª©©«¬°±²³§§§£´¹®°¬®°±©¦«®ªªº´¬®±¹À¼¹´´¯±±¹º¯©²·µ¸º·¼Á¾»¼¶º¿Á»¹¸µ´±¬²´±ª©²¸¸¹º¸¼®«µ³¬²³¥¢§££«»ÀÇÑÌþµ®¥©¹ÃÆÈÁÅÆÌÑÒÔÔÑÑÐÎȽ¿ÆÇÈÈÇÈÈÊÈÆÄÆÅÄÉÌÉÈÉÎÍËËÍÌÑ˺·°´¹ÃÇÊÎÏÒÑÓÔ×ÚÚØØÚ¶B)% &,/0)+1.2-13716-').-,,4:756+4(/<Q\n| ¡¡ ¡ ¡¡¡¢ ffb`b_biffaf^`ba`a^`af`cekrt|£«ªª«®¯±¯°¬®®²¬ª¨¤¡{sogZQNIJLRVTV^Yb[_a`df_ecd`]acaebg_bed_\dffgffjgnggcgie\[_~ÑØÒȲÁ¶{~zrtqsyghknpagokmmaTguvzqp}|yrsskw }¢w{¢©±³µ°¨ª±§§·±¶³©¡¤¢¨´¯¦ª¯¬®±¸³¦¥©´³®¬®®ª©²¯¬¤«±³²·¼¿½ºº¸±¶¸´²«°´¹»¸º¿ÃÀ¿¹¹¸»¼ºµ²¹¹·°©¤ªµ«®²¸¹¸·º¹´¦±´¦©±¨¡¤¦°ºÇÏÐÌ¿³¬²³¼¾ÇÆÆÄÄÈÎÐÐÑÐÐÎÎÍÉÁ¾ÄÈÈÊÈÆÈÉÉÇÂÂÆÈÇÊËÌÊÊËÌÍÌÏÐ;±µ«¬¹ÀÈÁÍÎÏÏÎÓ×ØÚØØÖ6/#%+--)6..<5/78;624,1/,/+94=85.*'4;Kaw ¢¡¤£¡¢£¡ ¢¥¢¡ __b]^bbf`ed`a`ca`dafbfa[cirpw £¨§¬±¬¬«®°¯«ª§¦¢vrc\VONLQSTVX_\_[`_`abddcdaaacebg_g_ddhbbdciijfgfjjjdd`[Z\ ÕÛÎÃÁ¼´ tu ~xpvthgmogeoomfc`gosu qs{~wttnjs ¤xpr ¡ ¡¯¶´¬§ª©«¡±¶³³´±±ª®°°¬¬°«®·³¸¥¨ª³´°«¯©ª§¨¦¨¦¬´³³³·¶º»µ°²³´·º¼²°º¸¸»¾¿ÀÀ¼½¸´²¶¶³··º¸°©£°²«§°»µµ·¶²£§³©¦§«»ÄÊÏÈÀº§¡±¾Ã¼ÃÇÇÉÈÌÍÑÎÏÏÍÏÎÌÆÃÁÇÇÇÈÈÊÉÆÇÉÆÅÆÅÈÈÌËÌÌÌÍÌÎÍÏÎÀ¯¨ª¦©³»Á¿ÌÐÎÍÌÒÔÚÛÖÙÌm3/#&,)(*(*003143?H8,*,1.36;0=28++%0@Wq£¡ ¢¡£¢£¡¡¢ ¡ ¢¡cc_`cc_g`mjcaa`bc`e`[aaaadir~ ¤¥¦¦®®ª±ª¯«§¢¤xtcYPLNJLONUX\[c`ba_`cddaee`cbcgcac_d`facdbdgjfchfkeehc_[`ÞÙÐDZ³± uy {umjgdhhghxqhinqqjrw}swqljqohzulu¢¦´³µ¨¢§£¬²µ³±²³¬©« £¬µ´®ª®°²³¸´§¯ª¯²°«©¬£§¯¯¦®´¹µµ²®´§£°¶¶¸»¹¶³¬¶º¼¾À½À¿¼µµ¬°²··´¹º¸³®¨®¸£²¸¶´¸µ¬¤¯§¢¢´¿ÍÎ͹µ«ª¹¹ÃÄÆÆÄÉÌÑÐÍÎÏÌÌËÍÉÆÅÃÃÇÉÈÈÈÉÈÈÈÇÈÇÇÇÉËÌËÉÍÍÉÌËÏÒƶ§¤¥§¥ª³»ÁÍÑËÈÊÑÒÛØÓغ>-**&**./-1-4421:A:2&+/7,2358=841*)6Hay¡ ¡¡¡ ¥¡ ¢ ¡¢ __ccgeac\c]`aa\fe_gc]_^fcfqsz£¦©«¬««¯¬®««ªª¦¤£~ysa\VLLMPSVY\Y]^^[^`aecdbehd```fecca`cc]ccagjigihkkgjd`_W_àÛÒʲÀ¹ ¨¢ |zijsdelihllekutlfqse`efnyzkqv « ¬±¯¦³¯±·µ±¯«¥¦¨¤£³³°¯§¬²¶µ³¬¦¤¥£¬±²¨ ¢¬±®³·¶§¢ª°°±²°·¼»¸¹¶«²»¼¿¼¼½¼¸³°®°°´´³µ¶¼¶«¥±¸§¢·´²³®©£¡²ÂÊÏÐľµ«¯¼¾ººÃÄÅÆËÐÎÏÏÊÌÌËÊÌÇÇÆÅÅÃÇÆÈÆÈÈÈÈÂÆÉÆÉÌÈÊÎÌÊËÊÎÎÊÏʸ®£¥¡¨³ºÅÍÆÀÀÅÍÔÕÓÕÓ*.-%)/,,-/1921,/61.53+..2-00205410->Rm ¢ ¤¡¢£¤¡¢¢¡£ ¢¡¢__fech^b`adbcbbee_ibbb_adgrt{~£ ¦§§ª¯®¯®¬°¬«¯¬²¬©«¢}vrd[VSROQTU`]\^^^_[d]ffgefdaf_`ebegaagecebbihigejiicecb^Z^ÚÛÒÁ·½´ª·¥~vipninohdccdutrlow~slfbedq sn|§£©¬¨ª¦°ª«±§¦¬¬¥§§¡§´¶±¬ª°²±ª ¦²³°§¦¦¦¦±³°¤ª«££¨®¶·±±±»¼½º»±¯°¸»¼º¹¹³´¶°°³³³·³²¶¿¶ºª¤¹««²²®©¦ ¦»ÊÐÎÉ¿´²¯¼ÃÃÀÂÃÂÅÈÌÌÏÌÌËÊÉÈÈÊÅÇÆÆÆÆÇÇÉÉËÈÇÈÅÉÈÈÉÆÉÉÊÍÍÍÌÍÏËÌͽ© ¢¦¯¼Éµ»¼ÊÑÒÎÔÅ](&)*4*1-,4.171-02/1++-1//.0+1038:2>Idv ¡£¤¢¤¡¢¢¡¡¢¢¡ cc`aaaade_dj`a`ba^f_^cbbjhmt¢¥¡¬¬¬¬¬°¯¯¬®¦£tlbUXNQLNQXZZa_abb_bdbchef`ge``c`fccc`cdaecdfbkcagghdcbYZY ÙØ˴Ķ¥²®©°« zuortnqnaSUimqhgmw~xvrijfgrpsvu¡¨£¦¥¢²¯¯«¨¦¦§¤¬©©¨¦§£¤¨µ²©§¢©¨¢¦££¤¡¥®¬¨¯«©¬¢¦ ª²¨ª®³³²±³»½»¼µ·®³µ¸¸´±±°´°®©¯·º¶¹»¶¶´²°± ²«¦¢¢µÄÍÑÑ¿¶·°¹Ã»ÅÃÃÈÉÈÎÉÌÌÉËÇÈÃÆÂÆÃÃÅÆÆÆÆÇÊÉÈÈÆÇÆÇËÊÊÊÆÊËÍÌÐÎÐËÊÏÇ´§§ ¥´¿»«´ÀÉÌÍÒÓ¢>(-*(<2767..61855:/-,*&+2-.-+/3:;IBEXr¤¡£ ¢¡¢¡¡ ¡¦ £¡¡ ¡``c`c]`e]b\\__bb]cbb^b_afhou| ¢¥ª«®²ª¬®¨¨«¬¬¨¦vn_WQPNMMRUYXa\`ac[abdbdkdec]_fdccdaace`cgebffigghfcgfdXZ]ÞØÆĸ¬¬± ©~qzvtobWS]rllaixywxuxng_s| ¡rhmxx¡ ¦££ «³°²¯¨¤¦£¤§«®©§«©©¬¤ª«²¬§¥©ª§¢§£©¯±®¥¢¡ª®®³«¬«¨°³¶º¸»¼·¶¬®´±´°°¯°°¬¤§¹µ´²³³¯³®¤©¢¨¥´ÉÐËĽ²¨µÁÃÁ¾ÀÂÁÍÏÎÌÊÆÊÉÈÇÄ»¿ÁÀ¿ÃÃÇÆÄÂÅÈÆÆÈÈÉÄÆÊËÉÌÈÊÍËËÏÎÏÈËл¯ ¡¦°¾º©³¿ÄÇÏÔÏs-,'+,1@9//7/37@202+1))//40)()-3CLQOTiy¡¡¢¡¡¡ ¡¢¢ ¡ ¡ ^^b^\`ega]`c_a^e`c\^\bfcgeiw~¢¨ªª¬©¬«©¬±¬©ª«®§§£vkfZQUKOMTRYYb_^`_]bdcea_`acc_cd`ebfacabcjfdbfgfjdhhbf^`\^ÝÙɬõ© ~}ypi[Xaia_gds|wtouse`x uooq ¤¦©¥«²²®««£¤¥¥¤¦«ª¨©¦ª¤¡¥¬®¬£¢¥§®¨ ¥«©¢««¨©¡£¬¬°«®¬°°²©°µº¼¹¹¸®°®²²³´¯®°®¬£¤¯±µºµ®¬§¥£ ¡ª¸ÁÆÏÁ¹´¶¶º¾»ÁÃÄÆÉÍÒÎÌÆÉÅÅËÇÅÁ¾ºÀ¾ÃÂÃÅÁÂÈÈÇÆÅÉÈÄÆÈÉÊÉÆÈÍÌÉÏÎÏÍÉÑÆ©¥¢©±½¸¦¶»ÅÃÎÕ¹?.3-#'<8E-3/3/820.1(3))017-,2/2:@FOOgt ¡¡¡£¢¢¡ ¢ ¤ eece`a^j[^c_d`a^^`d``eh`bdkv~ £¥§ª®««ª®«ª¬¦§§£¥¢umaYYNQOOLPZU]_aaeahiidf_^edddaceccdabeaddffghcilc_edc^ZT\ßÕƲÀÄ°¥§¢¡{xhfdem`WPapspnqpqhkt nrw} ¡¦ª¬ªª©©§¥£¢¤¬¬ª¨²«ª« ¢§®´¢ £§¨§§¨ª¡¡¥¢¦¦¥ª©²±°°¬°¤®«¦º»»´³²¯ª©²²°¯¯§¬¦§¢¬¸¹·±¬¥«¦¨µÀÈÈż²©°À¿ÃÀ¿ÃÃÄÍÏÏÌÊÊÆÆÅÃÅÃÁ¾¿Â½¾ÂÀÆÄÆÇÈÉÈÇÉËÌÉÆÇËÉÉÉÉÏÎÊÏÏÐÊÍѳ£ ©²¼¾~¨¸ºÁÆÑÒ/&&/'')/=42J<513,.++*-2/27+,0.:=LUV`q} ¡ ¢¡ ¡¢ ¡£¢¡ aa]db]a\\_a\[]a`ad_]beafahpv ¤¨ª«©©¬©©ª©¬§ª¬©¤¤uldXWKLNNLUY[^`\[d`_bm`edcc_bccbcaeac^badcdeibddjiad`d_XV`¦ÞϹº¾¸´®¤²µ§~xpkhdia]T^ispjoqj_dw nvvqy¡ ¬£¢§«¦¡¦¤§«¯§¨¦¡¨©©¨¥¬¥£ ¡¸°§ ¥¦©¬¬¡ §¥¥¬¥¤¬¨³°©³¯¦³¦£±¹¹º´°¯¥¦ª¯«¯°®¤ª®¨ ¯¶±¬¡¡ªºÂÏɹ¶°´½µµ¿ÅÇÇÎÌÌÎËËÈÉËÇŽº¾ÃÁÅ¿¾¾ÁÁÆÇÆÆÇÉÉÉÉÈÌÈÊÈÉÎÉÇÊÌÐÏÎÌÐÎÍÑǤ¥«´º¾||¡®·ºÇÌØÈX%%(%&))*400I@;6-,*')3-263/,/328BJP[l|¢£¤¡ ¡¡¡¢ ¡ ¡ bbb^[[`]__Xa\^aZX_b^\_bbceoy¢¢¬©¨ª¬ª«®¨ªª«¨©¦¤ ~wjg[YMKMRNQSX^[^_d_c`daafbdba_j`]beccb`b``ffgiffhf`da`]UXe«ÛÊù©°¬z}vmclgd[]_qghjjlk\Zuzcw~{z¢¢¢©®§¦¡¥®ª²¢¢ª¬¥¥¦¦¤¡¡¡®²ª¡££¥©¦ ¨ªª¬¨©¯®©§¦¨³¬³¯£°¬¦©®¹¸µ³¯ª©¨©¬°¬ £®«§ªµ©¦¡¨·ÃÇÊdz¤±´¿ÀºµÀÃÄÍÒÒÎÌËÈÈÈÆÆù·½ÁÂÃÿüÂÄÄÅÅÆÊÉÉÈËÇÈÈÉÉÉÌÈÇÊÌÏÎÏÍÐÌÐб¢¥¤°¹º}¡©¯²¸ÅÑÛ¸=&*&)&,)+418G860..&++./7515-,,5??FTaq £¡¡¢¥¢¡¡ ¡¢¡¤ ¡ ]]dh`Y__a`_bb``a`a_``h_`ejsy¡£¨¨¨ª®¬««©®¬®ªª¨¤¡umb^QINPNMSV^^]`^d`_adhdhdefb^]`bcc_fdf_bechhdfkb_ac__ZYVbµáËȾ¤¶¹ª¨¢¡zikkgbdlknlgrlg^an|vjvstv w«§¨¦ ¢¦±µª¢¢¡¨¢ ¡¥§¤¢¡ª°«¦§¬¡¢ ¤¦©¥§¨«¬¦¥³±©¨§¡¨¯ª¬¤®¶°®¯§®ª¨¨¦¶°¤£²¤«§¦¢«¯¾ÇÍ¿°«¢§¸¼¶»ÃÈÅÉÐÑÏÍÍËËÉÇÂÁÀÁÀÀÂÃÃÂÀÀÁ¿ÄÄÄÈÅÇÉÊËÉÉÈÇÆËÉËÈÈÉÌÌÏÏÐÐÎÍÐÁ¢¤ª¯µ»~ ¨®³³¶ÇÕÖ.$$')'&*.2253/705.),10;1/23,.0<CFIZm|¡ ¢£¡ ¢¡£¡ ¡ ¡¡ ``mja_g_]_be`b][_]b_^[aeckrv¡ £¦§¨¯ª®¬¬¬¯©«©©¤ vmfZUNNJQTTY\`b]`c`ecad^a_cd`]^`_dbab`bfddcjie]b_f`d\ZXUQiÇÜÌÁªº¹³¢¤©ysjttdalimlmomgmgtyz}mw}v|v££¦¥¨ ³µ² ¤¤¥«¥©¥¡¯¯¥¡¤³®¦¤¡¨§¡ª©« ª²¬£«¡¡§°«¥ ©ªª¨§±§£¦¨¬¦¢¨£¡¢¯ºÁÊÆ·ª¨±»¸»»ÅÇÈÉÌÎÏÎÉÊÈÅÄÂÀÁ½¾ÄÂÂÁÂÀÂÀÀÁÇÄÆÈÉÉÇÇËÉÉÇÈËÉÊÌÌÌËÌÍÏÐÐÓÓÐÏ©¢©³º¸ ©¬«®®ºÍÛÎm&'&+(/)*002/3510&-&*./5940.-148DPOb{£¢¢ ¡ ¡ ¡¢aa`ed\\]\abba\^\`]`bf^aa`ntu ¤§©«¯¬®¬ªª«ªªª¬ª¢vlf\XPLNQTSUV_^]ce\bcdccdbe_b``fe_`bacggkjcfhedj_ea_^\Y\VtÒÛŵ°½¶ ª´¬© {{|twqxmknfigrnd]t ~~au{ }£© ¤¡ ¡¦§®§¨ ¥¡¤¨ªª«¢¤ª®§¡¨¬¦¦¢©ª££®°«¢®¯©¦£¦ ª®¨ ¢¡¦«®¬«©¤¡§¬«¡¤¤°ÀÇÅ¿µ¥«¸¸¸¸ÀÄÆÊÍÍÊÍÈÉÇÄÅÅÂÂÀþ¿ÀÁÂÂÃÂÁÆÃÂÃÇÇÈÊÉÍÆÉÉÊÇÊÊÊÍÉÈËÍÌÏÍÐÓÐÒÏÓÀ¦±·´ £§©§¦¹ÅÖܶ>&%.&+*0)205.146F*'+.+.365/-,65DGFap¡¢¢¢§ ¡ ¡ ^^^bc^]`_^^_Zf^^\Z[`\^addgnu¡¢¦¥©¬«ªª®§ª¬¬¬©«ª«©ylcaXSMMUSU\]Y]]^`hbc]c_c^c_e^adadfdaadegh`cgecfed`_]]ZTS}ÏÕÁ¿Á½³±º¹¡¤y|svtoochggd_a~ lj{x v ¢¢¦£¢©£¢ §¦¥§¦ªª©¡¨¬´§¢¦ª©©¤¥ª±¦¤²¨¤¢©§¡£¡®©§¢®¦¤¬±ÀÉõ«¯»¼«¶ÃÃÃÈÍÎÊÊÈÇÅÄÅ¿À¿Ä¼¼¿ÁÂÁÃÅÄÃÅÆÅÇÅÈÆÈÊÊÊÍËÌÇÊÉËÌËÌÊÎÊÐÐÒÒÑÒÏͤ¨µ°¤©©ª¨©ÀÑÚ×/').1,4,10//84/+=A**+/272/5502<BFK`y¢ ¡ ``^hi\[^\^^cc`c^a\a_[aebinr{¡ ¤¨©§©««¬¥«¬«¨ª¬¢¤xmgZTRHLUQS[]\a[cdacdcdf`bce]`dgc`h__bcb`dbcaaedfff_[[URWzÓÎÁÌÄ®¶ÂÁª¬¤© zuzsliokc_dw}xjnvwzy u~|¤¤ ª© ¡¤££¦¦ª¨¦¨ªª¡£¡¤²®¢¥§ª©ª§£ ¢ £°¡¬£¡ª«¢¢ª¤ £¡©ª¥ ¢¤¤ ®µ¿ÃÈ¿®¦«·µ´¹¿ÅÉÁÅÊÅÇÃÅÂÃÀ»¹´º¾Ã¿¾¿¿ÃÀÃÅÆÂÃÃÂÆÆÉÉÇËÊÊÍÌÍËËÊÊÌÊÌËÌÎÏÏÏÏÑÑÐϵ§²±¥ª¬¦¬ÉØßÉ`++(&*18)32105+1+-059144;91,205G;FSm ¢¢¢¡¡ ¡ ccb`ec`cY[_^_\a`][_`\aicjnu~ ¢¦©¨«®ª¯ª¨«¯¬©©©¢¤xog^OQHFOPWZZY\[^c`ag_db^``cacb_b`^_^\bbacbaf_acdg]aY]UQUÝËÉȶ¹½À®«©©¦¤zx{ommjkaYcn{ rmr|zv|~p~¡¡¢¢«®¨¡ ¤£©¨©©£¤¤¢ ¨¤ ¥¢¡¨¨£¦©¥¨¡©¦¡¨¬¦£¥¦¦¨¤¡ ²ºÃǾ³©±µ±«¯½ÆÈÉÊÊÆÇÁÀÀ¿½··´µ¶º¾¿À½ÁÂÆÅÁÇÆÄÄÆÅÅÊÉËËÌÍÊËËÌËÉÊÉËÉÊÎÌÐÐÑÓÐÔÑÎÄ¥²®¨¬§ ¤ºÏÛß®7+(%+(+0.2360.3@6**2G57:474/34CCEPdz ¡ ¡ ¤ __a`gace`ba_h_``c^e_decdhpty¦§ª¯¬¬®¯¬¬«¬¬ª¦¤£ |tmdSNLGUMTY\[[^\a`_`fa`a_`bh^^dbcbcbbcf_cecddejfe]^Z[URY àÓɽÀËñ¤¾°¨¤¡}|xjinjb\\yv~}zjszxvylsz¡¡ ©«§¡¡§{ ¤ ¦«¡¦£¥¤¤©£ ª¤©¨¥ª¤©¨¤ª¬ ¥¬¦¢¡£¯·»ÉÇ·©©¯¼¼®º¾ÂÊÌÎÊÈÇ¿ÂÀ»¹º¶´·¸¹¹»ÁÂÃÁÃÅ¿ÁÆÆÃÈÆÇÉÈËÊËÍÎÊÎÊËÊÊÈÊÍÊÌÌÍÑÓÑÒÏØÑÏ«©²¨¡©¥¢yt~²Å×ÞÕ|'$()-+0.575433/::/54FE>65=-88.2;HUm¡¡ ¡¡^^]^b]cbgea]^]b^bba_ecgcflux~ ¡£©§§¬ª®«±¬®¯««¥¡£|rccUKJLQKSUUZ]a^_\]^fa`_ab\_]]```gefddbbb\^bcg]c`][]WSPVÙÒÉÄÏ˸¯¾È®±³§© vlkkcZXjzz~}ovx{ y}xy}¥¡ ¡¢¢}{u}qiYY]nªª¥¨¥¤¥ ¢¤¤¥¥¢¡¤¥«¥¡£ª ££¤ ¥¢¥«¢¢¥¹Â¾ÅÀ´¤¢³°ºÀ½»ËÌÎËÆÄÀ½¼½»µº¹»º½À¾ÀÂÁÿÞÃÅÇÅÇÇÇÉËËËÌËËÎÍÉÎÌÉÊËËÏÌÍÎÒÐÑÓÓÔÕǦ°¦¤§mglqx¨ÀÑÜßÃQ%$%)*,2,197834>6</673CD9;102560>Har ¡ __`ab^cbc`e_a^_^bbbbhhllmmzx ¡ ¤©««±¯¬©¬¯¬¬ªª¨§£¤k][RKILINMSU]^c\b\a[`dbaac_b[^faeccdaahbcb`bb`eb_]__TPOSØÎÊÏͽ±Âꩶ®® xmc[Udy {zqhuzxyx ¢zu¢¨¥ {tkaJF¨¦£¦¡ ¤¡¦¤ ¤¡ ¦£¦¢¡£ ¤¨¡¢¤§ª»ÃÌ¿´±®¬¶ÄÆÅ»ÁÉÌÊÊÄ»¾¼¼¼¼¾¼¾º½½¾ÄÅÁÃÂÂÂÄÁÆÇÈÆÇÆÇÌËÉËÉËÉËÊËÌÍËÈËÍÍÌÍÐÒÏÐÒÐÔЫ¥¬xoeU`lv°ÆÖßÛª6"')#%-.166<>1.29/2/.9IB5922.16??Xj¡¡¡¢ bb`cb`dee`c``^_`bdgcdgkhhrsz ££¦ª«¬®««¬°ªªª¬«ª§¥¢wm]\RQKHHLXVZ[[\`de_a`ffc___[^^eadaa\^a`eaeceddab_a\WUPNX¢ßÑÓθ·ÅÌá°±«©¦¡¥©qbZ]s{ y|fow {vy ¡£tmfkinruwy{kX;}¢¢¤¢¡¢¤¤ ¡§ ¤©¢£££§£¥£© §¡¦²¼ÁÊŪ«¯ÀüÆÊÃÄÃÈÈÅÁ»À¿¿½¿¿À¾¼ÀÁÂÂÃÁÆÅÅÃÅÂÈÅÅÆÊËËÈÊÉÉÍÎËÍÊÌÍÎËÊÍÎÎÌÐÏÕÒÒÑÒÒÀ¥¬x_^hd_^o¥»ÖÜÞÒy)* !%'..6/4,104/00-.0<><525AG8;@Da| £ ¡ £ ff_cbb^``_d_dd_adabdflkimnry ¡¤¨©ª©®®ª¬¬«ª©¬©«¦£xnb[UOIIHSMSWY[cYfdbb_`acb`^Z\\cbc`d_ac^bbbhieejb``\VTTOUÞÙÔ½Êʾ©«À³½¬©ª¤}gaegw|~zhiwtno~ }zqb\dljoih[Z][iqvrw£{iNo ¢¡££¢¡£¨¦£ ¥£¦££bz«¨ ¦¤²ÂÅÀ¸²¬¢°¯¹ÂýÁÈËÇÄÃÇÆ¿¼¹¼¿¿ÁÁ¿½¿ÁÁÀÃÄÄÇÅÇÆÇÅÉÆÆÈÇÉÍÉÆÌÍÌÍÊÍÌÌÌËÊÊËÎÍÎÏÑÔÓÔÓÐÉ£¤¨|fRQRW]]f¯ËÚÝÞ»D&!! #%,,--,07*.5-0--47<8337454=LTm ¢ ¢ cc]bedbc\_cdedeb`ecdkjhhkmtz~¡¡ª®®«¬«¯°¬©®«ª«£xk]\SKEIKQRUT[YZZc`ed_]a__^__`df_`b_efdbb_bcbccc_^a]ZTMLPÚÙÇÂÒÓů¼Ã»¢¥µ ¤ª ¢£pcupqy|}x}chz~y{ s{|z |lTdxy~}umlnaU^^el`s¢£~g\n£¡©©¤¨¢¨¥xkdS8?{ª·ÁÉÀª©ªª¼ÀÄÄÆÆÉÊÈÆÄÆÇÃÁ¾¾½¾¾ÂÁÃÀÄÁýÂÄÃÄÆÇÅÆÈÅÌÉÇÆÉËÉÌÊÍÍÍÍÍÉÌÌÍÌËËÎÐÍÏÐÓÔÓÖÒ̯¢§¤eWQRQUeddo±ÈÕÝÞØ)"""#%$.,/2264,)(002729:52.191<7I_w¡¢¢ ¢ ¡ aaef`bef_cddc^ccbbecfhjkjpus~ ¦©¨ª§¬¬¬¬ª®®©¨«¤ |ndZWRHEIINXZY^Zbcgad_aaea``e_da^gb^_bba`cceae^a\b]_^XQPQÛÐÌÑÒ÷Æо¤²ª ¢ ª£ {xwyw~x|{z {^j|t~vy{zv\[^wvuvwnagYNcpdV§¤¨¤£~qfca`hp|¢¡vlj ¢¢v~wV58N ¡®»ÃƱ¦¤°¥¤»ÄÂÉÏËÉÌÊÅÁÀÂÆÄÁÀÂÁ½Á¿ÂÃÀ¾ÃÄÂÃÄÆÄËÉÅÆÆÈÈÉÉÈÈËÊËÉÏÌËËÊÊÍÍËÌËËÌÐÏÐÒÓÔÕÖÒ´£« vWOJVS\Xblq}²ÃÑÙÛÝÃ[&'$'%%).-54+/13+---4:177403227=@Ph ¡¡£ ddeacbbc__`ecc`chcagejjhkquy¥ª««¬¯®««°¬«©¦£ yqcZOOEDHOPZZY[Zab]eaad`e`gbh`d_cfffdad^bdhcfeb`_a__\TNMTÞÒ×Ô´ÁÓÉ©°± «¬¨nr{}vp}zxzbllw~ pmq~¡ }zx\Xn xxywrrmSKLPN£ª¨¦¥¥¥~squrl`[ap¦©¡¤¦§¤hhwr¤ep lH.3Y ¸ÄǶ°ª¤§§³ÂÁ½ÊÐÌÉÆÆÄ¿¿ÀÂÃÂÃÁÃÁÃÿ¾¾ÁÂÄÃÀÄÄÈÉÇÇÉÉÉÈÉÉËÆÍÍËÌÍÎËÊÍÍËËÌÊÎÌÌÍÑÒÒÕÔÖÓº¥¥¥ z_NKPWWb[`hrz§¾ÑÖÝÛÔ/" &")''0,7-/72-,4,01436>>=1789@M^s ¤¢¡¢ccbbaabgceba^aecha^bdddjlpu|¢¥ª®«¬¯®¯±««©¯©¨§¤{oe[PKDLOOVSTVXY]^babhaa]aee]d]d`fbdcgfbfccdcdaebd\XXTMOPÙÛÙÈ·ÊÒË´·Â¼¯«¬¥£ wvqwvvzoy}}reyvvv |tn~ykgw|~|yximiog]SM9T¬«¦¨§©¤ywor|v~sidXiy¬ngh\CQbZ?@p~q`3#/{¥¢²ÅÅ´¤¢£«¶¾½¹¼ÄÇÄÇÉÆÀÂÁÁÄÃÃÂÁÂÅÂÆÁ½¿ÃÃÃÅÃÆÆÉÆÇÉÊÈÇÉÉËÈÈÎËÉÍÎÎËËËÊËËÊËÊÍÌÎÐÑÖÔÓ̽ªmVLTYW[ZjaanwµÇÔÙÚݯB(!'&/=*-.1/-/32-++(/776=794/-59JVh{ ¤¡¦¡¡ ¢¡ ccda`acccgeb_cbbhdacciejtow{¤¤©©¬ª±°¯¬®®«¬§¡xqc[PMEEOKRQST]Zab__h_]_ccecfd_cfff_`hce`agfdcbe]`YZVVNQQÖÜÌÄÌÒÆ»²ÉƵ¢²¹¤¥yxps}ytspt{{ikm{xuwpu}w~ ~zr~yqpojlh]^YWY[bK:F~¦¬¤ £¡q tiTFBES]ohbrgVaa_WX317AF14T^F+"-Y±¼Ç¾©¡ µ¶¾Æ¿ÀÀÅÃÅÇÅÁ¾ÂÂÂÆÅÃÅÃÃÁÃÄ¿ÀÀÀÂÁÄÅÅÆÉÉÈÉÅÊÇÈËÊÈÆÉÊÊÎÏÏÌÈËÍËÎÍËÍÍÍÏÑÕÕÏÁ¬£iXYPMT[cW\__fz³ÁËÕÙÚËi)-+#$*.0/04.-/7.**+*,5363/4-0026Fdw¢£¡¥¡¡ ¡ ccdbgabab`fl]cdklffighhjqs|¦¦«²®ª¯¬°°©®ª««¬§£¦¡tnbWTKHJJPNTVW]b\[\_^`cc_kefid^_filccfbccabfbdcgcb^XYVRRU}ÜÕÂÑ×ʶÀÊ˼¯·¶³¤x£¡²omqgi|utryr_ft~| lrz {wsrgdefkbRJE>;?ID2@y£¦¨¢x| {{una`[TQXv`QEHRRQYCHCP</+565).@3&$+H{£µÇų£ ¡¸ÃÂÊÊÅÆÄÄÄÆÆÁ¿¾¿ÄÀÈÆÂÇÁÀÂþÀÂÅÅÄÃÇÈÉÇÅÆÉÉÈÈËÇÆËÉÎÎÍÎÌËÍÎËÌÍÍËÎÎÐÒÒÇ´ªqbSQWRUWX\X`efn²»ÉÔÕØÏ2&%!%%%130.45)-7+))**..67760/,/5NWi~¡£¢¢¢¢¥¦¡ ¡bbgddcgaa_fhba`cfaighjmqpv|~ £§¨ª¯®¬««°®¯®±°¬¬¥¡ |ogaTKOFELOVTT[_[f^`^[d_agdfcd^`d`e_bbccfaeccgd`a]][`VOPO~ØÕÏØͺÂÍκ¸¼Å¶¥±¨{~¦§utfmrnw}xxnYkpwqy xptx}{m\xzk\ZglcmXPOTPKF:?HHy}qeWSaeT@<QQ_uoSABLA>?=F7:E5,)2--/+'&'+*I¹ÉÈ°¦°¹»ÂÈÊÍÇÄÂÆÆÃÁþÀ¿ÂÃÅÅÄÇÀ¿ÀÁÿ¾ÀÁÅÄÅÄÆÈÉÇÉÉÊÈÅÈÊÉÇÈÈÌÎÎÌËÊÌÏÎÍÐÎÎÌÎÒÍƲk\\XTPWUXVZ_Xbnr¯¿ÃËÓÖ×¹P((*$,(0-26.30,17*,0200:4?21*),32Lcv¡¡¢ ¢ ¤ ffgccdfdgbfb`gaedbjimhjjiyw} ¡¦¬¬¯®¯´®®®±©ª¨£ }of[SJKFKOPVQR^b^[_eb^_bbaeccg``ggd``c\d_bcbhbcc_]b_][VSLoÃÛÚÑ¿¾Íι±ËÊ¿ªª¬¡| {q¨ vimjjotq}w~wo]`tzxw wr~}~{z}vdxqh\bdhnebXW_imbTIXZ`}| ~oME?JCHE>9Mbzd8:BZ@A835167,)-.)*.'&$#+Rw®ÄÀ®«½ÂÂÃÇÇÇÉÄÃÂÈÄÃÀÁÂÁÃÄÅÅÆÄÁÁÁ½Á¼ÁÄÃÃÂÄÇÇÇÇÈÉÉÆËÈÆÇÉÈÆÇÎÍÒÎÏËÏÒÎÑÏÌÐËÌÇ~le\Y[ZXUWXXZ^Y^Zcu«¼¾ÄÏØÚÐ,,(,&(.1*/2121--3',6;74559-,,*(17Ln~£¡ ¢¢¡¢ ¡ ¢cc_bblhgeebacc`bgcehkmmrmtt}¡¦«¬®¬¬«ª®¯¬©«¥¦zsfTSQOBKLRTPU_a^]`__d_eb`lg`c]ahfjb`acddabeebfd_db`_XVRNc°ß×ÄÂÑ̾·ÌÙÅ°º®£|l|vjenqmqtt{}l\ajwxx xw~ wtyjf{~qX`rvwxdY]quwzng`h^g hpu{}gYWNLH<36<HRk}g?<;:_NA6-/,).(&).3+)(-08^¨Â±§¶ÃÅÈÈÊÉÈÅÅÃÃÃÆÃÿÁÃÁÄÃÅÅÃÂÁÄÂÀ»ÂÂÁÅÁÄÃÇÇÈÄÉÈÇÆÉÉËÆÈÉ¿ÃÉÑÐÌËÍËÏÏÐÏÐÏÈ¿¯|rc\S[T\_[]SZXS[acfbr§µ½ÂÊÑ×Ô¦E&f&.&.,17.74833308++/.99820./$'.?\x£¦¡¢¢¦ ¡ ¡¡ cccgcifhbgcdcgj\`jdcknlqnrw}¢¦¥««ª¬°®®«®¬ª¬²¬©§ zseYQKGCJPRTSX[[af[]bgefea_a^ff`dcab`fagff`edcglc`_a^WYUQ]¡ßÍÉÓÎÁ¹ÍÕ̶»Åmywutoqpnnpxp\gnnsvku ~ypZl}|rijtupgu{{lOJGVdj]X^tu[RKRgH8D86Alx`D;>?:DZVH,,0($%#%)GH(%3c^m·¾²¤ºÇÇËÊËËÉÇÄÅÄÁ¾ÁÄ¿¼ÁÁÀÀÂÂÀÃÂÆÅ¿¿¼ÂÂÁÁÃÄÁÄÆÅÇÈÆÆÉÉÇÅÈÊþÄËÓÍÌÌÍÎÑÑÐÍɹnaY[VWV[^]YX^TX[Vcfoqw´µºÂÆÍÕÕ´Y-&1.0%*+2/66-945.-0+).1;65.++7&-8L^|¢¨£ ¢¥¢£¡ __fddeihlfcc`c`beidehlonntv|¡£¬«§«°®¬«©±ª®¯«©¦£~vdUPGHJLQQTXW^]\\c[_acc__a\bbacgej`cfcabe_ihhecda`[bZWQNYÍÓÕѽË×˹Èξ§¡uvqx{t{rvxsrwlqrxj`qysr{ vnqz }~tatx| ~wehw iaikwxtU@SSJe`OK_t}p\PSHUU00FBHmmB0<JONQ<FV@90)*0& #&(%#%Jµ»¨ ¹ËËÊÏÎÍÉÇÆÅÅľÁ¿Á¾ÂÁÂÄÀÅÄÄÄ¿ÃÂÁÁ¿ÅÆÄÃÃÆÇÅÅÅÈÆÆÆÄÈÊÁÅÂÏÑÐÍÍÏÑÑÑƳv_ZYVZUSYXY[eW[]_^]dhp| ¬¾¼ÃËÊÊÇX-%*+(&+327383-//36<6/+43=891/+%&-9Tj££¥¢¡ ¡¢¡¢¢¤¡£ ¡cccdffinmgecbba^bgmjiihoksz{¢¥¨®¬««°¬«¯®ª¥ }q]]OSLIMUSTR^[\ae^aa`ccbae_d_ehdadc_addeddjcaadb_[c^[TQRNkÄÝÓÈÇÎÕʼÅÐË´®±§v}plg{stxp|qm{xwpgkqxvx nkyz~|~}rdn|}kfr|gkllnv[dVCEM[NPPDSorp`bkeIPF;MVUlxU=@J_^PLDIJ`27H,)&%$$ !!$.U±Á´¢¸ÀÆÉÂËËÈÅÄÃÆÅÁÂÂÁÂÁ¿ÂÁ¿ÀÂÆÈÅÂÀ¿ÃÿÄÅÁÀÀÅÇÇÃÄÃÄÇÆÈÈÍËÉÈÊÑÓÎÏÓÏÑˬjaZUYWTYXVXWaa]W\]_aact¡¯´ÇÅÈÏÄc?1%(')&)1038.420428+354392<;5.))&*/@cw ¢¤¥¡ ¤¦¡£¡ ¤£¡¢¡¡ eefggecchagdg`b]adkjomoltty¡¢©««««©«¬¯¬¬¨¨¦¡ {m`ZQOIEKSMUW]]_`ae`__bedhabh`_cffekaaafebfgb`a_eaa\[[VQORjÊßÉÊÐÕË»ÄÐÊ·½º®{qju ~rxxztvtj`itvr~rm|x}}|vt} kgqk_r~zv}zofeSIANC=696AAEFRbpgZxYb`^^dio?AT\fR984/O]d0/06/&( &0_³Ä´±¾»µÅÂÃÉÄÃÂÃÆÅÅÁÃÿ¿ÄÂÁ¿¾ÃÃÄÃÀÀÃÃÄÀ¾¿¿À¿¿¿ÅÃÄÆÂÄÂÇÆÊÌÌÍÌÉÌÐÍÒÓÏÑÍ»e\X\^RYZXUWSUW[\`[\`iipr ¢§±¹ÂÈÅËÂ<10-)(&0&-3/13213.+0*.-8/34=5:24,+))2Ur¢£¨¤¡££¢¢¤££¤¡bbddmfeghghfe\d]`ddoemjnmsy¢§«®®®ª«¬§©®®«®«ª©¦¦{pf[PNIFOQRSU\d[_^`^^a^b`^f`g_`dfagj`bdjh^geh^fb__c`Y]YQSO`¸×ÌÕ×ÌÁÈÒͺÇîxii£|o|omf\dovtv|qt|~ |z zcm~ |rii~|vxxeRO;G:<9>97:9<BEJ_ic\}bYuphglG[oo8/7>.+8dw:0*-%7, %;h¯À±ssºÄÄ»¸À¾¿À¿ÂÂÂÆÅÄÁ½¿ÁÁ¿¾»ºÂÁ¿¾¼ÃÃÄÄÂÁÁÿ¿ÀÁÃÂÃÆÄÄÆÆËÉÉÌËËÊÈÊÐÎÒÎÍÉtg]WZ[cZY^[ZWWVYe`ecrjlx¨¯µ¿ÆÌÆËÆ7),*'(+*/2/464022-,+06**88379=791-+03C[r¡£¤£¡£¢£¢¡¢¤£¡£ ggeiagjhggbgb``]`felhjkmtrt¥¨ª©¬®¯«¬«¯±¯¬ª¥¨¨¢ }ka^OJKKMSQLTY_\d\a]acfgg`beb`^hcfhad_`_fcdbbc_d`^]\\^WSOOVÔÛÔÈÁÎÕ˸ÈÛÄ£¥ykv¡£ q|{qqk]o{p}wq{~{ ||z{ usnao zlctwunahbRD::A82=98<799:J]mf\|hOimXLfzgE[v|>78OD<@Jg~6&"$*$+0=wº¶£tk¹ÅÆÄĽ»¸¶¹ºÀ¿ÃÃÃÄ¿ÁÁ¿Ã¿¾¾¾¿º¾¾ÀÆÀ¾À»À¾¿¿À¿ÃÂÄÅÃÇÇÅÃÊÊÆÇÉËÏËÌËÁ a]]\_^b]\Z\ZVR]Z\cks{ «±·ÂÇÈÇÍÑ5&*+**.3+-.0416/4,-/011',.-328<770.-38Qk £¤¦££¥£¢¤¤¡¡¢¡¡¡ ¢iijkjgkgigedbcdbbcbmijmmotv ¥§©ªª®ª¬©«¯°©«¬®ª£¥na[UPJLPKMTSV]^`\_\Zccedbcb`dbccbmc`a^bfddcdb]^^`[bc`]TRSRxÔßɺÊÔϾÃÕÓ¹¬¦y{x}~rjefhmxs vmr|{}|zywbc|}~}f`ntc_PMNLFGONF@269@@B:@DWml[zmSdaO7Llf[Cvvf3FIOU:-3px9%!$!"$,GWv¨Â¹qnw´¿ÃÆÃÁ»¾º¹¼¶º½ÂÂÁÀÁ½¾»¿Â¼¶¹»¾ÄÁû½Â¿º¿ÂÂÂÂÂÁÃÇÂÂÄÂÈÄÅÆÉÄÄÆÉËÊź¤}yoZ^]\^]\ZZ\XX\[[gux¤°´¾ÁÃÃÏÓ´U,$))2/*,,,.66/578.+010+/1231;B9:;754<C^s¤¤¨¥§¥¤£ ¢¦¦¢¢£¡ ¡¥¢ lljffhfffgbda^`cc_bignolhpw~¤©ª¬««¬««¯¬«¬®¬¦¨¢ q^^SSRJISOVV^Z^^Z`af\`_`ab]bc`bdaffd\`b`bjdi`ec_d^ca\_ePRQpÌÚÄÆÒÍ¿ÄÏκ¥ zzh]_qpsn{ ~pq~w}{y mW{~ sde`^H=><K]OMNOB=;7;=:4:EWjc^sRZX>85?[`Q\^[KK^caO1&-y{(%"! %@YªÁ±}ts}¶¼ÁÆĽ»´°´µ¶´½ÁÀÁÀ¿¿½¾¿ÀÁ¼µ¶¼¼¿¿¼¿À¾ÀººÂÅÂÁ¾ÄÄÄÄÅÅÅÅÇÄÉÆÇÄÆÈÈĹh~ ~daa^f`VXXW[^afn| ¦£¨®²¶¼¾ÁÈкc.*02101.5113544033/.-))*.2:=?>A@M4-/14Jiz¥¥¦¤¦¡§¥¢¢¢£¢¦¤£¢¢ ¢ kkikkpfeghc_fbe_ddegckilln| ¤§¨¬©±¬«¯«ªª¬°¬©¬ª¤£zndXYJEHGLUQVfY\]aab^_db^cb]`d`fjfedcb^`fdjea^_aeebfb`_]SKO^±ÔÕÖËÀ¾ÏͺÁ̺¡ wb^fquow tq{~~} ~x}|u~jH ~xcaPLV?:<IGdaRSZE46/.39/3?Jjt[sz]eL5.3<4HYglPKOP^kOA6"//tj$##!)]¨¿qs¢··¿Àýº·³³²´³º»¿¿¾¿¾½¿¿¾¾¹»¹º½À¿»½Á¿¿¾¼À¿¿¿ÁÁÀÁÄÃÃÃÆÆÈÈÇÉÈÈÀº y[Uwvhcbc`V]Y_hru|£¨«§¬²¶¶ºÃÈΫ`3()+/-4-/-/62464;021*+1*+++.3133.;HO/3DTt£¢¥¤£¥§¡ ¥¢¢ ¢ £ ggijgogihld_ddefgebgeelilny¢§¦¬ª¯®«¬¬ª¬©«ªª©©¨¤¢|qd^VTGENIOZR[\\`_^cZ_d`_bc`e`cdfeagafca`]fbecdbb`ccd_YXVMMSÕßÑÃÆÒ˶·Ñħ®¥¤|y¤¡{q^mvqsl|}}you|}{}yutygN{vhW^TM;1AJUbjh\E>7;313564,:J` ^jf`K1-)2//ZqvB8NZldY=6;#).~G+(#3[²¹}xy®À½¹ÁÀ·´±°·²²»¾»¾À¼½¼½¾À½¿µ¹¾½¾º¼¼½¾¾¾¾ÄÂÀÀÅÁÁÂÃÃÄÆÆÅÅÅÅÉÌÈünigb^s }nc^`gaemv¦££¢¥ªª¬±²±»ÅÊÍ®T20('*2.2,8.4:>;53:=.*/)./,,-5=CH<4<:2<<Rh £¦§§£¡¤¡¤£¥ £¢¤¢££¢¡¡ jjkhkljgighejdibibfdfgkiorw}¥¦§«ª«©«©§¬§©©ªª¦¤¢~pkZVNMLKOVSSV\U^Z`a]\aad`eh_Xd^de`ja^_hcbblecccddadba^ZYQMMpÈßËÍÑͺ¹Ìа·Ã±qv¦tmaZnvxw} uaowzx~}xsulW }ocYRR<548J`oq\BAB5759,.9;3)9d}trueL*+*,2-BxU9>Qiz^;*&,##I}@U/#:h°½ |{¬ÅŽ¾Â¿½·´³´µµ¼¼¼¼¹¿½¹»¾¼¿¹¾¸»¼¼¸¹»¿¾¾ÀÁ»½½¿ÀÂÃÂÃÅÁÃÈÉÈÈÆÆÆɽªYKblnbxonq{y}¢ ¦©§¥¢¥¢£¨«±´¶ÂÎϨR--(+--,0.-.7/852178;0140+')-049<CK871639Xp¢§¥§¢¤§¤¢¤¦¥¤¤¤¥££¢ £¤£¢ £ nniejljidhgjkji^ebh`bigjprx}¢¦¦©¬ª©©¯««¨¯¬¬«©©§£~thYVNGLJMPSVTZZa[^\_]a]dg]_cZgbfaaaefadd`fgffcigfbgbc]\ZVOKc¨ØÓÔɼÁÊʺ»ËÁ ª£qz tkjcjvtvop~y~ }{|w{{oK{}db]PD795:JpsbM311074580.7<2.Muv|sye^Q.09*&-@q\?FY_f_M,+#'$+`{^h,'Cr®²z ¯ÀËÄÀÀÁ¼¶³¸¶´¶¶¼»»¼¹»·¾º¼¸»»»¸¶²ºº»»¼¿ÀÀÁ¼¾ÀÁ¿¿ÂÂÁÃÂÃÃÇÉÇÆÂÀ¶iRHNfnmhu¢£©¥§¨¦¬¯¨¤¤¨µµÀÊͯV++(-1()4.235B95871672.-6/1)**+4@:5520731Bf| ¢¤¦¦¤¥¥¥£¨¥¥§¢¥¥£¤£ ¡¢£¦nnjecifeljihiee^dfebfkfiorw¢§¤©©«©¨®ª«¬©ª«¬¬¨¦¨{me\TNFJIKOTURUX^]acdab`ai``geacbaaaaecda`a`aadbdddegdb][TTNPÑÝϽÆÎ̶¹ÎË´±¥{ £yziokrt{ qdk{|wvu~}qxtSu pZTG=859GfnpQ830/.+2:<6*136+.]xkzkVM.018.*AojQ=KVX]P1#!00&'mkAk3Hy±²xu´ÀÈÇÃÀÀºººµ¸´²µ·¶¹¹¸µ·¶»¸´»»¼¸µ¶¹¸½¾ººÀ¿À½Á½Á½¾ÃÃÁÄÅÅÇÇÈÊÆÁ°TCi_QN\pllkz¡ ¡¦§¨£§§©¤¥®®§§ªµ·ÃÎÔµa/&')-&-/323;78B66<4120+24027.337<1..(,465Zm|¥£¤¥¥£¥¦§§¤£¨¥¨¤£ ¢ ¢¢¢¡¡¤¢mmlgdphekfahgfg_ce`fdehjppoz¤¦ª¨¬¬§®¬®«ªª««¦£riZWOHILJTRVX\^`[`__`ba]ddj^cgbdfdhd^edb^d]^`a`fefchbcaYQPOUlËßÈÉÒÈ·¸ÎÍ»»¾¿£¦§y¨w~xkfqupq| sgasu|~zzuzxwhmy_kyVC;;=8=KhoR99011.3,7?.*,000/<dT`d]443766AiyYH=Na_G/%!*1,$2T,IZ}¶²}z¢·ÀÅÅÅļ··¼¹³±³´¶¹¹¾¸¶¸º¸³²´»¹¹²·¸¼¾¸»¼½¿¼½¿À½ÁÂÀÃÁÂÅÇÉÆÉÉȺ`73B[hdYXcme]q¥¦¢¤¢£¦§¦¦¤¦¦¥¦®ª¦±¶»ÅÏÓÀs4$&)%-//1-685=68243,160,07*2515/5:6.)+.21Edw£¦©¥¡£¤¦¦£¨©¨¤¢£¢¢ ¢£¤ ¢¢¢¡£ ¢oojliihfiekkjfbceiemhdjjlms{}¦¤¤¬««¬¬«¨¯ª«©«¬¨¦£}ofYRNDFNLWXXV[^^aca[a_`bbeadccbgecgdae]b`b`de^acdhchchaYVRQPa»ÛÑÑ˺¼ÍѾ¸ÆÉ¿¤¯¦§§td_iqz{}{vgccvu~~}~~~yrotz~taXZkysYVr_D?A:>9ShfO4373*)-6:D6,%&4904ctd?PVC.,,2:Flg[JMZi@%&$0J, -5H0c²yt ¸¾ÂÆÇžµ·µ¹´°±µ¹¶¹¸¸·¸µ³³¯´µ´µ±´º·¸··½¼½¿ÀÂÀ¾¼¿ÃÃÅÁÅÅÆÇÇÆÀ \\D./:izup``xk`h¤¥¨ ¦§¥§¨§¨¥¦ª¥«®±«¼ÂÈÏÒ¼v8.(+,%*),-413718=7.27<71-0.,151236412(/>12Ph¤¦¥£¥¦¢¥¥£¤¦¦¦¥¢¢£ ¤¤£¥¡¡£¡¢ kkkojihhjhleil_feaageejmktr£§§«°«¯¨§¬«««¯ªª¬ª¥~rm[ZTEFMLRYXX[_W[`]ad\[_^dedbeehdbfbebcgchdac_hfeadedd^\^TSRY¬ÝÞмÆÐÓ¾³ÍÏŪ¦ª ¤µ«h]glz~ j`crx}y}z xyzz|xwu }upbZNSuoZVX?4GSB@RbUD96AA1-..=EF1+#,4:/Gv}zM3LI220.8Jnth[^hfX'"$0bR GM_´vª»³ºÄÇÈÁ½´··²®²··²¼ºº¸¶µµ±¶²·²°³´¸´µºµ¸¼º½ÂÂÀþ¾ÃÃÂÃÇÄÁÁÁ³zA7Pa>3Ab~vdeqyib¥§¨£¥¦¦¨¤ª¦¥ª¦§«¯·ºÀÇÍÑ»q.)%'('%,/246/55289=78<790)-*.-).4;89>62-948Xp¥¥£©¤¦¥¤£¢¤¨§¥§£¥££¡ ¤¤£ ¡jjikngjghlkeidbhdifibegjipy£¢¨§®¬«¬«¬¬«®ª¬¬£¡ |riZ[KFHQKSYTY^\\^`Yb^]e^ea_f^`_fa_e^_c\aefc`edgdfeeccjc]Y\RNUÉàÉÊÓÓŶÈÑ𥳳°®n_fu} xfqxvz{~xxu~~|ws{xndQKXxyvZU@:=@OWVSMAA=A77:.0>ON/&#$(.7Hflt];;=7,2418c{qNM\zwp\3"&)`wI!]r«zy|ª¼Á´ÀÅÆÇ¿¼²¶±«°´·¼´¹²»»±µ·²´³±´µ²°«µ±»½»¼¿Àº¿¼»»ÀÃÃÃÃÂÂÁÀ¾¢Z02>Xg\?AWtftywdw¥¢¦¤¨ª©¨ªªª©¯¶¶ºÀÄÏÐÂ}-'((%**-0,0020790297245631-,..02118304,4/55Jew¡¤¨¡¤§¦©¥¥¤¡¢ª¨¥¤¢¢¤¤¡¢§¤ ¥¤ ¢¢¢lljmjikhffhheddhaiajgcegkmsz £¤¦«¬««©±¬¯¬«¨««©¨ wiZWMGJJJQYYZ__\_`^b^fb\ac`aaadeh__^_]_d`bfeacfidjlkgfae][XQUh¦ÕÓÚÓȾÈÕƳ¬¡¢¯º¬¨¢gbfo ~zy} |km{}| }~yvwy{}xsx{kkWUPdolP;:B@BEKVIDO>99<;39=QP7.(*''46_eOmF+0;7E94>exdJ?^x~teC*+,Vv" 1z±²{wuy¤½ÈÄ¿ÂÁÆÄÀ»¸¶²µ´²µ´·»³³·´¹·¶¯²²´¶²¨«±··½½¿¿º»À½»»ÀÃÀÄÃþÀ»E-#*G_ro[=Gxyijw~ej¡¨«©¬©©¯±¯±¼»ÂÃÇͼ;&%+9(,/3/1406554;565017335-++.8,437:02:4<6>Xj ¨¥¦¦¤¥§¦¦£¥¤¨ª§¥¥¤£¡¢¡¡¥¡¢ ¤¡¢ ¡¡ggihgkikhihhhddegceedclbempt §ª©«®®©ª«ª«¨ª««®ª«£td]QHAKBOQST]V[X^[^^`_a_]]\_]_eiic`^b`_\d^aa^gjijklkgcgda^_WYWwºàÚÌÃÏÙ̹¶ª¤§«»¼¡¬ibYat}}xw} yvf`{|~ztxzqp{}zv}{oih_ro[ONHRNJIGC@JU^SPM?>?702=\cJ,'$&'+<=eHas=.6;69<6MbJBSow^SE,&2L} Q!)G±®znwz«¼ÆÇÅÃþÂÀ¿¾¶´µ³°µµ´¹µ¯³¹³µ³±±´±¯®°°¶µ¾Â»ºÀÃÃÀ»Â¼¿ÃÆÁÁº©X70..9_lrgL<` pi{ to©¦ªª®¬®³µ²»ÂÈÍ¿a9-%&(*)*/.104533255843:4>6,/,.-+4*654232..73Hap ¡¨£¨§§¦¥ª¦¦¤¤¤¤¨¦§¤§¥£¢£ £¢¡ ¡ ¡ ¡jjkjjhihmhhfdcdbjddcclfjilqz¢¤¨ª«ª¬¬ª®¯©«¬®¬®¬©¤ukYUNGCGGOQSX]ZZ][^ac_^\cabf_a`dbbe^aacbebc_bcddffmgekff`c[UYT_¦ÜÝÍÕÛμľ«®´¶´®lYXgyz}tick~zz{zxzxsyzsx oV=7J]]GEDP[WTEDMbhQG>E?>-*39]xb-+&$&'(HNn<bY-.+-,++4@`SJCTU`^R>'&M}*.p¥tt¬¿ÁÄÇÆÄ¿¼¿¿¼»¸¸µ·¯µµ´·±´·µµµ°®®®±¯´·±«¯¶»¼½½ÀÂÁÁ¿¾¾¾Ä¶¶qVMGF927HjlrlRFcjtzoj|©©©«©¯±·µ¹ÁÉɸ~;2**5#%'**,.046864446;;;=4830451-,.23307/1399<Udx ¡£©¥§¨¦£§¨¢£¤£¤£¨£¡¦¡¥£¡¤¥¥¢¢¡¢ ¢ kknjilqlmfihhcedjacdhef_bpsx ¦¥«¬««©«ª¬¬¬®©£¢ wf\SJADKIXUWWYYYX]_][Z`bb[_ba^]ba_`dh`__`dabbegkiggmklekfd^[WTYÆØØÝÓÆÇн© ¯¯«¼°§¡t_bi{||tlou{~ {~{|zxx|{|~xxrcN824=C<NSTS@FMWWbWHB>B>+$(-TrkA))((,*/RXm5^E*)&/-7;<W\PE2>Idh;1'.d¤l" *H®q{yw²¾ÁÄÆÇÃÂÀ¿Á½¼½»º¶·µº¶¶´´µµ¶´®°³¯«¬°¶²º®±°¶¼¾ÀÁ¾ÁÀÁÁ¿¾º½·±¦qZRHP\V>ESgotf_Pt{m}}ct¤§£¨«®ª¶½ÅÎ̬f4&*-'% $*0-,.324458@<64EC65A51/51,003717:4212AEWl| ¥§¥¥§£¥££©¦¦¨¤¦¢¥¢¢¤¢¢£¥§£¢¡¢¡¥ ¤ ¡uuknionemjkknhcdabbcdcfebnsv~ §¥ª«¬ªª©«¬¯±®«¬¬¯©¥¡ wg\NNKDILOWUT]__d``^\haa`c^ba``_Z^bcjd_badibbgekdhfgmhhdegb\XUW_ÍáÖËÌÕ榧°¨¹¾¦kdm{}xunkqzx~{yzyvy~s|yvmj\fdi[UNG??CVHJFAAaZNHD==>5.*,2<`s6*%%-&+3T`a0e8+//4>PK>?B2.-7Wi\*(%6|9#*Fjz_nx¶ÆžÃÇÄÂÀ¿½¾¼¿¾¹¸²·¹µ²´··¹¸¹±¬°®ª¨«µµ´µ±´®¹»»Á½À¼¿½»½»¶»¹³³¥w]LI\h_Q>GiegecKoowlg¢§§§¯°¯µ½ÊÐÆ^3()*)/6)(,-.2411//24;7>98E520.+5*-),)034722/2ABLXp ¥¥£¦¬ª¨©§¥££§§¦§££ ¡¤¥¥¤¢ ¢£¡£¢¡¡¡£ ¡ggmmnmphtjomijgc`bccedfbdjtv£¥¨§ª¯ªª®®¯¬®¯¬¨¤¡}ucWWMKKFMPSRTY\Z]`\]^beedg_accbaa^a^i\a]dccd`gfffkilniffebbb^UTVlÝÎÌÙØÊ¿¿¶¨«´¸¿°tg |}xkkuv~}y}{yw}|yfhhijvukioZXTSTMC<>BVcZI;A//4-,)-@_q k*""%+**9Qbf0^/-+>;:85;35-/'=dtN'##Am%A[e}utag£¸ÀÇÆÃÂÅÂÀ¿¹»ºº¶²¶µ³±¶¹º¸¸¶¶¯¬¥§©°´»¶µ±µ°ºº¼¾»º¿¿¸½·±ºÀ¿¼®¨fQKJXnlRLY_\_aX[|ruwhd{¡¤¬®³¶»ÃÈοJ4*++6)1&,'--./36314.:965@6904*,/7.*,/+5262915CECRgw §¨§§¦¥©§¢¥§¤ ¤¦£¤¢ ¤¢££¥¢£¢¥¢¢¡ £¢¡¢¡ £¡¡ ¡ kkjihlmpjjiekchedabba^\cainw ¨§«®¬¬¬®©¯±««ª¦¥¡|ufVQJJIKOUUYOUW[[]]^`_^cbbccf^_aacfbbb`_^cebeggljhhkiflniffdc[YSWÂÍÞÚÑÈ»½Äº±¬·»º©kx~|| ~urnpz{~ }~yv~zpszww|w|ywrrdfieY\UB:@FQ[ZO<5/+)&'#/DAXni-**$*0.3Wd^2g/).8<902;;6502=mwB-",KZCp|Rcqbo£¾Ä½ÅÆÄÀÁ¿À¾º¹º¸¸¶¶·±¯±²¶¶¸±¹µ¯«¦¥©¬°¶·³°´»³¸½¹¼ºº¼¶°³¶²Áž²¬x_TLEJpucJSdaYeYp{u}lf~¡©µ´»ÃÅÊ÷@+,(*+.+*/%+11458;6722:67:?5812--()01/,/9;7>239HGDYty¡§§¨¨¥¥¨££§¢£££¥¢£¥¢¢¢¡¢£¢¤£¤£¤¡£¡¡ ¥ ££¢¡¡nnmjljfnhdjgifffcedd\c_ccfns{¡§¦§§¯®®«²®¬¬ª§¬£wiYQIFIHMOTUWU[[\]ZXecb_caa`c_a`dddc`_^`beg`gidihgjlihihhef`]_[TTcÒàÑÏɽÁÆȹ¶»¹¯i] uu| tvt{| }ztztmp ~}zuyu^_dcZNK?JFXb^^U>;,-'&)(,ECgrN*&/*00)0WL[<X8'+-<;2+0:5*(&>opC*%5p}en|BXor²Ä¹¿ÃÃÁ¿ÁÀÂÀ¿·¶··µ³³±²²´´²µ»³¸±ª««¬¯µ·¸¹´º´·¸»ºº·º²µ±¹½½Ã¿Ã¿½·o]\P<Dl|j[hgZ`xf}x}zsy¦²¸»ÇÍʽqD/-.'%-+-0)+25/787<;5423=3776;322//,6.,,419:1:4;EIQdt~|xz¥§¦§¦¦¨§¥¢¥¡¥£¢§¦¡£ £¥¥¨¤¥££¢¢¡£¡ ¢ ¡£ ¡nnnmmllmigfhghgehecg`c_c`ekqy¡¨¦¨¨¯¬«¯°®²¬©¨§uiXQJKDJLPMPWWX\\_Z^cbb^cbbb^a`cebddgebcd\iefjihjknlijhokkieaa`ZPYsÁâÐÒÍÁÀ¿ÇÄ·Áº¦wXhttxy{youv|z{|z ~|yyo{{iQGJMVXNFLIJSSg]ifB:32.++(&)1Gj{|@'$&%69ABH@=@L;3/FL=;227=...MpXJ1+Miy¡lGh~¸ÀºÀ¿Á¾Á¾¾»»¸¹¶·¶¯²³¶±³¶´º´²¬©¬±³µ¶¸»´µ²µº¾¶¸²´´ºº¹¿ÃÂÁÂĹ²¢zf\_YGEovpimfok}z{yª¸½ÅÈǬ|Y6--,1.*++/.+,1359957323/493;83790-,/00+-28699/-8<;J\mx|{¦¤©§©¥«¦§¦¢¢£¡£¢¤¥¤¤¢¡££¡¥££¥¢ ¡¦¡ ¢ ¡¡¢¡¡¡ llkknkiljfijigfcabdeb^_b_inry¡£§©®ª¬¯°«®«¯¯²±««ª¤¢ |qj[SLGGJLSSS\TWX[[[`cbd]]\^_`Za`dfa`eddigfdddghejjllkkpnkomcgf]VWU\Ô×ÍÆÂÀĽÀ¿Ç½ph}tpu~~z|xjv} ~zy zsx|}~rqf^swpfWE>D]YIAQXS_Za`hQE631.2,*$.8Rxlr6"$(+2\b+;5;:679?<NW[RTQXN80\xUGF2`|x\z~kTx¸»¿¾½¾ºº½Â¿»º»·¹µ·±²³¹²°²·µ³®ª®°±¬±³»¶»µ¸´µº¶±´»¼¼¼Á»ÁÆÇÆÅÀ¿¸²¨o`YY]KI~skkb]\\{£³»ÁÁ±h;24)1.,./-++)).74=3:;948/28443:711+0*+/2//2367626;>BIauw{ ¡©§©¬¦¦©©¢¤£££¤£££¤¢¢§¥¦£¦¦ ¡¢£¢¤¢¢ ¡¡ ¡¡£lljllmkmdiigefddbbhc`b__\giny £¨«ªª¬«¯¬ª«®°¯¯¯«ª¢xeYYLKGGFOOTRU]V^b]\g`baae`c_cdaa``^badfbadffjjhejknkqponjlifd][XYRtµßÐÈÇÇÂýÂÆÁmv¥zqvpvzrolnxv{zuomovxyzxunpkedZ\QH>GOKGS[XNZdcdZ@C96:96*'11<Yn`n@'.0B6V[*/21146?=?O\Xb^^bZRN`zZPNLE|tU`i{|kv¸¤½º»¾¸»·¹¼¼¼º¸µ¹µ°±²±´³¯±±¯³¯¬±®¯¯³¬©²¶¸´ºµ·µ´¸·ºÀ½¿¹ÂÁÁÆÉÊÌÇź¼³ |g[YZRBKxkM\ES?i~ ¦®·¬YA41,())+/..4/+)-44988B9976@:96:955:.)'*+4-.73=4/16CICRlx|~w£ª¦§¦ª¨«¤§¢¡£¢¤¤¥¤¦¥¢¥¢¤¤¥¢¤¢¡¢¤£¡¢ ¢¢ kkklkpmhhifdkhjfegd]`^^_]afo| ¡¢£¥©®¬¬«³«¬®°¯¯¬¬£sdYPLEBEKOMUT]XWZ]^_^a^a_^ba^abdaecb``cdbaackilhlikunlrljlmgl`e_ZYVbÜÝØËÉÀ¿ÀÍÃ~¢~|xstuvpcemq|}upxskfp{| ~ommZB?;BPTLDJX]HM`jaeHBE7?4B61**7BQUIfG*.79BkF*-3575.30B8;?IB;5E9<Ui:JM@>okTVczl¸¨¼º¹¹´µ±·¸»»µ¹µ´¯¨¬¯°°®³°¯°´³®¯´¯«¯°´²µ´±±¶»¿ÀÀÁÁÄÂÁÄÅÂÅËÌËÇÅÁº¨qcXWXO;?fZSUSG@¥mR6)+,,&*.+)032320/1994:2877:7=9:<90,**+/1.225246++2>@MZm~|}~ ¦§¨©ª¢¦©¤©£§¥¡§¢¦¡£¤©§¤£¥¢ ¢ ¡ ££¢£££¢¡¡£ ¡ ¡ mmmnpkmlghhhfififeacba]]^^js|¢¡ª«®®®®¬©¬³¯¯«ªª¤tiaRMAFKGQVUTUZ]X[Z\c^_\db_a\``]_bdbceb^dbebgihfnjllkprpnokklhf`]YU[ÕßàÖÉÃÆÄÂÉÁ}yzzxtvrockux| zwnllrkq|sx |qhVD@@FM?><GRPDI]dU]GFI=97403.-=CIURcP3?GGFH-+/.00213290,18:=*-+.C_7LK@DldE_{w|¦«ª´·°³¯¯´¹µººµ´¯ª««©ª¬´±©«©¯¬¯´°®°²¯®²®±°±²º¾ÄÄÀÃÁ¿Á¾ÆÃÅÂÇÈËÊÆÃÂÁ² zh^SRRD/6~USSZA[£{rqY9))%)).4,)/,+/1514487;><57==686894/-'*41052;10627==IQdy ||~¢§©«§£¦§¨¦¦¦¤¢¥¦¦¢£¡¢¤¡¥¤¤£¡¢¢ £¢¤¤ ¢¡¡¡££¤¢¡¡ llkjllfjhklgeedhc``bb\\^\cjmw §¥«¬¬¯¬«®¯¯¯¯®«§©wm[UNFEHIMPQLSX\ZX`b]`c_c]a__d__]a^bbgebbddehfhhnlhommtmpjkcjbcd__VZÏÙÜßÐÈÎÆÈÅÀ¤°||u~xwgeips{}~rrlks|~yy]\| tkXOHATG<:5;GH@BY[bZIJE86/0-1-:AEAF@_`BXNC1+*/6.1..../1151/0,(%$+:V<AL[L]Z7Rztxu §µµ²²ª®¶¸²¶µ²®¬§®§¨¢®µ³©«¯±°³²«°«®±±««®¯³¾¾ÄÈÿÂÁÂÁÁÄÅÅÄÃÆÆÅÆÁÅÁ¶¬ pb[KAP>+<yzVbWE@{}vk[:'$**---%,,/+36/767;9:<:57478=683/*/&(,02::6810/9BALan {xw§§¦¨£§¨¦¤¦§¤¥£¥£¡¡¥¤¦ ¤¥¤¢¥¤¡£¥£¦£ ¢¢ ¢¡¥ £¥¤¢¡ ¡ iiqpojkghjlifg`fhf`fa\[`Z]fqx¦¨«©«±®²¬«¬®±°««ª¨ wlaRICAIIROYXS\ZVW]_e`aeb``a^ae__\^b_ab`cbeedeigjkilrkssyjwkojgc_VX]ÐÔÓÙÙÍÉÄÉ˽«¶x{~||r`^gts{|{uvt}sp~}q]Ny }xrX@?B>HF<897:8@XaOTPDC=E2/654?DOB4?_f]X_K225..-000.15173.1)12&*)3OFQilSSY8Lgkuy¤«µ·²®«³³¶²·³¯ª©±ª¨¤ª´±¬¬¯¬µ±´±¬²ª°°°¬£¨ªº¿ÄÅÇÈÅÀÃÂÄÂÀÄÅÅÅÃÇÆÆÈÈÅÀ¸«tfb]JJH8)>nZ]TQ6_~riT82)$(,,)(,+0-57;78485:==?886;530.5/.*%)014923200>BCObx zwv¡¦¥§¦¤¥¨¨¥¦¦¤¤¦§¬¢¢¤¤¤££¤¥¨¥ £¢ ¤ £¡£ ¡¡ ¤ £¢ ¡jjjlhijilhekjddfdfdea][ZUbhnt} £«¨©ª¬¬«¬ª¬¬¯°¬¬®§¦¡ vm]PLDFKOTJPTT]`^_\bafdfbcgffcf````aadb^cdiefgjjghmnttololpkohhd`VVZÓÜÖÔÙÖÇËÄÉ¿µv{}zykknz{y~ywyqju|~vc[xvtlccUCOG@>;68>..6=WdESEDHMRA7>53:GU;'4fkofXJ('(-/4/2/30/-5<3+-/,-**?^YgxfVV^@\¡¥¦±®´±°µ·¸º´·±¨©¬®¤¦©°¬®±´°³µ°°©«±°±®«¥¡®»¿¾¼ÁÆÈÉÁÇÃÅÅÃÇÇÇÈÇÅÃÊÊÈÃÀº¯yd^fV?<=,%=iV\NCAruhJ431*')('(/0.38=>98656;<B<9?9D@6406*3#(.,./7220-86>GZn{v ¢¦¦¨¥©¦¨¥¤¦§¦£¦¢ §¥¤£¥¡¤¢§¢¦¥¦£¤¡¡£ ¢¢ ¡£¤£ lljgnigjjghkfefb`fd`b\[XWddn}}£§ªª®¬ªª®©ª¯±¬±¯®«§viZNMECIMPMOTUY]ZXZ\cdbb`de[bbde`gfaecb_cbeibhjjcgnspsqrommkmmlb`[[VÓÜÛÒÖÚÎÏÆ»£ wqvv}w|wurxu}zztqtqtx~|vo\[|qjYUSIJQML=>;20)*8:HMHNCAEEUQG>;'6LQ8&6q[yx_X2(,+/:/,-00610:/)*,)'),A_lkXUYaOr§¡¶°®©±·±°³µ·»¼¼·²«¥£¦«¬¯¬³³¯²´³°©§ ¯³¬ª¢¨±¼½ÁÃÃÂÅÉÇÀÄÆÇÄÄÈÆÄÂÆÆÇÈÄÉȽµ°j\bNQ?80(0WjbJOMg v`;.-.&,(&(+,-/-1:8978658<79I;A:41-/3--*+*&..812.575HIbtx~z} ¢¥¡¥©¤¦¤¦¥£¨§©¤¢¥£¢¥¡¤¤£¡¥¡¦ £¢¢¡¢¤¡£¢¡£¡¡¤ ¢ nnnhljgkeekigib_db`d`ZY\\dhn|~ ª¬«±¯«¬¯¯¯¯¯¯±¯®¬¤ wj^NJGENKPPXUY]`YX``a\`db^e`bfc_bc`ce]^_^cdgfeimgjlqpsnqqnrmiiefa`ZY|ÒÙÜ×ÓÜÔÓÍûrnjtyz|rqy||~zuhfluz}~wjfXOgb]NF;DWZOB34./-.+15=JUQFUDHU`L=8%8KO?(,^Y{l^5)-/2-12240,*13+/!',&5<SovVIT]le|±§½··¯³·¶¶·¹½¿¼¹¶¶¬¤¢ ©¨©®®°³±¸°®±«ª¨¦¦«´»ÁÅÅÄÁÄÈÊÈÃÄÅÅÂÃÇÆÆÃÈÈÆÆÅÇǾ¸§rbYPLF80-'5lbUHWL|]=3,3&,*)*.,3.2.0>967;;:9;3:B897224E./(-(*02931-0/:KWm||w~¢¡¢ ¥¥¤¤£¥¥¢£¤¦¡¡¢¤¢ ¤¡£¦¢¥£¡£¢§¥¢ ¤¡£ ¢¡££¢ ¡¡ ¦jjdjfghlkinilfabdbc_]\XY\\iru¡¦¬««®®®²®±«®¬°«wm^QNHGAOORXW]^\[]ccbddcbbfdbicgbdacedb`c^addhfjjptmqpqovpmkhkggc]XY|ÏÚÙÚÑ×Ø×̼¥viejv|}ttysv|{uqggfx}ym^VCJSD312IfYIA.34**0+/43FaK;EDXU[YE)-7HP6"/;Zv |oK*+,0.3:1+))),-(*#$$'6\inzkOO_o}± ³·´·±¶²¶»¶»½»¸´´¯©§¡¢£¥§¦¦¥«±¶¶°¬«£¥§©§¯¹½½ÁÄÃÆÀÅÊÍËÇÇÃÄÃÃÄÆÅÉÎËÅÅÈÃÁÀº®¨ye_QI<7.0+2N_UKTGp qQ54,.-+/,.00/1/335<75E268:<<:4;=1-2.+0+*-05836++1.8Sat ~} ¤¢ ¤¤¥¥§¥£¤¡¤¤¤¥¦¤¡¡ ¡ ¤¥¥££§¥£¡¢¢¢£¢¡¡¡ £ kklghdmlnjlpdhfeg_ed`[_[X]em}££¨§§ª«¬¯°°¯¯®«¡¢}uk[ROHIKIJYWT_`\^]dcde`cgdficcbcbhafbdjcdcffihigljonttvvrqqnohhob^X[ËÙ×ÛÕÏØÛʯtebovz|vtxxyz}z}nidqsvuv{v]C55=9.+8N_J64+-31)1/239JbYJ>EGRTa;+/6HVA'(.Gvu~b9**-/.014+/,.#""$&)7_v|lu\N[w£z±¹µ³¶´¸¶¸º¼»½»¶µ³ª¥¥¡ ¡ ¦¤¦«¬³¹´¯¬§£¥®µ¹º½½ÂÄÄÇÄÇÈÌÊÆÊÇÈÅ¿ÃÈÇÆÌÉËÈÌÅÄƾ·¨th\SSC/020,6MSOHI]`G-:5-.602.40,/14436<>>9<<HBA>?>640+/'32(0-7311(-48:Yjx |} ¡¢¦£¦¨¥§¤¥§¤§£§¤¦¡ £¡¢¡ ¤¦¤ ¢¤¤£ ¥£¦ ¢ ¡¡¡ iiolhhjjgjhiigl``ec`aWY[X\cht £¦«¬ª«¬®®««°®®ª©¢}pm]RMHJLFMPVO`[a^\d]bcabb`]ha`aeah_de``dcfgbhkmfhlprttssuqrlrljlb`[[zÀÞØØØÐÒÛѪxcdakqxxoqrwx}{}vnjpw~ w{zxvR.'+1;4+<TP=91,+-//5/.+/>X_XB:AUW`M+'/@WP%*,:\h}\F?6/.*1)*&)#""$(&/_~zfi`\wµ®w¦§¼¶´´µ¶µº¼Á¾¿¾¹´±©¢¤¢¤¥¨«¬°µ¶³±¦¢ ¥¬®¶¶µ»¹ºÁÅÃÄÀÂÇÉÈÆÈÇÅÉÆÇÅÉÇÈÎÎÌÍÈÉÇÁ¸® vkZVUA4).,)*DXTQAQ¦Y917;46-,*0,+31/:9:4:86<:=BF<:C963-40-,(/6.4//,+16:C[ky ¥£¤¥§£¢¤§¨¦¥£¡£¥¢¡¢¢¤£¥£¡¡££¢ ¡¢¢ £¡ ¡ ggjkfhimfpkfnceaaa`d`[]ZWZbtx~ ¡¢¥¨®ª¬¬±¬ª¬¬©§¥£wo`UMMDLOLRUVYZc_`^]dbeghd_hideacbafb`hfb^dekojlgnmootqoorrpqllkcb^]o·ßÛÕÛÖÑÙÆpehgipvssnsqtzusrppv|xwr~wxr]4-&)/<3CXGA300+-1-128/14F\PS;?KNYK=,.:bS%#*71Srkh^_]H5%#&*$!%$%!2[uZSfv´¶¥x¬»¼¶°µ»º¼ÀÂÁÁ½¶³§©¥¥¡¡¡¦¥ª¯¬´·¶²§¤¡¦«¬±¸·¸»½ÀÅÃÁ¾ÃÇËËÇÉÇÈÈÆËÈÌËÌÏÌÉÍÊÍÈú°£l^TSG2,)/(%6YQL<I¡ £W5/2,*)0,0./1022276=5A96:@???<><+4.*--,,..720.0//5?Qgv £§£¤§¥¥¤¨¦¦¥¥¤¤¤¡ ¤¤¡¡¡¢¡¡ ¥¤¤¤¤¡¤¢¢¢¡ ¡¢ kkkiknhnfjcffcfeeedbaa^[\cjly¢©©«ª¬ª¯¯®°®¬ª®¯§¤ ~ugbVRJCLKMQSPX_e][cd_caec`dfehhgf`bd_bacjhmfflfjlonlnnpqtqqpmmnngd^_d¨ÝÝÖÛÛÒήymggkigipspuurwnggqz {{|ne}uns{xhW0,&+6?[]6-/,+5***+.01+7CLTPN;?HVUE8(8gS$#-9+;bcVQdocY3%!*"$"(.P¢f]c|µ«¡¤z{°¾º®¯´µÀÁ¿¿Á¿µ®ª¦¢¥¢¡¦ªµ¹¶²°¢ ¤§°»»»¼ÀÁÇÃÀÃÃÅÉÌÈÉÇÉÈÌËËÌÍÌÏÏÎÎÍÍÉȾ´«me\[I3'$01,1PTLAEr£¨xJ30../4,)+,3-4102317926:B>9??;47./7-0.(/)216.51:78HXq ¤¡¥¨©¥¥¦¥§¤§¥¡¤£¢¡ £¡¡ ¤¢¤£¢¨¡¡ ¢ ¡ ddljkngiig`ggcceffed\c[\[cir{~¥¨¥¯±®¯ª«©°±¬¬®¯®«¨¤xfcOHHIFSSSSV[][[\a_a]gbfgddebikeb_fbcbcdghghhjhlnlnsmtvwvnplpnlj^gbcÎßÛÕÚØËljjhjkhijpwuqwxtnu|~kWx|rprryonuiG-'+->W_V,-)/&+/64-+20-148JVOE:?IKE@1EbX+-<<,2Q X1>@KC>.)&$##!)V qlhx¸µ §¢{ »º±´¦·¼Ã¼¼¾¸µª¬¢¤£¡§±´¶¼±°¤¨¨§¯°´º¹»½¾ÀÄÄÁÁÆÉËÈÉÊÉÊÉËËÌËËÓÑÒÒÏÑÑÎËÁ¹¯¤shWYK=.&*./.BIUK>e£}M--/31*+/1-1+3371565:1@:=8@?EG:4/+,,1/3-/1=1*--16?N_v ¡¢¦§¥¢¤ §¢¦£¤¦¡ ¡£¢¢£¢¦¡¢¡ £¡¡ ¡¡ ¢ fffddjchijiceeiadgdgd`\YZaenv £§§ª¯¬¬®ª¬¬°®¯®©¨§ znjUQJFCOMOVRV[aZa\feda`f_adfagaegccffdfdejfjgggkmjjporxwxqpoopmkic_^wºÜÞÖÚÛÊkhpoqnsiiqupmmuoty~tWesrpqofVWPV?/.23Q^`M2+*)'-273/1;325.38STHHEBEAC:@aV+.>@7<W[(',-+*%$*!!%J ¤pjr º½§¤¥¤£¯µ¶®¤²ÁÀ¸¹³»³©§¦ ¨ ¤¡¥¤®¯´»µ¥¤§®¬µ¶³½¹ÀÃÂÅÄÇÇÂÄÉÎËÉÍÆÇÈËËÎÏÏÓÕÕÔÐÓÓÐÈÁ»´£zk__R>-)'+./6BLI?W¬¦vM1+2//+)170,.4448:@5;6868;BC?6/3/,.(,()-.72.,..79DOp~ ¢¢¡ ¡¡¢¢ ¢¡¢ ¤¡¤£ ¦£¡¤ ¡ hhigihkgmgijhfhgccef`e`[\cjow ¥¥§ª¬®ª«°©®¯±¬¯¯¬©¦¡wlaQQCCGNPQPW[[_^[[ac_hac__dacfjdediddfdfcfihghdijp~|jotusprotqqpjea^k§ÝÞØÛØ»qnnosqqtnnvsjlbn~|xw{nXWc[`NLA9ACBD54..Uab>-*'-)-4;..8>31/613@QLJA=D9AMFYP)+K;5-Y^')&$.(##!&As¤¬qgt¶¿¦¤¦¥£§¤¬¬¢°À¿¶¬½®§ª©ª¡§ ¨£®°·µ¦¥ª²¯´»´¹½ÁÄÂÄÌÈÆÆÇÉÊÉËÊÇÉÉÌËËÏÏÒÑÒÑÓÕÕÑÍɸ§la\QF1&#&./0?EMF=v²®M//216..0CE78?85894567;=BC:?A:503+0/,1222:7/(,+46M`u}~¢ ¡£¡£¡¢¢¡¡ £¨ ¤¥¥¥¡¡ ¢¡ ¡¡ cccmhelgkdjhigebb_ba`^[[ZXcmv ¤£¨§¬©°««²±®«¯¯¨ zsaYQMIPQKPQTU_`]`bafhhckebhlhbhdcffhefdiefiffacgo§{lqurwnpvrnpmgdb`hÑàÞÜÖ¶yrtkqu{xutqmoeaiz}zwlchPA@;HWORIKM\\ZC9.7ThZ2-)*-&-@C7.A:2,.4+0:<AL:;A54HT\O17a:,.@oq,.)#'&#"! %6p¨tgr ³¿±©¤¥¤¥ ¤©¥©¶Á»µ¶´«¬¬©©¬¦¨¤ª¨²³¯¦§©¬¯¯´¹»·½ÁÀÁÀÇÈÃÂÊÉÉÊÊÇÉÉÇÉÎÊÐÐÏÒÒÒÑÐÓÒÐÊĹªxe`YG80&'&&,9FLP8V ¨R08;7:/:*4314A6564;3;:7<AC>@<430-/0010567768,*-16Qiy~¡¤ ¡¢¢¢ ¢ £¡£ £ ¤££ ¤¡¡ ddfnmifcogjmeggcebcbd^b[^`dmv¢¢¥©«ª°¯®¬®®²®¬¯®¦¡wleXUHFKMONTUW[VX^bb_hjceifekjejkecdi`cedafbcfijm¹rnmsvsvmqqlokkmebg~´äáÞÖ¦turjtuxttrgedg |_L[ZPR<I[YO978ORG3+,5fmI4-**,.6FF:;<9*+.//;514C>B964DZ`c;Cj7,/4P7)-*'$!# !$4k xkj}µµ¬«¥¥¦¦§£§±£±ºÁ¾½¸·±§§§¨ª««ª«®¬§¢ ¢©ª¯°®¶º¼»·ÃÄÁÃÄÉÆÄÇÊÈÈÈÉÈÊËÌÎÎÒÐÏÐÒÕÐÐÓÔÎÊÄ¿±¥zkbXK71.-*'+*7FR?B¥ª¦e:3@?62+3:600;7789879;;?D<DD>784.*,*04276?6/).,-:Qq ¡£¢¡ ¡ ¡£¡£ £££¡¡hhkgfhehhgedgcfcicad_^_\X`ihu¢¢¦ªª¬¯ª®²°®®®ª©vo`XOIGQHMOVQZ]Z]\_cbfhgbjgfgicjlchcbehacdebbgfp°£xmosnxttqptpsopnglioÜåÝÖ¤smuqrvxx}smcaru z~y sjzkg`KGQSC/.3?7.*,,<hmM.1,++0>G?23;525176D.+.;>@9227Ncng\z?7-3;G%$($#(#)+b¥tr{ µ¹¥®¨©¡¨¨ª©¶±©¨¯¹¼Àƹ¸¯§ª«©ª¬©«®ª¯¡£¦¥©§®¬²°º½¿¹º¾ÃÂÂÄÆÃÅÄÉÈÉÊÉÉÈÍÌÑÐÑÑÑÑÑÓÑÔÖÔÑÌÃÁµ¤~oaQM:;2,&'(+07LF.x¡®©lA3339.)/,15337;9<=9;D9=CC=<843.-//,2.094451**,/E_t¤¢£¢¢¡ ¢¢ ¡¡¡¢ ¡¡¡jjikhkjlciggicgcdce_``][\bcrw¢¥¨«¬®¯±¯¯¬¯¯«¬ªwnfZSGLNFROVYY`]b]cgcegdgjjfjighibhebbedeebddfl§xqrnxyspstpqvutupnpep¼äßÖ«ynurruyuyytdi~y~y}} ztooicWZD3.-/2+2&/58imA'*)/.ALG8,6=0-372B57).6A<8742?`rix~P@*56hX) & $"$6]©{w}¶¹©¨¶³®ª¦£°£©µ¬¯®¹¾Ã¿º¶¬§¬«§«¨§«¥ ¥¦©«¨³·¹¾¿¾¿ºÃÃÅÇÊÆÆÅÆÊÍËËÊÉÊËÑÑÐÒÕÓÓÓÔÔÖÒÏÊÄĺ§scRN<40)"#'*36KR1h¬¦sJ7019</0163557887:<:<<?BFB=5733-**13-87<58(,**5Kbz¢¦¥ ¡ £¡¢ ¡¤¡ gglqjhhkjgffefhecchda^\[X_equ £¬««®¬¬¯¯¬®®®¬¨¦£pkdZSIEGSTUUV_`\^ieecggfghhjjkdihhdgbdceabhidinrrpruqrqrqutsutsunmmmltÙâܾoquuoqpsttr|||rw vihjla[U95556:')%.94[i?%''/0GQ>08@B+)-8486*+.:H;-983FIfloyYL;;-^jA% %.Y¡ |s{´½©ª°¸¹®®©¨«®§¨§¦¶º½¿¿Ä¿³«¥©¬§§©§¢¥¦¦¨§©¯·¸ºÁ¾ÀÀÁÅÃÄÊÈÉÉÄÊËÊËÉÉÍËÐÑÒÑÓÑÒÒÖÔÓÑÏÎÊȽ«sgVQF7.&!#*.1KY<N¥£©¤hH6<26I:.38437;6<:==97><AD>=;0.4-+/-1042655)*05=Zj ¦¥¢ ¡¡ ¢ ¡¢ kkglkkgdggg_echaaabca[]ZYaiov££§ª¬¨¯°®¯¯ª¯¬®²«±¯©¥leYULHLTSWXX\[]c_ghfheihdglddefebfdcbcacgjekmlwmrnrvrvxwtttvprvuvrnjfp}ÁâáÉqwvrqngmrw}}uvr~}}jhgdT>@95864C-)&'.(+Wn>'+.*8@?/57D4,/48=7121.D<1.1<KUHY[Ehe_RS>h¤o6# )R yr{¯À·¦¬¸µº°²°³³±¡¤¦¦ª±·ÀÇÅʾ°¨¦«¤¢£¤¡ ¢¦ª««ª¨¬´¸»½ÀÁÁÁÃÁÃÆÅÇÈÊÄÊÌÌÌËËÌÉÑÍÑÑÒÔÒÓÒÓÔÑÑÏËƽ¯tdUWG;-($#"(&2AZF@«¢¤¬cZ98324C86<;2478<99?=>C>CBB8>42-4+1//44660/+.38Q`v ¥¨¨¨¥£¡ ¡¡¢ffjhjfigfed`ddccddb^ZZ[\jeggu|¤§©«ª¬¯¯°¯°¯°±®¥ pr`[QNORWUSTV[cebcegcecchddddefghdcdjaeefjhgijmtwqtrrvssuxruzyuvttttnqijt¤ÛãÏv{vurrjir}{yzy~tkfbd_I.2103@O?+'%,))1MnI,368>3.-5=G0-373:B117;H=5&$.GiYNd<KYa]VVw¦^' *Fvx{xª¾¶¥ª¬¹³¸»¶µ¬µ³§ £®¶ÃÉÇö¥§¨©¤ ¦ £¢¦ª©¨®³·´º»½¿ÃÁÅÂÃÅÁÄÇÊÈËÌÎÌÍÊÈÎÏÏÐÒÐÒÓÔÓÕÕÕÕÐÏÅÀ³¡zf]WM>4,&"))(1;TP9°§©ª|bZA:6:*+,59;1<55B@5@><;B?DD:91-+-12-021581+*'.8Rr¥¢¤¢¥£¢¦¡¡ ¡kkjlhklkffbae_ij^beZ_^^]`_cks}¤¨§©¬¯¯¯¯®¯®¯°®°«¦¡zmaYUNROT[YYZ]]\a\cfaeffgei`edfgjahejdblcelkemppwururmqvvxuwxutxsvwttsnnnÆâÒwxtotmj{w{} | xha^faM9<;01AS\/%')#-(/EhW3GKN5+,/:B11109856329HK:9&',8j[<gCBQG734OQ*! Axª ypw¢¶³ªªª»¸»¾´´¶²§¡¤²¹ÆÆż®ª¢¥¦¡¤¦§¥¢©¥¨«¯«´µ¸·¼¾ÃÃÃÇÅÄÇÃÇÇÇÉËÍÍÊÎËÌÐÏÒÏÓÑÑÕÕÖÔÕÕ×ÑÐÊø¢ha]P>5.("&(*(2G`7f®¤ªªcnN,/2.-348>6;4;9==>86=EE;?666.+-3530778;8.*-4Kez¤¤¤¥¢¥£¥¢¤¤hhhkhhieffbcfde`a`\]]\^VX]fmt£¨¨«®ª¯±°°±°®ª®®¨«~ulcWQJNNQSY_b]`c_[`bbdfdgeaifjfhjbfcidiegijffnlv}moqpnx||uwxvywvxxurrrpq|Öتvyrncvyz wxw]Y]VA/614:S]\M++(++)*+3ZlM?>=4/?AHK1/*29G21,0=R?88/(,8ha.JQLH/'"$.ni.#6i¢xzr{º«¦¦¬¬³¿Â¼ºº´¹¯ª¦´¼ÅÉÀ²¬§¢¡¡ª¢¡ £¦©ª«®ª®¬°«²½»¸¿ÁÄÀÃÀÇÈÃÇÈÆÇÌÊËÉËÌÌÏÍÎÎÐÓÒÒÕÔÓÔÔÕÓÑÌüª xjZNI8.*+)+//+;W:P¤©©«]tQ/-41045578<87:6:>;9=;<K<<C422.10457961/-/43Rm~£¨¦¥¥ ¤¤££££¢£hhijghkgebdfg_ea_^_a^^^ZVVckt}¦©®¬®²®«°¬°²°¯¯±®¬§¦wmdYPKNQKSZ]W]^bb_gafcdddcffedglkjdghceggfejhgjp ususrszvxxv||v{{vuqrwvwv½Ò«|{qigq zoiQF/,1?3+Tq]h9'#().)**4Gk_;1+/03M\F6-,58:-,.3JT/4;(/.4QV*2MQA+(# +E{K ,f zw±ª§§®±®°¼Ã»¸»¹¹¬}°±ºÀÅÁ¶¯©¤ ©¢©¡¨©©«®®®®³°°¹¸¸ºÃþÁ¾ÅÇÇÅÇÈÇÎÍÍÊÊÎÍÍÐÏÑÐÓÒÏÒÖÖÖ×ÖÖÑÎÉ»©we]YN>1//(()*38VCHª©±[q>.(14756;55::@8:74<78>B::3183/,.,2:8660)/,/:St ¥§©§¦¡£¤¢¢¢ ¡ ddmghgj`dkdhgaka^a\]X_XXXYam|} ¤¥ª©¬®®¯°¬±¯¯®®®¨ª¥¡uh`XKKLNORW_[]]_]a^cccelffdhegfiidjhmdgkbiiiomimu|nov|uuzwztvyywvzwywtovyw}¹x~yrio ~n^]C3-1A9)&CPdg3,)&67()+,3HhK6%2.>WN54-<6/;*0*6YK2=N/171.B-4NS?## $3sZ1V}owz·©¢¥¥«®³³º¾º¹»»º®v¬«¸À¾¸ª«¡¢¥¡¡ £¢¨ª®¬®³®³°°²µ·»½ÃÂÃÂÂÄÅÇÊÄÃÍÌÌÉËÍÌÊÎÎÐÓÒÔÒÒ×ÔÖÖÖÖÓÑÊÁ°~e`XMD7,-/()$-1T]>~¨¨¯£^n<3.70&/686<5@>CA:;8<=?=3:776.31/-55432-'*(2Fau¤¦§¤¤¡¡¥¡¤£ ¡¡¡¤££¡ggegigbgcffeccd_ccc^Z^^VX[inx¡©«¬®²¯¯¬±°®¨ª¥ ujdTKIKLKXW\^Yabb\hhbgcgebjgjfjmicefhhfihfhhlnintuwnuqrwuz{{uxwzzy~{yyuy~qszwn|{|~uaTH2-7KD3'(-?nF2*)1E3'0,&)4Ia;.);UXJ9.+/819*,*<_A+E]3-7'+.=6Oe?$! ,O}g_r¡toz«¯£¤¢¦¦ª´µ½»º¶¿»¸± t}©°¼ÃÀ¶¯¦¢¡ ¤¡£¥©ªª©¬¯±±´°·µ·µ½ÁÁÃÂÅÃÃÇÇËÄÆÇÈÉËÊËËÉÎÍÏÒÔÒÔÒÖÕÔÔÔÖÓÓÍIJ£m\`WM>3/),+''1GcCj¡©®¤iYB3D<2,;63;99::A;A=;==>;;7-02643/39763,+(.5E[s}¢¡¢¨¤¡£¤¢£¥¤¤¤¢£¦¦¥ £ ¢ ddfjbicdcggdaec\be]d_^[ZY`dls~¨¤©¬«¯®®®²¯°®®«¢¡vj]TUQKLORZWY^``_]`cheeghdidfdjhmeeifcfegejmmklppstwtqpqpskqjsonopjefy} qnqmupz~|z}l`YN90.EY8,!&'Ev@8*'JT21<*%%(4RH>9ZbS=2&()297,))@f;';Z142%&2E4OzS! # 1bg¡}jt£²¥ ¤¡¢¢¥¯³À¼º¹»¸»¹¯¤«°¹Ã¸®¨¦ £ ¢¦¥¬ª®¯«¬¬°¯¯´´³·¶¼½¿ÂÃÅÄÆÆÆÊÊÆÇÆÇÊÉÊËÌÌÏÍÏÑÑÐÒÓÔÓÖ×ÔÒÔÎĸªuecXP=2+-)()(1HePi¤¬®«nXH1C8,).8=?9:<?:8@@B??H@850240198368:6,+*3FMlx¢§¤¥¤¢ ¡¢¢¡¡ ¡¢¦£¢¥£¢¢ ¤¡£ ddhjcffkjeccdfaadfiab\ZY[aakv¤¨¯¬¯¯¬¯¯°¬°¯³³¯®¯«¨sf`VQKQNQSTSY_^``_ff`ehhbejfhfiojijkfdffhikmnmjslrvvxtrolrlokmnelidegrxW]W}yhis~{z~zsb[NG/)-V[/)$&$O{E0,:b4)(9(%$',6>Mcib?67()09<.+,-Rd-&-J<>9)12-.ca)!(>l|qn§¼£ ¢¡¦¬¯»¼º»¼»»»²®«µ¼¸§©§¦¡ ¥¦££¡¦¡¨¨°«°°°®´µ¶²¶¸¹¾½¿ÁÄÃÆÇÄÇÂÄÇÃÄÅËÈÊÉÊÎËÌÏÐÏÑÒÒÓÖÖÓÑÎÊÇÀ¬sd\YQ@4*%%*),18]IXª®ªYV-9</.*/9934=88<D>@@B@;930*+3/2482923-),3:Sr{ ¡¤£§¦£¡¡¢¡ ¢¢¥¢£¤¡¤§£¤£ ffekfcjifdcjde__a^_g_^[[T_ehyz¦ª¬¬¬¯¯¯®°°°±¯±¯®¬«¥£wkeWOKLHOTWUTV^__bhcdcgfcgihiiheglidefcglgkljklnrqtywvzxwvstsvrqqnqwuzqY[Uay{w`p{|x{xmfWF,+=bZ,'&"&P}R@/@O+$37=/2-.7BkheG6;*%"+;7.&)7Yd*%*GQX9@C/'<xqA0# 2Srv~lcj´®¢¡¡ ¡¡ ¦¼»¾¾µ·¹·´¬¢¶¹¶¬£§¦¤¡¦©¤¡£¢¤©§¦¨°®®¯±²´´±²´¸¾À½ÂÃÅÆÅÂÃÁÆÃÆÄÉÈÇÉÌÌÌÈÎÑÏÒÒÒÓÓÔÔÔÐÌËËƳwf`bMD3+''*((.6^GW«°ªeX./903;7;5:94:>;=CF@<;?832.242025539.,)41CYv ¤§¢£¥£¢¢¡£ ¡£¡¢¢¡§¥¢§££¦¢¥¥¢ ggfngdfhbdf^fe^ac``ie^W[Y\egv¡¦¨«ª¨«®±°°¯³¯²¬¬«© ~sh`XTOHLQRW\TY`]^bddddghe`dlahihfgbhiifikfjjklnmmprwxwyvyywtv}uxxz|w}~xLLargr}|z~xvs{ohU;/3]nM'&"#'VZ??64$(=,:?;;3GmqB9F64%'.,<7)('7kM'*,?]]:;;(*]u>(,(% )+Ixuc\fy»°¡ ¤£¥¢£¦¯¼¾Â¼·´¼·¸²ª®¹µ¬©¦¦§¡¤¨¢¤¦¤¤¡¦£©§§¬«´²°°°²°²´®®±¶¼½¿¿ÂÄÄÈÂÅÃÁÁÅÂÉÈÉÈÌÊÉÌÌÌÐÒÔÐÑÔÔÔÖÒÓÎÎÆ´¢uc`[U@4+&***(.5QJOx¬«±a[66A29:=I;=?>;<;:EDB@9<982.082//575/3,+,3Khz ¤¤¡¥££¡¢¢¤£¥¢£¢ ¡¤¥¤§¦§§¢§¨¦¢¡¡ eegggfgghbcbac]aaaa_aZZVY\cit~¡£¥ªª®¨®±®°°±¯¯®¬«© smeWOJHKOMRVZ[Yb^cdbgfggeaggfcfhjijfhheihglhkqqnqjqvrsuy{yztyyvvxyuvw ¥aow¨º¶}nzt} ||qpzujV9/4BYzL+$ %,L ]QE')*47#4GKDNhxWIOH51'(/(8=1%+Dr3*(+?^r>6)+A}:)$-4.!">viVYr¹¸ §§¥¨ª¥¡©¯¾¾¾½ºµÀº·¯²¸¯®²¨ ¡££§¥¥§£§©§©««®¯´±±¯±²²±°°´²¸¸»¸¿Á¾ÄÅÄÇÁÂÃÃÅÈÈÈÇÉÉËÍÌËÐÑÏÒÓÕÒÔÐÒÒÒÌƱ¤~haUN;2'&''.+48TOHw¬²°lY78K36;AJ=5:C?;9C<=@A?6-023A4363583-3*+7@Rky}¢£¡¤¦£¨¢¢¢¡£¡¢¤¥¨£¦§¦¢¥¦§££¡ddfmcad^gaeae`a`\]a_]_]XY\dhw¦¨«««°°¯±¯±°³£umdRTOGNPOSVX^_^^bffbg_adhakggjhdddghighegglllqnqsqswtqxvsxvxyywyrwvw§¯½Áuutxw yss~m[;-/:@Zx@"&$,N`d5&!%7%(/8HSfnVPVC>1,,--1>83-+Go/'(&8du=)%,\f*+082&$.ds_Yi´¹¬ ©¦°«®©¥¡§°½¿¾ºº¹¿¼·²¶²°´¬¢| ¢¡£¤§¤¦¯©¨®°®±±²±³¶·¯µ²¯¶¶···ºº¾¾ÄÂÂÄÂÀÅÄÁÈÅÇÆÆÉÍËÊÊÍÏÌÒÑÔÔÔÏÏÏÍËƶ¤~i_RG<10'%'+-(5DD;y¦²³uOGAH6?=QHDB03:;A@<D@>;5010440@37@881.*4<J^t~¤¤¥¦¡£¤¢¢ ¤¤ ¢ ¥¤¡¢¦©¨§¤££¤£ __hhefbgf]bfhbcdbbg`_\^YZ[ihn£¦¦©¬¬¬®¯®±±²¯±¯³¬¬¨ vl`USJHLNOTSX^Y__ceecdgiegimfcgcfdcgdkbcbfghjkprsqqrtvprw}v{uxw|w} }~®Zovy¢|||~~tqyfA-.7TIjq,!)",1IgZ*")/3)*2@Za_PCF::1+',)*,458+1ZX-#&&<ic=%$:jA,4@6./+X¦`]a´Â¯£¦°¬³²®¥¦§³·¿¾¾º¿½¹´¹´¶µ¥ldh|{ ££¥¥¨©¦®±¯²¯°³³´²°²°±¯´·µ¸·º¾ÁÀÂÆÅÃÃÀÁÄÀÄÄÄÅÈÇÊËÊÌÍÎÌÑÐÔÓÔÑÐÎÍÍÅ·©|fU?:7,*())'*)/=Q3m§´³~PBLH62>>A::8>:8@F:E>68122/3;//7396/,*-3@Shv¡£¥¢¡£ ¡¡¢¡¡£¥¥£¥£§¦¦¥¤¢£¡ ¢ iihencchdbcfaaade]a_]]]_U^dhr}¦¥¬«¬®¯¯±®²®®©¨£ui]VSJFSSRWYRYX^```adgdilfgidgfhheedgeidjmikipppotovwztuywuxuxut}©¶83>CCNYbv|}ypm}q^4.2M^GwW"#)'/<Zj:$&"0725HMF><2>C-(,(%*(-123:3/WG$$&,Tel<##JmAEP;'!*E}t[e}ªÆ¹¤¨§«³³·«¦¦²¸ÀÀÀ¾Æ¿¾¿»¶¸£mNJRfunyy¤«ª®®ª±´°´¶´°´®®±°±²¯µ·¶¸½½ÄÄÆÆÁÄÁ½¾ÃÅÅÇÇÊÊÇÈÉËÎÑÐÐÒÑÏÌÎÈŽ³ybG=7302*(+(.%-HY,^²²_CCB86>A:DK@>@=ECOS>?7:/1,741648>90,114EWr~ ¢£¥¢¢ ¢¡£¢ ¡¡ ¡££¤¥¤¢¢¥¤¤£¦ ggdagcfef``cdddadbede]`YYY_js~¡¤¥¨©¯¯°±±¯±°±°±±¬¨§ wkcWQPDKSQYW[aaZ``cghihifd`f`Xgedehc_ebghhnjknkusvsvuvxyuvxxvvuzÍͽ¥F$&%&&'+>n}ymirp^TE/>?bFZm?%#$,4Pur+##&=239?94///3@2(1)*+4,.5351,G7*))0eUl9)2[[72.)#;y x_drƺ©«¦§°¹¹·«£¤³½ÃÁÀÂÅÀ¾»¹°OEGUY]ejnhty}~}¦¦¬±¯µ´´·µµ´®³³¯¯²¯´·¸·½»ÃÂÃÃÀ¿À¾ÄÄÂÃÄÈÄÉÊÉÉËËÏÎÍÐÐÌÍȹ®¤oRA<702+&%&"%,/A_.P ¹µ^@85>@C8739==:;IIGFH=52540332015421/3+1H]s¡¤¡ ¡ ¥¡¢ ¢¤£©¡¡¥¡bbgeebgafefcccgeeca``\`[[^cfu¢¤¨¦ª¯¯°°±¯°°±±±±«¬ª¡zkaXXHJRNUXYUZZY[``fefjhgjihkegdfjgbdagjefldgjlsnroxyrwvwwwuxvw¯äÊosV8%!"%&*%I¥«|{piesiN905@YfAk_("(,(:_j &+A,,.8439*45:0+/*,5:7.2895.JF/+,8`Il>02_B*% #+mc]lµÁ¬¥¬®³²¿À»¸½ÀÃÄÆÅÀÀ¿ªxUUWXaa`fc[`hddVfnsz|£¦¯³³¶¶µ±²³°°¯µª¯µ¹¶º»ÂÂÀÀÀ¼¿¿¿Ã¿¿ÃÁÅÇÉÊÌÈÌÎÐÎÎÎËÆdz®¤ odL?;6-+&'(('**/Eb9>»µxR353;GMB15B89B>FDE;9.5/3/11275696/*14;Scv~¡¤¤¡¢ ¢¡ £¡£££¥£¤¡ccgdeddedhheiacdheeab]\\^[cgv~¤¦©ª°°®³¯´³±¯°±®¬¬¤ yl^WQJMINYSYRX\\c^ad_ahegifggggh`gicjeiiggkjnmmmquwxxutwzzw{yyx¶ß·l]455,''-'+8a®ÔÖ¼{vjUPkWF214<\EXI)(1+,Ha~q""((6.'00/8784?J93)0/69-+'/HFOZR2==4W3iN&/\4'' *L¦l\d°¿®©ª¬¯µ¸¾Â»©¶º¾¾ÂÄÂÁÂÁvfhnvxywulf`ge[SMWU]ekr} §®°¹µµ°±³²±¯¯ª³µ¸¹½¿ÁÁÁ¿Â¼º¼¿¼ÀÂÆÃÆÉÊÈÊËÎÎÎÍÌÉÁ¸µ¨s`_G=9514+(&'('&1C]85}º¹£{Z:;-<<JC=:>:9@@L>B565./-4407:17441++3BUjy ¢¤¤£ ¢ ¡ ¡ ¢£¢ ¤¢¡£ccfbfeddidegjdcadddc^^_[WZ`er} §¨¬¬¬²°´¯±®²²±²°ª¨¡ti_SPJNPPOYYVYaea]cgfgdheieciehmljggfhhhe`gkiijnsystuyuy{{x|xy}²Ñ®d364/-&(2<U{¹ËÀºoYIDSOA74?AaHx,(-')=Zexr'!$+4#*45<VB2;4GF9/*,:7/2+00,B`hNF2<`.[S%-U1'%#>un[`{ª¹®¦¬´²¸ÀÂĵ¥¨¶¼»½ÂÃÂÁºyvzyunkd[P??DGIKYjoz¥¨°³°¯±³´³´°¬¬¬¯²´ººÁÄÂÀÁ¿½¸¼¼¾¾ÁÂÂÅÈÊÈÉÈÍÍÌÆü®¦zoh^TB>98/+')&(+),1<O72}®»«_1:/3:EL6:D@:>?=;838;15,:8405<<411,2/F`k¢©¦£ ¡ ¢ ¢ ¡ ddiidhgbhfgbhdaecc`fa^^[U[]mt¢¨§¬¯®°²³¯²²´¯±²®ª¨¥ vl^SSKGJOUTVS\^a^^_^eepfbgcbcchhegdfjgfbfiijmgpnsvrsowvvr~z{¢´oJI;=-&')0V~¬¡vlVA=VRC==6W][H+(.%4W[\Vo)!!('&*<LBNL;5);OH50+<-''(*'*.Jm`3(Nc(K\+6N("/:neby¿±¡«¯°·¹ºÃǽ¯«¬¼½ºÆÃÃÀ¹{}}th\KC;F==DLX^q§©¯°¯µ±®¬®®±¯¯²¾½ºÀÃÁÂÁ½¼»Â¾¾½À¿ÁÅÉÉÆžº®qfd_`[NGE>=D83((,(+*/1;E9-y¬¼©a5<.869H?HC<;F@>;;847=42,-109=67561-7L]u¢£¥£¦¡¡ ¢¢ kkelfkhfih`dcdgjedf\b\^^V_`ht~ ¨§¬¬®¯«¯°²®¯²±°±©{mcWMILLTPX]Y[Yc]^__fcngdlegbbeb_fehebgfddefjoomppruovvuzwz}¥^F61-%'-0P{n\`m_@?I`W>68B[OlT.0.6-Gb_V;."%(''3M?B:+=S*3JT4)6>*(#,) ()4PfY=ia%3]:->"('*P ¢rds¿½¦ª°²¸»ÁÆij¦¥¨²»½ÀÅý±vy¢zm`]RFMCA?9FOYg ©¯«ª«¨«ª«°¯¯¶¹¼º¿¿¿¾¿¾½¹½Áþ¿¾ÃÄ¿¾»³«rjXOTBKUUY^XVVVG6/.1,,+009B;.u®·¥u@>484;O=CPEABGA=75+-613/1--39:82161:Nk}¤¢ ¢¥¡ ¡¡¡¢ hhfifdfdhjgihbcbieec`_^^Y[_gn|£§ª¯¬¯®±¯®±°±²´°¯©© ~i]SQNTURSRXW^V\bcceahljehfgecacae]efclecffnomliporturysvu~¦HA80,$&)&RhZX\bI=KZR85B`_QZ50**'E`]h@0~? &$/3EaLF<7=cF?[\C'5;))(+'%)#-3O_fvT&-[Y.*$9u§nh·Ã¬§ª´´¾ÂÆÇ¿¬£¡©³¼¾ÄÅÇÁ«|txz{£ ~~saaVSHHD??AO[y¡§«§«¤§««¯´°¹¸¼Å¼¾»Á»º¼ÁÃÅÁ¾¼Á¿¹±§naXXVNXPUTmnuohjkaT?3.5*,&'-1HA/y´¶£vF>>434UB?DA=DC==641,72074/485C877/8<Vn£¤£¢¡ ¢ £¡ ggccejdcigmhfcbffacccc\[WZ`dsy¡¨«®°±ª±±¯«®±³±²¬ª {h]SNMOVSPWVV`[ea`d_dehljcfhbegfbf]chebehhkgjllqjmioqrwr{B11=<?,#*Q|eQSMqhOHI:;@Gf^_<1-125\r_Q)*n^+$)1&4G;>7.*,39[]a<80$$$)()'*01YS` R%+I\' 2b§q¨Ã·¡¨¬±³¸»ÇÆÄ»§¨«º¿ÁÅÇÀon{ uz¥£ ~[hZ^UTOKNHNN`v¦ª©¦¨§«ª¬°¬µµ¹Á¾½ÀÁ¿º»Á½Â¾Àº·¼´¨vbTXSa_Wlfrf{xnqe_U=:76)+'(*.CF1k«µ¥sW;7385GS9<=<=EC=7;3,/30250:8989:925A[q}£ ¢¦¥£¢ ¡ ccfcifhefmkmfihhfc`ce^SVZW_js~¥§¬²°«¯¯°¯²²°²±³®ª¡ypgXNNMPTTY\[^c```ceukggebgddedfdaZ^caabenbheeijjhmqqrpr¨]K:_trC*&Gu_O8VY?2<34GPici;4747NzlS0$1T}8(%,)4L@7+'&0(8WffL5*#",-,*1('*35ClnA+1/" !J{{r£¿¹¨¨©«²¸½ÁÆÅ¿µ©¡±µ¾ÄÇǽloqx~}{|sO{qv[lejd^W]ZQZ\bow¥¤££§ª¢¥©®¯ºº¹¼ÁÁÁÁÁ¾º¼ºÀ·¸´´·o[VZ_gtlhryzmzqbcb[K@6:8**)0)3EC)d¢·£s\813.6AJ29B<>I?E349/.B64=4144<567>=Jgx ¡¡¢¢£¡¡¡¡cchceheikmdkfkcbebc`aXZWST^jr|¤§¬«°¯®²¬®°±¯³´¶µ®© zrbXQKHHUSXZ\[f^^bgiiegccegdcddfchcdfhahccdeiglomenmkqpz°¸yVl¥hPGg}|vW;YR7/+29HSmxeGA?DKY{d8#%&?qD0/)*<SQ2&&(*01Ueh[-'(($**0/((*(1-8Rb=)"&!!5{qmw¼Â§£¬®¯¸ÀÀÃÇÅ»¬£¡¢¦·ºÂÈȶdblqqrxuv}xu|nX3Zt`w}[Yqs|qidnc]dahmz ¡¦¤¥§«®¹»¸½¿ÂÂÃÂÀ¾¿¾Á¼²®ªpnkfkqw}ybeofstoj_NPSRG<=N9-6/+)3GJ+]¸©pZP50248K59B<?G@:31801230342956-38>DRq} ~}¡ ¢ ¢ ccdighfikjdmfhedffa\^ZU\XZagt¦¯¯¯°±¯±®±®±¯±³¬¨¥ yp_\PKLLNTTSX[Y]fbahdfidbhhffaihcea`kfecdgkfkhniimnkkts±Â³¬¬ xyziun<7;>(2:FLRZ{q=FCMHPesb-#"#7[kW,,1*0[W4.)%#$0Mglb4(+%(&+42.-&,*%(-;U&!,a¡shk¹Á°¤¬§²»½ÂÄËÈù±¨¨¦²º¼Ä̲uUd`hlke^_bffimkW>/Eo|SDepIgn{|k_utomqpfmy££¢£¨«²¸ÀÄÃÄÆÂÁ¾»½ÀÀ½·¬¤|zzzonvp_FWKEZ_U\MKMQJC>AM9*)'--:BL-dº®nc_.-/17^;>D?A?:;23,-/577758740.25=H^x ¢ ¡ __ebdcgmhkfmbee_dba^^[UWRZ_gs}¢¦¬¯¯°²¯¯°°±°°°¬¬¥£xicUOPJMN\UTVX\e^\adceibffccc`aiabbhid^aceidbejghipqy ¨¼´·¬¥®§fVRU\H:,<A)(2APUexH+JWRV>dxa%"#"1TRn10--<T^1/-&$)3>_`lW4%0++,.-4*.++*.''D?">¢ji|°Æµ¤ª¨±»ÁÅÈÈÊÀµ³©®·½ÆÊdTU_b`dgd`JKICRIQ;6/8Qi^K0.CE@ToyWewzusttwz¢ §®°¼¾ÃÁÂÆÆÅ¿½¿½¿¾·©~xZQXI76799AG?AC?ELFBDIA..*%'.6IL-\·±tpgW0106;T<=CAC<85/4.4.4.8036;60+*4?Wl}~ ¡iijfjebmdfdedccdjb]]^]TXPX^ct £¦«±²°´±¯²±±°³°²¯¨¦¢£niUMHIJMMSWXU\`_gccdcdfiicedaddgedaa]__c`ddhbihow¥¬{O3C80/,.0;V\9JLP]r{a1,@IYWKhtP*"""5]@h@')-6Y]+'&&$).0C\v`:*),/2-(/-.3)0&$#(=!"'nweo¢¿¹¨ªª°®¶¿ÄËÌËǼ¹µ¬±·¿Æͦ^OQO^WMEFWT@@C>9;962,25<78/+/008S{dax|yz{|wz¡£°¹Áÿ½ÄÃÄÂÂÁ¾À»´¢gnaG;9732414498<<A=FGB@FN3(+0($,-IT+V¶«pwrSD41.<\A8=E;87340120223.3145+'+5;So~¢¢¥¥¡bbgceeebecbgbabffd`^`UYTRS\iv~ «§«®®°²®²µ±¯®±³°¬¬¨£ |peUPQTHJMOTXY[]\\bcdhcdhidgfdce`ad]_digc_f_bbdq{i{{N,1,(!(%(<:LJPWVlwH3;BQkPMktM+,(*9a8PX/,*/]e/(&"#&10:I}xeA/(%++,9//0(&$$'%#(O nf¼À¦¬ª°³»ÃÆËÇÉ»¹»¶¶¿ÅÉZHNVMPHG<4;@86952812535521-+-+)(,5DKjz }z¡©¬²º¿Å¿ÅÅÅÆÆÆÁÁ·ªsdaDF91275811301/:6<68?@IAG;.-1*$&'-HT.L°±¦|soTPD/28RD=AAC8=10/3192/.1.795/)'.:_v ¡ ¢¤¡ ccihgehccedicddd[]eb\U\ZOTVfr}£¦«®°²²²°³´±±°¯«§znaX[LIKKRUXWRY^\_cffjeggebddbdfbadae`_c`]_`b_j¢º¼x`cfy^E+*- !*BVh^MP\\iU==D^iGUsyS+)'*1d56JG-01cg.+&+$(&'+0\{|nO2-*.(+)/.,%$,39x m}ªË´§³¯±·»ÄÈËž¹·º´»ÆÈPAGFGDC?:536434412/10.2;0896A,.(&,)*8^}~ ¢©´·ºÂÅÃÅÈËËÇž¹vW:>5363243310/.467:58777<FG4+)2))''.LO/I¬±¡miVMB5-6NH;;:E7<-/,2/50-=:9874-&&/>dy¡ ¡¡ ¡ccigeb^bahdd`^`]^^b\]YVRQSPbn{¥©©¨¬³®°³°±³²³±¯®±©£ yncYYPJGJUTUTZY^WWea^eijdh`eafc_cf``dc\_\]ZZ_ew ¢Èξ}}kRF;PlfE(&$$)?eti[NPYk]XdPFLlPIa||U'&.'0_>)7V:/2Ys.&)'$'%% 05pyqr`@&&$'+/34* &*&Zvg{Á榬°¶´¹ÄÈËÃÁº¼¾¹ÂÆ¢XF@?K;67952544:3/24.0./,37?TG73.(.''0(7Xo{~¥«´»¿ÂÇÌÆËÊËʼ²[N;8<17:719>:10042377:@657@?32.40,-$,1FE/F§µof^GGJ12J>@<@A54/,0/142-:98285++',Jg ¢¢¡¢¡ ]]abbc_^]e__`^\_]^Z[SPRNMUYcmt¥£«ª®¯²¯°´²°´°²°±«¥zodSMFEFOIQWUXSZUZc\^_ifdg`e_`c]_dbaa_c]\VY]b|¡²¦ÆÕˤxuiO30KTJ5'$#"(@ZvtgNC=ec3AfUNNfEOmuO#!/*6X=#*?U=-^8,,*(&$$)%*AiyyrgH($)&'-/%)'"!#E¡dd¹Æ¯§¤¬±°¸¸ÂÅÍÊÃÂÀ½¿¿½Å§^JAACC952/05535735-,*/./0OBbwo\F9.*'.)&.<Vs} ¡§©´»¾ÅÊËÌÍÍÏËǺvK=85;534>34GV[K>;2/048A;9<9;650--.*%,,3FD.E¨·¢ab^J@=?6SF;;=:41///34427.12>51.)+5Sm ¡ ¢]]\]ba]X\^\a^Z[]^[_UYSPLLNT]ms¤«ª®±¯¯¯°¯¯±°¯°®¨¦{rbUNFLHKNSTWZXX[\`\`__bgc`]^aa`_aea__YVXWSUn®ÎÁ¯ÐÑÅytW73FO</)!"!&4xm[F2/S~^F79ZXN^ZEQpM*$&2<Q?*/:RV5\G%-42,%+)+*0>nzpmfR;+''-)""&!!3j¦q_~¬É½§©ª«¯³¹¹ÄÉÍÊÂľ¾ÃÁŦYCKI>;B3004/00/7/30.,./,28FZ¢hN8*))+&*.Cdu~¢¬µ¼¾ÅÊÎÍÌÑÐʽe86:3/27629?3V|j[C1,+-323:89;2/.544+(,04NL,B¢º¬`ZXG2A5<LJ?<;950-/,0/021879225//3A^z ccd\_c``a^cb\\\_[Z\S[RPMJNPai|£¦¬±¯²°¯¯°²³±²²°±®ª¦yncUJJJBIOUUWZYd_[_c`_f_dc`b]cg^]]c\ZYaYVSUVÎ̸¸ÒÍ®w||h{i[?XQ0**)*$!3b|`5.)Cye2'-0EZWeWO`b1($#01JE*108@3OS(.,,/+()(%+4Hg`JZSm^/)*(#%" &S eeÃÆ«¬¦¯²®µµ´ÄÉÊÄÇÅÀ¾ÀÈ®aDHPKKF:)/101055/+612(.0L>E^¢ÁÀ¯wb;*'&'*,3Qn~}~ ¡£§¯¹¿ËËÒÔÑÓÏŧpA123-.*1;:Qq\Ks_@.')+0686:77.)042.*$//P@-B ·¨`SfLB@;>TP=><:302-032413063022,26Lj~ ¤ __baab^]^[``[[ZYZ\YUOVZKKOQ\is¢ª¬°¯°°²¯±²°¯³±°±«¤¢{pdXRIILLQUVZZ]\[``d`bbafcb`cfb]dc^`^ZXWXXUWÍƳ½Î¶ze\oPMV7-%"1/,*Ysa5'.7mvD%$*@Uirc]d}yI:/-',*?<),0-.0Ge*/-11.+2/+-02;;-3?PZU2*'"!!2rk_y±È°¤¨¬³µ¯µ¸¶ÊÎÉÇÁÅÅÅįiLPWULD<2*)*35=MC+/><-'$(XWAVy®ÊÌ¿°£aE++;LJ?Om{|yvy¥¦ªºÂÊÏÖ×ÓÕ̵zQ621,+1,,78[E¡¤kP6++*+4768:5/30/2.%&,.PA+7¢·©_YcXE?@>XC<=E<51-,414579500/.,+0@]q¡ ``eii]]^c]_b]]aZ[XYRQPQMHIS\kx¥©¯®µ®±´±²¯²´´±®¦yqbSHJMINRXYZ\[bebfaadf^_d^df``cdc]]\\\ZWYVWïÅÅ~^miB?G4$&,833PucN=&&3_rM1%#+,H^|xc]Zvp7/+*)G/.0''8.',>z}?+5+,(*+)30/1./++-@HA8:%&'!%R¡~`lƽ¤¯±·²±·¹ÃÎËÊÇÁÈÅË·kQRXUND815,*,3ARZQ2<PO0&$'8ZA2H£ÌÌÇÀÀ¹kH<>hlTKd{|xzwy £ª³¼ÇÐÒØ×ÖÓÁ\C225<40+-=9ML°{^C8-)-0113831.22/.&'5?PI-6¤²¨eeVl@>H:_B=?;86-.//0+6=4<2.00/1:Jax ¡ bbcb_f\`c_a`[^^[ZWUSQSQJHLQ^px £©®°µ´²¯®¯²°´¯´³µ²ª{k_ZMILNQVXT`aa`c]^dcde`]ea\aafaf`a^^[\ZVXRI^ À´¾Æµ§gH-LQ+,&&CHUm\>.0&7MfG@/'#)2RVwWZRq545/+.,,%$(5+,,4fI1=5)')(../,:22*+*4:4*)/IK9;tg\ÂÉ´¤¯¶³¹¹¸·ÀÌÏËÇÉÉÄɽzP[^VQD8853*.48F\gZ29^]L0)+EpM8BÌÌÆÆÆÁ¬bFD]nT[tzutqs§¬¶¿ÇÓÚÛÙÖÌoVE82AC?6-(<<DcjF³¨¡`L<5./E.03<54./5-2'')5^?+4§¯©rYWfO?DFT??;:631,/9=1.147-*+/25BPm{£ ~ffdb`c]d_a_e]c]\]VUXSSOJFKV^mv ¤¨°²³°±±´±µ²¶±±²µ¨¡{qbTNGIJOUVW\[ce\dcdcgfedacccclffdcea]\\[TD:N¸®ºÂ°¤yif1)+*$').Kpi]E*%/0NY<7D;-1+;HX_Ba[sB572/+.1)(5*0&'.RT6D00#$&/&.78/+)'492+%(-5HJbu`t©Í¿ª¤ª²»¶½¼ÈÉËÆÆÍÉÈÂ]akeaVS@5301-/BG_skG4\bZHBBZlJ5W±ÏÌÌÎËÈ¿«XFX|x^Zlwrpqsx{¦°·ÀÇÐØÚÙÔ¾eNON3<TP?*.HUGSLE²¨ kRD7'/6*+/./4*/)3J@+2?`;+;«±®{HUhWEDWV7;B66230210.31301+.078AXr¡ }zcccbbj]`ee]f_Z]\[VWYUTOOHJR]lv ¡¨¥¬±°®°±±¯³²µ¶²¶³®¨¤{pg\PHHJNVWT`c]icefbfegadkhddgkbbbff^``_WF43J¹ USl¢¾Äµ©]msVA%'(,'#/9ux[L7)'9NWI57LN/-2;CfcNQep91/0.*/01,8.+)+1EywF>,)*,*-,*0:.*&()++%'#%%.JirVl¼¿¨¡¨³¾ÃÊÊËÆÁÆÇÇibgtni\TRNB;.+-EJ]uycC:TbVV[SH9B~ÅÑÎÐÒÍÎȶlLFl~j\`ppmpvyz} ¡¥±¹ÁÈÔØ×Ó˨|ZUga==^dYKCWiUK:W¢°¦tN>;-+*'+-/1/2)-1*'+-<c;,3{©¯´OPf]MAXU4:E=0,-041324456350748Hbt ¢ ¡ ~ddacge``dcb]e`][\XY]QPNMDIO\hw¤§ª°®´±µ²¶´±·µ´³µ°«ª¢{rbYOOQPPXQ[[ddc^djjhhkbijdfjifffdelhccXK<-1;u¸VBUn¨ÐÒ²ª¡hP.6452+'&**3CYocK/2-.KU9C5:JY5*3@JykZV{q:/+,/62/,&8(&'&-@eO5.1)5+)1-1=-(-&,+(#-'$&/ZxsQ\}±¢ª´»ÃÆÉÊÈÅÅÃÂgmesxzunda_VN7/3ESZlsX;<OWZPM7AqÏÓÒÓÓÍÎʶ{]Tc~vfbkoourvz¢¡§µ·ÅÏ×ÚÖÔÅn]ixx]:Uad]VXYWF@{®§pVE?.--*)(/0),6,*.+,1Fh5-2r¯¬¶ SHa[KJTX::5>44/-3347<854.-.0-6Rh £ ii`dcc``b`ceh_\\\\XUQPNJCGNVgx £§©¯²°±±¯±´¶´³¶°²±±¬¢{rd\UNITSWR[[ab]aefilkd`fkkl]gkhlirzkUGHA:1++@¬qnÁÕÍÓÆ´k9*(*)-1#$'/0>^bSE8730=CR>J8=DV98>HUvaWu@.'3+04//6@.,(,(:RtM*,405,-++540*0,'(+'.(%,@}gQf¦¡£¨«»¹ÁÆÅÈÇÅÄÂÇÃlcprz~}tuymd`J2+3D\ir}qY>96=:AMk ÆÐÎÐÏÑÊÈÀ°raf}}tforw|uq{¢©±¼ÌÕÖÛÙÖ¿hilvQAUgd`bREGo¡³¥mRE=.56(.,/-(/.(-(',5Re1-5j°§¹W?[WLHVN86572.?:0511><53,1-/15Yl |£§¬eedc_dbbcfa`_`ZV[^V\SMMIEJUYis¢¨«°±´±³°±µ¶µ·³¶²±ª¡¢}yqg^WQPMSUZ][aiedefjihiiggfmdcglftkN928:2-41G«³Ã¾¹ËßîâÓ»y@A*,*/)))&)14Ta]?88ED<8<UH<9>=GUNWPXvhXQt}H6&(-:0029<5(.*.4EO=*)1:2-,(--68(''$!%*025?n|SV~¯¹©°³´¼¾ÃÇÉÊÄÅÅÅÄ mhquvv||ulVA//Icqpuxq_R?BKX¼ÊËÊÊÎÌÆü£xjt~zpps|}xv{z¥«¯ÁÏ×ÛÝØϵcoroZMKYXVKLs´¶±§jPA512.,0313(..++++-4P_:4:hª©¹\>V]YR\O;;886.0.7533?:51-,,+0<at¢ ¢¥ª®±ddigb]bd`cdcd]^UZZZUSONKDDR[kv|¡¦®²´±µ´±³´³¶´´³°¯®£¢xsjZVKPTPW[[aafidhaklhoihkdmbgjkekl;84?7079KVv¶¨¿·ÂÞôòæÏ7:L0%(/(#&&.3SeRRHTSYH32@VUFFTQNa^[E`ihJVnN7*+75,.)?,+6,/+6=:6-(7@1'&),/05&%.-!#!*6<XcXf£Â«¬µ²´½ÃÃÇÉÅÇÁÄÁljswzrv~||vcSCCRcsww|xleft£ºÅÆÊÍÏÑÏÊÆ°qny ~tqyt|{|¢ª¸ÇÏÛÜÝÕÍ®~dak}riXOOVd{·µ±¬§{hQD:66/.003852')55-/4TX235[¨¹¡e=Q_VQ_IG44.343711+.8:;522+.2Sc|¢¡ ¢¡£«ª¯µ¶bbecehebccbca``V]][XSSMJIDRZdt|¤¨¬¯±´³´µ³³²¶²±µ¶®©¢yrf`VRXRY\Y^ccdeiggpjnjlnnmlhicPD=C/43^eVN`y§¸°®ºåõòãÁq;3EeC'(())'+2IfondZIF22*,7UPS[_XWTWGAfit8SqZI0=@2)'/?2,''$)0982.6C?..60,.17'$(%$! 9*M |cfÂű¹µÀÇÇÆÇÅÁÁ¼fir|{z|~{ rj_[]_^nw ¶»ÁÅÇËÎÑÎǶsp|}yruy| ¤©·ÈÑÜàÝÖÊ¥}fZYaxyqu³ºµ¬xdSE1/7=63066350.48330\X719[«¿£gEKdM`RLH81-12-2-,058:;0-2/+3Mg ¢¢¤ ¢¦©¬¬±²µ·ºcc`effbc`cfac[[]\WZ[VOIJJHSYk{¤§¬®°±³´²³¶¶µ´²´³®¬¢£ rg]VRTURX]]Yceagjjmomiomkkq|j@8/**+69J~xx ¨¶½«µØëÚ½S<+29nW*('-./A[yskV/,/&#(Bd6>YaTL@WMJhvx1Ot¥i\GK3-.%.9,'$')14,1-0<@:6.,02D;/4+#'%",);n_`|¬Î¿£¦®´º»ÅÈÊÈÆÄ¿¼`bwy{{~|tkciSKq}¨°»»ÁÄÁ¹¯§ª|uv~}xwy{ §»ÃÐÝßàÕÊ¥~tf`\lw¡§®´®¤|f\M5.4B@>885:810262336[W988\¥½°oSU]TeF>>35-.)/,-,1/758/+(0/CYu ¢¢ ¢¢¥¬°¯°±¶¶º»¿hhghggd`dcc`bcYY]Z[T]PLKIAPXiw¤¥©¬²´´³´¶²´··µµ³¶¯ª¥ qfaYVSXUY\]`eicfmnloqjnnrfzT.1,+.2;Fa¡ °ÄÀ¥ÍÍ´S82-0-3Td@.3:Jg{ h^m2$!+ #1Mn(7Y[ONHN^Pcx7T§utpKA3FR$2+($%+%,/4210182.901/*8/'&-"!#,RmVlÂ˯£§¬¶¹¼¾ÈÉÊÆÄžb\lx{|{~}pmrilxrot ©§¬²²ª±´»½± ~ywysxy©¶ÁÏÛßÝÖȨ|vyu q^L9,0>JC>98;840/1J7289[U005X ¼µpULWXlB5DAG/.+/:-+24;5:;1+6BLbv¡ ¥¨¨ }¡¤©«³µµ¶¶·¹½½¿kkggccgbbikc`][\[WURTPMJHHOZet¦©«²±³³´´·µµ·µµ´´³«£¢{pi]URPPV\`ab_fikkjpqmoppkm©>%.$*7?Nc ¤Ä³M/4/)*$1Hq_P_kt lSIH^U+$'$()5]y-4aYQJONN]^{Re©pos@8:`I+/.0*#)*/,6-./00+*+2,:-9($%$%#""9w_a·Ê¹¦§ª±¶º¾ÃÊËÉ¿^_huw| xv}~~lmk|o`z § ¢¤¯¬¬«®~|t{{~«·ÀÐÛßáÕɳ®¥ ub[NA2/8TSKF;75>94)1H764:UL-.4S¸¶[MNXfI6DB3,2220/)(2;=91.6:{Xly §± ¦¬¬±±´¶·¸»¹·½»¾¿hhhjfjhelmfa__YY[XWQPPRQCHL[h|£¨ª«©±²´±µ´µ²¶¹´¸²´¤¤qf]VSWUYZ[`ebgijfqppmuqqnl@**'2Lbo~¯~¤º¼tC32<:7,.8Gqnjh[WE5;Bei4("%%*2=`z'5ZbZH6DFVeq{he¡mNpEFl_6&--,&*-.+0/+-.1/003293.+1$&"# *^oYgÀ¢¤¨¯°»½ÂÈÎÆÅÆÂ``invx zmhw}dYvijse£¨§³¯¯¨}w}x~|§´»ÎÚáãÙÍ´©¬§¤|{qup~X?B>=?@C?CXYUE78794/-07456CSQ502T´¹^UETcS@9<-.2/707/3;<C4226BM]t ¡¨¨¬²´¶¹·¸ºº¼¼¸¼»¾¾ggfghnifabia\_X[Z[UUOQRJDHIYds~ ¥¨¬®±±³²´·¸·¹µ¹¶·°®©¥ vhbTMQRS]]^egfigjqrpooonjo¡U*/4Fj¤µ~} ¤³bA:@KF@37079LvyQ:?/3Gg{G'$%**086[y78OkhZ.2MYivjrq cK\^K*#'-(+-&-)-,,044+*/98/0,#'&##"!&F|b\³Ã©ª³³¸ÁÂÈÊÅÇÁYSilt~~ mwzn\qn{f}¦¥¢£~zwz|}~¦±·ÍÚßãÜͶª¤¡jpnrrat]C;M<CUVSPWVSA;42<3)#,3/9:KWS04;M·¿eUB[bR866./.132/)48966606CZk{£¡¢ ¥¤ª°±µ·¹»¼¼¼»½¼¸¼¾»½fff`clihedja[`]YTTVTMOFFBJLUep¡§¬°°³³³µ¶µ··»¸µ»µ±«§¨}ugbWNPXW[`ckbgdlglnmjnnnklyd9AI\¡{u{q^REAHG:+*-22,0QqZD7Kky?6//,-21-Qu4NJ\a^8&3Sgoxgptqddyyh)%',2.13D))+//.-.*,,0264-(%&#""#2knbi»·¢¡°¶¸¼ÄÄËÉÅÅYQ_fnv| w{qn{l¦uy~¦«¹ÌÙßàÜϹ®¤ oysywrylUA]OJP\WVQVUC667:3-(2>32;QMT4,6OµºoZ:YbM=2;433561'/6>A2..64Eep ¡¡ ¢£©±²·¸º¸¸À½½¾¿¼¼º»½»¾gghigkjd_bhc[YYVTVWVSRKJEHFTft ¥¦«®¯´µ³±µ¶µ·µµ»¼´³®¦¥ukeWLOWTU\\aegkmimpqrsnmonpaouxr|sOAJYTQZYI981'),/-%'<q_NjkNPTI,6<))OqA;KTjhN+5\pebqyuztwo3$%2:3-*,1/43).30./,/4526-&'&#&Y¡cfs¨¸££¨³²µ½ÅÈËÆÄYQQ`kn{~ |~ w wz ~}¡¢ª¿Ê×ÞãÜÓ¿´¨ ~|}}vlRj_LRcbaY\RF:0:8/&$34,19OIR4+7O°¿£v`8QfA9.69-,40*(.<=9560+/Pcz ¡¡ª«²µ¶ººº¾¾½¾¾¿½¾¿¾¾¹¼¹½ffjddeb`abb``]X]SSUSQLMIDBGRhp|¦§©®¯°´°³³¶··¸·µº´°±ª¥ qh\SOLRTVY^ae_fehlmoukljies§©oUFGDCEEakS810(*,*3')56DpysgpvP*69#):gECEBlq\@1jjQRsw y6()+.594*,4421.(.733.474,00'! #<vncp¹ª§°³³°»ÂÊÉËÈ¢]OS\cqvy¤z{ } ¢¥¬»ÆÒÝãÞÒõ®ª¡ {}~mVfgM]h_b[a[M?6?6-')32.3:>KO4+7N«À©{b<BeBB5)80*0'-+3DH=,)%.8Lb{ ¥¡ ¦¬¯³¹»º¼½¿¾Á½ÀÀ»¾¿¼¼¼¼¼¼¿eegdcdd`_c]\]VZWURUYQMIF?CMTcoy¦«¬°³¯´³¶·¶¶·¸¸´±¶°¦¤viaRNIQQXY]`bchgjmlmiimkkcnw ¤¢¥¡o_ELSL9@TeUQ5,.0%*=6+$757?g{{sF461&)1XVND?bvkVFkWNG]suszzt[E4@--)'+4.-+./0-.6,./+/*0'(+&!"(` ¡kg~©À¨¡«²¶·µÁÇÉÊÊ©_JV]cmuu}¡£¥¤¡£¡~¥¯¿ÉÒÚßÝÒȸ¶±¦¤}}|scji^eheg]aYN=7@:-('45629;MG/.3Hª¼¥ b?;\K5<,81292,04CC8)/,/2Pr¤¬®´¸¹¼¿¾¿ÁÁ¿Â¾½½½½¼¼¿¼»¼¼½ddgecdde^^_^YYSSVRSQNMFG=;KTdp £¤¥ª²²´°´´µ²·¸·¶¶³³®¦¥ tgaUMPRT]b^_cchgojmmlmmkmilo§«ª¥wp`QMEBCCS`WPA;,$$(3P1.-?939S}ryvw`M?18.(+3OMKF6@x|na]K@K@an_cUU^_HZOK,+/,/213,'.18630/--,'#$%#$?yskoÁ²«¦ª±µ¼¿ÈÌÏ̶`GQ\_gnr{z| ¡¨¨§£¤¤¡£§ || ¥ª¼ÈÐÕÝÝÖȼ»¸¨¢£ ~||wsotlhmnmhfUQ@;D;/)*96-===HS365F¬¼¦_9:^A69,8:/83-12?;7.())BUs ~¡ª¯´¹º¼¿¼¿ÂÁÁÀÀÀ¿¿¾½¿¼¿½¼¼½¿¿hhcccb]a_][\YZWSQTTKMFA<66>L\p¢¡¦««®±º¶´·´´··¸¸¸°®§£yh\QRUOS\\_]abfkhmmpmohmkolmx®¨vtwoaH@?<CNjdYN62((&:=[;0;GC7O`cijsjk_eF;4'*,#(=>LIF56NuweKXa`haXXj<?[^<K3500-),..-,+/)45//2*/2)%!%#0f|dh{¤»¬¶±³·ºÀÆËÌλp<NU^enpvxy ££ ¥ ¢¤¥§ª¥§¥¢¦£§~¡ª¶ÃÎÙÝÝÖƾ»º±«££ }zvnwpvrmibaS=:A55%-741:?8KS204F¢¦½¯d@@^L/9*.910*-15:81,(3+Cdw~ ~£§²¹¼¿ÀÀÀÂÂÂÁÂÁ¾À¿¿½½½¼½¾»½½¼¾ddaeaY^[]ZYTQUQSSSRLMED<98DN`p| ¨§©¯°±´·²³¸¹·¶µ¸µ¶¦£ug[WMQPZXXZ^aegibljnnlmmlmlnrrpmpxjU><9@SjgT9=?7)%./NW;8AW\XmeuMCJGAgiRI/,+$#586?VS4/2Nqx}yvqJJln@@_H&+10,,,-/-',1(+)067-32100&'(-Giek´±´¶»»ÃÃÊÏÍÁ?ET`fqporx¤¡¡¢¤¦¡¡£¢¢¦¤«ª£¦±¬®¥¢¬¬ ¢ª¤¤ ~} ¨´¿ÑÙßàÖÆÀ»ºµ¯ ztwqvurrj^UI>I94$-670@;?VL4,4?¤º°j=BW]./91<-*&(11;,-.)00Lf| ¥±¶½ÀÁÃÄÅÄÃÀÁÁ¿ÀÀ¿¿À¾½¼¾¼½¿¿½¾ff^`\[Y]\`TYUTQMPSTQIFF@=>AJXk| ¤¦©¯²°²¶³·²·µ·µ¶¶¸²¬¦§tgZZPKOR\]]adbgoippnlljrklmnuu plhrolL?=JGP]o`B00<2++1=VRF<Ngktl|nF<14PmcU4&&*'2A-9=`ZF716Gz`<=sKIt,*(+1-2+/20,0.'0.12?00003+**,8kobdu¢µª²µº½½ÆÉÏÎÇ@@MYajqquvw} ¡¡¢¤§¤¦ ¤§ª¬¦¦ ¥§¥¨£§©«©©±®©¤¦¬°¤¦®¥§±´ÁÏÙÜÝ×Ì»··°§£zwrrsomncaU=>@88*373:@<<JB4*7@ £»°c9>SS,/5192/(,2464+,,*6Pk| ¦¬²¶¼ÀÃÄÄÆÄÅÃÂÁ¾Á½À¿¿¿¼¼¼»¾¼½¼¾Àcc]`^Y[XW[YTPRPPRSNKFF=?=;BN\l}¤¦©¬¯³±´¶¸²¹¸¸¶¹·µ¶®¨¤wga\OMUVU\[_e^hgkisnpqorlkrtzxpmltsgODYbx}yw]M93833*4/<]ZQE^wwngdI45Ejw[G($#&/5-3NShqRB7*2g|SB;CgSz¦£Z-/)-.3300341&++,(,15165245*.,P£gen¹£±¶¼»½ÀÂÈÌ̤@?GQ\_lptx{|} ¨©§£¥¢ª¬¬²«©¨£¦ª¤§¨®±°®¬¥©¦¦¦§§¦¡¦ §¸ÂÍÖÙÞÙϽ¶µ²©£|z{xzsokgfZC=;96+5/29C<<IB4#-;ª¶±¤l6;QH)&13D+*',566/,,,/>Xu ¨®µ¹¼¿ÂÄÅÆÄÄÄÅÀÀ¿½¿¿½¼½½½¾¿¾¿»¾¾¿aa^_^]X[^XUVWTOTUPQPEBD===IUZgy¨§©®¯²²±µ¶´¸¸³¶·¶°¨ ¢uiaWOMRSX]cad`fhfjnoilnpsmquyzo`nsyoeq w\?889201/7Om`MPht_uj_?AGlnR/&$&'02.9ObriUP=;HMOmmT<\is¦«r;236342141376.+0,(/2/53-.11'':otli¬¾ ³¸¿À¾ÄÃÇÌ°L9CKW_dppv|zy§ª©¡£¢ª¬®´¬«©£¦¥¨¦©¬®®¬¨¨ª¦¨¬¨ª£¢ ¥µÅÊÓÜßÚÏƹ´´´±«¡¤|}yy|rqkdTEA;<4)/24<;6=PI-#*:w¦¶´¦n@9EM(#263,5.07751+,-4Des ¡£¦¯´¸½ÀÃÅÆÅÉÅÅÃÃÁ¿¿À¿Á½¼»»¼»¼»½¾À¿¾[[Z\V^WZUSTVQVPLQINLGDA;<;EKXn{¡¦ª¬´°·±³²²¶·¶·´µ®°§£wl^VOOOQU[W[`agdkimpnmnoptsu|sglv§«¢z_PD9=::A@<:QvdNGri{p[YTMgu_A#"%(,*3+9<Qc{dUWVPEEcu{|w ~=@HJD@B>/,--63..,-(01,417,+2,)R¥~igpÀ²«µ¼¾½ÂÆÉÉ»Y67EQRakpqoy~z¡¢©©¤¥¥ª©±¬««¬«ª¬¨©¨©©°°¨¬ zz~¥¯ÄËÑÚßÜÑƼ¸µ±¯¨§ ~|z{zrpnd\JA/84(-8?A1??RC2,*:| ¨°·¥u97JJ*%1A910*,431.01/=Umz£¥ª³»½ÀÂÄÅÅÇÄÇÆÆÁÁÀÀ¿À¿¼½½»º½¿À¾¾¾ÀÁXX]\\[W[TTVVURTNTINHB?;;;=BPXiv¤¥°²¯´²³²µµ·³´·²°©¢oe]ZRPNPV]]__aeafjfkmmorru ¤®¦¥vdMIG=?>CFFB9?`zWGRnyu{X\p_hys]K+(%))%)2-14:D[muTbllbXZN\ vEDkc_RQUMB'%(434)&/+*)/--.+)(-Bwnajv¤¾§±¼¿»½ÆÌÍÁz64=GKVgmrpux|{ ¥¤¨¨¬§¬°®°²²¯¬ª¬¨¤±±²®²¬§¢|z£±¾ÈÓÝàßÒÊ¿·°°®«£~}y|vtlk]NG8<6325;71F:Y@)#&5y¢¬³¦wF4G<)%+B3+*,2891+-.+;[p ¢·¸¾¿ÂÇÈÆÄÆÇÅÄÅÃÁ¿Â¾¿¿¼¾½½¼¿Â¾¿½¿Á¿^^^]kd]YX\UVVTWOMLNLKBC>;:AO[gx ¤¦««®±°²´³´¶µ¸¶´·´±®¨ ~ph^PQOOWZZ]Zbaa]ddlnpu ¢¢¨«¥zcRKLNXSA6789=CF>3IejTH[iyqSSbyrvcE)(%)*'!+823.+5KTjeouz}pk_Vhi@2_}vfSVYS/'.26-,10+050+*,)'(-T¢}fgp»´®¹¼Â¿ÂËÎÈ403?LS__oruyxz{ ¢§¨¨®§§±¬´°¨±¶¶±±°¯¬«¥©®²®²«®ª¨£ ~|¬½Æ××ßÜÓÌÀ¸¬¬© }~{|vwrj[G99;0,18A75I;U70+'/t ±®yJ2A4""(C=-#09585/01*Eev ¤©²¸¾¿ÂÆÆÈÅÅÆÈÈÅÁÁÁÁþ¿¿½¾½¾¿¿À¿¾ÀÂÂÃZZ\]gdVXTRVQSSSLJKIEFA?;99DMbl{ §©®¯®²²´²³²¶¶·¶³¸±£tk^TONOUY\[[^cbfggks¡£¡¢ M<D49I`W=89<>>?BFF:QmeVLVwrOQbuycV?/,*3),')(.*)/0>TPCFnu||vjM;51.2_rca_J0-354/:--,00-+0)))&1opfov¦À«´½¼ÄÂÉÐ̨=*(6AKTZfqutuz}~~¢¤§®¬©¯¶µ®¨ª«²²±¯¶³±°°®¯±°°©ª¤£ } ¨»È×ÙßÝÔ͸©§¤¦¢ }zuuniWF:8=4-3@I6:E>V:+3+,g¤´«¤Q/D?/.*;9,(-393+.//4Siz ¤©³¸½¿ÀÂÅÆÆÄÃÄÄÃÂÃÂÃÀÀÀÀ¾À¿½¾¾¿À¿ÀÀÁÁÃWWVXZXWUWSPULMSOMNKHJ??;56@Mat{~£¡¬«®²²°²µ¶´¶¶³¶´´³®¤¢uh[PJNONRTYY[ahkhuz~pC05.<QST>65<?C@D8:AERh^RO\[Qm~\G<44595.-(+).*0.16<PO?KjusnL'$"()9c}ujV>5/-.../-.0.-./10+,6Sªsrt}µµ³¼ÀÃÃÆÏϽX)$.4DMW_iowuwy|}~¡¢£§©«®«®³²´°¬ª´³°±±²±°®²¯²¯ª©§¤ §ºÊÓ×ßÙÒÏĸ¯¨¦¥¢¡¡}w}qh_K9?<0+<;B>5CCU8,+)/_§´§¦c9C6(**42,2689+0),/6Xo ¢ ¢¥®¸ºÀÀÂÄÅÅÄÃÄÅÆÇÃÃÂÃÁ¿ÀÀ¿º¾¿ÁÃÃÂÄÂÅÆÅYYTSY_XTQPLNQ^MLMOHGIC?9;;CO\ky£¨¬¬¯°´¯µ±³³²··¹´µ¬§£rfZVLOJTQVYZ]gguyu{}|~u`TG862B\[OL>B?A=9I=4?HVdXFS]vwco~u:5506661*/13.5,(0-24F^WA6??SjM/$$(12EatgF78)./2.-+,-/*/3))*0:lssxu¼¨¶ÁÁÃÃÍÒÉ|-!(-8GU`blow|{z~¥¥§§ª®¬°±³°µ¯°´²·´®®¯´³°³²²ª¨¦¡¡ { ¦»ËÑ×ÝÛÕÐÇ·±«§£¥£¢¢~~x{ztiZF9@A1-/B<64OBW;4++1]¢¥¥k2:2+*.,6))2303**,+DZu ¨±·º¼ÂÁÂÃÄÄÅÄÃÄÄÅÂÃÃÅÁÁÁÀ¿À¿¾ÂÀÀÃÂÇÄÊÉÉTTUXSZWQPOROOUOMJGGDCH?<69?M]kz¢¦ª¬®³´±±µ³¯´¶¹¸´´©¦¡ udYWORPRW\\^bikyxtuqjv{us\_WLEKOJNZK:<=A96?:HQSnV<F`hhxv{sh@3--94..101*./-1/2718:^a;,,H]P1(&5Vcw|oZFP:..&2*02*-./)'&(*2\iyy²¸¬»½À¾ÈÑÍ5$&/2;ATaenrzw{||}|¥¤§¨¬ª¬¬±³´´³³°°®®®³°²³±«ª©¥¢¡¥¹ÅÒÚÜÞÛÐǹ²©¥£§ £}|ykjV<4680/5B?64QLT4+)(,]¦ ¡x=/1'&$(.3*/98/***.Dct ¡¡¬³»½ÁÁÂÂÂÅÀÂÃÂÅÆÃÃÃÃÄÂÁÀÁ¿¾ÀÀÁÂÄÄÄÆÆÈÊÈPPVPNTTQLPKLOQQPKIICF?<9=9>KZky¤¨«°°²¯±³³²³¶»µ±¸¯°°§¤~tl_ZOINSWVW``dlkwnmopsruygifj]i`_VUTZ[]?:BD5/:=CLbop=7JQr}|vNH<XW/03?4/-1//+/-.3059)*-?X`>+A^@-&'"$/_bl}kZf_70+#)+/,'&230&!*,<xvm}v¤Í³¶¿»¼½ÊѯB)'-967GWaimuxzx|z{zz¢¦¨¯®®±±´³´´²´²°¯¬¶¯°³®°ª¬®§¦¢|£³ÅÒÞßàÚÓÈ·°©¦¡¢¡¢|~upbS<399.0:;728HVQ64*)-Q¦¤ ~B+6""*+/=3/43.)2,0Nj{¡ £«°¹½ÁÁÃÄÃÀÃÂÁÃÂÃÄÃÁÃÁ¿ÁÁÁÃÁÃÀÃÂÄÃÆÆÆÈËÊÉWWVOTJOLNTIJMPOLJKJHB@<:;5>DXl{¢¥©¯±±´±³²´µµ³³´±±¬§¢}ogaXJKPR[\\^aiinfelmopqp|x\Z]NH[bYUYh_JQ=HO747BIUapsY6<GU mb999Mi7165.00+000--)-975+5-H6QX;8YJ5+$',[fnj{xT//835$*,*)2+'("$3_¤swr¿Ì±¾Á¿ºÁÑÁb('(,04DHU_httyyx|y ¡¦°®®³µ³®¶³ºº¶´³««¬°¬¨°¦¤¥ ~¡°ÆÏÛßßÜÔɹª¦¡¢¢¡ x}qnbR@;>:)0>445:G_M6-*'.L¢¬¥|¨S(/#&,*0K6571.1.+8Xn¡ ¡¢¢ §³´¹¾ÂÄÀÂÁÁÂÂÂÂÁÂÁÃÅÂÁÁÂÄÁÁÀ¿ÃÆÆÅÈÊÉÈÉËËËTTQMPRRMOMMGKMPHHMJEDBK88>EGYkz ¦©©¯²±¯²´³·µ³´¶µ°°«§ wg^WMOMZY[`]dcbnifonlnwt|}nN][HHRUK^fcM@Z]PM42<EU_qvX<1<Ckn^biAE?Gl2:81-*-*.:62121228-,4@119:0TR6)# )VmkC13,(')*)%(1%* ":vptxu̾¹ÂÀ¼»ÊÊ5#%,+.7EMYagusyu|}~z ¥§¨ª¬²±°±´´·¾¹µ¯®¨««©«¨¯¨¡ { ¤²ÁÌÚÝÞÛ×Ë´²¨¥¤¥¤¢}tg`L;9<7,4@442:F]H3''#/J ®¢~¤W)0(+*(4M:3663+.+BZt¡¡¢|¤«µ»½ÀÄÄÂÄÂÀÂÁÁÀÁÃÃÃÃÃÂÃÄÄÅÃÁÃÇÆÅÇÌËÉÉËÉÌËPPRMNOMPNNOOHIGFIIIGB>9;;7=F]jy£¦¨ª¯¯´³³²±µ°¯´´²°®¥oh\XNKTOWT[bda`jjnolrorut}~jPQXTZPJfwq\B_fYD<;GXmuz]<18<Omt[ftN5@mJ<:')-+5/77365.067.0,3H73532KW9'!,9OfopY>'%$','#"&2%"")[voosÀÇ»½Æ½½Ãά:/+-5.26@OYelrquu{{~ ¢§©¥¨«¬°²´¶³°¯´·³¯®©¯°¯«©¢£~| §®ºÒÖÚÜÛØÍ·°©¥¤¦¡¢ ~zqh`E=;71(19845:HaK2*)',H¦ª£ ¥a,-#+;)3<>33/-,*/Jby¡¡¢ z¨²»»ÂÅÆÅÆÄÂÁÁÀÂÁÁÃÄÅÄÂÃÂÂÂÄÂÆÇÉÇÉÊÊÌÌËÍÎÊÌSSTRLKGSHJKJKHHFI@AG@?=965CLXg}¢¢«®¬®²°¯µ°¯´®°±±¯®«£¥ui^RKIMQVYYY_jjheimmlqrsqurd@@Zwgh||^HG_j`JGJ\lwkO;/+5;UPg]YmkB>M:C;+*,,4>336371.3123-,H).-'1@[<(""1KYeqmm¦wX-%# #"%$#""!%9rsrptƹ»¿ÄÃÅÌÂj20*-:-74<MYelquzxvx~ ¢¢¢¨¦¬¯°±°¸®²´µ·°¯¯¯«²©¨¦§¢¢ ~} ªµË×ÛÜÝØÍ¿®©¨¨¨¡¡¢ |}~yulUB9F7/,46131:M^I4))&*;©¨¡n8,$(*&4AD7:3/-/3Ul¢¦¥ }£±·»¿¿ÃÄÄÃÂÁÂÂÃÀÄÃÃÄÃÃÃÂÁÃÅÄÇÉÈËÊÊÊÌÏÌËÍËÌÊPPKPIOFHJJQHCHKCDLDC<@@84;AHTft§¨¬ª¯±°²¯®°±±±¯®®«¤ zi_SOOVRUW^]Z_biihijjqoqrtmU:Pz yZ?C^cqbVEJdrlF664:89;5Xl\^p<38A=52+6/3?/33,>3-4211=75,:A/00JD)%":A`fq{gZ°zE*"+/)"!")&"$*S xstw{¶Å¸½ÄÅÉÐÌ2)))5C,0<=KU_entyvxy ¢§£§©ª²¯³¯±¯±¸±®®©«°®¥¦¥¤|v¨ºÃÐÛßÞÙÓ»ª§£ª¤wzqeSD>:4)'=12//3E]K.,)%+@y´¯|;+)"$#1CC@-1835=Yu¯£Æ¥¡¡ ®³¿¼ÁÄÃÄÃÃÃÁÂÂÁÀÁÁÁÀÃÃÃÄÃÅÇÈÊÈÉÌÍÎÎËÍÎÊËÍÍÍIINKLMGLILLPKKGGECEEB>:77<CEUgv¥§©«°¯°±®°°³°¯±®ª¬ vf\PIMZRY`[b`]behfkklnsrrqhRTvZFCTmjqc?F]s lL:99@8C273Gq{^QzL2<<A:91331B9.,+520+.0%..+AXj3*$7C.*(+*QmrpaNZ¤¬lD,(+&!&"# ((3qiptwǼ½ÄÇËÏѳD*#$(/>/4<COQchlpzz{{{~ ¥¥¥§®±°¬±µ±²¯«©«ª¬ª§§¥¡¡ {}y¦±ºÎÖßßÛÔ¿¬¦¦¤¢|~yzmaN<?1,)07/3159K_L0'&($5w¨°¬H&0()$-A=:604.2Fbx ¥³²¨±¸¾¿ÃÂÃÅÀÂÂÂÁÁÀÁÁÀÅÁÂÄÃÄÃÇÆÊËËÎÎÍÎÌÌÍÍÌÍÌÊÊNNLKIMMHQLKKLKKED@CD=96503?IUjy¡¥¬¨¬¯°®¬¬®¯³²®±¯¯¨§te]RLIINYYispb`ecfjioknoopvu£r`AKFPp}ikF;^|^;:79IN8R512@]~kMb828F<:6970E63/-/2.)/1/(+,Fk_1%$/E5*.(2Mpp{rVJu¤pI-&!"%($*+*Mydp{}̼ÄÈÌÐÕÈu5)"&'?C1/6=GQdhlpwyy¢¦©¥¨«³®®®±°±°²ª¨«¨¨¨¤£~~}|¡«¸Î×ÝßØÒê ¤¡¡¤¡~xwn_Q=?*(03:.59>>LXG1'&(%9s¢¯¦W7=#!&47?:/6215Lf~£¡¦¡¥°µ½¿ÂÂÂÄÄÄÁÀÂÁÀ¾¿¿ÀÃÁÃÄÃÄÈÉÊÊÌÎÌÍÎÍÌÏÍÌÌÊÊËÊJJLPRNMKLLPMNRHFJGIC;@<652:GXhw£¬¬¯±°¬°©ª®®±³±©¦¤tlYOPDOTP[t d_dbjlgkgnztTH/@JXpjQAVX<467<fJ>VI>7LrtXE(3A:B<@53I94-27+,)+*3'&/LIU2(.3=9---=`ovhOOy²n2!."&++('0`mdpy ÃÊÅÈËÎÑÔ§/"%%(/9H76<GQS^enmwtz~~¥©§««´¯¯±¯²¯¬¨§¬¬§©§¤¡¢ z}||£«»ËØÜßÚÖȪ¡¡¢vwkZF<6010753>89AO]G*!$"$1l©§ d4C$1(.;4<,-(*<\w£¢¤¡ ©±º¾ÂÂÄÂÂÃÀ¾ÀÀþÁÁÃÂÃÃÅÆÅÇÉÉËËÍÑÐÑÏÏÍÏÌÉÊÌÌÉÍOOLKGGKGGJLJOIEGBCCB>>5374=HXkx¢¥©¬±±¯®®«®°²±²±°©¨¢viUUFHJMP\yh_a`iigr{ ¥aD:;61FSnzW?]}`9.,.5`uHHW68:rSlY=87874<:0@C1*).'(3+*:(&&?GDAGF>92*5<QafrT9V_¶Q)##(% ($;zmoo ÑÇÉËÌÍÑÁ\' &#$%@N918?OT[belpox|}~ ¤¡¦£ª¬²¬¬¯®«¬®¨¨«¦§§¡¢~{y{} §¯¹ÆÕÚÜÞØÌ®¢¥¢~ xyjWC=43*16:2>97:LaP/(%%&3g¤¥h=7 #-8?5871,,=^z£ ¢¡¤®¸¼ÀÃÅÂÃÂÂÃÂÀÁÃÂÁÁÁÁÁÅÃÇÆÉÉÌÎÌÐÐÒÑÐÐÌÍÌÉÉËÉÊËTTNQHOLKLLQIHKJMEA@B;92410@I]lw¤¦¦«°¬«¬ª«¯²³°µ²°¤£ vn^PKMMKL_}t]Z^]ijw¤©©nE*.7:5QkvIQ||[183/+;tnIMV75V \Zp2546:7R>8C7,+%.&'*%)0(**ASMLCGM:.8HN[\y¢a=5Sti& $# &[|nkt¶ÎÆÍÏÍÍÉ1"''$+&DU8/59LVZefoqsv~x ¤ £¨¤±©ª§¬¨®°«ª¬¬¥§ ¥¦ {zx{|¦®¹ËÖÝÝÝÛе££¥ zwbPB70)(-776D95?KWX0%&$,,b¡¦}oL5)$/88951.'0Nh|¤¤£ ¡ ¡«¶¼ÁÂÃÆÁÃÿÀ¿ÁÂÂÀÁÁÄÄÈÇÊÊÎÌÍÐÑÑÐÒÏÏÏÎËÈÊÈÇÇËPPJGLNHRPQMJIGFCFD@GA:7103@J_ix¡££ª®²«®®¬°¸²±²°¨¨¢¢seYKJGOEQ\{`a]dt¤¢ wxeA',91@o| b`yyH>2<<-4Q{dDi[2:`u~`D{K33<6<I>3;>.,&&)'(%*0,1>Q[\PMUO2-HbWPc¤¨© uH3Cb~`&$$;unp~ ÆÇÊÌÍÎÌ¥?&###!!+AW<74<EP[delptv|y ¤¢ ¤ ¤ª¬¦£«¬¨¨«ª©ª§¥¥¦ |wx}{~¢»ÉÎ×ÚßÜÖ»¡¤«£ ~ywp`LB6)'*192>F:=ALVY-&)(/2^¢¬{uP. ,:742,-(@Wl £¢ ¢ ¥±¹¼ÀÁÄÃÄÂÁ¿ÀÀÁ¾ÀÀ¿ÃÅÉÉÉÍÌÎÎÏÐÓÑÒÒÏÎÏËÌÈÈËÊÊËSSLPMNNLOPOLMPLEA>E>:83/0,:MVex¤¨«¬¯¬¬¬¬«¬¯°²±¬§¥wcXNJIIHMVso\ex¤¤oq|X1*76=`~SRzyH<?8>917cp]NjALxydsrAnb8<C?=L53:<,(%'& !!,6DI`lfVTLI0-S_Kc«¶´¯O)4QfwX$&Yqooq ¨ÅÉÌËÌεF'!!#*%#)GV?:8<EUUiflpvw}} ¡¤¢¡¢ ª§ª¦£«¬¨ª«©§©¥¥¡¥¡}~{xz~{~¢«·ÀËÓÜãÝØÄ ¡~ug^JI4)5,3537K@DOGV^-(('(5U ©¢T)#(:912.'%<]r ¤ ª¶¼¾ÂÄÃÆÂÁÂÁ¿¿ÀÂÀÀÄÂÂÆÇËËÍÎÍÏÑÐÑÑÑÑÑÑÏÍÏÌÉÈÉËÉÌKKSNKNJPPUHRNJHBC?C>B<5763<FRex~ ¢¦¬ª¯°®ª«¯°²±±«§¢ seWPFLPIKVeol¡ vjppS63?Hl|}~]<cxSC<@C45B[ibHfT;NufuxFYy=<>29>83;70)"'*%%$)6,:Co{fVC;30NWf{¼··µ^)3=\ vF$#7p m~vu¾ÃÊÊÌÏÃd(!#%&!'.KUD5:DJQVhikpo{~}} ¡£¢¢¤«ª«ª¨§©¨ª¦¨¦ ¥¡ }~|xz{|{} ¨³¿ÅÓàãáÙÊ~zofZF:,(+-11-7C>DNCNX/)!"3I¦¦§T) *80(,,,2Iex §±¼¾ÂÂÄÅÂÀÂÁ¿ÀÂÁÂÁÂÁÄÄÇÉËÍÍÏÎÎÐÑÒÑÑÑÑÒÍÎÍÌÊËËÊÌÎOOOLLOKIIQIGJJGEGA=?;:82,.5@Ug}¡¢©©©ª²«¨°°¯²¬«¤ ~ubYRGEGJLL]lwnsn| ztW<:GOzwqiCNk[Qgd|A26Tk\KMyL:WuucvX[J88).:85790(%#))%(=H48>]roO>8:AFfv{xv´½¹¶h,&2LsM& !%Pyoyvx¥ÇÈÎÏÎÎ1%&%'!#)')I\H5<EIMZbflrtu}{~¡¡¡£ ¢£¢¥¨¥£¨©¨¤¥¨¢¦¦ {|}yxxz{|}¢®¹ÂÓàæãÜΨ¡ }vlgWD1((+,90,;CDAMHFZ4%$"#5H{¤§ §W+%-;+).0*0Qd¡ ®·ºÁÂÄÄÂÂÀÂÀÀÂÂÂÁÂÂÃÃÆÈÌÍÐÐÐÎÏÐÐÐÐÐÐÐÐÑÌÎËÍÎÌÊÌÐPPQNOQJIKLLJFGGCD?A>6761,)3AZey¡¤©®¬®¬°®«®®¯±±³®®©¥¢rfYPIKRIIQX]n uneikkr|tudG7C=nlqQAiaZJKaV5?H`b[QqhK:c nfly¡\D]I&-)*99A7;/-&),*%(08/D;@TkjO9;MqenuzgO½½¸y<#.=N5# /ksptv¿ÍËÎÌΣ8%$&)%&'"$%MfN:BGEKWaglqqy~z~¢ ¢¦¨¢¦¤¥¢ ¤¥¢¦ }||{y{y|} «´ÄÔàåâÛÒ¯¡ ~ytkcUC.,*0742.?A?=NDRT-'"&4Lq§§¦^+"$77,)4.59Xr£¡ ¨²¸ºÃÃÆÄÂÃÁÂÂÀÂÂÃÁÁÃÃÃÆÊÌÏÑÑÑÏÏÏÐÐÑÎÏÒÐÏÏÍÑÍÌÍÍÎÏQQVPWNKFOKEEKGLICCC5722/0/0<Shw}¥§¬ª¯¯ª²²¯°®±¯²±¯©¤~rhWPJKFFOMZ\hoqx~vwztpr}~eH454cvniOLcTWT^K39VYYXM] xdT=[yaYp{_:D{S!*(*.(209/+.(,#")6/5ZIFPX_S<JjporVAR£¡m5#%28/,""D{qvs¨ÐÏÐÌйI&#*&(,$$%"(S`T<AJKT]agjquwyw £§§¤£ ¡£~~|~|{yuv£±ÁÔßæãÝÑ»zvd^K9+(+-+444=I?>JILQ3'"!"1Ln§ª¥m,&#/0'*(.;<_q¡ ¦°·»¾ÃÅÄÃÄÀÃÀÀ¿ÂÃÂÁÂÄÇÅËÊÍÑÑÑÑÑÎÎÐÐÏÍÎÐÏÐÏÏÍÏÍÍÐÎÎOOPNTNMMLNFIJGKCDEA73443*+.DPgw¡¢£«©°°°¯±±°±±²¯®¯©¥¢~reVQIKPMPPSZ[]_dkv|{{XG48Hnhg]Iah^Xi^:8OlcSIFvT]_D^|\Opj:5vn%$&*0-.0:31+1.-*9223e^gLK[JG[z£punZB;=ZOBD.*$):2!#0!,(\uxxy¿ÌÎÊ¿Å/""'+)"(''(0VdZA7HESW\`fquww}£¢ ¥¤¤ ¤¤£¤¡ }|z{|{ }{}~yuz~ §±¸ÑàæåÞÒ¼}mdVF0'+)0-52BEBIEGHFK67#! 2F\¤¥ r57--.(&-,LDc| ¢¡ ¥«³»ÂÃÇÅÄÄÄÂÀ¿¿ÃÃÁÁÄÄÊËÍÎÑÐÑÒÒÑÐÍÍÏÐÍÏÎÏÏÏÐÏÏÐÌÎÎÍTTQQPJJMMJNHOINCB>?<9503.$1EWes~¡¤¨¨°©¯°±°¯®¯±²µ¯®ª£ vf^UMKIKSSU\\]gl|kku zuX?:>H_VSMWdl`_fB9Y`bUJ@Kz FFN>\qSFh£l?2b6$'///4++,51/930//*1SgH?EOGRc vacYC2DY_G;2*%1,7/!.OKmvr{~ÉÊÊ« £<("%'+'&,%%,Yj]=BGMRYXejmutv{~} ¢ ¢¥¥£¥¢|wry}~{|z|{~¢©±³ÎàæåßÓÁ~~ngQ5)')+/,3,-:CADRACEF.(#"/EY£D,)/+'#$/ENh¢ ¡¬µ¾ÁÆÅÄÄÃÃÂÿÀÄÃÂÂÄÇÈÊÌÎÑÑÒÑÑÑÐÏÎÌÎÌÎÍÏÐÏÎÏÏÏÐÏÐÐÎPPOOPMOSRMQPRJJM@>@873.5)'.>Nax ¤©ª°°¯°¯°´±²¶²´±«ª¤~vnZOHEIKMQX_aiuxkhmrz{|wg9:LVc\Z=Detse\@=Sh]MCC;do:/2AgtW=f¢rF5FS'(&1A.&/*I><0,%(#*,:b4.SOO`y¨wcQHBGosO:/(##0/+#(Qeg~ jnrr¹Éæ}4$##)%"*%)*\l\A8GHOV]ghlsuuy} ¢£¢¦¢¤¤£¡ |yurv| y{{¤¬³·ËÞææàÔÆ ~~yqsdJ1,,(.-57.0;DCOSBIB9.""$3;T © _75)'#(#-JYt¤£¡ ¨µ¿ÀÄÆÆÆÃÂÂÂÃÁÄÂÀÁÁÆÆËÌÌÏÑÒÐÐÐÐÏÏÍÌÊÌÎÏÏÍÎÐÏÐÎÍÐÐÐÐRRNLMNOOOMQIKNEIA:;6650+*$2<Tavz ¥¨ª°®±«°¯®¯¯±³´´°¬§¤ }vi\NIDBJSV[h~}zljmknstrmU6CGUVXV2GkxbL?X\OFD@?G~Y33=Nq~V;c M9< m+$'*2-+8LM@*'$$&796W87qrBP ©¢qhbgmh[C1%$$$2&""Lxxzzgellµ£ZE-#"+%+(("#.ZmZC@KNQS__jtqvv}}|} ¢¡¢¤£¡¡wrns||} ¬±»ÎÝæèßÔÃ}~vsk]=1,-'*291+/D?FIKFGG15"##/0G«](=*!"-++Qhw¡«¹ÁÁÅÈÆÅÄÃÃÂÃÃÁÂÅÅÅÆÈËÌÎÐÏÐÐÑÏÏÍÎÌËÍÎÐÏÌÑÍÎÐÓÏÏÏÎÐÐTTWQTQNPQKPLGGCCA;?;<9/0,'0=Naw~£¥§ª¬«±±°°°°°°´µ³¬ ~zk[PGGFLWaw}phhjllxtvreJENLI\b\=]s{yOEMZQBMH;9dzL/(6Xw_:TT18g?+/*05<JD<6++/!"%HN=YZl XFT^m¢_K=E3/('"%0,!"%Gvkmdv¢n7)%&##'.$/F%.Wq[NFCDNYWckvrwz{~| ¢}tkmt}}}·ºË×äèâÓÂ|}urgL1.))01-74/8CBHNLAMC56$#!1/>_3<7%""'/Xq~ ¢ ¦°¹ÁÁÅÈÄÅ¿ÃÃÃÁÁÄÇÈËËÍÏÐÐÏÐÏÏÍÎÍÌËÌÌÌÌÎÏÏÏÏÑÐÏÎÍÎÏVVUUQTPPPQPMKJG@A??965/.+'.@Pfy ¥§«¬¬®°°°°¯²³±³²²¬¨¤~zeXOKBJS_qijcknkkquwngOCJ=?\^HRxtnBP]]JARI/8x]M2&7Tnb>IU20PF+219HL64.+&79$ #58AOh¡i@5@PYgqe?3*/)'!'$&1' !*x©¡¦¤uw¡«½±e1$$$(&2'#'(%,]qcYCEJL\Zimotx{x} ¡¢¡~xhpv}|y|~¬³½ÈÔÞâÜÔ¿z|zr[?.$))&&0-308?<@JHIM;/9*""3)7v£ kA22#"'$.[u~¢ ¢ ¡¦³¼ÂÃÄÆÅÅÅÃÁÃÃÂÿÃÄÆÉÌÎÏÏÑÏÏÑÏÍÐÍÍÍËÎÏÌÎÑÏÐÐÏÎÏÐÏÏÍÎTTXVUOPOQIKMKIHKIG?A=;,1)(4DTiw~ ¤¦§°±¯°°¯¯±¯±´±³³³®©© tkZTMV`nte`iikhsvxusq]DOFH;[ZTnyuwULZOD=HCR0FQK.,2MtcH@f`25;f.2?JGD1/(-:I=#%))0:G@kRO<+)5<L^tnQ1.% "!%(&; ££¥¦¬¡©½ºª]A&! &5(/(*)(4[jgZGD=SX_iprtvv{¥¢ukrx} ~xwz~§³¼ÇÎÕÛÙÏ·~~~phO:-'*.,(522.8@ADE@JK>.5.%)804r¦¥~oP3+##&4T¡ ~¤¬¸¿ÂÆÆÄÂÄÃÄÁÄÀÂÃÂÆÇÉÉÌÏÍÐÏÎÎÐÏÏÐÍÍÌÌËÌËÏÏÏÏÑÏÏÏÑÐÐÍÏXXVSSMMWPJKQKHHADBB@?>-,++:MXiu¡§§«¬®«®¬®±¯±³µµ¯®°¢wqb[Ymyog_^bdeglquxzwjXEL=<B[``ogymVWOHD619L@diN?3-/9keJAR¡j9.>B1-9?7+0+2;PC* !(*6J78//,((*2?irpG-'$$'".* b¨ª¨¦¯©¬§±µµ¸½wO7)$&&',)11/&'2Xi[V>:GUZ`entsv}|} ¡tlt|}~wwvz ¬ºÄÊÎÔÒ˧~~xoYD1)**,))69325@=HR=FP=-20)&4(*g¥¤¨ xrP2.+%%%>]¡ ¡ª±ºÀÃÇÃÂÄÂÃÃÀÀÀ¿ÂÃÉÉËÍÊÍÎÎÍÏÏÑÎÎÎÎÍÏÍÍÌÍÏÏÏÑÒÐÏÒÑÐÐÐÎZZQOSMP\RMSRGHMIBDA<>?;1-,:KXe{¤ª¨¬¯¬¯®«¬®´¯²²°¬§£}nbei`gd\]Z]_^aedekox}v{dWSJ25J]cibhzkjXLAK/%3Ql ZS=B.*6a~mRIUvC75~¦_1).4,.0.3:_H% '++:LA?9+(%*3CKqbOG3))''&&,) !%®¥§§´´©°°´¹´¶´{L-)& """0-+&()%4`od\FMLU\]fmtoyz}|} } qlq wpu~~zzyy§±ÁÈÍÌͺ|yvhI1,*(,,--05236;:HG:=L=(06*#1*,W¢©©¡vV)$/"!)Be ¡ £µ¼¾ÂÆÆÅÄÂÂÀÂÀÃÃÅÅÉÉÌËËÍÎÍÌÍÎÏÎÍÍÏÐÏÏÍÏÐÑÎÏÐÓÑÏÎÏÏÎÎÍWW[PPOTLQONKMPNED?BB;98631;O\jw¡§¨¨©¬ª«®¬°°¯³³´²±ª¦£ymihZSKOPXR[Z__fbdimvu}\]PHB?MWe__nweRLD@"$8XnaQ=R5.3Wn^WVs µ\@7m£s8*21-3M<93\M' $'3,8?J=3+/3TsD(&$'+%+,*% 7¢´¬¯¿³³¸½¹³¯§¡[<5'%!""&)-//%')%.^nX[GPLV]bejwsyw}|z}~tx xV:89IYfrsw~y{y~°¼ÄÉÌ¿¥ ~~{r]:3(,&//--7;83>CAML7@N<0040$*(&X«§ {`1(3(,/Um¡ }¦®¶¾ÁÃÆÄÅÄÄÁÃÅÂÃÃÅÉÈÍÎÍÍÎÏÍËÏÍÍÍÎÍÏÑÏÎÏÏÑÑÒÐÑÐÒÑÎÑÏÐÏÍMMSPQNNSSIQHHMJFDBC;DA9:/5@Tbo}¤¦ªª«²¯®±°±°´³±±°«¥}qiaRDOLOTV^Z`bjihkkotrj]MNTK@UeYQfz}cVPO5&$6g¥]X;@^>+9Ryl]cXl¬©k4.Q~;).116HMB=O=%##(!!)/;OB05g°ª~4#%"&+*.,,&%"!X±³ºÄ´·½¼¾·®¢t0)*#!&&%%&,8.*.++-Wjb_KIQ`^`bkpquyxzz{ ¡wyeA212@MY`Zcquz~y{¨¹¿ÈÇ {vjK1+(.2.-(09654<CEPF6CQ=0232-,&(J¬ª¡y_6%/7':a{¢¡ ¦±»½¾ÆÄÅÆÄÄÂÄÂÃÄÆÆÉÍÌÌÏÎÎÍÍÌËÍÏÎÏÏÑÑÑÐÐÑÐÑÑÑÑÏÑÑÒÏÐÏÐÏSSROUNSGJQNTPTIGE@C@C>987=CWgu £¥¨«®¬¬¬¯¯¯°³²¶³©¨¦qeYJKINNW]][]aggjgpnqokO<RZR:\^UTmw\NL>' 1;}pR?3MoB-IGvn\cYs¯{A5I >$+7':CeY3G<.$##%!#'-0H_MBc±¤v=).**-+12+" "/¤¦ª±´Å·¾¿Á¾¼®e4#!((*%%&+*424/,''.ZmpiGOU\bdfintsy|y}} ¢ {uziWF;GQa]\WUY]rvv|~¡´¼Æ½ª¡¥¡|w`9-1/0,.+.-94/4;CFK@@IR932045*&$>{|}~`6#(@1Bdz ©¶¼¿ÂÇÆÄÆÄÅÄÃÅÆÄÆÉÊÍÍÍÎÍÏÏÎÌÎÎÏÐÑÐÏÒÒÑÑÐÑÑÒÑÓÑÓÓÒÏÐÎÎÍNNUJPIPMLQJOQNIJGAD>@GF=<@LYhx}¦¨¨®±°¯¯±¬°°²³¯°ª§|oaTLHDNSQTZ[b`cbgipmookTIb`N=]^^Tn~{fYNH+#'/ghA5<goF.NBmt]UZz}¬T0AP%%1$+CE@2G?G<&!#$#%$),FVOu{V7,.24485'& "#Q¢¢¯Â¹¾ÀÇƼ¢<#%#'()'''++/-.//)$)_kpfMNS_fcjlpoxuxzz}}~ |wz~xsle`fmxtoi`dWaqwx{ ¨¼¾°¬§¢ ~lT013+,/1+.,<307>GFS:6ET>1/-8<%$!;uª¬}^=*'7HJp¢¢¹½ÁÄÄÄÅÄÃÃÆÃÅÄÇÆËÍÎÐÎÎÏÎÐÍÏÍÏÑÐÓÑÏÒÓÔÒÒÒÑÒÑÑÓÒÑÏÏÍÏÍÔOOURQNNNNMPOMNJGAEKHEE?BBER[my¥¤©¨©®¯¯ª¬¬¯³°µ²²±°«¦¢{lYWNKMSUT`\ZaegfolonstmNJfdIA_\URNOmZHPHWqmA4HjnS20KtxddXyyv¥g=D _! ,##-217Xdv_11(*(# "(1YgT6,)4??83-$-.,;Fi¡±¶¾À¹®)%&'$*/+,4.,./2(1,10`nmdMNPcefluwquv}}x~ ¢{tx}|~}wongbmyxz~±»µ±«¦¢ sb@0/1178+(-*B23<9FHU<9CMF0-.7A()"2e¥«}kH0")NWt¡ £®·ÀÃÃÆÄÃÄÄÅÆÀÅÆÇÇÌÏÎÐÏÏÐÏÏÑÐÐÎÎÑÐÍÑÒÒÖÒÒÑÒÔÒÑÒÒÏÏÐÍÏÎÐNNWPOMNPOMOOKFFIJEDFHCDGBDS`o}¡¦¨©®«ª±²±±µ±³µ°§£yl]VKHFPTY\a`gaeiknoxyyqSW`UB=cZROBPbP;=1-'FvbUM;VacP=2=xnbRpus¨xFOp¥k"!'*2)/m{C0,(%!$ "+WzU2)& 2B31N=;USL^dpp{¨¤®_7'& #(.8<,1/+*+1&//*1ctshRJP^flhtoquw~{{|¡ ~{z~| ~wwvtpxv~¬¾¼³®¨¤vmZ403-0831+*0@75@9JMUB@IMC2+,78+%#-^¦¯z[S+&.Od{ ©±¸ÀÁÅÄÆÃÅÄÃÅÂÈÉÈÉÌÐÑÏÎÍÑÑÐÐÏÏÐÐÐÎÐÓÑÒÔÒÑÒÑÑÒÑÑÐÏÏÏÎÎÐÐNNQOJHRPNHJEJHLGDBABCJCMLKVfp} £¥¦¨«ª¨¬®®®°²¶¶´®©£zodWOIKPOT]V]bddhenz~rqeXbS:9>U]WV>NVE4+#+KqujND]HYWRJC5DuiKFe{qªYX{2!',76'0o§LP5$&#$2p|mM,/#"J[DMei^em`o~mmzzµ´·c1'##$&*;RKKFE,,--'3;4,Wqyh]SQ\aikpwvtv~~~{~ £}zz|twvz©´º¿»´¬¨¢ xi?/,/4.94,/3-=3;98N^NA9PRD2-,;1('$+O¦¯{eY;''Pp ª¶½ÀÂÅÃÄÄÃÅÄÆÄÇÉÉËÌÐÐÒÐÎÐÎÏÑÎÎÏÎÐÒÐÑÔÔÔÒÑÑÏÒÓÏÕÐÏÐÏÏÐÐÑOOTRTLRMQHKNONLGA@?FGKGJNRZfu £¤¥¨¨««©¦««¬¯¯¯·µµµ¯ª¦ {m^TLGGRSW[]^c]cekvzyuwgZQ.55>UaXVBLFB1%$7hziH?>\UUDOGX=>j|`XTcqc¡oc~ O# *=6*/rµwq/&Wy^F^O(#(Jb`diuosvajtklos»ÏÏ-)%,#)*2:CNZ451*'0#*+/5c}uccORYipqoquxxz}z } vy¶¾ÀÀ¾¼·²¨¦¡xvU6,/-+20*2-/1;37<<I\`H>JE@6--<-+.",I£±¢|bb7+(Sy £®¸¿ÂÄÄÅÃÃÂÄÅÄÅÊÊÌÌÍÏÑÐÐÎÎÎÐÐÐÎÎÐÐÐÑÐÓÑÓÔÒÑÒÑÑÏÐÏÌÐÏÌÐÑÓJJOORNSKKGTNTLJMEC@EHLLKSRYhz}¥¢£©ª¨ª«©©ª«±±°±´´°®©¥xp`ROLIMTVZ^[b``eiuwpsvlaD+)'2NaXZHM<<0%4\y_H20@Hc]CGQjCHnoaVVwjT §zb c1#$,>.*0i¥ª }79xa56UF03EZ]lmhw~¬rdufclr¢Ó×ÀR%&*'$&)-18=A4010/1'%)&.gvy^dKU[gjstsuvt{y}~}|¢ «¼ÅÇÃÀ½¹®ª¥£ ~xl>4/1//41+.,24>7:?;SXMOKSDG:61B*1+"%? «§xUc=/0W} }£®ºÀÂÅÄÂÅÇÄÆÅÅÇÊÌÌÌÏÐÑÑÍÎÏÎÐÑÍÍÏÐÐÑÐÓÑÑÐÒÒÑÑØÏÐÐÏÍÐÑÐÑÒÓQQQQNHHNIGMQOMKJCGFICGHMTU]lx ¥¢©©¦ª©ª¨¨®±°°²µ²²¬£xl^VSKHRRWW[[d^_ekotrr{tG)-$+PVQMEE=9-.Y c@9/2>GTV>=\yP[~sd]czzfJgey6)$&28,0W9)!#)Xb6(;;JSSdcbfnt¦¶´`dj^eu}ÀÔËw0)*).+/*223-FA446132)*-1dwyWfNW[`nmsszyy|}|~z~} ¡ ¦¤ÁÆÇÄÿµ´¬©¢vV1210.)0403*03<;><E_]EBERCA:5=M-.1))@wªªsWeF.=c ©´½ÁÁÆÃÀÀÆÃÄÅÇÊËÌÍÐÍÑÑÏÏÎÍÐÐÎÏÎÍÑÐÓÑÓÐÒÒÒÐÏÓÓÒÑÐÎÑÏÐÐÒÑÔLLMPKJIDUROQQPMIELHDDGJQV\bl{£§¥©¨¨¬®©¯¬¬¯±±²²°¯ª¦ yp^ZJKPLXWZcV_]ddegjqyZ*&(3M[W@BFA?,NoP3,+1=QMT@?PvVp}gikpzhTIUpY2.)4@.6Or{rgH7$(/CW>/5MJbkdprmow°±º[cp_jw}«ÏÔ¡:2.-48652:9>@>:839451/118`w^gQT\emmruxyyy{}|}{x} ¢ ¤²¶¥£°½ÈÅÂÿ¹´¤ tI62503*//+216+8A?8B]bD>P\M<70>L)/.&"6p¦¬mT`J:Jd ªµ»¿ÃÃÄÅÂÃÂÄÄÆÉËÍÍÏÐÒÏÐÏÐÐÏÍÎÍÎÑÏÐÐÒÑÒÓÒÑÑÑÒÒÑÐÏÒÒÒÒÒÒÒÔRRSVPPPSSPRTPNMIGFHCAAFMT^ck{¡£¤«¨¦©¨ª¬±°°²³²³µ°®¥ pbVNJOPRTW\Z\_bfigpx Q7*,0IWSG>OHJFxpXD85,.>GMML?R[\kqcgsl}nWBPkp qH.)/@46Kj{dI-;%/DG4#!+6W|~vpy ¯¾²eXojct¤ÂкK/.0004411-543A686622/,,04\ss_iUTdaiqpvw{}z|¡¤¥³º¿±¡¤±¼ÈÉÁ½·±¬¢ }x`;14451/1.*+-14BI;7?c^J;GYD9A6AB-6)("1h¡³oQ^T?\k £©³¼ÀÃÅÃÃÂÄÄÅÈÆÈÌÍÍÐÏÑÏÑÑÐÏÎÌÍÏÍÐÏÓÑÑÏÑÓÒÑÒÓÓÒÒÓÒÐÓÒÐÓÖÔÔRRNMKGFLQSSKNDHKEHB;>@FMWbcn{ ¢£¦§©ª«ª©¬®±°µ²µµ¶°®®¦ }lcUPJNLUW]b`baakhnvrV?15:Lc\MFSPan~\=<5255AJJVNEFM\gohZrn~viJJ k]YK>@?MLGljopD8C<IN:+*(18S ~ ª¬²¶½Q`cYbvÁËÃt85766A@>7738:4=?864,.2'-,2Zop]nVV`djptvx{x}z~ ¡¬ºÂÅ»¨¡§µ¼ËÇÁÂÀÀ¸²¨¢uB120453/615/344DH=5E_]IAFXE??9F?5<,(#/X ´|QY\Dgt ¡¶¾ÂÃÇÃÄÂÅÄÄÈÊÌËÏÒÏÏÒÏÏÏÍÐÍÎÍÎÏÎÏÑÑÐÏÑÑÑÑÑÓÒÒÑÒÔÑÐÓÕÓÑÒÔNNRMDGHOMINQKJIIFDC9<<EKWbgp}¥£§£§©¬«ª®¯®²²·µµ²¯ª£}kgRNLHHRYSY__abghspbV8,;9C^L:F[quaB;B.-103@@CH?DCS`]PEeqmwrLGsyV|~|fQ?HL]PFV[TfIJA9AF+# .4Iw¦«©¸µ¬\NiUQZi³ÇÅ~9'%,+*1288;9@>CBLABB<::/9::\rtgpb]ckkorx{} £±¿ÉÈÀ°¥¬²¾ÈÆÄÀÅÅÀ°¨ {\7/0102023///.49SG;5R`V@;FLH::>A73:,..0N ®Y\dMp{£ £°·¾ÃÃÄÃÂÂÅÆÈÉËÍÎÐÓÐÏÑÐÏÎÎÎÍÍÎÎÍÏÐÑÒÑÐÑÑÑÐÑÓÓÒÒÒÖÔÑÓÖÒÓÓÔLLLJEFHKJKGJNKKJEA?;==BISUes ¡££©¨¨ªª®¬¬«¬¯±³³³µ°¯©¨|maXNNMLRXWY\^b_ajrlfV@2;=LX@Bbu~rb479,-1/08KFBKLG<R_SHCWw\nsVQL [nzuUDCV`^W`b^^N>2.>B+%$4J{¦«¤ ¬§¯¼°S\jYZbeÃÇ7,1&,2(41.13.-171A=<;.2/,+(&JponffTallqqpvzyz}~}~y~ ©¶ÆÍÊÁ·©©³ÁÉÇÅÃÅÅ¿®§£~uB6.6213-,0+-0.28LD;8R[TH<IPD@9?D5/2''"0Cw¯£WWpWj}¡¦¯¸ÀÄÂÄÃÃÃÃÇÈÊËÎÐÏÏÑÐÐÏÎÏÏÐÍÍÍÏÎÏÑÔÑÐÏÑÑÑÒÑÓÓÒÓ×ÒÐÒÓÕÓÓÓÑFFLKJFIMJFFNMGJK?B>;<BHNQ\gt£¦¢©ª¬«ª¨¬¨«®±±³·³°¯ª¨ xq_WQIISPMTV]``\hsup|gQCQC9OSHa|YF?4DG01@201JK:YKBAKSFRC_|fh[WWGeo_zxa>?WipaVOKSJ+$$7G3(/@T¶ª¦¦®µ´À¼¬_XbZX_av Ȫ?($$)41-,,154028<=L@=C:32,00-KwinaiQ^aisrst}z|} ¤«¸ÊÎÍÇ»±«±ÄÌËÉÅƺ«¨¡ xg5.*2142-110+0-1?EC79XYUF<JPL6@BC4-+)$ ,=x©¥YPrgt¡ «µºÃÃÂÆÅÆÄÆÉÈÍËÎÑÏÒÒÒÐÏÐÎÎÏÏÏÏÎÎÏÑÓÐÏÎÏÒÒÓÑÔÕÔÒÐÐÒÓÓÓÔÓÔÔNNODFGMHFHGMNJIFCC=<9@EKY`fp¡¡§§§«¨«ª¨«¬¬²²¸¶µ²¬¥ylfZKFFJKS^W`]dgtsjwziN38A@RJXvg0.37FD25<257OE8KR?=IZNGK\`wlNEQPYixg:6Jt~lNG9?E%&=7DLXp¡©µ¸Å¾¼Tl_Z[Yp¿³[,'$+-24.0),23+-132KC960142('0Lt`jgoV^cjnpsxzww~~ | £¥ª¾ÎÑÎȼ²²ÅÎÎÉÆÁ÷±¥¡wG-011.712151-/4:@CF<>UOXH<@XH5GC;/3/"(#,;s¨¢~bJknu §³½ÀÃÃÄÄÃÅÇÈÌÌÐÑÐÐÐÏÐÑÍÎÍÎÏÏÏÑÐÏÎÑÑÐÏÎÐÑÒÒÓÔÓÔÏÓÒÓÓÒÔÒÒÔÕHHLKFHJLKFCIJJD?=AD>B@ELT[ds} ¢§¤¦¥«¬©ª©ª±¯¯´µ³´¶¯¬¨ zoc\HCMKMSVR\Z_irkp|x`>6DB8RTgy|M%++-[d5<E808IF5F_A=BNSBLWM|p7@K_fryyI2JbB<,/2<-('6F[Zgy~¦°Áþ[]m`Y]f|¬Àn/*$(+*+=@03011*.6>/ND><1-6/'&*Fleh\wX[ceopqrvy}{~ ¥¥°ÂÒÏÎÌÁµ¬°¿ÍÌÊž¹®©¡ }h7.../-.02/4--*06AHB9JPZQHB@PC9BE9511*,$/>p¢£}wfNo{w } ©¶½ÂÄÃÆÄÄÄÈÊËÐÏÑÔÓÏÐÐÐÑÎÎÐÑÑÐÐÐÏÐÒÑÎÐÎÒÏÑÒÕÓÓÔÓÒÑÑÔÐÒÔÓÓÔIIFIHIGCGGC@CDECB=F=CBGNOXbq}££¤¨«©«ª®¬¯®¬¯±³³´²°©¤¢yp_TOFHNMU_UWWfxtogwve;CC<E^nk{q=(035;^<RE=9>IB;7]SA>EMFHARyq;2LXto||e7jS/8,(,?K24DWfmejt~¢¦¯¸ÃÀ±e][VYZ_rÂ:*&*-84/6D82.353,4=8JA=B-.40,)*Acdg_{YQ^ivnmwwx}~¤«°ÄÔÓÎÍű§®·ÇÌÍÃÀ¿¼¯¥~N/.7-1.,8/-72/,3<EC87SR[KGCEP?6GC2A14','&Fn¡ªpfOv£«·¾ÄÄÆÄÂÄÆÉÌÍÍÍÒÒÒÐÏÎÐÏÏÐÏÐÑÑÑÏÎÏÑÑÍÐÎÏÐÒÓÖÖÔÕÓÓÒÐÓÒÒÑÓÔÕJJEJGGHK@JDFGHIEIAB>>HMPKU_px|£¥¦§©«¬ª¬¯°¯®³³±µ±¬¦£zo`VJHDPPRRR]]xqplk{v_4=B@Womp|~h6)0:;5<TTHCD@PA51T`KJ8IOD?PguT4ICQ{{{iumzU§:$1<(!+AY]ce`lagx¨¶ÁÆ»vWec[ZYpÁ>(,)$*7604877+2;02/A5DLMB67/.0+'Biad`zdJ\bimuuu||~z~ ¡§ª®ÄÏÑÍÌÀª±ºÉÎËÍÄ»½²¥p>4-.+2.0210.+5843>A>GKPQQMDKJ8/E96?23*+()?pthIt¢®·¿ÁÅÃÄÆÇÈÊÎÍÒÎÑÒÐÌÒÏÏÐÎÐÏÑÑÐÑÏÏÏÒÏÏÐÎÑÒÒÔÕÔÒÓÓÓÑÒÓÓÕÔÓÓÔMMJDFJ@HFDHFDCCEA<>>BCNNQS]pw}£¥¦©«©§ª«®®³°°±¶²³´«¥ {sbTHEENSWUY]nfgfnwX4<DSeh_mzxX:,7;42?YN>ELGFF=<AaLNFAKDBH^heC935Psukoz~}/!+@+ &Rtrki^`_o ¯¾ÆÀSb`WW]f »µ@))$(&-BR83929//859/:7CKQ?;8/-&+(>jffZqeS\bgjsov}|{}~ ¬±ÄÏËÑϾ±±¸ÉÓÓÐÌÉÀ¾´¤M5)-./.,:8321--2C7?<;CHPLNFBID99C9;:,0*'''7npuEq¢ £®¹¾ÃÆÄÅÄÇÊÌÍÎÒÑÑÑÐÐÏÐÐÐÏÏÑÑÓÑÏÑÎÎÐÑÐÐÑÕÒÓÔÖÔÓÕÔÔÒÒÓÓÓÔÔÔÔCCFADB?KBHGFCHEA=?A=GHDJN[^h|¢¥¨¨«¬¬¬°®°°°±¹¶³³±¯¦¦~mbSEEGMJSQXklkhfo|uV4LVZJFOxhbE-76<08FF?;EPF<DOMFUXLC:>DGFT_^c:.0>Ruwq|;')1Gh|~qmit§¦¨¸ÅÁ©VZrVXcfv§¾r*&($&(7MQA410/(+80724:GHHGA0.2&,(5eg_]o_LQ[agxptyyy} { ¤¥³¶ÀÊÍÕÑËÄÂÅÍÔÊÁÁÀ¿¿µ¨{=,)/+.4-9D424,.074=@FLJQLVCALLABB?G900,&'&/k{«u}Kt}£¯·¾ÄÄÅÆÈËËÏÎÑÑÑÑÐÒÐÏÏÏÐÏÒÑÒÑÏÒÏÎÏÍÐÐÐÒÔÔÔÔÔÔÔÕÔÕÓÓÔÓÔÖÔÓÔJJA<;??F?EAHEIJBCC@?EFCGOT\i{¤§§¨§®©¯®²±²³·¶´³®®¨£ }shQJGHJORU`~madgepwkT;JXD49T|hVD*7<54IQB9?>SE<@QaNJ\KNB;GIMSQUq^?-3;Xnz['%#2Vl££~¤··¶ÂÄ´iZlfZckx¾9(1+,&*@UcF7:34+,?/3+54BBSQH12),*(8`Zb^od\ZZdgwpqwy} ¡¢¡¥§©®³¹½¼ÊÔÐ˾º¯°®¸¶¶¦{X>/*0(,.56K41//2973>EEHKSOREAJLEKF;G>0-$$'&*^{®x~N} }§±º¾ÂÇÄÈÊËÌÌÐÐÑ×ÔÏÑÐÐÍÎÐÐÑÑÓÑÒÐÑÐÑÐÑÑÓÒÓÓÓ×ÓÕÕÔÔÓÓÕÏÓÖÓÔÓÕGGB<?A<@AFKKIBBA>B>@?DIFSV^hv ¨¨«®¬¯ª¯±°¶µ²µµ²°© |neSEGJFLNXto^`ddip{wkJ9GC5'4kxhX:27C2?MHB>9<\J?TQkgJ^]SRHKKRNHL\qT883K`wyswk3*+*(Cbx¢·½´®«¿È¿ÂÄ·wP^qW\lt¶´E-0.(&**B_kL2030'*:5765ADDVOM/*,.**;[jWWfgTN\^aorsyv}|} £¹À´©¥ ¤«¬}~ z>0.+0/+2569//01/826EF>HIUPZHBGXRCA;JE//$(&%)T§¡u}]} ¦°¸»ÃÆÆÈÊÊÍÍÑÒÓÓÓÐÒÐÐÐÐÐÓÑÑÐÐÓÑÒÐÏÐÓÓÑÑÓÑÕÙÖÕÕ×ÔÓÔÑÕÓÕÔÒÑÔFF=;;?><DE?FDKCCDB@BAFDMSU_j~¤¢£«©««ª¦°®²±´¶µ²³²®¨¢ {mdRKJJKOVg vb^_^eeqiPA=9((<rw}nF:9D3<>GC<87ME@?AbvVS`_UVMPPPF@HmtSA;:BUXWm^+'Ssbel¤°ÆÊŽ¿ÏʿƳW_m[R]rªÅu*((-%&**@_qR5+-3**;5586>>GHGD4.5,'+9TgOXib[HV_dlqsz}|{~ ¢~u{~Y012+3105:3612435:3>@JE;?TLZHDFQPCA;FH7-&&%%.B~£ swc~}¤®¾ÀÂÅÆÊÌÌÍÐÑÓÓÒÑÏÒÏÐÍÏÑÑÒÒÒÒÒÑÒÏÐÑÒÒÓÔÒÓÔÕÓÔÖÖÓÕÕÒÓÕÓÕÔÓÕFF=><;9CA=EB@FCDFC:9?AMOIRYn}¥¤¥¨©¬¬¬°¬°±´·¶¶²±¬©¡~yn`OPEEIP[vl_[\acitmE5/*(0Wl^j<01B8:?DC8937@FC@_`Sahg_VUXJPDB[wmK429J`[f}~U4*:pg]o£±ÅÊÏÎÌÒÈÄ»T\igZ[d|Ç/%&(&*-'7KbI,+,5,'48585DJQFHL7//-*,=`pOXd]THTX^jqps{{~ ~~ |qfhvx:0-3*.2+131/804618.9GKD>FUGXLIPZBA>7<H3-$&,,1@{£rof~~¨´¹ÁÄÅÈÍÍÎÎÑÒÓÓÒÒÒÐÐÏÐÑÏÓÑÏÐÒÒÓÑÐÑÓÔÕÓÕÔÓÖÕÕÕÔÕÕÔÕÓÕÕÖÓÔÔÕ??@<<6;??;>>DHBH@@:<;BHKOU[hz¢§¤§«©«¯®ª°±¯°²´µ·¶°³²ªª zn^TIGBPSlo[ZY^gjreC34.)2^S2jkM45H>AABC3;;499<Ab~uT[ldcaUPGIEBDWzmQ?<Mn`dsta||hZbuu¿¼ÉÓÏÊÑɽ¡X_jnYYdw½µB("& *,)-(/CTI.1,.0(55/<<F<M=HN<))+..0_wN[]bRGS\cfolsty}~~|siilwx}|}zz|xv|wryremqyztc\ahv[451/+/-096/0-60-8716QQ98BYAUCNQY=C44DEC.(",(+?p wkq{~ª±»ÁÅÇËÎÏÏÐÓÓÕÑÒÑÒÓÒÐÒÒÐÐÐÏÐÑÒÐÏÐÑÓÔÔÓÕÕÔÕÕÔÕ×ÕÕÕÕÓÒÖÓÔÖÖÕ5557=;7;<7=ABBDA=????FHKMT[hu ¢¦©®¬®¯¯°±¯³²³³²³´±´«¦£ynbN@DDVixeWW^]er`B5+-3H]5)CWIA=>9;AQOC96217?Ii}eadidjcPPPI@>H]{oWHbpXQ\wyaUWt¯«vv§¾½ÅÖÍÏÊÁ©eVjugZak°Æ|-)/0+-4/-&%=QN0&*12/.12<>D4GBJSF,+,*/2VzERWkNMJYaclowuxy {}| u^FGOYemorzy|}xywu{upsnqrokkjqoopt~|}rXMCW^ainidls|D-.1-+/.576-1/2-3:19>II3=GU=O?ISR@H439EC3.!'()7f l| ªµ¾¿ÇÊÌÎÎÑÑÔÔÓÓÒÔÑÐÒÐÓÒÒÑÏÎÏÐÔÏÒÑÑÓÓÔÔÓÔÔÔÕÔÖÕÖÕÕÓÖÓÓÓÕÕÙÕ9997:@<??;A@JAA@<<;;EGMKSY`k~¡¢©°°¯«²¯¯²³²±³´±²´®¬©¡zn`RHFHli[VVX_q¡|_E</9<bU7(6DC<;@C7HNR@>>12=6Mn{gnl\gif[LMN?>MXzxcy{O:Gas`J:_}sª·ÁºÅÐÑÑÀ´zM`olb]d¥Ê®<$'012292&$,6JN=0),5,*2.:9A1DBLOK,*''-6Tp>KXlWMESYfkpvvyx ~~~r\WTVMIHMU\ahhkkkjqosga_]_Z[TQX[\dgpvvx}ztc]ZT[bcntpps}a5*60-%1.5=3.531.6<6:FKN7HOS>LEQTRG@-/?UG<1$),+6bw ¤¡| ¤·¾ÃÆÊÍÌÐÒÒÓÓÔÓÔÓÑÐÒÐÐÐÐÏÏÏÏÒÑÑÐÒÓÔÔÓÓÔÓÒÓÒÕØ×ÕÕÔÔÕÕÖ×Õ×ÔÕ;;6=675A?BBFBD?>@@A@>KOOQabr|£¤¨«¯¯²²´±²³¶±´³µ´±¬¦ tn]VLCYl]PVT]g}wZ<54@YVD.$)1/6@NM4CLU16H8;95HuljfYgosfW^UC:@M]{ }IF>]LAA@So{zxwz®ÀÈÇÐÕÕÎÀ¤WWhrZbevÅ»`&&(0,021.,*.3>IG0'*+1,558:?7B?LRN/%&*(2Rm>QRcXKIQ^fkiwxyy{{}uldndbYZSRWTRV]Z]dblpjhgf`c`WYYa_fopswuu{tlonhdlt~x|w@-+-0-1.2472,**/4;22@KB=1;SW@PHOQO=:,+:XN@1'.1,5Y¢~¡¤z±·»ÄÈÊÍÐÒÓ×ÓÓÒÓÒÒÒÒÒÐÐÐÑÒÎÏÑÑÒÓÒÑÐÓÔÕÔÔÔÔÕÔÖÖ××ÚÖÕÔÖ×ÓÔÕÔÔ::76595<<:@?E>@@@<?A>GQPT[dq{£¤ª±¯®²²¶±²±²°³¶µ´´°¥wp_QLU|t^XQTZZt tX@.7QO<@/0(+9>LNY6DOH64X?<87Curo`dZ^hdfpjbXMQMXhzA76NF.9D[u¿ÔÙÙÔÓȹM]iVX_w¶Å2-1,,73.2+)*+09ID4-68-0558:@55>JPS9*+/(4UgBRSbYSMS]Yeiszy~~}}|~} y{x}|tnkb^_^a`jkhqqssnpqnlpjlklpmkpsz~}xxT4*.2,+-123;.+-+,/814GJA96=WMHP?JSRD;,27OP>2$&1*2Q|¡| ¤¸ÁÇÊÌÐÐÓÓÕÔÕÓÓÓÒÒÓÒÏÐÑÐÑÎÒÑÓÕÕÒÒÑÔÔÑÔÓÕÕÕÕÕÖÔ×ØÕÕÕÕÓÖÕÕÔÔ33:96>:;?==BEGB?A>@CAJYYWZfoz¥¥©«®¯¯¬³¯¯±¯³µ¶´·¶´ª©¡ xqYUZu qbVNSR\e{oT=/>T:8?82&+C<<9:;GXG47YU?=<=|ncddcc^Yhvmjc\U^m}wVJFBR8ISo|°ÚáàÕμl]j_UcuºÇ<,)0+20.40,2()15C><-+0*4=6:8<?8?BGP>++3/2Rp9QWVVIMN[`efpqvyx|yzyz~~ }~|stolnnruruz~||~~}{~u80-//4.207;4/./123<:9GH878D[HLILKSUI918>]a?/*,/+4Qy£y¢ {¦²¾ÁÇÎÎÐÒÓÓÓÒÓÓÑÑÑÔÒÐÏÒÔÓÑÐÒÒÓÒÔÒÒÒÔÓÓÔÕÔÕÕÕÕÖÖÖÖÕÕÔÓÕÔÓÖÔÔ666:78;;;@:;B>B><=9BDJ\[_Ujv|¡¡§©«¯³¯¯³®°²³°µ¶¶±µ²®©¢ti\d}{\QMOV[_rzz{g]E6IG;AE7*,:8/8;.5@VE8;Jf:92:¥lLOc_d]aXebkoia_eT\Slf<=cHfh{ÑãßÔÁ¥|Yio[_s¡Ç·U(*/1:3472/-,%*;9B;>.)013=9@8A@2;EJPB,,(,4MgBJQYVLOPVbbeqsuxx~{zz{|~~~ }|{xx{xz} ©¨´°³¶£}L2,*.2-01-8<-.1.2/3<=>N?3:9F`JEKRISUNE02;Ma=212.)0Mk£|£ {|¥±»ÄÈËÎÑÔÓÖÔÔÕÓÔÒÐÓÐÓÒÒÑÒÐÐÑÖÓÎÔÓÓÐÓÖÖÔÔÕÕÖÕÕÖÔÔÕÔÔÓÓÓÓÓÔÓÓ885<?:=4>9==@>?;=<;IIOWS_^gs§¥¦«±°±®°´±°³·¹µ¶¸µ±¬©¥vok¥ePMPQUWm{vvud]K?EB6KQ<.89-#4/.1@aM74FbB81?°oO9TUafifmbb_UXaV>;@iyT:d]zzu|²ÝÚ̬_]nfeo¯¶½}91-30796555-1''4B8<82+-03<@<@:B6:<FNE02117V^ACJSTPPSObcfptsvsx|~z{{{z ~||~}~|{vzz¤¨©²³·«±ÇÁÈÈÂÅ´¥ e;-.,2.4+63026/0.+-3=38B488<K[KCOGKXLAC;79Q_E4%(0.2Sj¦¡|}}¨³¿ÅËËÑØÓÒÔÔÖÔÓÒÒÒÒÓÒÒÓÓÓÒÒÒÓÒÔÓÕÖÕ×ÖÖØÕÕÖ×ÖÖÔÕÔÕÒÓÓÓÓÔÔÔÒÓ99;8?99<;?=<CG?F=:8ECNUR_^cmy ¡£¦«®¬±¯±±²³´´´¶¸·´³®¬¤~yx ¡_MLKTRV\p pqurbcTDE>>TdK<C3*'4,*/EcL<=:a]/5=´ hJ9;K_mnilk\QMUdV<;=RssTtpx{ {qy¥ØÓ¹l^jgnz»º¾A4,62-47480.,'*&.2:688*+,32A@26B<8;BI>1*-2:M]J>VTNSLHMX`akssvuqvvvywz{| }~~~|xwz~«¶¹¼±¾Á´¹ÊÆÅËÊIJ£xC.++),/152356,)**(739146.38@KfKCJNLSK8607EGZL4&)2+2Od¦ {¥¶¾ÈËÏÕÔÓÕÖÒÔÓÒÒÓÒÒÒÒÒÑÓÓÒÐÒÓÔÔÓÓÓÕÓ×ÔÔÕ×Õ×ÕÔÔÕÔÔÓÕÓÒÓÒÒÔÐÐ5587;78A9?@DD:A?A4;?IMST]\bpz¡ ¤®¯¯¯±´³¯°·±µµ¶´³³®¥¨ }{ dJIHLSSUcufgtkfd?@@2@p~A><.&&2)'3QgQ=8:^h4-F¶ mF<4IQ\llwul[U\^K=>7N_pcm|tw¬ÑÊm[jrj®¾¼ªV..796:753626'+1-/-6>0<6+,.26;5=B6?CDNH:..18GWD8VPSPCBHSW`gnpquot|vx|z|y~{~ |~~w~vxz~} ¦³´³£¦¯¹±º»µ¯[5,0/.*../6257/**),85<9>0436ENlM=NNORJ>95BL<ZU8,+../Nh£{z|«¶ÀÉÍÓÔÕÕÕÕÑÔÔÓÔÕÐÓÒÓÕÒÓÔÕÔÓÔÕÔÔÔÕÕ××××Ô×ÔÖÕÕÔÓÔÔÑÑÓÒÓÒÑÒÒÏ559:76;=;>9@:;>@@75=ETW[[bcmx~¢¨¨©¯°°¯³²«±µ¶²·´±®®©¦£¥|\KGGILMT[lkhhlbhUAJJ6OFC-''.3%*BfcEF;9Ql?.B±nO1,BQWYZlyyk]\bH<T:CZ``i wtÁѹiUlsr¢¦´¢p2/33+15513552/,0(/+3<6591,,/6<:9B???FLC?-)*8AQH5[QWR;ENWZeijpsvqwxvwwvy~v{y{~ ~|{zw|~~~¢¨£ §¤£ u<**0'/,/,/C2/4,,+*(1.;G<,,*69QpLBUQXUII@9C<JXY8/0-,3P`¨ y|¬¸ÄËÎÒÕ×ØÕÕÕÔÓÒÕÕÑÑÓÓÓÒÒÓÔÖÔÔÓÔÓÖÕÕØØÕÖÕÕÕÕÕÔÒÑÑÒÑÓÏÐÐÏÏÏÏÐ::864566;<:A?AB;:4<>ETTX[]`m|¤§¨®²®±µ´±±¶²³´µ¶²°¯©§«±¦}cIEACGLQUjlhnjaXDALV?fwP8')%-,(2Rhc8OF5AnP<Wª{}fB8<ZPRKEXvi[WRTNHPZRg¢ rw ¿ÎÎNdtw¬»p<+.371,/57<:531+,).)07075231.1:C979=?EEFD8-07<FK5TONN:KPR[c`joispxstuvv|w{zx|~~}| }{||zy }T.2+)(0*0/0:/.2*0.&/5-7K91.*;@RmN>QL]_F@<@H:A\U114/62R^¦¡}~y~¬¸ÄÍÏÕÓØ×ÖÖÖÕÓÓÔÒÒÓÒÕÖÓÖÓÕÖÕÕÖÕÔÔÔÕÖ×Ö×ÔÖÓÔÔÒÑÐÒÎÐÓÎÌÍÎÏÍÏÍ::824:3;994>;6?:766=FPQY^^`ix ©©«¯²´±²³·´¶´¶·¸²°®§§¬µ´yiRA>@EEPPZt¢oifjmmO8=@TF{bG=344/0)-Sj`:GcJ3i`?b¨ªp{W57KUZW@@W}rYjuS`Mgdckwn{°ÖÔ¾\_u~Ê»y64-51/.-15587<82.-,23595=674012:JD;9;>D@I;10.7ITX;NUTI9CHN[^chnkopvqsrvqyxx{~~|~ ~~z{zy~}~i=/)02/0---3=0/413//56+8D4...9CQmF=HGaUGD?DI=8T^:-1-63K`¤~z~ª¼ÈÎÓÕÖ××××ÕÕÖÔÕÓÓÓÐÒÓÖÖÔÕÖÖÕÕÕÖÖ×Ø×××ÖÔÓÒÑÒÑÐÑÏÎÍÏÎÌÍÌÍÍÍÎ<<72968;<;3;<;78:67@CNUYXZZhr¢¢¥§©«¯¯³´±³²²µ´¶³µ¶³¦¥ £p_PBADGLOYn lfcfptcF3787PY6,+07+0+8XnS2BjX9a]C}´toir>;OQ]eA3J`jxNtk}tn`¤ rl²ÍÌ]n~ ©°Ö±Q5:6::8:5;97@9969.2-287532-774441:D787BHGM;2.4:IRVAUWOC;DFHNZ`inioqnprrsswuwx{z~ }z~x{~~~}{b=+2/000+-/:?.1.33-.>2.:E717-9EUfB>JEaSJOEE@;8_^2-9../Fk¥¡ {y{ «¿ÉÐÕ×ØØ××ÖÕÔÕÓÔÔÑÓÔÒÖÖ×ØÖÖÖÖÖÖ×ÖÖØ×Ø×ÖÔÒÑÒÒÐÏÏÍÍÍÍÌËËËÍËÎÍ44.13:8777;9<896798AJSQX_j\es¡¥¨¨°±´²³±³³¶µ³·¹µµ®¨©zh]JFJELMPbhadlttgJ7A21c]2'$.52+:DgoI/9Y[KW\H²mlVXJN_msN=:ST}vxT }{Qn¬¤qm¯¾Åf¡¬¬Ì»g402:7-55414=557@49.45:534014745775AD>9GF@F<55.5AQV>DVDL=?AMOQ\efjinllnssvt{xy|{z {|~|zy~~~}~cN2'+/1-5203=:356?5/5;409A87./:FVeD;MHbXENCF=:<[b9+7852Bq¥¡ ~z}}¯ÀÈÎÒ×Ø××ØÕÕÖÕÔ×ÔÔÓÕÕÕÒ×××××ÖÖ×ØÕÖ×ÖÖÕÓÑÏÏÏÎÎÌÌÎÌËÌÌÌËÎËÍÌÍ004/33727695:696756:ERX[Z[Yfq ¢¨°³±´³²µ´µ²²³·µ²®¬¦£~skXLKBDIKQp obgeq}pXH051>oQ-+446.,0RniF-8;ZPXWR³rhCqy[Zfy{]E?>:X na}fa{²¬}tq¨ÄȨ±ÑÇY>7598966627<>>77L:644695:930<=?<==7@BA6?EKKJ?=41@DV@@YOPF=FQNNXacgehhinsoxp{zu|y}} {~{zwvx{|}}{]KN4&'2.,*1/-:2'-8@0.;726?9;21,<KV\G@OF^W<OQ<<8>Vi@/4,3+:e¦£ £ {zs|¡±ÂÇÐÖØØÚÚØ×ÖÖÓÓÕÔÕÕÓÖÓÕÖØ×ÚØÙØÖ×ÖÔÕÓÔÒÓÏÏÍÎÌÎÍÍËÎÊÌÎÌÏÊÍÍÎÎAA33-03167??8:<4584@HR__WSUhq}¡£¨«±±³µ³±±´³²¶³·´³±¬ª xk[RFDCAG[necdfsyfJ<5;6Kw¡K&%13.#"8_o]D750TSXTU©¶ b9Ynlq{wdEKAB7b wkp fK nuw®ÌÊ ÂÈ×°e>975786:358;7<<C;>72-7;?7745/5>=>D76?GD;7=FCC::25;COE:YURC7GIJHTWbfllijhlpspwuuuwyz~ ztuwsuwyvw}|xwu{rzo:UB6-),.+'(+04.*1997;:22579:1/0?Q`YFIU@\T?RF?68EP_>00//5=i¦yvu}²ÄËÑØØÚØÛØÖÖÖÕÔÕÔÕÕÕÖÖÖ×ÚÙÚØ×Ù××ÓÓÓÔÑÐÏÎÏÍÎÍÍÍÍÎÍÌÍÏÎÎÎÐÐÏÐ9933456203<485:2<77?OX]]XWVbq| ª¯±µµ²´´²²°µµµ³´®¨¦wlWSCAAFKa§i^`jhonX?12=8KrG+&233*%=g[E81-)6O_Xt·¸W8Kk}bo{fC>DK2D`}_Xys5xix{¶ÒÁ§³©ÜÂv:4247//359;8642748/+..(35;0040,8=<<C;78BC;D>?D75058>RM9LRJ=:@AGGTSYdfmlhffnmnpxuvzvz{ ~~}}uutuswwotstww| |E6Y=),1-(&+.110,07<6:E8.581349.,=Xm[DFSEc^GOD@@C=UX?06454;fª¢ }zztx °ÃÈÒØÛÛÚÙØ××ÕÕÕÔÖÕÓÕ×××ØÙÙÚÙÙÙÕØÕÓÒÔÒÐÌÍÌÍÍÎÍÌÏÍÐÐÐÐÐÏÐÒÒÏÒ22012859078.33//358EQZ`]ZUXao|¡©ª®³²³²°³±´··´·¹±¯« vnZPC?>EKe¤}e[dmnkfE2*5>=XquA/./5/.'Hd^@;72)-?Pa»®gC=ZttwoGLLT8Ly zk`uf:n{Vzu{£ÃÏ®³ËÈ=0/.112,0500536:<7A:8,*)2973673F5:7:DJ72D<;>8A?83535?LI=IYR@9;GKNPQU]biihiinjjjtvwvv~{~ ~yxuvzu}}~~a19V;++--3(/.,.714843LC74?7386A).:Jt[>HMC^fKHGB=@?N[C.=H77<e¥¯¡¤ }{vou°ÆÊÔÙÛÛÛÚÙÖÕÖÖÙ××Õ×ÖÔÖÖÙØÙÚÙØÖÖÕÓÑÒÓÑÏÍÍÎÏÎÐÏÑÑÑÐÑÐÐÏÒÔÑÓÑÒ6632158:5.3541//146KW`_a\]]cr|¦¬¯´°²´³±¶³´²º¶´²«£¡ynZTE@AJM`¡sa_cirhW>8538B[|[E.,0),&4OcY@B>33+0=d»}{\9W}rpUZX]Tkpw~ebXNm |Rfmu¥ÊѶÎÇC4,3519<;835/779886>80+2,687/)206027:8<6496;=69@=6:/56DD7COUBA3HEOSNU[Z[`ecfogliqrsuzx~} A.<W60/+0+,/,23?9:819NA:2:4748@+09Nt_JOPFc]K@K8=HANbF5@/442aªª££ }~zvuy²ÃÍÕØÚÛÙÙÙØÕÖÔ×ÕÖÕÖÖÖØ××ØØØ×××ÔÕÑÐÑÑÐÏÏÏÏÑÐÒÑÑÑÔÒÒÐÒÐÓÒÔÔÒÕ--/1265342543112.1=Unccea_dlsz¡ª©±®°²²°±²±´¶³µµ°®ª¨ |m`JC@AEO`¡v`_`i^OJBJ643GXz}B8451,$'0OXM84C=9+%5l¢½| }T<e}xuaahq{ufUbx}wjTJUwkgjnÊÎ¥§¶»Ø¡R56383455516525:=9:;A=642568<849=4737<@?=<:>@B:>CEB;165BB6AOSG>7>GUVNX[]Yceiglnloqryw{|} ]-/?P6-0-++,3/+.>81:45@E64511+1;)-6Iq[EMKF]`JCH==>9M_Q/2/521\©¦£¥}|{ux°ÂÎÕ×ÚÛÜÚÚÛ×ÖÖØ×Õ×ØÚÖÖÕ×ØÙ×Ö×ÕÕÓÓÐÐÓÏÐÒÐÑÒÐÑÏÑÒÑÓÒÔÓÓÓÔÓÓÓÔ>>3/652514205403.5@Tfbibi_gmv}££«®±²¯´²²²±²³µ·µ²°¬§¤~oZVG=C@Jb yeWacWXUMI:;CDJrf6;252+#*7Q`S74CE6/1A~¢¹wrLH zkiav\PTQ~urG7<p pixzÉØÃĻջ{722/4005,.2-2.08:841;;40+01<;433614824:9599939;:@=?=,/1=@<9LDG977=HIESSYW[Zfeefioqosxx{~| z?(-MD0>1**+'13-4:43=678=71488037,+:Os^GSPJ^YHHGBBBDNWO42396.Y ¢©¢ ~|xzsuµÆÍÙÙÚÛÜÚÚÚÙÕÕÖ×ÕÙÙÙ×ÖÖØØÙÕÒÔÔÒÑÐÒÒÐÏÑÒÓÓÔÓÒÐÓÔÑÒÒÓÒÓÔÓÔÑÓÑ5542/271/1300110+3GWdilheahnr¡£¬®±³®´®²±²¶±´´««¦£¢yn^OG@JDKZxm\daY`YJB;GPJMdW-77--.'*5VbJ47AI59CBi¼^vuRk¡gmf~lBGWV|uzA78^ }fr|ÖÜͶÖÂ~P8,))-.4:70150,.0>95/;912&23B3//327212048:<>9<7<;B;?8/,65>?9CBK>:4;DJGFNTZ\Xajgglmqotsw}{y¡¡¦¡¢X1,3TD42"(++04./3661C979>@2257+4=+1;RtaELCB_XTLMBFFBPUM940;8(R£¬§¢¡¡|~|svv¸ÄÎÔ×ÛÛÚÛÚÙØØØ×ØÕ×Ù×ÖÖÖÕÖÚÔÔÔÓÔÑÒÑÑÑÒÔÖÔÓÔÔÔÓÒÓÓÒÒÒÒÓÒÒÓÑÑÑ4407371201//.)-/27NZfigiedgj|}¢¦¬°¬±²°±°²²²±³¸³²®©¥ ~q`UJ>BHFVpriqbZ_VGADWZNDdC5?:..)))>ZZL/1>F=8,3N³z]avjZ¢{motsqZHMcZ]pvVPHjqIvuÂÚàÈËÐI862.1/5446-2002657>::@89-&.0892/68;2-0733=>;;6;>:D?@:,-27<?7=<M>:59GFD<LU[WY^dhhgjmnnps{}~|| ¤¥¥©ª§¤ ;,+3ND/-.+1,.3215216L68:?A11?8*36*2;Xw`DLPHbQMKNIGKTSOFA01@<.Q¢©£¥¢ ~|zztwt¢¸ÈÐÕØÛÛÛÛÞÚÙ×ØÖÖ×ÙØÖÖÕÕÓÔÔÕÚÓÔÓÔÔÒÔÔÔÔÖÔÔÕÔÑÓÑÕÓÑÒÑÐÐÑÐÏÏÐÏ112.-4375031/0325@P_fffcgchky£§¯°²±°®±³³±µ³¯¬¥§¢yndYNHFCMTfxymioZMNFBJ^jXO^>564*)&)*@X\G+.2D>823G¥lmuctfxx\ujpyif_NOXTVaz`ccti3gbv¥ÏÚÏÑ¡R513.13555;==260,549;;9=61.*03?82567=4031.-2;;864@9?H:64002;?=<;JH832CCG<DERVS^dbciimlqopx{}¡¥¥§«ªª¡¡¡ e+'(3G74,,.--1/--2<7=C4AH;90282/.6./@ayaFIPIfLJKJDDMDWVBG84;?2K ±¤¦¦£ }xuyvr£¸ÈÏ×ÛÝÛÛÚÚÚÚÖÖÖÕ×ÕÖÖÖÓÓÓÓÔÔÓÓÔÓ×ÒÓÔÔÔÖÔÖÔÔÓÑÒÒÏÑÑÑÐÐÏÎÏÍÍÑÐ0004,0.1314445314CRaefhggagny¨ª¬°°²´±°°®²²µ³´¯©¤¡zkaXLE@CKP]oxrhgiVFANDNdaYXc><4--*(,-EcaF3)0=@>77A§hdhVrxqqai upylce[WPILV~sp g<U}cc|§ÅÏ H73924.334667:2564:07?67A945)067>/61698/,.0.17=99588DC;71107:BB;;AF623=INC=<AJQWYZ^bfkjjrrvzz~ ©¤¥¦ª¬¬®«®¢¢¢C%&-7I5.+1+/321/66::G=;@K4243?071651?asaIOPMiNUNHDFPLYM>K:;:7-I©¯¤ ¥¢¡ ~{yvpv§¾ÇÒØÛÛÚ×ÙÚÛØØÖÕÔÕÕÕÕÓÔÒÔÕÔÕÖÔÔÔÔÓÖÔÔÕÕÔÖÓÒÓÑÎÏÏÐÐÎÏÐÍÐÏÏÌÎÍ--112.-5:38/13306<NZfdhfd^erz ¦¬¯±¯±®¯³²±±³³µ´¨§¦yp^ULB>GMT]hnlecldHIOEX]__`V;5>4.)'(/Id[A++.4<AA=Aª`_dTfozypjo~my~njm^NJMR~ph~f5P~gm{ºÇz442=40334942-23.6-*7<B75B60/*17<?.0308>0,,211087987::E<7301/9=?6A9E720:GOE937BFOYY\^begjllss|¥¨§ª©ª§¬©¥ ¤¤¨£q.&*)>M4-)0)-4,/1<7;@;<>=;10;AG>.-33/E\qeEPRNiTYM@EDLK[M3MB?7<.R§¬¡£¤£¢~yzwqzªÀÎÓØÚÛÛÚÜÛÚÙÖ×ÖÙÓÔÔÕÔÓÒÓÕÕÕÖØÕÕÖÕÕÔÔÔÕÓÒÒÓÒÐÒÑÎÑÏÍÐÐÏÎÎÒÌËÌ--.2.1035/0001:46AP[gmkji`gqx ¡£©®²¯¯®®±°±±±¯´²³®§£¢wjaULBCLNVYank[cl^JEGKMHL[_V@4A:12'#-Bd[E20647?GJOx¡[gnZL]hr|nxyw~vpk\LJMv~ae l.Dn^s »Ã[/.?C1.+,.1/05405.1/5HH@476,++/69;4-150;22-33231:972946;@85815?=8<<<;75BGNL:438>FUKRUabb^hmmptv{ ¤£¡ ¡§ª®±ª¨¡¨©°¥§¥££¢`31,-LP11)0..14+4=5=E925AA./8FD'1-/98J_xiFNOJlQWI@GCLLSE1PO?343M¡¬ ¡¥ ¡ }xstz²ÄÏÖÚÞÞÜÚÜÛØ×ÖÖÔÔÔÔÒÓÓÓÒÔÕÕ×ÖØ××ÕÖÕÓÓÔÓÔÏÐÐÐÒÒÐÐÏÎÏÐÐÍÐÎÏÌÍÌ00//,.,102-/5.1.3AVZeqljheaju §¥©°¯®±¯²°®¶¯³´µ³¬ª¨yn]PIB@ETTZgtj_ioU77DR>7J`r]8.A755&&.@dT@-'0:7?LPOnWmnG6ACF]{{n |xwukVHRu¢c`¡m.;`[}|ľU26[A1,254855:1.88077`A>;;7/(%178=32/03?531.05302;5;?7<;A33;42C=:6CA@7.7FOL@5.47:DEMVZa^_dgkpru}~|¡¤¨¦§¤£¤¢¢¥¦©§£¦¡¢ªª¥¨¦£¦@(++2RD-0/1:640-5:4<G9::A7*16V=+4/5;7K]ykF[LLnNUJBMIEJOB5NX=/11F¦°¤ ¡¡|xst~¶ÅÎÔÚÛàÝØÜÚØÖÔÓÒÔÒÔÓÖÓÔÓÖ×ÖØÕÖØÖÖÕÔÓÑÓÑÐÒÏÐÏÏÏÎÏÏÏÏÎÎÍÏÎÎÌÍÊ//23.57/3..2200/4KYY\dhfeadkz£¦«°±³°±²°±²±°¯°±³«¨¤¢|q\TJ@@IOPZdje\\iI88QI90Dm~P4/7:<<,2)=cWC2,;B44DTWySifA/8;<CTw r|yvh]Oj¥nhwSELPkQ¥§D9P\83060676564215/-<?@::984.+39:B0.).28=5-/.-4000588<26:84879;88:;?@A19EGOG92-14:DILPX\[d_kmtw||}}~ ¢ª§ª©¨¥¤¢¦©©©¨¤¥¦«¬¨¬¬ª¤l7&'/3O?.-,3034002959?A>=@4-05K7/9.067Mb}kONKJqJVO@QONMSA3IY>17,>©§¡£¢ ~~{tsu¸ÊÐ×ÛÝÞÜÚÜÙØÕÒÕÓÔÔÓÔÓÕÖÕÖ×Õ×Ö×Ö×ÕÔÔÒÔÐÒÎÏÍÍÍÍÎÎÍÏÎÌÏÏÌÍÍÍÉÇÈ//.-1923-.-.,35,6DUUW\`__`foz}£ª©¯³²°°°¯¬°°°³µ´±²«§£ p_TIGEHQTZac`eVKI<<FE4/HxQ/3?=>5-03@ZUD,36?7-;Q[VbeF92873JUl jpxidd}w|n^MHy]BVQ:@kF233853A:3201767/9A=<=:=,.,18>:0385.2>73.2.6245;:4C;7787896;;;6:C@B65<MJLA15.-/27BIQXWX[]hovuw{~ ¡§«®§§«¦¦¨ª¦§§¦¥¥¨¯³°©£Y3)-+7K73429463206>38?>I842*15?8+02576D[ziROSMsMMMARXIRVF/JW<8@*A¬±ª¢£¤ {{uvsºÉÒÙÛÝÞÝÛÚ×ØÔÔÔÒÒÒÓÓÓÔÕÕÕ×××ÖÖ×ØÕÓÓÒÑÐÏÎËÎÑÏÍÍËÌËÎËÌÊÊËÉÇþ00.256960*+.2917AAQQY]`_`bcoy¤¨ª¬±¯¯®®±µ°¯³´³³¬¨¡£xq\OEAAHNQYjctvX6876;981NsW2/;0>8110<NNC/-1A3+=N`eoxP0/B?6@RTmtvoluolwZYqfLhsK79:KH<453155B;41-61644;C@@B?4.0.46I=-224719;2,..00.2;96:<41884959H;36D@D93;JBK=3.,0-08?AKKTRZaejtrx|y}«©§¥¦§§¦®¦¤¨¦¤©¨°¨³¨ xT/-)5AA5386:863955668B7P642/1:9;+14-;9KfthCRTOoJSRDTRLJND3WXF:E,G¯±¦¨ }zyrt|£»ËÔÙßÝáÞÚÙØÖÓÑÔÐÓÕÒÔÖ×ÔÕÖ××ØÖÕÖÖÔÒÐÐÓÑÎÍÍÎÎÍÌÌÊÌËÊËËÊÇÆ¿½½µ11,,/7522402..-1?:JNR_]acdfq{¢©«¬®³®°±±±²°²²²¶²¯©¦¡{k\OLDDFLQY`eyk95659;6,4NndA*5:AD:1-9UGB3*1>..)<ft{X629F??Z][kl~yrlprviMnkWszQ77CH8549/,68:9;53/30/45@;<@@/1*.:8H=523451BB89/-21./409;><0:C433;?;85@F<905JCHEB/11-+55=>EQSUW]kmqxzz{|~§¥¤¡¥¨¦¨¬¬ªª¥¦¨«©«ª©¥pR,%+2E@15629;:654689:;BL84217817249.;?MhuhGJPMoDMFAQWOFMK7FXG4<,E®£¢§||wtux¥ÀÍÓÙàÞÞàÚÙ×ÖÔÓÒÒÕÓÔÔÕÕÖ×Ø×ØÙÖÕÕÔÕÑÐÏÐÎÌÎÍÏÏÊÌÊÉÇÇÅÅÃÀ½º´³¨33-/6455201/11.,26CLUZa`chrv£§ª®®¯¯®®°°±²²²³³²«¨ {nZOG<@BMNX]rxO;21483<-1Z}^dI039<GB11DRAE2&07/,!<]z j916FGA^kWpmjpxrjrzs}\TWL_kZA<F<5?85320/45220,00.8;A:@C<5/-,44G@0-237-3;9/,128-.317?=827;93307=D<<F>948@LEPK;30-*))07?@FQO[cjouquvtv}~} ¤¤©¦©¬¬±¨«¨¥¥¨¨¦¦¡¤nR-(+/?9338<=7:7965:78=@RA1.884089050<HOhtePNQNjIPJJLYNNXI3KZD46-B«¬ £¤~}}vuu{®ÂÍÕØÝÞÝÞÚÙ×ÕÓÒÑÒÕÓÔÕÓÖÖÖÖØØÖÔÕÔÕÑÐÑÐÎÎÎÎÎÐÊÌËÊÈÄ¿¾¸¶¨qa4432/11.,,,--67042<KQW]dcdmy¤©ª«¯¯®¬¬²°¯±¶³´³²¯¦£ylZQ@;<ECDUi}`D<40-21C88giR^B02>=EI:1JHBC2//84.)(KxtM9.NSKQf\azYc|x{or ¥QBGV\T]O?564<35068;7967123;8>DCFM@23,*-7E>//24:55393/0/7330.27<;68<=C:49<=<<E982<IRFLM?>8454./3=7?NPWYbdfckpry|~|¥§¦¨¤¨«¥¡¤£¥§¥}nX-,04B9549;<6:9<889:16FN<859A0/2:9975EUdqgPXWLfISKNO[RUWN?O`I<8.F°« }yxuv{²ÆÐÔÚÝÜÞÝÚÙ×ÕÒÒÒÓÖÕÖÔÕÓÕÕÖ××ÖÔÖÔÓÒÑÑÎÍÏÎÎÍÍÌËÊÇÿ¶³¯¦scR=;80.-,--./.-&,+05579CKY_`fhot£¨§°®¬ª°¯±¯²µ³³°²¬¤¦{lYND?C@DLc|rSA898,-5CIHhRBWF509B:@C@GCFB3*)852'-?¢w~[=8D]NJRW\xm]n\l zyryµ¢]FMknkyZ93307023262162863989=BCHQA78018:I?7/35>3:9<;3352787525:;;><BA89589=:?9983<JFGGK633//3/,46>?NIIL\V]X[`kpvpt{vs ¨¤¨¦§ª¨£¡ £¡|jU/,*4@;=@:6<=59<59@;6@TI9:4;H37<35-1<>TbogJXURbNZLJQaQVTJ?S\G?;1P¬ª~}zwst¸ÅÏ×ÚÝÞÛÛÙØØÕÔÔÒÕÕÕÕÓÒÔÖÓÖÖÖÖÓÓÓÓÑÎÐÎÏÎÍÎËÊÇÆÄ¿º´§¡s`LB9310--,6//12630,*+47119=LU_acikpz¥¦ª¬¯®®«°²¯°±°³°¨¥xiZQD67AIevbWFXe2-++CP`lL=LN>29AF;>AU>9E2)+86;$!0y¤xW@8@QMGEAVkyhq[]e rp{z£¥vszwqoB220.026<445338116788EBNN8/11.3?K>482631:48940337/*/2,8368=:;866=?A:D?9499ASJHIF==5<-4+48:=:AEFGEDAFMTZ^^fpsxqy{y ¢¦¦¤¤§¢vaA+,./9926896373;8871:6K@4347:46/385@=@UarfOWULbM[JNU`R\ZI8M\H<<.W°¬~{uvuw¥»ÉÑÖÙÞÝÞÚ×ÙÖÕÒÓÔÓÕÓÕÕÖÔÕÔÕÔÕÓÓÔÐÐÐÐÎÎÎÎËÈÅÃÁ½¹³©£kVA3310.++)),)04.1-.++,(*3,34<EW`c_c^kt¢£¦©¬°¬««¬¬²²±³³±´±¬§¥£xk]I965Ga__Ys12*/9L_^K=AGA<=@>79KB<894),6-8,.-~¥`I@@ZXMDAP\zsx}eU[xvSn{ e?.)+)+,//142994335BDJFNQ3+'*(5?S;3..//16:<70...51++0466488>=;>9@HEABBA4<>>MIGNMG==:>D<9@@=8B9:><CJJQO[Y`^cfjzzvy £¢£¢¥ oYG33-71.57<447;;;:;;69;QD579994:6-2;;BDT`roR]^OaQTFRO[O]_JBJVN>=1Y°¯¥}xwx} {xwqu|¯ÀËÓ×ÜÝÝÛÚØ×ÖÕÑÓÕÕÖÑÔÓÓÓÓÓÔÔÐÒÑÑÏÏÑÏÏÌËÈÅÁ¾»µ±¦fJ:4,+++..++//0,--10,/*-/*5*)2?@BT^__\Zdtz¥¬¬«®¬¬¬¯°°±¶´±®¦¢peYC9AJl®È^es w0-*)1FQUG<:<B:<938FI<-.?6+.2.3)$)c}YOQb`QA8A]tqlQNep[l¥ ««L56./.016805992743BIJEPN91*(*.?X<130<3107:96-2444/53/53178<?CA9BG=G?D@95<5JJEQYJBF:<<8>?A:@@EDHNR^\Z``bg]fmrxytw ¢¦¡¡¡i\@9348556;787592?75::68M>37:7.-44./8A?>S\qmQTWTbSXMVJYPX^GAEKRCM4U²°£|qpwxyz} yz{wusvy³ÃÍÒÖÜÝÜÚ×ÕÕÓÔÓÒÔÔÕÒÓÓÓÓÓÔÑÒÓÓÑÒÏÐÏËÉÉÇž¸±¨ s_K<4+)$'))***-00-,/>300),,1()'*.1?FLXc`X[dl{£¦¬°°®«¯®¯²²µ²© zraTE=Lv»Ô¡[f[¦f2'+./?SNZA45<I??9@GH03164*/5*4+.5\zdao_LC9;_hsQ>Wlqilp£yz ¦pG<574634352332166CRTDTR713,--?L<21.74..3:76,1/185+.4492:<>=>>989>;;@A5.66<GCNXXJA@B>FIW^`\`fdbkmnrsyuxyuwxyyz} ¢¥©¨¦¤¢££ §¤ ~k`A2/0639;8B8?C3:7A;8-7;PJ9::;04>82-6D7AO^sgMW^Z`VUHTOQRYWK;LIS=G5Y³°{q~rnspqt} }{vsut µÆÏÓÙÝÛÚÚØÔÔÓÒÒÓÔÑÔÒÒÔÑÒÐÑÐÒÐÒÐÑÍÎÌÈÄÂÁ¼¶®¡u_I@7-.5/#'&/.1/3//./10,0())),**&'/3@IKW]]W^^hu~ ¡¤¦¨®°²«©«±®°³°¬¯§ym\TIVy¤ÊÕRMKGc5-(&':K_XC216FD87<I@<)46/*-0+/(&-Y}pPXUNE66CYuyCBUhfOa~wRFbq¢qT=5/+),-.3412162AQMFWM81'*'0FJ6634140-389<4,6366/+543267:;A<A>9@?8<<;966@GKQSQGDKJRV\nmkkmmty}~ ¤¤¢¢ ££¦¨¨¨©©±°ªª¢£¡¤¥ pJ@>;7577<B:<<976;97599A@47@5.-:/6,5G5;N]qqVR\WbQYPTMYUTWAAMJJ@L<`·®xn~splnqsv|~||{|| |zwsstr ¥¼ÉÐ×ÚÛÜÚ×ÕÒÒÒÓÔÐÒÏÓÓÑÐÑÒÑÐÑÑÎÐÒÎÍËÈÿ»·°§xbO=25-+(&$(#*42675//61453241)+*,*+*-4=GNZVZTOWcr|£§§¯ª¬¯®«ª°°¬«®±¯®¦¤ymaX^ÔÝQG>>NF2++&*3KaRB@9;AE@9EI932985+*/*2+).]{u hJHTPJ;89H^yzgDC]tYHg}`5DMSn¨¢d@)(+%-/(.55+.1<QGEWN7+%)*3=E:/0-60223441/)31620-386/039=;=563;7:=<:6.01=DADNOTYP]denmssyw ¢ ¦¢¤¦¥§¬«¦¨®°³··¼¹¶°rcPE;49>?528;655::57;=A675501985/7J9:S\lmRSPWjVTLKM[V\ZH=FIFKF:dµ©¡sf{vlhmqsqtxu|zu|x{~ ~{zvruv®ÂËÔ××ÚÚÙÔÓÑÑÒÐÓÐÐÐÔÑÒÐÐÐÐÐÏÍÏÎÐÌÊÇý¹²±£p^H90,$))+**'110<;<>22;>7349/-*(+&(-,)4?DINVPLMWhy¡¦ª°¯®¬®««®¯±±°¥¤vndlÒÛIYXB?]²K@7A2'0F]ZKF?BBC:CO724:@E4*17.43)9hzwypy`JLYO=93>GUe[KRo¤aJU|¤vF@>5?t£´ ¥rD+(),1-/-1327>KHOWF1-&&.3JP323-1.-/64858-11001-,2532397:<975@B894321114JEGRZWRXfkknoxvz} ¡¢¦ ¤©¬·¶»½ÁÄÆÁ¶¯qZD@7947727=75634<7=>245*'383/3I=;NXqmRSPWcQYMQSUR^bMJJQHG=De²¤seyvsiimpmmqqzysywyzqw{{z|{~~{{wxnr{³ÁÌÔ×ÙÙÚØÑÑÐÑÑÔÑÐÏÑÖÑÑÏÏÎÏÏÏÏÎÌÍÊÇÿ»°¬¨wbP:/-+1.,):%++2=FEBE99467:;5./0)++(*+)3=DFKROLJRbu¡§««¯®®®®®®ª®«®°®¬¨¢ vtq±ÙÕMDvfJ<LfJ5+7)+&CgWEJ=:?;JRG8254RN30)110//Bpwh~~hKOR<0/79EifVjbVYMv©vaH,/Tz®µ¼¯m=+(+/0000725:JHLWG30()&8ST5-02135,04<66/16417,22702;9:6:C;28H<67430115JIQMNPW]gkrqv~~~ §§¨«°µ»½ÃÄÂÆÉɼ¯kM71<5447562330844/:1)45F9/08F?KYkmTRT`aQ\OLRML]_HERP?J=?k±znjtv}qermomrsrpruvvsqvuwstw~{{{}{yyyov}µÅÑÕØØÚ×ÕÑÐÎÑÐÑÒÐÒÑÖÑÑÒÐÑÍÎÐÎÍÎËÇÅÅ»¶®¥oVB4-/'&(&)1126@GNPKI77677@E3<15,.&+&)(8;=BHLJMGPas¥¨©««¬¬®ª®«¬²®²®¯©§¢}¼ÚÐN@TQFC9QuW2(*-#(0;c`WI=99?MS>79<3ZV:305/75/>lyqb[HF?+),;Pw~enqkUQ_q~xi]J;AV©¬³¯u?,0/2.4.74:DDOVR@76)2*;V_2.014527139:92..0.212603159989=5239E;59-05..AFJRQU`fjprw}~ {y ¡¨ª®´³¹ÁÁÁÅÇÇÈÆÆÈÄ·¡jK=:3:6:45.63974.3/(*.1,4/4S@OXirRLTUWNdGTMGOZ]IJMPAHH@o¢± ~zsizn{yofqnrtomvrorqsssuxpsvuttv{{{~~ ~}zutpt~µÇÏÓÕØÙ×ÕÑÍÏÐÏÏÐÐÒÓÐÑÐÑÑÐÏÏËÌÌËÈÉÁÁ¹²¬¢s\E701'$&)).2:<EHLPKPI99?A=B6852/032/''&.98CIPPEIS`r ¢¥§¬«°ª«¬ª¯¯®°±³¯°¦ ½Ó¾|J;FSA617nJ3(*.'/(?`[TFH=4:@G28::9LmN19D67.16Of~knuV:4*-8L`vW]iXTolo~p]_xY85I¡¢¦k<.143406<=BFNZR>3/.3-@GR843.25:,012587-/0431+/244656:>A@:;;@81846936>JQUQW\`qtvxz}~|~ ¤¡ ©ª¯²µ¼ÀÃÃÆÃÈÈÊÈÊÍÍÆ¿¦vVJ>@;58;676=:6/2-41=5;7>TPSZgrWHQQXUcOURMQ_]JPRTHM>Eoª~zzutzyrqtroowuqsoptpornmpqsttvvyy{~~ |{ywsvt£¼ÊÑÓÖÖÖÔÑÎÎÏÎÎÐÎÌÑÑÑÑÑÑÑÑÑÎÉÍÊÅÃÄ¿¾·±©zaJ@1,.*+/-35=>EMURUQOI@@?FIBA:953522.&*'-7;@JJFAKKYjv| £¨«ª¬¯ªª«ª®©¯®®©©¦ »Í®kG6@PVJ20Ww5(%')%!'9T\YIDE8=?E>/88:Cv]@=<,:51<EUgfk wM),3;[Xn¡ qANagUXccuqQcl^M5Ki ¤g1+-,,.69KBFLaP<51),58@T787/<755/0152:99500827;=78/3:>>AD987825>6025<MSVSU_gowzz{x{| ¦®´¸¹ÁÃÄÇÆÅÄÇÅÊÍËÎÐ̽¬sWE=<9566997:83355;258=FZXZos_KTP[T^EQTMN`[LKNQOSBIt±©x~u~}{uu{xqsssslpppornnimkmiolnuorw{xxyx}{yy}~|{|{wrus£¹ÆÎÑØ×ÕÓÐÎÌÍÍÎÏÏÑÒÓÐÐÏÒÑÑÑÐÊÉÆ¿½¼¸±wgK;.-'//.279<>BKMULSNJIKKCH>>C=<7;5675-2/17CDCBC@CL]dp~¢¥¨ª®¬¨«¬¤«¬¯ª®°«©£¡ ¬ËÉ£jNC=R]J?5C ©o2)..-((,4KfXM8326II3889:@njO>;59706IDKitXauTSTVUapVMCHhnVS\e{mGIFc`Rswwy²P.-/716?>DCKXN<93*--8FW@?4.8<60-1,66:?21.29455743/189@<:79<?:66;519=IPTZW`itrv{z}{| ¢¨®°²¹¹½ÀÄÅÅÆÇÇÊÇËÉÉÌÌÉÊ®w_G>634315<1+03&0,2;=AZVWdqYJYO^OUGLOIU_TMEDUUN;Iµ§s|zxw}yztttsomrpinkihljljknhmiimrpsrsuqytz{}ux|{{x|utxtrns¢¹ÈÍÒÔÔÓÐÍÏÎËÌÎÑÐÑÏÔÑÐÑÒÑÐÑÎËÆÄ¿½¸³°¦fU7/*)'/-5<;;BLPOUYYZMRT__RQGEKA=>28586/1/4CE=H?9@:GR\lw~ ¥§¯«««©§¨«««¬®¯©©¤ µÏÌ vUF@8MHI7Af§¤U3(%)($"$4H[XN>,+5E=.5596CxlUIA>L@87>59Gq~eRZx{xz~x¦]IROOUwoXa[jWB>^uv¡wvWX¦¬I<,,266<:@JSE3+'***:L\>5/.3:42324,49<42/58663.49416<<;:9;9;;5499/34EHRY\diuow||z~}{}y{|} ¥«¬«±±º»¾ÃÂÅÅÇÉÇÅÊÉÈÌÊËÊËÌÊòz^?411*05+&*2**'336>QYK_w[FLLXPTJJRER^SPGBOZK7J¶£ z z~{x{tqrrginlgikmdkkgjifmkrqpwwsrptntrsxvtsxxoolmps{¤»ÈÍÏÕÒÑÏËÎÍÎËÎÏÏÒÑÒÓÐÏÑÒÒÑÍÍÅľ¹µ¯¥ q`I5&+&,.07?=?AHIMRWUNXP[\oocgXWJBGB?6641.154BD@B;5:=AKVis~£¥¨«©ªªª¬«©©¨°°®«©ª«°Â¿{fXF>AALX?`¨6'!'$*-&"+1GWOJ/+9>;-0408HkqjQ:;EC<>>)*0NsZYjtovl@BSc]L[sl`adt{xcPKd· }S5y·ªq=)+*0:64AIWH;.2+3.7TU=62/:81,2,0.6;6755-03.4/73/*/6>>?9<9@=73=9-57FKUV\^iwurzz|v{~{}}{}}¡¤««´´¸»¿ÁÅÅÅÅÉÊÆÊÊÇÈÊËÈÌËÌÌÎË·xbA0.12-*&$&($*5:CU[IXuZGQM]LWKNVDV\QRDCEFD6M¶¡~~ |~}wxwyzusuqlihjlifgbag^gjjikothliiinnpkopjmoomgggk£¹ÄÎÏÔÑÒÎÎÈÎÌÌÐÐÐÐÒÑÒÑÐÐÑÏÑÐÌÈÁ»·°«|dQA58/+*+1:99<@FLPSUWWSQSYYyytqcc]RQLI?A984487@<48<6/2;AJ\mv£¨©«©ª«§ª©¬ªª±²±¸¿º²«sgVNBGB`bUV1+$0.1('(--;LUT@0GT+%--6.;YlfU=IJ?8MQ,"$<nyt[W=<N[izr{¡T@GOfi]KVrwmejnucdau~³Å{_;@²W3)0.936BKXL7..(138U[:.0/851-25.+0376431-335104337=B>F8;:@4479<124>OIYWbmvyzzzry~}}{~}}|~| ¢¥¨¬¬µ¹º¼¾¿ÄÅÃÇÉÇÇÇÉÇÊÌËËÊÈÌÍÏÑÐÉ´yW92/)'$(%$$*61AQNKRsaDJOZMVHQPAQ\MI@JK@I5Sµ} }~wv~ttorojijhibfcefhbdZadlfnedefeiiehmkqid``e_a µÀÉÎÑÑÑÍÎÌÉËÏÏÐÐÍÐÐÏÑÐÑÒÑÑÎÌÄÀ¶²¨yaF3/-+0027>C=@AEDJTRRQQRUVU[~yrohYWPOMJ?;85<FB@88>7079DO\gs~ ¥¨ª«¬¬ª«ªª¬±¹½ÉÁ´vh[KDHU{]¨^>/)(*#)')+/-5<G]PJYS$&+41<SrfbQLKF<ZS(!2G{xaH4=CMXHUII^X[_lcY_borhymgmx|p°¹{^Q]MAF}¨~3+.1<><EFXG001,(.9S\?/1-57./*64-1=>6513061/-1.38::?<=6><=>A99:./29NQT[^jov}yt|{z}{~}}y ¢ªª¬´¸¾¾¿ÁÁÄÁÆÇÄÅÈÊÉÉÉÍËÊÉËÌÍÌÑÑÑÉ´jH2)&&*$#$(20BOI]Ul_AGOXOYPMPDPUFIAOC9P1[³~ ~~{ytuzsqlkbhifecddga``bfca_e]cdadnnlnoc]ZXTYw¬ÀÉÐÑÑÏËÎÌËÎÎÏÑÏÐÍÓÐÏÎÑÎÍÌÊÊÅ»²©`E4.,3327=;EBFCCILIVWUPQTWWYYzqj`YVVQAE:=@GE@:584/3:BLVip}¡ª«©ª«®¬¬®««¶½Ã¼©£xm[OBOour·¬`@.*$%'))'&&-/*-AXbaqM #1199MulbUMKBQkC%%!(8L{xhVJLTbKQ|x9Aeqa`cZcgfc|puosplps_«RBWJQNKkd3/4:51?L[@5/-'$,:P_:1-.821--52/16=788:2410.-1<8866>=7:EI@74<92035GMQ\\klpstuz~~yy~}x|~| £©¯°µ¸»»¿À¾ÁÁÂÃÃÄÄÊÊËÉÈËÊÌÉÊÊÎËÎÑÑÔÑÄ©]71+%%&&%13HJJ\RlfCOKYJUJLLBRUIIEHJAQ1]¯ ~y}ywzonqkiojjbecabaa^c`^cY]`d^hnkrnfd\VNMYkÀÉÏÑÑÎÎÎÌËÎÏÑÒÒÑÐÏÐÐÎÏÍÊÉÇÄÀ¶§iL-'-+/5A>ABGEDGKNPOVTSSQXUSST }xlb\VWOGBC?NK;?8905/7BFVgr~¢§©¬¬¨©¬¯¬«©¬¶´´´±¥¡ yj[QQahÍ¢<3.%'.&(((&*0)*)3M_wwG!&*29DwxjUIOLbrA%"#$*9QuweYk]@Z|i@3VyggditlTZ}msnpwk¤¢~ZiD5S_PW37648DFSB310,'*8RO55-+54/0.1/),487=62343..2049::6>=>?LJA87862127>FQ_bggstrwzx|{z{zx~}} ££§©¬²¹·º¿¾¾¿¿ÁÿÁÃÄÇÆÇÊÈËÌÎÌÊÌÐËÐÏÔÔÓÏ¿oJ,+)!$%75NGHWRh`FHJVGOGHK<ROFKHOL<K3`ª ~~ztuqsqrmhgldcc_b]cbaYYZbZahouqnnh]OLIPi¿ÉÏÏÐÎÌÎÌÎÍÑÓÒÒÐÎÐÎÍÌÍÊÇÃü¶©sS8/(03@IQLMKJLILHPUQXROYR[\VVV somc[YROHFNQH@:951.0@L[`p ¡¥§©©¬¨«¬««©§ª°°²«¬¦¢ ri[TdZ´Ó7/.-++(+/(*3,)(*5DPF!$&&/5AyqQKMOvyC1-.$'6=U}|ie[YuGCE9Xzmcgr{]Govoyu¥{O4.?hdc³96646AJO;7/(&%(;WM76329;2.-74,-7>9<99:1:5225369738>ECHMC=6?=246:AKTefikotnntry{y~~ ~¡£¨©±¶¶»¾¾½Á½½½¾¾ÀÄÈÃÅÆÉÈÊÊËÉÊÌÎÎÐÑÓÕÒÑƬT3,'$$49KF8WWffDAIQFSIDJAJRAHLQE8H6f¥ }|{|{wsqppmnehbbd\^``YZZZ`cpv{tyqi_SLGRdÃÊÏÐÎÎÎÌËÏÏÒÓÔÒÏÏÎÐÏÍÍÉÁ¿·²ª rTB3-.8@EKONOPJGMNISSTYUS\S[Z[YW ~ywk_]UQQRSMID=;/624?LXgn| ¢§§©«¨©©©¯«ª©¯¬¨ª§¤zn^^l eaÀÂ^(,3)'(/).*,+((5>=HG~tB& $#$2:KtGINavc7-7+'(4IQXUMkyccEDPA=R~kpnylLRxvxlilg5//Zd¡W3/7:GHN43+.($(=cW?83.7<<216..-5>83:OG23220424/:5::=;AFLC8A:9518>OPY_cmonpvvtzyy|~|~x £¦¯²¶¶º»¼¼¿¾½½¾ÁÀÄÂÄÄÁÊÇËÈËËÎÊËÎÑÒÒÒÒÔÔ̺c:."%*,=<0A\ecA?JKLQBINEMTKGFK>:C:r £ {{x~yrurtnjnhg\fc\VYV`_jvyzwvqfYOLLc°ÁÌÏÒÐÎÏÎÎÑÒÔÔÓÐÐÐÏÐÐÏËƺ±ª£`P;.-31@FHMOVPJPMRSSUUXYZ[YQQYXTU zxng`ZURTSOFG82/*/@HTho}££§§§«©¬¦¬«ªª¬¬¯«®¬©¦¢tozp¡UlÀ;..'&,+(.,'**-%@ic\Xvi@'!#*AqcCIUneD.2:/#+DcY]A9FWumjyaMBBTVG>]zrvpubVn¢u~{_eq~¡b3)4Oen£ C299EK?37,.(,.9_ID11388663:/1.1596:FE43735+254626>>;FLSL:89:417DTQXcejwvwrrttzx}z||z{ §®¯±¶¶¸¹»¿¿½À½¼¼ÂÀÄÄÁÃÁÇÇÉÉÊÊÌÌÍÐÐÏÐÒÑÒÕÔÐÃsB1.1.::49]c_G@LMNPHEQI[TJ@HL?4F=t¨ xzyz~upprihgllf]ZVYhjir~}sjjUIFQi±ÄÊÐÒÐÒÎÐÎÑÓÖÕÕÓÒÑÐÐÎÌÊ°¨yY@//*26>EKOQRKPOTNRRVWY_Wb]YURSWQV{woscb^`[SOF>/,+1@KUeqy£¤©ª§¬«©©ª¬¬««®§£}y~³`tt.0,+)0)(&$')!$,5j}{u|mXD.-+3KpvH=HZYJ=@6--*<fpaMA6:Egl ~W@99GIRR@E`|{vqjfvy dNmcq¢K%.1Nr}ªe845?=>53--,+/=ZOH:23;4382723251=77@KD5374943:>=4BA8?MQQE<94957:QO`[finttsxwwz{~~zz ¤¥©±¯±µ¸¶¼¿¿¼¼¿¼¾¾ÁÄÂÄÃÁÈÅÉÊÈÌÎËÎÎÍÐÐÐÒÑÓÓÖÔÈ«zI-,58009WfaG>NGGPCBRFPSCDEF56F;{ª ||{y{yx{sunoopsgdfZbcltx}qnbSNEVu¸ÅÊÑÑÒÒÒÏÑÒÓÖÖÔÓÒÒÑÏÏÍÉ¿¬lV<0',)3=MPPUWTLOJOOXYY[[_[^]\SUNRW[}tqja_bYSPK</+*1:DTesz£¦¨©¬¬ª¬¨ª¬«±°®¬¬©¤wÅm`|z[5).-.,,-'&'$ $%)<d{qi]\h~mL>HCQDFPY0'-:_xuO<:<CQwnNQL;;QRNXSENhuu{{s~}v;B@=w~9.44jf«B36A?C=7531,2C\KG;68@<5816//3:7;89@@>87673235>@=>D97JOOH746=82=XR[cdqqustxvutx~{|~z¢¢¦¨¨«®³µ¶»½º»»¼»¾¾¾¾ÀÂÃÁÃÇÆÈÌÊÊËÌÍÎÐÏÐÎÒÒÔÕÔÔʱL0.7/+.N\XA=FDEF<AF?NRHEEH24H<¯~yw{wvwusnjkhg`[_rn~ tn`WQNa ½ÈÍÐÔÒÒÑÔÕÓÓÔÕÕÔÐÑÑÐÎÎǹ¢pS;@'&(4;MZSTXSOLNMMNRZZ\[_d]WVVVNQTVztfjfZYKDA5.+56BWfs£¦©§¬«¬«©¬¯«®«¯¯°ª¥¤§«¾¹T_ntY:.,,*+/2,"')(!(.?YjpdEFMQ>EBHWC),=g}]?9;>IfzbH<NF<<;GZW\QFUquyz}W//.=¢k5&.Qg²n21@?8643+./2>`O>:60<55:.53/081999B99>85431.2<C7DFC8IVOR578891BWOW^glqvwvuxyy{~yy £¡¢¥ª©§°µµ¶·»º¸»º¼¾À¿½¿½¾¿ÁÅÆÇÉÉÌËÌÎÌÏÏÑÏÓÑÓÓÕÕÖÍ·N40+*2H\V@7=AJEA<KFVM?KGF229>« }xwwvyuquqmkeeemwx}wohXSUj©¿ËÐÐÒÒÔÑÕÔÑÓÕÕÔÑÒÐÎÍÎɲZD0+6.2=KT^ZXWNOOTLOSY]a]cfa`__STSTX[ |spj`ZRJD51)-6EVcv}£¤«§®¬«¬««¬®°®§¢ ÂÇÌFt`pVD991''()*()/,&+'0=BD<FT_kx~ubILRSZ=:<?E6;Jfh>-.2@JzVM:9EE7<;>Ofc_LLazs~~n3*&7¯a.+B\^¯B/?;81.(/*/.5^KDB10@646773+-1.4A=@<=:984222.<C9AL@<NVW^B::/91@VQRZllsttwv{|{{~u{}£¢£¦©¦ª«¯¶´³·½¸¶¹º½À½½¾¾¿ÀÁÄÄÆÆÆËÌÊÌÍÐÏÑÑÔÓÒÔÕÖÔÕϹ P5/)/CVT<2;=H>;9JJTI@Q?E,/6F¨ ~{}zzyuvyn~kginruwkdXV^z±ÅÍÐÕÕÓÓÔÒÕÔÔÒÕÔÓÐÐËÌÉƹ£wT:,**;:OZ\[^Z\WUQRNQ[a_d`ecba]ZTOSP[^~~zvpdZQGC</)&3GUgw~¡§¬±¯±¯«©²«©®²´¯ª££¶ÖÛÀnDfEXNL@=0,.%/*&'*('/,2>H<'(-7IUZMN@=:DFK<8=DOVjpylL.,'*;c;89;;MF9:;@ZegYW\alr} {£K$!&k§²N+5UP¶\62588/--())6XO@:24632:=7935>52>?F=A3/2945569N5?C??UV^cI>211*7WSWZpsqsqvy~~|~rnv{~ ¢¢¦¨©¨ª®³³³¶·¸¹º¹¼¼»¸À½¿ÃÅÆÆÇÃÄÉÉÊÎÏÏÐÎÐÓÓÔÓÕÖÔ××ѹT1)6APTB2>9B77@LGPC?K;D).5L¨ {|~xwwzwutnkmqz~voi_Zc¤ºÇÌÑÔÒÕÖÖÕÖÔÓÕÖÖÑÒËÊÊÈ¿² gG0%+17FP[[^ZWSWZVQQS\aagdoe`\[Y\ZSW]`|| ztkcVGB;6*&6IUfp|¢¥©°¬®¯¯«®®«¬°²¯ª¥¦ Ä×Þ¬cZdGY;;?A82/,-1)/)&*03APQ9 %%3FNC>B@C:=38<IU]ilrkl]H9. %.Uv6+6@>AV>B>?LejgSV]Xdqs£¤g1#%<±½ ;5`Wb¸686/1-'1+/-9UP;:46<5161;26533.<8D?A7,252915;R@L;@GRY^`YB9-221MVJ_ostsrvxztqqtx ¤ ¥¦¨©¬±°³µ´´µº¹¸½¹»¾½¼ÀÀÃÄÃÅÄÆËÊËÍÐÐÎÌÑÑÐÒÔÖÕØØ×Ò¹M55FNXCAE@D?@JPPUJLK?I.7:V z{{zxzspptu|vqnfbnª½ÈÌÒÔÔÕÓÔÕÕÕÖÕÔÖÒÎËÉÿ¸¬|W;,%-6GNU[^WYYUTRXSU]bhfhefi`\YY\SV_ef|wi^UH@7.+7KTbn| ¤¦®®¯®¯¬®®¯®°±±°§¤ÇÖÙqxiV-2,762145@637:/;@@IM7-,-8LYLGBB:<5400=?BFIC@;@:4#$%=bs@/0F?@XIED=BLgshVXR\gpy¥}J((,^¥À´c>qUL¥G/2.)*+0,*15VHD34396/74985/477<>EBD37315749;S;EC9OO^cgfM63,-+CLNSpvqxtww~~~zqprx ¤£§¦ª¦¬ª¯²²¯´²²¸µ¶¶»¹½¾½Á¾ÃÁÁÁÂÅÇÉÊËÊÍÍÎÑÒÑÑÕÕÓÔÖ×ÖØѵvD-9AP?0;4<58IPTREJDEG(38]©}}wwuvrtx|~}{tpehz±ÁËÏÒÔÓÔÒÔÕÔ×ÕÓÕÓÑÌËÇú³¤pQ9/,2?KUZ\U^bZ^ZYQWV_`akljib_^XY]YT^e^z| }qbWMA6)*9ASbq £§¬®±²°¯¬®°¬´¯«®¦ ¢ÏÛÑy¡_%$)8&+14:=;<655D=ALF?4-+9X`QC>89?:@AB468;14,/>22/),:VrP3)8:DRQMIJADUomZ[PU\i]sG58I£ÈXyU>¸k8:58/24517;XIC8>7<6;<<=959;;<@?ECI86738399@[HG@9KUbhieY@72.-?TN[rztzwvv~yysgoy ¡£¤¢£©«§¨¬§¬°¯°²´¸±²µ¸»¿¼½½½ÀÁÁÂÃÃÈÆÍÊÊÌÏÏÑÐÒÒÔÕÔÒÕ×ÙÙØϳp;87HA/14>75@DPF;MJNG)08a¤§}xyztxw}| ~pon ¶ÄËÑÕÓÓÕÔÕÕÔÕÓ×ÖÕÐÎÊý´§gH5509FVZY[W]\_b\[XUXdijunjih^_]VUSW_`_yyu~~ym[YF2-,>IQ^n~¡¦¨¯²³°¬®¬®°±±«ª¦¥ÇÜÇu\tÆi$%"'#%0188<<<;9AI?OKG7/':RH@<833:CC@D@6=-++/20>C7/.8Npkph=)-8GRJLTIPKN`ygeeSUgv |_u n]TE²¯t`B9[¸@3.,,-1643=bKE;=9F5>6=<859478<<ADI9;B=>?5;B^IIC@NZdhig\@885,?RP`w{u{vsvytltx ¡¡¢¥§©¦©©£ª±«®±²¶²²²µ·º¼¼»º¿Á¿ÁÃÃÆÈÇËÌÊÎÏÎÐÐÐÓÒÔÓÖÚ×ÙÙÖϯf9,?C.3/;.6HFJ@>HNO<)1;i«£|yvyxuvzz~zupp¨¼ÉÎÓÓÓÔÕÔÖÕÔÕÖÔÕÔÐÌÅÀº¯ |^A218DO\a_\[[___[[YZfkolsnje`c]TQT]`a`ggkp{pePB4*/6HXep}¤¬°±¯±±²®°¯¯µ±®¬¨¢ ®Ð¿gNMÅO$)$-).-,4361,41AMGGABA41567;4,14GU]IFA972$+++-?L5,,44GRgu[5/3;GD?HGUIIKovf`VO]v ~diuncyz|\02@©¯W.0220-3,2:^G?B=8G467162-./35<<AH@29:947338IEED=K`hkoh^K=/*,=MHdtxwyvuqqo| ¢¤ ¢¤¥¥¤¨©©¯°®«¯²±®³µ²µ¸¶·¹½¿ÀÿÅÆÇÊÊÌÉÍÑÍÐÏÑÓÕÖÔÖØ×ÖÚØÙÏ£[01;'*-2.8ANK=BGFJ6-2Cm¬ ~||~~{|}yx|} }ysv~°ÁÊÏÕÕÕÔÕÓÕÖ×ÖÖÕÖÒÐÌž³©qWF5=IOVa``YVV][\\Y]_hmuurokhc`^[TX]ccgeYY^gy udOB5-,1KVes ¦ª¬²°´°±±°±²®²²µ±±ª¥£¥¼¸l\Cg:&%&%+2*,1/6/(.0/DI89DH<2/-64-+)7GedS?7761&)*++@cN0#%(9E\rh[7/0B?>BIVLAE[zrg\USwphaOk}_Py¬2.5Åv6.+-),(',?bE?9@<?04-0721+2;6>:<S>889/00.48BFCC?K\ivvgdP6*0+6QLWpzv~trqlm{¡¡£¤¥£§¦§°¯°®¯±±¯¸µ³·º¶·¸»½ÂÂÆÄÄÇÊÊËÉÍÎÍÐÒÐÑÕÓÓÖÖ××ÙØÛØÉG1:0*'-32?LB<<C9E0&0@| ~x|~z~}zy¢¸ÅËÐÔØÕÔÔÖ×Ô×ØÕÖÖÑÍȸ¯£{dQ@<?LQ__`\^XY[]Z\]bemjqoolhg_\c\\`]ejgfGGN^nx~¢ ¡¢{nXH1)+7EWapz¡¥«±²±¯²¯¯±¯³³·²ª©§ ¬¦qd@MY(&&&20/.'+.32..-7FC439A?0*+2,-$.3Ogf^A6@=8&%*-,9n\<+%(-=QnmfV/+:AKMLPH>ILcvteWQr sl;i}P8dðU.4qÓ¡7$(&$-(%-<aI:<66D42.4;*-.1225ADIC853-.2,.7CJBK9N]iu{kl\B+2*0NV[lzprjmly~¡£¡ ¡¢¢¥ª©ª±±¬«¯±°´¯³µ¸·¹µ»¾ÀÂÃÃÆÆÊÉËÉÌÌÏÐÐÏÓÔÓÓÖÚÙÙÙÚÚÜØÁ~<90.)+34<FC49=><-&0A¯ ~y}~}|{|¨¾ÈÎÓÕÖÖÓÔÔ××ÕÕÔÔÓÑÍÊ¿¶¡oYJB@LNVac`ZYX\[[]_cdjpnjonnjd_^^YTZ`bghh<<EWjr~£¥¢£¤taH2-,5@Sbu ¥ª¯³·°±°±¬°±°´´µ±¯§¤ ¸«tzwCV7**)*')5'''*6//'-E]@0.8;993/.,+**?boed:8KIB,)1*)7cd@'%,.<PceWaI./BCPGKGFJUFoxdZXv |zw|WyO.=«Æ84dÚ»N)#&+0$%*7]A:<58@33027/+15336;AN?/014*,&-4IJ=AB\fsv}oj^A-0)/IQW^ys}efxu~¥¢£¥¦¥§¥«²®®®®¯³µ¸µ¶º´·½ÂÁÀÂÃÃÇÆÇÌÍÍÌÍÎÑÑÓÑÒÓÖÖ×ÙÚÚÜÜÓ±lA6-*(3,;BE36?E>&&0I® ~ }~}} ~}|¯¿ÉËÕ×Ø×ÔÔÕ×Õ×ÔÕÓÒÏÌÉÀ²{bTFGEM[_cc]T[]_b_adcejmtpomjdeb[_X__bbggh338O`iv|£§£¥¤¡wgU5*&5BS]m§ª±³´²¯²¯¯±±±²´³®¯«£ ¿Åz}MT?,)*(*(3++++6,..;_N3/0;<5851,,/)0J`olZ4,OSF.'(+'3RvS1'0*1S]LTZeC18BONLKIGUC[th^Xywysuowt}¤§|j@,;f®Z;UÐÎf,(%&+%*.7YB=@6:D678693-265:5>AD;5<<65.+/7II>?ETiozxsiaI3/+1PTVbshsgu~ ~¡¥¢ £¢¥¥¥§«®¯ª°²µµ³¯¶¹¾¹º¼¿¿½ÁÄÅÆÂÆÊÌÌÌÌÏÐÑÓÑÔÕÖÖ××ÙÜÞÝÛÐT60-,03<D<038DA,)5R© ~}±ÁËÒÖÙÛÕÖÓÔÔÔÔÔÔÖÑÎÌż© jWIDFJR^a^]YX]d^^]cdjlprttsic__]_[\bfjedfe((4GTdu{¥££¥¨£ykX<+*4AUau¢§¨¯´³±°¯°²±±³¶±±´¬¬£ ½ÚmrHMQ7/(,+(--&&*:,1*DgA1,3</.4:1-+-'-PdvlK+)OZL7(+'$)MvfB3&)*LbNIL]eI9>G[X_J@L?Cni_Z}}hcokm}x ©¯_0$*6¾BQÆÑq'!#%'%$'0X<<B2?A01544,4*16.89>D77>8433'-2BJ;5MXou|vqkcK6-).JNVdl`unz| ¢ ¥¢¦§§¨«®¬®²¬²±´²±µ¶½¹º»¿¿¼ÂÃÃÆÆÆÉÉËÍÊÌÎÏÒÒÑÒÖÖ×ÛÙÚÜÞÜØÁJ,(*040<6/.5@@%*5`¤ ||z| ´ÂÎÒ×ÙÙ×ÖÕÖ×ØÔÔÕÕÒÍÈÁ¹¤u`PNNRPUZe`_W]cbdbdehmquvwnib]X]]_\a`ijiiih%%.9O]ns£¤¢¥¨©¤}pW:)"0AR]q¦®²µ¶³²²²°³³´¯®¨¢¢§×ocF[c/%-%)/.*++17/.1Tg6124..E=372/**3Qi~mL2*=X@;+$)%'=anT<-'*;jO@9RnaF2C^f_SSG@;Y[c_u\Qkvqwy£¨° uQ+'&)P NO·Ó($" " %$7P<JD3AG40483)++-+07GLD:788->>-/.A;77O`hvx~qqlQ2&)(OISfck{v~|~ ¡¢¢¡£¥§¨¬¨¨°¬¯±²°´¶¶·»»½¿À¾ÂÄÄÇÉÉÈÉÌÌÌÌÎÑÏÏÑÓÖÖ×ÖÙÙÝÞÝÜÓ´f1&'/.3=;.-3F5%&9a¢ ~ }}§·ÇÌÓ×ÙØÕÓÔÕØØÕÔÓÒÑÏÉ¿³ jVIHPPST[`^WX^cca_cfjprrsola^ZWa[_\aecghldf&&*4CScnx¤¥¦«§¨ r^=-(/:K`s¡§¬°²²²¯³²³±®¯±´µ³®¨§»sI{(&!+*1&((60%,FfR2+)21*2@092220/Us~qS,+:N>;'%(#!,JbbC3&.<kWE;=XbbK;Nrc`YPC>EJ_]p^Qlqlu®¦{P,$$%3ciO¹Ú0$%&$#&*3P<:8/ED23.47/+-514;DQRA/4;8><+*8=:=:R`psvxumaU8.('<KPggu~wy~ ¡¡¡¡¡£¤§¨«ªª«¬®±¯³µµº···»¾¾¿ÀÁÂÆÅÆÌÊÊÊÌÍÍÑÑÑÎÑÕÕÖÕÙÛàáÝÝÜË>$%(.9m:(.7B3$&7l£ ~|y~yºÇÍÔ×ÙÙÕÔÖÖØÖÔÔÑÑÑÍȽt]LKKMXU^`_YVWafedbeflsunpi`b[X^Z]^efhgikijd##',4BOer¢©¥©«©«¢|]D)&-2Mar §«±³²°²¯¯±±¶µ³²°²¬©¤¥qKx2"%#.5+0(+31-4[RB4,**252612.4-/4LnsL)&4K;H.'+$"*7E`aJ1%/aVE:8KdhYOMgfefe\L@DS`tx]Rp jh¶¦xd8'!+H}NºÜ²5"3$)$(%:OE><4GD2,24/--*33467KZ:.<792:-.7?9<GXetvwxxjcR8+*(?Daihuyr{ ¡ ¢¥¦§¥¤¥©¨¬®±±´¯°·¹¶³¹½ÀÄÀÀÁÂÆÆÆÊËËÌÌÌÏÐÏÐÐÓÖÑÔÖØÛÜàÞÝÝÖºj(,'+028)-7=+&&9l~ ~z||vy ¢¨¶½ÇÏÕØØÖÕÔ×Ö××ÒÓÏÒÐÍÆ»¢nXMLPSUV]cVW\[^iickljotqiee]VZX^\^ehegggjekf##*+27Hep¦¨¬ª¬¬¢ x]<+()4BSp§«±¯¯¯°¯°¯µ¯±³²³°¬©§eyÂLZK,%#,25--*,,55DS<41*,-.3<1(1-4102YptV7-7SEF<%+'#(,0BcaF6+R\B67H\haVN[jhoqxi[E?YkhYPqhy ³}]eU4(#8L `»ÜºF%++'"%&6PI9<>NO264/5./364.29JT:2/868/)07;7;N\hsqoqum_P/('%BJYhkupq } ¢ ¥¤¦£¥¥©¨ª¬«®®¯³´¹¶´´·»½½¾½ÂÃÆÃÆÊÉÊÎÐÏÐÑÏÐÐÓÕÔØÔÖÛÚÜÝÜÝÛÑD:%.-32/*40'!(=¡ |}}|z|x¤ª¯³¹ÁÅÊÏÓ×ÕØ××ØÖÕ×ÔÓÓÑÎʯjXNPUX[^\ZW[\`dgkjlorspoi`_aYXSXZ^fggggh_bhc%04<Zj§¨¨©ª¨¢ {b9& &+BSs¥©¯¯´²±³¯«®±¯²µ¶±ª¨¦k~ÌGE>,)(+3-,'.0?39K?50+,-.42/4-+0*010RusE+./HTL?'(("'/#,JccZ=?gK8.;OM[[XL^stqvmnL?S[^WOfyz¦\><N=#'9O¸´Ù¼M( '&$%&;SJ3<<LI73.540-15039=LF5427/40+,374=U`^lijt{kd[43));Kadkxqy~~¥¤£¡¡§¥«ª®®®²³³·´µ¶º·½½¾½ÂÃÆÉÆÆÊÊÊÌÎÐÐÏÓÑÐÔÓÖÕÙÚÙÙÝÛÝÝÙ½g+)*.00(,/+#+D |z|x| ¤°±¶º¿ÇËÏÑÔ×ÕÖÖÖÕÖÔÕÔÓÏÌÌƺ©waSPTY[^`][Y[\fgehknorssnha^XYW[XXaehgjiceibh"" #)3=bu§¨ª¦¨©¤¢{bA'##*?[o¢¦«¬±³²³±®¯®°¶´´´±±¬¨¤|ml¦MU:((010+.();43@A1;0+,4)29..*(-)/.:Xyx9'':HZH8*!&#+0"#9HdiSGfXC,4N@M]aMK|mlmsoW?LV[WIb¡wj4(7F5->Esñ׷?,,+(%(DUD4;EOO20464-03094;8GB7*2./252,656<O^`njupo^eZ;1+,@Pebg{zqw}}y ¢¢§¨§§¬©«¬®«°´´³²µ¹¹º»¾º¾¿ÆÄÆÈÌÈÊÌÌÎÑÓÒÐÒÔÓÔÖÙÚÛÝÚÝÝßÜÐ:#.&03'',*+'+J¥ }{xyys{¨¬·º¼½ÀËÌÏÓÕ×ÙØ×ÖÖÖÕÔÔÒÏÌÈŲm[SXXW[``c\VZbdggfmonrpngd]_[SSYZ``hhhflgacje&&'$.59Qn~¥¬¬©¬ª£wX3")(-?Zq¤¥¤²±°´³²´®°¯²´´°³°®©¥¢|ig|fru.'()141***21:F;6:10+323,4**./.-,:`t.*./<_M6-%")+G&*6>M\hai`D-1NA;WjWJrslnfjbMSRZRIXu¡<#(:TJ4:kì·Ó9" ")GN=06LXO132.72(3.=766DC63-049E?4898KX`lmqjhfcc\@6'9<Qb`pzyz~~~||¡ £¡¤£¤¦«¬¬¬®®°µ®±±··º¸»¾½»¾¿ÅÆÆÆÉËÍÍÌÏÒÒÒÐÕÕÓÔÓÖ×ÙÜÝÜÝÝÞؼb*))/2&(). +M¢ ~z{{yz{}¤«°·¾¾ÃÅÆËÌÑÓÖØÙ×ØÕÖ××ÔÓÎÑÍļ~eYY]W\bc^[ZY_gfdhklpopmnge^[[X]aZagmcheee^fji""%('79Tg{£«®¬ªª¦{P*(%3GXm¢ ¬±³´¸²°²°²¯²³¶µµ«©¥nkhm¤3(-+25./)*//=>064.5--,.2:,91.*,3Mlr6$&+:TN21(()251)776@OUV[J:2YO6H\eW`sji[^SPQ[]NPZv¡S'$-]P12j¼´¶Ð .$)$%"#)KFJ14OhY1+08/++62-*67N>34./08.23<8=T^jsroja^dmeD9',8S_Xtxwv~}¡¡¢¥£¨¨²ª«¯®²°°¯³¶½¸·¿¼»¾½ÂÆÆÇÉÆËÍÎÎÒÐÐÑÒÖÕÓÕÓÖÙÚÛÛÝÝÞàÜÏ9)*,'%$'+ +[ ~z|yyy¡«²½ÃÄÄÅÇÆÌÑÓÕ×ØÙÖØÖÖÖÖÔÑÑÍÉ´¤o]XY][Z^f_\_`fjefllnpsqkhcbZYX]YYbaelegdd\fifg('+26Q`z¡ª«®¬¥ mP.&%&/H[o £¤«°³·µ´±´³²³²´¶±¯®®«£¥txhz²i/5143//-.2:?@:.472/4-14-01/-32(6O}n6&&'.KYB5#$(?;.#/:9757=H<.-N]>:YjZVfqeQcUGR]YLVbuy¡¦j( 2D6-1g»»¶Å/ #)'(%)MPN/9Hg]3/885.3=+/.;<P;5.*)26,-;=5DWblrkd`cgmodB3+2@T\Xktw| ¢ ¡¢¨£¦®««²°¯ª±·º»·»ºº½º½ÀÃÃÇÉÊÍÌÎÌÑÑÓÏÑÓ×ÓÕÕÖ×ÙÚÚÝÞÞàÜײS'&))"#*% /a }|}{z|~£®²½ÁÅÇÃÈËËÐÑÕ××Ú×ØØØÕØÕÒÐÎËÅ»®zf[^V^][b_W[`dajgjknqrtqjfa[XVXX_^dbhmfha_bgdbo$$)1+04I`xª¬¯¥¢qT5%$(-GZl~¨±±´·µ±±¯³³²¶µ¶µµ®©¥F)+2:9**+.09=;014<41+./157690...:Zd<+%"+GYJ>$(0G>0&3>D8)#4=2.08dP6Ofg`Vlk[X[KLYQPQbp ms¯¥wM*-.,09[¸¾¸¹r*("(,+-7WSV37G_O;85:5557641=;C<6.,*-00-9:7LWajkb`_nsut`D/1*?`\cfqx|~ ¦¨¨©¦¨ªª¯®°²²·¹¸»·¸»½½¾ÂÅÃÉÇÉÌÍÎÐÐÑÐÐÔÕÓÔÑÖ×ØÛÜÜÜÜÞàÛË1 %)!$%(!#3l ~|||y~¢¹¿ÄÅÉÇÈÉÊÌÏÓ××ÙÙØÙ×Ö×ÖÕÔÓÍɾ´¢scZ\V`Z[^]Z]dcjkllnppurnje_[^[\^]]ibjpcg`^^keli!!!&.6@H`u£¬«®©¥rQ3! ,@Zn¢¨«°´²²±°°±³¬¶µ··¶²®¬¦ ³zq61,5:/%(-0:A=11/.6+++&-,4510-2+3@l~d9#$%(@WM9+'2KA9/5=B9+$*27>64YX>CeleYrvdXd\CRH=Vdolq¨krn3&0#+1T¸ººU*&!"%)8WUW);JUM//9;47812227AH=@3-+0+0;:5=R[\c]ddgv~{tdI6/2<d]_ms~¢¨¤¦§¤©ª¬ª©¬°°µ³µ²¶¼ºº¾º¾¿ÂÃÅÇÆËÉÍÍÏÐÐÏÎÒÓÖÓÔÕÖ×ØÚÛÜÝÞßÜÔ¬E &($ #($3w ~|x~}y°»ÃÇËÍËÊËÇÍËÏÑÖØÛ×Ø×Ø×××ÕÔÎÎĺ¨j^Y\^\^ZZ_V]fggiknqptvqoc^_\\[Y^_ajcikacc`brhne %$.DB]v¡¨«®«¨¡vW6#$+=Yo£©«°±±²³®°´³±°±¶´¶´¬©¢¢ºyr70+6<*').7IB450*,>1*&$.39:*+,-&3M|vY8$-(*2@D9*!9M?3+*?J>,('2;007Na?;TgY`jxsab\XOH8Viz~k¡kgN.1-+1T·¶n=4:("#&+3VRG+:MQK009<00--33.7@A<B<,.-.0:95=XW[fcios|yxreK3(1?\Zcpqw ¤¨¤£¨¦©©¬¬±°³´´´ººÂ»»½ÁÂÃÃÆÈÉÊËÍÍÎÒÏÑÓÓÕÕÓÕÕÖ×ØØÜÝÞßÝÙÆj'/2#"%'!!9 {z|wzwx¨¹ÃËÌÐÑÏÎÉÈÊÊÎÑÖÙÚÙØ×××××ØÑÏÊ¿±¡ze`YZ\]\\\XYbgkkhsrpsvtpo]_Y\\ZWYcdigfkecagchljg!! #)-E[t¤ª©ª«¦ v[9$ $0@Un}£§©±´³´±²´±²°²´µµµ³´©¨ ®suq3(,:60+*5B@560+-16,24)*94)'&&))9epX5%)0+)8C6-%<U<46/559<,,/403.<PI4UhG`ntre[NRWK3Lbxsky yD4//6h¼¬UBkj)"( $?SON4AJKK4279-3344./=:25A864/16;<7EORbklrxx{yyqeL0+.L^Yknrx ¡§¦«¤§¨ª¬®¯°²°³¶µ¼¼»¼»ÀÂÃÆÅÆÉËËÎÑÏÐÏÓÒÒÒÒÒÔÔÖ×ØØÛÝÞÝÝÜÑ>,*%""% "> ~~}yx|³ÂÉÏÒÕÕÒÑÌÍÊÊÏÑÕÙÚ×ØØØØÖÖÕÑËƺªo`^W\^_]ZZY`eeeekqrpptrrgf_YYZ\_abikgjihc`]ehifb !%-=Wt§¨®¬«¦pS8 #%0?Ri}¡§ª®¯¶³³±²´²¯´±·µ¶°¯©¥ ¬hHF+.:0'01=D;136*'3*,+*'-85&$%.-Uo[>02-035A2-)FU7654421@4(58,/,8OK>WbCYr{vlNDKEF:>Pt¤yYs¤y^Q>G¶=q¢/$%KXOL2ELA?23961?=/-34884605C6317@<<JT^kuqwv~xzteO-+1Q[dikoy ¢¢ ¢¥¨£¦§ªª¬¬²°²²´³µ¹½»¼¾¾ÂÇÂÇÇÊÍËÌÏÐÑÒÕÒÒÑÐÖÖØÖÞØ×ÙÜÞÜÞÞÙ¸X $#&H }}}y |zwª¾ÈÍÔ×××ÕÓÎÍÍÍÍÓÕ×ØØÚÙÙÕÕÓÑÎÉÀ·m`^\Za\[^__^dfflvvsuvsvpba\YUY[[`ckihjdfidageb_^"$#$,:Yj ¤¬®«¬¨¡uW7!#(/7Wk~¢§¯°³²µ´±´±³±´µ¸µ²±¬¨¥H-)&,86)65<:5--(,),/-'(#81.'#(#'>r znb>$*$'(/657*EL42;6'.27.-6?-+11IF8H`BLnyt\:69<6<L¡h4Brxny¨qW¨D%%++?PJG/?G<>84<33C@.360276443;:2:5:<JP]isuvyyxwwgO0-4YV[hpt{ ¢¤¢¡¥£¤¦£¨«°¬°°¯µ´´µ»»»»»ÁÀÆÃÄÇÈËÍËÏÏÑÒÕÔÑÏÓÕÖÕØØÖØØÚÜßßÞÚÉu& (U ~ ~~}x~yz|¯ÃÍÒÖØÙÙØÕÑÐÏÐÐÕ×ØÚÙØÛÚÙÖÔÒÌź¯sg_``^\\[YY`^agjmosprssqhbaZ\XWYbcghfmmkgegffdibW "*:Np¡¦«¯ª§y]8#!#)4Sj ¢««¯´³µ²°°³°³µ´µ·°¯«©¦wC*%-17978A94-.2,'&20$//00.* &!&8ck|fR2((+,)+5>/2F@.471%*-0+1::33/)BDA>FA8d}d<499?FV }Q5z>Vz³«²È¨F###(FM=?1>F8DA:91:CD4./52:10405>6087;NVjqzv}|{}xxvdT.+<TVbfpuy ¢£ ¢¥¦¦¥¥¬¬´°ª°±±µ¸º¼¸½»¾ÁÂÅÂÆÊÌÎÌÍÎÑÐÒÐÓÒØÒÕÔ×ÕØ××ÛÝÝÞÞÜÒ4 .a }}|xy{¸ÉÏÔÙÛÛÙ×ÖÐÎÑÏÒÕ×ÚÚÛÙÙØ×ÖÔÑÇÀ¶¤~mbaad[\XZXWZ[_lhmnmsrophc`c^YZX_bemjfji_dk_`ljh`[# !#*6Je{¤§®©¥{_>$$*7Pm¢¥¯³·´´³²´²³µ³´¶µ¶¯®ª¥ }<1(.258:D?8))+9%,)3,-/*1-/"(%,8S~uNswT?4$,(',)/6:EM='+93!'&(/*7G78*&@J>B524FmnE.BFUM]¡wJTD<q§¬{0'-(-FM>50;<3=D=<45BF8216734.372?/B>;JS_nx{t}|}yy{t^F3/KY^_mpx{| £¤¦ ¡¦¤¨¬«°°«´³¶¶¹¸»¾¼¼¿ÂÂÃÄÅÉÍÌÌÑÐÏÎÓÐÐÒÕÖÔ××××ØÚÛÜÝßÝظO!" -b {{~{zwuvz¡ºÊÒ×ÚÛÛÙÙÔÒÑÑÓÕÕØÙÚÙÙÙÙÖÕÒÎǽ«yfd`bc][\WRZde]flmpuutohf_d_\[Y^bcjjhhhghehoajkdVO"" '&6Kg{¤¨¬§|bC($()8Sm{¢§ª±´²µ²°°µ·±µµµµ±®«¦¢ D12.;D>@79*$&+-+,-/,,103*(%.)=XzqI>nrC93).(*/.+9<IK@'.;7#'%'.7>H;<)#=UA8GE4BgyqW=@Ne`b¡x`|[c ©uMQ^M;(,/(3GJ<6.?=1ND@322>=5:6?>2,15.2.4I@>OSer{yw{}z|{|q\F3,CZZ`jn|w{| £¡¦§¨¦ª®°¯«®³±·¶¸¸¹¼¾¾ÂÂÅÅÆÈÉÉÈÉÐÑÏÍÐÒÐÒÒÓÔÖÖÖØÙÚÚÜÞßÝÚÅt$" 4k ~|{{w}|x~¥¾ËÑÕÙÜÛÙÕÓÑÑÑÓÕÔÖØÚØÙÙÖÖÒÐËö£ ufhf_c_]Y^V\`[bklpososnlc_^``Z^]aehjgiggkabeba^YWS $-+<Kf|¥ª¯±±¯¨yfH* &)8Og}ª«³°°¶²³¯³³´³´±³µµ®«¨}tG725BG<4/3,*+/-=.*0+*./*(%&,4az]B8?{nK>31.+))236FPF7&(3:*'/(0/7E:5' /TJ54<<d|ptolaSUjZ_z ¼¬¥@-&-()%;N/9OL603>B8>8E2.3?;617?:3251183<L@JPXnz{{}~|yvvvp^71.P[]`hrz}|| ¢¢¦¤¦¥¨¯¬²³µ·µ¶¸º»½¿ÃÂÆÅÆÇÉÈËÊÏÐÐÏÏÐÐÒÐÓÒÕÔ×ØØÖÙÚÜÝÛÛÐ/ $5x {~|x|zw{z¬ÁÍÓ×ØÜÙØÖÒÎÏÐÐÖÖØÙÙÙ×ÕÔÓÑÍÇ»±{pljhghe^^c[abaghksuvrijf``Z]\\^chiijkgjhh_\bd_VQZ] "+4Jky¦°¯°¬§¢iF'$&)6Pf}£ª¬¯±³±²²¯²²±´¶´¶µ°°©¥||tD<9=EG4212+,+1-)++4/-'04/5/1E}yV>..M bIUJ0-)./38=KQH6.&86+&$$,1:DF5()O_;@8>]xniowzviphq uD?s¸¿±_9)#$ "4aB*6L=1/7=>0<8@9,9;<21/?:7921569CEAKMZqx{|{{xzsfR<0,O\[]fp}~ ¡¤¢£¥¤¥¥ª®®®´°³´²µ¶¼¼¿ÁÁ¿ÄÄÅÈÇÉËÍÒÎÏÎÐÑÐÒÒÕÑÕÕÔ×Ö×ÚÚÜÜÜÜÕ¯E'> z}~{{|xxz±ÄÎÒÖÙÚØÖÓÏÐÏÍÑÕÖÙÙØÙØØÖÓÐËô¨|qmijkffd_]`__banrwvuoikgf]_Z[\_bfjkllggad^^]\\ZRRP"!"(6O]}¥«±®ª§ ~oF,%$(3Pdy ¡¨«²²±²²°²²°¶³²²²´±¬©¢¢yvkSC:;DH7,++++*/0.++..6-&-)8;;JYL/'*4^WQS<510,1/0?SPD8/')50/+'+46CL<'#+SaJ0:47KXP]ry{yq oQ>Q |°¸ªxW@)$'3ZU2)AH>43=N=+=:A@0:?<2,5>;1/24215CEFOVdox||z}||~{vmN;/.T]X`jny ¡¢¡¡¦¥¨ª©«¯±°±±³´¸»»¾¾¿ÀÃÂÄÇÅÅÉÌÐÏÐÌÐÑÏÐÓÔÔØÔÕÖÕÖØÚÚÛÜÜÚÄj =} }}{~{z¯ÃÍÓ××ØÖÓÐÎÍÎÑÒÖÖÚÛÙÙÙØÕÓÌǼ¯ypojjjcjfbadba_cmtqturoiji`a\]`_aahhldjhhbi[__UVRTO" %(2Jo}¥«®ª«¦¢}lV4''+>Nc~£§°´°°®°²®¬¬±±¥¢uteK<?7<7.(.--022-+.2**<,,BJLSJ<02)0:ozQYT>0/0-,$/FX<:;0&)0*,*()59GA6("*OcW:6.*3==Bgm{|}o_YNa~z¥\I<Zt8(2AK83/<H81@=?C;7C5:0;=>201260=KGKMWfoy}~|{z{{lH900RY^gjr| ¡¡¢¢¦§«¦©©«®±±°´µ»»¼¿Á¿½ÂÃÅÆÆÊÈÍÍÎÍÍÏÏÐÒÐÓÓÔÕÕÕÙØ×ÚÛÜÚàÝÍ#!G ~~z{{~·ÆÐÕÖÙÕÓÑÎÍÍÏÒÓÖØÚÛÙÚØÖÓÒͶ¤~xutlngffdaaa`aeekkqqpooid`]Z[_^\dighffig\]a`ZW[TRQL!!"#"(/Bg§©¬«§ }tZ7)$/>Ocy£ªª°²°¯ª¬ª¬««§©ª©¬«©¡¡zwG;-/91..1,00+-+.4641--7S_^>62/(,;9d[O[[U8,8,&)4MR2@C4&)30*%.03>I1-4'.P_YA5///867Bax{r}{knVRfgoy©±¶¥yrr?5=RN9214B04@<ISN6=820D<93/2*03BKCMQYgrx{w |y~{|n?:/8T]blny}} ¡£¢¤¥ª©«¬©«®µ·¹»º¿Á¿ÁÂÀÅÆÇÊÉÊÍÍÌÎÏÑÐÑÒÓÒÔÔÕ×ÚØÕØÙÙÝÞÛÒ¥@"N }}z|||{| µÉÎÔ××ØÓÐÎÌÊÍÎÒÖÙÚÛØØÖÖÒÍÉ¿®xxvysjigb[bc]bgacenrrnpqg`\\YY^`cgjgegkl`\]_cYY[VVPQ "'-Hct£¨¬¬¨¢xW2,',6Cdv ¦°²´²®«©§¬®±ª¨¡zC?;/73)/-2-0+--02?2/.2?WiJ-*+2/3/>]LM][K.&814-<A505F7,-&13,333@R8%6>;T\T=C1+,'4;AYxy|pxcmhF>28PitYj£rkvtgS@9FH.7BH\[J9;325887/13//6HIIJQ\ir~{zx~}}xx_H9+;T`bel{{}|~ ¡ £¡¤¤¤¦©ª§§«°µ³¸¹¸¸¾¾¼ÀÂÀÅÇÉÇÊËÎËÎÍÏÏÎÐÒÓÙÓÕÕÖ×Ö×ØÙÚÛÛÛ׶W$]~~~||}¶ÉÎÔ×Ø×ÓÑÎËÊÍÐÓÔÙÚÙÝÖÖÕÎÉĵ¨zwu{qhgh___ccchlifnnsknfac\_[[\\^glhgbildbcibRQU\XQQ%"$4@\m ©¨¬«¦£ u]4$",8K`r¢¨°²²´®®¬®«¬««¯±°®©§£q<GM-//++.3+*,.++-738+-7MG5*.01223;`UYYWN;(3.07<3*.4<:'53.0//5..RK(6<F]eG/A7"#'*4@Ktpvza[sG%"&'2`Y2:?RIF{p ~sgjthM\jd_;>=9-,.5:62/01/>HKMSXenv{y|||zy_L@1FUcmgr{{} ¡¢ ¡¢¥¥¨ª¨¨¥ª°µ±¸·¶¹¾½¿¿Ã¿ÄÃÆÈÈÊËÊÎÎÍÎÎÐÒÐÔÔÕÓÕÙÖØØÙÛÙÚÜ×Èz" %_ |x}|{£»ËÐÓÖÖÕÑÎÍÌÊÍÏÑÖØÚØÚ×ÕÕÐɽ¬|wrwysjjkfafcb[cdhlplmnmaZ]Y\[Z_b^mlhhicgb^]e`TTW]Y[X#%/LYq¨©®®©¤vV0%&*;Kcx¡©«²³±³°´¯¯²¯°®´³±°©§ k6FO,*)*2-)9--.+,697-+10G0:/15:55+4]WVOF@75,.>BL8307C<+-6<+93.,2MC&.8WisA$<?&""*0E\k}h j|oMk](#$-Tj,('*)4eH4;Iq}{~£ tSA/<F38831<6/1626AFER][kqw|{|}zv\P6.J[_beq~ ¡¨©§©ªª©¬¨²¯µ·º¸º¹¾¿¿ÃÅÆÅÆÇÆÊÌÍÌÌÎÑÏÐÐÓÓÓÖÕ×ÕÖÖØÙÚÛÚ×Ð(!(m }|~{|{}||}§¿ÊÐÓ×Ø×ÒÎËËËÎÑÑÖÚÜÙ×ØÔÑÌƺ¨~vvt{tmgjgcd`e]`gghjonnj`bb]\XWX]`ejjhhe\`a\c]UUV[\^^T%(0DSm¢ ©°¯±§§¡wW8(+.;Lcz£¦®®´°¯´°°²²²²°´´±°²¥¦}kb<>E,-75,(-;,.-4.431,-)002435>67.14NXTOHA5@7)AA44'/.D>-781-+#&(7A;1(9Uoj9%5I7 '85ASb}uTqn\kdbtP*"%,G|2$-.*MO(!"-LJYIDHy¨§~mmhF<DD782?774*775;IHLVY^kt~}|z~uSG59RWgigt ~ ¡¢¤§¨¬¨§«¬´±µ²µ¶ºº¼Â¿ÃÂÄÅÆÅÉÊÌÍÌÎÍÐÐÒÐÒÓÓÓÓÖÖ×ÖÖÙ×ÚÚÛÔ²H!/y ||~«¾ÉÏÓÕÙÖÑÌÍÉËÎÏÓØßÛÙÙÖÓÎÈÁ´ ztqpturihjhk[__eikkjphjed^[XXUTZafgijlhg[W]b`_UXU`^\Z]###"#,:Nj} ¦®ª®£rW:$**8Hcy ¡¨¬¯°¯´±°²³³±¯²µ±²°¨« ydZ97?,08133*99.0.024.)+60/*-8<C50.'8JIIG??/316?C42/,2CD4**(/*.#68E<8.1Ysh4!#>S-+5AE[_t rLdq]Xy]v8&,/<{B#-*3W/! %/DBA55:OeX>IeiUN=54688=3)553GDKUUWciu||z|~~dPH,;MTg^lx ¢§¢¤§ª§®®°®±²µ³¹º½ÂÁÄÀÃÆÅÆÈËÊÍÎÏÏÎÍÏÒÒÓÔÓÕÖÖÖÖ×ÙØØØØ×¾_5u |}}§¾ÅËÑÕÙ×ÑÎËÈÉÍÑÓØÚÜÛÖÔÑÎǼxxupwxjkgffc\[_fbejfofddb]ZUUVX_geiihhik_[\]b\X\V^]W`[!!% #0/Nc~ ¥®®¬ª¡qWD&'+GG_u¥³²¯³³°³±³´³´²²¯§¦¤{kU45/).45:3+-..-.-2./3,,8109A=501+:AGLHC:;4-57<10+0<7DE6*.'-(#$1<?(+-6\tcD%$+WV=AIS[aay|`fyeY{~xZ+&+5yP&)&JF&!$=?F;573GCL2<Igr}`D;8:609-,/-?KDLYUbemw{wz}~gT?2LTaeer £ ¡¦§¥ªª¬¯°°¶¶¹»¾ÂÀÁ¿ÂÄÄÅÅÉËÍÍÑÎÑÏÏÒÒÓÑÓÕÖÕÔÕ×ÖÖØØÚØË! 4}|}~ ¦³ÁËÐÓÖÒÏÎÊÈÈÍÑÒØÛÛÙÖÕÏËÄ»© |zwwssssnkiia`]W^eehckhb`WUYSUY]`ehlmjicfb[ea_aZXUYaa_c!! "!),3Ff~¢©ª®°ª¥y]E%&3<Ghx¨¯±²²°³±¯´´²²³¶²³®¦¥|mY778-,4<B,(0))(/)872.00-49?>?50-118CPCG::23<<3,/7.1CFKB,1+%('&6H5+'-?WjHS9$">l]AKP[agzxyxsavviq {C)1=p`'))F6%.)-BGIA1,1LD24?;>G}iCA9//.3-129CGKSXZ[kqy{z~ybS60PWeffv ¡¤¢£§©¦¤ª°¬«ª®±¶¶¹¼¼ÁÀ¿¿ÇÆÅÇÇÉÈËËÐÒÎÏÏÐÐÑÓÕ×ÒÖÔÖÖÖÔØÛÚØÎ)!<x } |®½ÈÌÏÒÑÏÍËÈÈÎÐÓØÛÚÚÕÕÏÆÁ¶ yzwsspqolkigb\[Z^bdgdghaWUU[WZ]cdkdkghhdd_[af[\_XZa[^ac''"%'(*,/Mix¢©¬ª¥wa5)-2FFcw ¦ª®²³°³´³²³±²²´¯±µ±©¦ ¤wm`497+317F+(0.,,-)90),1,2=IKC=0*4222@C@C=I8?A0**,,++79JT,')(..);L-)&9Q_M?]]4&-VlVGNarakttx{dji`ruuzk1+1jv)*0:)''/;D>=?;.4L=.<?=<1NTFC7-2/**,-:CHPVX^cktw|}~tXM73RVighy ¢£¤¥§¤¦¦¨«®¬¯°³¶¸·¹¾ÀÁ¾ÃÃÄÈÇÇÈÈÉÍÑÏÍÏÏÐÑÒÓÒÔÖ×ÖÖÕÔ×ÛÙÙÔ³E >z | ªµ¿ÊÌÍÊÌËÉÇÉÍÐÖÛÜÛÖÕÓÌÆ¿±¡{uvvxqpmlhphgaZb_]baij_Z]TLRXWfcfkjjccci_]]`e_]`ZY]Y\]``&&%)"!&'2C`w©««©¥y^D.-4AM`w§ª±±¯±°²±²±³´±·°±©¨¢¡£qi6;7;4'45++,.)()492.+3-:EED=B1(0604@G==8??C@-+)161133J[5)'*+-3>B.#)>^[>6UlT<=>UhfSOeNAUegnj]KZr}X.6Xs+,6/*'0.<D<35?)4E>;?68+0;>6B552(,--39MOSVUchiqx|~z} |xmSI58V[gnl} ¡£¢££¤§¥¤ª¨§¥«¬±±¶··¸¹¼ÁÂÁÃÂÇÇÆÊÉÊÊËÎÌÌÌÑÐÐÓÑÑ×ÔÖØÖÕ×Ø×ØØÕÀg#E{} ¬ºÀÆÈÆÈÅÈÆÉÐÑ×ÚÛÚÙÕÑÍɺ¬xrtrqospfmkbaa\Ycedje]VMIKNU^cgilhlfcdc^ZUbc[^a_c]X]ebc!!#$"",2B_t¢¨««ª¢¢zaI5/4<J[u¥«©¯³±±²±³±¯±¯´±µ®±«¦ ¤ zt;78=,0921','&'-4<.(,;FRUHB:0/-4).1D@;66AA?67263316/9<K6$(+,',?E3,/OoX3;=amQ411]}jBGVX@\}riaB=AcrR6Yl6;4("&(CE6A0-+$;I:D=37434:7E63/5*4149ENOV^jlgqw}t{~~|hR;/>P]depy ¡§¡¥¨¤§©§¦¨¬²¶¶µ¹º¾ÀÂÃÃÁÄÇÅÊÇÈÉËÌÍÌÌÐÎÐÕÐÓÔÖÖÖÔÖÖØØ×ÖÕÎ0Nyz¨¹¾½½ÀÀÀÄÉÍÓ×ÛÚÙÖÒÏÍǽ§ }tsqoprmkeic\`^YZ`eff`YPFBLP\dhhhigefae\[W\]^^X^`\d[_d_[%%" &&"&5>Zu¥«®©§¤|lF..;>I]y¡¨®±²²°±®¯²³³¯°²µ««§¡ y71GF0(=3**.%%')95247TcdV;86/,--,4>D<=>;@6101@/0<36(3/CV)#,.-4=>5&,VcFA6DMfbA'%<}~ig[s} nXPE7@UswoSY`.9G<$&%3B=:65/);>6I:5614113B30'6,/4<@JPWX\mhlqtx~}~v_J74ITbgls} ¡¡ª¦¤¥¤£©«ª¬°¶³¹º¼¼½ÁÃÁÁÈÈÉÈÇÊËÍÍÏÏÑÎÒÒÑÒÓÕÕÓÔÔÖÔÔ×ÚÕÑ®IS{ ¥´µ¶³»ÁÈÐÔ×ÜÚØÖÒÎËŸ¢yosljpoiiedbWb]\`efha^ZSNFNS[cfnniecgg_X[W[^\_[dc\b`ba`T++(&(#%#/9Vm£ª¬¨®©¢~eS445BN[r§©®±²µ¯±²³°²±±µ·ª«§¥£i93WO62=**&.&,,/12:HQcZH9312-*-+69CE?=M;/50-2==5:87/-7Dg5**276/:A5:XI>E;FKirN'&%G kwY~slbZ<CBrlblr:^v+!*;<@85;0.D<=E86.04607:4-$/-18AHOTQY`olmtvz|{}~||wvZE5>OY`dox¦ ¢¤¡§©¬©««®´±¸»»º»ÁÁ¿ÁÃÉÆÉÆÊÌËÌÏÐÍÍÏÓÒÓÔÕÖÕÔÔÕ××××ÕÔÂk\y{~ ¥©¬©²ÁÉÐÕÖßØØÕÓÎÇÀ´¢{opilkhhmacaX[]_di`a_]ZPNFRXbfnpjhcfecZZVXaZ^`^eY\acg_YU,,,/(%#(,8Qh ¡§¬«ª££lXA65CO]u¨©®²¯°³²¯±°¯²²²´²ªª¥¥ _A9eU4,7$%%)-#(;6@U^]O8-2'*.+.(+6>BA==>43.914;E>:<8,3.7^C'4:<5*4MMRI69:<<:Poh8&%M¦¡tl¡jr[dUG;BDiqy{wM¤&",.5;:41/5?1>?63.9500438,.,-24@KUVUVemsvtyz}~z{vmW:1BTaagmz ¡¡¤¦¥©¦ª®¬®°°µ¹»º¼¾Ã¿ÀÅÄÅÇÉÇÉÎÍÍÏÏÑÑÔÒÒÕÓÔÖÔÔÕ×ØÖÖÖÒÉfxrz ¢±ÃÌÑÔÖÝÚÕÔÑÍÊ°xqqspkfeg_^ZT^`bhd^]^UMKKTS]cfonkihb`bY]XV[X[e]d__^a_[QK**& $$(2Oi|¤¨«¬¦¥r^A::DI\q¥¨®±³¯°¯¯°±²³°³±«¨¡£¤b?=`W952'('**+?NNZ\O>@0..0*,))++2BI58J=13/66;E@CFH;3)++G?17=2.)-S`a=105778Ef{Y6#%+HcpUnso|WTK;1?3^zs||s¨ªY&%6-1:3).'2=73010137/2-)350'/2:?JPY]bilutzyy}~{}|~{rbP8,DT_crv{ ¡¡£¤¢£¥©§¬¯¯µ¹¸¹¹¾¾ÀÀÁÃÅÆÊÈÉÉÊÌÌÏÏÏÑÒÓÔÖÔÖÔÔÓÕÔ×××ÖÖÍ«mwxovx| ¯ÂËÓÙÙÝÚØÖÑÌƹª|vponknea^aYZZd]d`bdYVRNIOSUagllokfb\^ZX[YXZ\^bba_[bh[UQH'')&(( '26Jet¦©¬¦¢¤w]G9;?K]q©§¬®´±±¯¯±°¯´²³±²¨¥«hAH]\/=22**1*0DPPOD6021/102300,29EB8CNA;73<>:D=DE>:;0,/?I:H9(**4Lnh8)+.390C^h_=C**1?:8P_lt~jRE<,93IWt°9$-21;90-),;>7044.32.:+//3/.1/8=CHP^ajmqsvvy{~{}z{|oVD67N__br{ ¡£§¤±¯¯¯¶µ¸¸¶¼¿¿ÁÃÃÅÇÅÅÉÉÊËÏÏÐÒÑÔÓÔÕÓÓÔØÕÒÔ××Õ××Ô¿~zijmsyqxx{|~£³ÅÍÑÚÝÜÚÙÕÐËÁ·¥vtsrnkg^bfa]YXZ`f``_UOTKJRXXgifgled_a^[YWT^V]\`^_]acfZTKE((%"!!-)+5F[r¢§¢¢¥pdC2;?NXp£¦®²°®¯¯°²¯µ±²´°«¤¢®k:N]a398+*1+128=7<44392,3,050,11:C77OIE7610<CB77?7E?=38CFA4/'$0>UoW5,,'+74GjkbACO*"1/,68DbnR9,01?EH|³«´£j),324;=.0+4@69A450370-.+4.0*1,8@KPPUdpmmpus{z|z{|{yiR7/CUcXkt~ ¤¦¤®®²²¶¶ºµ¼½ÁÁÀÅÄÃÇÉÉÊËËÏÐÒÒÓÑÒÔÓÔÔÖÕÕÖØ×ÔÖØØÊz{vabgkphoputw~~ ¢¸ÇÎÖÜÝÝÚ×ÓÐɾ°£xrnqmljje\`S^[]fdf`VTXQLOSZ\dhijbg_`]_XRX]WX]`a_\Y^b[[TG?%%)#'#&+%.Ogª¢¤¢ v[F:;=M]p¢¦©°¯°¯°±®®±¯°±³±°¯§ª¤¨b8G`E=:2))1*2+8223.0500/1),<.*.4;=2=J>A8<2B=O:=.8<2496?:>.',#$*;[gA7/()-6LWuyoZ4RM%.A30)(7Ps[<,7;SO4Yqx«ª©z5!'-00;/+'&2F7472,1220*((,05/43:@NJOZhoqstuuz~}{{yo\B12EV_`m} ¤¤§§¨¨«¯±²´¶¶º·½¿ÀÀÁÈÅÅÅÊÊÊÌÍÌÏÒÑÓÒÒÓÕÑÔ××Ö×ÕÕÔÖØÙÑvo\VX_o^gjnkquwu{ ¤¼ÊÎ×ÞÜÝØÕÔΟ¨|utqqlibe^[[T]^fib`XPJMJOT[]abikgdifga_[W_^Zbaea_\\_XXPID;''&*' "(&0Ni¡£¤¢¡uaIB==LVn| £©®°²®±±°°±°®²²±®®©¤£}];K]@4A6.*))(-./2,1370,*.,7>4+2=K59CA97647?LPC9.-4915AD7,+)'&)+GhP1461,+6Hk{xwoC6_=+=:3))$>]^3/5BWYF\BW[&!13196/'%*9?8334*+7/,,%.(/</+1<FIQUcknonvvxxvzyylPB43M\[iu} ¢¤£§©¨¬«®µ°³¶¸¸½¼¾ÀÂÄÄÄÈÉÊËËÌËÏÐÏÑÓÓÓÕÓÕÔ×Ö×ÔÕÔ×ÙÙÕ¾rjiVNS`hZ[\cejgnmwx{~ «ÁËÐÙÛÝÝÖÖÒË´¥uqqnngba_[W]Z]`ccbbQNMRMTYYegfheeac^a[XTU_[_bbfc_[`c\OMF6='''!#)*3Oi}£¨§¨¥pZG;@AM^n ¢ª«°±±±¯¯±±²±´²³°«¨¦ dCR`ABK36,1(0-.141<3.1.+,*.7.+;K>,@G<63>:9D`UK;3*(1+/13/13.+&'+RZ7,766//6Fd|yti8CU<040#./6Exu;3/>flphKMU{K)'105D</%(&15/13.,'0,(-+-,26:;7EGLSZcjoqttut{z}{zyviG849RY_i~ ¤¢£¤¢©¥¥ª¬©ª®¬³¸º»½»½ÂÀÁÁÇÄÇÊËËÊÈÐÏÑÕÔÒÑÕÔÓÔÕÔÖ×ÓØ×ØÚØÉ gZ\MKOUgSQX]^^dcnopvuxx~~ ³ÄÎÓ×ÚÜÜ×ÕÎÇÀ¯xqqhhd_XSXOUV^aeg[WNMBFJU[clmhfea]`acZTWZ__ekhg_^[YZVKGB>4%%'!#!$#+5Fgs£ª¯¯ª©¢oZD==AP]l¢£°®¬±°°±®±±²±µ´±°©¢¤|aHMaI>D,'(-.,32354-80/0*1,0032=H91EJ=40.59GPRH;.,*1*)/871,,)+&4PY0'1AC618=Oy}{}I2EL@,' '/7<I[bG1)=\xy\[R:#)33<<5%5+14.03/2..-)$''),49>=CFFOU_iposwsruy~{{yqVD62=Q\an ¢¤¡ ¤£¥¦§¨ª¬©¬ªµµ¶µ¼½»¾¿¾ÄÄÄÄÈËÉÌÎÏÑÒÓÒÒÓ××ÖÕÙÕ×Ø×ØÖÙÜÙÓ®uXRPNEONbLLRWUVa_bcfgkmpqs{wyz} ¥¸ÆÏÓÙÚÝÛÕÐÌż~uplgf[VMOMNVY_febZSMGEKSO[anfead_[bd^\]Y_[ahficZ^^TVQL@=A5##$!()#(0G]o§®¯®°¨¢xaB>BBJWl¡¥¬«¯¬°®¯±²±³³²³³©«¦£ |waSN_QK@-%(*)/3:;A6/160:+-0,;6<FA38E@:2559:LAIN972'0(*761/,()&(;ME),/>KP?7<Hd|js459?E;'*-8@NE9B2*@V~n\dh_u/'*30481).(/2+,/629)*#&%+4-4;CEDFMO]gnrptsxt{zz}}~{vbL1/5NX^bw ¡¢¥¤§§«ª©©¬¬°±¶·»¾¾¼¿ÁÁÀÂÅÇËÎÌÌÐÐÐÒÑÓÓÕÕÔÓØÕØ×Ø×ØÛÚÚع~dQRQL;=IMECPQPQZY]YU`bfcinosvuqu|~ }¯ÁËÓÔÚÝÝÚÔÐÉÀ²¦yumefY[WMKXQ\]`c_^WIIGJMURckkid^`_ec^]_\V\^hjiia_^]R[NMD<6;$$&%##"%)0<Ui~«®®¯®¬¬§jK?<:DTl{£§¬««°®¬±±²³±´·²¯««£ omQESSU:+%&(24:B34--,/,/.+/4=?DD429DB@03219B9AV;5300./*-',7-*((9:38(:9Chba_]WytS50/?XJ))9A2:40-89R SDZnf}S(&0.324,"&/333+13,*)./$&-122<KCHIPT[jotrqwtsrv~}yzznU2(1HRZ]n ¡¦¦¦§©¨©«¯«¯°¶µ¼¾¼½À¾ÀÁÂÅÉÊÌÌÎÎÑÏÒÐÒÕÔÕÓÓÖÔÔØÙÚØÚÜÚÙÄZIIMOJJULBCFKMKOQ[OUYZe`_`akjhfnnuvtww|¢ }y~¡¶ÇÍÓ×ÛÛÚ×ÓÏǹ¬xnhb[WRRGQPQ[ebe]YWH@HKS\_fhgb]__b]]^[_[^]]enjfb^^W\OKE:9:9##)!#!.33Mk©ª®±°¬¦oP9:<ERo} ¢§«®®°²®°±²°°°µ´±±ª¦¥~kfWNR\dD+&-*+0B:.,-'+2-+/-34?GI50-@F?36876C@9DQ:765/,-(,%(61)+(>/-34SF+Iu|oj\duC:15HcK+1F47?<,<HjM=Zhr?&-*1931'&*66-*21((2*+(&)-.02>HILNV\eusvywqvtut|vuyq]I0,9KW[fr ¡ ¢££¨¨©©¨©«¬°±³´º¾»¸½¿ÀÁÃÄÆËÉÌÎÌÐÏÐÏÒÓÓØÓÕÓ×Ô×ÙØÙÚÛÚÚÎWDNSSCYaMGJGEEDHLROQOTZ_WY\]^``ddilnnnosz¥£ ¢½ÊÑÕØÝÞÛ×Ñɽ± {rj_X\TSQENQUW[a^^TPDDNUWdaisf`_]Z`\_a`Y[``aeijc`aa_OIK=6859""!!$&3+6Ec£¦²¯±®¨ v\;5:IUk|£«ª®¯«°±²²²®±³´¯¯¬¨¤~|si^JL\^D')*'->C3220.//,7./,5AL783-CE>4-38=<G?CH=;233.,/*.0524422--.JuA!0I{vp`a{hzV<09GUH4BJEJK8Ci?->EU\32+)323)$&/90/+-,202),'))*8966GNNQU]knqvxyvtwtwvx{}eK6&+>WX_oz £¥¥©¬¨¨¯¬®²¶»»»¹¾¿¿ÂÃÆÇÈÉÊËÌÏÐÏÑÐÔÓÕÔÔÕÖÕ×ØÚØÙÛÛÚÕ¥^IQTXFW_SIRPQNLOHQJILRRVSSRROXUX]\b_fcddon{z ¦½ÊÒÙÚÜÝ×ÔÎŧwk_\WVRIKGLSYbc`^ZSHHEPYagchmf]]_\a_]]\W__eciee`\d]WKKE<726<!!$#%'"%'6Fn¡¦¬±²¯®©x`<5=MUi}¥©ª«²«²±±°¯®³³²³°«¥£|lk{\DRY_;'.+,0?<(**--+/,,,/39HH4-1/DE908105AJ>@G669946-./+0+89911%10Gt/"$2_t[P]jpw¬pUN70/ALCZV`[R^bu.*64;777573.+*%(1A.((,/-.+-+.+1);::?HTOS[dspwsy{zqvtxvxts]9--0EYcfv ¡ ¡¥¦§¨§ªªª¬¬®²¸¸º¶½¾¿½ÅÄÆÉËÈÉÌÍÏÎÏÑÑÒÒÓÓÕÖÖ××ÙÚØÛÙÙÛ׸bFRTZTX_RSQSRNQSJRSMJJLGMHHNLNPQQSVN^^Y`dlmp}£ ÀËÓÙÝÝÛÖÓÊ¿³xka_UQKHEJPTV^`ZWWQOKKPS]dhkgcd`_Z_a]Y[Z\g\fioi_gbaZWOEI@:-54''%%""'0Goª«°°±¯ª ~kC<@FWgx £¨ª«®±¬¯µ¬°´µ´µ¯®¦ r`p`D[[`8(##,37.''0.,(--,..@EG@3,./=GA02335?D@DG?7=6B<+))&//12544092BU& "(DfaITdd¬jpX*17WgZmsb?=Z=.00-/0760>13-)&//51)-++6,.),5)+./<:?JONW_kqwzxx{vttywwuqcC/*&2E^ily ¡¡¢¤¤¥ª©¨ª¨¬¨±µµº¶»¼¾¾ÂÂÆÇÊÊËÈÌÎÏÐÏÑÒÔÕÔÓÓÕØÕØÙÙÛÙÛÛÙÆyMJTVQ`_UZ^YTWRSMWLNDI@KGJA?DFJHLGKHQPJISWaeuw~¡ª¥¡£¶ÆÏÔÛÞÛÚÓÐź¦~pbZPLH<>>FIPUX\ZSVOJLLP\acln^V][^`]_d^V[Z[aegidX^b^\QPN?6:335''&"!!""*4Gg¨¬°°²¯¨£{jE5=KSku¤¦ª®±±°²±¯°²´´´¯°©¢^RqeSY]_9'%)2;4)-1/..)-),0HHH?60/44LK9/04439FA<GC:8EB<5)(&63423:8461-3%&&'.NV^O`uq`¦xD>LUgb\j@74('80++.487HA3-++49./*+)&)'&)-+-+46=;DUUP]fiqvvtxwvvyxuwjO7%'-ERijq¡¢££¤§¦ª¨©«°°²²¹¹¹º¿ÀÀÂÆÄÆÉÈËËÎÐÎÐÑÒÐÒÓÓÕÓÕÔÔØØÛØÚÚÙÍJFNZSd\_`b][UQXQ^QPNNHLC<>CE?D=?@D?AB>B@RVX\kwy{«¯±ª§¬¼ÈÒÕÛÚÚÙÒÊÀ° si^SNJA:>=FKNUVSMMPOKTRVbfjmn^WYU\Z]\^]W[[`cghgga_\^XWKB;;:78<))#(! #")0Efª¦°±¶°ª¢|yF8;FSdv£§«®®¯±±²°²´³·¶¯«¨¦¡qKRy}dQQY\3(#0;:/*0,4+)&*-1=X@<:5+*--PM873/-9BD<=G>AEC=3:4').7=*847520$$+$,4.);agZf{~q}gJqWjWf}s]H1'$0+..174;4,.(--21)((&&-*,'),))/37;;HXXW`hpuwrruxtvvxxulO5'$/4MWfoy ¢¢££¥¥¨¨¦««³±³´·¸½»¼¼ÀÁÂÇÉÇÃÈËÑÐÐÍÑÑÐÐÔÒÔÖÔÕÕ×ØÙÚ×ÚÛÔ¬XENZXd\_b^aW]^`WWRXLUMODKD?C?;>4:8624/44<BJP[ehptw®¸»ºµ¯ ¤±¿ÉÓÔÙÙÚÓÐʾ¯|j_TOF??9<AWPQYYLJFJQMU\Vkloif`[]_Z\X[`Y\]Z]efejfac][YOE??;9745++*)*&,-))1Gd¢¨¬³´¶®«¤nH=9K\cz ¡£¦«©¯²²°®±¯¯´´³µ²®«¦dB_vv^STQV9)-.88('&'-,%*+09MR52;6/+/1IF61)16>GC;8KB6>;?97<6*)2>+-:>>:9,)/5<8.$,Glj^o{shs_f^ONcp]I/(/(+/036=3,.,)+61-)'&)')'')+',,2<DFKXY[gelvostuxqytvwt_D,$'/GY_hs ¢££¥©¨¨©´±³±µ·¼»½»½ÀÅÈÈÈÉÈÌÌÏÌÍÑÑÑÒÒÓÔÖÔÔØØÙÙÚÙÛÛ×»jKSYY`\kcbca]`__[ZYTWYOKIIA@?485285*+311189@LQbcgv®½¿ÂÁ»°¦¥²ÃÍÒÖÚØ×ÓÌö¨o]YOL@=96:GQNPUSNMPMU\^`gilijc\[[WVZVUX]`]Zcegfgcba\]QL<8;8455322/..-52865Pi§¬±¶´¯§¡lL><OXg| ¨ª¬¯°¯®®®±µµµµ°°¬¦¡eMZx[FCFF0)*5=2)(&,0,'+/7JE>9/4>60.0A@6--+1EPF?3:?698?84=:4123-')/8?=4*,280/$(,LcmmqxduknrPX_9CnpVD*')'0/7;1.*70-3..)**./+(")*-+*,3:CDQU[^ilqrrwnwwsxwsqhG2+%+7O\fr} ¡¢ ¤¤¢¤©«±°¯³¸¶º¹¼¼½ÄÃÆÅÈÆÌËÍÍÎÎÐÐÐÓÑÔÔ×ÔÕ×ØØØÚÙØØËNQT]_^dfdffj_Zb\Z[X[TRPMFD??=;:49/-/.1--,15;A\Wo¥·ÄÅÃÁ¼³¨ ¡¦¹ÄÍÒÖØ×ÖÓÌÀ±¡ykWMKD;9;?>IPMSRMOKINZ_chdojqie_[[XUYVSY]^[aebjibcb`XULI;:<83302000186<<697Ll£ª³µ¶µ°«¦lO==G[dw ¤¥«°°¯±±°®¯±³º·´¯¯¦¤`Y[|_D><<2'(55*/,//9,+2A595<//9B:,24=A;0.-6AEB>7<>=>;80*:<C=20,(-'2=>9=/371-(&,,C\jho¦yeq eYaMbZKc^NK-)'*,572+(,-03>;:9,-+2(&$***((.<CKGUYaihqnyrsvvxwvzvkN6+((4BTdm~ ¡ ¢¤¨¤¦¨«±¶°¯³´´··¸¼ÀÁÄÅÄÈÈËÌÍÌÏÍÏÐÐÏÒÕÖÔÔÔ×ØÙÙÙØÙÙÓ¦ZNV[`admiiffefeb]^Y]XQOMHIJJ@<:5/41&'**#&+546C`{¯ÀÇÊÆúµ©¡¡¨½ÇÐÒÓÚÓÓÎÇ»¬ iYRFJA:9=JJKNRXOOMJELWZ[^dkkff^_YV[]QS\TWZ[afcmfid^^TTJH8>=84335..9FCGECACDUgy¢¨°²¶··²±¬hU>AJZhx ¦ª®±®²®ª°³²¶¸³´°«§£\^XhGA<1>+-27%,(+(31:?7-*022/7?-(,-17>8+*7HDG8??8:97=@808B5/&(,##'0AH:'+6:5//.+%<\gh¥puIYb^yt|pU@(%&74770)'%1(+*-*)&$%.'%'((/20:GLFMV[bjmptstvvutxyjV8,)+/>L^kt ¢¤¤¤©¦¬±²¯±³··¸¸»½ÀÁÂÅÃÄÅÇÌËÍÎÏÐÒÐÏÒÓÕ×Ö××ØØØØÙØØÔ¸fQV\_dbjkfhdfhffg_`\ZXVQRQHKE==7253..%'"#%'.6Ae©¿ÅÊÊÊĽ«°ÂËÑÖÖÙÖÓÌÀ·¢x`OF?;9?9BFNMTSTRG@DJSZZgeolkfb\YVVSSP[OP_Zaaklhggd\\WRE;:A66:439;;MQNLLJFHFVg{«²±··¸´²ªsZE<NZkv ¦««²°²²¯®¬°±¸·²±¬¦¥£y`gVkIC468''2A,+524:DB631)*105;;--2/.7F@21;G?>6D?44<9<@1320,*'(4+&).<J90&7P:0//11&1RerPQer|miQ-(!(277+%(-+-*#(),),(%'+&0*,04;JKGQWadilstsqwvvrwwo`?/+)*5M_dw ¢¤§©©²³±®±´¹¹»¼¿ÁÁÃÆÅÅÄÈÉÍÍÍÐÏÑÑÏÑÓÒÔÔ×ÓÖ×ÙÖÚ×ØÖÊTVX\aejjhlphghg_dcZa_YXUSKRH@9>9.10*2$%%1&#*DsµÃÉÎÍÔǹ¢£·ÅÌÓÖØØÓÐǾ«{]VKI5;<C:IGNPSNOKIBEKW\`nonja^[YTOUTVUXQRX[eejonrgc_\VJFC?H94446=IITVPTOTPNSZfw¨¬³·¸¼µ±ªybICSThu ¥¯±°²±¯®¯±²¹¶¸°¬§loc_rIE28.'556,.7.GOH?0*)-+/.4?=6./754?>48?E<65AK97N7C>210./*/)43,'%+4<8.6]F5<311$$3Mhvxh\_ze?]xl-*+,38-.4)2*.)-()(/&%$+*1))-.<JPOM[Xfhrvqwvqt|wzttcK4,,),AScqy ¤¢§¥§©°®¬²´·²¸·¼¿ÂÂÄÃÅÃÉÈËÊÏÏÏÐÑÒÓÑÑÕÔÔÖ×ØÖÖØÙÛØÍXVV[`ebhmiilmiodee`ebZUWVPPPGJ?861)-/,,%# $,Es»ÅÍÎÐÐÅ´®¾ÇÏÒÕ×ÔÐ͵bKJA?52?=?HIPMNPPFDLLTY^goqnrY[RZQUQVPTVRWY]eglpqkd`VXVIIGD??;44<?ZZ]XXXQSXW]apz§ª´¹¸¹·©wdKCJZit¢¨«°³¯°±±¯²®¸´¼µ®¦ oq]l k]K0/-%332076;AO670313)+0734<47.-4<5/<EG:1;CH887=DB3-.////'.3+,.'(5F94ML=5*/),)*=Hlvsiqic]Wo}v3+12451&-*+*-&&$,*$%%100*-*.5EPNMO[aenrtuzttu}xtx`D//((+8LYny}~ ¡¤¡¥ª«ªª®ª°´¶²µº¼¾ÀÀÃÅÇÅÆÇÉÊÍÌÍÎÐÒÒÓÐÐÔÔÕÕØÖ××ØÚÚÔ°fQS^^eaelikiphndgdb__aZ[^XVMHIA=F:0,/-*((&$*Dl¹ÇÍÎÐÍÁ¬¡°ÀÇÍÐÓÔÒζ§pQ>>76<77@DHINNMIIFIJR\_giksgb]VTPJSTUQRRTOT`fkmtuff`YZVOJPME@<>86<__]^XUSZ[U[hsy¤©²¶·¸´³¥kODRWiv¤§«¬±¯°°°°°°²µºº¸±¯«¨¢p|`mz_TV/'&+22(:B>9<908--4,.+502-4*4/8+796BHB25=DM9;D;@=0/*1//1*-566,%#6LI5=O;521+11+DDCq}¡«¡ s[eTdtyu6/.5--)/,+*,/0+)-*(# '''),+1>IOHLPVbhrsvqwswu{zrf>,*)@.:PWevz ¢¢¡§¬ª¨«®°µµ¸¼¾¾¿ÁÂÂÆÅÈÆÉÌÍÎÎÑÏÐÐÒÐÒÓÖÔÔ×ØÔØÙÙÚØÄvOTTXbhjmlfkkllehhg^a^TZ]VUNJQID=<;5/0'-%(,+Cl³ÃÇÎÍËÀ«¶ÀÆÎÐÐÐÉļ¤tYB6@65;A?JDLJLDDDGBKTXcfjknf`\[UURRLMQTNVXY\ckuqroigc_XRLIOHD><:9;BYYZ`]\Z[fb]hwz¥ª²µ·¸´®«£pTKWbes ¥¨¬°±´³°±®²°µ¹º·²®¨¦¡rpap}|c][9-,((6,2>2/340,,3301200-3313113022DA8+/>IP;?I<>AB*,/0)*,)1897,(';PF5G=7<4/,55D@CF[t~eGXgxK2-56-1&/+*,+++*/($%(##)1//17?MMMKR^hgustp~vuwzwbK*($*-NNZctz~ ¢¥¦©¨ª¨©©®®®±¶º¼¾¾ÃÁÅÈÆÄÉËËÌÍÐÑÎÍÏÒÐÔÔÔÖÕÕÕ×××ÙØÖÈMPUZbailljlnllihbb`j]WZ\[UXQJRKBB@;/-(-*)+-Jp®¿ÅÊÍɳ¬®®»ÃÇÊËÌÊÀ¸uUG95655:=C?EQSCAECELPSabgmmnj`XQPTMPLOONOXX`ahjruveb_`YUPSOTDA>8<;ECTTYYZUZ[dbdl{¥«°···¶´®¤sZERbfq£©«°²²±²³²±°±¶·¹¶²¯ª¦ fmbr|v[VR>--*442/,+.1156,--0*+874C?1423*-*.;12/9?BN<4B71<<;9*+/-2*,6A@72#0=K;JA=<6:BAA9>GO>FJdu^bwXLA3/35/++*+(.-(-01(""$#%*-6..4:EIMPSTlkjtz}svqytuf>*$##,=LVeo{}~ ¡£¢¤¤¤¥§¨ª¬°¯³¹·¶½»¿ÁÂÁÅÄÇËÉËËÏÐÏÑÏÐÑÑÕÔÖ×ÕÔÓÕØÖØØТbJQX^_fkfnkkmmpkkhcc[d[_YUNPRPJH?F;53.,5199Gl§¹ÂÈËËÆ»¼¹¹ºÅËÈÈÆĵ£wZA;875167;EFGPNFCAFMITXakjkib\XQLHMJJOJKOTW^ccekrptjb_^TSTVVQM?<;9;DBVV[^[Y[bcfnr{¤¬®³¶¸·´®¥w]GQ`gt£¦«®²°°±µ®²±²´¹¸·²°®©¡dnft{vZXQ47.39-)-2..410-.1'3+.456A<4203/10*0+03:HFR;1:72>AF@-(011%&69?F:%-2:AIJ,621?CV:;AJU:;HsLh{x{>40*013/33).65)+&2)(&"!&'125.6<HIKTZX[ijpq}ywxsuo[>/#"!*4OWfku~ ¡ ¥£¦ £¨¨°±®³»·¹¸¹½ÁÀ¿ÂÄÈËÈÌÌÎÎÏÒÏÑÑÒÒÕÔÕÖÒÐÓÖÙÚØÔ¶kMSV^`hjninmklhehbkc^c^\^XRUXUMFGA>;644-078Jc ¡µÄÊËÊÇÆÂÀ¿¾ÂÆ¿Á¼®¥yXE>6334456AGLCLBAEDNNTZ]ckkl_cfSQLKLPRRMLRPVZcklrsshghe[VTQRSIE9:>@>C@VV^ZWbcbelnu §ª¯´µ·¶³°ªw^HY\ft§ª©²¯¯²´³±µ²¸¸¸µ³±§¦\Yo{xq[XJ,...90-+0.1+29/.2-0-2627A;.,:3760/*,+2<;?D969/.FHRS51271+%/C;UK8*./8IX33;/5Gh[70ESYEMwGHdxk4+,/16-,)1+/7+*+/,,)$"!)+,356BOLGFV_chinwyvsuurY:,!#*2=L\chtx|}| ¡¤ ¦¦§¢¤¦¨©¯´®±´³¶·¹À¿¾ÃÁÃÆÈÉËÌÎÐÏÎÎÒÔÔÕÖÔÓÖÓÑÕÖ×ÙÚÔÈOQVXY\egjnqqlmhhhgcbb_\_WUWWPMLKKCBA?4;6:>IZ ·ÂÈÊËÉÉÈÁþ»¿´±© viOE@24695:@EELEACBHGWUb`bfhgfa]]WTJFPKKNRTRUZ`hhlrulia^\_VRRLPDE=:<GHGFRRXY``aiimuy ©®²³¶¶´³¬¦yeJM`ft~§§¨«±±±°±°²´´µ¸¸³±®«¡VOqvmYS?-'-A/+-3:/0-4../160++2.4A<902-500235.7N;<E71,34KQZU-(477(!)<@XaG/,07?^L,:/.@]nK08@g]hPBUfys@2330//-20/21.*'+,*'))*2--/8:IKEMQ^geenqyywpqgN*)!'+2@LRdery}~{|~} ¡£¤§ ¢¥¥©¬°®±±³¶¹»¿¾¿¿ÂÅÆÈÈÊÌÍÍÎÐÒÑÔÖÓÓÖÕÔÒÔØ×Ø××ÎaQTS[a^gfimloihigl]]ae^b^YaUTRKHTJHFCBDLJKO`¶ÄËÎÏÏÏÊÆøµ¯§¡t`TK:624496@@BJL>AAAALTX_anihig\XZMPOJSLMLRNQYeblrruohea^^bVYQIDD>4?=DJGEIIV]cckkltz{¨¯¯³µ´±««¡{fKR`gt ¨¤®®¯°¯³²³¶¶·¹¸³³±¬§¡ZM{~wh\L4))(83105/,-03(4-;:3**906A70-.44-*013<BP@DT@+248P[WX2,./2-'$5IXoYD4044Qb-0<89Wm`6:Dcv~^7ESS]mhP;,.5.,0*/,+-2*)+'(%%/%/A13=JMPOOadfhblmwtrfW8'#' '3IW[ehksz~{|| ¢¢£¢£¢§©§¬©©¨¬¯®±¸¹¹½¿¿ÀÂÃÅÈÉÈËËÍÏÐÒÐÒÓÖÓÖÔÓÓÔ×ÕÚØØÔ±jKTV][`gcgkjkginge`a\gdc[\\[SPPOQNIMKFNKJPWk¢¶ÇÌÑÑÒÔÍÈ¿º° rZKIE<7665D?EEHHICB<HMQRXcjmofeeaUULSJHLKMLOQZbnipspokff^Z^^ZROKLC@<ABIA<;DDQWcgqpsrtz¦¬®°²°¯°¬¡ybQS[iq¥¥ª²¬°±³¯±´µ¹·¸·±¬¬§¢cNxsl\P4)5*:6)/354-18+07@85-4159C81*-0,5..5F>QQBOL=,-9=LVVT=*),76+%/THYgQ>7:9=mC*8K;BXWOCPWxv@:O05Fbc?*1.,./)*114-++%*#"#%+3/2;EFNLQYhbfmkjkreO6'".#+.;O]bfipuuw|x¡¢ ¤ ¥¨¥ªª¥§ª¬°¯´²·¸¿¼¿¼¾ÄÇÆÅÊÉÍÎÏÑÏÑÒÑÓÓÕÕÔÒÓ×Ù×ØÙÕÃ|NNWZaf`cdihkgffleh`\]ch``bc_SURSNMLUOVPOW\sµÅÏÓÕÔÔÍÆ»«¤}b]UM<@6545A?CLQJHFDADKRVZagjkmei`[TIIKHJIORMV[[chkouqodhb^XbZYQOJD;=CFFB>7<??Q_\fqrvruu¦««´±±¯¯«¢vlQQ_hs£§°°®¯°±±²´³¶·¸·¯°©¥ lKi~wuhR+,--43*0>:/-@6-.9A51)52168=721/',-1+8FZT=`^<20@:FRV[S;*-+-.+*C[OGTHA<H2]b2.DE:4QPMEP[kMX:$3MiG,41(4.+-64-)*'%*&###*'+07FKMQU[eenfdhTN:+# ',;JU^dfiosuvzz ¢£¢¡¡¦¨¬ª¦©§ª¯¯³³µ¹º¼¾¾ÁÃÅÅÆÊÉÉÍÌÌÌÑÔÓÔÔÔÕÔÕÔ×ÚØÖØÖÊQSPZ[__fhbmjefgkjdcecee^c`bXXSWTPUSZXZURR^u¢µÃÎÕÕÔÑÊÁ° p]UMJC?<6<;7JECJML<ECENVWWedpjihe^\TOKGGAKLPLOW^]_mpttrkehh^W\`XJTH9;A=FNMEA877PX]fpnsstpuw¢¨©¬²±®¯©¢viZ[^inªª¯¬¯±²°´±´·¶º´²°®©¡mFayllgL,'&-2'+.3;29?@*(:B:9-219F9G?6+&'-+5*3FSEAzT;4-A?Zb[YTI.'/(1,,BaXA1BF54,FvR+;BM10[RJ@XjH\I&5HX[4(*%&&-,13.&'&$/'$%%))-:@QQTR_be_`[M>,0-&./-@HTbeihnsvxwx}{}{ ££¤¨©¦§ªª¬²°¬³¶¸¹º¾¾»ÁÁÄÅÇËÈÎÌÍÎÐÓÒÔÔÓÕÔÔÕÕÚÕØÙÕÎ ZNRUb_bdeeehbhioocg`_`c\bbaZZYVSX\^W^]Y[YZx¡³ÅÏÒÓÒËõ¤}iUQDA?<B:4:?>J@NFJFCALHRZ^dihlifa`ZcTJFEHDEDSQT[]]inqrsoleifg_\^PHHB6@D@DHEK@:77MU^hpoqsljow ¤®®²¯®ª¢wcUX`gn¡¨ª®²°²°²±³³¶··´³°§¥pDVvmka>,'%)0+.-0>.-?:/3;C9.*3.1+ELGD30(-3/.6PRB<a@0,7<NVcTS[?'*3.6-0\_G*-810/Kzw>2?DC9ZOUBFaHOG(9IBS9))'#(-11-)&+$%-/&,(*,6GHPPWR]ZRC:9J*&.'$2;CT]`ddhlouwwvy}||~{ ¡¤¨ªª¨©°°®²µ¹´»¹½¾ÄÁÄÆÇÉÈÈÏÍÎÏÕÑÓÖÖÖÖÔÓÖØ×××ÕÒ²hIMTY`a^ahcdfbhdggfb_idacgedUXWV[Xb\^`_[W[q±ÃÊÏÎÊÁ¹ªza[NNKL@AC;:BIJMTMJOJFIFXVbhlknqiie[YXJKF>BI?DMSV]^_kqrqkqmgec`]]SLI@89>KEDFGE:600BRV]fifggfgu¢¥±³³²«¥yfZWajq}¤ª¯±°±²³³µ´µµ··³°¯©¥£vPUogm[3,+*+0902>51366'4<G79+)0043LHG6/,/33*;UUA>~`;0/:AWXi^P^L-(.74,*FnW<#%,769`[(4B7+ILS[OlynXE7>R4FB2,*%16/2*%),-(/41++05:BDIPRF:721,4&%,-6;JST[cfcimrtz{~x{}}~ ¡¡¥¥¨¨¬©¯¯®²µ¶·¸»¿ÁÀÁÃÇÈÇÈÌÐÍÐÎÐÐÓÓÓÓÒÒÓÕÖ×ØÖÕÖÁQMQSZcafedfamfgjhccdggbge`b]^b^cbbgd]^[^bn«ºÄÆǹ©bXRHPUMHFE=EMIFKLLGJCKMQW\dmsnpsh_`RNLOLG?>@<HMQ\a`elqpponjjgca`XOEC8A?IEBBJF@?9++=HPY_Xc^bchs¡©¯³´´²¯¨jXV^cq §©®±°±²´²¶´³¶¶º³°®©©¤{]Tc^`[4(,.)*+6/3:/:;-*-IE<3/.510/MR6).005./4KU<<a?*(9DVOmhOi^?0(/1,+4]fS&'+=A2DB.K-69OHlgls¥{V*2D(4T/&$$-)-,((.?(',,)+/258846650+')(()+.2EPNX^^afkknqsux|{|{z| ¢¢ ¡¦©©«¨®¯®¯®²²²·ºº»¾¿ÁÂÅÉÈÈËÊÍÍÐÐÔÐÑÔÔÓÒÔ××ÕÖÓÕÕÌWLUYZY\accdfelmlkhdfkekidfb_]egdfgohegc^\l}¡®³¸·²§~`VTT]U^POCEJMOMNMLNJIFMK\_^gktpjka[[MPOSQGF?C=JNWaeiinyqppoiihcb`WPBC<=DMIC?@@<<7--7DIPU_YYb`lv{¢ª¯²³²®ª¥mZV^iq~ ¡¦ª«³±±³³²¹´·µº¹µ³±ª¨¨`NLY]K,)150-31.883:;3'0?A>;/+343-PY6&-52031AIH3BtS6,!1JSQizffkYD7.30/+MpY+*)6AD1Yo1BD66CGcqoqn©iC/801I/#-)(0?.+4.0..(3////111/'/-4'%)-9?DRQZchhmmolpsvy|z{y}}||~} £ ¤£¦ª¨¬±°²¯²µ´´º»»¹¿Â¿ÀÅÇÇËÉÌËÐÑÓÍÐÔÔÔÓÔÔÖÙÕÖÖÓЬ`LRTXZZa`b^e`jhmjjdghjdfbe^_cbfdljilmjdjdjs££¥¡p_ZPSHSNMDPINKKLHQRNJHEIRUYdghpsrbbZXUQHJMF@@@BGPS^eljmvwqtxrifhe\WPEB@@C;DE=AE=29/,,6C?JOV]Xe[ip|¡¬°°²¯¬¥tbY_fo¥¨«¯²°±µ¶µµµµ·¹¹´¯°©§fEIXM8*235*'+...41-4:98F@G4.31260Pe6*'335-97FE4JlM=)&3NdUh~xfu`I8<B60.8ihA(G",A96uN3X63=R^xoqk ¡}f>;#,E7#!./-,&&4403-,1,,,,$,,)(()(6::ADMUNU]`Ybnpsvz{~}} ¡ ¡¢¥¦¤¨¨¬¯±²±±³¶µ¸¸ºº¿À¿ÃÅÆÇÊÈÌÍÌÎÐÓÓÔÕÓÔÓ×Õ×××ÖÕлqHPSYUZ[\c`aadgolpfkkljjfeeibjigkmpoomekifo xgYUTOHKJKOKMOURUOLMKGGOPOSa_fljood[[XFKFEEF@=?@IO`ghskqstywqtifbi[TIHDBB><@@B@B9:10,,35=CWQ][_^`oz¨©°¯¯¯¨¦yiZ`kp{¤¨¯®±³´µ·µµ¹»·¸´°ªª£j=@OL5)(2.0--0'1/7/9//8@;<.594962Ri2,-64.15/>>7ZpK6/(58]bituclgK4-/*5C.bpa0%-"(M5AyALM:=HUlzzc|oaL53J)***+)-()+1-3:))*1(&%'(*947?LLNRVVY]]deciprvvywy{{x|}~| ¡¢£¦©§©©®±±²²´º·¹¹º»¿¾ÀÃÂÇÆÆÉÌÌÎÏÐÐÖÒÔÕÒÓÖ××Ö×ØØÖÄJMRSTVZb`cfedflgjjnqmhfcbfegmmlstorlojjnlps{}~xqfXVVQNQSPNUTSVZZPTPQMAGITXbeoggjhf^[QPJBDAI:;:BFRTchfnprwssrrnefg`ZTJJH;CA>89;?6781-332;>:DTYRYZZjs}¥¨®®®¬¬¤yu]cmrx¥¯±®°³µ²µ²³´··ºº¶®§¦¥¢o??NL.#-8+.'-2.33-/1.:9=?>4?./D72Sj?(,97/35EFI<`kB5%,03]_iotmdjM6-'"1[ASpJ"$,=P4Lrf9BN54NujdJe}nlg9):+*.4.1+*-,)*$&+%($%./21;?=?GQST[^XY^cimlxsux|{x{zzyz}~| ~ ¢¥©¤¤¦¦«°±±¶¸µ¸»½»¾½ÁÁÅÂÅÆÉÊÊÍÍÍÐÑÒÔÕÔÔÓÕÔÔÖÖØÖÌYFWRWV^]Ycbagfjknhmlnpjiiifdroptxqqpnmrrompprvqoic^ZTUXTRUTU^\VUPVVPNCKFOTX^edhls[fSQINGFCF>C=@@LR\jkjomprw{twqjmi]YOIEFB>>@9=A<4552///955:BIPQYVYdt}¢¥®®¯©¤xna`iv|§©ª°±¯²´²¶µ´´µ¸¶³®§©¢¢n>:GR.+04+4-9JG1,,)826@ED;8=88@?2KwO,'/2*31=>FJ[^:4'+,6JYgbl}nyd3'.%.O`Iin1%'1RU@[}]/PN1Gyz_{w?6`vjqL390.-69;=B99/')((&*()1;=AJEKSNYUVZc`^fosrrux}|zxyxy|y~|~ ~|~ §¦¡¥©¤ª¬®²°´·µ¹º»º½½¼ÁÀÃÄÅÉËÇÊÍÐÎÏÓ×ÕÓÓÓÓÔ×ÔØÕÔÏgHROPS]Z\d``aeenmjrpmqlejklojxqtttxpxqprnnjqpoojgaZVXZZ_[W\db_U[YXPFJFOMPX]_hnmcb[XaSPGOILF<C@:IP[dlgsokrvysonine`\TOLKA?<<;<;=?663?822:86/ACNUWXSduy¥¨®°³±¦ ydckrz£¨®®µ³³µµ´¶³¸¸·²°ª¦¤j@>OF2290/*-:9547*+/28ACIJ9?38@=+?m\6%8.(00:@T]_T8/,+'5J^q[J}|xi3$/$ 2Y[`uN+ ';9YJ:xz;1VL:dxbz}b8@oqaW66.---.1**(%!*&#,,599@FILMUXXW^`fecknotsxtvxvxzx{z|{~}|}~ ¡¢¥§¨«¨©°¯¯±±¶²¹¼¼¾¾½¾¿ÄÄÇÈÅÈÌÎÍÍÏÑÔÓÓÓÒÔÔ×ÕØÕÔÓ¼|NNKTWRT\]abbfgnkmhsnnokiolsrtsstqtorstwqminfhhgb``[Z[Yaaa_gb_[UUXNNNRQQVY^gghgchTO[NOVKKJ@CA==OT]gilmuwxz}qqkhiebSSEKGB<88=?B<9687;0::;8;:=?INRQRWnu¥¬±µ´³¯©¡|rfcmo|¦¨¯°®³´´²¶µ·¶º¸´´®«§¥^D<IH86280:(/4/1;#(/31:E86;K02<66:Pc=-3/,624;JalB+1.().>drZ<l~{wO,&) $Emine;"'=NIUu`.5FDGphpygLSiP]D3&&&,(N8#'$&,.*,45694CFOTV[YXegmnlmowruvz|x||}z{}z|z{~~| ¢¢£¥¨¥¤¨©®ª¬°µ²´µ·½»½½½ÁÄÃÂÄÈÊÍÍÏÐÑÕÓÔÓÔÕÓÒÕ×ÖÕÖÅSJHNZX][^db^fggnomspkmmpoptqyuwvrsorslptqnkgiig`\]^[\bfhhedi`WW]TOJUTQTW^bmjd`^XQUKMOJSKN>JHDDS]cgztou{wunkliea^TFHC>=>=;6?;5823:4322C:??@=EMMQL[nv¦¯³º¿¼º³¨{maln ¥°±´³±´´´±¸¹»ºµ³±ª¦¢uZG;EH<JE11,'36*.60,695:D?94:;>>>34@eQ22.(-+.?Dfb8/(.+'2Ddnj=Jw|i6"('%2dmfoD-$ *>bVtwH#0CGerkwysiULDIG))&'+%7.*)(.1<-./58:;DNOVU[cblqpqpqppoqvvy{|{||~~}~}¡¤¤§£§©¥©ª±³±²±¶º»¼¼½ÀÃÄÄÃÆÇËÍÊÐÏÔÓÑÑÒÑÐÓ×ÕÖØÓÌVFIRSZ\]]ccdhhhrnolkntpvrssvuyzzxtqttqqvmkjekifiebba^gjmjjgcb^XWRMRTTVV^acdaWPVPRLEEKLNDQKILAOSXbjqtqvzzyukkona^SMFH<:9<7A96340835.-55::DA;<B>EIJTgtª¸½ÃÃÀÀ¼¶¬uhbju}¥«¬²³³²³»µ´¸¹¶¹º³µ°¦uNF:.AI@=46+1064,41/+<81<B875565AE;16[`8/+/0')BIod3/$%*)*=app@6i{O1+*/1EievRH*;WZaf3%+?JeisqlUOD@5I-*.0%-0.+.21+/66/46ADKSZ\^e`lprpuutrztvxwz{||}{| ~ £¤¢£§¥§©©©±´²³³²µ·¼º»¼¿ÃÆÃÃÆÈÌÌÍÏÏÒÓÒÒÒÏÑÔÕÕÔÓÓϯaDDIRSXY^dbdhijllppqqnovtzwwqr{xsvorqxmopmgkhhdiea`eckhoqmllaa[VTLKPRW^_]de^SOMPHFJFLHJIIHAJNRZbfnwts|txxqkhie]ZTJAE8<6<;6:60450,0/7448;::4=B<=GDHfu¢²ÂÃÈÈÉÄŸ£}ihpu¥©²°²²µ°¶µµ»·º¼¹´±«[D?16:>7-;;1.7>;--0-0:36@C579938>C=20MeU2(-17)?W~o;D&41.):hixC/Tf;83('QrexwHM="%#/DSJW*$)6VS^kykA1-'=4).4((3&54*-/232/9=NQT[]ddfnmmqtswsrstvvxz}~~}|}|z~| ¢£¢¤¥§§§§«©°°±¶´µ·³º»º¼¹¾ÁÃÈÆÈÈÉÊÉÏÎÎÒÐÑÒÑÓÐÓÖÖÓÔнxFCMVQUb]^fikjjinpnnnrr~vzxwtyxtpuuupvqqqplokihdbbcdmppqrjkd^[ZYTVQ\[Zbfbc]\WUMLDB@JHLFCQBHOMWejpqxrv¥swuqibcV\VSFF>?<6;;9B84778275322486527E?BC@H`y«»ÆÈÎËÊÈÆǼ°id{r{¦ª°²±²³´¸²µ¶º¸¹¹¶°¥whRJ:6??81320(,:5-(7.-438EA:337=>;?>0+AVi9*)+),>koC2#//14FulyC2@w }T?7*-HUfePIO0 !#<VAQzK1#,=IQ]t~i@,)8E/*'(.8098/132612<JMT\^gbijsptrtt{sssutwww|}|~|}}}{ £¢£¤©§¬¨©°±°´²³´··º»»¾ÀÁÃÇÉÉÉÌÌÌÎÏÎÐÑÒÐÑÏÍÍ×ØÕÓÅKAQUQYTRahhfmkjqhklqsptyvwzy{rstsrqrsuuooqrkiikgdgjorxuxojfabXVUS[bbb_ebbVYPPCAHEJGGIGDaEKVRafnswzz{|vsonmda[YSKAB><69:3:>1463838A@008?=327<?>>JJh{®ÀÊÉÌÌÊÈÈÇÀ·¬pfpt ¦¦³³´´²¸³´·¸¹¸¹´®© rh]@<976,4:>1+61..+0-7/7==5:9379IA>34:FiM&&+-2GscB1)245*?ug}K?@f m>2+$%9RivY-MB$!$0VPAld8%);WDNi|oaN*5S2%. +($)1137079>KMWW`^fgflprruuswtutttuyx}~x}~}|z|||~| ££¥¤¤¥¨®©©«°³²´¶±²·¹¼¹º»¿ÄÅÉÈÅÉÌÉÌÌÍÏÏÏÒÑÑÐÔÑ×ÖÕÓÊ¡TMMPPUXV\[VWZgpmkfliswxz{w{zwttxuvptssstlskkljkhnnqusuuqpjjb]^XVX]b``cfdeWUSPEDJCCPBAHKFGQ_Ygjmuz{zzvxolmi^[\NOFI:@4;8?:9735;9:7;FR116781047<;>=Hi|·ÄÆÉÌÌËÊÈÈ÷«sitp| ¤©®±²®¯°¶´³´²·´´®±®§tmNE>52(2=N:);03(14*@C646;4???C;BN9)34Z_%'/-.SVF1+14/)Gsk@BIS uN,+(',>bnf.<L9&(+MOEHlV*)<Y;VbsRR_\JW2+2!$'&*'051:=FGNXU[Zfflllmnrpsuyx|uxxrv|y{~~{{y||}} ¤¢¦¤ª©ª«¦ª²°°·±²·»¸¼¾º¿ÃÅÇÅÅÊÉÉÌÎÎÎÍÏÒÐÑÓÓÔÕÖÕÓÓ°f@INSQZca^ddehifljopsywwv|vw{wuywyqrttrtmsilomnooxxzyxtqqkiba``]```cbdZ``ZPPOQIHJKKKWLFMPSYfqqty}{}{vuljndY]WIN<?:9913=C>560.1>;DK\00515935<C9;:JhÀÃÅÇËÌÊËÈÇû²¥{fss¤¨¬±¯°³°¶³³²¸¶¶³²³ª©{ wVG97//.9A228?1/.@1RB:<79874@?<@?C(01Tq<(3)+UP?3,0*1-Tvo~7AWKh T/)&)*3RdvL+;M>((;QWBHnp:#3_IGXyj>`spc+#& #$)+,34<DHONUU_fjohlooqmmrvxy{tvwrzzz~||}~||}~~ ¢£¥¦¦¤ª¨¦¦©®¯²±°³²²··º¼¿»½ÁÀÅÃÄÏÊÌÌÌÍÎÍÎÑÑÒÓÓÓÑÕÕÕÒ¾CHJPQY\lkgfbkh`dnqjvzrwzzxvwxu{wttssqumqnkprrrrvuz{|zwsmie_]Z_a`hgcaaS[\TOSTVKKOQ\JHGSVTYelox{|}}}wtfkm^^VSKG:>484148:9;K73<FFGNV//7527439=87<GjÃÄÅÇÊËÍÉÉÁÀºµªgnv~¢¦¯³±¯±±µ±³µ´¸¶´¯¤¨q^?<55,,7>('285-,D/2?B?5=8B8>NBGGP3/,BkH84.0ahNL<+2089[ut{/:WJO]p?-,4(/Vgzg/-?O9+2M[GFO`W,.HN<Ww}UenxR3%$$#&)-.3>@INQ[]Xccjjgekkwpmrxxuyty}uwzz{|~~}}~| £¢ ¦§¦¦§¦¥§§¬«²°®®²²¸¸»ºº»¾¿ÁÃÅÆÉÄÉÉÍÏÏÎÏÑÑÒÑÒÒÒÔÒÔÓÆLOQEVVYVZkegfbdjhhqvtwyxuutxv{x~xswutslqrurpuxy~wvpkia]]_^^cghbZ\USXSZVWOXUIONEMMNPYbhouy|y}vvikicWXQS@=942/,/33483E:=FMRR[^00946629?37:@FhÄÃÅÇÆÉÍÉÇÄÁ½¸«imu~ ¢£¨®±²±±±²´±µ´·´¸²¥y~f]34221,/:+)6;5)K624=<-:A6@;KXEUCQB:8:ALH8)5gYKK7.03:?Pjjy%3_MSE^2+%0:X|dP3.IG87;][>??W3'6MOQp|HT`vvP/"'%&+*17:>INQXU[_affjkiqvtttsy~xyxyuxxw{z|}{|~ }£¢¢¦¤¦¢¤¢¨¨¨¬±±²²¹¹»¹¸¾½ÀÁÂÄÃÉÉÉÉÊÍÍÍÎÓÐÑÓÓÒÓÒÓÔÒÍ ]EOMPRUSWY_chcdjhkqspswzvzw{z}{uztuusqtvwxxsw{~~yurjh]][]W__c]WYWWMOVOT[VOWQKSJKOYZ_huuy}|uonja^YOKG@=A7,,/;777:CB9AKNaZX_660/55279=378@`xÀÃÂÃÉÈÈÈÆÁÁ½µ®isux£©®´±¯±²µ¶²³µµ·»±«®wihWW54870)5,-+38;0*8:<9C5:H:?>LSIYHOG117>AQ=1<M<E>.35>>Lorx)*V^JHqsC,#0;Re~e4333DG9N_[AA;>(45MLRiQ?Q]~`0$)*(/=@FKKNNZZ]\ioeilnvrqvo{wyz{xx~{}z{}|{~ £§¡¤¢¡£¢¦©®©®¯©°±¸´»½ºº¾¾ÁÂÃÃÆÆÊËÉËÍÎÌËÏÏÐÔÒÎÕÓÒÔÔÒ²iHHNUUW\\]Xcd`aggjjqrvstpvwx}~}{~rwutpvyxw}|}~wsoffdZ^dX__c[WRUMSLLTUXVSTRSNKSZWanouw~}~|vmmh_TRRC:8159.56255:47@CNSXZ]^Z..224123;7:67DWwÁÄÃÅÅÈÇÉÄ¿¹³¬dmo} ¢««³°°²±²µ´³´··¶´®«sd`VN37<C.',&'.;?9/+:I<2M<9D6C>KN@]FLO4.75?TE5OA2E>01D?9Qwvw+(K^KJLh{f=),;Oy{i80'#(:<MZWK=5E,**88=`\KNWf\13617HINP_SSX[\ajmmmpqtyvxsvyz}vy}zx~z|}~~|~} ¡£¨¤¢¤¦¦¥©¨§«¯¬¬²±´¶¹¹¹À½¾ÂÀÂÆÇÆÉÍÉÌÍÌÍÏÏÒÑÑÍÔÓÔ××ÕÀ{ULQSW[\]`[W`V\ekoivstrkuy ~x}z|xwyxyzw ~|uuqh_\b\][U]XQQKSPKNZVYUXXVRSSMMWf_iow~~~zoe`WPNH;9727-4141558=>GKPY]dfb`++2/6/21<5-78@RpÀÂÅÄÈÈÆÅÅÀ½¹´§imx¡¢©ª²±µ³µ´´¶µ¶µ·µ³®¢xIWZ?/9G=0&.+,/@A=)(6M25A9EF6??MG<LFKU8666<UWGi¦w</<I8&H?5Hwss+"=[JTFO^xZ;7-I~ec3'/*'2=>[DRJ?BA.)4,9SoE9LPlndtZ793=ORQNUYSXYcbjhinqpuruwvsw|}{z}||~|~{{~}{~~}} ¢ ¤¢¦§¨¦¤¤¨§ªª¬¬®´´·¶»¾½ÁÀÁÂÃÅÃÉÈÈÌÊÌÌÍÏÓÔÔÐÑÓÒÔÔÕÅe\`]SXY^^]WX\daeolhnmwqu|} ~|x|yz{zxx~ }}srid`\[bYVQWRLOHKKOW]_aVZZTUQUOT\^fjtv}~}wui`XONF?:536.-1-04.45;FEOP\`dhdb,,736/23;3/355Om¸ÃÄÄÈÆÆÇÁÀ¿·²xinw¥£§²®¶´³´µ²¶´·¶·¯³£N_^E85G0+'+()6>F<"&6I+/KG?U8@>HF9FHETA95:IhaF¢\:56LC%3;:Hrqq2&0QNKDH?vv];2@]U-$252(02EBOQC@G/(654Jt`-)>_fISyZ:9KSQRRT^Z[Y]fdkklnnpqpyvzv~yyx~{}z|~}}{~}~ ¤ ¤£¥¨¥£¦£¨©©©¬¬®°¬³¸¸¹¸ºÀ¿ÀÀÃÂÃÁÆÇÇËÊËÌÎÏÏÑÑÏÐÓÓÒÔÔÌvmpf_^X][]Z^b^abkhjifx|~ ~y}~~y}|wvld_V\ZYTQNHMJHNEQVY[Z]Z\\TWSPTY`^fpw~z|{wqe`TK><;::33,)*2.46;DHLS^Zahdhil,,7B6/23;3/355Om¸ÃÄÄÈÆÆÇÁÀ¿·²xinw¥£§²®¶´³´µ²¶´·¶·¯³£N_^E85G0+'+()6>F<"&6I+/KG?U8@>HF9FHETA95:IhaF¢\:56LC%3;:Hrqq2&0QNKDH?vv];5@]U-$252(02EBOQC@G/(654Jt`-)>_fISyZ:9KSQRRT^Z[Y]fdkklnnpqpyvzv~yyx~{}z|~}}{~}~ ¤ ¤£¥¨¥£¦£¨©©©¬¬®°¬³¸¸¹¸ºÀ¿ÀÀÃÂÃÁÆÇÇËÊËÌÎÏÏÑÑÏÐÓÓÒÔÔÌvmpf_^X][]Z^b^abkhjifx|~ ~y}~~y}|wvld_V\ZYTQNHMJHNEQVY[Z]Z\\TWSPTY`^fpw~z|{wqe`TK><;::33,)*2.46;DHLS^Zahdhil⏎ |
Binary diff not shown
Binary diff not shown
0 | P5 | |
1 | # CREATOR: GIMP PNM Filter Version 1.1 | |
2 | ||
3 | 1 300 | |
4 | 255 | |
5 | NNNNNOPPQQRRSSSTTTUVWVWXXYXYYZ[[\\]]]]^^_````abbbccddeefgggghiijjjjkklmmmnnnoopppqrrrstttuvvvwwxxxyzzz{{||~~ ¡¢¢££¤¤¥§¦¤¡ ~{xurnkhea^[XTRNKLORTWY[^acfhkmpruwz ¡§«®°²µ·º¼¿ÁÃÆÈÊÌÏÑÔÖØÚÝßâäçæåäãáàÞÝÛÚØ×ÖÔÓÒÐÏÎËÊÈÆÃÂÀ¾¼º·¶´±¬¨£qb⏎ |
Binary diff not shown
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | # @configure_input@ | |
2 | ||
3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | # This Makefile.in is free software; the Free Software Foundation | |
6 | # gives unlimited permission to copy and/or distribute it, | |
7 | # with or without modifications, as long as this notice is preserved. | |
8 | ||
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | |
11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | |
12 | # PARTICULAR PURPOSE. | |
13 | ||
14 | @SET_MAKE@ | |
15 | ||
16 | VPATH = @srcdir@ | |
17 | pkgdatadir = $(datadir)/@PACKAGE@ | |
18 | pkglibdir = $(libdir)/@PACKAGE@ | |
19 | pkgincludedir = $(includedir)/@PACKAGE@ | |
20 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | |
21 | install_sh_DATA = $(install_sh) -c -m 644 | |
22 | install_sh_PROGRAM = $(install_sh) -c | |
23 | install_sh_SCRIPT = $(install_sh) -c | |
24 | INSTALL_HEADER = $(INSTALL_DATA) | |
25 | transform = $(program_transform_name) | |
26 | NORMAL_INSTALL = : | |
27 | PRE_INSTALL = : | |
28 | POST_INSTALL = : | |
29 | NORMAL_UNINSTALL = : | |
30 | PRE_UNINSTALL = : | |
31 | POST_UNINSTALL = : | |
32 | build_triplet = @build@ | |
33 | host_triplet = @host@ | |
34 | subdir = tests/lib/EPSILON | |
35 | DIST_COMMON = $(dist_noinst_DATA) $(srcdir)/Makefile.am \ | |
36 | $(srcdir)/Makefile.in | |
37 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
38 | am__aclocal_m4_deps = $(top_srcdir)/configure.in | |
39 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | |
40 | $(ACLOCAL_M4) | |
41 | mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs | |
42 | CONFIG_HEADER = $(top_builddir)/config.h | |
43 | CONFIG_CLEAN_FILES = | |
44 | SOURCES = | |
45 | DIST_SOURCES = | |
46 | DATA = $(dist_noinst_DATA) | |
47 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
48 | ACLOCAL = @ACLOCAL@ | |
49 | AMTAR = @AMTAR@ | |
50 | AR = @AR@ | |
51 | AUTOCONF = @AUTOCONF@ | |
52 | AUTOHEADER = @AUTOHEADER@ | |
53 | AUTOMAKE = @AUTOMAKE@ | |
54 | AWK = @AWK@ | |
55 | CC = @CC@ | |
56 | CCDEPMODE = @CCDEPMODE@ | |
57 | CFLAGS = @CFLAGS@ | |
58 | CPP = @CPP@ | |
59 | CPPFLAGS = @CPPFLAGS@ | |
60 | CXX = @CXX@ | |
61 | CXXCPP = @CXXCPP@ | |
62 | CXXDEPMODE = @CXXDEPMODE@ | |
63 | CXXFLAGS = @CXXFLAGS@ | |
64 | CYGPATH_W = @CYGPATH_W@ | |
65 | DEFS = @DEFS@ | |
66 | DEPDIR = @DEPDIR@ | |
67 | DSYMUTIL = @DSYMUTIL@ | |
68 | ECHO = @ECHO@ | |
69 | ECHO_C = @ECHO_C@ | |
70 | ECHO_N = @ECHO_N@ | |
71 | ECHO_T = @ECHO_T@ | |
72 | EGREP = @EGREP@ | |
73 | EXEEXT = @EXEEXT@ | |
74 | F77 = @F77@ | |
75 | FFLAGS = @FFLAGS@ | |
76 | GREP = @GREP@ | |
77 | INSTALL = @INSTALL@ | |
78 | INSTALL_DATA = @INSTALL_DATA@ | |
79 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | |
80 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | |
81 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | |
82 | LDFLAGS = @LDFLAGS@ | |
83 | LIBOBJS = @LIBOBJS@ | |
84 | LIBS = @LIBS@ | |
85 | LIBTOOL = @LIBTOOL@ | |
86 | LN_S = @LN_S@ | |
87 | LTLIBOBJS = @LTLIBOBJS@ | |
88 | MAKEINFO = @MAKEINFO@ | |
89 | MKDIR_P = @MKDIR_P@ | |
90 | NMEDIT = @NMEDIT@ | |
91 | OBJEXT = @OBJEXT@ | |
92 | PACKAGE = @PACKAGE@ | |
93 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | |
94 | PACKAGE_NAME = @PACKAGE_NAME@ | |
95 | PACKAGE_STRING = @PACKAGE_STRING@ | |
96 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | |
97 | PACKAGE_VERSION = @PACKAGE_VERSION@ | |
98 | PATH_SEPARATOR = @PATH_SEPARATOR@ | |
99 | RANLIB = @RANLIB@ | |
100 | SED = @SED@ | |
101 | SET_MAKE = @SET_MAKE@ | |
102 | SHELL = @SHELL@ | |
103 | STRIP = @STRIP@ | |
104 | VERSION = @VERSION@ | |
105 | abs_builddir = @abs_builddir@ | |
106 | abs_srcdir = @abs_srcdir@ | |
107 | abs_top_builddir = @abs_top_builddir@ | |
108 | abs_top_srcdir = @abs_top_srcdir@ | |
109 | ac_ct_CC = @ac_ct_CC@ | |
110 | ac_ct_CXX = @ac_ct_CXX@ | |
111 | ac_ct_F77 = @ac_ct_F77@ | |
112 | am__include = @am__include@ | |
113 | am__leading_dot = @am__leading_dot@ | |
114 | am__quote = @am__quote@ | |
115 | am__tar = @am__tar@ | |
116 | am__untar = @am__untar@ | |
117 | bindir = @bindir@ | |
118 | build = @build@ | |
119 | build_alias = @build_alias@ | |
120 | build_cpu = @build_cpu@ | |
121 | build_os = @build_os@ | |
122 | build_vendor = @build_vendor@ | |
123 | builddir = @builddir@ | |
124 | datadir = @datadir@ | |
125 | datarootdir = @datarootdir@ | |
126 | docdir = @docdir@ | |
127 | dvidir = @dvidir@ | |
128 | exec_prefix = @exec_prefix@ | |
129 | host = @host@ | |
130 | host_alias = @host_alias@ | |
131 | host_cpu = @host_cpu@ | |
132 | host_os = @host_os@ | |
133 | host_vendor = @host_vendor@ | |
134 | htmldir = @htmldir@ | |
135 | includedir = @includedir@ | |
136 | infodir = @infodir@ | |
137 | install_sh = @install_sh@ | |
138 | libdir = @libdir@ | |
139 | libexecdir = @libexecdir@ | |
140 | localedir = @localedir@ | |
141 | localstatedir = @localstatedir@ | |
142 | mandir = @mandir@ | |
143 | mkdir_p = @mkdir_p@ | |
144 | oldincludedir = @oldincludedir@ | |
145 | pdfdir = @pdfdir@ | |
146 | prefix = @prefix@ | |
147 | program_transform_name = @program_transform_name@ | |
148 | psdir = @psdir@ | |
149 | sbindir = @sbindir@ | |
150 | sharedstatedir = @sharedstatedir@ | |
151 | srcdir = @srcdir@ | |
152 | sysconfdir = @sysconfdir@ | |
153 | target_alias = @target_alias@ | |
154 | top_builddir = @top_builddir@ | |
155 | top_srcdir = @top_srcdir@ | |
156 | INCLUDES = | |
157 | METASOURCES = AUTO | |
158 | dist_noinst_DATA = Utils.pm | |
159 | all: all-am | |
160 | ||
161 | .SUFFIXES: | |
162 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | |
163 | @for dep in $?; do \ | |
164 | case '$(am__configure_deps)' in \ | |
165 | *$$dep*) \ | |
166 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ | |
167 | && exit 0; \ | |
168 | exit 1;; \ | |
169 | esac; \ | |
170 | done; \ | |
171 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/lib/EPSILON/Makefile'; \ | |
172 | cd $(top_srcdir) && \ | |
173 | $(AUTOMAKE) --gnu tests/lib/EPSILON/Makefile | |
174 | .PRECIOUS: Makefile | |
175 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | |
176 | @case '$?' in \ | |
177 | *config.status*) \ | |
178 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | |
179 | *) \ | |
180 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
181 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
182 | esac; | |
183 | ||
184 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | |
185 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
186 | ||
187 | $(top_srcdir)/configure: $(am__configure_deps) | |
188 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
189 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | |
190 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
191 | ||
192 | mostlyclean-libtool: | |
193 | -rm -f *.lo | |
194 | ||
195 | clean-libtool: | |
196 | -rm -rf .libs _libs | |
197 | tags: TAGS | |
198 | TAGS: | |
199 | ||
200 | ctags: CTAGS | |
201 | CTAGS: | |
202 | ||
203 | ||
204 | distdir: $(DISTFILES) | |
205 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
206 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
207 | list='$(DISTFILES)'; \ | |
208 | dist_files=`for file in $$list; do echo $$file; done | \ | |
209 | sed -e "s|^$$srcdirstrip/||;t" \ | |
210 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
211 | case $$dist_files in \ | |
212 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
213 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
214 | sort -u` ;; \ | |
215 | esac; \ | |
216 | for file in $$dist_files; do \ | |
217 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
218 | if test -d $$d/$$file; then \ | |
219 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
220 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
221 | cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ | |
222 | fi; \ | |
223 | cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ | |
224 | else \ | |
225 | test -f $(distdir)/$$file \ | |
226 | || cp -p $$d/$$file $(distdir)/$$file \ | |
227 | || exit 1; \ | |
228 | fi; \ | |
229 | done | |
230 | check-am: all-am | |
231 | check: check-am | |
232 | all-am: Makefile $(DATA) | |
233 | installdirs: | |
234 | install: install-am | |
235 | install-exec: install-exec-am | |
236 | install-data: install-data-am | |
237 | uninstall: uninstall-am | |
238 | ||
239 | install-am: all-am | |
240 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | |
241 | ||
242 | installcheck: installcheck-am | |
243 | install-strip: | |
244 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | |
245 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | |
246 | `test -z '$(STRIP)' || \ | |
247 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | |
248 | mostlyclean-generic: | |
249 | ||
250 | clean-generic: | |
251 | ||
252 | distclean-generic: | |
253 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | |
254 | ||
255 | maintainer-clean-generic: | |
256 | @echo "This command is intended for maintainers to use" | |
257 | @echo "it deletes files that may require special tools to rebuild." | |
258 | clean: clean-am | |
259 | ||
260 | clean-am: clean-generic clean-libtool mostlyclean-am | |
261 | ||
262 | distclean: distclean-am | |
263 | -rm -f Makefile | |
264 | distclean-am: clean-am distclean-generic | |
265 | ||
266 | dvi: dvi-am | |
267 | ||
268 | dvi-am: | |
269 | ||
270 | html: html-am | |
271 | ||
272 | info: info-am | |
273 | ||
274 | info-am: | |
275 | ||
276 | install-data-am: | |
277 | ||
278 | install-dvi: install-dvi-am | |
279 | ||
280 | install-exec-am: | |
281 | ||
282 | install-html: install-html-am | |
283 | ||
284 | install-info: install-info-am | |
285 | ||
286 | install-man: | |
287 | ||
288 | install-pdf: install-pdf-am | |
289 | ||
290 | install-ps: install-ps-am | |
291 | ||
292 | installcheck-am: | |
293 | ||
294 | maintainer-clean: maintainer-clean-am | |
295 | -rm -f Makefile | |
296 | maintainer-clean-am: distclean-am maintainer-clean-generic | |
297 | ||
298 | mostlyclean: mostlyclean-am | |
299 | ||
300 | mostlyclean-am: mostlyclean-generic mostlyclean-libtool | |
301 | ||
302 | pdf: pdf-am | |
303 | ||
304 | pdf-am: | |
305 | ||
306 | ps: ps-am | |
307 | ||
308 | ps-am: | |
309 | ||
310 | uninstall-am: | |
311 | ||
312 | .MAKE: install-am install-strip | |
313 | ||
314 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
315 | distclean distclean-generic distclean-libtool distdir dvi \ | |
316 | dvi-am html html-am info info-am install install-am \ | |
317 | install-data install-data-am install-dvi install-dvi-am \ | |
318 | install-exec install-exec-am install-html install-html-am \ | |
319 | install-info install-info-am install-man install-pdf \ | |
320 | install-pdf-am install-ps install-ps-am install-strip \ | |
321 | installcheck installcheck-am installdirs maintainer-clean \ | |
322 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
323 | mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am | |
324 | ||
325 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
326 | # Otherwise a system limit (for SysV at least) may be exceeded. | |
327 | .NOEXPORT: |
0 | package EPSILON::Utils; | |
1 | ||
2 | # | |
3 | # $Id: Utils.pm,v 1.7 2011/04/27 16:25:58 simakov Exp $ | |
4 | # | |
5 | # EPSILON - wavelet image compression library. | |
6 | # Copyright (C) 2006-2011 Alexander Simakov, <xander@entropyware.info> | |
7 | # | |
8 | # Helper utils for testing EPSILON | |
9 | # | |
10 | # This file is part of EPSILON | |
11 | # | |
12 | # EPSILON is free software: you can redistribute it and/or modify | |
13 | # it under the terms of the GNU Lesser General Public License as published by | |
14 | # the Free Software Foundation, either version 3 of the License, or | |
15 | # (at your option) any later version. | |
16 | # | |
17 | # EPSILON is distributed in the hope that it will be useful, | |
18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 | # GNU Lesser General Public License for more details. | |
21 | # | |
22 | # You should have received a copy of the GNU Lesser General Public License | |
23 | # along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
24 | # | |
25 | # http://epsilon-project.sourceforge.net | |
26 | # | |
27 | ||
28 | use strict; | |
29 | use warnings; | |
30 | ||
31 | use Readonly; | |
32 | Readonly our $VERSION => qw($Revision: 1.7 $) [1]; | |
33 | ||
34 | use English qw( -no_match_vars ); | |
35 | use Carp; | |
36 | use File::Spec::Functions; | |
37 | use Params::Validate qw(:all); | |
38 | use Cwd qw(abs_path); | |
39 | use File::Basename; | |
40 | ||
41 | #use Smart::Comments; | |
42 | ||
43 | use base qw(Exporter); | |
44 | ||
45 | Readonly our @EXPORT_OK => qw( | |
46 | run_epsilon | |
47 | epsilon_encoder_options_combinator | |
48 | get_all_available_filters | |
49 | get_image_path | |
50 | get_rnd_string | |
51 | write_to_file | |
52 | get_available_build_tags | |
53 | wait_for_mpi_to_cleanup | |
54 | ); | |
55 | ||
56 | Readonly my $VALIDATOR_BUILD_TAG => | |
57 | { regex => qr/\Ageneric|mpi|cluster|pthreads\z/xms }; | |
58 | Readonly my $MPI_CLEANUP_PAUSE => 15; | |
59 | ||
60 | sub write_to_file { | |
61 | my $file_path = shift; | |
62 | my $file_content = shift; | |
63 | ||
64 | open my $F, '>', $file_path | |
65 | or croak "Failed to open output file '$file_path': $OS_ERROR"; | |
66 | ||
67 | print {$F} $file_content | |
68 | or croak "Cannot write to file '$file_path': $OS_ERROR"; | |
69 | ||
70 | close $F | |
71 | or warn "Failed to close output file '$file_path': $OS_ERROR\n"; | |
72 | ||
73 | return; | |
74 | } | |
75 | ||
76 | sub get_rnd_string { | |
77 | my $length = shift; | |
78 | ||
79 | ## no critic (ProhibitMagicNumbers) | |
80 | my $alpha_aref = shift || [ 'A' .. 'Z', 'a' .. 'z', 0 .. 9 ]; | |
81 | ## use critic | |
82 | ||
83 | my @alpha = @{$alpha_aref}; | |
84 | return join q{}, map { $alpha[ int rand @alpha ] } 1 .. $length; | |
85 | } | |
86 | ||
87 | sub get_image_path { | |
88 | my $image_name = shift; | |
89 | ||
90 | my $this_module_dir = dirname( $INC{'EPSILON/Utils.pm'} ); | |
91 | my $abs_image_path = abs_path( | |
92 | catfile( $this_module_dir, q{..}, q{..}, 'images', $image_name ) ); | |
93 | ||
94 | return $abs_image_path; | |
95 | } | |
96 | ||
97 | sub get_available_build_tags { | |
98 | my $build_root = get_build_root(); | |
99 | ||
100 | my @build_tags = (); | |
101 | foreach my $build_tag qw( generic pthreads cluster mpi ) { | |
102 | if ( -d catfile( $build_root, $build_tag ) ) { | |
103 | push @build_tags, $build_tag; | |
104 | } | |
105 | } | |
106 | ### available build_tags: @build_tags | |
107 | ||
108 | return \@build_tags; | |
109 | } | |
110 | ||
111 | sub get_build_root { | |
112 | my $build_root = $ENV{'EPSILON_TEST_BUILD_ROOT'}; | |
113 | ||
114 | if ( !$build_root ) { | |
115 | die "Please set EPSILON_TEST_BUILD_ROOT environment variable\n"; | |
116 | } | |
117 | ||
118 | if ( !-d $build_root ) { | |
119 | die "No such directory: '$build_root'\n"; | |
120 | } | |
121 | ||
122 | return $build_root; | |
123 | } | |
124 | ||
125 | sub get_binary_path { | |
126 | my $build_tag = shift; | |
127 | ||
128 | my $build_root = get_build_root(); | |
129 | my $binary_path = catfile( $build_root, $build_tag, 'bin', 'epsilon' ); | |
130 | ||
131 | if ( !-x $binary_path ) { | |
132 | die "Cannot find '$binary_path' executable\n"; | |
133 | } | |
134 | ||
135 | return $binary_path; | |
136 | } | |
137 | ||
138 | sub wait_for_mpi_to_cleanup { | |
139 | ||
140 | my $build_root = get_build_root(); | |
141 | if ( -d catfile( $build_root, 'mpi' ) ) { | |
142 | sleep $MPI_CLEANUP_PAUSE; | |
143 | } | |
144 | ||
145 | return; | |
146 | } | |
147 | ||
148 | sub get_all_available_filters { | |
149 | my %params = validate( @_, { build_tag => $VALIDATOR_BUILD_TAG } ); | |
150 | ||
151 | my $binary_path = get_binary_path( $params{'build_tag'} ); | |
152 | my $command = "$binary_path --list-all-fb"; | |
153 | ||
154 | if ( $params{'build_tag'} eq 'mpi' ) { | |
155 | $command = "mpirun -np 2 $command"; | |
156 | } | |
157 | ||
158 | my $output = `$command`; | |
159 | my $filters = {}; | |
160 | ||
161 | LINE: | |
162 | foreach my $line ( split qr{\n}xms, $output ) { | |
163 | $line =~ s/\A[|]\s*//xms; | |
164 | $line =~ s/\s*[|]\z//xms; | |
165 | ||
166 | my ( $id, $name, $type ) = split qr{\s*[|]\s*}xms, $line; | |
167 | ||
168 | # skip over table header and footer | |
169 | next LINE if !$type; | |
170 | next LINE if $type ne 'orthogonal' and $type ne 'biorthogonal'; | |
171 | ||
172 | $filters->{$id} = $type; | |
173 | } | |
174 | ### filters: $filters | |
175 | ||
176 | return $filters; | |
177 | } | |
178 | ||
179 | sub epsilon_encoder_options_combinator { | |
180 | my %params = validate( @_, { build_tag => $VALIDATOR_BUILD_TAG, } ); | |
181 | ||
182 | my $filters | |
183 | = get_all_available_filters( build_tag => $params{'build_tag'} ); | |
184 | ||
185 | my @option_combinations = (); | |
186 | ||
187 | foreach my $filter_id ( keys %{$filters} ) { | |
188 | foreach my $block_size qw( 32 64 128 256 512 1024 ) { | |
189 | foreach my $resample qw( yes no ) { | |
190 | foreach my $passes qw( one two ) { | |
191 | MODE: | |
192 | foreach my $mode qw( normal otlpf ) { | |
193 | ||
194 | # Note: 'otlpf' mode is applicable to | |
195 | # biorthogonal filters only | |
196 | my $filter_type = $filters->{$filter_id}; | |
197 | if ( $filter_type eq 'orthogonal' | |
198 | and $mode eq 'otlpf' ) | |
199 | { | |
200 | next MODE; | |
201 | } | |
202 | ||
203 | my $option_combination | |
204 | = "--filter-id $filter_id " | |
205 | . "--block-size $block_size " | |
206 | . ( $resample eq 'no' ? '--no-resampling ' : q{} ) | |
207 | . ( $passes eq 'two' ? '--two-pass ' : q{} ) | |
208 | . "--mode-$mode"; | |
209 | ||
210 | push @option_combinations, $option_combination; | |
211 | } | |
212 | } | |
213 | } | |
214 | } | |
215 | } | |
216 | ### option_combinations: @option_combinations | |
217 | ||
218 | return \@option_combinations; | |
219 | } | |
220 | ||
221 | sub run_epsilon { | |
222 | my %params = validate( | |
223 | @_, | |
224 | { build_tag => $VALIDATOR_BUILD_TAG, | |
225 | epsilon_options => 0, | |
226 | mpirun_options => 0, | |
227 | file => 1, | |
228 | } | |
229 | ); | |
230 | ||
231 | my $binary_path = get_binary_path( $params{'build_tag'} ); | |
232 | my $command = "$binary_path $params{'epsilon_options'} '$params{'file'}'"; | |
233 | ||
234 | if ( $params{'build_tag'} eq 'mpi' ) { | |
235 | $command = "mpirun $params{'mpirun_options'} $command"; | |
236 | } | |
237 | ||
238 | my $output = `$command 2>&1`; | |
239 | ||
240 | if ( $CHILD_ERROR != 0 ) { | |
241 | die "EPSILON exited with non-zero code.\n" | |
242 | . "Command: '$command'\n" | |
243 | . "Output: $output\n"; | |
244 | } | |
245 | ||
246 | return; | |
247 | } | |
248 | ||
249 | 1; |
0 | SUBDIRS = EPSILON Test |
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | # @configure_input@ | |
2 | ||
3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | # This Makefile.in is free software; the Free Software Foundation | |
6 | # gives unlimited permission to copy and/or distribute it, | |
7 | # with or without modifications, as long as this notice is preserved. | |
8 | ||
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | |
11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | |
12 | # PARTICULAR PURPOSE. | |
13 | ||
14 | @SET_MAKE@ | |
15 | VPATH = @srcdir@ | |
16 | pkgdatadir = $(datadir)/@PACKAGE@ | |
17 | pkglibdir = $(libdir)/@PACKAGE@ | |
18 | pkgincludedir = $(includedir)/@PACKAGE@ | |
19 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | |
20 | install_sh_DATA = $(install_sh) -c -m 644 | |
21 | install_sh_PROGRAM = $(install_sh) -c | |
22 | install_sh_SCRIPT = $(install_sh) -c | |
23 | INSTALL_HEADER = $(INSTALL_DATA) | |
24 | transform = $(program_transform_name) | |
25 | NORMAL_INSTALL = : | |
26 | PRE_INSTALL = : | |
27 | POST_INSTALL = : | |
28 | NORMAL_UNINSTALL = : | |
29 | PRE_UNINSTALL = : | |
30 | POST_UNINSTALL = : | |
31 | build_triplet = @build@ | |
32 | host_triplet = @host@ | |
33 | subdir = tests/lib | |
34 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
35 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
36 | am__aclocal_m4_deps = $(top_srcdir)/configure.in | |
37 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | |
38 | $(ACLOCAL_M4) | |
39 | mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs | |
40 | CONFIG_HEADER = $(top_builddir)/config.h | |
41 | CONFIG_CLEAN_FILES = | |
42 | SOURCES = | |
43 | DIST_SOURCES = | |
44 | RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ | |
45 | html-recursive info-recursive install-data-recursive \ | |
46 | install-dvi-recursive install-exec-recursive \ | |
47 | install-html-recursive install-info-recursive \ | |
48 | install-pdf-recursive install-ps-recursive install-recursive \ | |
49 | installcheck-recursive installdirs-recursive pdf-recursive \ | |
50 | ps-recursive uninstall-recursive | |
51 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ | |
52 | distclean-recursive maintainer-clean-recursive | |
53 | ETAGS = etags | |
54 | CTAGS = ctags | |
55 | DIST_SUBDIRS = $(SUBDIRS) | |
56 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
57 | ACLOCAL = @ACLOCAL@ | |
58 | AMTAR = @AMTAR@ | |
59 | AR = @AR@ | |
60 | AUTOCONF = @AUTOCONF@ | |
61 | AUTOHEADER = @AUTOHEADER@ | |
62 | AUTOMAKE = @AUTOMAKE@ | |
63 | AWK = @AWK@ | |
64 | CC = @CC@ | |
65 | CCDEPMODE = @CCDEPMODE@ | |
66 | CFLAGS = @CFLAGS@ | |
67 | CPP = @CPP@ | |
68 | CPPFLAGS = @CPPFLAGS@ | |
69 | CXX = @CXX@ | |
70 | CXXCPP = @CXXCPP@ | |
71 | CXXDEPMODE = @CXXDEPMODE@ | |
72 | CXXFLAGS = @CXXFLAGS@ | |
73 | CYGPATH_W = @CYGPATH_W@ | |
74 | DEFS = @DEFS@ | |
75 | DEPDIR = @DEPDIR@ | |
76 | DSYMUTIL = @DSYMUTIL@ | |
77 | ECHO = @ECHO@ | |
78 | ECHO_C = @ECHO_C@ | |
79 | ECHO_N = @ECHO_N@ | |
80 | ECHO_T = @ECHO_T@ | |
81 | EGREP = @EGREP@ | |
82 | EXEEXT = @EXEEXT@ | |
83 | F77 = @F77@ | |
84 | FFLAGS = @FFLAGS@ | |
85 | GREP = @GREP@ | |
86 | INSTALL = @INSTALL@ | |
87 | INSTALL_DATA = @INSTALL_DATA@ | |
88 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | |
89 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | |
90 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | |
91 | LDFLAGS = @LDFLAGS@ | |
92 | LIBOBJS = @LIBOBJS@ | |
93 | LIBS = @LIBS@ | |
94 | LIBTOOL = @LIBTOOL@ | |
95 | LN_S = @LN_S@ | |
96 | LTLIBOBJS = @LTLIBOBJS@ | |
97 | MAKEINFO = @MAKEINFO@ | |
98 | MKDIR_P = @MKDIR_P@ | |
99 | NMEDIT = @NMEDIT@ | |
100 | OBJEXT = @OBJEXT@ | |
101 | PACKAGE = @PACKAGE@ | |
102 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | |
103 | PACKAGE_NAME = @PACKAGE_NAME@ | |
104 | PACKAGE_STRING = @PACKAGE_STRING@ | |
105 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | |
106 | PACKAGE_VERSION = @PACKAGE_VERSION@ | |
107 | PATH_SEPARATOR = @PATH_SEPARATOR@ | |
108 | RANLIB = @RANLIB@ | |
109 | SED = @SED@ | |
110 | SET_MAKE = @SET_MAKE@ | |
111 | SHELL = @SHELL@ | |
112 | STRIP = @STRIP@ | |
113 | VERSION = @VERSION@ | |
114 | abs_builddir = @abs_builddir@ | |
115 | abs_srcdir = @abs_srcdir@ | |
116 | abs_top_builddir = @abs_top_builddir@ | |
117 | abs_top_srcdir = @abs_top_srcdir@ | |
118 | ac_ct_CC = @ac_ct_CC@ | |
119 | ac_ct_CXX = @ac_ct_CXX@ | |
120 | ac_ct_F77 = @ac_ct_F77@ | |
121 | am__include = @am__include@ | |
122 | am__leading_dot = @am__leading_dot@ | |
123 | am__quote = @am__quote@ | |
124 | am__tar = @am__tar@ | |
125 | am__untar = @am__untar@ | |
126 | bindir = @bindir@ | |
127 | build = @build@ | |
128 | build_alias = @build_alias@ | |
129 | build_cpu = @build_cpu@ | |
130 | build_os = @build_os@ | |
131 | build_vendor = @build_vendor@ | |
132 | builddir = @builddir@ | |
133 | datadir = @datadir@ | |
134 | datarootdir = @datarootdir@ | |
135 | docdir = @docdir@ | |
136 | dvidir = @dvidir@ | |
137 | exec_prefix = @exec_prefix@ | |
138 | host = @host@ | |
139 | host_alias = @host_alias@ | |
140 | host_cpu = @host_cpu@ | |
141 | host_os = @host_os@ | |
142 | host_vendor = @host_vendor@ | |
143 | htmldir = @htmldir@ | |
144 | includedir = @includedir@ | |
145 | infodir = @infodir@ | |
146 | install_sh = @install_sh@ | |
147 | libdir = @libdir@ | |
148 | libexecdir = @libexecdir@ | |
149 | localedir = @localedir@ | |
150 | localstatedir = @localstatedir@ | |
151 | mandir = @mandir@ | |
152 | mkdir_p = @mkdir_p@ | |
153 | oldincludedir = @oldincludedir@ | |
154 | pdfdir = @pdfdir@ | |
155 | prefix = @prefix@ | |
156 | program_transform_name = @program_transform_name@ | |
157 | psdir = @psdir@ | |
158 | sbindir = @sbindir@ | |
159 | sharedstatedir = @sharedstatedir@ | |
160 | srcdir = @srcdir@ | |
161 | sysconfdir = @sysconfdir@ | |
162 | target_alias = @target_alias@ | |
163 | top_builddir = @top_builddir@ | |
164 | top_srcdir = @top_srcdir@ | |
165 | SUBDIRS = EPSILON Test | |
166 | all: all-recursive | |
167 | ||
168 | .SUFFIXES: | |
169 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | |
170 | @for dep in $?; do \ | |
171 | case '$(am__configure_deps)' in \ | |
172 | *$$dep*) \ | |
173 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ | |
174 | && exit 0; \ | |
175 | exit 1;; \ | |
176 | esac; \ | |
177 | done; \ | |
178 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/lib/Makefile'; \ | |
179 | cd $(top_srcdir) && \ | |
180 | $(AUTOMAKE) --gnu tests/lib/Makefile | |
181 | .PRECIOUS: Makefile | |
182 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | |
183 | @case '$?' in \ | |
184 | *config.status*) \ | |
185 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | |
186 | *) \ | |
187 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
188 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
189 | esac; | |
190 | ||
191 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | |
192 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
193 | ||
194 | $(top_srcdir)/configure: $(am__configure_deps) | |
195 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
196 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | |
197 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
198 | ||
199 | mostlyclean-libtool: | |
200 | -rm -f *.lo | |
201 | ||
202 | clean-libtool: | |
203 | -rm -rf .libs _libs | |
204 | ||
205 | # This directory's subdirectories are mostly independent; you can cd | |
206 | # into them and run `make' without going through this Makefile. | |
207 | # To change the values of `make' variables: instead of editing Makefiles, | |
208 | # (1) if the variable is set in `config.status', edit `config.status' | |
209 | # (which will cause the Makefiles to be regenerated when you run `make'); | |
210 | # (2) otherwise, pass the desired values on the `make' command line. | |
211 | $(RECURSIVE_TARGETS): | |
212 | @failcom='exit 1'; \ | |
213 | for f in x $$MAKEFLAGS; do \ | |
214 | case $$f in \ | |
215 | *=* | --[!k]*);; \ | |
216 | *k*) failcom='fail=yes';; \ | |
217 | esac; \ | |
218 | done; \ | |
219 | dot_seen=no; \ | |
220 | target=`echo $@ | sed s/-recursive//`; \ | |
221 | list='$(SUBDIRS)'; for subdir in $$list; do \ | |
222 | echo "Making $$target in $$subdir"; \ | |
223 | if test "$$subdir" = "."; then \ | |
224 | dot_seen=yes; \ | |
225 | local_target="$$target-am"; \ | |
226 | else \ | |
227 | local_target="$$target"; \ | |
228 | fi; \ | |
229 | (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | |
230 | || eval $$failcom; \ | |
231 | done; \ | |
232 | if test "$$dot_seen" = "no"; then \ | |
233 | $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ | |
234 | fi; test -z "$$fail" | |
235 | ||
236 | $(RECURSIVE_CLEAN_TARGETS): | |
237 | @failcom='exit 1'; \ | |
238 | for f in x $$MAKEFLAGS; do \ | |
239 | case $$f in \ | |
240 | *=* | --[!k]*);; \ | |
241 | *k*) failcom='fail=yes';; \ | |
242 | esac; \ | |
243 | done; \ | |
244 | dot_seen=no; \ | |
245 | case "$@" in \ | |
246 | distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ | |
247 | *) list='$(SUBDIRS)' ;; \ | |
248 | esac; \ | |
249 | rev=''; for subdir in $$list; do \ | |
250 | if test "$$subdir" = "."; then :; else \ | |
251 | rev="$$subdir $$rev"; \ | |
252 | fi; \ | |
253 | done; \ | |
254 | rev="$$rev ."; \ | |
255 | target=`echo $@ | sed s/-recursive//`; \ | |
256 | for subdir in $$rev; do \ | |
257 | echo "Making $$target in $$subdir"; \ | |
258 | if test "$$subdir" = "."; then \ | |
259 | local_target="$$target-am"; \ | |
260 | else \ | |
261 | local_target="$$target"; \ | |
262 | fi; \ | |
263 | (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | |
264 | || eval $$failcom; \ | |
265 | done && test -z "$$fail" | |
266 | tags-recursive: | |
267 | list='$(SUBDIRS)'; for subdir in $$list; do \ | |
268 | test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ | |
269 | done | |
270 | ctags-recursive: | |
271 | list='$(SUBDIRS)'; for subdir in $$list; do \ | |
272 | test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ | |
273 | done | |
274 | ||
275 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | |
276 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | |
277 | unique=`for i in $$list; do \ | |
278 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | |
279 | done | \ | |
280 | $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ | |
281 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
282 | mkid -fID $$unique | |
283 | tags: TAGS | |
284 | ||
285 | TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | |
286 | $(TAGS_FILES) $(LISP) | |
287 | tags=; \ | |
288 | here=`pwd`; \ | |
289 | if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ | |
290 | include_option=--etags-include; \ | |
291 | empty_fix=.; \ | |
292 | else \ | |
293 | include_option=--include; \ | |
294 | empty_fix=; \ | |
295 | fi; \ | |
296 | list='$(SUBDIRS)'; for subdir in $$list; do \ | |
297 | if test "$$subdir" = .; then :; else \ | |
298 | test ! -f $$subdir/TAGS || \ | |
299 | tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ | |
300 | fi; \ | |
301 | done; \ | |
302 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | |
303 | unique=`for i in $$list; do \ | |
304 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | |
305 | done | \ | |
306 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | |
307 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
308 | if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ | |
309 | test -n "$$unique" || unique=$$empty_fix; \ | |
310 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | |
311 | $$tags $$unique; \ | |
312 | fi | |
313 | ctags: CTAGS | |
314 | CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | |
315 | $(TAGS_FILES) $(LISP) | |
316 | tags=; \ | |
317 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | |
318 | unique=`for i in $$list; do \ | |
319 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | |
320 | done | \ | |
321 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | |
322 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
323 | test -z "$(CTAGS_ARGS)$$tags$$unique" \ | |
324 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | |
325 | $$tags $$unique | |
326 | ||
327 | GTAGS: | |
328 | here=`$(am__cd) $(top_builddir) && pwd` \ | |
329 | && cd $(top_srcdir) \ | |
330 | && gtags -i $(GTAGS_ARGS) $$here | |
331 | ||
332 | distclean-tags: | |
333 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
334 | ||
335 | distdir: $(DISTFILES) | |
336 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
337 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
338 | list='$(DISTFILES)'; \ | |
339 | dist_files=`for file in $$list; do echo $$file; done | \ | |
340 | sed -e "s|^$$srcdirstrip/||;t" \ | |
341 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
342 | case $$dist_files in \ | |
343 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
344 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
345 | sort -u` ;; \ | |
346 | esac; \ | |
347 | for file in $$dist_files; do \ | |
348 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
349 | if test -d $$d/$$file; then \ | |
350 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
351 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
352 | cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ | |
353 | fi; \ | |
354 | cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ | |
355 | else \ | |
356 | test -f $(distdir)/$$file \ | |
357 | || cp -p $$d/$$file $(distdir)/$$file \ | |
358 | || exit 1; \ | |
359 | fi; \ | |
360 | done | |
361 | list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
362 | if test "$$subdir" = .; then :; else \ | |
363 | test -d "$(distdir)/$$subdir" \ | |
364 | || $(MKDIR_P) "$(distdir)/$$subdir" \ | |
365 | || exit 1; \ | |
366 | distdir=`$(am__cd) $(distdir) && pwd`; \ | |
367 | top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ | |
368 | (cd $$subdir && \ | |
369 | $(MAKE) $(AM_MAKEFLAGS) \ | |
370 | top_distdir="$$top_distdir" \ | |
371 | distdir="$$distdir/$$subdir" \ | |
372 | am__remove_distdir=: \ | |
373 | am__skip_length_check=: \ | |
374 | distdir) \ | |
375 | || exit 1; \ | |
376 | fi; \ | |
377 | done | |
378 | check-am: all-am | |
379 | check: check-recursive | |
380 | all-am: Makefile | |
381 | installdirs: installdirs-recursive | |
382 | installdirs-am: | |
383 | install: install-recursive | |
384 | install-exec: install-exec-recursive | |
385 | install-data: install-data-recursive | |
386 | uninstall: uninstall-recursive | |
387 | ||
388 | install-am: all-am | |
389 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | |
390 | ||
391 | installcheck: installcheck-recursive | |
392 | install-strip: | |
393 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | |
394 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | |
395 | `test -z '$(STRIP)' || \ | |
396 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | |
397 | mostlyclean-generic: | |
398 | ||
399 | clean-generic: | |
400 | ||
401 | distclean-generic: | |
402 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | |
403 | ||
404 | maintainer-clean-generic: | |
405 | @echo "This command is intended for maintainers to use" | |
406 | @echo "it deletes files that may require special tools to rebuild." | |
407 | clean: clean-recursive | |
408 | ||
409 | clean-am: clean-generic clean-libtool mostlyclean-am | |
410 | ||
411 | distclean: distclean-recursive | |
412 | -rm -f Makefile | |
413 | distclean-am: clean-am distclean-generic distclean-tags | |
414 | ||
415 | dvi: dvi-recursive | |
416 | ||
417 | dvi-am: | |
418 | ||
419 | html: html-recursive | |
420 | ||
421 | info: info-recursive | |
422 | ||
423 | info-am: | |
424 | ||
425 | install-data-am: | |
426 | ||
427 | install-dvi: install-dvi-recursive | |
428 | ||
429 | install-exec-am: | |
430 | ||
431 | install-html: install-html-recursive | |
432 | ||
433 | install-info: install-info-recursive | |
434 | ||
435 | install-man: | |
436 | ||
437 | install-pdf: install-pdf-recursive | |
438 | ||
439 | install-ps: install-ps-recursive | |
440 | ||
441 | installcheck-am: | |
442 | ||
443 | maintainer-clean: maintainer-clean-recursive | |
444 | -rm -f Makefile | |
445 | maintainer-clean-am: distclean-am maintainer-clean-generic | |
446 | ||
447 | mostlyclean: mostlyclean-recursive | |
448 | ||
449 | mostlyclean-am: mostlyclean-generic mostlyclean-libtool | |
450 | ||
451 | pdf: pdf-recursive | |
452 | ||
453 | pdf-am: | |
454 | ||
455 | ps: ps-recursive | |
456 | ||
457 | ps-am: | |
458 | ||
459 | uninstall-am: | |
460 | ||
461 | .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ | |
462 | install-strip | |
463 | ||
464 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ | |
465 | all all-am check check-am clean clean-generic clean-libtool \ | |
466 | ctags ctags-recursive distclean distclean-generic \ | |
467 | distclean-libtool distclean-tags distdir dvi dvi-am html \ | |
468 | html-am info info-am install install-am install-data \ | |
469 | install-data-am install-dvi install-dvi-am install-exec \ | |
470 | install-exec-am install-html install-html-am install-info \ | |
471 | install-info-am install-man install-pdf install-pdf-am \ | |
472 | install-ps install-ps-am install-strip installcheck \ | |
473 | installcheck-am installdirs installdirs-am maintainer-clean \ | |
474 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
475 | mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ | |
476 | uninstall uninstall-am | |
477 | ||
478 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
479 | # Otherwise a system limit (for SysV at least) may be exceeded. | |
480 | .NOEXPORT: |
0 | SUBDIRS = PBM |
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | # @configure_input@ | |
2 | ||
3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | # This Makefile.in is free software; the Free Software Foundation | |
6 | # gives unlimited permission to copy and/or distribute it, | |
7 | # with or without modifications, as long as this notice is preserved. | |
8 | ||
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | |
11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | |
12 | # PARTICULAR PURPOSE. | |
13 | ||
14 | @SET_MAKE@ | |
15 | VPATH = @srcdir@ | |
16 | pkgdatadir = $(datadir)/@PACKAGE@ | |
17 | pkglibdir = $(libdir)/@PACKAGE@ | |
18 | pkgincludedir = $(includedir)/@PACKAGE@ | |
19 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | |
20 | install_sh_DATA = $(install_sh) -c -m 644 | |
21 | install_sh_PROGRAM = $(install_sh) -c | |
22 | install_sh_SCRIPT = $(install_sh) -c | |
23 | INSTALL_HEADER = $(INSTALL_DATA) | |
24 | transform = $(program_transform_name) | |
25 | NORMAL_INSTALL = : | |
26 | PRE_INSTALL = : | |
27 | POST_INSTALL = : | |
28 | NORMAL_UNINSTALL = : | |
29 | PRE_UNINSTALL = : | |
30 | POST_UNINSTALL = : | |
31 | build_triplet = @build@ | |
32 | host_triplet = @host@ | |
33 | subdir = tests/lib/Test | |
34 | DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in | |
35 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
36 | am__aclocal_m4_deps = $(top_srcdir)/configure.in | |
37 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | |
38 | $(ACLOCAL_M4) | |
39 | mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs | |
40 | CONFIG_HEADER = $(top_builddir)/config.h | |
41 | CONFIG_CLEAN_FILES = | |
42 | SOURCES = | |
43 | DIST_SOURCES = | |
44 | RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ | |
45 | html-recursive info-recursive install-data-recursive \ | |
46 | install-dvi-recursive install-exec-recursive \ | |
47 | install-html-recursive install-info-recursive \ | |
48 | install-pdf-recursive install-ps-recursive install-recursive \ | |
49 | installcheck-recursive installdirs-recursive pdf-recursive \ | |
50 | ps-recursive uninstall-recursive | |
51 | RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ | |
52 | distclean-recursive maintainer-clean-recursive | |
53 | ETAGS = etags | |
54 | CTAGS = ctags | |
55 | DIST_SUBDIRS = $(SUBDIRS) | |
56 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
57 | ACLOCAL = @ACLOCAL@ | |
58 | AMTAR = @AMTAR@ | |
59 | AR = @AR@ | |
60 | AUTOCONF = @AUTOCONF@ | |
61 | AUTOHEADER = @AUTOHEADER@ | |
62 | AUTOMAKE = @AUTOMAKE@ | |
63 | AWK = @AWK@ | |
64 | CC = @CC@ | |
65 | CCDEPMODE = @CCDEPMODE@ | |
66 | CFLAGS = @CFLAGS@ | |
67 | CPP = @CPP@ | |
68 | CPPFLAGS = @CPPFLAGS@ | |
69 | CXX = @CXX@ | |
70 | CXXCPP = @CXXCPP@ | |
71 | CXXDEPMODE = @CXXDEPMODE@ | |
72 | CXXFLAGS = @CXXFLAGS@ | |
73 | CYGPATH_W = @CYGPATH_W@ | |
74 | DEFS = @DEFS@ | |
75 | DEPDIR = @DEPDIR@ | |
76 | DSYMUTIL = @DSYMUTIL@ | |
77 | ECHO = @ECHO@ | |
78 | ECHO_C = @ECHO_C@ | |
79 | ECHO_N = @ECHO_N@ | |
80 | ECHO_T = @ECHO_T@ | |
81 | EGREP = @EGREP@ | |
82 | EXEEXT = @EXEEXT@ | |
83 | F77 = @F77@ | |
84 | FFLAGS = @FFLAGS@ | |
85 | GREP = @GREP@ | |
86 | INSTALL = @INSTALL@ | |
87 | INSTALL_DATA = @INSTALL_DATA@ | |
88 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | |
89 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | |
90 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | |
91 | LDFLAGS = @LDFLAGS@ | |
92 | LIBOBJS = @LIBOBJS@ | |
93 | LIBS = @LIBS@ | |
94 | LIBTOOL = @LIBTOOL@ | |
95 | LN_S = @LN_S@ | |
96 | LTLIBOBJS = @LTLIBOBJS@ | |
97 | MAKEINFO = @MAKEINFO@ | |
98 | MKDIR_P = @MKDIR_P@ | |
99 | NMEDIT = @NMEDIT@ | |
100 | OBJEXT = @OBJEXT@ | |
101 | PACKAGE = @PACKAGE@ | |
102 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | |
103 | PACKAGE_NAME = @PACKAGE_NAME@ | |
104 | PACKAGE_STRING = @PACKAGE_STRING@ | |
105 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | |
106 | PACKAGE_VERSION = @PACKAGE_VERSION@ | |
107 | PATH_SEPARATOR = @PATH_SEPARATOR@ | |
108 | RANLIB = @RANLIB@ | |
109 | SED = @SED@ | |
110 | SET_MAKE = @SET_MAKE@ | |
111 | SHELL = @SHELL@ | |
112 | STRIP = @STRIP@ | |
113 | VERSION = @VERSION@ | |
114 | abs_builddir = @abs_builddir@ | |
115 | abs_srcdir = @abs_srcdir@ | |
116 | abs_top_builddir = @abs_top_builddir@ | |
117 | abs_top_srcdir = @abs_top_srcdir@ | |
118 | ac_ct_CC = @ac_ct_CC@ | |
119 | ac_ct_CXX = @ac_ct_CXX@ | |
120 | ac_ct_F77 = @ac_ct_F77@ | |
121 | am__include = @am__include@ | |
122 | am__leading_dot = @am__leading_dot@ | |
123 | am__quote = @am__quote@ | |
124 | am__tar = @am__tar@ | |
125 | am__untar = @am__untar@ | |
126 | bindir = @bindir@ | |
127 | build = @build@ | |
128 | build_alias = @build_alias@ | |
129 | build_cpu = @build_cpu@ | |
130 | build_os = @build_os@ | |
131 | build_vendor = @build_vendor@ | |
132 | builddir = @builddir@ | |
133 | datadir = @datadir@ | |
134 | datarootdir = @datarootdir@ | |
135 | docdir = @docdir@ | |
136 | dvidir = @dvidir@ | |
137 | exec_prefix = @exec_prefix@ | |
138 | host = @host@ | |
139 | host_alias = @host_alias@ | |
140 | host_cpu = @host_cpu@ | |
141 | host_os = @host_os@ | |
142 | host_vendor = @host_vendor@ | |
143 | htmldir = @htmldir@ | |
144 | includedir = @includedir@ | |
145 | infodir = @infodir@ | |
146 | install_sh = @install_sh@ | |
147 | libdir = @libdir@ | |
148 | libexecdir = @libexecdir@ | |
149 | localedir = @localedir@ | |
150 | localstatedir = @localstatedir@ | |
151 | mandir = @mandir@ | |
152 | mkdir_p = @mkdir_p@ | |
153 | oldincludedir = @oldincludedir@ | |
154 | pdfdir = @pdfdir@ | |
155 | prefix = @prefix@ | |
156 | program_transform_name = @program_transform_name@ | |
157 | psdir = @psdir@ | |
158 | sbindir = @sbindir@ | |
159 | sharedstatedir = @sharedstatedir@ | |
160 | srcdir = @srcdir@ | |
161 | sysconfdir = @sysconfdir@ | |
162 | target_alias = @target_alias@ | |
163 | top_builddir = @top_builddir@ | |
164 | top_srcdir = @top_srcdir@ | |
165 | SUBDIRS = PBM | |
166 | all: all-recursive | |
167 | ||
168 | .SUFFIXES: | |
169 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | |
170 | @for dep in $?; do \ | |
171 | case '$(am__configure_deps)' in \ | |
172 | *$$dep*) \ | |
173 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ | |
174 | && exit 0; \ | |
175 | exit 1;; \ | |
176 | esac; \ | |
177 | done; \ | |
178 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/lib/Test/Makefile'; \ | |
179 | cd $(top_srcdir) && \ | |
180 | $(AUTOMAKE) --gnu tests/lib/Test/Makefile | |
181 | .PRECIOUS: Makefile | |
182 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | |
183 | @case '$?' in \ | |
184 | *config.status*) \ | |
185 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | |
186 | *) \ | |
187 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
188 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
189 | esac; | |
190 | ||
191 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | |
192 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
193 | ||
194 | $(top_srcdir)/configure: $(am__configure_deps) | |
195 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
196 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | |
197 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
198 | ||
199 | mostlyclean-libtool: | |
200 | -rm -f *.lo | |
201 | ||
202 | clean-libtool: | |
203 | -rm -rf .libs _libs | |
204 | ||
205 | # This directory's subdirectories are mostly independent; you can cd | |
206 | # into them and run `make' without going through this Makefile. | |
207 | # To change the values of `make' variables: instead of editing Makefiles, | |
208 | # (1) if the variable is set in `config.status', edit `config.status' | |
209 | # (which will cause the Makefiles to be regenerated when you run `make'); | |
210 | # (2) otherwise, pass the desired values on the `make' command line. | |
211 | $(RECURSIVE_TARGETS): | |
212 | @failcom='exit 1'; \ | |
213 | for f in x $$MAKEFLAGS; do \ | |
214 | case $$f in \ | |
215 | *=* | --[!k]*);; \ | |
216 | *k*) failcom='fail=yes';; \ | |
217 | esac; \ | |
218 | done; \ | |
219 | dot_seen=no; \ | |
220 | target=`echo $@ | sed s/-recursive//`; \ | |
221 | list='$(SUBDIRS)'; for subdir in $$list; do \ | |
222 | echo "Making $$target in $$subdir"; \ | |
223 | if test "$$subdir" = "."; then \ | |
224 | dot_seen=yes; \ | |
225 | local_target="$$target-am"; \ | |
226 | else \ | |
227 | local_target="$$target"; \ | |
228 | fi; \ | |
229 | (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | |
230 | || eval $$failcom; \ | |
231 | done; \ | |
232 | if test "$$dot_seen" = "no"; then \ | |
233 | $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ | |
234 | fi; test -z "$$fail" | |
235 | ||
236 | $(RECURSIVE_CLEAN_TARGETS): | |
237 | @failcom='exit 1'; \ | |
238 | for f in x $$MAKEFLAGS; do \ | |
239 | case $$f in \ | |
240 | *=* | --[!k]*);; \ | |
241 | *k*) failcom='fail=yes';; \ | |
242 | esac; \ | |
243 | done; \ | |
244 | dot_seen=no; \ | |
245 | case "$@" in \ | |
246 | distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ | |
247 | *) list='$(SUBDIRS)' ;; \ | |
248 | esac; \ | |
249 | rev=''; for subdir in $$list; do \ | |
250 | if test "$$subdir" = "."; then :; else \ | |
251 | rev="$$subdir $$rev"; \ | |
252 | fi; \ | |
253 | done; \ | |
254 | rev="$$rev ."; \ | |
255 | target=`echo $@ | sed s/-recursive//`; \ | |
256 | for subdir in $$rev; do \ | |
257 | echo "Making $$target in $$subdir"; \ | |
258 | if test "$$subdir" = "."; then \ | |
259 | local_target="$$target-am"; \ | |
260 | else \ | |
261 | local_target="$$target"; \ | |
262 | fi; \ | |
263 | (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ | |
264 | || eval $$failcom; \ | |
265 | done && test -z "$$fail" | |
266 | tags-recursive: | |
267 | list='$(SUBDIRS)'; for subdir in $$list; do \ | |
268 | test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ | |
269 | done | |
270 | ctags-recursive: | |
271 | list='$(SUBDIRS)'; for subdir in $$list; do \ | |
272 | test "$$subdir" = . || (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ | |
273 | done | |
274 | ||
275 | ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) | |
276 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | |
277 | unique=`for i in $$list; do \ | |
278 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | |
279 | done | \ | |
280 | $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \ | |
281 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
282 | mkid -fID $$unique | |
283 | tags: TAGS | |
284 | ||
285 | TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | |
286 | $(TAGS_FILES) $(LISP) | |
287 | tags=; \ | |
288 | here=`pwd`; \ | |
289 | if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ | |
290 | include_option=--etags-include; \ | |
291 | empty_fix=.; \ | |
292 | else \ | |
293 | include_option=--include; \ | |
294 | empty_fix=; \ | |
295 | fi; \ | |
296 | list='$(SUBDIRS)'; for subdir in $$list; do \ | |
297 | if test "$$subdir" = .; then :; else \ | |
298 | test ! -f $$subdir/TAGS || \ | |
299 | tags="$$tags $$include_option=$$here/$$subdir/TAGS"; \ | |
300 | fi; \ | |
301 | done; \ | |
302 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | |
303 | unique=`for i in $$list; do \ | |
304 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | |
305 | done | \ | |
306 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | |
307 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
308 | if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \ | |
309 | test -n "$$unique" || unique=$$empty_fix; \ | |
310 | $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ | |
311 | $$tags $$unique; \ | |
312 | fi | |
313 | ctags: CTAGS | |
314 | CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ | |
315 | $(TAGS_FILES) $(LISP) | |
316 | tags=; \ | |
317 | list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ | |
318 | unique=`for i in $$list; do \ | |
319 | if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ | |
320 | done | \ | |
321 | $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ | |
322 | END { if (nonempty) { for (i in files) print i; }; }'`; \ | |
323 | test -z "$(CTAGS_ARGS)$$tags$$unique" \ | |
324 | || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ | |
325 | $$tags $$unique | |
326 | ||
327 | GTAGS: | |
328 | here=`$(am__cd) $(top_builddir) && pwd` \ | |
329 | && cd $(top_srcdir) \ | |
330 | && gtags -i $(GTAGS_ARGS) $$here | |
331 | ||
332 | distclean-tags: | |
333 | -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags | |
334 | ||
335 | distdir: $(DISTFILES) | |
336 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
337 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
338 | list='$(DISTFILES)'; \ | |
339 | dist_files=`for file in $$list; do echo $$file; done | \ | |
340 | sed -e "s|^$$srcdirstrip/||;t" \ | |
341 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
342 | case $$dist_files in \ | |
343 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
344 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
345 | sort -u` ;; \ | |
346 | esac; \ | |
347 | for file in $$dist_files; do \ | |
348 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
349 | if test -d $$d/$$file; then \ | |
350 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
351 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
352 | cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ | |
353 | fi; \ | |
354 | cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ | |
355 | else \ | |
356 | test -f $(distdir)/$$file \ | |
357 | || cp -p $$d/$$file $(distdir)/$$file \ | |
358 | || exit 1; \ | |
359 | fi; \ | |
360 | done | |
361 | list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ | |
362 | if test "$$subdir" = .; then :; else \ | |
363 | test -d "$(distdir)/$$subdir" \ | |
364 | || $(MKDIR_P) "$(distdir)/$$subdir" \ | |
365 | || exit 1; \ | |
366 | distdir=`$(am__cd) $(distdir) && pwd`; \ | |
367 | top_distdir=`$(am__cd) $(top_distdir) && pwd`; \ | |
368 | (cd $$subdir && \ | |
369 | $(MAKE) $(AM_MAKEFLAGS) \ | |
370 | top_distdir="$$top_distdir" \ | |
371 | distdir="$$distdir/$$subdir" \ | |
372 | am__remove_distdir=: \ | |
373 | am__skip_length_check=: \ | |
374 | distdir) \ | |
375 | || exit 1; \ | |
376 | fi; \ | |
377 | done | |
378 | check-am: all-am | |
379 | check: check-recursive | |
380 | all-am: Makefile | |
381 | installdirs: installdirs-recursive | |
382 | installdirs-am: | |
383 | install: install-recursive | |
384 | install-exec: install-exec-recursive | |
385 | install-data: install-data-recursive | |
386 | uninstall: uninstall-recursive | |
387 | ||
388 | install-am: all-am | |
389 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | |
390 | ||
391 | installcheck: installcheck-recursive | |
392 | install-strip: | |
393 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | |
394 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | |
395 | `test -z '$(STRIP)' || \ | |
396 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | |
397 | mostlyclean-generic: | |
398 | ||
399 | clean-generic: | |
400 | ||
401 | distclean-generic: | |
402 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | |
403 | ||
404 | maintainer-clean-generic: | |
405 | @echo "This command is intended for maintainers to use" | |
406 | @echo "it deletes files that may require special tools to rebuild." | |
407 | clean: clean-recursive | |
408 | ||
409 | clean-am: clean-generic clean-libtool mostlyclean-am | |
410 | ||
411 | distclean: distclean-recursive | |
412 | -rm -f Makefile | |
413 | distclean-am: clean-am distclean-generic distclean-tags | |
414 | ||
415 | dvi: dvi-recursive | |
416 | ||
417 | dvi-am: | |
418 | ||
419 | html: html-recursive | |
420 | ||
421 | info: info-recursive | |
422 | ||
423 | info-am: | |
424 | ||
425 | install-data-am: | |
426 | ||
427 | install-dvi: install-dvi-recursive | |
428 | ||
429 | install-exec-am: | |
430 | ||
431 | install-html: install-html-recursive | |
432 | ||
433 | install-info: install-info-recursive | |
434 | ||
435 | install-man: | |
436 | ||
437 | install-pdf: install-pdf-recursive | |
438 | ||
439 | install-ps: install-ps-recursive | |
440 | ||
441 | installcheck-am: | |
442 | ||
443 | maintainer-clean: maintainer-clean-recursive | |
444 | -rm -f Makefile | |
445 | maintainer-clean-am: distclean-am maintainer-clean-generic | |
446 | ||
447 | mostlyclean: mostlyclean-recursive | |
448 | ||
449 | mostlyclean-am: mostlyclean-generic mostlyclean-libtool | |
450 | ||
451 | pdf: pdf-recursive | |
452 | ||
453 | pdf-am: | |
454 | ||
455 | ps: ps-recursive | |
456 | ||
457 | ps-am: | |
458 | ||
459 | uninstall-am: | |
460 | ||
461 | .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) install-am \ | |
462 | install-strip | |
463 | ||
464 | .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ | |
465 | all all-am check check-am clean clean-generic clean-libtool \ | |
466 | ctags ctags-recursive distclean distclean-generic \ | |
467 | distclean-libtool distclean-tags distdir dvi dvi-am html \ | |
468 | html-am info info-am install install-am install-data \ | |
469 | install-data-am install-dvi install-dvi-am install-exec \ | |
470 | install-exec-am install-html install-html-am install-info \ | |
471 | install-info-am install-man install-pdf install-pdf-am \ | |
472 | install-ps install-ps-am install-strip installcheck \ | |
473 | installcheck-am installdirs installdirs-am maintainer-clean \ | |
474 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
475 | mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ | |
476 | uninstall uninstall-am | |
477 | ||
478 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
479 | # Otherwise a system limit (for SysV at least) may be exceeded. | |
480 | .NOEXPORT: |
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | # @configure_input@ | |
2 | ||
3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | # This Makefile.in is free software; the Free Software Foundation | |
6 | # gives unlimited permission to copy and/or distribute it, | |
7 | # with or without modifications, as long as this notice is preserved. | |
8 | ||
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | |
11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | |
12 | # PARTICULAR PURPOSE. | |
13 | ||
14 | @SET_MAKE@ | |
15 | ||
16 | VPATH = @srcdir@ | |
17 | pkgdatadir = $(datadir)/@PACKAGE@ | |
18 | pkglibdir = $(libdir)/@PACKAGE@ | |
19 | pkgincludedir = $(includedir)/@PACKAGE@ | |
20 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | |
21 | install_sh_DATA = $(install_sh) -c -m 644 | |
22 | install_sh_PROGRAM = $(install_sh) -c | |
23 | install_sh_SCRIPT = $(install_sh) -c | |
24 | INSTALL_HEADER = $(INSTALL_DATA) | |
25 | transform = $(program_transform_name) | |
26 | NORMAL_INSTALL = : | |
27 | PRE_INSTALL = : | |
28 | POST_INSTALL = : | |
29 | NORMAL_UNINSTALL = : | |
30 | PRE_UNINSTALL = : | |
31 | POST_UNINSTALL = : | |
32 | build_triplet = @build@ | |
33 | host_triplet = @host@ | |
34 | subdir = tests/lib/Test/PBM | |
35 | DIST_COMMON = $(dist_noinst_DATA) $(srcdir)/Makefile.am \ | |
36 | $(srcdir)/Makefile.in | |
37 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
38 | am__aclocal_m4_deps = $(top_srcdir)/configure.in | |
39 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | |
40 | $(ACLOCAL_M4) | |
41 | mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs | |
42 | CONFIG_HEADER = $(top_builddir)/config.h | |
43 | CONFIG_CLEAN_FILES = | |
44 | SOURCES = | |
45 | DIST_SOURCES = | |
46 | DATA = $(dist_noinst_DATA) | |
47 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
48 | ACLOCAL = @ACLOCAL@ | |
49 | AMTAR = @AMTAR@ | |
50 | AR = @AR@ | |
51 | AUTOCONF = @AUTOCONF@ | |
52 | AUTOHEADER = @AUTOHEADER@ | |
53 | AUTOMAKE = @AUTOMAKE@ | |
54 | AWK = @AWK@ | |
55 | CC = @CC@ | |
56 | CCDEPMODE = @CCDEPMODE@ | |
57 | CFLAGS = @CFLAGS@ | |
58 | CPP = @CPP@ | |
59 | CPPFLAGS = @CPPFLAGS@ | |
60 | CXX = @CXX@ | |
61 | CXXCPP = @CXXCPP@ | |
62 | CXXDEPMODE = @CXXDEPMODE@ | |
63 | CXXFLAGS = @CXXFLAGS@ | |
64 | CYGPATH_W = @CYGPATH_W@ | |
65 | DEFS = @DEFS@ | |
66 | DEPDIR = @DEPDIR@ | |
67 | DSYMUTIL = @DSYMUTIL@ | |
68 | ECHO = @ECHO@ | |
69 | ECHO_C = @ECHO_C@ | |
70 | ECHO_N = @ECHO_N@ | |
71 | ECHO_T = @ECHO_T@ | |
72 | EGREP = @EGREP@ | |
73 | EXEEXT = @EXEEXT@ | |
74 | F77 = @F77@ | |
75 | FFLAGS = @FFLAGS@ | |
76 | GREP = @GREP@ | |
77 | INSTALL = @INSTALL@ | |
78 | INSTALL_DATA = @INSTALL_DATA@ | |
79 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | |
80 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | |
81 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | |
82 | LDFLAGS = @LDFLAGS@ | |
83 | LIBOBJS = @LIBOBJS@ | |
84 | LIBS = @LIBS@ | |
85 | LIBTOOL = @LIBTOOL@ | |
86 | LN_S = @LN_S@ | |
87 | LTLIBOBJS = @LTLIBOBJS@ | |
88 | MAKEINFO = @MAKEINFO@ | |
89 | MKDIR_P = @MKDIR_P@ | |
90 | NMEDIT = @NMEDIT@ | |
91 | OBJEXT = @OBJEXT@ | |
92 | PACKAGE = @PACKAGE@ | |
93 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | |
94 | PACKAGE_NAME = @PACKAGE_NAME@ | |
95 | PACKAGE_STRING = @PACKAGE_STRING@ | |
96 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | |
97 | PACKAGE_VERSION = @PACKAGE_VERSION@ | |
98 | PATH_SEPARATOR = @PATH_SEPARATOR@ | |
99 | RANLIB = @RANLIB@ | |
100 | SED = @SED@ | |
101 | SET_MAKE = @SET_MAKE@ | |
102 | SHELL = @SHELL@ | |
103 | STRIP = @STRIP@ | |
104 | VERSION = @VERSION@ | |
105 | abs_builddir = @abs_builddir@ | |
106 | abs_srcdir = @abs_srcdir@ | |
107 | abs_top_builddir = @abs_top_builddir@ | |
108 | abs_top_srcdir = @abs_top_srcdir@ | |
109 | ac_ct_CC = @ac_ct_CC@ | |
110 | ac_ct_CXX = @ac_ct_CXX@ | |
111 | ac_ct_F77 = @ac_ct_F77@ | |
112 | am__include = @am__include@ | |
113 | am__leading_dot = @am__leading_dot@ | |
114 | am__quote = @am__quote@ | |
115 | am__tar = @am__tar@ | |
116 | am__untar = @am__untar@ | |
117 | bindir = @bindir@ | |
118 | build = @build@ | |
119 | build_alias = @build_alias@ | |
120 | build_cpu = @build_cpu@ | |
121 | build_os = @build_os@ | |
122 | build_vendor = @build_vendor@ | |
123 | builddir = @builddir@ | |
124 | datadir = @datadir@ | |
125 | datarootdir = @datarootdir@ | |
126 | docdir = @docdir@ | |
127 | dvidir = @dvidir@ | |
128 | exec_prefix = @exec_prefix@ | |
129 | host = @host@ | |
130 | host_alias = @host_alias@ | |
131 | host_cpu = @host_cpu@ | |
132 | host_os = @host_os@ | |
133 | host_vendor = @host_vendor@ | |
134 | htmldir = @htmldir@ | |
135 | includedir = @includedir@ | |
136 | infodir = @infodir@ | |
137 | install_sh = @install_sh@ | |
138 | libdir = @libdir@ | |
139 | libexecdir = @libexecdir@ | |
140 | localedir = @localedir@ | |
141 | localstatedir = @localstatedir@ | |
142 | mandir = @mandir@ | |
143 | mkdir_p = @mkdir_p@ | |
144 | oldincludedir = @oldincludedir@ | |
145 | pdfdir = @pdfdir@ | |
146 | prefix = @prefix@ | |
147 | program_transform_name = @program_transform_name@ | |
148 | psdir = @psdir@ | |
149 | sbindir = @sbindir@ | |
150 | sharedstatedir = @sharedstatedir@ | |
151 | srcdir = @srcdir@ | |
152 | sysconfdir = @sysconfdir@ | |
153 | target_alias = @target_alias@ | |
154 | top_builddir = @top_builddir@ | |
155 | top_srcdir = @top_srcdir@ | |
156 | INCLUDES = | |
157 | METASOURCES = AUTO | |
158 | dist_noinst_DATA = PSNR.pm | |
159 | all: all-am | |
160 | ||
161 | .SUFFIXES: | |
162 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | |
163 | @for dep in $?; do \ | |
164 | case '$(am__configure_deps)' in \ | |
165 | *$$dep*) \ | |
166 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ | |
167 | && exit 0; \ | |
168 | exit 1;; \ | |
169 | esac; \ | |
170 | done; \ | |
171 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/lib/Test/PBM/Makefile'; \ | |
172 | cd $(top_srcdir) && \ | |
173 | $(AUTOMAKE) --gnu tests/lib/Test/PBM/Makefile | |
174 | .PRECIOUS: Makefile | |
175 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | |
176 | @case '$?' in \ | |
177 | *config.status*) \ | |
178 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | |
179 | *) \ | |
180 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
181 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
182 | esac; | |
183 | ||
184 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | |
185 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
186 | ||
187 | $(top_srcdir)/configure: $(am__configure_deps) | |
188 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
189 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | |
190 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
191 | ||
192 | mostlyclean-libtool: | |
193 | -rm -f *.lo | |
194 | ||
195 | clean-libtool: | |
196 | -rm -rf .libs _libs | |
197 | tags: TAGS | |
198 | TAGS: | |
199 | ||
200 | ctags: CTAGS | |
201 | CTAGS: | |
202 | ||
203 | ||
204 | distdir: $(DISTFILES) | |
205 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
206 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
207 | list='$(DISTFILES)'; \ | |
208 | dist_files=`for file in $$list; do echo $$file; done | \ | |
209 | sed -e "s|^$$srcdirstrip/||;t" \ | |
210 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
211 | case $$dist_files in \ | |
212 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
213 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
214 | sort -u` ;; \ | |
215 | esac; \ | |
216 | for file in $$dist_files; do \ | |
217 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
218 | if test -d $$d/$$file; then \ | |
219 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
220 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
221 | cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ | |
222 | fi; \ | |
223 | cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ | |
224 | else \ | |
225 | test -f $(distdir)/$$file \ | |
226 | || cp -p $$d/$$file $(distdir)/$$file \ | |
227 | || exit 1; \ | |
228 | fi; \ | |
229 | done | |
230 | check-am: all-am | |
231 | check: check-am | |
232 | all-am: Makefile $(DATA) | |
233 | installdirs: | |
234 | install: install-am | |
235 | install-exec: install-exec-am | |
236 | install-data: install-data-am | |
237 | uninstall: uninstall-am | |
238 | ||
239 | install-am: all-am | |
240 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | |
241 | ||
242 | installcheck: installcheck-am | |
243 | install-strip: | |
244 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | |
245 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | |
246 | `test -z '$(STRIP)' || \ | |
247 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | |
248 | mostlyclean-generic: | |
249 | ||
250 | clean-generic: | |
251 | ||
252 | distclean-generic: | |
253 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | |
254 | ||
255 | maintainer-clean-generic: | |
256 | @echo "This command is intended for maintainers to use" | |
257 | @echo "it deletes files that may require special tools to rebuild." | |
258 | clean: clean-am | |
259 | ||
260 | clean-am: clean-generic clean-libtool mostlyclean-am | |
261 | ||
262 | distclean: distclean-am | |
263 | -rm -f Makefile | |
264 | distclean-am: clean-am distclean-generic | |
265 | ||
266 | dvi: dvi-am | |
267 | ||
268 | dvi-am: | |
269 | ||
270 | html: html-am | |
271 | ||
272 | info: info-am | |
273 | ||
274 | info-am: | |
275 | ||
276 | install-data-am: | |
277 | ||
278 | install-dvi: install-dvi-am | |
279 | ||
280 | install-exec-am: | |
281 | ||
282 | install-html: install-html-am | |
283 | ||
284 | install-info: install-info-am | |
285 | ||
286 | install-man: | |
287 | ||
288 | install-pdf: install-pdf-am | |
289 | ||
290 | install-ps: install-ps-am | |
291 | ||
292 | installcheck-am: | |
293 | ||
294 | maintainer-clean: maintainer-clean-am | |
295 | -rm -f Makefile | |
296 | maintainer-clean-am: distclean-am maintainer-clean-generic | |
297 | ||
298 | mostlyclean: mostlyclean-am | |
299 | ||
300 | mostlyclean-am: mostlyclean-generic mostlyclean-libtool | |
301 | ||
302 | pdf: pdf-am | |
303 | ||
304 | pdf-am: | |
305 | ||
306 | ps: ps-am | |
307 | ||
308 | ps-am: | |
309 | ||
310 | uninstall-am: | |
311 | ||
312 | .MAKE: install-am install-strip | |
313 | ||
314 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
315 | distclean distclean-generic distclean-libtool distdir dvi \ | |
316 | dvi-am html html-am info info-am install install-am \ | |
317 | install-data install-data-am install-dvi install-dvi-am \ | |
318 | install-exec install-exec-am install-html install-html-am \ | |
319 | install-info install-info-am install-man install-pdf \ | |
320 | install-pdf-am install-ps install-ps-am install-strip \ | |
321 | installcheck installcheck-am installdirs maintainer-clean \ | |
322 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
323 | mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am | |
324 | ||
325 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
326 | # Otherwise a system limit (for SysV at least) may be exceeded. | |
327 | .NOEXPORT: |
0 | package Test::PBM::PSNR; | |
1 | ||
2 | # | |
3 | # $Id: PSNR.pm,v 1.4 2011/04/27 14:10:40 simakov Exp $ | |
4 | # | |
5 | # EPSILON - wavelet image compression library. | |
6 | # Copyright (C) 2006-2011 Alexander Simakov, <xander@entropyware.info> | |
7 | # | |
8 | # Test module for checking PSNR between two PGM or PPM images | |
9 | # | |
10 | # This file is part of EPSILON | |
11 | # | |
12 | # EPSILON is free software: you can redistribute it and/or modify | |
13 | # it under the terms of the GNU Lesser General Public License as published by | |
14 | # the Free Software Foundation, either version 3 of the License, or | |
15 | # (at your option) any later version. | |
16 | # | |
17 | # EPSILON is distributed in the hope that it will be useful, | |
18 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
19 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
20 | # GNU Lesser General Public License for more details. | |
21 | # | |
22 | # You should have received a copy of the GNU Lesser General Public License | |
23 | # along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
24 | # | |
25 | # http://epsilon-project.sourceforge.net | |
26 | # | |
27 | ||
28 | use strict; | |
29 | use warnings; | |
30 | ||
31 | use Readonly; | |
32 | Readonly our $VERSION => qw($Revision: 1.4 $) [1]; | |
33 | ||
34 | use English qw( -no_match_vars ); | |
35 | use Carp; | |
36 | use Params::Validate qw(:all); | |
37 | ||
38 | #use Smart::Comments; | |
39 | ||
40 | use base qw(Exporter); | |
41 | ||
42 | Readonly our @EXPORT => qw( | |
43 | is_pgm_image_psnr | |
44 | is_ppm_image_psnr | |
45 | ); | |
46 | ||
47 | # E.g.: ' 38.09 dB' | |
48 | Readonly my $dB_re => qr{ | |
49 | \s | |
50 | (\d+(?:[.]\d*)?) | |
51 | \sdB | |
52 | }xms; | |
53 | ||
54 | my $Test = Test::Builder->new(); ## no critic (ProhibitMixedCaseVars) | |
55 | ||
56 | sub is_pgm_image_psnr { | |
57 | my %params = validate( | |
58 | @_, | |
59 | { reconstructed_image => 1, | |
60 | original_image => 1, | |
61 | min_psnr => 1, | |
62 | test_name => 0, | |
63 | } | |
64 | ); | |
65 | ||
66 | if ( !$params{'test_name'} ) { | |
67 | $params{'test_name'} | |
68 | = 'Check that PSNR between ' | |
69 | . "'$params{'original_image'}' and '$params{'reconstructed_image'}' " | |
70 | . "is at least $params{'min_psnr'} dB"; | |
71 | } | |
72 | ||
73 | my $got_psnr = eval { | |
74 | _get_pgm_psnr( $params{'original_image'}, | |
75 | $params{'reconstructed_image'} ); | |
76 | }; | |
77 | ||
78 | if ($EVAL_ERROR) { | |
79 | print STDERR "$EVAL_ERROR\n"; | |
80 | return 0; | |
81 | } | |
82 | ||
83 | # Images are identical, PSNR is not defined | |
84 | if ( !defined $got_psnr ) { | |
85 | $Test->ok( 1, $params{'test_name'} ); | |
86 | ||
87 | return 1; | |
88 | } | |
89 | ||
90 | my $result = $Test->cmp_ok( $got_psnr, q{>=}, $params{'min_psnr'}, | |
91 | $params{'test_name'} ); | |
92 | ||
93 | if ( !$result ) { | |
94 | $Test->diag( ' actual PSNR between ' | |
95 | . "'$params{'original_image'}' and '$params{'reconstructed_image'}' " | |
96 | . "is only $got_psnr dB" ); | |
97 | ||
98 | return 0; | |
99 | } | |
100 | ||
101 | return 1; | |
102 | } | |
103 | ||
104 | sub is_ppm_image_psnr { | |
105 | my %params = validate( | |
106 | @_, | |
107 | { reconstructed_image => 1, | |
108 | original_image => 1, | |
109 | min_Y_psnr => 1, | |
110 | min_Cb_psnr => 1, | |
111 | min_Cr_psnr => 1, | |
112 | test_name => 0, | |
113 | } | |
114 | ); | |
115 | ||
116 | if ( !$params{'test_name'} ) { | |
117 | $params{'test_name'} | |
118 | = 'Check that PSNR between ' | |
119 | . "'$params{'original_image'}' and '$params{'reconstructed_image'}' " | |
120 | . 'is at least ' | |
121 | . "Y: $params{'min_Y_psnr'} dB, " | |
122 | . "Cb: $params{'min_Cb_psnr'} dB, " | |
123 | . "Cr: $params{'min_Cr_psnr'} dB"; | |
124 | } | |
125 | ||
126 | my $got_psnr_of = eval { | |
127 | _get_ppm_psnr( $params{'original_image'}, | |
128 | $params{'reconstructed_image'} ); | |
129 | }; | |
130 | ||
131 | if ($EVAL_ERROR) { | |
132 | print STDERR "$EVAL_ERROR\n"; | |
133 | return 0; | |
134 | } | |
135 | ||
136 | CHANNEL: | |
137 | foreach my $channel qw(Y Cb Cr) { | |
138 | ||
139 | # Channels are identical, PSNR is not defined | |
140 | if ( !defined $got_psnr_of->{$channel} ) { | |
141 | next CHANNEL; | |
142 | } | |
143 | ||
144 | if ( $got_psnr_of->{$channel} < $params{"min_${channel}_psnr"} ) { | |
145 | ||
146 | # cmp_ok() will fail with nice diagnostic message | |
147 | $Test->cmp_ok( | |
148 | $got_psnr_of->{$channel}, | |
149 | q{>=}, $params{"min_${channel}_psnr"}, | |
150 | $params{'test_name'} | |
151 | ); | |
152 | ||
153 | $Test->diag( " actual $channel channel's PSNR between " | |
154 | . "'$params{'original_image'}' and '$params{'reconstructed_image'}' " | |
155 | . "is only $got_psnr_of->{$channel} dB" ); | |
156 | ||
157 | return 0; | |
158 | } | |
159 | } | |
160 | ||
161 | $Test->ok( 1, $params{'test_name'} ); | |
162 | ||
163 | return 1; | |
164 | } | |
165 | ||
166 | sub _get_pgm_psnr { | |
167 | my $image1 = shift; | |
168 | my $image2 = shift; | |
169 | ||
170 | # Sample output: | |
171 | # | |
172 | # $ pnmpsnr lena_reconstructed.pgm lena.pgm | |
173 | # pnmpsnr: PSNR between lena_reconstructed.pgm and lena.pgm: 38.09 dB | |
174 | # | |
175 | # $ pnmpsnr lena.pgm lena.pgm | |
176 | # pnmpsnr: Images lena.pgm and lena.pgm don't differ. | |
177 | ||
178 | my $output = _get_psnr( $image1, $image2 ); | |
179 | ||
180 | if ( $output =~ $dB_re ) { | |
181 | return $1; | |
182 | } | |
183 | elsif ( $output =~ m{\Qdon't differ\E}xms ) { | |
184 | return undef; ## no critic (ProhibitExplicitReturnUndef) | |
185 | } | |
186 | else { | |
187 | confess "Cannot parse pnmpsnr's output:\n" . $output; | |
188 | } | |
189 | } | |
190 | ||
191 | sub _get_ppm_psnr { ## no critic (RequireFinalReturn) | |
192 | my $image1 = shift; | |
193 | my $image2 = shift; | |
194 | ||
195 | # Sample output: | |
196 | # | |
197 | # $ pnmpsnr nirvana.ppm nirvana_reconstructed.ppm | |
198 | # pnmpsnr: PSNR between nirvana.ppm and nirvana_reconstructed.ppm: | |
199 | # pnmpsnr: Y color component: 36.68 dB | |
200 | # pnmpsnr: Cb color component: 40.66 dB | |
201 | # pnmpsnr: Cr color component: 37.42 dB | |
202 | # | |
203 | # $ pnmpsnr nirvana.ppm nirvana.ppm | |
204 | # pnmpsnr: PSNR between nirvana.ppm and nirvana.ppm: | |
205 | # pnmpsnr: Y color component doesn't differ. | |
206 | # pnmpsnr: Cb color component doesn't differ. | |
207 | # pnmpsnr: Cr color component doesn't differ. | |
208 | ||
209 | my $output = _get_psnr( $image1, $image2 ); | |
210 | ||
211 | ## no critic (ProhibitMixedCaseVars) | |
212 | my $psnr_of = {}; | |
213 | foreach my $channel qw(Y Cb Cr) { | |
214 | if ( $output =~ m{ \s$channel\s .*? $dB_re$ }xms ) { | |
215 | $psnr_of->{$channel} = $1; | |
216 | } | |
217 | elsif ( $output =~ m{ \s$channel\s .*? \Qdoesn't differ\E }xms ) { | |
218 | $psnr_of->{$channel} = undef; | |
219 | } | |
220 | else { | |
221 | confess "Cannot parse pnmpsnr's output for channel '$channel':\n" | |
222 | . $output; | |
223 | } | |
224 | } | |
225 | ||
226 | return $psnr_of; | |
227 | } | |
228 | ||
229 | sub _get_psnr { | |
230 | my $image1 = shift; | |
231 | my $image2 = shift; | |
232 | ||
233 | my $output = `pnmpsnr '$image1' '$image2' 2>&1`; | |
234 | ||
235 | if ( $CHILD_ERROR != 0 ) { | |
236 | confess "Cannot calculate PSNR between '$image1' and '$image2': " | |
237 | . "pnmpsnr exited with non-zero code. Output:\n" | |
238 | . $output; | |
239 | } | |
240 | ||
241 | return $output; | |
242 | } | |
243 | ||
244 | 1; |
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | # @configure_input@ | |
2 | ||
3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | # This Makefile.in is free software; the Free Software Foundation | |
6 | # gives unlimited permission to copy and/or distribute it, | |
7 | # with or without modifications, as long as this notice is preserved. | |
8 | ||
9 | # This program is distributed in the hope that it will be useful, | |
10 | # but WITHOUT ANY WARRANTY, to the extent permitted by law; without | |
11 | # even the implied warranty of MERCHANTABILITY or FITNESS FOR A | |
12 | # PARTICULAR PURPOSE. | |
13 | ||
14 | @SET_MAKE@ | |
15 | ||
16 | VPATH = @srcdir@ | |
17 | pkgdatadir = $(datadir)/@PACKAGE@ | |
18 | pkglibdir = $(libdir)/@PACKAGE@ | |
19 | pkgincludedir = $(includedir)/@PACKAGE@ | |
20 | am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd | |
21 | install_sh_DATA = $(install_sh) -c -m 644 | |
22 | install_sh_PROGRAM = $(install_sh) -c | |
23 | install_sh_SCRIPT = $(install_sh) -c | |
24 | INSTALL_HEADER = $(INSTALL_DATA) | |
25 | transform = $(program_transform_name) | |
26 | NORMAL_INSTALL = : | |
27 | PRE_INSTALL = : | |
28 | POST_INSTALL = : | |
29 | NORMAL_UNINSTALL = : | |
30 | PRE_UNINSTALL = : | |
31 | POST_UNINSTALL = : | |
32 | build_triplet = @build@ | |
33 | host_triplet = @host@ | |
34 | subdir = tests/t | |
35 | DIST_COMMON = $(dist_noinst_DATA) $(srcdir)/Makefile.am \ | |
36 | $(srcdir)/Makefile.in | |
37 | ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 | |
38 | am__aclocal_m4_deps = $(top_srcdir)/configure.in | |
39 | am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ | |
40 | $(ACLOCAL_M4) | |
41 | mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs | |
42 | CONFIG_HEADER = $(top_builddir)/config.h | |
43 | CONFIG_CLEAN_FILES = | |
44 | SOURCES = | |
45 | DIST_SOURCES = | |
46 | DATA = $(dist_noinst_DATA) | |
47 | DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) | |
48 | ACLOCAL = @ACLOCAL@ | |
49 | AMTAR = @AMTAR@ | |
50 | AR = @AR@ | |
51 | AUTOCONF = @AUTOCONF@ | |
52 | AUTOHEADER = @AUTOHEADER@ | |
53 | AUTOMAKE = @AUTOMAKE@ | |
54 | AWK = @AWK@ | |
55 | CC = @CC@ | |
56 | CCDEPMODE = @CCDEPMODE@ | |
57 | CFLAGS = @CFLAGS@ | |
58 | CPP = @CPP@ | |
59 | CPPFLAGS = @CPPFLAGS@ | |
60 | CXX = @CXX@ | |
61 | CXXCPP = @CXXCPP@ | |
62 | CXXDEPMODE = @CXXDEPMODE@ | |
63 | CXXFLAGS = @CXXFLAGS@ | |
64 | CYGPATH_W = @CYGPATH_W@ | |
65 | DEFS = @DEFS@ | |
66 | DEPDIR = @DEPDIR@ | |
67 | DSYMUTIL = @DSYMUTIL@ | |
68 | ECHO = @ECHO@ | |
69 | ECHO_C = @ECHO_C@ | |
70 | ECHO_N = @ECHO_N@ | |
71 | ECHO_T = @ECHO_T@ | |
72 | EGREP = @EGREP@ | |
73 | EXEEXT = @EXEEXT@ | |
74 | F77 = @F77@ | |
75 | FFLAGS = @FFLAGS@ | |
76 | GREP = @GREP@ | |
77 | INSTALL = @INSTALL@ | |
78 | INSTALL_DATA = @INSTALL_DATA@ | |
79 | INSTALL_PROGRAM = @INSTALL_PROGRAM@ | |
80 | INSTALL_SCRIPT = @INSTALL_SCRIPT@ | |
81 | INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ | |
82 | LDFLAGS = @LDFLAGS@ | |
83 | LIBOBJS = @LIBOBJS@ | |
84 | LIBS = @LIBS@ | |
85 | LIBTOOL = @LIBTOOL@ | |
86 | LN_S = @LN_S@ | |
87 | LTLIBOBJS = @LTLIBOBJS@ | |
88 | MAKEINFO = @MAKEINFO@ | |
89 | MKDIR_P = @MKDIR_P@ | |
90 | NMEDIT = @NMEDIT@ | |
91 | OBJEXT = @OBJEXT@ | |
92 | PACKAGE = @PACKAGE@ | |
93 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ | |
94 | PACKAGE_NAME = @PACKAGE_NAME@ | |
95 | PACKAGE_STRING = @PACKAGE_STRING@ | |
96 | PACKAGE_TARNAME = @PACKAGE_TARNAME@ | |
97 | PACKAGE_VERSION = @PACKAGE_VERSION@ | |
98 | PATH_SEPARATOR = @PATH_SEPARATOR@ | |
99 | RANLIB = @RANLIB@ | |
100 | SED = @SED@ | |
101 | SET_MAKE = @SET_MAKE@ | |
102 | SHELL = @SHELL@ | |
103 | STRIP = @STRIP@ | |
104 | VERSION = @VERSION@ | |
105 | abs_builddir = @abs_builddir@ | |
106 | abs_srcdir = @abs_srcdir@ | |
107 | abs_top_builddir = @abs_top_builddir@ | |
108 | abs_top_srcdir = @abs_top_srcdir@ | |
109 | ac_ct_CC = @ac_ct_CC@ | |
110 | ac_ct_CXX = @ac_ct_CXX@ | |
111 | ac_ct_F77 = @ac_ct_F77@ | |
112 | am__include = @am__include@ | |
113 | am__leading_dot = @am__leading_dot@ | |
114 | am__quote = @am__quote@ | |
115 | am__tar = @am__tar@ | |
116 | am__untar = @am__untar@ | |
117 | bindir = @bindir@ | |
118 | build = @build@ | |
119 | build_alias = @build_alias@ | |
120 | build_cpu = @build_cpu@ | |
121 | build_os = @build_os@ | |
122 | build_vendor = @build_vendor@ | |
123 | builddir = @builddir@ | |
124 | datadir = @datadir@ | |
125 | datarootdir = @datarootdir@ | |
126 | docdir = @docdir@ | |
127 | dvidir = @dvidir@ | |
128 | exec_prefix = @exec_prefix@ | |
129 | host = @host@ | |
130 | host_alias = @host_alias@ | |
131 | host_cpu = @host_cpu@ | |
132 | host_os = @host_os@ | |
133 | host_vendor = @host_vendor@ | |
134 | htmldir = @htmldir@ | |
135 | includedir = @includedir@ | |
136 | infodir = @infodir@ | |
137 | install_sh = @install_sh@ | |
138 | libdir = @libdir@ | |
139 | libexecdir = @libexecdir@ | |
140 | localedir = @localedir@ | |
141 | localstatedir = @localstatedir@ | |
142 | mandir = @mandir@ | |
143 | mkdir_p = @mkdir_p@ | |
144 | oldincludedir = @oldincludedir@ | |
145 | pdfdir = @pdfdir@ | |
146 | prefix = @prefix@ | |
147 | program_transform_name = @program_transform_name@ | |
148 | psdir = @psdir@ | |
149 | sbindir = @sbindir@ | |
150 | sharedstatedir = @sharedstatedir@ | |
151 | srcdir = @srcdir@ | |
152 | sysconfdir = @sysconfdir@ | |
153 | target_alias = @target_alias@ | |
154 | top_builddir = @top_builddir@ | |
155 | top_srcdir = @top_srcdir@ | |
156 | INCLUDES = | |
157 | METASOURCES = AUTO | |
158 | dist_noinst_DATA = verification.t quick.t | |
159 | all: all-am | |
160 | ||
161 | .SUFFIXES: | |
162 | $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps) | |
163 | @for dep in $?; do \ | |
164 | case '$(am__configure_deps)' in \ | |
165 | *$$dep*) \ | |
166 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \ | |
167 | && exit 0; \ | |
168 | exit 1;; \ | |
169 | esac; \ | |
170 | done; \ | |
171 | echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu tests/t/Makefile'; \ | |
172 | cd $(top_srcdir) && \ | |
173 | $(AUTOMAKE) --gnu tests/t/Makefile | |
174 | .PRECIOUS: Makefile | |
175 | Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status | |
176 | @case '$?' in \ | |
177 | *config.status*) \ | |
178 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ | |
179 | *) \ | |
180 | echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ | |
181 | cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ | |
182 | esac; | |
183 | ||
184 | $(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) | |
185 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
186 | ||
187 | $(top_srcdir)/configure: $(am__configure_deps) | |
188 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
189 | $(ACLOCAL_M4): $(am__aclocal_m4_deps) | |
190 | cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh | |
191 | ||
192 | mostlyclean-libtool: | |
193 | -rm -f *.lo | |
194 | ||
195 | clean-libtool: | |
196 | -rm -rf .libs _libs | |
197 | tags: TAGS | |
198 | TAGS: | |
199 | ||
200 | ctags: CTAGS | |
201 | CTAGS: | |
202 | ||
203 | ||
204 | distdir: $(DISTFILES) | |
205 | @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
206 | topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ | |
207 | list='$(DISTFILES)'; \ | |
208 | dist_files=`for file in $$list; do echo $$file; done | \ | |
209 | sed -e "s|^$$srcdirstrip/||;t" \ | |
210 | -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ | |
211 | case $$dist_files in \ | |
212 | */*) $(MKDIR_P) `echo "$$dist_files" | \ | |
213 | sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ | |
214 | sort -u` ;; \ | |
215 | esac; \ | |
216 | for file in $$dist_files; do \ | |
217 | if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ | |
218 | if test -d $$d/$$file; then \ | |
219 | dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ | |
220 | if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ | |
221 | cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ | |
222 | fi; \ | |
223 | cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ | |
224 | else \ | |
225 | test -f $(distdir)/$$file \ | |
226 | || cp -p $$d/$$file $(distdir)/$$file \ | |
227 | || exit 1; \ | |
228 | fi; \ | |
229 | done | |
230 | check-am: all-am | |
231 | check: check-am | |
232 | all-am: Makefile $(DATA) | |
233 | installdirs: | |
234 | install: install-am | |
235 | install-exec: install-exec-am | |
236 | install-data: install-data-am | |
237 | uninstall: uninstall-am | |
238 | ||
239 | install-am: all-am | |
240 | @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am | |
241 | ||
242 | installcheck: installcheck-am | |
243 | install-strip: | |
244 | $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ | |
245 | install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ | |
246 | `test -z '$(STRIP)' || \ | |
247 | echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install | |
248 | mostlyclean-generic: | |
249 | ||
250 | clean-generic: | |
251 | ||
252 | distclean-generic: | |
253 | -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) | |
254 | ||
255 | maintainer-clean-generic: | |
256 | @echo "This command is intended for maintainers to use" | |
257 | @echo "it deletes files that may require special tools to rebuild." | |
258 | clean: clean-am | |
259 | ||
260 | clean-am: clean-generic clean-libtool mostlyclean-am | |
261 | ||
262 | distclean: distclean-am | |
263 | -rm -f Makefile | |
264 | distclean-am: clean-am distclean-generic | |
265 | ||
266 | dvi: dvi-am | |
267 | ||
268 | dvi-am: | |
269 | ||
270 | html: html-am | |
271 | ||
272 | info: info-am | |
273 | ||
274 | info-am: | |
275 | ||
276 | install-data-am: | |
277 | ||
278 | install-dvi: install-dvi-am | |
279 | ||
280 | install-exec-am: | |
281 | ||
282 | install-html: install-html-am | |
283 | ||
284 | install-info: install-info-am | |
285 | ||
286 | install-man: | |
287 | ||
288 | install-pdf: install-pdf-am | |
289 | ||
290 | install-ps: install-ps-am | |
291 | ||
292 | installcheck-am: | |
293 | ||
294 | maintainer-clean: maintainer-clean-am | |
295 | -rm -f Makefile | |
296 | maintainer-clean-am: distclean-am maintainer-clean-generic | |
297 | ||
298 | mostlyclean: mostlyclean-am | |
299 | ||
300 | mostlyclean-am: mostlyclean-generic mostlyclean-libtool | |
301 | ||
302 | pdf: pdf-am | |
303 | ||
304 | pdf-am: | |
305 | ||
306 | ps: ps-am | |
307 | ||
308 | ps-am: | |
309 | ||
310 | uninstall-am: | |
311 | ||
312 | .MAKE: install-am install-strip | |
313 | ||
314 | .PHONY: all all-am check check-am clean clean-generic clean-libtool \ | |
315 | distclean distclean-generic distclean-libtool distdir dvi \ | |
316 | dvi-am html html-am info info-am install install-am \ | |
317 | install-data install-data-am install-dvi install-dvi-am \ | |
318 | install-exec install-exec-am install-html install-html-am \ | |
319 | install-info install-info-am install-man install-pdf \ | |
320 | install-pdf-am install-ps install-ps-am install-strip \ | |
321 | installcheck installcheck-am installdirs maintainer-clean \ | |
322 | maintainer-clean-generic mostlyclean mostlyclean-generic \ | |
323 | mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am | |
324 | ||
325 | # Tell versions [3.59,3.63) of GNU make to not export all variables. | |
326 | # Otherwise a system limit (for SysV at least) may be exceeded. | |
327 | .NOEXPORT: |
0 | #!/usr/bin/perl | |
1 | ||
2 | # | |
3 | # $Id: quick.t,v 1.2 2011/04/28 10:15:47 simakov Exp $ | |
4 | # | |
5 | # EPSILON - wavelet image compression library. | |
6 | # Copyright (C) 2006-2011 Alexander Simakov, <xander@entropyware.info> | |
7 | # | |
8 | # Quick verification test for generic EPSILON build. | |
9 | # This file is part of EPSILON | |
10 | # | |
11 | # EPSILON is free software: you can redistribute it and/or modify | |
12 | # it under the terms of the GNU Lesser General Public License as published by | |
13 | # the Free Software Foundation, either version 3 of the License, or | |
14 | # (at your option) any later version. | |
15 | # | |
16 | # EPSILON is distributed in the hope that it will be useful, | |
17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
19 | # GNU Lesser General Public License for more details. | |
20 | # | |
21 | # You should have received a copy of the GNU Lesser General Public License | |
22 | # along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
23 | # | |
24 | # http://epsilon-project.sourceforge.net | |
25 | # | |
26 | ||
27 | use strict; | |
28 | use warnings; | |
29 | ||
30 | use Readonly; | |
31 | Readonly our $VERSION => qw($Revision: 1.2 $) [1]; | |
32 | ||
33 | use English qw( -no_match_vars ); | |
34 | use File::Temp qw(tempdir tempfile); | |
35 | use File::Spec::Functions; | |
36 | use File::Basename; | |
37 | ||
38 | #use Smart::Comments; | |
39 | ||
40 | use FindBin qw($Bin); | |
41 | FindBin::again(); | |
42 | ||
43 | use lib "$Bin/../lib"; | |
44 | use EPSILON::Utils qw( | |
45 | run_epsilon | |
46 | get_image_path | |
47 | get_rnd_string | |
48 | ); | |
49 | ||
50 | use Test::More; | |
51 | use Test::Exception; | |
52 | use Test::PBM::PSNR; | |
53 | ||
54 | Readonly my $TMP_DIR => tempdir( 'quick_XXXX', TMPDIR => 1, CLEANUP => 0 ); | |
55 | ### TMP_DIR: $TMP_DIR | |
56 | ||
57 | Readonly my $RND_SUFFIX_LENGTH => 4; | |
58 | Readonly my $BUILD_TAG => 'generic'; | |
59 | ||
60 | Readonly my $CHECKS_PER_IMAGE => 3; | |
61 | Readonly my %TEST_IMAGES => ( | |
62 | 'gray_dot.pgm' => 60.00, | |
63 | 'horizontal_gradient.pgm' => 49.50, | |
64 | 'vertical_gradient.pgm' => 49.80, | |
65 | 'red_dot.ppm' => { | |
66 | min_Y_psnr => 58.60, | |
67 | min_Cb_psnr => 54.10, | |
68 | min_Cr_psnr => 63.50, | |
69 | }, | |
70 | 'horizontal_rainbow.ppm' => { | |
71 | min_Y_psnr => 49.00, | |
72 | min_Cb_psnr => 40.00, | |
73 | min_Cr_psnr => 36.00, | |
74 | }, | |
75 | ||
76 | 'vertical_rainbow.ppm' => { | |
77 | min_Y_psnr => 52.40, | |
78 | min_Cb_psnr => 31.50, | |
79 | min_Cr_psnr => 40.10, | |
80 | }, | |
81 | 'lena.pgm' => 53.20, | |
82 | 'nirvana.ppm' => { | |
83 | min_Y_psnr => 55.20, | |
84 | min_Cb_psnr => 44.50, | |
85 | min_Cr_psnr => 42.90, | |
86 | }, | |
87 | ); | |
88 | ||
89 | # Set to 0 if you want to check reconstructed files visually | |
90 | Readonly my $CLEANUP_RECONSTRUCTED_FILES => 1; | |
91 | ||
92 | sub set_test_plan { | |
93 | plan tests => $CHECKS_PER_IMAGE * keys %TEST_IMAGES; | |
94 | ||
95 | return; | |
96 | } | |
97 | ||
98 | sub quick_test { | |
99 | foreach my $image_ext ( keys %TEST_IMAGES ) { | |
100 | ||
101 | # Set minimal compression ratio to get hightest PSNR possible | |
102 | my $epsilon_encode_options | |
103 | = "--ratio 1.001 --output-dir '$TMP_DIR' --quiet"; | |
104 | ||
105 | # Encode file | |
106 | lives_ok { | |
107 | run_epsilon( | |
108 | build_tag => $BUILD_TAG, | |
109 | epsilon_options => $epsilon_encode_options, | |
110 | file => get_image_path($image_ext), | |
111 | ); | |
112 | } | |
113 | "[$BUILD_TAG] Encode '$image_ext' with epsilon options: " | |
114 | . "'$epsilon_encode_options'"; | |
115 | ||
116 | my ( $image, undef, $ext ) | |
117 | = fileparse( $image_ext, qr/[.](?:pgm|ppm)/xms ); | |
118 | $ext =~ s/\A[.]//xms; # remove leading dot | |
119 | ||
120 | my $reconstructed_image | |
121 | = $image . '_reconstructed_' . get_rnd_string($RND_SUFFIX_LENGTH); | |
122 | ||
123 | # Rename encoded file: add random suffix | |
124 | rename catfile( $TMP_DIR, "$image.psi" ), | |
125 | catfile( $TMP_DIR, "$reconstructed_image.psi" ); | |
126 | ||
127 | my $epsilon_decode_options = '--decode-file --quiet'; | |
128 | ||
129 | # Decode file | |
130 | lives_ok { | |
131 | run_epsilon( | |
132 | build_tag => $BUILD_TAG, | |
133 | epsilon_options => $epsilon_decode_options, | |
134 | file => catfile( $TMP_DIR, "$reconstructed_image.psi" ), | |
135 | ); | |
136 | } | |
137 | "[$BUILD_TAG] Decode '$reconstructed_image.psi' with epsilon options: " | |
138 | . "'$epsilon_decode_options'"; | |
139 | ||
140 | # Check PSNR | |
141 | my $result; | |
142 | if ( $ext eq 'pgm' ) { | |
143 | $result = is_pgm_image_psnr( | |
144 | original_image => get_image_path($image_ext), | |
145 | reconstructed_image => | |
146 | catfile( $TMP_DIR, "$reconstructed_image.$ext" ), | |
147 | min_psnr => $TEST_IMAGES{$image_ext}, | |
148 | ); | |
149 | } | |
150 | else { | |
151 | $result = is_ppm_image_psnr( | |
152 | original_image => get_image_path($image_ext), | |
153 | reconstructed_image => | |
154 | catfile( $TMP_DIR, "$reconstructed_image.$ext" ), | |
155 | %{ $TEST_IMAGES{$image_ext} }, | |
156 | ); | |
157 | } | |
158 | ||
159 | if ($result) { | |
160 | ||
161 | # PSNR is ok, unlink temporary files | |
162 | unlink catfile( $TMP_DIR, "$reconstructed_image.psi" ); | |
163 | if ($CLEANUP_RECONSTRUCTED_FILES) { | |
164 | unlink catfile( $TMP_DIR, "$reconstructed_image.$ext" ); | |
165 | } | |
166 | } | |
167 | } | |
168 | ||
169 | return; | |
170 | } | |
171 | ||
172 | sub run_tests { | |
173 | set_test_plan(); | |
174 | quick_test(); | |
175 | ||
176 | return; | |
177 | } | |
178 | ||
179 | run_tests(); | |
180 | ||
181 | END { | |
182 | ||
183 | # Removes empty dir only | |
184 | rmdir $TMP_DIR; | |
185 | } |
0 | #!/usr/bin/perl | |
1 | ||
2 | # | |
3 | # $Id: verification.t,v 1.2 2011/04/27 16:25:58 simakov Exp $ | |
4 | # | |
5 | # EPSILON - wavelet image compression library. | |
6 | # Copyright (C) 2006-2011 Alexander Simakov, <xander@entropyware.info> | |
7 | # | |
8 | # Verification test for EPSILON. This tests tries all available builds | |
9 | # (generic, pthreads, cluster, mpi) with all available wavelet filters | |
10 | # in all applicable modes all possible block sizes on a list of PGM | |
11 | # and PPM images. After encode/decode cycle this test compares PSNR | |
12 | # with expected value - minimal common value for all option combinations. | |
13 | # Compression ratio is set near to 1 (no compression) to get higher | |
14 | # average PSNR for diffrerent filters, block sizes etc. | |
15 | # | |
16 | # This file is part of EPSILON | |
17 | # | |
18 | # EPSILON is free software: you can redistribute it and/or modify | |
19 | # it under the terms of the GNU Lesser General Public License as published by | |
20 | # the Free Software Foundation, either version 3 of the License, or | |
21 | # (at your option) any later version. | |
22 | # | |
23 | # EPSILON is distributed in the hope that it will be useful, | |
24 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
25 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
26 | # GNU Lesser General Public License for more details. | |
27 | # | |
28 | # You should have received a copy of the GNU Lesser General Public License | |
29 | # along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
30 | # | |
31 | # http://epsilon-project.sourceforge.net | |
32 | # | |
33 | ||
34 | use strict; | |
35 | use warnings; | |
36 | ||
37 | use Readonly; | |
38 | Readonly our $VERSION => qw($Revision: 1.2 $) [1]; | |
39 | ||
40 | use English qw( -no_match_vars ); | |
41 | use File::Temp qw(tempdir tempfile); | |
42 | use File::Spec::Functions; | |
43 | use File::Basename; | |
44 | ||
45 | #use Smart::Comments; | |
46 | ||
47 | use FindBin qw($Bin); | |
48 | FindBin::again(); | |
49 | ||
50 | use lib "$Bin/../lib"; | |
51 | use EPSILON::Utils qw( | |
52 | run_epsilon | |
53 | epsilon_encoder_options_combinator | |
54 | get_image_path | |
55 | get_rnd_string | |
56 | write_to_file | |
57 | get_available_build_tags | |
58 | wait_for_mpi_to_cleanup | |
59 | ); | |
60 | ||
61 | use Test::More qw(no_plan); | |
62 | use Test::Exception; | |
63 | use Test::PBM::PSNR; | |
64 | ||
65 | Readonly my $TMP_DIR => | |
66 | tempdir( 'verification_XXXX', TMPDIR => 1, CLEANUP => 0 ); | |
67 | ### TMP_DIR: $TMP_DIR | |
68 | ||
69 | Readonly my $RND_SUFFIX_LENGTH => 4; | |
70 | Readonly my $NUMBER_OF_THREADS => 16; | |
71 | Readonly my $NUMBER_OF_MPI_CPUS => 8; | |
72 | Readonly my $CLUSTER_NODE_LIST => | |
73 | catfile( $Bin, q{..}, 'build', 'epsilon.nodes' ); | |
74 | Readonly my $MPI_MACHINE_FILE => | |
75 | catfile( $Bin, q{..}, 'build', 'machines.MPICH' ); | |
76 | ||
77 | Readonly my %TEST_IMAGES => ( | |
78 | 'lena.pgm' => 53, | |
79 | ||
80 | 'nirvana.ppm' => { | |
81 | min_Y_psnr => 50, | |
82 | min_Cb_psnr => 44, | |
83 | min_Cr_psnr => 42, | |
84 | }, | |
85 | ); | |
86 | ||
87 | # Set to 0 if you want to check reconstructed files visually | |
88 | Readonly my $CLEANUP_RECONSTRUCTED_FILES => 1; | |
89 | ||
90 | sub common_case_tests { | |
91 | my $build_tags = shift; | |
92 | ||
93 | foreach my $build_tag ( @{$build_tags} ) { | |
94 | my $option_combinations | |
95 | = epsilon_encoder_options_combinator( build_tag => $build_tag ); | |
96 | ||
97 | foreach my $image_ext ( keys %TEST_IMAGES ) { | |
98 | foreach my $option_combination ( @{$option_combinations} ) { | |
99 | ||
100 | # Set minimal compression ratio to get hightest PSNR possible | |
101 | my $extra_options | |
102 | = "--ratio 1.001 --output-dir '$TMP_DIR' --quiet"; | |
103 | my $epsilon_encode_options | |
104 | = "$option_combination $extra_options"; | |
105 | my $mpirun_encode_options = q{}; | |
106 | ||
107 | # Increase number of threads for multi-threaded EPSILON build | |
108 | if ( $build_tag eq 'pthreads' ) { | |
109 | $epsilon_encode_options | |
110 | .= " --threads $NUMBER_OF_THREADS"; | |
111 | } | |
112 | ||
113 | # Speclify list of nodes for EPSILON cluster | |
114 | if ( $build_tag eq 'cluster' ) { | |
115 | $epsilon_encode_options | |
116 | .= " --node-list $CLUSTER_NODE_LIST"; | |
117 | } | |
118 | ||
119 | # Speclify machines file and number of CPUs MPI EPSILON | |
120 | if ( $build_tag eq 'mpi' ) { | |
121 | $mpirun_encode_options | |
122 | = "-machinefile $MPI_MACHINE_FILE -np $NUMBER_OF_MPI_CPUS"; | |
123 | } | |
124 | ||
125 | # Encode file | |
126 | lives_ok { | |
127 | run_epsilon( | |
128 | build_tag => $build_tag, | |
129 | epsilon_options => $epsilon_encode_options, | |
130 | mpirun_options => $mpirun_encode_options, | |
131 | file => get_image_path($image_ext), | |
132 | ); | |
133 | } | |
134 | "[$build_tag] Encode '$image_ext' with epsilon options: " | |
135 | . "'$epsilon_encode_options'" | |
136 | . ( | |
137 | $mpirun_encode_options | |
138 | ? ", mpirun options: '$mpirun_encode_options'" | |
139 | : q{} | |
140 | ); | |
141 | ||
142 | my ( $image, undef, $ext ) | |
143 | = fileparse( $image_ext, qr/[.](?:pgm|ppm)/xms ); | |
144 | $ext =~ s/\A[.]//xms; # remove leading dot | |
145 | ||
146 | my $reconstructed_image | |
147 | = $image | |
148 | . '_reconstructed_' | |
149 | . get_rnd_string($RND_SUFFIX_LENGTH); | |
150 | ||
151 | # Rename encoded file: add random suffix | |
152 | rename catfile( $TMP_DIR, "$image.psi" ), | |
153 | catfile( $TMP_DIR, "$reconstructed_image.psi" ); | |
154 | ||
155 | my $epsilon_decode_options = '--decode-file --quiet'; | |
156 | my $mpirun_decode_options = q{}; | |
157 | ||
158 | if ( $build_tag eq 'pthreads' ) { | |
159 | $epsilon_decode_options | |
160 | .= " --threads $NUMBER_OF_THREADS"; | |
161 | } | |
162 | ||
163 | if ( $build_tag eq 'cluster' ) { | |
164 | $epsilon_decode_options | |
165 | .= " --node-list $CLUSTER_NODE_LIST"; | |
166 | } | |
167 | ||
168 | if ( $build_tag eq 'mpi' ) { | |
169 | $mpirun_decode_options | |
170 | = "-machinefile $MPI_MACHINE_FILE -np $NUMBER_OF_MPI_CPUS"; | |
171 | } | |
172 | ||
173 | # Decode file | |
174 | lives_ok { | |
175 | run_epsilon( | |
176 | build_tag => $build_tag, | |
177 | epsilon_options => $epsilon_decode_options, | |
178 | mpirun_options => $mpirun_decode_options, | |
179 | file => | |
180 | catfile( $TMP_DIR, "$reconstructed_image.psi" ), | |
181 | ); | |
182 | } | |
183 | "[$build_tag] Decode '$reconstructed_image.psi' with epsilon options: " | |
184 | . "'$epsilon_decode_options'" | |
185 | . ( | |
186 | $mpirun_decode_options | |
187 | ? ", mpirun options: '$mpirun_decode_options'" | |
188 | : q{} | |
189 | ); | |
190 | ||
191 | # Check PSNR | |
192 | my $result; | |
193 | if ( $ext eq 'pgm' ) { | |
194 | $result = is_pgm_image_psnr( | |
195 | original_image => get_image_path($image_ext), | |
196 | reconstructed_image => | |
197 | catfile( $TMP_DIR, "$reconstructed_image.$ext" ), | |
198 | min_psnr => $TEST_IMAGES{$image_ext}, | |
199 | ); | |
200 | } | |
201 | else { | |
202 | $result = is_ppm_image_psnr( | |
203 | original_image => get_image_path($image_ext), | |
204 | reconstructed_image => | |
205 | catfile( $TMP_DIR, "$reconstructed_image.$ext" ), | |
206 | %{ $TEST_IMAGES{$image_ext} }, | |
207 | ); | |
208 | } | |
209 | ||
210 | if ($result) { | |
211 | ||
212 | # PSNR is ok, unlink temporary files | |
213 | unlink catfile( $TMP_DIR, "$reconstructed_image.psi" ); | |
214 | if ($CLEANUP_RECONSTRUCTED_FILES) { | |
215 | unlink catfile( $TMP_DIR, | |
216 | "$reconstructed_image.$ext" ); | |
217 | } | |
218 | } | |
219 | else { | |
220 | ||
221 | # PSNR is not ok, dump compression options, do not | |
222 | # delete files | |
223 | write_to_file( | |
224 | catfile( $TMP_DIR, "$reconstructed_image.dump" ), | |
225 | <<"END_OPTIONS"); | |
226 | build tag: $build_tag | |
227 | epsilon encode options: $epsilon_encode_options | |
228 | mpirun encode options: $mpirun_encode_options | |
229 | epsilon decode options: $epsilon_decode_options | |
230 | mpirun decode options: $mpirun_decode_options | |
231 | END_OPTIONS | |
232 | } | |
233 | } | |
234 | } | |
235 | } | |
236 | ||
237 | return; | |
238 | } | |
239 | ||
240 | sub run_tests { | |
241 | my $build_tags = get_available_build_tags(); | |
242 | ||
243 | if ( @{$build_tags} == 0 ) { | |
244 | die "Please prepare at least one EPSILON build\n"; | |
245 | } | |
246 | ||
247 | common_case_tests($build_tags); | |
248 | ||
249 | return; | |
250 | } | |
251 | ||
252 | run_tests(); | |
253 | ||
254 | END { | |
255 | wait_for_mpi_to_cleanup(); | |
256 | ||
257 | # Removes empty dir only | |
258 | rmdir $TMP_DIR; | |
259 | } |
0 | # Makefile.in generated by automake 1.10 from Makefile.am. | |
0 | # Makefile.in generated by automake 1.10.1 from Makefile.am. | |
1 | 1 | # @configure_input@ |
2 | 2 | |
3 | 3 | # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, |
4 | # 2003, 2004, 2005, 2006 Free Software Foundation, Inc. | |
4 | # 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. | |
5 | 5 | # This Makefile.in is free software; the Free Software Foundation |
6 | 6 | # gives unlimited permission to copy and/or distribute it, |
7 | 7 | # with or without modifications, as long as this notice is preserved. |
69 | 69 | CYGPATH_W = @CYGPATH_W@ |
70 | 70 | DEFS = @DEFS@ |
71 | 71 | DEPDIR = @DEPDIR@ |
72 | DSYMUTIL = @DSYMUTIL@ | |
72 | 73 | ECHO = @ECHO@ |
73 | 74 | ECHO_C = @ECHO_C@ |
74 | 75 | ECHO_N = @ECHO_N@ |
91 | 92 | LTLIBOBJS = @LTLIBOBJS@ |
92 | 93 | MAKEINFO = @MAKEINFO@ |
93 | 94 | MKDIR_P = @MKDIR_P@ |
95 | NMEDIT = @NMEDIT@ | |
94 | 96 | OBJEXT = @OBJEXT@ |
95 | 97 | PACKAGE = @PACKAGE@ |
96 | 98 | PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ |
100 | 102 | PACKAGE_VERSION = @PACKAGE_VERSION@ |
101 | 103 | PATH_SEPARATOR = @PATH_SEPARATOR@ |
102 | 104 | RANLIB = @RANLIB@ |
105 | SED = @SED@ | |
103 | 106 | SET_MAKE = @SET_MAKE@ |
104 | 107 | SHELL = @SHELL@ |
105 | 108 | STRIP = @STRIP@ |
0 | 0 | /* |
1 | * $Id: make_RGB_to_YCbCr_table.c,v 1.1 2008/03/29 21:37:06 simakov Exp $ | |
1 | * $Id: make_RGB_to_YCbCr_table.c,v 1.3 2010/02/05 23:50:23 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
23 | ||
22 | 24 | #include <stdio.h> |
23 | 25 | |
24 | 26 | #define ALIGN_MASK 0x07 |
0 | 0 | #!/usr/bin/perl -w |
1 | 1 | |
2 | 2 | # |
3 | # $Id: make_filterbank.pl,v 1.8 2007/05/20 13:19:12 simakov Exp $ | |
3 | # $Id: make_filterbank.pl,v 1.10 2010/02/05 23:50:23 simakov Exp $ | |
4 | 4 | # |
5 | 5 | # EPSILON - wavelet image compression library. |
6 | # Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
7 | # | |
8 | # This program is free software; you can redistribute it and/or modify | |
9 | # it under the terms of the GNU General Public License as published by | |
10 | # the Free Software Foundation; either version 2 of the License, or | |
6 | # Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
7 | # | |
8 | # This file is part of EPSILON | |
9 | # | |
10 | # EPSILON is free software: you can redistribute it and/or modify | |
11 | # it under the terms of the GNU Lesser General Public License as published by | |
12 | # the Free Software Foundation, either version 3 of the License, or | |
11 | 13 | # (at your option) any later version. |
12 | 14 | # |
13 | # This program is distributed in the hope that it will be useful, | |
15 | # EPSILON is distributed in the hope that it will be useful, | |
14 | 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | # GNU General Public License for more details. | |
17 | # | |
18 | # You should have received a copy of the GNU General Public License | |
19 | # along with this program; if not, write to the Free Software | |
20 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | # GNU Lesser General Public License for more details. | |
19 | # | |
20 | # You should have received a copy of the GNU Lesser General Public License | |
21 | # along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
21 | 22 | # |
22 | 23 | # http://epsilon-project.sourceforge.net |
23 | 24 | # |
0 | 0 | /* |
1 | * $Id: make_number_of_bits_table.c,v 1.1 2008/03/21 21:50:13 simakov Exp $ | |
1 | * $Id: make_number_of_bits_table.c,v 1.3 2010/02/05 23:50:23 simakov Exp $ | |
2 | 2 | * |
3 | 3 | * EPSILON - wavelet image compression library. |
4 | * Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
4 | * Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
5 | 5 | * |
6 | * This program is free software; you can redistribute it and/or modify | |
7 | * it under the terms of the GNU General Public License as published by | |
8 | * the Free Software Foundation; either version 2 of the License, or | |
6 | * This file is part of EPSILON | |
7 | * | |
8 | * EPSILON is free software: you can redistribute it and/or modify | |
9 | * it under the terms of the GNU Lesser General Public License as published by | |
10 | * the Free Software Foundation, either version 3 of the License, or | |
9 | 11 | * (at your option) any later version. |
10 | 12 | * |
11 | * This program is distributed in the hope that it will be useful, | |
13 | * EPSILON is distributed in the hope that it will be useful, | |
12 | 14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
13 | 15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
14 | * GNU General Public License for more details. | |
16 | * GNU Lesser General Public License for more details. | |
15 | 17 | * |
16 | * You should have received a copy of the GNU General Public License | |
17 | * along with this program; if not, write to the Free Software | |
18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
18 | * You should have received a copy of the GNU Lesser General Public License | |
19 | * along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
19 | 20 | * |
20 | 21 | * http://epsilon-project.sourceforge.net |
21 | 22 | */ |
0 | 0 | #!/usr/bin/perl -w |
1 | 1 | |
2 | 2 | # |
3 | # $Id: start_epsilon_nodes.pl,v 1.2 2007/07/20 12:29:47 simakov Exp $ | |
3 | # $Id: start_epsilon_nodes.pl,v 1.4 2010/02/05 23:50:23 simakov Exp $ | |
4 | 4 | # |
5 | 5 | # EPSILON - wavelet image compression library. |
6 | # Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
6 | # Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
7 | 7 | # |
8 | # This program is free software; you can redistribute it and/or modify | |
9 | # it under the terms of the GNU General Public License as published by | |
10 | # the Free Software Foundation; either version 2 of the License, or | |
8 | # This file is part of EPSILON | |
9 | # | |
10 | # EPSILON is free software: you can redistribute it and/or modify | |
11 | # it under the terms of the GNU Lesser General Public License as published by | |
12 | # the Free Software Foundation, either version 3 of the License, or | |
11 | 13 | # (at your option) any later version. |
12 | 14 | # |
13 | # This program is distributed in the hope that it will be useful, | |
15 | # EPSILON is distributed in the hope that it will be useful, | |
14 | 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | # GNU General Public License for more details. | |
18 | # GNU Lesser General Public License for more details. | |
17 | 19 | # |
18 | # You should have received a copy of the GNU General Public License | |
19 | # along with this program; if not, write to the Free Software | |
20 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
20 | # You should have received a copy of the GNU Lesser General Public License | |
21 | # along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
21 | 22 | # |
22 | 23 | # http://epsilon-project.sourceforge.net |
23 | 24 | # |
0 | 0 | #!/usr/bin/perl -w |
1 | 1 | |
2 | 2 | # |
3 | # $Id: stop_epsilon_nodes.pl,v 1.3 2007/07/20 12:29:47 simakov Exp $ | |
3 | # $Id: stop_epsilon_nodes.pl,v 1.5 2010/02/05 23:50:23 simakov Exp $ | |
4 | 4 | # |
5 | 5 | # EPSILON - wavelet image compression library. |
6 | # Copyright (C) 2006-2007 Alexander Simakov, <xander@entropyware.info> | |
6 | # Copyright (C) 2006,2007,2010 Alexander Simakov, <xander@entropyware.info> | |
7 | 7 | # |
8 | # This program is free software; you can redistribute it and/or modify | |
9 | # it under the terms of the GNU General Public License as published by | |
10 | # the Free Software Foundation; either version 2 of the License, or | |
8 | # This file is part of EPSILON | |
9 | # | |
10 | # EPSILON is free software: you can redistribute it and/or modify | |
11 | # it under the terms of the GNU Lesser General Public License as published by | |
12 | # the Free Software Foundation, either version 3 of the License, or | |
11 | 13 | # (at your option) any later version. |
12 | 14 | # |
13 | # This program is distributed in the hope that it will be useful, | |
15 | # EPSILON is distributed in the hope that it will be useful, | |
14 | 16 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
15 | 17 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
16 | # GNU General Public License for more details. | |
18 | # GNU Lesser General Public License for more details. | |
17 | 19 | # |
18 | # You should have received a copy of the GNU General Public License | |
19 | # along with this program; if not, write to the Free Software | |
20 | # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | |
20 | # You should have received a copy of the GNU Lesser General Public License | |
21 | # along with EPSILON. If not, see <http://www.gnu.org/licenses/>. | |
21 | 22 | # |
22 | 23 | # http://epsilon-project.sourceforge.net |
23 | 24 | # |