units-2.16/0000777000175000017500000000000013176227200012066 5ustar adrianadrianunits-2.16/units.man0000664000175000017500000032502213176227174013741 0ustar adrianadrian.\"Do not edit this file. It was created from units.texinfo .\"using texi2man version 1.01s on Tue Oct 31 22:16:28 EDT 2017 .\"This manual is for GNU Units (version 2.16), .\"which performs units conversions and units calculations. .\" .\"Copyright \(co 1996, 1997, 1999, 2000, 2001, 2002, 2004, 2005, 2007, .\"2011\-2017 Free Software Foundation, Inc. .\" .\"Permission is granted to copy, distribute and/or modify this document .\"under the terms of the GNU Free Documentation License, Version 1.3 or .\"any later version published by the Free Software Foundation; with no .\"Invariant Sections, with no Front-Cover Texts, and with no Back-Cover .\"Texts. .TH UNITS 1 "16 October 2017" .\" .\" ensure that ASCII circumflex U+005E (^) is not remapped with groff .if \n(.g .tr ^\(ha .\" ellipsis: space periods with troff but not with nroff .if n .ds El \&... .if t .ds El \&.\ .\ . .\" .\" Extensions to man macros .\" .\" Constant-width font .de CW .hy 0 .if n \{\ .ie \\n(.$>2 \&\\$1'\\$2'\\$3 .el \&'\\$1'\\$2 .\} .if t \{\ .ie \\n(.$>2 \&\\$1\f(CW\\$2\fR\\$3 .el \&\f(CW\\$1\fR\\$2 .\} .hy 14 .. .\" Constant-width oblique font .de CI .hy 0 .if n \{\ .ie \\n(.$>2 \&\\$1'\fI\\$2\fR'\\$3 .el \&'\fI\\$1\fR'\\$2 .\} .if t \{\ .ie \\n(.$>2 \&\\$1\f(CI\\$2\fR\\$3 .el \&\f(CI\\$1\fR\\$2 .\} .hy 14 .. .\" Constant-width font with quotes .de CQ .hy 0 .if n \{\ .ie \\n(.$>2 \&\\$1'\\$2'\\$3 .el \&'\\$1'\\$2 .\} .if t \{\ .ie \\n(.$>2 \&\\$1`\f(CW\\$2\fR'\\$3 .el \&`\f(CW\\$1\fR'\\$2 .\} .hy 14 .. .\" Display start .de DS .hy 0 .if t .in +4n .if n .in +3n .nf .. .\" Display end .de DE .fi .in .hy 14 .. .\" Example start .de ES .DS .if t \{\ .if '\\$1'S' \{\ .nr Ex 1 .ps -1 .\} .el .nr Ex 0 .nr mE \\n(.f .ft CW .\} .. .\" Example end .de EE .if t \{\ .ft \\n(mE .if \\n(Ex=1 .ps .\} .DE .. .SH NAME units \(em unit conversion and calculation program .PP .SH SYNOPSIS .PP .CW units .RI [ options ] .RI [ from-unit .RI [ to-unit ]] .PP .SH DESCRIPTION The .CW "units" program converts quantities expressed in various systems of measurement to their equivalents in other systems of measurement. Like many similar programs, it can handle multiplicative scale changes. It can also handle nonlinear conversions such as Fahrenheit to Celsius; see \fITemperature Conversions\fP. The program can also perform conversions from and to sums of units, such as converting between meters and feet plus inches. .PP Basic operation is simple: you enter the units that you want to convert \fIfrom\fP and the units that you want to convert \fIto\fP. You can use the program interactively with prompts, or you can use it from the command line. .PP Beyond simple unit conversions, .CW "units" can be used as a general-purpose scientific calculator that keeps track of units in its calculations. You can form arbitrary complex mathematical expressions of dimensions including sums, products, quotients, powers, and even roots of dimensions. Thus you can ensure accuracy and dimensional consistency when working with long expressions that involve many different units that may combine in complex ways; for an illustration, see \fIComplicated Unit Expressions\fP. .PP The units are defined in an external data file. You can use the extensive data file that comes with this program, or you can provide your own data file to suit your needs. You can also use your own data file to supplement the standard data file. .PP You can change the default behavior of .CW "units" with various options given on the command line. See \fIInvoking Units\fP for a description of the available options. .PP .SH INTERACTING WITH \f(BIUNITS\fP To invoke units for interactive use, type .CI "units" at your shell prompt. The program will print something like this: .PP .ES Currency exchange rates from www.timegenie.com on 2014-03-05 2860 units, 109 prefixes, 85 nonlinear units You have: .EE .PP At the .CQ "You\ have:" prompt, type the quantity and units that you are converting \fIfrom\fP. For example, if you want to convert ten meters to feet, type .CI "10 meters" . Next, .CW "units" will print .CQ "You\ want:" . You should type the units you want to convert \fIto\fP. To convert to feet, you would type .CI "feet" . If the .CW "readline" library was compiled in then \fItab\fP will complete unit names. See \fIReadline Support\fP for more information about .CW "readline" . To quit the program under Unix, press \fICtrl-C\fP or \fICtrl-D\fP. Under Windows, press \fICtrl-C\fP or \fICtrl-Z\fP; with the latter, you may also need to press \fIEnter\fP. .PP The result will be displayed in two ways. The first line of output, which is marked with a .CQ "*" to indicate multiplication, gives the result of the conversion you have asked for. The second line of output, which is marked with a .CQ "/" to indicate division, gives the inverse of the conversion factor. If you convert 10 meters to feet, .CW "units" will print .PP .ES * 32.808399 / 0.03048 .EE .PP which tells you that 10 meters equals about 32.8 feet. The second number gives the conversion in the opposite direction. In this case, it tells you that 1 foot is equal to about 0.03 dekameters since the dekameter is 10 meters. It also tells you that 1/32.8 is about 0.03. .PP The .CW "units" program prints the inverse because sometimes it is a more convenient number. In the example above, for example, the inverse value is an exact conversion: a foot is exactly 0.03048 dekameters. But the number given the other direction is inexact. .PP If you convert grains to pounds, you will see the following: .PP .ES You have: grains You want: pounds * 0.00014285714 / 7000 .EE .PP From the second line of the output you can immediately see that a grain is equal to a seven thousandth of a pound. This is not so obvious from the first line of the output. If you find the output format confusing, try using the .CQ "--verbose" option: .PP .ES You have: grain You want: aeginamina grain = 0.00010416667 aeginamina grain = (1 / 9600) aeginamina .EE .PP If you request a conversion between units that measure reciprocal dimensions, then .CW "units" will display the conversion results with an extra note indicating that reciprocal conversion has been done: .PP .ES You have: 6 ohms You want: siemens reciprocal conversion * 0.16666667 / 6 .EE .PP Reciprocal conversion can be suppressed by using the .CQ "--strict" option. As usual, use the .CQ "--verbose" option to get more comprehensible output: .PP .ES You have: tex You want: typp reciprocal conversion 1 / tex = 496.05465 typp 1 / tex = (1 / 0.0020159069) typp You have: 20 mph You want: sec/mile reciprocal conversion 1 / 20 mph = 180 sec/mile 1 / 20 mph = (1 / 0.0055555556) sec/mile .EE .PP If you enter incompatible unit types, the .CW "units" program will print a message indicating that the units are not conformable and it will display the reduced form for each unit: .PP .ES You have: ergs/hour You want: fathoms kg^2 / day conformability error 2.7777778e-11 kg m^2 / sec^3 2.1166667e-05 kg^2 m / sec .EE .PP If you only want to find the reduced form or definition of a unit, simply press \fIEnter\fP at the .CQ "You\ want:" prompt. Here is an example: .PP .ES You have: jansky You want: Definition: fluxunit = 1e-26 W/m^2 Hz = 1e-26 kg / s^2 .EE .PP The output from .CW "units" indicates that the jansky is defined to be equal to a fluxunit which in turn is defined to be a certain combination of watts, meters, and hertz. The fully reduced (and in this case somewhat more cryptic) form appears on the far right. .PP Some named units are treated as dimensionless in some situations. These units include the radian and steradian. These units will be treated as equal to 1 in units conversions. Power is equal to torque times angular velocity. This conversion can only be performed if the radian is dimensionless. .PP .ES You have: (14 ft lbf) (12 radians/sec) You want: watts * 227.77742 / 0.0043902509 .EE .PP It is also possible to compute roots and other non-integer powers of dimensionless units; this allows computations such as the altitude of geosynchronous orbit: .PP .ES You have: cuberoot(G earthmass / (circle/siderealday)^2) - earthradius You want: miles * 22243.267 / 4.4957425e-05 .EE .PP Named dimensionless units are not treated as dimensionless in other contexts. They cannot be used as exponents so for example, .CQ "meter^radian" is forbidden. .PP If you want a list of options you can type .CI "?" at the .CQ "You\ want:" prompt. The program will display a list of named units that are conformable with the unit that you entered at the .CQ "You\ have:" prompt above. Conformable unit \fIcombinations\fP will not appear on this list. .PP Typing .CI "help" at either prompt displays a short help message. You can also type .CI "help" followed by a unit name. This will invoke a pager on the units data base at the point where that unit is defined. You can read the definition and comments that may give more details or historical information about the unit. (You can generally quit out of the page by pressing .CQ "q" .) .PP Typing .CI "search" \fItext\fP will display a list of all of the units whose names contain \fItext\fP as a substring along with their definitions. This may help in the case where you aren't sure of the right unit name. .PP .SH USING \f(BIUNITS\fP NON-INTERACTIVELY The .CW "units" program can perform units conversions non-interactively from the command line. To do this, type the command, type the original unit expression, and type the new units you want. If a units expression contains non-alphanumeric characters, you may need to protect it from interpretation by the shell using single or double quote characters. .PP If you type .PP .ES units "2 liters" quarts .EE .PP then .CW "units" will print .PP .ES * 2.1133764 / 0.47317647 .EE .PP and then exit. The output tells you that 2 liters is about 2.1 quarts, or alternatively that a quart is about 0.47 times 2 liters. .PP If the conversion is successful, then .CW "units" will return success (zero) to the calling environment. If you enter non-conformable units then .CW "units" will print a message giving the reduced form of each unit and it will return failure (nonzero) to the calling environment. .PP When you invoke .CW "units" with only one argument, it will print out the definition of the specified unit. It will return failure if the unit is not defined and success if the unit is defined. .PP .SH UNIT DEFINITIONS The conversion information is read from a units data file that is called .CQ "definitions.units" and is usually located in the .CQ "/usr/share/units" directory. If you invoke .CW "units" with the .CQ "-V" option, it will print the location of this file. The default file includes definitions for all familiar units, abbreviations and metric prefixes. It also includes many obscure or archaic units. Many common spelled-out numbers (e.g., .CQ "seventeen" ) are recognized. .PP Many constants of nature are defined, including these: .PP .ES pi \fRratio of circumference to diameter\fP c \fRspeed of light\fP e \fRcharge on an electron\fP force \fRacceleration of gravity\fP mole \fRAvogadro's number\fP water \fRpressure per unit height of water\fP Hg \fRpressure per unit height of mercury\fP au \fRastronomical unit\fP k \fRBoltzman's constant\fP mu0 \fRpermeability of vacuum\fP epsilon0 \fRpermittivity of vacuum\fP G \fRGravitational constant\fP mach \fRspeed of sound\fP .EE .PP The standard data file includes atomic masses for all of the elements and numerous other constants. Also included are the densities of various ingredients used in baking so that .CQ "2\ cups flour_sifted" can be converted to .CQ "grams" . This is not an exhaustive list. Consult the units data file to see the complete list, or to see the definitions that are used. .PP The .CQ "pound" is a unit of mass. To get force, multiply by the force conversion unit .CQ "force" or use the shorthand .CQ "lbf" . (Note that .CQ "g" is already taken as the standard abbreviation for the gram.) The unit .CQ "ounce" is also a unit of mass. The fluid ounce is .CQ "fluidounce" or .CQ "floz" . When British capacity units differ from their US counterparts, such as the British Imperial gallon, the unit is defined both ways with .CQ "br" and .CQ "us" prefixes. Your locale settings will determine the value of the unprefixed unit. Currency is prefixed with its country name: .CQ "belgiumfranc" , .CQ "britainpound" . .PP When searching for a unit, if the specified string does not appear exactly as a unit name, then the .CW "units" program will try to remove a trailing .CQ "s" , .CQ "es" . Next units will replace a trailing .CQ "ies" with .CQ "y" . If that fails, .CW "units" will check for a prefix. The database includes all of the standard metric prefixes. Only one prefix is permitted per unit, so .CQ "micromicrofarad" will fail. However, prefixes can appear alone with no unit following them, so .CQ "micro*microfarad" will work, as will .CQ "micro microfarad" . .PP To find out which units and prefixes are available, read the standard units data file, which is extensively annotated. .PP .SS English Customary Units English customary units differ in various ways in different regions. In Britain a complex system of volume measurements featured different gallons for different materials such as a wine gallon and ale gallon that different by twenty percent. This complexity was swept away in 1824 by a reform that created an entirely new gallon, the British Imperial gallon defined as the volume occupied by ten pounds of water. Meanwhile in the USA the gallon is derived from the 1707 Winchester wine gallon, which is 231 cubic inches. These gallons differ by about twenty percent. By default if .CW "units" runs in the .CQ "en_GB" locale you will get the British volume measures. If it runs in the .CQ "en_US" locale you will get the US volume measures. In other locales the default values are the US definitions. If you wish to force different definitions then set the environment variable .CW "UNITS_ENGLISH" to either .CQ "US" or .CQ "GB" to set the desired definitions independent of the locale. .PP Before 1959, the value of a yard (and other units of measure defined in terms of it) differed slightly among English-speaking countries. In 1959, Australia, Canada, New Zealand, the United Kingdom, the United States, and South Africa adopted the Canadian value of 1\ yard = 0.9144\ m (exactly), which was approximately halfway between the values used by the UK and the US; it had the additional advantage of making 1\ inch = 2.54\ cm (exactly). This new standard was termed the \fIInternational Yard\fP. Australia, Canada, and the UK then defined all customary lengths in terms of the International Yard (Australia did not define the furlong or rod); because many US land surveys were in terms of the pre-1959 units, the US continued to define customary surveyors' units (furlong, chain, rod, and link) in terms of the previous value for the foot, which was termed the \fIUS survey foot\fP. The US defined a \fIUS survey mile\fP as 5280 US survey feet, and defined a \fIstatute mile\fP as a US survey mile. The US values for these units differ from the international values by about 2\ ppm. .PP The .CW "units" program uses the international values for these units; the US values can be obtained by using either the .CQ "US" or the .CQ "survey" prefix. In either case, the simple familiar relationships among the units are maintained, e.g., 1 .CQ "furlong" = 660 .CQ "ft" , and 1 .CQ "USfurlong" = 660 .CQ "USft" , though the metric equivalents differ slightly between the two cases. The .CQ "US" prefix or the .CQ "survey" prefix can also be used to obtain the US survey mile and the value of the US yard prior to 1959, e.g., .CQ "USmile" or .CQ "surveymile" (but \fInot\fP .CQ "USsurveymile" ). To get the US value of the statute mile, use either .CQ "USstatutemile" or .CQ "USmile" . .PP Except for distances that extend over hundreds of miles (such as in the US State Plane Coordinate System), the differences in the miles are usually insignificant: .PP .ES You have: 100 surveymile - 100 mile You want: inch * 12.672025 / 0.078913984 .EE .PP The pre-1959 UK values for these units can be obtained with the prefix .CQ "UK" . .PP In the US, the acre is officially defined in terms of the US survey foot, but .CW "units" uses a definition based on the international foot. If you want the official US acre use .CQ "USacre" and similarly use .CQ "USacrefoot" for the official US version of that unit. The difference between these units is about 4 parts per million. .PP .SH UNIT EXPRESSIONS .SS Operators You can enter more complicated units by combining units with operations such as multiplication, division, powers, addition, subtraction, and parentheses for grouping. You can use the customary symbols for these operators when .CW "units" is invoked with its default options. Additionally, .CW "units" supports some extensions, including high priority multiplication using a space, and a high priority numerical division operator .CQ ( "|" ) that can simplify some expressions. .PP You multiply units using a space or an asterisk .CQ ( "*" ). The next example shows both forms: .PP .ES You have: arabicfoot * arabictradepound * force You want: ft lbf * 0.7296 / 1.370614 .EE .PP You can divide units using the slash .CQ ( "/" ) or with .CQ "per" : .PP .ES You have: furlongs per fortnight You want: m/s * 0.00016630986 / 6012.8727 .EE .PP You can use parentheses for grouping: .PP .ES You have: (1/2) kg / (kg/meter) You want: league * 0.00010356166 / 9656.0833 .EE .PP White space surrounding operators is optional, so the previous example could have used .CQ "(1/2)kg/(kg/meter)" . As a consequence, however, hyphenated spelled-out numbers (e.g., .CQ "forty-two" ) cannot be used; .CQ "forty-two" is interpreted as .CQ "40 - 2" . .PP Multiplication using a space has a higher precedence than division using a slash and is evaluated left to right; in effect, the first .CQ "/" character marks the beginning of the denominator of a unit expression. This makes it simple to enter a quotient with several terms in the denominator: .CQ "J\ /\ mol\ K" . The .CQ "*" and .CQ "/" operators have the same precedence, and are evaluated left to right; if you multiply with .CQ "*" , you must group the terms in the denominator with parentheses: .CQ "J\ /\ (mol\ *\ K)" . .PP The higher precedence of the space operator may not always be advantageous. For example, .CQ "m/s\ s/day" is equivalent to .CQ "m\ /\ s\ s\ day" and has dimensions of length per time cubed. Similarly, .CQ "1/2\ meter" refers to a unit of reciprocal length equivalent to 0.5/meter, perhaps not what you would intend if you entered that expression. The get a half meter you would need to use parentheses: .CQ "(1/2)\ meter" . The .CQ "*" operator is convenient for multiplying a sequence of quotients. For example, .CQ "m/s\ *\ s/day" is equivalent to .CQ "m/day" . Similarly, you could write .CQ "1/2\ *\ meter" to get half a meter. .PP The .CW "units" program supports another option for numerical fractions: you can indicate division of \fInumbers\fP with the vertical bar .CQ ( "|" ), so if you wanted half a meter you could write .CQ "1|2\ meter" . You cannot use the vertical bar to indicate division of non-numerical units (e.g., .CQ "m|s" results in an error message). .PP Powers of units can be specified using the .CQ "^" character, as shown in the following example, or by simple concatenation of a unit and its exponent: .CQ "cm3" is equivalent to .CQ "cm^3" ; if the exponent is more than one digit, the .CQ "^" is required. You can also use .CQ "**" as an exponent operator. .PP .ES You have: cm^3 You want: gallons * 0.00026417205 / 3785.4118 .EE .PP Concatenation only works with a single unit name: if you write .CQ "(m/s)2" , .CW "units" will treat it as multiplication by 2. When a unit includes a prefix, exponent operators apply to the combination, so .CQ "centimeter3" gives cubic centimeters. If you separate the prefix from the unit with any multiplication operator (e.g., .CQ "centi meter^3" ), the prefix is treated as a separate unit, so the exponent applies only to the unit without the prefix. The second example is equivalent to .CQ "centi * (meter^3)" , and gives a hundredth of a cubic meter, not a cubic centimeter. The .CW "units" program is limited internally to products of 99 units; accordingly, expressions like .CQ "meter^100" or .CQ "joule^34" (represented internally as .CQ "kg^34\ m^68\ /\ s^68" ) will fail. .PP The .CQ "|" operator has the highest precedence, so you can write the square root of two thirds as .CQ "2|3^1|2" . The .CQ "^" operator has the second highest precedence, and is evaluated right to left, as usual: .PP .ES You have: 5 * 2^3^2 You want: Definition: 2560 .EE .PP With a dimensionless base unit, any dimensionless exponent is meaningful (e.g., .CQ "pi^exp(2.371)" ). Even though angle is sometimes treated as dimensionless, exponents cannot have dimensions of angle: .PP .ES You have: 2^radian ^ Exponent not dimensionless .EE .PP If the base unit is not dimensionless, the exponent must be a rational number \fIp\fP/\fIq\fP, and the dimension of the unit must be a power of \fIq\fP, so .CQ "gallon^2|3" works but .CQ "acre^2|3" fails. An exponent using the slash .CQ ( "/" ) operator (e.g., .CQ "gallon^(2/3)" ) is also acceptable; the parentheses are needed because the precedence of .CQ "^" is higher than that of .CQ "/" . Since .CW "units" cannot represent dimensions with exponents greater than 99, a fully reduced exponent must have \fIq\fP\ <\ 100. When raising a non-dimensionless unit to a power, .CW "units" attempts to convert a decimal exponent to a rational number with \fIq\fP\ <\ 100. If this is not possible .CW "units" displays an error message: .PP .ES You have: ft^1.234 Base unit not dimensionless; rational exponent required .EE .PP A decimal exponent must match its rational representation to machine precision, so .CQ "acre^1.5" works but .CQ "gallon^0.666" does not. .PP .SS Sums and Differences of Units You may sometimes want to add values of different units that are outside the SI. You may also wish to use .CW "units" as a calculator that keeps track of units. Sums of conformable units are written with the .CQ "+" character, and differences with the .CQ "-" character. .PP .ES You have: 2 hours + 23 minutes + 32 seconds You want: seconds * 8612 / 0.00011611705 .EE .PP .ES You have: 12 ft + 3 in You want: cm * 373.38 / 0.0026782366 .EE .PP .ES You have: 2 btu + 450 ft lbf You want: btu * 2.5782804 / 0.38785542 .EE .PP The expressions that are added or subtracted must reduce to identical expressions in primitive units, or an error message will be displayed: .PP .ES You have: 12 printerspoint - 4 heredium ^ Illegal sum of non-conformable units .EE .PP As usual, the precedence for .CQ "+" and .CQ "-" is lower than that of the other operators. A fractional quantity such as 2\ 1/2 cups can be given as .CQ "(2+1|2) cups" ; the parentheses are necessary because multiplication has higher precedence than addition. If you omit the parentheses, .CW "units" attempts to add .CQ "2" and .CQ "1|2 cups" , and you get an error message: .PP .ES You have: 2+1|2 cups ^ Illegal sum or difference of non-conformable units .EE .PP The expression could also be correctly written as .CQ "(2+1/2) cups" . If you write .CQ "2\ 1|2 cups" the space is interpreted as \fImultiplication\fP so the result is the same as .CQ "1 cup" . .PP The .CQ "+" and .CQ "-" characters sometimes appears in exponents like .CQ "3.43e+8" . This leads to an ambiguity in an expression like .CQ "3e+2 yC" . The unit .CQ "e" is a small unit of charge, so this can be regarded as equivalent to .CQ "(3e+2) yC" or .CQ "(3 e)+(2 yC)" . This ambiguity is resolved by always interpreting .CQ "+" and .CQ "-" as part of an exponent if possible. .PP .SS Numbers as Units For .CW "units" , numbers are just another kind of unit. They can appear as many times as you like and in any order in a unit expression. For example, to find the volume of a box that is 2 ft by 3 ft by 12 ft in steres, you could do the following: .PP .ES You have: 2 ft 3 ft 12 ft You want: stere * 2.038813 / 0.49048148 You have: $ 5 / yard You want: cents / inch * 13.888889 / 0.072 .EE .PP And the second example shows how the dollar sign in the units conversion can precede the five. Be careful: .CW "units" will interpret .CQ "$5" with no space as equivalent to .CQ "dollar^5" . .PP .SS Built-in Functions Several built-in functions are provided: .CQ "sin" , .CQ "cos" , .CQ "tan" , .CQ "ln" , .CQ "log" , .CQ "log2" , .CQ "exp" , .CQ "acos" , .CQ "atan" and .CQ "asin" . The .CQ "sin" , .CQ "cos" , and .CQ "tan" functions require either a dimensionless argument or an argument with dimensions of angle. .PP .ES You have: sin(30 degrees) You want: Definition: 0.5 You have: sin(pi/2) You want: Definition: 1 You have: sin(3 kg) ^ Unit not dimensionless .EE .PP The other functions on the list require dimensionless arguments. The inverse trigonometric functions return arguments with dimensions of angle. .PP If you wish to take roots of units, you may use the .CQ "sqrt" or .CQ "cuberoot" functions. These functions require that the argument have the appropriate root. You can obtain higher roots by using fractional exponents: .PP .ES You have: sqrt(acre) You want: feet * 208.71074 / 0.0047913202 You have: (400 W/m^2 / stefanboltzmann)^(1/4) You have: Definition: 289.80882 K You have: cuberoot(hectare) ^ Unit not a root .EE .PP .SS Previous Result You can insert the result of the previous conversion using the underscore .CQ ( "_" ). It is useful when you want to convert the same input to several different units, for example .PP .ES You have: 2.3 tonrefrigeration You want: btu/hr * 27600 / 3.6231884e-005 You have: _ You want: kW * 8.0887615 / 0.12362832 .EE .PP Suppose you want to do some deep frying that requires an oil depth of 2\ inches. You have 1/2 gallon of oil, and want to know the largest-diameter pan that will maintain the required depth. The nonlinear unit .CQ "circlearea" gives the \fIradius\fP of the circle (see \fIOther Nonlinear Units\fP, for a more detailed description) in SI units; you want the \fIdiameter\fP in \fIinches\fP: .PP .ES You have: 1|2 gallon / 2 in You want: circlearea 0.10890173 m You have: 2 _ You want: in * 8.5749393 / 0.1166189 .EE .PP In most cases, surrounding white space is optional, so the previous example could have used .CQ "2_" . If .CQ "_" follows a non-numerical unit symbol, however, the space is required: .PP .ES You have: m_ ^ Parse error .EE .PP When .CQ "_" is followed by a digit, the operation is multiplication rather than exponentiation, so that .CQ "_2" , is equivalent to .CQ "_\ *\ 2" rather than .CQ "_^2" . .PP You can use the .CQ "_" symbol any number of times; for example, .PP .ES You have: m You want: Definition: 1 m You have: _ _ You want: Definition: 1 m^2 .EE .PP Using .CQ "_" before a conversion has been performed (e.g., immediately after invocation) generates an error: .PP .if \n(.g .tr '\(aq .ES You have: _ ^ No previous result; '_' not set .EE .if \n(.g .tr '' .PP Accordingly, .CQ "_" serves no purpose when .CW "units" is invoked non-interactively. .PP If .CW "units" is invoked with the .CQ "--verbose" option (see \fIInvoking Units\fP), the value of .CQ "_" is not expanded: .PP .ES You have: mile You want: ft mile = 5280 ft mile = (1 / 0.00018939394) ft You have: _ You want: m _ = 1609.344 m _ = (1 / 0.00062137119) m .EE .PP You can give .CQ "_" at the .CQ "You\ want:" prompt, but it usually is not very useful. .PP .SS Complicated Unit Expressions The .CW "units" program is especially helpful in ensuring accuracy and dimensional consistency when converting lengthy unit expressions. .if t .ig ++ For example, one form of the Darcy-Weisbach fluid-flow equation is .RS 5n .PP Delta \fIP\fP = (8 / pi)^2 (rho \fIfLQ\fP^2) / \fId\fP^5, .RE .PP where Delta \fIP\fP is the pressure drop, rho is the mass density, \fIf\fP is the (dimensionless) friction factor, \fIL\fP is the length of the pipe, \fIQ\fP is the volumetric flow rate, and \fId\fP is the pipe diameter. It might be desired to have the equation in the form .RS 5n .PP Delta \fIP\fP = A1 rho \fIfLQ\fP^2 / \fId\fP^5 .RE .PP .++ .if n .ig ++ .EQ delim $$ .EN For example, one form of the Darcy\-Weisbach fluid-flow equation is .RS 5n .PP .EQ DELTA P = 8 over pi sup 2 rho fL Q sup 2 over d sup 5 , .EN .RE .PP where $DELTA P$ is the pressure drop, $rho$ is the mass density, $f$ is the (dimensionless) friction factor, $L$ is the length of the pipe, $Q$ is the volumetric flow rate, and $d$ is the pipe diameter. It might be desired to have the equation in the form .RS 5n .PP .EQ DELTA P = A sub 1 rho fL Q sup 2 over d sup 5 .EN .RE .PP .EQ delim off .EN .++ .PP that accepted the user's normal units; for typical units used in the US, the required conversion could be something like .PP .ES You have: (8/pi^2)(lbm/ft^3)ft(ft^3/s)^2(1/in^5) You want: psi * 43.533969 / 0.022970568 .EE .PP The parentheses allow individual terms in the expression to be entered naturally, as they might be read from the formula. Alternatively, the multiplication could be done with the .CQ "*" rather than a space; then parentheses are needed only around .CQ "ft^3/s" because of its exponent: .PP .ES You have: 8/pi^2 * lbm/ft^3 * ft * (ft^3/s)^2 /in^5 You want: psi * 43.533969 / 0.022970568 .EE .PP Without parentheses, and using spaces for multiplication, the previous conversion would need to be entered as .PP .ES You have: 8 lb ft ft^3 ft^3 / pi^2 ft^3 s^2 in^5 You want: psi * 43.533969 / 0.022970568 .EE .PP .SS Backwards Compatibility: .CQ "*" and .CQ "-" The original .CW "units" assigned multiplication a higher precedence than division using the slash. This differs from the usual precedence rules, which give multiplication and division equal precedence, and can be confusing for people who think of units as a calculator. .PP The star operator .CQ ( "*" ) included in this .CW "units" program has, by default, the same precedence as division, and hence follows the usual precedence rules. For backwards compatibility you can invoke .CW "units" with the .CQ "--oldstar" option. Then .CQ "*" has a higher precedence than division, and the same precedence as multiplication using the space. .PP Historically, the hyphen .CQ ( "-" ) has been used in technical publications to indicate products of units, and the original .CW "units" program treated it as a multiplication operator. Because .CW "units" provides several other ways to obtain unit products, and because .CQ "-" is a subtraction operator in general algebraic expressions, .CW "units" treats the binary .CQ "-" as a subtraction operator by default. For backwards compatibility use the .CQ "--product" option, which causes .CW "units" to treat the binary .CQ "-" operator as a product operator. When .CQ "-" is a multiplication operator it has the same precedence as multiplication with a space, giving it a higher precedence than division. .PP When .CQ "-" is used as a unary operator it negates its operand. Regardless of the .CW "units" options, if .CQ "-" appears after .CQ "(" or after .CQ "+" then it will act as a negation operator. So you can always compute 20 degrees minus 12 minutes by entering .CQ "20\ degrees + -12\ arcmin" . You must use this construction when you define new units because you cannot know what options will be in force when your definition is processed. .PP .SH NONLINEAR UNIT CONVERSIONS Nonlinear units are represented using functional notation. They make possible nonlinear unit conversions such as temperature. .PP .SS Temperature Conversions Conversions between temperatures are different from linear conversions between temperature \fIincrements\fP\(emsee the example below. The absolute temperature conversions are handled by units starting with .CQ "temp" , and you must use functional notation. The temperature-increment conversions are done using units starting with .CQ "deg" and they do not require functional notation. .PP .ES You have: tempF(45) You want: tempC 7.2222222 You have: 45 degF You want: degC * 25 / 0.04 .EE .PP Think of .CQ "tempF(\fIx\fP)" not as a function but as a notation that indicates that \fIx\fP should have units of .CQ "tempF" attached to it. See \fIDefining Nonlinear Units\fP. The first conversion shows that if it's 45 degrees Fahrenheit outside, it's 7.2 degrees Celsius. The second conversion indicates that a change of 45 degrees Fahrenheit corresponds to a change of 25 degrees Celsius. The conversion from .CQ "tempF(\fIx\fP)" is to absolute temperature, so that .PP .ES You have: tempF(45) You want: degR * 504.67 / 0.0019814929 .EE .PP gives the same result as .PP .ES You have: tempF(45) You want: tempR * 504.67 / 0.0019814929 .EE .PP But if you convert .CQ "tempF(\fIx\fP)" to .CQ "degC" , the output is probably not what you expect: .PP .ES You have: tempF(45) You want: degC * 280.37222 / 0.0035666871 .EE .PP The result is the temperature in K, because .CQ "degC" is defined as .CQ "K" , the Kelvin. For consistent results, use the .CQ "temp\fIX\fP" units when converting to a temperature rather than converting a temperature increment. .PP The .CQ "tempC()" and .CQ "tempF()" definitions are limited to positive absolute temperatures, and giving a value that would result in a negative absolute temperature generates an error message: .PP .ES You have: tempC(-275) ^ Argument of function outside domain ^ .EE .PP .SS Other Nonlinear Units Some other examples of nonlinear units are numerous different ring sizes and wire gauges, the grit sizes used for abrasives, the decibel scale, shoe size, scales for the density of sugar (e.g., baume). The standard data file also supplies units for computing the area of a circle and the volume of a sphere. See the standard units data file for more details. Wire gauges with multiple zeroes are signified using negative numbers where two zeroes is .CQ "-1" . Alternatively, you can use the synonyms .CQ "g00" , .CQ "g000" , and so on that are defined in the standard units data file. .PP .ES You have: wiregauge(11) You want: inches * 0.090742002 / 11.020255 You have: brwiregauge(g00) You want: inches * 0.348 / 2.8735632 You have: 1 mm You want: wiregauge 18.201919 You have: grit_P(600) You want: grit_ansicoated 342.76923 .EE .PP The last example shows the conversion from P graded sand paper, which is the European standard and may be marked ``P600'' on the back, to the USA standard. .PP You can compute the area of a circle using the nonlinear unit, .CQ "circlearea" . You can also do this using the circularinch or circleinch. The next example shows two ways to compute the area of a circle with a five inch radius and one way to compute the volume of a sphere with a radius of one meter. .PP .ES You have: circlearea(5 in) You want: in2 * 78.539816 / 0.012732395 You have: 10^2 circleinch You want: in2 * 78.539816 / 0.012732395 You have: spherevol(meter) You want: ft3 * 147.92573 / 0.0067601492 .EE .PP The inverse of a nonlinear conversion is indicated by prefixing a tilde .CQ ( "~" ) to the nonlinear unit name: .PP .ES You have: ~wiregauge(0.090742002 inches) You want: Definition: 11 .EE .PP You can give a nonlinear unit definition without an argument or parentheses, and press \fIEnter\fP at the .CQ "You\ want:" prompt to get the definition of a nonlinear unit; if the definition is not valid for all real numbers, the range of validity is also given. If the definition requires specific units this information is also displayed: .PP .ES You have: tempC Definition: tempC(x) = x K + stdtemp defined for x >= -273.15 You have: ~tempC Definition: ~tempC(tempC) = (tempC +(-stdtemp))/K defined for tempC >= 0 K You have: circlearea Definition: circlearea(r) = pi r^2 r has units m .EE .PP To see the definition of the inverse use the .CQ "~" notation. In this case the parameter in the functional definition will usually be the name of the unit. Note that the inverse for .CQ "tempC" shows that it requires units of .CQ "K" in the specification of the allowed range of values. Nonlinear unit conversions are described in more detail in \fIDefining Nonlinear Units\fP. .PP .SH UNIT LISTS: CONVERSION TO SUMS OF UNITS Outside of the SI, it is sometimes desirable to convert a single unit to a sum of units\(emfor example, feet to feet plus inches. The conversion \fIfrom\fP sums of units was described in \fISums and Differences of Units\fP, and is a simple matter of adding the units with the .CQ "+" sign: .PP .ES You have: 12 ft + 3 in + 3|8 in You want: ft * 12.28125 / 0.081424936 .EE .PP Although you can similarly write a sum of units to convert \fIto\fP, the result will not be the conversion to the units in the sum, but rather the conversion to the particular sum that you have entered: .PP .ES You have: 12.28125 ft You want: ft + in + 1|8 in * 11.228571 / 0.089058524 .EE .PP The unit expression given at the .CQ "You\ want:" prompt is equivalent to asking for conversion to multiples of .CQ "1\ ft + 1\ in + 1|8\ in" , which is 1.09375 ft, so the conversion in the previous example is equivalent to .PP .ES You have: 12.28125 ft You want: 1.09375 ft * 11.228571 / 0.089058524 .EE .PP In converting to a sum of units like miles, feet and inches, you typically want the largest integral value for the first unit, followed by the largest integral value for the next, and the remainder converted to the last unit. You can do this conversion easily with .CW "units" using a special syntax for lists of units. You must list the desired units in order from largest to smallest, separated by the semicolon .CQ ( ";" ) character: .PP .ES You have: 12.28125 ft You want: ft;in;1|8 in 12 ft + 3 in + 3|8 in .EE .PP The conversion always gives integer coefficients on the units in the list, except possibly the last unit when the conversion is not exact: .PP .ES You have: 12.28126 ft You want: ft;in;1|8 in 12 ft + 3 in + 3.00096 * 1|8 in .EE .PP The order in which you list the units is important: .PP .ES You have: 3 kg You want: oz;lb 105 oz + 0.051367866 lb You have: 3 kg You want: lb;oz 6 lb + 9.8218858 oz .EE .PP Listing ounces before pounds produces a technically correct result, but not a very useful one. You must list the units in descending order of size in order to get the most useful result. .PP Ending a unit list with the separator .CQ ";" has the same effect as repeating the last unit on the list, so .CQ "ft;in;1|8 in;" is equivalent to .CQ "ft;in;1|8 in;1|8 in" . With the example above, this gives .PP .ES You have: 12.28126 ft You want: ft;in;1|8 in; 12 ft + 3 in + 3|8 in + 0.00096 * 1|8 in .EE .PP in effect separating the integer and fractional parts of the coefficient for the last unit. If you instead prefer to round the last coefficient to an integer you can do this with the .CQ "--round" .CQ ( "-r" ) option. With the previous example, the result is .PP .ES You have: 12.28126 ft You want: ft;in;1|8 in 12 ft + 3 in + 3|8 in (rounded down to nearest 1|8 in) .EE .PP When you use the .CQ "-r" option, repeating the last unit on the list has no effect (e.g., .CQ "ft;in;1|8 in;1|8 in" is equivalent to .CQ "ft;in;1|8 in" ), and hence neither does ending a list with a .CQ ";" . With a single unit and the .CQ "-r" option, a terminal .CQ ";" \fIdoes\fP have an effect: it causes .CW "units" to treat the single unit as a list and produce a rounded value for the single unit. Without the extra .CQ ";" , the .CQ "-r" option has no effect on single unit conversions. This example shows the output using the .CQ "-r" option: .PP .ES You have: 12.28126 ft You want: in * 147.37512 / 0.0067854058 You have: 12.28126 ft You want: in; 147 in (rounded down to nearest in) .EE .PP Each unit that appears in the list must be conformable with the first unit on the list, and of course the listed units must also be conformable with the unit that you enter at the .CQ "You\ have:" prompt. .PP .ES You have: meter You want: ft;kg ^ conformability error ft = 0.3048 m kg = 1 kg You have: meter You want: lb;oz conformability error 1 m 0.45359237 kg .EE .PP In the first case, .CW "units" reports the disagreement between units appearing on the list. In the second case, .CW "units" reports disagreement between the unit you entered and the desired conversion. This conformability error is based on the first unit on the unit list. .PP Other common candidates for conversion to sums of units are angles and time: .PP .ES You have: 23.437754 deg You want; deg;arcmin;arcsec 23 deg + 26 arcmin + 15.9144 arcsec You have: 7.2319 hr You want: hr;min;sec 7 hr + 13 min + 54.84 sec .EE .PP In North America, recipes for cooking typically measure ingredients by volume, and use units that are not always convenient multiples of each other. Suppose that you have a recipe for 6 and you wish to make a portion for 1. If the recipe calls for 2\ 1/2 cups of an ingredient, you might wish to know the measurements in terms of measuring devices you have available, you could use .CW "units" and enter .PP .ES You have: (2+1|2) cup / 6 You want: cup;1|2 cup;1|3 cup;1|4 cup;tbsp;tsp;1|2 tsp;1|4 tsp 1|3 cup + 1 tbsp + 1 tsp .EE .PP By default, if a unit in a list begins with fraction of the form 1|\fIx\fP and its multiplier is an integer, the fraction is given as the product of the multiplier and the numerator; for example, .PP .ES You have: 12.28125 ft You want: ft;in;1|8 in; 12 ft + 3 in + 3|8 in .EE .PP In many cases, such as the example above, this is what is wanted, but sometimes it is not. For example, a cooking recipe for 6 might call for 5\ 1/4 cup of an ingredient, but you want a portion for 2, and your 1-cup measure is not available; you might try .PP .ES You have: (5+1|4) cup / 3 You want: 1|2 cup;1|3 cup;1|4 cup 3|2 cup + 1|4 cup .EE .PP This result might be fine for a baker who has a 1\ 1/2-cup measure (and recognizes the equivalence), but it may not be as useful to someone with more limited set of measures, who does want to do additional calculations, and only wants to know ``How many 1/2-cup measures to I need to add?'' After all, that's what was actually asked. With the .CQ "--show-factor" option, the factor will not be combined with a unity numerator, so that you get .PP .ES You have: (5+1|4) cup / 3 You want: 1|2 cup;1|3 cup;1|4 cup 3 * 1|2 cup + 1|4 cup .EE .PP A user-specified fractional unit with a numerator other than 1 is never overridden, however\(emif a unit list specifies .CQ "3|4 cup;1|2 cup" , a result equivalent to 1\ 1/2 cups will always be shown as .CQ "2 * 3|4\ cup" whether or not the .CQ "--show-factor" option is given. .PP Some applications for unit lists may be less obvious. Suppose that you have a postal scale and wish to ensure that it's accurate at 1\ oz, but have only metric calibration weights. You might try .PP .ES You have: 1 oz You want: 100 g;50 g; 20 g;10 g;5 g;2 g;1 g; 20 g + 5 g + 2 g + 1 g + 0.34952312 * 1 g .EE .PP You might then place one each of the 20\ g, 5\ g, 2\ g, and 1\ g weights on the scale and hope that it indicates close to .PP .ES You have: 20 g + 5 g + 2 g + 1 g You want: oz; 0.98767093 oz .EE .PP Appending .CQ ";" to .CQ "oz" forces a one-line display that includes the unit; here the integer part of the result is zero, so it is not displayed. .PP A unit list such as .PP .ES cup;1|2\ cup;1|3\ cup;1|4\ cup;tbsp;tsp;1|2\ tsp;1|4\ tsp .EE .PP can be tedious to enter. The .CW "units" program provides shorthand names for some common combinations: .PP .ES hms \fRhours, minutes, seconds\fP dms \fRangle: degrees, minutes, seconds\fP time \fRyears, days, hours, minutes and seconds\fP usvol \fRUS cooking volume: cups and smaller\fP .EE .PP Using these shorthands, or \fIunit list aliases\fP, you can do the following conversions: .PP .ES You have: anomalisticyear You want: time 1 year + 25 min + 3.4653216 sec You have: 1|6 cup You want: usvol 2 tbsp + 2 tsp .EE .PP You cannot combine a unit list alias with other units: it must appear alone at the .CQ "You\ want:" prompt. .PP You can display the definition of a unit list alias by entering it at the .CQ "You\ have:" prompt: .PP .ES You have: dms Definition: unit list, deg;arcmin;arcsec .EE .PP When you specify compact output with .CQ "--compact" , .CQ "--terse" or .CQ "-t" and perform conversion to a unit list, .CW "units" lists the conversion factors for each unit in the list, separated by semicolons. .PP .ES You have: year You want: day;min;sec 365;348;45.974678 .EE .PP Unlike the case of regular output, zeros \fIare\fP included in this output list: .PP .ES You have: liter You want: cup;1|2 cup;1|4 cup;tbsp 4;0;0;3.6280454 .EE .PP .SH LOGGING CALCULATIONS The .CQ "--log" option allows you to save the results of calculations in a file; this can be useful if you need a permanent record of your work. For example, the fluid-flow conversion in \fIComplicated Unit Expressions\fP, is lengthy, and if you were to use it in designing a piping system, you might want a record of it for the project file. If the interactive session .PP .ES # Conversion factor A1 for pressure drop # dP = A1 rho f L Q^2/d^5 You have: (8/pi^2) (lbm/ft^3)ft(ft^3/s)^2(1/in^5) # Input units You want: psi * 43.533969 / 0.022970568 .EE .PP were logged, the log file would contain .PP .ES ### Log started Fri Oct 02 15:55:35 2015 # Conversion factor A1 for pressure drop # dP = A1 rho f L Q^2/d^5 From: (8/pi^2) (lbm/ft^3)ft(ft^3/s)^2(1/in^5) # Input units To: psi * 43.533969 / 0.022970568 .EE .PP The time is written to the log file when the file is opened. .PP The use of comments can help clarify the meaning of calculations for the log. The log includes conformability errors between the units at the .CQ "You\ have:" and .CQ "You\ want:" prompts, but not other errors, including lack of conformability of items in sums or differences or among items in a unit list. For example, a conversion between zenith angle and elevation angle could involve .PP .ES You have: 90 deg - (5 deg + 22 min + 9 sec) ^ Illegal sum or difference of non-conformable units You have: 90 deg - (5 deg + 22 arcmin + 9 arcsec) You want: dms 84 deg + 37 arcmin + 51 arcsec You have: _ You want: deg * 84.630833 / 0.011816024 You have: .EE .PP The log file would contain .PP .ES From: 90 deg - (5 deg + 22 arcmin + 9 arcsec) To: deg;arcmin;arcsec 84 deg + 37 arcmin + 51 arcsec From: _ To: deg * 84.630833 / 0.011816024 .EE .PP The initial entry error (forgetting that minutes have dimension of time, and that arcminutes must be used for dimensions of angle) does not appear in the output. When converting to a unit list alias, .CW "units" expands the alias in the log file. .PP The .CQ "From:" and .CQ "To:" tags are written to the log file even if the .CQ "--quiet" option is given. If the log file exists when .CW "units" is invoked, the new results are appended to the log file. The time is written to the log file each time the file is opened. The .CQ "--log" option is ignored when .CW "units" is used non-interactively. .PP .SH INVOKING \f(BIUNITS\fP You invoke .CW "units" like this: .PP .ES units [\fIoptions\fP] [\fIfrom-unit\fP [\fIto-unit\fP]] .EE .PP If the \fIfrom-unit\fP and \fIto-unit\fP are omitted, the program will use interactive prompts to determine which conversions to perform. See \fIInteractive Use\fP. If both \fIfrom-unit\fP and \fIto-unit\fP are given, .CW "units" will print the result of that single conversion and then exit. If only \fIfrom-unit\fP appears on the command line, .CW "units" will display the definition of that unit and exit. Units specified on the command line may need to be quoted to protect them from shell interpretation and to group them into two arguments. See \fICommand Line Use\fP. .PP The default behavior of .CW "units" can be changed by various options given on the command line. In most cases, the options may be given in either short form (a single .CQ "-" followed by a single character) or long form .CQ ( "--" "" followed by a word or hyphen-separated words). Short-form options are cryptic but require less typing; long-form options require more typing but are more explanatory and may be more mnemonic. With long-form options you need only enter sufficient characters to uniquely identify the option to the program. For example, .CQ "--out\ %f" works, but .CQ "--o\ %f" fails because .CW "units" has other long options beginning with .CQ "o" . However, .CQ "--q" works because .CQ "--quiet" is the only long option beginning with .CQ "q" . .PP Some options require arguments to specify a value (e.g., .CQ "-d\ 12" or .CQ "--digits\ 12" ). Short-form options that do not take arguments may be concatenated (e.g., .CQ "-erS" is equivalent to .CQ "-e\ -r\ -S" ); the last option in such a list may be one that takes an argument (e.g., .CQ "-ed\ 12" ). With short-form options, the space between an option and its argument is optional (e.g., .CQ "-d12" is equivalent to .CQ "-d\ 12" ). Long-form options may not be concatenated, and the space between a long-form option and its argument is required. Short-form and long-form options may be intermixed on the command line. Options may be given in any order, but when incompatible options (e.g., .CQ "--output-format" and .CQ "--exponential" ) are given in combination, behavior is controlled by the last option given. For example, .CQ "-o%.12f\ -e" gives exponential format with the default eight significant digits). .PP The following options are available: .PP .TP .BR "-\^c" ", " "-\^-\^check" Check that all units and prefixes defined in the units data file reduce to primitive units. Print a list of all units that cannot be reduced. Also display some other diagnostics about suspicious definitions in the units data file. Only definitions active in the current locale are checked. You should always run .CW "units" with this option after modifying a units data file. .PP .TP .BR "-\^-\^check-verbose" ", " "-\^-\^verbose-check" Like the .CQ "--check" option, this option prints a list of units that cannot be reduced. But to help find unit definitions that cause endless loops, it lists the units as they are checked. If .CW "units" hangs, then the last unit to be printed has a bad definition. Only definitions active in the current locale are checked. .PP .TP .BR "-\^d \fIndigits\fP" ", " "-\^-\^digits \fIndigits\fP" Set the number of significant digits in the output to the value specified (which must be greater than zero). For example, .CQ "-d\ 12" sets the number of significant digits to 12. With exponential output .CW "units" displays one digit to the left of the decimal point and eleven digits to the right of the decimal point. On most systems, the maximum number of internally meaningful digits is 15; if you specify a greater number than your system's maximum, .CW "units" will print a warning and set the number to the largest meaningful value. To directly set the maximum value, give an argument of .CW "max" (e.g., .CQ "-d\ max" ). Be aware, of course, that ``significant'' here refers only to the \fIdisplay\fP of numbers; if results depend on physical constants not known to this precision, the physically meaningful precision may be less than that shown. The .CQ "--digits" option conflicts with the .CQ "--output-format" option. .PP .TP .BR "-\^e" ", " "-\^-\^exponential" Set the numeric output format to exponential (i.e., scientific notation), like that used in the Unix .CW "units" program. The default precision is eight significant digits (seven digits to the right of the decimal point); this can be changed with the .CQ "--digits" option. The .CQ "--exponential" option conflicts with the .CQ "--output-format" option. .PP .TP .BR "-\^o \fIformat\fP" ", " "-\^-\^output-format \fIformat\fP" This option affords complete control over the numeric output format using the specified \fIformat\fP. The format is a single floating point numeric format for the .CW "printf()" function in the C programming language. All compilers support the format types .CQ "g" and .CQ "G" to specify significant digits, .CQ "e" and .CQ "E" for scientific notation, and .CQ "f" for fixed-point decimal. The ISO C99 standard introduced the .CQ "F" type for fixed-point decimal and the .CQ "a" and .CQ "A" types for hexadecimal floating point; these types are allowed with compilers that support them. The default format is .CQ "%.8g" ; for greater precision, you could specify .CQ "-o\ %.15g" . See \fINumeric Output Format\fP and the documentation for .CW "printf()" for more detailed descriptions of the format specification. The .CQ "--output-format" option affords the greatest control of the output appearance, but requires at least rudimentary knowledge of the .CW "printf()" format syntax. If you don't want to bother with the .CW "printf()" syntax, you can specify greater precision more simply with the .CQ "--digits" option or select exponential format with .CQ "--exponential" . The .CQ "--output-format" option is incompatible with the .CQ "--exponential" and .CQ "--digits" options. .PP .TP .BR "-\^f \fIfilename\fP" ", " "-\^-\^file \fIfilename\fP" Instruct .CW "units" to load the units file \fIfilename\fP. You can specify up to 25 units files on the command line. When you use this option, .CW "units" will load \fIonly\fP the files you list on the command line; it will not load the standard file or your personal units file unless you explicitly list them. If \fIfilename\fP is the empty string .CQ ( "-f\ """"" ), the default units file (or that specified by .CW "UNITSFILE" ) will be loaded in addition to any others specified with .CQ "-f" . .PP .TP .BR "-\^L \fIlogfile\fP" ", " "-\^-\^log \fIlogfile\fP" Save the results of calculations in the file \fIlogfile\fP; this can be useful if it is important to have a record of unit conversions or other calculations that are to be used extensively or in a critical activity such as a program or design project. If \fIlogfile\fP exits, the new results are appended to the file. This option is ignored when .CW "units" is used non-interactively. See \fILogging Calculations\fP for a more detailed description and some examples. .PP .TP .BR "-\^H \fIfilename\fP" ", " "-\^-\^history \fIfilename\fP" Instruct .CW "units" to save history to \fIfilename\fP, so that a record of your commands is available for retrieval across different .CW "units" invocations. To prevent the history from being saved set \fIfilename\fP to the empty string .CQ ( "-H\ """"" ). This option has no effect if readline is not available. .PP .TP .BR "-\^h" ", " "-\^-\^help" Print out a summary of the options for .CW "units" . .PP .TP .BR "-\^m" ", " "-\^-\^minus" Causes .CQ "-" to be interpreted as a subtraction operator. This is the default behavior. .PP .TP .BR "-\^p" ", " "-\^-\^product" Causes .CQ "-" to be interpreted as a multiplication operator when it has two operands. It will act as a negation operator when it has only one operand: .CQ "(-3)" . By default .CQ "-" is treated as a subtraction operator. .PP .TP .BR "-\^-\^oldstar" Causes .CQ "*" to have the old-style precedence, higher than the precedence of division so that .CQ "1/2*3" will equal .CQ "1/6" . .PP .TP .BR "-\^-\^newstar" Forces .CQ "*" to have the new (default) precedence that follows the usual rules of algebra: the precedence of .CQ "*" is the same as the precedence of .CQ "/" , so that .CQ "1/2*3" will equal .CQ "3/2" . .PP .TP .BR "-\^-\^compact" Give compact output featuring only the conversion factor. This turns off the .CQ "--verbose" option. .PP .TP .BR "-\^q" ", " "-\^-\^quiet" ", " "-\^-\^silent" Suppress prompting of the user for units and the display of statistics about the number of units loaded. .PP .TP .BR "-\^n" ", " "-\^-\^nolists" Disable conversion to unit lists. .PP .TP .BR "-\^r" ", " "-\^-\^round" When converting to a combination of units given by a unit list, round the value of the last unit in the list to the nearest integer. .PP .TP .BR "-\^S" ", " "-\^-\^show-factor" When converting to a combination of units specified in a list, always show a non-unity factor before a unit that begins with a fraction with a unity denominator. By default, if the unit in a list begins with fraction of the form 1|\fIx\fP and its multiplier is an integer other than 1, the fraction is given as the product of the multiplier and the numerator (e.g., .CQ "3|8\ in" rather than .CQ "3 * 1|8\ in" ). In some cases, this is not what is wanted; for example, the results for a cooking recipe might show .CQ "3 * 1|2\ cup" as .CQ "3|2\ cup" . With the .CQ "--show-factor" option, a result equivalent to 1.5 cups will display as .CQ "3 * 1|2\ cup" rather than .CQ "3|2\ cup" . A user-specified fractional unit with a numerator other than 1 is never overridden, however\(emif a unit list specifies .CQ "3|4 cup;1|2 cup" , a result equivalent to 1\ 1/2 cups will always be shown as .CQ "2 * 3|4\ cup" whether or not the .CQ "--show-factor" option is given. .PP .TP .BR "-\^s" ", " "-\^-\^strict" Suppress conversion of units to their reciprocal units. For example, .CW "units" will normally convert hertz to seconds because these units are reciprocals of each other. The strict option requires that units be strictly conformable to perform a conversion, and will give an error if you attempt to convert hertz to seconds. .PP .TP .BR "-\^1" ", " "-\^-\^one-line" Give only one line of output (the forward conversion). Do not print the reverse conversion. If a reciprocal conversion is performed then .CW "units" will still print the ``reciprocal conversion'' line. .PP .TP .BR "-\^t" ", " "-\^-\^terse" Give terse output when converting units. This option can be used when calling .CW "units" from another program so that the output is easy to parse. This option has the combined effect of these options: .CQ "--strict" .CQ "--quiet" .CQ "--one-line" .CQ "--compact" . When combined with .CQ "--version" it produces a display showing only the program name and version number. .PP .TP .BR "-\^v" ", " "-\^-\^verbose" Give slightly more verbose output when converting units. When combined with the .CQ "-c" option this gives the same effect as .CQ "--check-verbose" . When combined with .CQ "--version" produces a more detailed output, equivalent to the .CQ "--info" option. .PP .TP .BR "-\^V" ", " "-\^-\^version" Print the program version number, tell whether the .CW "readline" library has been included, tell whether UTF-8 support has been included; give the locale, the location of the default units data file, and the location of the personal units data file; indicate if the personal units data file does not exist. .PP When given in combination with the .CQ "--terse" option, the program prints only the version number and exits. .PP When given in combination with the .CQ "--verbose" option, the program, the .CQ "--version" option has the same effect as the .CQ "--info" option below. .PP .TP .BR "-\^I" ", " "-\^-\^info" Print the information given with the .CQ "--version" option, show the pathname of the units program, show the status of the .CW "UNITSFILE" and .CW "MYUNITSFILE" environment variables, and additional information about how .CW "units" locates the related files. On systems running Microsoft Windows, the status of the .CW "UNITSLOCALE" environment variable and information about the related locale map are also given. This option is usually of interest only to developers and administrators, but it can sometimes be useful for troubleshooting. .PP Combining the .CQ "--version" and .CQ "--verbose" options has the same effect as giving .CQ "--info" . .PP .TP .BR "-\^U" ", " "-\^-\^unitsfile" Print the location of the default units data file and exit; if the file cannot be found, print ``Units data file not found''. .PP .TP .BR "-\^l \fIlocale\fP" ", " "-\^-\^locale \fIlocale\fP" Print the information given with the .CQ "--version" option, show the Force a specified locale such as .CQ "en_GB" to get British definitions by default. This overrides the locale determined from system settings or environment variables. See \fILocale\fP for a description of locale format. .PP .SH ADDING YOUR OWN DEFINITIONS .SS Units Data Files The units and prefixes that .CW "units" can convert are defined in the units data file, typically .CQ "/usr/share/units/definitions.units" . If you can't find this file, run .CW "units\ --version" to get information on the file locations for your installation. Although you can extend or modify this data file if you have appropriate user privileges, it's usually better to put extensions in separate files so that the definitions will be preserved if you update .CW "units" . .PP You can include additional data files in the units database using the .CQ "!include" command in the standard units data file. For example .PP .ES !include /usr/local/share/units/local.units .EE .PP might be appropriate for a site-wide supplemental data file. The location of the .CQ "!include" statement in the standard units data file is important; later definitions replace earlier ones, so any definitions in an included file will override definitions before the .CQ "!include" statement in the standard units data file. With normal invocation, no warning is given about redefinitions; to ensure that you don't have an unintended redefinition, run .CW "units\ -c" after making changes to any units data file. .PP If you want to add your own units in addition to or in place of standard or site-wide supplemental units data files, you can include them in the .CQ ".units" file in your home directory. If this file exists it is read after the standard units data file, so that any definitions in this file will replace definitions of the same units in the standard data file or in files included from the standard data file. This file will not be read if any units files are specified on the command line. (Under Windows the personal units file is named .CQ "unitdef.units" .) Running .CW "units\ -V" will display the location and name of your personal units file. .PP The .CW "units" program first tries to determine your home directory from the .CW "HOME" environment variable. On systems running Microsoft Windows, if .CW "HOME" does not exist, .CW "units" attempts to find your home directory from .CW "HOMEDRIVE" , .CW "HOMEPATH" and .CW "USERPROFILE" . You can specify an arbitrary file as your personal units data file with the .CW "MYUNITSFILE" environment variable; if this variable exists, its value is used without searching your home directory. The default units data files are described in more detail in \fIData Files\fP. .PP .SS Defining New Units and Prefixes A unit is specified on a single line by giving its name and an equivalence. Comments start with a .CQ "#" character, which can appear anywhere in a line. The backslash character .CQ ( "\e" ) acts as a continuation character if it appears as the last character on a line, making it possible to spread definitions out over several lines if desired. A file can be included by giving the command .CQ "!include" followed by the file's name. The .CQ "!" must be the first character on the line. The file will be sought in the same directory as the parent file unless you give a full path. The name of the file to be included cannot contain the comment character .CQ "#" . .PP Unit names must not contain any of the operator characters .CQ "+" , .CQ "-" , .CQ "*" , .CQ "/" , .CQ "|" , .CQ "^" , .CQ ";" , .CQ "~" , the comment character .CQ "#" , or parentheses. They cannot begin or end with an underscore .CQ ( "_" ), a comma .CQ ( "," ) or a decimal point .CQ ( "." ). The figure dash (U+2012), typographical minus (`\-'; U+2212), and en dash (`\-'; U+2013) are converted to the operator .CQ "-" , so none of these characters can appear in unit names. Names cannot begin with a digit, and if a name ends in a digit other than zero, the digit must be preceded by a string beginning with an underscore, and afterwards consisting only of digits, decimal points, or commas. For example, .CQ "foo_2" , .CQ "foo_2,1" , or .CQ "foo_3.14" are valid names but .CQ "foo2" or .CQ "foo_a2" are invalid. You could define nitrous oxide as .PP .ES N2O nitrogen 2 + oxygen .EE .PP but would need to define nitrogen dioxide as .PP .ES NO_2 nitrogen + oxygen 2 .EE .PP Be careful to define new units in terms of old ones so that a reduction leads to the primitive units, which are marked with .CQ "!" characters. Dimensionless units are indicated by using the string .CQ "!dimensionless" for the unit definition. .PP When adding new units, be sure to use the .CQ "-c" option to check that the new units reduce properly. If you create a loop in the units definitions, then .CW "units" will hang when invoked with the .CQ "-c" option. You will need to use the .CQ "--check-verbose" option, which prints out each unit as it is checked. The program will still hang, but the last unit printed will be the unit that caused the infinite loop. .PP If you define any units that contain .CQ "+" characters, carefully check them because the .CQ "-c" option will not catch non-conformable sums. Be careful with the .CQ "-" operator as well. When used as a binary operator, the .CQ "-" character can perform addition or multiplication depending on the options used to invoke .CW "units" . To ensure consistent behavior use .CQ "-" only as a unary negation operator when writing units definitions. To multiply two units leave a space or use the .CQ "*" operator with care, recalling that it has two possible precedence values and may require parentheses to ensure consistent behavior. To compute the difference of .CQ "foo" and .CQ "bar" write .CQ "foo+(-bar)" or even .CQ "foo+-bar" . .PP Here is an example of a short data file that defines some basic units: .PP .ES m ! # The meter is a primitive unit sec ! # The second is a primitive unit rad !dimensionless # A dimensionless primitive unit micro- 1e-6 # Define a prefix minute 60 sec # A minute is 60 seconds hour 60 min # An hour is 60 minutes inch 0.0254 m # Inch defined in terms of meters ft 12 inches # The foot defined in terms of inches mile 5280 ft # And the mile .EE .PP A unit that ends with a .CQ "-" character is a prefix. If a prefix definition contains any .CQ "/" characters, be sure they are protected by parentheses. If you define .CQ "half- 1/2" then .CQ "halfmeter" would be equivalent to .CQ "1 / (2\ meter)" . .PP .SS Defining Nonlinear Units Some unit conversions of interest are nonlinear; for example, temperature conversions between the Fahrenheit and Celsius scales cannot be done by simply multiplying by conversion factors. .PP When you give a linear unit definition such as .CQ "inch 2.54\ cm" you are providing information that .CW "units" uses to convert values in inches into primitive units of meters. For nonlinear units, you give a functional definition that provides the same information. .PP Nonlinear units are represented using a functional notation. It is best to regard this notation not as a function call but as a way of adding units to a number, much the same way that writing a linear unit name after a number adds units to that number. Internally, nonlinear units are defined by a pair of functions that convert to and from linear units in the database, so that an eventual conversion to primitive units is possible. .PP Here is an example nonlinear unit definition: .PP .ES tempF(x) units=[1;K] domain=[-459.67,) range=[0,) \e (x+(-32)) degF + stdtemp ; (tempF+(-stdtemp))/degF + 32 .EE .PP A nonlinear unit definition comprises a unit name, a formal parameter name, two functions, and optional specifications for units, the domain, and the range (the domain of the inverse function). The functions tell .CW "units" how to convert to and from the new unit. To produce valid results, the arguments of these functions need to have the correct dimensions and be within the domains for which the functions are defined. .PP The definition begins with the unit name followed immediately (with no spaces) by a .CQ "(" character. In the parentheses is the name of the formal parameter. Next is an optional specification of the units required by the functions in the definition. In the example above, the .CQ "units=[1;K]" specification indicates that the .CQ "tempF" function requires an input argument conformable with .CQ "1" (i.e., the argument is dimensionless), and that the inverse function requires an input argument conformable with .CQ "K" . For normal nonlinear units definition, the forward function will always take a dimensionless argument; in general, the inverse function will need units that match the quantity measured by your nonlinear unit. Specifying the units enables .CW "units" to perform error checking on function arguments, and also to assign units to domain and range specifications, which are described later. .PP Next the function definitions appear. In the example above, the .CQ "tempF" function is defined by .PP .ES tempF(x) = (x+(-32)) degF + stdtemp .EE .PP This gives a rule for converting .CQ "x" in the units .CQ "tempF" to linear units of absolute temperature, which makes it possible to convert from tempF to other units. .PP To enable conversions to Fahrenheit, you must give a rule for the inverse conversions. The inverse will be .CQ "x(tempF)" and its definition appears after a .CQ ";" character. In our example, the inverse is .PP .ES x(tempF) = (tempF+(-stdtemp))/degF + 32 .EE .PP This inverse definition takes an absolute temperature as its argument and converts it to the Fahrenheit temperature. The inverse can be omitted by leaving out the .CQ ";" character and the inverse definition, but then conversions \fIto\fP the unit will not be possible. If the inverse definition is omitted, the .CQ "--check" option will display a warning. It is up to you to calculate and enter the correct inverse function to obtain proper conversions; the .CQ "--check" option tests the inverse at one point and prints an error if it is not valid there, but this is not a guarantee that your inverse is correct. .PP With some definitions, the units may vary. For example, the definition .PP .ES square(x) x^2 .EE .PP can have any arbitrary units, and can also take dimensionless arguments. In such a case, you should \fInot\fP specify units. If a definition takes a root of its arguments, the definition is valid only for units that yield such a root. For example, .PP .ES squirt(x) sqrt(x) .EE .PP is valid for a dimensionless argument, and for arguments with even powers of units. .PP Some definitions may not be valid for all real numbers. In such cases, .CW "units" can handle errors better if you specify an appropriate domain and range. You specify the domain and range as shown below: .PP .ES baume(d) units=[1;g/cm^3] domain=[0,130.5] range=[1,10] \e (145/(145-d)) g/cm^3 ; (baume+-g/cm^3) 145 / baume .EE .PP In this example the domain is specified after .CQ "domain=" with the endpoints given in brackets. In accord with mathematical convention, square brackets indicate a closed interval (one that includes its endpoints), and parentheses indicate an open interval (one that does not include its endpoints). An interval can be open or closed on one or both ends; an interval that is unbounded on either end is indicated by omitting the limit on that end. For example, a quantity to which decibel (dB) is applied may have any value greater than zero, so the range is indicated by .CQ "(0,)" : .PP .ES decibel(x) units=[1;1] range=(0,) 10^(x/10); 10 log(decibel) .EE .PP If the domain or range is given, the second endpoint must be greater than the first. .PP The domain and range specifications can appear independently and in any order along with the units specification. The values for the domain and range endpoints are attached to the units given in the units specification, and if necessary, the parameter value is adjusted for comparison with the endpoints. For example, if a definition includes .CQ "units=[1;ft]" and .CQ "range=[3,)" , the range will be taken as 3\ ft to infinity. If the function is passed a parameter of .CQ "900\ mm" , that value will be adjusted to 2.9527559\ ft, which is outside the specified range. If you omit the units specification from the previous example, .CW "units" can not tell whether you intend the lower endpoint to be 3\ ft or 3\ microfurlongs, and can not adjust the parameter value of 900\ mm for comparison. Without units, numerical values other than zero or plus or minus infinity for domain or range endpoints are meaningless, and accordingly they are not allowed. If you give other values without units then the definition will be ignored and you will get an error message. .PP Although the units, domain, and range specifications are optional, it's best to give them when they are applicable; doing so allows .CW "units" to perform better error checking and give more helpful error messages. Giving the domain and range also enables the .CQ "--check" option to find a point in the domain to use for its point check of your inverse definition. .PP You can make synonyms for nonlinear units by providing both the forward and inverse functions; inverse functions can be obtained using the .CQ "~" operator. So to create a synonym for .CQ "tempF" you could write .PP .ES fahrenheit(x) units=[1;K] tempF(x); ~tempF(fahrenheit) .EE .PP This is useful for creating a nonlinear unit definition that differs slightly from an existing definition without having to repeat the original functions. For example, .PP .ES dBW(x) units=[1;W] range=[0,) dB(x) W ; ~dB(dBW/W) .EE .PP If you wish a synonym to refer to an existing nonlinear unit without modification, you can do so more simply by adding the synonym with appended parentheses as a new unit, with the existing nonlinear unit\(emwithout parentheses\(emas the definition. So to create a synonym for .CQ "tempF" you could write .PP .ES fahrenheit() tempF .EE .PP The definition must be a nonlinear unit; for example, the synonym .PP .ES fahrenheit() meter .EE .PP will result in an error message when .CW "units" starts. .PP You may occasionally wish to define a function that operates on units. This can be done using a nonlinear unit definition. For example, the definition below provides conversion between radius and the area of a circle. This definition requires a length as input and produces an area as output, as indicated by the .CQ "units=" specification. Specifying the range as the nonnegative numbers can prevent cryptic error messages. .PP .ES circlearea(r) units=[m;m^2] range=[0,) pi r^2 ; sqrt(circlearea/pi) .EE .PP .SS Defining Piecewise Linear Units Sometimes you may be interested in a piecewise linear unit such as many wire gauges. Piecewise linear units can be defined by specifying conversions to linear units on a list of points. Conversion at other points will be done by linear interpolation. A partial definition of zinc gauge is .PP .ES zincgauge[in] 1 0.002, 10 0.02, 15 0.04, 19 0.06, 23 0.1 .EE .PP In this example, .CQ "zincgauge" is the name of the piecewise linear unit. The definition of such a unit is indicated by the embedded .CQ "[" character. After the bracket, you should indicate the units to be attached to the numbers in the table. No spaces can appear before the .CQ "]" character, so a definition like .CQ "foo[kg meters]" is invalid; instead write .CQ "foo[kg*meters]" . The definition of the unit consists of a list of pairs optionally separated by commas. This list defines a function for converting from the piecewise linear unit to linear units. The first item in each pair is the function argument; the second item is the value of the function at that argument (in the units specified in brackets). In this example, we define .CQ "zincgauge" at five points. For example, we set .CQ "zincgauge(1)" equal to .CQ "0.002\ in" . Definitions like this may be more readable if written using continuation characters as .PP .ES zincgauge[in] \e 1 0.002 \e 10 0.02 \e 15 0.04 \e 19 0.06 \e 23 0.1 .EE .PP With the preceding definition, the following conversion can be performed: .PP .ES You have: zincgauge(10) You want: in * 0.02 / 50 You have: .01 inch You want: zincgauge 5 .EE .PP If you define a piecewise linear unit that is not strictly monotonic, then the inverse will not be well defined. If the inverse is requested for such a unit, .CW "units" will return the smallest inverse. .PP After adding nonlinear units definitions, you should normally run .CW "units\ --check" to check for errors. If the .CQ "units" keyword is not given, the .CQ "--check" option checks a nonlinear unit definition using a dimensionless argument, and then checks using an arbitrary combination of units, as well as the square and cube of that combination; a warning is given if any of these tests fail. For example, .PP .ES Warning: function 'squirt(x)' defined as 'sqrt(x)' failed for some test inputs: squirt(7(kg K)^1): Unit not a root squirt(7(kg K)^3): Unit not a root .EE .PP Running .CW "units\ --check" will print a warning if a non-monotonic piecewise linear unit is encountered. For example, the relationship between ANSI coated abrasive designation and mean particle size is non-monotonic in the vicinity of 800 grit: .PP .ES ansicoated[micron] \e . . . 600 10.55 \e 800 11.5 \e 1000 9.5 \e .EE .PP Running .CW "units\ --check" would give the error message .PP .ES Table 'ansicoated' lacks unique inverse around entry 800 .EE .PP Although the inverse is not well defined in this region, it's not really an error. Viewing such error messages can be tedious, and if there are enough of them, they can distract from true errors. Error checking for nonlinear unit definitions can be suppressed by giving the .CQ "noerror" keyword; for the examples above, this could be done as .PP .ES squirt(x) noerror domain=[0,) range=[0,) sqrt(x); squirt^2 ansicoated[micron] noerror \e . . . .EE .PP Use the .CQ "noerror" keyword with caution. The safest approach after adding a nonlinear unit definition is to run .CW "units\ --check" and confirm that there are no actual errors before adding the .CQ "noerror" keyword. .PP .SS Defining Unit List Aliases Unit list aliases are treated differently from unit definitions, because they are a data entry shorthand rather than a true definition for a new unit. A unit list alias definition begins with .CQ "!unitlist" and includes the alias and the definition; for example, the aliases included in the standard units data file are .PP .ES !unitlist hms hr;min;sec !unitlist time year;day;hr;min;sec !unitlist dms deg;arcmin;arcsec !unitlist ftin ft;in;1|8 in !unitlist usvol cup;3|4 cup;2|3 cup;1|2 cup;1|3 cup;1|4 cup;\e tbsp;tsp;1|2 tsp;1|4 tsp;1|8 tsp .EE .PP Unit list aliases are only for unit lists, so the definition must include a .CQ ";" . Unit list aliases can never be combined with units or other unit list aliases, so the definition of .CQ "time" shown above could \fInot\fP have been shortened to .CQ "year;day;hms" . .PP As usual, be sure to run .CW "units\ --check" to ensure that the units listed in unit list aliases are conformable. .PP .SH NUMERIC OUTPUT FORMAT By default, .CW "units" shows results to eight significant digits. You can change this with the .CQ "--exponential" , .CQ "--digits" , and .CQ "--output-format" options. The first sets an exponential format (i.e., scientific notation) like that used in the original Unix .CW "units" program, the second allows you to specify a different number of significant digits, and the last allows you to control the output appearance using the format for the .CW "printf()" function in the C programming language. If you only want to change the number of significant digits or specify exponential format type, use the .CQ "--digits" and .CQ "--exponential" options. The .CQ "--output-format" option affords the greatest control of the output appearance, but requires at least rudimentary knowledge of the .CW "printf()" format syntax. See \fIInvoking Units\fP for descriptions of these options. .PP .SS Format Specification The format specification recognized with the .CQ "--output-format" option is a subset of that for .CW "printf()" . The format specification has the form .\".CW "%\fR[\fP\fIflags\fP\fR][\fP\fIwidth\fP\fR][\fP.\fIprecision\fP\fR]\fP\fItype\fP" ; .CW "%" [\fIflags\fP][\fIwidth\fP][\c .CW "." \fIprecision\fP]\fItype\fP; it must begin with .CQ "%" , and must end with a floating-point type specifier: .CQ "g" or .CQ "G" to specify the number of significant digits, .CQ "e" or .CQ "E" for scientific notation, and .CQ "f" for fixed-point decimal. The ISO C99 standard added the .CQ "F" type for fixed-point decimal and the .CQ "a" and .CQ "A" types for hexadecimal floating point; these types are allowed with compilers that support them. Type length modifiers (e.g., .CQ "L" to indicate a long double) are inapplicable and are not allowed. .PP The default format for .CW "units" is .CQ "%.8g" ; for greater precision, you could specify .CQ "-o\ %.15g" . The .CQ "g" and .CQ "G" format types use exponential format whenever the exponent would be less than \-4, so the value 0.000013 displays as .CQ "1.3e-005" . These types also use exponential notation when the exponent is greater than or equal to the precision, so with the default format, the value .if t .ig ++ 5e7 .++ .if n .ig ++ .EQ 5 times 10 sup 7 .EN .++ displays as .CQ "50000000" and the value .if t .ig ++ 5e8 .++ .if n .ig ++ .EQ 5 times 10 sup 8 .EN .++ displays as .CQ "5e+008" . If you prefer fixed-point display, you might specify .CQ "-o\ %.8f" ; however, small numbers will display very few significant digits, and values less than .if t .ig ++ 0.5e\-8 .++ .if n .ig ++ .EQ 0.5 times 10 sup -8 .EN .++ will show nothing but zeros. .PP The format specification may include one or more optional flags: .CQ "+" , .CQ "\ " (space), .CQ "#" , .CQ "-" , or .CQ "0" (the digit zero). The digit-grouping flag .ie \n(.g .CQ "\(aq" .el .CQ "'" is allowed with compilers that support it. Flags are followed by an optional value for the minimum field width, and an optional precision specification that begins with a period (e.g., .CQ ".6" ). The field width includes the digits, decimal point, the exponent, thousands separators (with the digit-grouping flag), and the sign if any of these are shown. .PP .SS Flags The .CQ "+" flag causes the output to have a sign .CQ ( "+" "" or .CQ "-" ). The space flag .CQ "\ " is similar to the .CQ "+" flag, except that when the value is positive, it is prefixed with a space rather than a plus sign; this flag is ignored if the .CQ "+" flag is also given. The .CQ "+" or .CQ "\ " flag could be useful if conversions might include positive and negative results, and you wanted to align the decimal points in exponential notation. The .CQ "#" flag causes the output value to contain a decimal point in all cases; by default, the output contains a decimal point only if there are digits (which can be trailing zeros) to the right of the point. With the .CQ "g" or .CQ "G" types, the .CQ "#" flag also prevents the suppression of trailing zeros. The digit-grouping flag .ie \n(.g .CQ "\(aq" .el .CQ "'" shows a thousands separator in digits to the left of the decimal point. This can be useful when displaying large numbers in fixed-point decimal; for example, with the format .CQ "%f" , .PP .ES You have: mile You want: microfurlong * 8000000.000000 / 0.000000 .EE .PP the magnitude of the first result may not be immediately obvious without counting the digits to the left of the decimal point. If the thousands separator is the comma .CQ ( "," ), the output with the format .ie \n(.g .CQ "%\(aqf" .el .CQ "%'f" might be .PP .ES You have: mile You want: microfurlong * 8,000,000.000000 / 0.000000 .EE .PP making the magnitude readily apparent. Unfortunately, few compilers support the digit-grouping flag. .PP With the .CQ "-" flag, the output value is left aligned within the specified field width. If a field width greater than needed to show the output value is specified, the .CQ "0" (zero) flag causes the output value to be left padded with zeros until the specified field width is reached; for example, with the format .CQ "%011.6f" , .PP .ES You have: troypound You want: grain * 5760.000000 / 0000.000174 .EE .PP The .CQ "0" flag has no effect if the .CQ "-" (left align) flag is given. .PP .SS Field Width By default, the output value is left aligned and shown with the minimum width necessary for the specified (or default) precision. If a field width greater than this is specified, the value shown is right aligned, and padded on the left with enough spaces to provide the specified field width. A width specification is typically used with fixed-point decimal to have columns of numbers align at the decimal point; this arguably is less useful with .CW "units" than with long columnar output, but it may nonetheless assist in quickly assessing the relative magnitudes of results. For example, with the format .CQ "%12.6f" , .PP .ES You have: km You want: in * 39370.078740 / 0.000025 You have: km You want: rod * 198.838782 / 0.005029 You have: km You want: furlong * 4.970970 / 0.201168 .EE .PP .SS Precision The meaning of ``precision'' depends on the format type. With .CQ "g" or .CQ "G" , it specifies the number of significant digits (like the .CQ "--digits" option); with .CQ "e" , .CQ "E" , .CQ "f" , or .CQ "F" , it specifies the maximum number of digits to be shown after the decimal point. .PP With the .CQ "g" and .CQ "G" format types, trailing zeros are suppressed, so the results may sometimes have fewer digits than the specified precision (as indicated above, the .CQ "#" flag causes trailing zeros to be displayed). .PP The default precision is 6, so .CQ "%g" is equivalent to .CQ "%.6g" , and would show the output to six significant digits. Similarly, .CQ "%e" or .CQ "%f" would show the output with six digits after the decimal point. .PP The C .CW "printf()" function allows a precision of arbitrary size, whether or not all of the digits are meaningful. With most compilers, the maximum internal precision with .CW "units" is 15 decimal digits (or 13 hexadecimal digits). With the .CQ "--digits" option, you are limited to the maximum internal precision; with the .CQ "--output-format" option, you may specify a precision greater than this, but it may not be meaningful. In some cases, specifying excess precision can result in rounding artifacts. For example, a pound is exactly 7000 grains, but with the format .CQ "%.18g" , the output might be .PP .ES You have: pound You want: grain * 6999.9999999999991 / 0.00014285714285714287 .EE .PP With the format .CQ "%.25g" you might get the following: .PP .ES You have: 1/3 You want: Definition: 0.333333333333333314829616256247 .EE .PP In this case the displayed value includes a series of digits that represent the underlying binary floating-point approximation to 1/3 but are not meaningful for the desired computation. In general, the result with excess precision is system dependent. The precision affects only the \fIdisplay\fP of numbers; if a result relies on physical constants that are not known to the specified precision, the number of physically meaningful digits may be less than the number of digits shown. .PP See the documentation for .CW "printf()" for more detailed descriptions of the format specification. .PP The .CQ "--output-format" option is incompatible with the .CQ "--exponential" or .CQ "--digits" options; if the former is given in combination with either of the latter, the format is controlled by the last option given. .PP .SH LOCALIZATION Some units have different values in different locations. The localization feature accommodates this by allowing a units data file to specify definitions that depend on the user's locale. .PP .SS Locale A locale is a subset of a user's environment that indicates the user's language and country, and some attendant preferences, such as the formatting of dates. The .CW "units" program attempts to determine the locale from the POSIX setlocale function; if this cannot be done, .CW "units" examines the environment variables .CW "LC_CTYPE" and .CW "LANG" . On POSIX systems, a locale is of the form .CW \fIlanguage\fP "_" \fIcountry\fP, where \fIlanguage\fP is the two-character code from ISO 639-1 and \fIcountry\fP is the two-character code from ISO 3166-1; \fIlanguage\fP is lower case and \fIcountry\fP is upper case. For example, the POSIX locale for the United Kingdom is .CW "en_GB" . .PP On systems running Microsoft Windows, the value returned by setlocale() is different from that on POSIX systems; .CW "units" attempts to map the Windows value to a POSIX value by means of a table in the file .CQ "locale_map.txt" in the same directory as the other data files. The file includes entries for many combinations of language and country, and can be extended to include other combinations. The .CQ "locale_map.txt" file comprises two tab-separated columns; each entry is of the form .PP .DS \fIWindows-locale\fP \fIPOSIX-locale\fP .DE .PP where \fIPOSIX-locale\fP is as described above, and \fIWindows-locale\fP typically spells out both the language and country. For example, the entry for the United States is .PP .ES English_United States en_US .EE .PP You can force .CW "units" to run in a desired locale by using the .CQ "-l" option. .PP In order to create unit definitions for a particular locale you begin a block of definitions in a unit datafile with .CQ "!locale" followed by a locale name. The .CQ "!" must be the first character on the line. The .CW "units" program reads the following definitions only if the current locale matches. You end the block of localized units with .CQ "!endlocale" . Here is an example, which defines the British gallon. .PP .ES !locale en_GB gallon 4.54609 liter !endlocale .EE .PP .SS Additional Localization Sometimes the locale isn't sufficient to determine unit preferences. There could be regional preferences, or a company could have specific preferences. Though probably uncommon, such differences could arise with the choice of English customary units outside of English-speaking countries. To address this, .CW "units" allows specifying definitions that depend on environment variable settings. The environment variables can be controled based on the current locale, or the user can set them to force a particular group of definitions. .PP A conditional block of definitions in a units data file begins with either .CQ "!var" or .CQ "!varnot" following by an environment variable name and then a space separated list of values. The leading .CQ "!" must appear in the first column of a units data file, and the conditional block is terminated by .CQ "!endvar" . Definitions in blocks beginning with .CQ "!var" are executed only if the environment variable is exactly equal to one of the listed values. Definitions in blocks beginning with .CQ "!varnot" are executed only if the environment variable does \fInot\fP equal any of the list values. .PP The inch has long been a customary measure of length in many places. The word comes from the latin \fIuncia\fP meaning ``one twelfth,'' referring to its relationship with the foot. By the 20th century, the inch was officially defined in English-speaking countries relative to the yard, but until 1959, the yard differed slightly among those countries. In France the customary inch, which was displaced in 1799 by the meter, had a different length based on a french foot. These customary definitions could be accommodated as follows: .PP .ES !var INCH_UNIT usa yard 3600|3937 m !endvar !var INCH_UNIT canada yard 0.9144 meter !endvar !var INCH_UNIT uk yard 0.91439841 meter !endvar !var INCH_UNIT canada uk usa foot 1|3 yard inch 1|12 foot !endvar !var INCH_UNIT france foot 144|443.296 m inch 1|12 foot line 1|12 inch !endvar !varnot INCH_UNIT usa uk france canada !message Unknown value for INCH_UNIT !endvar .EE .PP When .CW "units" reads the above definitions it will check the environment variable .CW "INCH_UNIT" and load only the definitions for the appropriate section. If .CW "INCH_UNIT" is unset or is not set to one of the four values listed then .CW "units" will run the last block. In this case that block uses the .CQ "!message" command to display a warning message. Alternatively that block could set default values. .PP In order to create default values that are overridden by user settings the data file can use the .CQ "!set" command, which sets an environment variable \fIonly if it is not already set\fP; these settings are only for the current .CW "units" invocation and do not persist. So if the example above were preceded by .CQ "!set INCH_UNIT france" then this would make .CQ "france" the default value for .CW "INCH_UNIT" . If the user had set the variable in the environment before invoking .CW "units" , then .CW "units" would use the user's value. .PP To link these settings to the user's locale you combine the .CQ "!set" command with the .CQ "!locale" command. If you wanted to combine the above example with suitable locales you could do by \fIpreceding\fP the above definition with the following: .PP .ES !locale en_US !set INCH_UNIT usa !endlocale !locale en_GB !set INCH_UNIT uk !endlocale !locale en_CA !set INCH_UNIT canada !endlocale !locale fr_FR !set INCH_UNIT france !endlocale !set INCH_UNIT france .EE .PP These definitions set the overall default for .CW "INCH_UNIT" to .CQ "france" and set default values for four locales appropriately. The overall default setting comes last so that it only applies when .CW "INCH_UNIT" was not set by one of the other commands or by the user. .PP If the variable given after .CQ "!var" or .CQ "!varnot" is undefined then .CW "units" prints an error message and ignores the definitions that follow. Use .CQ "!set" to create defaults to prevent this situation from arising. The .CQ "-c" option only checks the definitions that are active for the current environment and locale, so when adding new definitions take care to check that all cases give rise to a well defined set of definitions. .PP .SH ENVIRONMENT VARIABLES The .CW "units" program uses the following environment variables: .PP .TP .BR "HOME" Specifies the location of your home directory; it is used by .CW "units" to find a personal units data file .CQ ".units" . On systems running Microsoft Windows, the file is .CQ "unitdef.units" , and if .CW "HOME" does not exist, .CW "units" tries to determine your home directory from the .CW "HOMEDRIVE" and .CW "HOMEPATH" environment variables; if these variables do not exist, units finally tries .CW "USERPROFILE" \(emtypically .CQ "C:\eUsers\e\fIusername\fP" (Windows Vista and Windows\ 7) or .CQ "C:\eDocuments\ and\ Settings\e\fIusername\fP" (Windows\ XP). .PP .TP .BR "LC_CTYPE, LANG" Checked to determine the locale if .CW "units" cannot obtain it from the operating system. Sections of the standard units data file are specific to certain locales. .PP .TP .BR "MYUNITSFILE" Specifies your personal units data file. If this variable exists, .CW "units" uses its value rather than searching your home directory for .CQ ".units" . The personal units file will not be loaded if any data files are given using the .CQ "-f" option. .PP .TP .BR "PAGER" Specifies the pager to use for help and for displaying the conformable units. The help function browses the units database and calls the pager using the .CQ "+n" \fIn\fP syntax for specifying a line number. The default pager is .CW "more" ; .CW "PAGER" can be used to specify alternatives such as .CW "less" , .CW "pg" , .CW "emacs" , or .CW "vi" . .PP .TP .BR "UNITS_ENGLISH" Set to either .CQ "US" or .CQ "GB" to choose United States or British volume definitions, overriding the default from your locale. .PP .TP .BR "UNITSFILE" Specifies the units data file to use (instead of the default). You can only specify a single units data file using this environment variable. If units data files are given using the .CQ "-f" option, the file specified by .CW "UNITSFILE" will be not be loaded unless the .CQ "-f" option is given with the empty string .CQ ( "units\ -f\ """"" ). .PP .TP .BR "UNITSLOCALEMAP" Windows only; this variable has no effect on Unix-like systems. Specifies the units locale map file to use (instead of the default). This variable seldom needs to be set, but you can use it to ensure that the locale map file will be found if you specify a location for the units data file using either the .CQ "-f" option or the .CW "UNITSFILE" environment variable, and that location does not also contain the locale map file. .PP .SH DATA FILES The .CW "units" program uses two default data files: .CQ "definitions.units" and .CQ "currency.units" . The program can also use an optional personal units data file .CQ ".units" .CQ ( "unitdef.units" "" under Windows) located in the user's home directory. The personal units data file is described in more detail in \fIUnits Data Files\fP. .PP On Unix-like systems, the data files are typically located in .CQ "/usr/share/units" if .CW "units" is provided with the operating system, or in .CQ "/usr/local/share/units" if .CW "units" is compiled from the source distribution. .PP On systems running Microsoft Windows, the files may be in the same locations if Unix-like commands are available, a Unix-like file structure is present (e.g., .CQ "C:/usr/local" ), and .CW "units" is compiled from the source distribution. If Unix-like commands are not available, a more common location is .CQ "C:\eProgram\ Files\ (x86)\eGNU\eunits" (for 64-bit Windows installations) or .CQ "C:\eProgram\ Files\eGNU\eunits" (for 32-bit installations). .PP If .CW "units" is obtained from the GNU Win32 Project (\fRhttp://gnuwin32.sourceforge.net/\fP), the files are commonly in .CQ "C:\eProgram\ Files\eGnuWin32\eshare\eunits" . .PP If the default units data file is not an absolute pathname, .CW "units" will look for the file in the directory that contains the .CW "units" program; if the file is not found there, .CW "units" will look in a directory .CW "../share/units" relative to the directory with the .CW "units" program. .PP You can determine the location of the files by running .CW "units\ --version" . Running .CW "units\ --info" will give you additional information about the files, how .CW "units" will attempt to find them, and the status of the related environment variables. .PP .SH UNICODE SUPPORT The standard units data file is in Unicode, using UTF-8 encoding. Most definitions use only ASCII characters (i.e., code points U+0000 through U+007F); definitions using non-ASCII characters appear in blocks beginning with .CQ "!utf8" and ending with .CQ "!endutf8" . .PP When .CW "units" starts, it checks the locale to determine the character set. If .CW "units" is compiled with Unicode support and definitions; otherwise these definitions are ignored. When Unicode support is active, .CW "units" will check every line of all of the units data files for invalid or non-printing UTF-8 sequences; if such sequences occur, .CW "units" ignores the entire line. In addition to checking validity, .CW "units" determines the display width of non-ASCII characters to ensure proper positioning of the pointer in some error messages and to align columns for the .CQ "search" and .CQ "?" commands. .PP At present, .CW "units" does not support Unicode under Microsoft Windows. The UTF-16 and UTF-32 encodings are not supported on any systems. .PP If definitions that contain non-ASCII characters are added to a units data file, those definitions should be enclosed within .CQ "!utf8" \*(El .CQ "!endutf8" to ensure that they are only loaded when Unicode support is available. As usual, the .CQ "!" must appear as the first character on the line. As discussed in \fIUnits Data Files\fP, it's usually best to put such definitions in supplemental data files linked by an .CQ "!include" command or in a personal units data file. .PP When Unicode support is not active, .CW "units" makes no assumptions about character encoding, except that characters in the range 00\-7F hexadecimal correspond to ASCII encoding. Non-ASCII characters are simply sequences of bytes, and have no special meanings; for definitions in supplementary units data files, you can use any encoding consistent with this assumption. For example, if you wish to use non-ASCII characters in definitions when running .CW "units" under Windows, you can use a character set such as Windows ``ANSI'' (code page 1252 in the US and Western Europe). You can even use UTF-8, though some messages may be improperly aligned, and .CW "units" will not detect invalid UTF-8 sequences. If you use UTF-8 encoding when Unicode support is not active, you should place any definitions with non-ASCII characters \fIoutside\fP .CQ "!utf8" \*(El .CQ "!endutf8" blocks\(emotherwise, they will be ignored. .PP Typeset material other than code examples usually uses the Unicode minus (U+2212) rather than the ASCII hyphen-minus operator (U+002D) used in .CW "units" ; the figure dash (U+2012) and en dash (U+2013) are also occasionally used. To allow such material to be copied and pasted for interactive use or in units data files, .CW "units" converts these characters to U+002D before further processing. Because of this, none of these characters can appear in unit names. .PP .SH READLINE SUPPORT If the .CW "readline" package has been compiled in, then when .CW "units" is used interactively, numerous command line editing features are available. To check if your version of .CW "units" includes .CW "readline" , invoke the program with the .CQ "--version" option. .PP For complete information about .CW "readline" , consult the documentation for the .CW "readline" package. Without any configuration, .CW "units" will allow editing in the style of emacs. Of particular use with .CW "units" are the completion commands. .PP If you type a few characters and then hit \fIESC\fP followed by .CI "?" then .CW "units" will display a list of all the units that start with the characters typed. For example, if you type .CI "metr" and then request completion, you will see something like this: .PP .ES You have: metr metre metriccup metrichorsepower metrictenth metretes metricfifth metricounce metricton metriccarat metricgrain metricquart metricyarncount You have: metr .EE .PP If there is a unique way to complete a unitname, you can hit the \fITAB\fP key and .CW "units" will provide the rest of the unit name. If .CW "units" beeps, it means that there is no unique completion. Pressing the \fITAB\fP key a second time will print the list of all completions. .PP The readline library also keeps a history of the values you enter. You can move through this history using the up and down arrows. The history is saved to the file .CQ ".units_history" in your home directory so that it will persist across multiple .CW "units" invocations. If you wish to keep work for a certain project separate you can change the history filename using the .CQ "--history" option. You could, for example, make an alias for .CW "units" to .CW "units --history .units_history" so that .CW "units" would save separate history in the current directory. The length of each history file is limited to 5000 lines. Note also that if you run several concurrent copies of .CW "units" each one will save its new history to the history file upon exit. .PP .SH UPDATING CURRENCY EXCHANGE RATES The units program includes currency exchange rates and prices for some precious metals in the database. Of course, these values change over time, sometimes very rapidly, and .CW "units" cannot provide real time values. To update the exchange rates run the .CW "units_cur" , which rewrites the files containing the currency rates, typically .CQ "/usr/share/units/currency.units" . This program requires .CW "python" , and must be run with suitable permissions to write the file. To keep the rates updated automatically, run it using a cron job on a Unix-like system, or a similar scheduling program on a different system. Currency exchange rates are taken from Yahoo (\fRhttp://finance.yahoo.com\fP) and precious metals pricing from Packetizer (\fRwww.packetizer.com\fP). These sites update once per day, so there is no benefit in running the update script more often than daily. You can run .CW "units_cur" with a filename specified on the command line and it will write the data to that file. If you give .CQ "-" for the file it will write to standard output. .PP .SH DATABASE COMMAND SYNTAX .TP .BR "\fIunit\fP \fIdefinition\fP" Define a regular unit. .PP .TP .BR "\fIprefix\fP- \fIdefinition\fP" Define a prefix. .PP .TP .BR "\fIfuncname\fP(\fIvar\fP) noerror units=[\fIin-\^units\fP,\fIout-units\fP] domain=[\fIx1\fP,\fIx2\fP] range=[\fIy1\fP,\fIy2\fP] \fIdefinition(var)\fP ; \fIinverse(funcname)\fP" Define a nonlinear unit or unit function. The four optional keywords .CW "noerror" , .CW "units=" , .CW "range=" and .CW "domain=" can appear in any order. The definition of the inverse is optional. .PP .TP .BR "\fItabname\fP[\fIout-\^units\fP] noerror \fIpair-list\fP" Define a piecewise linear unit. The pair list gives the points on the table listed in ascending order. The .CW "noerror" keyword is optional. .PP .TP .BR "!endlocale" End a block of definitions beginning with .CQ "!locale" .PP .TP .BR "!endutf8" End a block of definitions begun with .CQ "!utf8" .PP .TP .BR "!endvar" End a block of definitions begun with .CQ "!var" or .CQ "!varnot" .PP .TP .BR "!include \fIfile\fP" Include the specified file. .PP .TP .BR "!locale \fIvalue\fP" Load the following definitions only of the locale is set to \fIvalue\fP. .PP .TP .BR "!message \fItext\fP" Display \fItext\fP when the database is read unless the quiet option .CQ ( "-q" ) is enabled. .PP .TP .BR "!set \fIvariable\fP \fIvalue\fP" Sets the environment variable, \fIvariable\fP, to the specified value \fIonly if\fP it is not already set. .PP .TP .BR "!unitlist \fIalias\fP \fIdefinition\fP" Define a unit list alias. .PP .TP .BR "!utf8" Load the following definitions only if .CW "units" is running with UTF-8 enabled. .PP .TP .BR "!var \fIenvar\fP \fIvalue-\^list\fP" Load the block of definitions that follows only if the environment variable \fIenvar\fP is set to one of the values listed in the space-separated value list. If \fIenvar\fP is not set, .CW "units" prints an error message and ignores the block of definitions. .PP .TP .BR "!varnot \fIenvar\fP \fIvalue-\^list\fP" Load the block of definitions that follows only if the environment variable \fIenvar\fP is set to value that is \fInot\fP listed in the space-separated value list. If \fIenvar\fP is not set, .CW "units" prints an error message and ignores the block of definitions. .PP .SH GNU FREE DOCUMENTATION LICENSE .SH FILES @DATAFILE@ \(em the standard units data file .SH AUTHOR units-2.16/icon_ms.png0000664000175000017500000000051612312651560014224 0ustar adrianadrian‰PNG  IHDRóÿasRGB®ÎébKGDÿÿÿ ½§“ pHYs  šœtIMEÜC%+ÎIDAT8Ë­Ó½jBA†á'•RÚ™:XŸJHS¤³°’$×`¡¼Œx‚—›ÖFmì‚X& XXi³²Ž?,ìÌð~3̲\A;t±Ä/èà?x,bð‰ ÚØÄ_G¸’Ô ’¥H¼À}¬³N”÷Cwçô"õÂI .ª‹àtŠä\xƒ÷p¯‡gýÃ<“?ªUØzª)š¸Cƒ $(MAN) sed s!@DATAFILE@!units.dat! $(NAME).man > $(NAME).1 groff -man $(NAME).1 > $(NAME).less # col -b $(NAME).less > $(DOC) sed -e "s/_//g" -e "s/.//g" units.less > units.doc dist: all @mkdir dist @cp -f $(DISTFILES) dist @zip -9rSq dist\units-src.zip $(SRCFILES) @rm -f $(OBJECTS) check: $(EXE) @echo Checking $(EXE) @echo If output is "* 25.4" the program should be OK @$(EXE) -f .\units.dat kiloinch meter | grep "\*" @echo End check clean: rm -f $(OBJECTS) $(EXE) $(MAN) $(NAME).1 $(NAME).less $(DOC) rm -rf dist units-2.16/Makefile.in0000664000175000017500000002621213165000603014126 0ustar adrianadrian# Makefile for units, a program for units conversion # # Copyright (C) 1996, 1997, 1999, 2005, 2006, 2012, 2014, 2017 # Free Software Foundation, Inc # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # # This program was written by Adrian Mariano (adrianm@gnu.org) # @MKS_POSIX@ SHELL = /bin/sh prefix = @MKS_DRIVE@@prefix@ exec_prefix = @exec_prefix@ srcdir = @srcdir@ CC = @CC@ INSTALL = @INSTALL@ INSTALL_DATA = @INSTALL_DATA@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ MAKEINFO = makeinfo TEXI2DVI = texi2dvi TEXI2PDF = texi2pdf MKDIR_P = @MKDIR_P@ LDFLAGS = @LDFLAGS@ LIBS= @LIBS@ VPATH = @srcdir@ HAVE_PYTHON = @HAVE_PYTHON@ PYTHON = @PYTHON@ HAVE_MKS = @HAVE_MKS@ datarootdir = @datarootdir@ datadir = @datadir@ bindir = @bindir@ infodir = @infodir@ mandir = @mandir@ transform=@program_transform_name@ DEFS=-DUNITSFILE=\"@UDAT@definitions.units\" -DLOCALEMAP=\"@UDAT@locale_map.txt\" \ @DEFIS@ @DEFS@ CFLAGS = @CFLAGS@ OBJECTS = units.@OBJEXT@ parse.tab.@OBJEXT@ getopt.@OBJEXT@ getopt1.@OBJEXT@ @STRFUNC@ .SUFFIXES: .SUFFIXES: .c .@OBJEXT@ .rc .res .texinfo .pdf RC = rc.exe RES = units.res .rc.res: $(RC) -fo $@ $< .texinfo.pdf: $(TEXI2PDF) $< .c.@OBJEXT@: $(CC) $(DEFS) $(CPPFLAGS) $(CFLAGS) -I$(srcdir) -c $< # %.@OBJEXT@: %.c # $(CC) $(DEFS) $(CFLAGS) -I$(srcdir) -c %.c DISTFILES = README ChangeLog units.info units.txt getopt1.c units.dvi \ Makefile.in units.c getopt.c getopt.h definitions.units units.texinfo \ configure.ac configure strfunc.c COPYING install-sh \ units.man NEWS texi2man INSTALL units.pdf units_cur \ parse.tab.c parse.y units.h locale_map.txt fdl-1.3.texi currency.units \ unitsfile.ico unitsprog.ico units.rc icon_ms.png \ Makefile.OS2 makeobjs.cmd README.OS2 \ UnitsMKS.texinfo UnitsMKS.pdf setvcvars.sh \ UnitsWin.texinfo UnitsWin.pdf winmkdirs.bat Makefile.Win all: units@EXEEXT@ units.1 units.info units_cur_inst units.@OBJEXT@: units.c units.h parse.tab.c: parse.y bison parse.y parse.tab.@OBJEXT@: parse.tab.c units@EXEEXT@: $(OBJECTS) @MKS_RES@ $(CC) $(CFLAGS) $(LDFLAGS) -o units@EXEEXT@ $(OBJECTS) @MKS_RES@ $(LIBS) units_cur_inst: units_cur sed -e "s@outfile_name = 'currency.units'@outfile_name='@UDAT@currency.units'@"\ -e "s@/usr/bin/python@$(PYTHON)@" \ units_cur > units_cur_inst install-support: definitions.units currency.units units_cur_inst $(MKDIR_P) $(DESTDIR)@UDAT@ $(DESTDIR)$(bindir) $(INSTALL_DATA) $(srcdir)/definitions.units $(DESTDIR)@UDAT@definitions.units $(INSTALL_DATA) $(srcdir)/currency.units $(DESTDIR)@UDAT@currency.units $(INSTALL_DATA) $(srcdir)/locale_map.txt $(DESTDIR)@UDAT@locale_map.txt if test $(HAVE_PYTHON) = yes; then \ $(INSTALL_PROGRAM) units_cur_inst $(DESTDIR)$(bindir)/`echo units_cur|sed '$(transform)'`;fi if test $(HAVE_MKS) = yes; then make install-mks; fi install: units@EXEEXT@ install-doc install-support $(MKDIR_P) $(DESTDIR)$(bindir) $(INSTALL_PROGRAM) units@EXEEXT@ $(DESTDIR)$(bindir)/`echo units@EXEEXT@|sed '$(transform)'` install-strip: units@EXEEXT@ install-doc install-support $(MKDIR_P) $(DESTDIR)$(bindir) $(INSTALL_PROGRAM) -s units@EXEEXT@ $(DESTDIR)$(bindir)/`echo units@EXEEXT@|sed '$(transform)'` install-doc: install-man install-info install-man: units.1 $(MKDIR_P) $(DESTDIR)$(mandir)/man1 $(INSTALL_DATA) units.1 $(DESTDIR)$(mandir)/man1/`echo units|sed '$(transform)'`.1 # file association and DefaultIcon # assume that if we're running the MKS Toolkit, we're running the Korn # shell, and can use pattern replacement install-mks: $(INSTALL_DATA) $(srcdir)/unitsfile.ico $(DESTDIR)@UDAT@unitsfile.ico $(INSTALL_DATA) $(srcdir)/unitsprog.ico $(DESTDIR)@UDAT@unitsprog.ico assoc .units Units.Datfile vidir="$${ROOTDIR//\//\\}"; \ ftype Units.Datafile "\"$$vidir"'\mksnt\viw.exe" -Uc8p8 "%1"' registry -s -k "HKCR\\Units.Datafile" -v 'GNU units data file' iconfile=$(DESTDIR)@UDAT@unitsfile.ico; \ registry -s -k "HKCR\\Units.Datafile\\DefaultIcon" -n '' -v "$${iconfile//\//\\}" units.man: units.texinfo texi2man ./texi2man units.texinfo > units.man units.1: units.man sed s!@DATAFILE@!@UDAT@definitions.units! $(srcdir)/units.man > units.1 install-info: $(DESTDIR)$(infodir)/units.info $(DESTDIR)$(infodir)/units.info: units.info $(POST_INSTALL) $(MKDIR_P) $(DESTDIR)$(infodir) # There may be a newer info file in . than in srcdir. -if test -f units.info; then d=.; \ else d=$(srcdir); fi; \ $(INSTALL_DATA) $$d/units.info $@; \ # Run install-info only if it exists. # Use `if' instead of just prepending `-' to the # line so we notice real errors from install-info. # We use `$(SHELL) -c' because some shells do not # fail gracefully when there is an unknown command. if test -f $(DESTDIR)$(infodir)/dir; then \ if $(SHELL) -c 'install-info --version' \ >/dev/null 2>&1; then \ install-info --dir-file=$(DESTDIR)$(infodir)/dir \ $(DESTDIR)$(infodir)/units.info; \ else true; fi \ else true; fi Makefile: Makefile.in config.status ./config.status uninstall: -rm -f $(DESTDIR)$(bindir)/`echo units@EXEEXT@|sed '$(transform)'` \ $(DESTDIR)$(mandir)/man1/`echo units|sed '$(transform)'`.1 \ $(DESTDIR)$(infodir)/units.info \ $(DESTDIR)@UDAT@definitions.units \ $(DESTDIR)@UDAT@currency.units \ $(DESTDIR)@UDAT@locale_map.txt \ $(DESTDIR)@UDAT@unitsfile.ico \ $(DESTDIR)@UDAT@unitsprog.ico \ $(DESTDIR)$(bindir)/`echo units_cur|sed '$(transform)'` -rmdir $(DESTDIR)@UDAT@ @if test -f $(DESTDIR)$(infodir)/dir; then \ echo You may need to remove units.info from $(DESTDIR)$(infodir)/dir; \ else true; fi clean mostlyclean: texclean -rm -f *.@OBJEXT@ *.res units@EXEEXT@ units.dvi units.1 distname .chk units_cur_inst -rm -rf wwwold wwwnew distclean: clean -rm -f config.* Makefile TAGS maintainer-clean: clean -rm -f units.txt units.info units.pdf units.dvi \ UnitsMKS.pdf UnitsWin.pdf \ units-*.tar.gz parse.tab.c currency.units # get rid of the TeX auxilliary files texclean: -rm -f units.log UnitsMKS.log UnitsWin.log \ *.aux *.cp *.fn *.ky *.op *.pg *.toc *.tp *.vr currency.units: units_cur @echo "Trying to update currency.units (will use existing file if this fails)" -./units_cur sig: echo units-`sed -n -e '/\#.*VERSION/s/.*"\(.*\)"/\1/gp' \ $(srcdir)/units.c`.tar.gz > distname echo 'version: 1.2' > `cat distname`.directive echo 'directory: units' >> `cat distname`.directive echo 'filename: '`cat distname` >> `cat distname`.directive gpg --clearsign `cat distname`.directive gpg -b `cat distname` -rm -f `cat distname`.directive distname dist: $(DISTFILES) @./units_cur @echo Updated currencies, running check: ./units -f definitions.units -c @echo '' @chmod g+rw,o+r * @echo units-`sed -n -e '/\#.*VERSION/s/.*"\(.*\)"/\1/gp' \ $(srcdir)/units.c` > distname -@if [ -d `cat distname` ]; then rm -r `cat distname`; fi -@if [ -e `cat distname`.tar.gz ]; then rm `cat distname`.tar.gz; fi @mkdir `cat distname` @dst=`cat distname`; for f in $(DISTFILES); do \ ln $(srcdir)/$$f $$dst/$$f || { echo copying $$f; \ cp -p $(srcdir)/$$f $$dst/$$f ; } \ done @chmod 777 `cat distname` @tar czf `cat distname`.tar.gz `cat distname` @echo `cat distname`.tar.gz created -@rm -rf `cat distname` distname dvi: units.dvi pdf: units.pdf winpdf winpdf: UnitsWin.pdf UnitsMKS.pdf units.dvi: units.texinfo $(TEXI2DVI) $(srcdir)/units.texinfo info: units.info units.info: units.texinfo $(MAKEINFO) $(srcdir)/units.texinfo units.txt: units.1 nroff -Tascii -man $(srcdir)/units.1 | col -b > units.txt doc: units.dvi units.info units.txt units.pdf UnitsMKS.pdf UnitsWin.pdf check: all @echo Checking units @./units -f $(srcdir)/definitions.units \ '(((square(kiloinch)+2.84m2) /0.5) meters^2)^(1|4)' m \ | sed -n -e 's/ \* //p' > .chk @if [ "`cat .chk`" = 6 ]; then echo Units seems to work; \ else echo Something is wrong: units failed the check: ;cat .chk; fi @rm -f .chk configure: configure.ac autoconf TAGS: units.c etags $(srcdir)/units.c $(srcdir)/parse.y tags: units.c ctags $(srcdir)/units.c smalldist: units.c units.h parse.y parse.tab.c echo units-`sed -n -e '/\#.*VERSION/s/.*"\(.*\)"/\1/gp' \ $(srcdir)/units.c` > distname -rm -r `cat distname` `cat distname`.tar `cat distname`.tar.gz tar cf `cat distname`.tar units.c units.h parse.y parse.tab.c\ getopt1.c getopt.c getopt.h gzip `cat distname`.tar # # This section attempts to update the manual on the GNU web server # If all works correctly, it will add/remove files from the CVS tree as required. # It assumes there are only files in the manual and manual/html_node directories. # www: doc -rm -r wwwold wwwnew mkdir wwwnew ./gendocs.sh -o wwwnew/units/manual units "GNU Units Manual" mkdir wwwold cd wwwold;CVS_RSH=ssh cvs -z3 -d:ext:adrianm@cvs.savannah.gnu.org:/webcvs/units co units cd wwwold/units/manual;ls > /tmp/wwwunits.listold cd wwwnew/units/manual;ls > /tmp/wwwunits.listnew cd wwwold/units/manual/html_node;ls > /tmp/wwwunits.hlistold cd wwwnew/units/manual/html_node;ls > /tmp/wwwunits.hlistnew -grep -vf /tmp/wwwunits.listold /tmp/wwwunits.listnew > /tmp/wwwunits.add -grep -vf /tmp/wwwunits.listnew /tmp/wwwunits.listold | grep -v CVS > /tmp/wwwunits.rm -grep -vf /tmp/wwwunits.hlistold /tmp/wwwunits.hlistnew > /tmp/wwwunits.html.add -grep -vf /tmp/wwwunits.hlistnew /tmp/wwwunits.hlistold | grep -v CVS > /tmp/wwwunits.html.rm rsync -Cr --del -v wwwnew/units/manual wwwold/units/ @if [ -s /tmp/wwwunits.add ]; then cd wwwold/units/manual; cvs add `cat /tmp/wwwunits.add`; \ cvs commit `cat /tmp/wwwunits.add`; fi @if [ -s /tmp/wwwunits.rm ]; then cd wwwold/units/manual; cvs remove `cat /tmp/wwwunits.rm`; \ cvs commit `cat /tmp/wwwunits.rm`; fi @if [ -s /tmp/wwwunits.html.add ]; then cd wwwold/units/manual/html_node; \ cvs add `cat /tmp/wwwunits.add`; cvs commit `cat /tmp/wwwunits.add`; fi @if [ -s /tmp/wwwunits.html.rm ]; then cd wwwold/units/manual/html_node; \ cvs remove `cat /tmp/wwwunits.htmlrm`; cvs commit `cat /tmp/wwwunits.rm`; fi cd wwwold/units; cvs commit -rm /tmp/wwwunits.hlistnew /tmp/wwwunits.hlistold /tmp/wwwunits.listnew /tmp/wwwunits.listold -rm /tmp/wwwunits.html.rm /tmp/wwwunits.html.add /tmp/wwwunits.add /tmp/wwwunits.rm -rm -r wwwold wwwnew # # Not very portable code to compile into library (written for Linux) # libunits.a: $(OBJECTS) ar -r libunits.a $^ libunits.so: $(OBJECTS) $(CC) $(LDFLAGS) -shared -o $@ $^ # Tell versions [3.59,3.63) of GNU make not to export all variables. # Otherwise a system limit (for SysV at least) may be exceeded. .NOEXPORT: units-2.16/parse.y0000664000175000017500000003276113163524346013410 0ustar adrianadrian/* * parse.y: the parser for GNU units, a program for units conversion * Copyright (C) 1999-2002, 2007, 2009, 2014, 2017 Free Software * Foundation, Inc * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * This program was written by Adrian Mariano (adrianm@gnu.org) */ %{ #include #include "units.h" struct commtype { int location; const char *data; struct unittype *result; int errorcode; }; static int err; /* value used by parser to store return values */ /* The CHECK macro aborts parse if an error has occurred. It optionally destroys a variable. Call with CHECK(0) if no variables need destruction on error. */ #define CHECK(var) if (err) { comm->errorcode=err; \ if (var) destroyunit(var); \ YYABORT; } int yylex(); void yyerror(struct commtype *comm, char *); #define MAXMEM 100 int unitcount=0; /* Counts the number of units allocated by the parser */ struct function { char *name; double (*func)(double); int type; }; #define DIMENSIONLESS 0 #define ANGLEIN 1 #define ANGLEOUT 2 struct unittype * getnewunit() { struct unittype *unit; if (unitcount>=MAXMEM) return 0; unit = (struct unittype *) mymalloc(sizeof(struct unittype),"(getnewunit)"); if (!unit) return 0; initializeunit(unit); unitcount++; return unit; } void destroyunit(struct unittype *unit) { freeunit(unit); free(unit); unitcount--; } struct unittype * makenumunit(double num,int *myerr) { struct unittype *ret; ret=getnewunit(); if (!ret){ *myerr = E_PARSEMEM; return 0; } ret->factor = num; *myerr = 0; return ret; } double logb2(double x) { return log(x)/log(2.0); } int funcunit(struct unittype *theunit, struct function const *fun) { struct unittype angleunit; if (fun->type==ANGLEIN){ err=unit2num(theunit); if (err==E_NOTANUMBER){ initializeunit(&angleunit); angleunit.denominator[0] = dupstr("radian"); angleunit.denominator[1] = 0; err = multunit(theunit, &angleunit); freeunit(&angleunit); if (!err) err = unit2num(theunit); } if (err) return err; } else if (fun->type==ANGLEOUT || fun->type == DIMENSIONLESS) { if ((err=unit2num(theunit))) return err; } else return E_BADFUNCTYPE; errno = 0; theunit->factor = (*(fun->func))(theunit->factor); if (errno) return E_FUNC; if (fun->type==ANGLEOUT) { theunit->numerator[0] = dupstr("radian"); theunit->numerator[1] = 0; } return 0; } %} %parse-param {struct commtype *comm} %lex-param {struct commtype *comm} %define api.pure full %define api.prefix {units} %union { double number; int integer; struct unittype *unit; struct function *realfunc; struct func *unitfunc; } %token REAL %token UNIT %token REALFUNC %token UNITFUNC %token EXPONENT %token MULTIPLY %token MULTSTAR %token DIVIDE %token NUMDIV %token SQRT %token CUBEROOT %token MULTMINUS %token EOL %token FUNCINV %token MEMERROR %token BADNUMBER %token UNITEND %token LASTUNSET %type numexpr %type expr %type list %type pexpr %type unitexpr %destructor { destroyunit($$);} %left ADD MINUS %left UNARY %left DIVIDE MULTSTAR %left MULTIPLY MULTMINUS %nonassoc '(' SQRT CUBEROOT REALFUNC UNIT REAL UNITFUNC FUNCINV MEMERROR BADNUMBER UNITEND LASTUNSET %right EXPONENT %left NUMDIV %% input: EOL { comm->result = makenumunit(1,&err); CHECK(0); comm->errorcode = 0; YYACCEPT; } | unitexpr EOL { comm->result = $1; comm->errorcode = 0; YYACCEPT; } | error { YYABORT; } ; unitexpr: expr { $$ = $1;} | DIVIDE list { invertunit($2); $$=$2;} ; expr: list { $$ = $1; } | MULTMINUS list %prec UNARY { $$ = $2; $$->factor *= -1; } | MINUS list %prec UNARY { $$ = $2; $$->factor *= -1; } | expr ADD expr { err = addunit($1,$3); destroyunit($3); CHECK($1);$$=$1;} | expr MINUS expr { $3->factor *= -1; err = addunit($1,$3); destroyunit($3); CHECK($1);$$=$1;} | expr DIVIDE expr { err = divunit($1, $3); destroyunit($3); CHECK($1);$$=$1;} | expr MULTIPLY expr { err = multunit($1,$3); destroyunit($3); CHECK($1);$$=$1;} | expr MULTSTAR expr { err = multunit($1,$3); destroyunit($3); CHECK($1);$$=$1;} ; numexpr: REAL { $$ = $1; } | numexpr NUMDIV numexpr { $$ = $1 / $3; } ; pexpr: '(' expr ')' { $$ = $2; } ; /* list is a list of units, possibly raised to powers, to be multiplied together. */ list: numexpr { $$ = makenumunit($1,&err); CHECK(0);} | UNIT { $$ = $1; } | list EXPONENT list { err = unitpower($1,$3);destroyunit($3); CHECK($1);$$=$1;} | list MULTMINUS list { err = multunit($1,$3); destroyunit($3); CHECK($1);$$=$1;} | list list %prec MULTIPLY { err = multunit($1,$2); destroyunit($2); CHECK($1);$$=$1;} | pexpr { $$=$1; } | SQRT pexpr { err = rootunit($2,2); CHECK($2); $$=$2;} | CUBEROOT pexpr { err = rootunit($2,3); CHECK($2); $$=$2;} | REALFUNC pexpr { err = funcunit($2,$1);CHECK($2); $$=$2;} | UNITFUNC pexpr { err = evalfunc($2,$1,0,0); CHECK($2);$$=$2;} | FUNCINV UNITFUNC pexpr { err = evalfunc($3,$2,1,0); CHECK($3);$$=$3;} | list EXPONENT MULTMINUS list %prec EXPONENT { $4->factor *= -1; err = unitpower($1,$4); destroyunit($4);CHECK($1);$$=$1;} | list EXPONENT MINUS list %prec EXPONENT { $4->factor *= -1; err = unitpower($1,$4); destroyunit($4);CHECK($1);$$=$1;} | BADNUMBER { err = E_BADNUM; CHECK(0); } | MEMERROR { err = E_PARSEMEM; CHECK(0); } | UNITEND { err = E_UNITEND; CHECK(0); } | LASTUNSET { err = E_LASTUNSET;CHECK(0); } | FUNCINV UNIT { err = E_NOTAFUNC; CHECK($2);} ; %% struct function realfunctions[] = { {"sin", sin, ANGLEIN}, {"cos", cos, ANGLEIN}, {"tan", tan, ANGLEIN}, {"ln", log, DIMENSIONLESS}, {"log", log10, DIMENSIONLESS}, {"log2", logb2, DIMENSIONLESS}, {"exp", exp, DIMENSIONLESS}, {"acos", acos, ANGLEOUT}, {"atan", atan, ANGLEOUT}, {"asin", asin, ANGLEOUT}, {0, 0, 0}}; struct { char op; int value; } optable[] = { {'*', MULTIPLY}, {'/', DIVIDE}, {'|', NUMDIV}, {'+', ADD}, {'(', '('}, {')', ')'}, {'^', EXPONENT}, {'~', FUNCINV}, {0, 0}}; struct { char *name; int value; } strtable[] = { {"sqrt", SQRT}, {"cuberoot", CUBEROOT}, {"per" , DIVIDE}, {0, 0}}; #define LASTUNIT '_' /* Last unit symbol */ int yylex(YYSTYPE *lvalp, struct commtype *comm) { int length, count; struct unittype *output; const char *inptr; char *name; char *nonunitchars = "~;+-*/|\t\n^ ()"; /* Chars not allowed in unit name */ char *nonunitends = ".,_"; /* Can't start or end a unit */ char *number_start = ".,0123456789"; /* Can be first char of a number */ if (comm->location==-1) return 0; inptr = comm->data + comm->location; /* Point to start of data */ /* Skip spaces */ while(*inptr==' ') inptr++, comm->location++; if (*inptr==0) { comm->location = -1; return EOL; /* Return failure if string has ended */ } /* Check for **, an exponent operator. */ if (0==strncmp("**",inptr,2)){ comm->location += 2; return EXPONENT; } /* Check for '-' and '*' which get special handling */ if (*inptr=='-'){ comm->location++; if (parserflags.minusminus) return MINUS; return MULTMINUS; } if (*inptr=='*'){ comm->location++; if (parserflags.oldstar) return MULTIPLY; return MULTSTAR; } /* Check for the "last unit" symbol */ if (*inptr == LASTUNIT) { comm->location++; if (!lastunitset) return LASTUNSET; output = getnewunit(); if (!output) return MEMERROR; unitcopy(output, &lastunit); lvalp->unit = output; return UNIT; } /* Look for single character ops */ for(count=0; optable[count].op; count++){ if (*inptr==optable[count].op) { comm->location++; return optable[count].value; } } /* Look for numbers */ if (strchr(number_start,*inptr)){ /* prevent "nan" from being recognized */ char *endloc; lvalp->number = strtod(inptr, &endloc); if (inptr != endloc) { comm->location += (endloc-inptr); if (*endloc && strchr(number_start,*endloc)) return BADNUMBER; else return REAL; } } /* Look for a word (function name or unit name) */ length = strcspn(inptr,nonunitchars); if (!length){ /* Next char is not a valid unit char */ comm->location++; return 0; } /* Check that unit name doesn't start or end with forbidden chars */ if (strchr(nonunitends,*inptr)){ comm->location++; return 0; } if (strchr(nonunitends, inptr[length-1])){ comm->location+=length; return 0; } name = dupnstr(inptr, length); /* Look for string operators */ for(count=0;strtable[count].name;count++){ if (!strcmp(name,strtable[count].name)){ free(name); comm->location += length; return strtable[count].value; } } /* Look for real function names */ for(count=0;realfunctions[count].name;count++){ if (!strcmp(name,realfunctions[count].name)){ lvalp->realfunc = realfunctions+count; comm->location += length; free(name); return REALFUNC; } } /* Look for function parameter */ if (function_parameter && !strcmp(name,function_parameter)){ free(name); output = getnewunit(); if (!output) return MEMERROR; unitcopy(output, parameter_value); lvalp->unit = output; comm->location += length; return UNIT; } /* Look for user defined function */ lvalp->unitfunc = fnlookup(name); if (lvalp->unitfunc){ comm->location += length; free(name); return UNITFUNC; } /* Didn't find a special string, so treat it as unit name */ comm->location+=length; if (strchr("23456789",inptr[length-1]) && !hassubscript(name)) { /* ends with digit but not a subscript, so do exponent handling like m3 */ count = name[length-1] - '0'; length--; if (strchr(number_start, name[length-1])){ free(name); return UNITEND; } } else count=1; free(name); output = getnewunit(); if (!output) return MEMERROR; output->numerator[count--]=0; for(;count>=0;count--) output->numerator[count] = dupnstr(inptr, length); lvalp->unit=output; return UNIT; } void yyerror(struct commtype *comm, char *s){} int parseunit(struct unittype *output, char const *input,char **errstr,int *errloc) { struct commtype comm; int saveunitcount; saveunitcount = unitcount; initializeunit(output); comm.result = 0; comm.location = 0; comm.data = input; comm.errorcode = E_PARSE; /* Assume parse error */ errno=0; if (yyparse(&comm) || errno){ if (comm.location==-1) comm.location = strlen(input); if (errstr){ if (comm.errorcode==E_FUNC || errno) *errstr = strerror(errno); else *errstr=errormsg[comm.errorcode]; } if (errloc) *errloc = comm.location; if (unitcount!=saveunitcount) fprintf(stderr,"units: Parser leaked memory with error: %d in %d out\n", saveunitcount, unitcount); return comm.errorcode; } else { if (errstr) *errstr = 0; multunit(output,comm.result); destroyunit(comm.result); if (unitcount!=saveunitcount) fprintf(stderr,"units: Parser leaked memory without error: %d in %d out\n", saveunitcount, unitcount); return 0; } } units-2.16/getopt1.c0000664000175000017500000001030412301221017013576 0ustar adrianadrian/* getopt_long and getopt_long_only entry points for GNU getopt. Copyright (C) 1987, 88, 89, 90, 91, 92, 1993, 1994 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifdef HAVE_CONFIG_H #include #endif #include "getopt.h" #if !defined (__STDC__) && !defined (_MSC_VER) || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ #ifndef const #define const #endif #endif #include /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. This code is part of the GNU C Library, but also included in many other GNU distributions. Compiling and linking in this code is a waste when using the GNU C library (especially if it is a shared library). Rather than having every GNU program understand `configure --with-gnu-libc' and omit the object files, it is simpler to just do this in the source for each such file. */ #if defined (_LIBC) || !defined (__GNU_LIBRARY__) /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ #include #else char *getenv (); #endif #ifndef NULL #define NULL 0 #endif int getopt_long (argc, argv, options, long_options, opt_index) int argc; char *const *argv; const char *options; const struct option *long_options; int *opt_index; { return _getopt_internal (argc, argv, options, long_options, opt_index, 0); } /* Like getopt_long, but '-' as well as '--' can indicate a long option. If an option that starts with '-' (not '--') doesn't match a long option, but does match a short option, it is parsed as a short option instead. */ int getopt_long_only (argc, argv, options, long_options, opt_index) int argc; char *const *argv; const char *options; const struct option *long_options; int *opt_index; { return _getopt_internal (argc, argv, options, long_options, opt_index, 1); } #endif /* _LIBC or not __GNU_LIBRARY__. */ #ifdef TEST #include int main (argc, argv) int argc; char **argv; { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; int option_index = 0; static struct option long_options[] = { {"add", 1, 0, 0}, {"append", 0, 0, 0}, {"delete", 1, 0, 0}, {"verbose", 0, 0, 0}, {"create", 0, 0, 0}, {"file", 1, 0, 0}, {0, 0, 0, 0} }; c = getopt_long (argc, argv, "abc:d:0123456789", long_options, &option_index); if (c == EOF) break; switch (c) { case 0: printf ("option %s", long_options[option_index].name); if (optarg) printf (" with arg %s", optarg); printf ("\n"); break; case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value `%s'\n", optarg); break; case 'd': printf ("option d with value `%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ units-2.16/units.texinfo0000664000175000017500000037532313176223373014650 0ustar adrianadrian\input texinfo @c -*-texinfo-*- @c %**start of header @setfilename units.info @settitle Units: A Unit Conversion Program and Scientific Calculator @finalout @setchapternewpage off @firstparagraphindent none @set EDITION 2.14 @set VERSION 2.16 @c %**end of header @c ifman .\" @copying This manual is for GNU Units (version @value{VERSION}), which performs units conversions and units calculations. Copyright @copyright{} 1996, 1997, 1999, 2000, 2001, 2002, 2004, 2005, 2007, 2011--2017 Free Software Foundation, Inc. @quotation Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. @c end ifman @c noman A copy of the license is included in the section entitled ``GNU Free Documentation License''. @end quotation @end copying @c end noman @defcodeindex op @syncodeindex op cp @c noman @dircategory Science @direntry * Units: (units). Units conversion and scientific calculation. @end direntry @c end noman @c man .TH UNITS 1 "16 October 2017" @c man .SH NAME @c man units \(em unit conversion and calculation program @titlepage @title Units Conversion @subtitle Edition @value{EDITION} for @command{units} Version @value{VERSION} @author Adrian Mariano @page @vskip 0pt plus 1filll @insertcopying @end titlepage @contents @iftex @headings off @everyheading Units Conversion @| @| @thispage @end iftex @ifnottex @node Top @top Units Conversion @c noman This manual describes the @command{units} command for units conversion and how you can use it as a powerful scientific calculator that keeps track of units. This is Edition @value{EDITION} of @cite{The Units Conversion Manual} for @command{units} Version @value{VERSION}. @c end noman @end ifnottex @menu * Overview:: What does @command{units} do? * Interactive Use:: How to use @command{units}. * Command Line Use:: How to use @command{units} non-interactively. * Unit Definitions:: What units are defined? * Unit Expressions:: Forming compound units. * Nonlinear Conversions:: Nonlinear unit conversions (e.g., temperature). * Unit Lists:: Conversion to sums of units (e.g., feet and inches). * Logging Calculations:: Logging conversions and calculations in a file. * Invoking Units:: Command line options. * Defining Your Own Units:: Adding your own unit definitions * Numeric Output Format:: How to change the output format * Localization:: How to define and use regional unit names. * Environment Vars:: Environment variables used by @command{units}. * Data Files:: Descriptions and locations of units data files. * Unicode Support:: Support for Unicode (UTF-8). * Readline Support:: Unit name completion and editing. * Currency:: Updating currency exchange rates. * Database Syntax:: Summary of database command syntax. * GNU Free Documentation License:: License. * Index:: General index. @end menu @c noman @node Overview @chapter Overview of @command{units} @c end noman @c ifman @ignore @c '.PP' for consistency with spacing before other sections. .PP .SH SYNOPSIS .PP .CW units .RI [ options ] .RI [ from-unit .RI [ to-unit ]] .PP .SH DESCRIPTION @end ignore @c end ifman The @command{units} program converts quantities expressed in various systems of measurement to their equivalents in other systems of measurement. Like many similar programs, it can handle multiplicative scale changes. It can also handle nonlinear conversions such as Fahrenheit to @c man Celsius; @c noman Celsius;@footnote{But Fahrenheit to Celsius is linear, you insist. Not so. A transformation @math{T} is linear if @math{T(x+y)=T(x)+T(y)} and this fails for @math{T(x)=ax+b}. This transformation is affine, but not linear. } @pxref{Temperature Conversions}. @c end noman @c man see \fITemperature Conversions\fP. The program can also perform conversions from and to sums of units, such as converting between meters and feet plus inches. Basic operation is simple: you enter the units that you want to convert @emph{from} and the units that you want to convert @emph{to}. You can use the program interactively with prompts, or you can use it from the command line. Beyond simple unit conversions, @command{units} can be used as a general-purpose scientific calculator that keeps track of units in its calculations. You can form arbitrary complex mathematical expressions of dimensions including sums, products, quotients, powers, and even roots of dimensions. Thus you can ensure accuracy and dimensional consistency when working with long expressions that involve many different units that may combine in complex ways; for an illustration, @c man see \fIComplicated Unit Expressions\fP. @c noman @pxref{Complicated Unit Expressions}. @c end noman The units are defined in an external data file. You can use the extensive data file that comes with this program, or you can provide your own data file to suit your needs. You can also use your own data file to supplement the standard data file. You can change the default behavior of @command{units} with various options given on the command line. @xref{Invoking Units}, for a description of the available options. @node Interactive Use @chapter Interacting with @command{units} @cindex interactive use To invoke units for interactive use, type @kbd{units} at your shell prompt. The program will print something like this: @example @group Currency exchange rates from www.timegenie.com on 2014-03-05 2860 units, 109 prefixes, 85 nonlinear units You have: @end group @end example @noindent At the @w{@samp{You have:}} prompt, type the quantity and units that you are converting @emph{from}. For example, if you want to convert ten meters to feet, type @kbd{10 meters}. Next, @command{units} will print @w{@samp{You want:}}. You should type the units you want to convert @emph{to}. To convert to feet, you would type @kbd{feet}. If the @command{readline} library was compiled in then @key{tab} will complete unit names. @xref{Readline Support}, for more information about @command{readline}. To quit the program under Unix, press @key{Ctrl-C} or @key{Ctrl-D}. Under Windows, press @key{Ctrl-C} or @key{Ctrl-Z}; with the latter, you may also need to press @key{Enter}. The result will be displayed in two ways. The first line of output, which is marked with a @samp{*} to indicate multiplication, gives the result of the conversion you have asked for. The second line of output, which is marked with a @samp{/} to indicate division, gives the inverse of the conversion factor. If you convert 10 meters to feet, @command{units} will print @example @group * 32.808399 / 0.03048 @end group @end example @noindent which tells you that 10 meters equals about 32.8 feet. The second number gives the conversion in the opposite direction. In this case, it tells you that 1 foot is equal to about 0.03 dekameters since the dekameter is 10 meters. It also tells you that 1/32.8 is about 0.03. The @command{units} program prints the inverse because sometimes it is a more convenient number. In the example above, for example, the inverse value is an exact conversion: a foot is exactly 0.03048 dekameters. But the number given the other direction is inexact. If you convert grains to pounds, you will see the following: @example @group You have: grains You want: pounds * 0.00014285714 / 7000 @end group @end example @noindent From the second line of the output you can immediately see that a grain is equal to a seven thousandth of a pound. This is not so obvious from the first line of the output. If you find the output format confusing, try using the @option{--verbose} option: @cindex verbose output @example @group You have: grain You want: aeginamina grain = 0.00010416667 aeginamina grain = (1 / 9600) aeginamina @end group @end example @noindent If you request a conversion between units that measure reciprocal dimensions, then @command{units} will display the conversion results with an extra note indicating that reciprocal conversion has been done: @cindex reciprocal conversion @example @group You have: 6 ohms You want: siemens reciprocal conversion * 0.16666667 / 6 @end group @end example @noindent Reciprocal conversion can be suppressed by using the @option{--strict} option. As usual, use the @option{--verbose} option to get more comprehensible output: @cindex verbose output @cindex strict conversion @example @group You have: tex You want: typp reciprocal conversion 1 / tex = 496.05465 typp 1 / tex = (1 / 0.0020159069) typp You have: 20 mph You want: sec/mile reciprocal conversion 1 / 20 mph = 180 sec/mile 1 / 20 mph = (1 / 0.0055555556) sec/mile @end group @end example @noindent If you enter incompatible unit types, the @command{units} program will print a message indicating that the units are not conformable and it will display the reduced form for each unit: @cindex incompatible units @cindex non-conformable units @example @group You have: ergs/hour You want: fathoms kg^2 / day conformability error 2.7777778e-11 kg m^2 / sec^3 2.1166667e-05 kg^2 m / sec @end group @end example @noindent If you only want to find the reduced form or definition of a unit, simply press @key{Enter} at the @w{@samp{You want:}} prompt. Here is an example: @example @group You have: jansky You want: Definition: fluxunit = 1e-26 W/m^2 Hz = 1e-26 kg / s^2 @end group @end example @noindent The output from @command{units} indicates that the jansky is defined to be equal to a fluxunit which in turn is defined to be a certain combination of watts, meters, and hertz. The fully reduced (and in this case somewhat more cryptic) form appears on the far right. Some named units are treated as dimensionless in some situations. These units include the radian and steradian. These units will be treated as equal to 1 in units conversions. Power is equal to torque times angular velocity. This conversion can only be performed if the radian is dimensionless. @example @group You have: (14 ft lbf) (12 radians/sec) You want: watts * 227.77742 / 0.0043902509 @end group @end example @noindent It is also possible to compute roots and other non-integer powers of dimensionless units; this allows computations such as the altitude of geosynchronous orbit: @example @group You have: cuberoot(G earthmass / (circle/siderealday)^2) - earthradius You want: miles * 22243.267 / 4.4957425e-05 @end group @end example @noindent Named dimensionless units are not treated as dimensionless in other contexts. They cannot be used as exponents so for example, @samp{meter^radian} is forbidden. @cindex dimensionless units @cindex @samp{?} to show conformable units @cindex conformable units, @samp{?} to show If you want a list of options you can type @kbd{?} at the @w{@samp{You want:}} prompt. The program will display a list of named units that are conformable with the unit that you entered at the @w{@samp{You have:}} prompt above. Conformable unit @emph{combinations} will not appear on this list. @cindex help Typing @kbd{help} at either prompt displays a short help message. You can also type @kbd{help} followed by a unit name. This will invoke a pager on the units data base at the point where that unit is defined. You can read the definition and comments that may give more details or historical information about the unit. (You can generally quit out of the page by pressing @samp{q}.) Typing @kbd{search} @var{text} will display a list of all of the units whose names contain @var{text} as a substring along with their definitions. This may help in the case where you aren't sure of the right unit name. @node Command Line Use @chapter Using @command{units} Non-Interactively @cindex command-line unit conversion @cindex non-interactive unit conversion The @command{units} program can perform units conversions non-interactively from the command line. To do this, type the command, type the original unit expression, and type the new units you want. If a units expression contains non-alphanumeric characters, you may need to protect it from interpretation by the shell using single or double quote characters. If you type @example units "2 liters" quarts @end example @noindent then @command{units} will print @example @group * 2.1133764 / 0.47317647 @end group @end example @noindent and then exit. The output tells you that 2 liters is about 2.1 quarts, or alternatively that a quart is about 0.47 times 2 liters. If the conversion is successful, then @command{units} will return success (zero) to the calling environment. If you enter non-conformable units then @command{units} will print a message giving the reduced form of each unit and it will return failure (nonzero) to the calling environment. When you invoke @command{units} with only one argument, it will print out the definition of the specified unit. It will return failure if the unit is not defined and success if the unit is defined. @node Unit Definitions @chapter Unit Definitions @cindex unit definitions The conversion information is read from a units data file that is called @file{definitions.units} and is usually located in the @file{/usr/share/units} directory. If you invoke @command{units} with the @option{-V} option, it will print the location of this file. The default file includes definitions for all familiar units, abbreviations and metric prefixes. It also includes many obscure or archaic units. Many common spelled-out numbers (e.g., @samp{seventeen}) are recognized. Many constants of nature are defined, including these: @example pi @r{ratio of circumference to diameter} c @r{speed of light} e @r{charge on an electron} force @r{acceleration of gravity} mole @r{Avogadro's number} water @r{pressure per unit height of water} Hg @r{pressure per unit height of mercury} au @r{astronomical unit} k @r{Boltzman's constant} mu0 @r{permeability of vacuum} epsilon0 @r{permittivity of vacuum} G @r{Gravitational constant} mach @r{speed of sound} @end example @noindent The standard data file includes atomic masses for all of the elements and numerous other constants. Also included are the densities of various ingredients used in baking so that @samp{2@tie{}cups flour_sifted} can be converted to @samp{grams}. This is not an exhaustive list. Consult the units data file to see the complete list, or to see the definitions that are used. @cindex measure, Imperial @cindex Imperial measure @cindex British Imperial measure The @samp{pound} is a unit of mass. To get force, multiply by the force conversion unit @samp{force} or use the shorthand @samp{lbf}. (Note that @samp{g} is already taken as the standard abbreviation for the gram.) The unit @samp{ounce} is also a unit of mass. The fluid ounce is @samp{fluidounce} or @samp{floz}. When British capacity units differ from their US counterparts, such as the British Imperial gallon, the unit is defined both ways with @samp{br} and @samp{us} prefixes. Your locale settings will determine the value of the unprefixed unit. Currency is prefixed with its country name: @samp{belgiumfranc}, @samp{britainpound}. @cindex units, lookup method When searching for a unit, if the specified string does not appear exactly as a unit name, then the @command{units} program will try to remove a trailing @samp{s}, @samp{es}. Next units will replace a trailing @samp{ies} with @samp{y}. If that fails, @command{units} will check for a prefix. The database includes all of the standard metric prefixes. Only one prefix is permitted per unit, so @samp{micromicrofarad} will fail. However, prefixes can appear alone with no unit following them, so @samp{micro*microfarad} will work, as will @samp{micro microfarad}. @cindex prefixes To find out which units and prefixes are available, read the standard units data file, which is extensively annotated. @section English Customary Units @cindex volume measure, English customary English customary units differ in various ways in different regions. In Britain a complex system of volume measurements featured different gallons for different materials such as a wine gallon and ale gallon that different by twenty percent. This complexity was swept away in 1824 by a reform that created an entirely new gallon, the British Imperial gallon defined as the volume occupied by ten pounds of water. Meanwhile in the USA the gallon is derived from the 1707 Winchester wine gallon, which is 231 cubic inches. These gallons differ by about twenty percent. By default if @command{units} runs in the @samp{en_GB} locale you will get the British volume measures. If it runs in the @samp{en_US} locale you will get the US volume measures. In other locales the default values are the US definitions. If you wish to force different definitions then set the environment variable @env{UNITS_ENGLISH} to either @samp{US} or @samp{GB} to set the desired definitions independent of the locale. @cindex length measure, English customary @cindex length measure, UK @cindex survey measure, US @cindex US survey measure @cindex survey mile, US @cindex US survey foot @cindex State Plane Coordinate System, US @cindex US State Plane Coordinate System @cindex survey foot, US @cindex US survey mile @cindex mile, international @cindex international mile @cindex yard, international @cindex international yard Before 1959, the value of a yard (and other units of measure defined in terms of it) differed slightly among English-speaking countries. In 1959, Australia, Canada, New Zealand, the United Kingdom, the United States, and South Africa adopted the Canadian value of 1@tie{}yard = 0.9144@tie{}m (exactly), which was approximately halfway between the values used by the UK and the US; it had the additional advantage of making 1@tie{}inch = 2.54@tie{}cm (exactly). This new standard was termed the @dfn{International Yard}. Australia, Canada, and the UK then defined all customary lengths in terms of the International Yard (Australia did not define the furlong or rod); because many US land surveys were in terms of the pre-1959 units, the US continued to define customary surveyors' units (furlong, chain, rod, and link) in terms of the previous value for the foot, which was termed the @dfn{US survey foot}. The US defined a @dfn{US survey mile} as 5280 US survey feet, and defined a @dfn{statute mile} as a US survey mile. The US values for these units differ from the international values by about 2@tie{}ppm. The @command{units} program uses the international values for these units; the US values can be obtained by using either the @samp{US} or the @samp{survey} prefix. In either case, the simple familiar relationships among the units are maintained, e.g., 1 @samp{furlong} = 660 @samp{ft}, and 1 @samp{USfurlong} = 660 @samp{USft}, though the metric equivalents differ slightly between the two cases. The @samp{US} prefix or the @samp{survey} prefix can also be used to obtain the US survey mile and the value of the US yard prior to 1959, e.g., @samp{USmile} or @samp{surveymile} (but @emph{not} @samp{USsurveymile}). To get the US value of the statute mile, use either @samp{USstatutemile} or @samp{USmile}. Except for distances that extend over hundreds of miles (such as in the US State Plane Coordinate System), the differences in the miles are usually insignificant: @example @group You have: 100 surveymile - 100 mile You want: inch * 12.672025 / 0.078913984 @end group @end example @noindent The pre-1959 UK values for these units can be obtained with the prefix @samp{UK}. In the US, the acre is officially defined in terms of the US survey foot, but @command{units} uses a definition based on the international foot. If you want the official US acre use @samp{USacre} and similarly use @samp{USacrefoot} for the official US version of that unit. The difference between these units is about 4 parts per million. @node Unit Expressions @chapter Unit Expressions @cindex unit expressions @menu * Operators:: The usual arithmetic operators, with a few extras * Sums and Differences of Units:: Adding and subtracting units * Numbers as Units:: A number is a dimensionless unit * Built-in Functions:: Trigonometric functions, logarithms, roots * Previous Result:: Inserting the result of the previous conversion * Complicated Unit Expressions:: A complicated example * Backwards Compatibility:: Alternate behavior for @samp{*} and @samp{-} @end menu @node Operators @section Operators @cindex operators You can enter more complicated units by combining units with operations such as multiplication, division, powers, addition, subtraction, and parentheses for grouping. You can use the customary symbols for these operators when @command{units} is invoked with its default options. Additionally, @command{units} supports some extensions, including high priority multiplication using a space, and a high priority numerical division operator (@samp{|}) that can simplify some expressions. @cindex products of units @cindex quotients of units @cindex units quotients @cindex multiplication of units @cindex division of units @cindex operator, @samp{per} @cindex @samp{per} operator @cindex operator, space @cindex operator, star (@samp{*}) @cindex star (@samp{*}) operator @cindex @samp{*} operator @cindex operator, slash (@samp{/}) @cindex slash (@samp{/}) operator @cindex operator, solidus (@samp{/}) @cindex solidus (@samp{/}) operator You multiply units using a space or an asterisk (@samp{*}). The next example shows both forms: @example @group You have: arabicfoot * arabictradepound * force You want: ft lbf * 0.7296 / 1.370614 @end group @end example @noindent You can divide units using the slash (@samp{/}) or with @samp{per}: @example @group You have: furlongs per fortnight You want: m/s * 0.00016630986 / 6012.8727 @end group @end example @cindex parentheses @noindent You can use parentheses for grouping: @example @group You have: (1/2) kg / (kg/meter) You want: league * 0.00010356166 / 9656.0833 @end group @end example @cindex operator precedence @cindex parentheses @cindex white space @noindent White space surrounding operators is optional, so the previous example could have used @samp{(1/2)kg/(kg/meter)}. As a consequence, however, hyphenated spelled-out numbers (e.g., @samp{forty-two}) cannot be used; @samp{forty-two} is interpreted as @samp{40 - 2}. Multiplication using a space has a higher precedence than division using a slash and is evaluated left to right; in effect, the first @samp{/} character marks the beginning of the denominator of a unit expression. This makes it simple to enter a quotient with several terms in the denominator: @w{@samp{J / mol K}}. The @samp{*} and @samp{/} operators have the same precedence, and are evaluated left to right; if you multiply with @samp{*}, you must group the terms in the denominator with parentheses: @w{@samp{J / (mol * K)}}. @cindex fractions, numerical @cindex numerical fractions @cindex division of numbers @cindex operator, vertical bar (@samp{|}) @cindex vertical bar (@samp{|}) operator @cindex @samp{|} operator The higher precedence of the space operator may not always be advantageous. For example, @w{@samp{m/s s/day}} is equivalent to @w{@samp{m / s s day}} and has dimensions of length per time cubed. Similarly, @w{@samp{1/2 meter}} refers to a unit of reciprocal length equivalent to 0.5/meter, perhaps not what you would intend if you entered that expression. The get a half meter you would need to use parentheses: @w{@samp{(1/2) meter}}. The @samp{*} operator is convenient for multiplying a sequence of quotients. For example, @w{@samp{m/s * s/day}} is equivalent to @samp{m/day}. Similarly, you could write @w{@samp{1/2 * meter}} to get half a meter. The @command{units} program supports another option for numerical fractions: you can indicate division of @emph{numbers} with the vertical bar (@samp{|}), so if you wanted half a meter you could write @w{@samp{1|2 meter}}. You cannot use the vertical bar to indicate division of non-numerical units (e.g., @samp{m|s} results in an error message). @cindex powers @cindex exponent operator @cindex operator, caret (@samp{^}) @cindex operator, (@samp{**}) @cindex @samp{**} operator @cindex parentheses Powers of units can be specified using the @samp{^} character, as shown in the following example, or by simple concatenation of a unit and its exponent: @samp{cm3} is equivalent to @samp{cm^3}; if the exponent is more than one digit, the @samp{^} is required. You can also use @samp{**} as an exponent operator. @example @group You have: cm^3 You want: gallons * 0.00026417205 / 3785.4118 @end group @end example @noindent Concatenation only works with a single unit name: if you write @samp{(m/s)2}, @command{units} will treat it as multiplication by 2. @cindex prefixes and exponents When a unit includes a prefix, exponent operators apply to the combination, so @samp{centimeter3} gives cubic centimeters. If you separate the prefix from the unit with any multiplication operator (e.g., @samp{centi meter^3}), the prefix is treated as a separate unit, so the exponent applies only to the unit without the prefix. The second example is equivalent to @samp{centi * (meter^3)}, and gives a hundredth of a cubic meter, not a cubic centimeter. The @command{units} program is limited internally to products of 99 units; accordingly, expressions like @samp{meter^100} or @samp{joule^34} (represented internally as @w{@samp{kg^34 m^68 / s^68}}) will fail. The @samp{|} operator has the highest precedence, so you can write the square root of two thirds as @samp{2|3^1|2}. The @samp{^} operator has the second highest precedence, and is evaluated right to left, as usual: @example @group You have: 5 * 2^3^2 You want: Definition: 2560 @end group @end example @noindent With a dimensionless base unit, any dimensionless exponent is meaningful (e.g., @samp{pi^exp(2.371)}). Even though angle is sometimes treated as dimensionless, exponents cannot have dimensions of angle: @example @group You have: 2^radian ^ Exponent not dimensionless @end group @end example @noindent If the base unit is not dimensionless, the exponent must be a rational number @w{@var{p}/@var{q}}, and the dimension of the unit must be a power of @var{q}, so @samp{gallon^2|3} works but @samp{acre^2|3} fails. An exponent using the slash (@samp{/}) operator (e.g., @samp{gallon^(2/3)}) is also acceptable; the parentheses are needed because the precedence of @samp{^} is higher than that of @samp{/}. Since @command{units} cannot represent dimensions with exponents greater than 99, a fully reduced exponent must have @w{@var{q} < 100}. When raising a non-dimensionless unit to a power, @command{units} attempts to convert a decimal exponent to a rational number with @w{@var{q} < 100}. If this is not possible @command{units} displays an error message: @example @group You have: ft^1.234 Base unit not dimensionless; rational exponent required @end group @end example @noindent A decimal exponent must match its rational representation to machine precision, so @samp{acre^1.5} works but @samp{gallon^0.666} does not. @node Sums and Differences of Units @section Sums and Differences of Units @cindex sums and differences of units @cindex units, sums and differences @cindex operator, plus (@samp{+}) @cindex plus (@samp{+}) operator @cindex @samp{+} operator @cindex operator, minus (@samp{-}) @cindex minus (@samp{-}) operator, subtraction @cindex operator, hyphen (@samp{-}) as subtraction @cindex @samp{-} as subtraction operator @noindent You may sometimes want to add values of different units that are outside the SI. You may also wish to use @command{units} as a calculator that keeps track of units. Sums of conformable units are written with the @samp{+} character, and differences with the @samp{-} character. @cindex sums of units @cindex addition of units @cindex subtraction of units @cindex differences of units @example @group You have: 2 hours + 23 minutes + 32 seconds You want: seconds * 8612 / 0.00011611705 @end group @end example @example @group You have: 12 ft + 3 in You want: cm * 373.38 / 0.0026782366 @end group @end example @example @group You have: 2 btu + 450 ft lbf You want: btu * 2.5782804 / 0.38785542 @end group @end example @noindent The expressions that are added or subtracted must reduce to identical expressions in primitive units, or an error message will be displayed: @example @group You have: 12 printerspoint - 4 heredium ^ Illegal sum of non-conformable units @end group @end example @cindex parentheses @noindent As usual, the precedence for @samp{+} and @samp{-} is lower than that of the other operators. A fractional quantity such as 2@tie{}1/2 cups can be given as @samp{(2+1|2) cups}; the parentheses are necessary because multiplication has higher precedence than addition. If you omit the parentheses, @command{units} attempts to add @samp{2} and @samp{1|2 cups}, and you get an error message: @example @group You have: 2+1|2 cups ^ Illegal sum or difference of non-conformable units @end group @end example @noindent The expression could also be correctly written as @samp{(2+1/2) cups}. If you write @samp{2@tie{}1|2 cups} the space is interpreted as @emph{multiplication} so the result is the same as @samp{1 cup}. The @samp{+} and @samp{-} characters sometimes appears in exponents like @samp{3.43e+8}. This leads to an ambiguity in an expression like @samp{3e+2 yC}. The unit @samp{e} is a small unit of charge, so this can be regarded as equivalent to @samp{(3e+2) yC} or @samp{(3 e)+(2 yC)}. This ambiguity is resolved by always interpreting @samp{+} and @samp{-} as part of an exponent if possible. @node Numbers as Units @section Numbers as Units @cindex numbers as units For @command{units}, numbers are just another kind of unit. They can appear as many times as you like and in any order in a unit expression. For example, to find the volume of a box that is 2 ft by 3 ft by 12 ft in steres, you could do the following: @example @group You have: 2 ft 3 ft 12 ft You want: stere * 2.038813 / 0.49048148 You have: $ 5 / yard You want: cents / inch * 13.888889 / 0.072 @end group @end example @noindent And the second example shows how the dollar sign in the units conversion can precede the five. Be careful: @command{units} will interpret @samp{$5} with no space as equivalent to @samp{dollar^5}. @node Built-in Functions @section Built-in Functions @cindex functions, built in Several built-in functions are provided: @samp{sin}, @samp{cos}, @samp{tan}, @samp{ln}, @samp{log}, @samp{log2}, @samp{exp}, @samp{acos}, @samp{atan} and @samp{asin}. The @samp{sin}, @samp{cos}, and @samp{tan} functions require either a dimensionless argument or an argument with dimensions of angle. @example @group You have: sin(30 degrees) You want: Definition: 0.5 You have: sin(pi/2) You want: Definition: 1 You have: sin(3 kg) ^ Unit not dimensionless @end group @end example @noindent The other functions on the list require dimensionless arguments. The inverse trigonometric functions return arguments with dimensions of angle. @cindex roots @cindex square roots If you wish to take roots of units, you may use the @samp{sqrt} or @samp{cuberoot} functions. These functions require that the argument have the appropriate root. You can obtain higher roots by using fractional exponents: @example @group You have: sqrt(acre) You want: feet * 208.71074 / 0.0047913202 You have: (400 W/m^2 / stefanboltzmann)^(1/4) You have: Definition: 289.80882 K You have: cuberoot(hectare) ^ Unit not a root @end group @end example @node Previous Result @section Previous Result @cindex previous result @cindex @samp{_} to use result of previous conversion @noindent You can insert the result of the previous conversion using the underscore (@samp{_}). It is useful when you want to convert the same input to several different units, for example @example @group You have: 2.3 tonrefrigeration You want: btu/hr * 27600 / 3.6231884e-005 You have: _ You want: kW * 8.0887615 / 0.12362832 @end group @end example @noindent Suppose you want to do some deep frying that requires an oil depth of 2@tie{}inches. You have 1/2 gallon of oil, and want to know the largest-diameter pan that will maintain the required depth. The nonlinear unit @samp{circlearea} gives the @emph{radius} of the circle (@pxref{Other Nonlinear Units}, for a more detailed description) in SI units; you want the @emph{diameter} in @emph{inches}: @example @group You have: 1|2 gallon / 2 in You want: circlearea 0.10890173 m You have: 2 _ You want: in * 8.5749393 / 0.1166189 @end group @end example @cindex white space @noindent In most cases, surrounding white space is optional, so the previous example could have used @samp{2_}. If @samp{_} follows a non-numerical unit symbol, however, the space is required: @example @group You have: m_ ^ Parse error @end group @end example @noindent When @samp{_} is followed by a digit, the operation is multiplication rather than exponentiation, so that @samp{_2}, is equivalent to @w{@samp{_ * 2}} rather than @samp{_^2}. You can use the @samp{_} symbol any number of times; for example, @example @group You have: m You want: Definition: 1 m You have: _ _ You want: Definition: 1 m^2 @end group @end example @noindent Using @samp{_} before a conversion has been performed (e.g., immediately after invocation) generates an error: @set codequoteundirected @c man .if \n(.g .tr '\(aq @example @group You have: _ ^ No previous result; '_' not set @end group @end example @c man .if \n(.g .tr '' @clear codequoteundirected @noindent Accordingly, @samp{_} serves no purpose when @command{units} is invoked non-interactively. If @command{units} is invoked with the @option{--verbose} option (@pxref{Invoking Units}), the value of @samp{_} is not expanded: @example @group You have: mile You want: ft mile = 5280 ft mile = (1 / 0.00018939394) ft You have: _ You want: m _ = 1609.344 m _ = (1 / 0.00062137119) m @end group @end example @noindent You can give @samp{_} at the @w{@samp{You want:}} prompt, but it usually is not very useful. @node Complicated Unit Expressions @section Complicated Unit Expressions @cindex unit expressions, complicated @noindent The @command{units} program is especially helpful in ensuring accuracy and dimensional consistency when converting lengthy unit expressions. @c noman @cindex Darcy--Weisbach equation For example, one form of the Darcy--Weisbach fluid-flow equation is @tex $$ \Delta P = {8 \over \pi^2} \rho fL { Q^2 \over d^5} $$ @end tex @ifnottex @example Delta P = (8/pi^2) rho f L (Q^2 / d^5) @end example @end ifnottex @noindent where @math{ \Delta P} is the pressure drop, @math{\rho} is the mass density, @math{f} is the (dimensionless) friction factor, @math{L} is the length of the pipe, @math{Q} is the volumetric flow rate, and @math{d} is the pipe diameter. It might be desired to have the equation in the form @tex $$ \Delta P = A_1 \rho fL {Q^2 \over d^5} $$ @end tex @ifnottex @example Delta P = A1 rho f L (Q^2 / d^5) @end example @end ifnottex @c end noman @c ----------------------------------- @c nroff--assume neqn is not available @c ----------------------------------- @c man .if t .ig ++ @c man For example, one form of the Darcy-Weisbach fluid-flow equation is @c man .RS 5n @c man .PP @c man Delta \fIP\fP = (8 / pi)^2 (rho \fIfLQ\fP^2) / \fId\fP^5, @c man .RE @c man .PP @c man where Delta \fIP\fP is the pressure drop, rho is the mass density, @c man \fIf\fP is the (dimensionless) friction factor, \fIL\fP is the length @c man of the pipe, \fIQ\fP is the volumetric flow rate, and \fId\fP @c man is the pipe diameter. @c man It might be desired to have the equation in the form @c man .RS 5n @c man .PP @c man Delta \fIP\fP = A1 rho \fIfLQ\fP^2 / \fId\fP^5 @c man .RE @c man .PP @c man .++ @c ----- @c troff @c ----- @c man .if n .ig ++ @c man .EQ @c man delim $$ @c man .EN @c don't assume en dash is available @c man For example, one form of the Darcy\-Weisbach fluid-flow equation is @c man .RS 5n @c man .PP @c man .EQ @c man DELTA P = 8 over pi sup 2 rho fL Q sup 2 over d sup 5 , @c man .EN @c man .RE @c man .PP @c man where $DELTA P$ is the pressure drop, $rho$ is the mass density, @c man $f$ is the (dimensionless) friction factor, $L$ is the length @c man of the pipe, $Q$ is the volumetric flow rate, and $d$ @c man is the pipe diameter. @c man It might be desired to have the equation in the form @c man .RS 5n @c man .PP @c man .EQ @c man DELTA P = A sub 1 rho fL Q sup 2 over d sup 5 @c man .EN @c man .RE @c man .PP @c man .EQ @c man delim off @c man .EN @c man .++ @c @noindent that accepted the user's normal units; for typical units used in the US, the required conversion could be something like @example @group You have: (8/pi^2)(lbm/ft^3)ft(ft^3/s)^2(1/in^5) You want: psi * 43.533969 / 0.022970568 @end group @end example @cindex parentheses @noindent The parentheses allow individual terms in the expression to be entered naturally, as they might be read from the formula. Alternatively, the multiplication could be done with the @samp{*} rather than a space; then parentheses are needed only around @samp{ft^3/s} because of its exponent: @example @group You have: 8/pi^2 * lbm/ft^3 * ft * (ft^3/s)^2 /in^5 You want: psi * 43.533969 / 0.022970568 @end group @end example @noindent Without parentheses, and using spaces for multiplication, the previous conversion would need to be entered as @example @group You have: 8 lb ft ft^3 ft^3 / pi^2 ft^3 s^2 in^5 You want: psi * 43.533969 / 0.022970568 @end group @end example @node Backwards Compatibility @section Backwards Compatibility: @samp{*} and @samp{-} @cindex backwards compatibility @cindex compatibility @cindex compatibility with earlier versions The original @command{units} assigned multiplication a higher precedence than division using the slash. This differs from the usual precedence rules, which give multiplication and division equal precedence, and can be confusing for people who think of units as a calculator. The star operator (@samp{*}) included in this @command{units} program has, by default, the same precedence as division, and hence follows the usual precedence rules. For backwards compatibility you can invoke @command{units} with the @option{--oldstar} option. Then @samp{*} has a higher precedence than division, and the same precedence as multiplication using the space. @cindex @samp{-} as multiplication operator @cindex operator, hyphen (@samp{-}) as multiplication @cindex multiplication, hyphen @cindex hyphen as multiplication operator Historically, the hyphen (@samp{-}) has been used in technical publications to indicate products of units, and the original @command{units} program treated it as a multiplication operator. Because @command{units} provides several other ways to obtain unit products, and because @samp{-} is a subtraction operator in general algebraic expressions, @command{units} treats the binary @samp{-} as a subtraction operator by default. For backwards compatibility use the @option{--product} option, which causes @command{units} to treat the binary @samp{-} operator as a product operator. When @samp{-} is a multiplication operator it has the same precedence as multiplication with a space, giving it a higher precedence than division. When @samp{-} is used as a unary operator it negates its operand. Regardless of the @command{units} options, if @samp{-} appears after @samp{(} or after @samp{+} then it will act as a negation operator. So you can always compute 20 degrees minus 12 minutes by entering @samp{20@tie{}degrees + -12@tie{}arcmin}. You must use this construction when you define new units because you cannot know what options will be in force when your definition is processed. @cindex defining units with `-' @node Nonlinear Conversions @chapter Nonlinear Unit Conversions @cindex nonlinear unit conversions Nonlinear units are represented using functional notation. They make possible nonlinear unit conversions such as temperature. @menu * Temperature Conversions:: Conversion between temperature scales * Other Nonlinear Units:: Ring size, wire gauge, abrasive grit size @end menu @node Temperature Conversions @section Temperature Conversions @cindex temperature conversions Conversions between temperatures are different from linear conversions between temperature @emph{increments}---see the example below. The absolute temperature conversions are handled by units starting with @samp{temp}, and you must use functional notation. The temperature-increment conversions are done using units starting with @samp{deg} and they do not require functional notation. @example @group You have: tempF(45) You want: tempC 7.2222222 You have: 45 degF You want: degC * 25 / 0.04 @end group @end example @noindent Think of @samp{tempF(@var{x})} not as a function but as a notation that indicates that @var{x} should have units of @samp{tempF} attached to it. @xref{Defining Nonlinear Units}. The first conversion shows that if it's 45 degrees Fahrenheit outside, it's 7.2 degrees Celsius. The second conversion indicates that a change of 45 degrees Fahrenheit corresponds to a change of 25 degrees Celsius. The conversion from @samp{tempF(@var{x})} is to absolute temperature, so that @example @group You have: tempF(45) You want: degR * 504.67 / 0.0019814929 @end group @end example @noindent gives the same result as @example @group You have: tempF(45) You want: tempR * 504.67 / 0.0019814929 @end group @end example @noindent But if you convert @samp{tempF(@var{x})} to @samp{degC}, the output is probably not what you expect: @example @group You have: tempF(45) You want: degC * 280.37222 / 0.0035666871 @end group @end example @noindent The result is the temperature in K, because @samp{degC} is defined as @samp{K}, the Kelvin. For consistent results, use the @samp{temp@var{X}} units when converting to a temperature rather than converting a temperature increment. The @samp{tempC()} and @samp{tempF()} definitions are limited to positive absolute temperatures, and giving a value that would result in a negative absolute temperature generates an error message: @example @group You have: tempC(-275) ^ Argument of function outside domain ^ @end group @end example @node Other Nonlinear Units @section Other Nonlinear Units @cindex nonlinear units, other Some other examples of nonlinear units are numerous different ring sizes and wire gauges, the grit sizes used for abrasives, the decibel scale, shoe size, scales for the density of sugar (e.g., baume). The standard data file also supplies units for computing the area of a circle and the volume of a sphere. See the standard units data file for more details. Wire gauges with multiple zeroes are signified using negative numbers where two zeroes is @samp{-1}. Alternatively, you can use the synonyms @samp{g00}, @samp{g000}, and so on that are defined in the standard units data file. @cindex wire gauge @example @group You have: wiregauge(11) You want: inches * 0.090742002 / 11.020255 You have: brwiregauge(g00) You want: inches * 0.348 / 2.8735632 You have: 1 mm You want: wiregauge 18.201919 You have: grit_P(600) You want: grit_ansicoated 342.76923 @end group @end example @noindent The last example shows the conversion from P graded sand paper, which is the European standard and may be marked ``P600'' on the back, to the USA standard. @cindex abrasive grit size You can compute the area of a circle using the nonlinear unit, @samp{circlearea}. You can also do this using the circularinch or circleinch. The next example shows two ways to compute the area of a circle with a five inch radius and one way to compute the volume of a sphere with a radius of one meter. @cindex circle, area of @cindex sphere, volume of @example @group You have: circlearea(5 in) You want: in2 * 78.539816 / 0.012732395 You have: 10^2 circleinch You want: in2 * 78.539816 / 0.012732395 You have: spherevol(meter) You want: ft3 * 147.92573 / 0.0067601492 @end group @end example @noindent The inverse of a nonlinear conversion is indicated by prefixing a tilde (@samp{~}) to the nonlinear unit name: @example @group You have: ~wiregauge(0.090742002 inches) You want: Definition: 11 @end group @end example @noindent You can give a nonlinear unit definition without an argument or parentheses, and press @key{Enter} at the @w{@samp{You want:}} prompt to get the definition of a nonlinear unit; if the definition is not valid for all real numbers, the range of validity is also given. If the definition requires specific units this information is also displayed: @example @group You have: tempC Definition: tempC(x) = x K + stdtemp defined for x >= -273.15 You have: ~tempC Definition: ~tempC(tempC) = (tempC +(-stdtemp))/K defined for tempC >= 0 K You have: circlearea Definition: circlearea(r) = pi r^2 r has units m @end group @end example @noindent To see the definition of the inverse use the @samp{~} notation. In this case the parameter in the functional definition will usually be the name of the unit. Note that the inverse for @samp{tempC} shows that it requires units of @samp{K} in the specification of the allowed range of values. Nonlinear unit conversions are described in more detail in @ref{Defining Nonlinear Units}. @node Unit Lists @chapter Unit Lists: Conversion to Sums of Units @cindex sums of units @cindex unit lists @cindex units, sums of Outside of the SI, it is sometimes desirable to convert a single unit to a sum of units---for example, feet to feet plus inches. The conversion @emph{from} sums of units was described in @ref{Sums and Differences of Units}, and is a simple matter of adding the units with the @samp{+} sign: @example @group You have: 12 ft + 3 in + 3|8 in You want: ft * 12.28125 / 0.081424936 @end group @end example @noindent Although you can similarly write a sum of units to convert @emph{to}, the result will not be the conversion to the units in the sum, but rather the conversion to the particular sum that you have entered: @example @group You have: 12.28125 ft You want: ft + in + 1|8 in * 11.228571 / 0.089058524 @end group @end example @noindent The unit expression given at the @w{@samp{You want:}} prompt is equivalent to asking for conversion to multiples of @samp{1@tie{}ft + 1@tie{}in + 1|8@tie{}in}, which is 1.09375 ft, so the conversion in the previous example is equivalent to @example @group You have: 12.28125 ft You want: 1.09375 ft * 11.228571 / 0.089058524 @end group @end example @noindent In converting to a sum of units like miles, feet and inches, you typically want the largest integral value for the first unit, followed by the largest integral value for the next, and the remainder converted to the last unit. You can do this conversion easily with @command{units} using a special syntax for lists of units. You must list the desired units in order from largest to smallest, separated by the semicolon (@samp{;}) character: @example @group You have: 12.28125 ft You want: ft;in;1|8 in 12 ft + 3 in + 3|8 in @end group @end example @noindent The conversion always gives integer coefficients on the units in the list, except possibly the last unit when the conversion is not exact: @example @group You have: 12.28126 ft You want: ft;in;1|8 in 12 ft + 3 in + 3.00096 * 1|8 in @end group @end example @noindent The order in which you list the units is important: @example @group You have: 3 kg You want: oz;lb 105 oz + 0.051367866 lb You have: 3 kg You want: lb;oz 6 lb + 9.8218858 oz @end group @end example @noindent Listing ounces before pounds produces a technically correct result, but not a very useful one. You must list the units in descending order of size in order to get the most useful result. Ending a unit list with the separator @samp{;} has the same effect as repeating the last unit on the list, so @samp{ft;in;1|8 in;} is equivalent to @samp{ft;in;1|8 in;1|8 in}. With the example above, this gives @example @group You have: 12.28126 ft You want: ft;in;1|8 in; 12 ft + 3 in + 3|8 in + 0.00096 * 1|8 in @end group @end example @noindent in effect separating the integer and fractional parts of the coefficient for the last unit. If you instead prefer to round the last coefficient to an integer you can do this with the @option{--round} (@option{-r}) option. With the previous example, the result is @example @group You have: 12.28126 ft You want: ft;in;1|8 in 12 ft + 3 in + 3|8 in (rounded down to nearest 1|8 in) @end group @end example @noindent When you use the @option{-r} option, repeating the last unit on the list has no effect (e.g., @samp{ft;in;1|8 in;1|8 in} is equivalent to @samp{ft;in;1|8 in}), and hence neither does ending a list with a @samp{;}. With a single unit and the @option{-r} option, a terminal @samp{;} @emph{does} have an effect: it causes @command{units} to treat the single unit as a list and produce a rounded value for the single unit. Without the extra @samp{;}, the @option{-r} option has no effect on single unit conversions. This example shows the output using the @option{-r} option: @example @group You have: 12.28126 ft You want: in * 147.37512 / 0.0067854058 You have: 12.28126 ft You want: in; 147 in (rounded down to nearest in) @end group @end example @noindent Each unit that appears in the list must be conformable with the first unit on the list, and of course the listed units must also be conformable with the unit that you enter at the @w{@samp{You have:}} prompt. @example @group You have: meter You want: ft;kg ^ conformability error ft = 0.3048 m kg = 1 kg You have: meter You want: lb;oz conformability error 1 m 0.45359237 kg @end group @end example @noindent In the first case, @command{units} reports the disagreement between units appearing on the list. In the second case, @command{units} reports disagreement between the unit you entered and the desired conversion. This conformability error is based on the first unit on the unit list. Other common candidates for conversion to sums of units are angles and time: @example @group You have: 23.437754 deg You want; deg;arcmin;arcsec 23 deg + 26 arcmin + 15.9144 arcsec You have: 7.2319 hr You want: hr;min;sec 7 hr + 13 min + 54.84 sec @end group @end example @noindent In North America, recipes for cooking typically measure ingredients by volume, and use units that are not always convenient multiples of each other. Suppose that you have a recipe for 6 and you wish to make a portion for 1. If the recipe calls for 2@tie{}1/2 cups of an ingredient, you might wish to know the measurements in terms of measuring devices you have available, you could use @command{units} and enter @example @group You have: (2+1|2) cup / 6 You want: cup;1|2 cup;1|3 cup;1|4 cup;tbsp;tsp;1|2 tsp;1|4 tsp 1|3 cup + 1 tbsp + 1 tsp @end group @end example @noindent By default, if a unit in a list begins with fraction of the form 1|@var{x} and its multiplier is an integer, the fraction is given as the product of the multiplier and the numerator; for example, @example @group You have: 12.28125 ft You want: ft;in;1|8 in; 12 ft + 3 in + 3|8 in @end group @end example @noindent In many cases, such as the example above, this is what is wanted, but sometimes it is not. For example, a cooking recipe for 6 might call for 5@tie{}1/4 cup of an ingredient, but you want a portion for 2, and your 1-cup measure is not available; you might try @example @group You have: (5+1|4) cup / 3 You want: 1|2 cup;1|3 cup;1|4 cup 3|2 cup + 1|4 cup @end group @end example @noindent This result might be fine for a baker who has a 1@tie{}1/2-cup measure (and recognizes the equivalence), but it may not be as useful to someone with more limited set of measures, who does want to do additional calculations, and only wants to know ``How many 1/2-cup measures to I need to add?'' After all, that's what was actually asked. With the @option{--show-factor} option, the factor will not be combined with a unity numerator, so that you get @example @group You have: (5+1|4) cup / 3 You want: 1|2 cup;1|3 cup;1|4 cup 3 * 1|2 cup + 1|4 cup @end group @end example @noindent A user-specified fractional unit with a numerator other than 1 is never overridden, however---if a unit list specifies @samp{3|4 cup;1|2 cup}, a result equivalent to 1@tie{}1/2 cups will always be shown as @samp{2 * 3|4@tie{}cup} whether or not the @option{--show-factor} option is given. Some applications for unit lists may be less obvious. Suppose that you have a postal scale and wish to ensure that it's accurate at 1@tie{}oz, but have only metric calibration weights. You might try @example @group You have: 1 oz You want: 100 g;50 g; 20 g;10 g;5 g;2 g;1 g; 20 g + 5 g + 2 g + 1 g + 0.34952312 * 1 g @end group @end example @noindent You might then place one each of the 20@tie{}g, 5@tie{}g, 2@tie{}g, and 1@tie{}g weights on the scale and hope that it indicates close to @example @group You have: 20 g + 5 g + 2 g + 1 g You want: oz; 0.98767093 oz @end group @end example @noindent Appending @samp{;} to @samp{oz} forces a one-line display that includes the unit; here the integer part of the result is zero, so it is not displayed. A unit list such as @example cup;1|2@tie{}cup;1|3@tie{}cup;1|4@tie{}cup;tbsp;tsp;1|2@tie{}tsp;1|4@tie{}tsp @end example @noindent can be tedious to enter. The @command{units} program provides shorthand names for some common combinations: @example hms @r{hours, minutes, seconds} dms @r{angle: degrees, minutes, seconds} time @r{years, days, hours, minutes and seconds} usvol @r{US cooking volume: cups and smaller} @end example @noindent Using these shorthands, or @dfn{unit list aliases}, you can do the following conversions: @example @group You have: anomalisticyear You want: time 1 year + 25 min + 3.4653216 sec You have: 1|6 cup You want: usvol 2 tbsp + 2 tsp @end group @end example @noindent You cannot combine a unit list alias with other units: it must appear alone at the @w{@samp{You want:}} prompt. You can display the definition of a unit list alias by entering it at the @w{@samp{You have:}} prompt: @example @group You have: dms Definition: unit list, deg;arcmin;arcsec @end group @end example @noindent When you specify compact output with @option{--compact}, @option{--terse} or @option{-t} and perform conversion to a unit list, @command{units} lists the conversion factors for each unit in the list, separated by semicolons. @example @group You have: year You want: day;min;sec 365;348;45.974678 @end group @end example @noindent Unlike the case of regular output, zeros @emph{are} included in this output list: @example @group You have: liter You want: cup;1|2 cup;1|4 cup;tbsp 4;0;0;3.6280454 @end group @end example @node Logging Calculations @chapter Logging Calculations @cindex logging calculations @cindex log file The @option{--log} option allows you to save the results of calculations in a file; this can be useful if you need a permanent record of your work. For example, the fluid-flow conversion in @ref{Complicated Unit Expressions}, is lengthy, and if you were to use it in designing a piping system, you might want a record of it for the project file. If the interactive session @example @group # Conversion factor A1 for pressure drop # dP = A1 rho f L Q^2/d^5 You have: (8/pi^2) (lbm/ft^3)ft(ft^3/s)^2(1/in^5) # Input units You want: psi * 43.533969 / 0.022970568 @end group @end example @noindent were logged, the log file would contain @example @group ### Log started Fri Oct 02 15:55:35 2015 # Conversion factor A1 for pressure drop # dP = A1 rho f L Q^2/d^5 From: (8/pi^2) (lbm/ft^3)ft(ft^3/s)^2(1/in^5) # Input units To: psi * 43.533969 / 0.022970568 @end group @end example @noindent The time is written to the log file when the file is opened. The use of comments can help clarify the meaning of calculations for the log. The log includes conformability errors between the units at the @w{@samp{You have:}} and @w{@samp{You want:}} prompts, but not other errors, including lack of conformability of items in sums or differences or among items in a unit list. For example, a conversion between zenith angle and elevation angle could involve @example @group You have: 90 deg - (5 deg + 22 min + 9 sec) ^ Illegal sum or difference of non-conformable units You have: 90 deg - (5 deg + 22 arcmin + 9 arcsec) You want: dms 84 deg + 37 arcmin + 51 arcsec You have: _ You want: deg * 84.630833 / 0.011816024 You have: @end group @end example @noindent The log file would contain @example @group From: 90 deg - (5 deg + 22 arcmin + 9 arcsec) To: deg;arcmin;arcsec 84 deg + 37 arcmin + 51 arcsec From: _ To: deg * 84.630833 / 0.011816024 @end group @end example @noindent The initial entry error (forgetting that minutes have dimension of time, and that arcminutes must be used for dimensions of angle) does not appear in the output. When converting to a unit list alias, @command{units} expands the alias in the log file. The @samp{From:} and @samp{To:} tags are written to the log file even if the @option{--quiet} option is given. If the log file exists when @command{units} is invoked, the new results are appended to the log file. The time is written to the log file each time the file is opened. The @option{--log} option is ignored when @command{units} is used non-interactively. @node Invoking Units @chapter Invoking @command{units} @cindex invoking units @cindex command-line options You invoke @command{units} like this: @example units [@var{options}] [@var{from-unit} [@var{to-unit}]] @end example @noindent If the @var{from-unit} and @var{to-unit} are omitted, the program will use interactive prompts to determine which conversions to perform. @xref{Interactive Use}. If both @var{from-unit} and @var{to-unit} are given, @command{units} will print the result of that single conversion and then exit. If only @var{from-unit} appears on the command line, @command{units} will display the definition of that unit and exit. Units specified on the command line may need to be quoted to protect them from shell interpretation and to group them into two arguments. @xref{Command Line Use}. The default behavior of @command{units} can be changed by various options given on the command line. In most cases, the options may be given in either short form (a single @samp{-} followed by a single character) or long form (@samp{--} followed by a word or hyphen-separated words). Short-form options are cryptic but require less typing; long-form options require more typing but are more explanatory and may be more mnemonic. With long-form options you need only enter sufficient characters to uniquely identify the option to the program. For example, @samp{--out@tie{}%f} works, but @samp{--o@tie{}%f} fails because @command{units} has other long options beginning with @samp{o}. However, @samp{--q} works because @samp{--quiet} is the only long option beginning with @samp{q}. Some options require arguments to specify a value (e.g., @samp{-d@tie{}12} or @samp{--digits@tie{}12}). Short-form options that do not take arguments may be concatenated (e.g., @samp{-erS} is equivalent to @samp{-e@tie{}-r@tie{}-S}); the last option in such a list may be one that takes an argument (e.g., @samp{-ed@tie{}12}). With short-form options, the space between an option and its argument is optional (e.g., @samp{-d12} is equivalent to @samp{-d@tie{}12}). Long-form options may not be concatenated, and the space between a long-form option and its argument is required. Short-form and long-form options may be intermixed on the command line. Options may be given in any order, but when incompatible options (e.g., @option{--output-format} and @option{--exponential}) are given in combination, behavior is controlled by the last option given. For example, @samp{-o%.12f@tie{}-e} gives exponential format with the default eight significant digits). The following options are available: @table @env @item -c @itemx --check @opindex -c @r{(option for} @command{units}@r{)} @opindex --check @r{(option for} @command{units}@r{)} Check that all units and prefixes defined in the units data file reduce to primitive units. Print a list of all units that cannot be reduced. Also display some other diagnostics about suspicious definitions in the units data file. Only definitions active in the current locale are checked. You should always run @command{units} with this option after modifying a units data file. @item --check-verbose @itemx --verbose-check @opindex --check-verbose @r{(option for} @command{units}@r{)} @opindex --verbose-check @r{(option for} @command{units}@r{)} Like the @option{--check} option, this option prints a list of units that cannot be reduced. But to help find unit definitions that cause endless loops, it lists the units as they are checked. If @command{units} hangs, then the last unit to be printed has a bad definition. Only definitions active in the current locale are checked. @item -d @var{ndigits} @itemx --digits @var{ndigits} @opindex -d @r{(option for} @command{units}@r{)} @opindex --digits @r{(option for} @command{units}@r{)} Set the number of significant digits in the output to the value specified (which must be greater than zero). For example, @samp{-d@tie{}12} sets the number of significant digits to 12. With exponential output @command{units} displays one digit to the left of the decimal @c man point @c noman point@footnote{This document refers to ``decimal point,'' but strictly, the @dfn{radix} separates the integer and fractional parts of a floating-point number; in English-speaking countries, the radix is a point (@samp{.}), but in most other countries it is a comma (@samp{,}).} @c end noman and eleven digits to the right of the decimal point. On most systems, the maximum number of internally meaningful digits is 15; if you specify a greater number than your system's maximum, @command{units} will print a warning and set the number to the largest meaningful value. To directly set the maximum value, give an argument of @code{max} (e.g., @samp{-d@tie{}max}). Be aware, of course, that ``significant'' here refers only to the @emph{display} of numbers; if results depend on physical constants not known to this precision, the physically meaningful precision may be less than that shown. The @option{--digits} option conflicts with the @option{--output-format} option. @item -e @itemx --exponential @opindex -e @r{(option for} @command{units}@r{)} @opindex --exponential @r{(option for} @command{units}@r{)} Set the numeric output format to exponential (i.e., scientific notation), like that used in the Unix @command{units} program. The default precision is eight significant digits (seven digits to the right of the decimal point); this can be changed with the @option{--digits} option. The @option{--exponential} option conflicts with the @option{--output-format} option. @item -o @var{format} @itemx --output-format @var{format} @opindex -o @r{(option for} @command{units}@r{)} @opindex --output-format @r{(option for} @command{units}@r{)} This option affords complete control over the numeric output format using the specified @var{format}. The format is a single floating point numeric format for the @code{printf()} function in the C programming language. All compilers support the format types @samp{g} and @samp{G} to specify significant digits, @samp{e} and @samp{E} for scientific notation, and @samp{f} for fixed-point decimal. The ISO C99 standard introduced the @samp{F} type for fixed-point decimal and the @samp{a} and @samp{A} types for hexadecimal floating point; these types are allowed with compilers that support them. The default format is @samp{%.8g}; for greater precision, you could specify @samp{-o@tie{}%.15g}. @xref{Numeric Output Format}, and the documentation for @code{printf()} for more detailed descriptions of the format specification. The @option{--output-format} option affords the greatest control of the output appearance, but requires at least rudimentary knowledge of the @code{printf()} format syntax. If you don't want to bother with the @code{printf()} syntax, you can specify greater precision more simply with the @option{--digits} option or select exponential format with @option{--exponential}. The @option{--output-format} option is incompatible with the @option{--exponential} and @option{--digits} options. @item -f @var{filename} @itemx --file @var{filename} @opindex -f @r{(option for} @command{units}@r{)} @opindex --file @r{(option for} @command{units}@r{)} Instruct @command{units} to load the units file @var{filename}. You can specify up to 25 units files on the command line. When you use this option, @command{units} will load @emph{only} the files you list on the command line; it will not load the standard file or your personal units file unless you explicitly list them. If @var{filename} is the empty string (@w{@samp{-f ""}}), the default units file (or that specified by @env{UNITSFILE}) will be loaded in addition to any others specified with @samp{-f}. @item -L @var{logfile} @itemx --log @var{logfile} @opindex -L @r{(option for} @command{units}@r{)} @opindex --log @r{(option for} @command{units}@r{)} Save the results of calculations in the file @var{logfile}; this can be useful if it is important to have a record of unit conversions or other calculations that are to be used extensively or in a critical activity such as a program or design project. If @var{logfile} exits, the new results are appended to the file. This option is ignored when @command{units} is used non-interactively. @xref{Logging Calculations}, for a more detailed description and some examples. @item -H @var{filename} @itemx --history @var{filename} @opindex -f @r{(option for} @command{units}@r{)} @opindex --file @r{(option for} @command{units}@r{)} Instruct @command{units} to save history to @var{filename}, so that a record of your commands is available for retrieval across different @command{units} invocations. To prevent the history from being saved set @var{filename} to the empty string (@w{@samp{-H ""}}). This option has no effect if readline is not available. @item -h @itemx --help @opindex -h @r{(option for} @command{units}@r{)} @opindex --help @r{(option for} @command{units}@r{)} Print out a summary of the options for @command{units}. @item -m @itemx --minus @opindex -m @r{(option for} @command{units}@r{)} @opindex --minus @r{(option for} @command{units}@r{)} Causes @samp{-} to be interpreted as a subtraction operator. This is the default behavior. @item -p @itemx --product @opindex -p @r{(option for} @command{units}@r{)} @opindex --product @r{(option for} @command{units}@r{)} Causes @samp{-} to be interpreted as a multiplication operator when it has two operands. It will act as a negation operator when it has only one operand: @samp{(-3)}. By default @samp{-} is treated as a subtraction operator. @item --oldstar @opindex --oldstar @r{(option for} @command{units}@r{)} Causes @samp{*} to have the old-style precedence, higher than the precedence of division so that @samp{1/2*3} will equal @samp{1/6}. @item --newstar @opindex --newstar @r{(option for} @command{units}@r{)} Forces @samp{*} to have the new (default) precedence that follows the usual rules of algebra: the precedence of @samp{*} is the same as the precedence of @samp{/}, so that @samp{1/2*3} will equal @samp{3/2}. @item --compact @opindex --compact @r{(option for} @command{units}@r{)} Give compact output featuring only the conversion factor. This turns off the @option{--verbose} option. @item -q @itemx --quiet @itemx --silent @opindex -q @r{(option for} @command{units}@r{)} @opindex --quiet @r{(option for} @command{units}@r{)} @opindex --silent @r{(option for} @command{units}@r{)} Suppress prompting of the user for units and the display of statistics about the number of units loaded. @item -n @itemx --nolists Disable conversion to unit lists. @item -r @itemx --round When converting to a combination of units given by a unit list, round the value of the last unit in the list to the nearest integer. @item -S @itemx --show-factor When converting to a combination of units specified in a list, always show a non-unity factor before a unit that begins with a fraction with a unity denominator. By default, if the unit in a list begins with fraction of the form 1|@var{x} and its multiplier is an integer other than 1, the fraction is given as the product of the multiplier and the numerator (e.g., @samp{3|8@tie{}in} rather than @samp{3 * 1|8@tie{}in}). In some cases, this is not what is wanted; for example, the results for a cooking recipe might show @samp{3 * 1|2@tie{}cup} as @samp{3|2@tie{}cup}. With the @option{--show-factor} option, a result equivalent to 1.5 cups will display as @samp{3 * 1|2@tie{}cup} rather than @samp{3|2@tie{}cup}. A user-specified fractional unit with a numerator other than 1 is never overridden, however---if a unit list specifies @samp{3|4 cup;1|2 cup}, a result equivalent to 1@tie{}1/2 cups will always be shown as @samp{2 * 3|4@tie{}cup} whether or not the @option{--show-factor} option is given. @item -s @itemx --strict @opindex -s @r{(option for} @command{units}@r{)} @opindex --strict @r{(option for} @command{units}@r{)} Suppress conversion of units to their reciprocal units. For example, @command{units} will normally convert hertz to seconds because these units are reciprocals of each other. The strict option requires that units be strictly conformable to perform a conversion, and will give an error if you attempt to convert hertz to seconds. @item -1 @itemx --one-line @opindex -1 @r{(option for} @command{units}@r{)} @opindex --one-line @r{(option for} @command{units}@r{)} Give only one line of output (the forward conversion). Do not print the reverse conversion. If a reciprocal conversion is performed then @command{units} will still print the ``reciprocal conversion'' line. @item -t @itemx --terse @opindex -t @r{(option for} @command{units}@r{)} @opindex --terse @r{(option for} @command{units}@r{)} Give terse output when converting units. This option can be used when calling @command{units} from another program so that the output is easy to parse. This option has the combined effect of these options: @option{--strict} @option{--quiet} @option{--one-line} @option{--compact}. When combined with @option{--version} it produces a display showing only the program name and version number. @item -v @itemx --verbose @opindex -v @r{(option for} @command{units}@r{)} @opindex --verbose @r{(option for} @command{units}@r{)} Give slightly more verbose output when converting units. When combined with the @option{-c} option this gives the same effect as @option{--check-verbose}. When combined with @option{--version} produces a more detailed output, equivalent to the @option{--info} option. @item -V @itemx --version @opindex -V @r{(option for} @command{units}@r{)} @opindex --version @r{(option for} @command{units}@r{)} Print the program version number, tell whether the @command{readline} library has been included, tell whether UTF-8 support has been included; give the locale, the location of the default units data file, and the location of the personal units data file; indicate if the personal units data file does not exist. When given in combination with the @option{--terse} option, the program prints only the version number and exits. When given in combination with the @option{--verbose} option, the program, the @option{--version} option has the same effect as the @option{--info} option below. @item -I @itemx --info @opindex -I @r{(option for} @command{units}@r{)} @opindex --info @r{(option for} @command{units}@r{)} Print the information given with the @option{--version} option, show the pathname of the units program, show the status of the @env{UNITSFILE} and @env{MYUNITSFILE} environment variables, and additional information about how @command{units} locates the related files. On systems running Microsoft Windows, the status of the @env{UNITSLOCALE} environment variable and information about the related locale map are also given. This option is usually of interest only to developers and administrators, but it can sometimes be useful for troubleshooting. Combining the @option{--version} and @option{--verbose} options has the same effect as giving @option{--info}. @item -U @itemx --unitsfile @opindex -U @r{(option for} @command{units}@r{)} @opindex --unitsfile @r{(option for} @command{units}@r{)} Print the location of the default units data file and exit; if the file cannot be found, print ``Units data file not found''. @item -l @var{locale} @itemx --locale @var{locale} Print the information given with the @option{--version} option, show the @opindex --locale @r{(option for} @command{units}@r{)} @opindex -l @r{(option for} @command{units}@r{)} Force a specified locale such as @samp{en_GB} to get British definitions by default. This overrides the locale determined from system settings or environment variables. @xref{Locale}, for a description of locale format. @end table @node Defining Your Own Units @chapter Adding Your Own Definitions @menu * Units Data Files:: Where are units defined? * Defining New Units:: Writing your own unit and prefix definitions * Defining Nonlinear Units:: Writing your own nonlinear unit definitions * Piecewise Linear Units:: Writing your own piecewise linear definitions * Defining Unit List Aliases:: Writing your own unit list aliases @end menu @node Units Data Files @section Units Data Files @cindex additional units data files @cindex data files, additional @cindex units data files, additional @cindex @samp{!include} @cindex command, @samp{!include} @cindex including additional units data files The units and prefixes that @command{units} can convert are defined in the units data file, typically @file{/usr/share/units/definitions.units}. If you can't find this file, run @command{units@tie{}--version} to get information on the file locations for your installation. Although you can extend or modify this data file if you have appropriate user privileges, it's usually better to put extensions in separate files so that the definitions will be preserved if you update @command{units}. You can include additional data files in the units database using the @samp{!include} command in the standard units data file. For example @example !include /usr/local/share/units/local.units @end example @noindent might be appropriate for a site-wide supplemental data file. The location of the @samp{!include} statement in the standard units data file is important; later definitions replace earlier ones, so any definitions in an included file will override definitions before the @samp{!include} statement in the standard units data file. With normal invocation, no warning is given about redefinitions; to ensure that you don't have an unintended redefinition, run @command{units@tie{}-c} after making changes to any units data file. @cindex personal units data file @cindex units data file, personal If you want to add your own units in addition to or in place of standard or site-wide supplemental units data files, you can include them in the @file{.units} file in your home directory. If this file exists it is read after the standard units data file, so that any definitions in this file will replace definitions of the same units in the standard data file or in files included from the standard data file. This file will not be read if any units files are specified on the command line. (Under Windows the personal units file is named @file{unitdef.units}.) Running @w{@command{units -V}} will display the location and name of your personal units file. The @command{units} program first tries to determine your home directory from the @env{HOME} environment variable. On systems running Microsoft Windows, if @env{HOME} does not exist, @command{units} attempts to find your home directory from @env{HOMEDRIVE}, @env{HOMEPATH} and @env{USERPROFILE}. @cindex MYUNITSFILE environment variable @cindex environment variable, MYUNITSFILE You can specify an arbitrary file as your personal units data file with the @env{MYUNITSFILE} environment variable; if this variable exists, its value is used without searching your home directory. The default units data files are described in more detail in @ref{Data Files}. @node Defining New Units @section Defining New Units and Prefixes @cindex defining units @cindex units, definition of @cindex units definitions, adding @cindex units definitions, changing @cindex prefixes, definition of @cindex defining prefixes @cindex primitive units @cindex units, primitive @cindex @samp{!} to indicate primitive units @cindex command, @samp{!} to indicate primitive units A unit is specified on a single line by giving its name and an equivalence. Comments start with a @samp{#} character, which can appear anywhere in a line. The backslash character (@samp{\}) acts as a continuation character if it appears as the last character on a line, making it possible to spread definitions out over several lines if desired. A file can be included by giving the command @samp{!include} followed by the file's name. The @samp{!} must be the first character on the line. The file will be sought in the same directory as the parent file unless you give a full path. The name of the file to be included cannot contain the comment character @samp{#}. @cindex include files Unit names must not contain any of the operator characters @samp{+}, @samp{-}, @samp{*}, @samp{/}, @samp{|}, @samp{^}, @samp{;}, @samp{~}, the comment character @samp{#}, or parentheses. They cannot begin or end with an underscore (@samp{_}), a comma (@samp{,}) or a decimal point (@samp{.}). The figure dash (U+2012), typographical minus (`@minus{}'; U+2212), and en dash (`--'; U+2013) are converted to the operator @samp{-}, so none of these characters can appear in unit names. Names cannot begin with a digit, and if a name ends in a digit other than zero, the digit must be preceded by a string beginning with an underscore, and afterwards consisting only of digits, decimal points, or commas. For example, @samp{foo_2}, @samp{foo_2,1}, or @samp{foo_3.14} are valid names but @samp{foo2} or @samp{foo_a2} are invalid. You could define nitrous oxide as @example N2O nitrogen 2 + oxygen @end example @noindent but would need to define nitrogen dioxide as @example NO_2 nitrogen + oxygen 2 @end example @noindent Be careful to define new units in terms of old ones so that a reduction leads to the primitive units, which are marked with @samp{!} characters. Dimensionless units are indicated by using the string @samp{!dimensionless} for the unit definition. @cindex dimensionless units, defining When adding new units, be sure to use the @option{-c} option to check that the new units reduce properly. If you create a loop in the units definitions, then @command{units} will hang when invoked with the @option{-c} option. You will need to use the @option{--check-verbose} option, which prints out each unit as it is checked. The program will still hang, but the last unit printed will be the unit that caused the infinite loop. @cindex parentheses If you define any units that contain @samp{+} characters, carefully check them because the @option{-c} option will not catch non-conformable sums. Be careful with the @samp{-} operator as well. When used as a binary operator, the @samp{-} character can perform addition or multiplication depending on the options used to invoke @command{units}. To ensure consistent behavior use @samp{-} only as a unary negation operator when writing units definitions. To multiply two units leave a space or use the @samp{*} operator with care, recalling that it has two possible precedence values and may require parentheses to ensure consistent behavior. To compute the difference of @samp{foo} and @samp{bar} write @samp{foo+(-bar)} or even @samp{foo+-bar}. Here is an example of a short data file that defines some basic units: @example @group m ! # The meter is a primitive unit sec ! # The second is a primitive unit rad !dimensionless # A dimensionless primitive unit micro- 1e-6 # Define a prefix minute 60 sec # A minute is 60 seconds hour 60 min # An hour is 60 minutes inch 0.0254 m # Inch defined in terms of meters ft 12 inches # The foot defined in terms of inches mile 5280 ft # And the mile @end group @end example @cindex parentheses @noindent A unit that ends with a @samp{-} character is a prefix. If a prefix definition contains any @samp{/} characters, be sure they are protected by parentheses. If you define @samp{half- 1/2} then @samp{halfmeter} would be equivalent to @samp{1 / (2@tie{}meter)}. @node Defining Nonlinear Units @section Defining Nonlinear Units @cindex defining nonlinear units @cindex nonlinear units, defining @cindex nonlinear unit conversions Some unit conversions of interest are nonlinear; for example, temperature conversions between the Fahrenheit and Celsius scales cannot be done by simply multiplying by conversion factors. When you give a linear unit definition such as @samp{inch 2.54@tie{}cm} you are providing information that @command{units} uses to convert values in inches into primitive units of meters. For nonlinear units, you give a functional definition that provides the same information. Nonlinear units are represented using a functional notation. It is best to regard this notation not as a function call but as a way of adding units to a number, much the same way that writing a linear unit name after a number adds units to that number. Internally, nonlinear units are defined by a pair of functions that convert to and from linear units in the database, so that an eventual conversion to primitive units is possible. Here is an example nonlinear unit definition: @example @group tempF(x) units=[1;K] domain=[-459.67,) range=[0,) \ (x+(-32)) degF + stdtemp ; (tempF+(-stdtemp))/degF + 32 @end group @end example @noindent A nonlinear unit definition comprises a unit name, a formal parameter name, two functions, and optional specifications for units, the domain, and the range (the domain of the inverse function). The functions tell @command{units} how to convert to and from the new unit. To produce valid results, the arguments of these functions need to have the correct dimensions and be within the domains for which the functions are defined. @cindex parentheses The definition begins with the unit name followed immediately (with no spaces) by a @samp{(} character. In the parentheses is the name of the formal parameter. Next is an optional specification of the units required by the functions in the definition. In the example above, the @samp{units=[1;K]} specification indicates that the @samp{tempF} function requires an input argument conformable with @samp{1} (i.e., the argument is dimensionless), and that the inverse function requires an input argument conformable with @samp{K}. For normal nonlinear units definition, the forward function will always take a dimensionless argument; in general, the inverse function will need units that match the quantity measured by your nonlinear unit. Specifying the units enables @command{units} to perform error checking on function arguments, and also to assign units to domain and range specifications, which are described later. Next the function definitions appear. In the example above, the @samp{tempF} function is defined by @example @group tempF(x) = (x+(-32)) degF + stdtemp @end group @end example @noindent This gives a rule for converting @samp{x} in the units @samp{tempF} to linear units of absolute temperature, which makes it possible to convert from tempF to other units. To enable conversions to Fahrenheit, you must give a rule for the inverse conversions. The inverse will be @samp{x(tempF)} and its definition appears after a @samp{;} character. In our example, the inverse is @example @group x(tempF) = (tempF+(-stdtemp))/degF + 32 @end group @end example @noindent This inverse definition takes an absolute temperature as its argument and converts it to the Fahrenheit temperature. The inverse can be omitted by leaving out the @samp{;} character and the inverse definition, but then conversions @emph{to} the unit will not be possible. If the inverse definition is omitted, the @option{--check} option will display a warning. It is up to you to calculate and enter the correct inverse function to obtain proper conversions; the @option{--check} option tests the inverse at one point and prints an error if it is not valid there, but this is not a guarantee that your inverse is correct. With some definitions, the units may vary. For example, the definition @example @group square(x) x^2 @end group @end example @noindent can have any arbitrary units, and can also take dimensionless arguments. In such a case, you should @emph{not} specify units. If a definition takes a root of its arguments, the definition is valid only for units that yield such a root. For example, @example @group squirt(x) sqrt(x) @end group @end example @noindent is valid for a dimensionless argument, and for arguments with even powers of units. @cindex domain, nonlinear unit definitions @cindex range, nonlinear unit definitions Some definitions may not be valid for all real numbers. In such cases, @command{units} can handle errors better if you specify an appropriate domain and range. You specify the domain and range as shown below: @example @group baume(d) units=[1;g/cm^3] domain=[0,130.5] range=[1,10] \ (145/(145-d)) g/cm^3 ; (baume+-g/cm^3) 145 / baume @end group @end example @noindent In this example the domain is specified after @samp{domain=} with the endpoints given in brackets. In accord with mathematical convention, square brackets indicate a closed interval (one that includes its endpoints), and parentheses indicate an open interval (one that does not include its endpoints). An interval can be open or closed on one or both ends; an interval that is unbounded on either end is indicated by omitting the limit on that end. For example, a quantity to which decibel (dB) is applied may have any value greater than zero, so the range is indicated by @samp{(0,)}: @example @group decibel(x) units=[1;1] range=(0,) 10^(x/10); 10 log(decibel) @end group @end example @noindent If the domain or range is given, the second endpoint must be greater than the first. The domain and range specifications can appear independently and in any order along with the units specification. The values for the domain and range endpoints are attached to the units given in the units specification, and if necessary, the parameter value is adjusted for comparison with the endpoints. For example, if a definition includes @samp{units=[1;ft]} and @samp{range=[3,)}, the range will be taken as 3@tie{}ft to infinity. If the function is passed a parameter of @w{@samp{900 mm}}, that value will be adjusted to 2.9527559@tie{}ft, which is outside the specified range. If you omit the units specification from the previous example, @command{units} can not tell whether you intend the lower endpoint to be 3@tie{}ft or 3@tie{}microfurlongs, and can not adjust the parameter value of 900@tie{}mm for comparison. Without units, numerical values other than zero or plus or minus infinity for domain or range endpoints are meaningless, and accordingly they are not allowed. If you give other values without units then the definition will be ignored and you will get an error message. Although the units, domain, and range specifications are optional, it's best to give them when they are applicable; doing so allows @command{units} to perform better error checking and give more helpful error messages. Giving the domain and range also enables the @option{--check} option to find a point in the domain to use for its point check of your inverse definition. You can make synonyms for nonlinear units by providing both the forward and inverse functions; inverse functions can be obtained using the @samp{~} operator. So to create a synonym for @samp{tempF} you could write @example @group fahrenheit(x) units=[1;K] tempF(x); ~tempF(fahrenheit) @end group @end example @noindent This is useful for creating a nonlinear unit definition that differs slightly from an existing definition without having to repeat the original functions. For example, @example dBW(x) units=[1;W] range=[0,) dB(x) W ; ~dB(dBW/W) @end example @noindent If you wish a synonym to refer to an existing nonlinear unit without modification, you can do so more simply by adding the synonym with appended parentheses as a new unit, with the existing nonlinear unit---without parentheses---as the definition. So to create a synonym for @samp{tempF} you could write @example fahrenheit() tempF @end example @noindent The definition must be a nonlinear unit; for example, the synonym @example fahrenheit() meter @end example @noindent will result in an error message when @command{units} starts. @cindex units functions @cindex functions of units You may occasionally wish to define a function that operates on units. This can be done using a nonlinear unit definition. For example, the definition below provides conversion between radius and the area of a circle. This definition requires a length as input and produces an area as output, as indicated by the @samp{units=} specification. Specifying the range as the nonnegative numbers can prevent cryptic error messages. @example @group circlearea(r) units=[m;m^2] range=[0,) pi r^2 ; sqrt(circlearea/pi) @end group @end example @node Piecewise Linear Units @section Defining Piecewise Linear Units @cindex defining piecewise linear units @cindex linear interpolation @cindex units, piecewise linear @cindex piecewise linear units Sometimes you may be interested in a piecewise linear unit such as many wire gauges. Piecewise linear units can be defined by specifying conversions to linear units on a list of points. Conversion at other points will be done by linear interpolation. A partial definition of zinc gauge is @example @group zincgauge[in] 1 0.002, 10 0.02, 15 0.04, 19 0.06, 23 0.1 @end group @end example @noindent In this example, @samp{zincgauge} is the name of the piecewise linear unit. The definition of such a unit is indicated by the embedded @samp{[} character. After the bracket, you should indicate the units to be attached to the numbers in the table. No spaces can appear before the @samp{]} character, so a definition like @samp{foo[kg meters]} is invalid; instead write @samp{foo[kg*meters]}. The definition of the unit consists of a list of pairs optionally separated by commas. This list defines a function for converting from the piecewise linear unit to linear units. The first item in each pair is the function argument; the second item is the value of the function at that argument (in the units specified in brackets). In this example, we define @samp{zincgauge} at five points. For example, we set @samp{zincgauge(1)} equal to @w{@samp{0.002 in}}. Definitions like this may be more readable if written using continuation characters as @example @group zincgauge[in] \ 1 0.002 \ 10 0.02 \ 15 0.04 \ 19 0.06 \ 23 0.1 @end group @end example @noindent With the preceding definition, the following conversion can be performed: @example @group You have: zincgauge(10) You want: in * 0.02 / 50 You have: .01 inch You want: zincgauge 5 @end group @end example @noindent If you define a piecewise linear unit that is not strictly monotonic, then the inverse will not be well defined. If the inverse is requested for such a unit, @command{units} will return the smallest inverse. After adding nonlinear units definitions, you should normally run @w{@command{units --check}} to check for errors. If the @samp{units} keyword is not given, the @option{--check} option checks a nonlinear unit definition using a dimensionless argument, and then checks using an arbitrary combination of units, as well as the square and cube of that combination; a warning is given if any of these tests fail. For example, @set codequoteundirected @example @group Warning: function 'squirt(x)' defined as 'sqrt(x)' failed for some test inputs: squirt(7(kg K)^1): Unit not a root squirt(7(kg K)^3): Unit not a root @end group @end example @clear codequoteundirected @noindent Running @w{@command{units --check}} will print a warning if a non-monotonic piecewise linear unit is encountered. For example, the relationship between ANSI coated abrasive designation and mean particle size is non-monotonic in the vicinity of 800 grit: @example @group ansicoated[micron] \ . . . 600 10.55 \ 800 11.5 \ 1000 9.5 \ @end group @end example @noindent Running @w{@command{units --check}} would give the error message @set codequoteundirected @example @group Table 'ansicoated' lacks unique inverse around entry 800 @end group @end example @clear codequoteundirected @noindent Although the inverse is not well defined in this region, it's not really an error. Viewing such error messages can be tedious, and if there are enough of them, they can distract from true errors. Error checking for nonlinear unit definitions can be suppressed by giving the @samp{noerror} keyword; for the examples above, this could be done as @example @group squirt(x) noerror domain=[0,) range=[0,) sqrt(x); squirt^2 ansicoated[micron] noerror \ . . . @end group @end example @noindent Use the @samp{noerror} keyword with caution. The safest approach after adding a nonlinear unit definition is to run @w{@command{units --check}} and confirm that there are no actual errors before adding the @samp{noerror} keyword. @node Defining Unit List Aliases @section Defining Unit List Aliases @cindex defining unit list aliases @cindex unit list aliases, defining @cindex @samp{!unitlist} @cindex command, @samp{!unitlist} Unit list aliases are treated differently from unit definitions, because they are a data entry shorthand rather than a true definition for a new unit. A unit list alias definition begins with @samp{!unitlist} and includes the alias and the definition; for example, the aliases included in the standard units data file are @example @group !unitlist hms hr;min;sec !unitlist time year;day;hr;min;sec !unitlist dms deg;arcmin;arcsec !unitlist ftin ft;in;1|8 in !unitlist usvol cup;3|4 cup;2|3 cup;1|2 cup;1|3 cup;1|4 cup;\ tbsp;tsp;1|2 tsp;1|4 tsp;1|8 tsp @end group @end example @noindent Unit list aliases are only for unit lists, so the definition must include a @samp{;}. Unit list aliases can never be combined with units or other unit list aliases, so the definition of @samp{time} shown above could @emph{not} have been shortened to @samp{year;day;hms}. As usual, be sure to run @w{@command{units --check}} to ensure that the units listed in unit list aliases are conformable. @node Numeric Output Format @chapter Numeric Output Format @cindex numeric output format @cindex output format @menu * Format Specification:: The output format specification * Flags:: Optional format flags * Field Width:: Specifying output field width * Precision:: Specifying output precision @end menu By default, @code{units} shows results to eight significant digits. You can change this with the @option{--exponential}, @option{--digits}, and @option{--output-format} options. The first sets an exponential format (i.e., scientific notation) like that used in the original Unix @command{units} program, the second allows you to specify a different number of significant digits, and the last allows you to control the output appearance using the format for the @code{printf()} function in the C programming language. If you only want to change the number of significant digits or specify exponential format type, use the @option{--digits} and @option{--exponential} options. The @option{--output-format} option affords the greatest control of the output appearance, but requires at least rudimentary knowledge of the @code{printf()} format syntax. @xref{Invoking Units}, for descriptions of these options. @node Format Specification @section Format Specification @cindex output format specification @cindex format specification, output The format specification recognized with the @option{--output-format} option is a subset of that for @code{printf()}. The format specification has the form @c noman @code{%}[@i{flags}][@i{width}][@code{.}@i{precision}]@i{type}; @c end noman @c ifman @ignore .\".CW "%\fR[\fP\fIflags\fP\fR][\fP\fIwidth\fP\fR][\fP.\fIprecision\fP\fR]\fP\fItype\fP" ; @code{%}[@i{flags}][@i{width}][\c @code{.}@i{precision}]@i{type}; @end ignore @c end ifman it must begin with @samp{%}, and must end with a floating-point type specifier: @samp{g} or @samp{G} to specify the number of significant digits, @samp{e} or @samp{E} for scientific notation, and @samp{f} for fixed-point decimal. The ISO C99 standard added the @samp{F} type for fixed-point decimal and the @samp{a} and @samp{A} types for hexadecimal floating point; these types are allowed with compilers that support them. Type length modifiers (e.g., @samp{L} to indicate a long double) are inapplicable and are not allowed. The default format for @command{units} is @samp{%.8g}; for greater precision, you could specify @samp{-o@tie{}%.15g}. The @samp{g} and @samp{G} format types use exponential format whenever the exponent would be less than @minus{}4, so the value 0.000013 displays as @samp{1.3e-005}. These types also use exponential notation when the exponent is greater than or equal to the precision, so with the default format, the value @c @tex $5\times 10^7$ @end tex @ifnottex @c noman 5e7 @c end noman @c man .if t .ig ++ @c man 5e7 @c man .++ @c man .if n .ig ++ @c man .EQ @c man 5 times 10 sup 7 @c man .EN @c man .++ @end ifnottex displays as @samp{50000000} and the value @tex $5\times 10^8$ @end tex @ifnottex @c noman 5e8 @c end noman @c man .if t .ig ++ @c man 5e8 @c man .++ @c man .if n .ig ++ @c man .EQ @c man 5 times 10 sup 8 @c man .EN @c man .++ @end ifnottex displays as @samp{5e+008}. If you prefer fixed-point display, you might specify @samp{-o@tie{}%.8f}; however, small numbers will display very few significant digits, and values less than @tex $0.5\times10^{-8}$ @end tex @ifnottex @c noman 0.5e@minus{}8 @c end noman @c man .if t .ig ++ @c man 0.5e\-8 @c man .++ @c man .if n .ig ++ @c man .EQ @c man 0.5 times 10 sup -8 @c man .EN @c man .++ @end ifnottex will show nothing but zeros. The format specification may include one or more optional flags: @samp{+}, @samp{@tie{}} (space), @samp{#}, @samp{-}, or @samp{0} (the digit zero). The digit-grouping flag @c noman @set codequoteundirected @samp{'} (apostrophe) @clear codequoteundirected @c end noman @c if the troff formatter is groff, ensure an ASCII single quote @c man .ie \n(.g .CQ "\(aq" @c man .el .CQ "'" is allowed with compilers that support it. Flags are followed by an optional value for the minimum field width, and an optional precision specification that begins with a period (e.g., @samp{.6}). The field width includes the digits, decimal point, the exponent, thousands separators (with the digit-grouping flag), and the sign if any of these are shown. @node Flags @section Flags @cindex output format flags @cindex flags, output format The @samp{+} flag causes the output to have a sign (@samp{+} or @samp{-}). The space flag @samp{@tie{}} is similar to the @samp{+} flag, except that when the value is positive, it is prefixed with a space rather than a plus sign; this flag is ignored if the @samp{+} flag is also given. The @samp{+} or @samp{@tie{}} flag could be useful if conversions might include positive and negative results, and you wanted to align the decimal points in exponential notation. @c The @samp{#} flag causes the output value to contain a decimal point in all cases; by default, the output contains a decimal point only if there are digits (which can be trailing zeros) to the right of the point. With the @samp{g} or @samp{G} types, the @samp{#} flag also prevents the suppression of trailing zeros. @c The digit-grouping flag @c noman @set codequoteundirected @samp{'} @clear codequoteundirected @c end noman @c if the troff formatter is groff, ensure an ASCII single quote @c man .ie \n(.g .CQ "\(aq" @c man .el .CQ "'" shows a thousands separator in digits to the left of the decimal point. @c (e.g., @samp{1,234.56}). This can be useful when displaying large numbers in fixed-point decimal; for example, with the format @samp{%f}, @example You have: mile You want: microfurlong * 8000000.000000 / 0.000000 @end example @noindent the magnitude of the first result may not be immediately obvious without counting the digits to the left of the decimal point. If the thousands separator is the comma (@samp{,}), the output with the format @c noman @set codequoteundirected @samp{%'f} @clear codequoteundirected @c end noman @c if the troff formatter is groff, ensure an ASCII single quote @c man .ie \n(.g .CQ "%\(aqf" @c man .el .CQ "%'f" might be @example You have: mile You want: microfurlong * 8,000,000.000000 / 0.000000 @end example @noindent making the magnitude readily apparent. Unfortunately, few compilers support the digit-grouping flag. @c With the @samp{-} flag, the output value is left aligned within the specified field width. If a field width greater than needed to show the output value is specified, the @samp{0} (zero) flag causes the output value to be left padded with zeros until the specified field width is reached; for example, with the format @samp{%011.6f}, @example You have: troypound You want: grain * 5760.000000 / 0000.000174 @end example @noindent The @samp{0} flag has no effect if the @samp{-} (left align) flag is given. @node Field Width @section Field Width @cindex output field width By default, the output value is left aligned and shown with the minimum width necessary for the specified (or default) precision. If a field width greater than this is specified, the value shown is right aligned, and padded on the left with enough spaces to provide the specified field width. A width specification is typically used with fixed-point decimal to have columns of numbers align at the decimal point; this arguably is less useful with @command{units} than with long columnar output, but it may nonetheless assist in quickly assessing the relative magnitudes of results. For example, with the format @samp{%12.6f}, @example @group You have: km You want: in * 39370.078740 / 0.000025 @end group @group You have: km You want: rod * 198.838782 / 0.005029 @end group @group You have: km You want: furlong * 4.970970 / 0.201168 @end group @end example @node Precision @section Precision @cindex output precision @cindex precision, output The meaning of ``precision'' depends on the format type. With @samp{g} or @samp{G}, it specifies the number of significant digits (like the @option{--digits} option); with @samp{e}, @samp{E}, @samp{f}, or @samp{F}, it specifies the maximum number of digits to be shown after the decimal point. @c With the @samp{g} and @samp{G} format types, trailing zeros are suppressed, so the results may sometimes have fewer digits than the specified precision (as indicated above, the @samp{#} flag causes trailing zeros to be displayed). The default precision is 6, so @samp{%g} is equivalent to @samp{%.6g}, and would show the output to six significant digits. Similarly, @samp{%e} or @samp{%f} would show the output with six digits after the decimal point. The C @code{printf()} function allows a precision of arbitrary size, whether or not all of the digits are meaningful. With most compilers, the maximum internal precision with @command{units} is 15 decimal digits (or 13 hexadecimal digits). With the @option{--digits} option, you are limited to the maximum internal precision; with the @option{--output-format} option, you may specify a precision greater than this, but it may not be meaningful. In some cases, specifying excess precision can result in rounding artifacts. For example, a pound is exactly 7000 grains, but with the format @samp{%.18g}, the output might be @example You have: pound You want: grain * 6999.9999999999991 / 0.00014285714285714287 @end example @noindent With the format @samp{%.25g} you might get the following: @example You have: 1/3 You want: Definition: 0.333333333333333314829616256247 @end example @noindent In this case the displayed value includes a series of digits that represent the underlying binary floating-point approximation to 1/3 but are not meaningful for the desired computation. In general, the result with excess precision is system dependent. @c The precision affects only the @emph{display} of numbers; if a result relies on physical constants that are not known to the specified precision, the number of physically meaningful digits may be less than the number of digits shown. See the documentation for @code{printf()} for more detailed descriptions of the format specification. The @option{--output-format} option is incompatible with the @option{--exponential} or @option{--digits} options; if the former is given in combination with either of the latter, the format is controlled by the last option given. @node Localization @chapter Localization @cindex environment dependent definitions @cindex localization @cindex @samp{!locale} @cindex command, @samp{!locale} @cindex @samp{!endlocale} @cindex command, @samp{!endlocale} @cindex command, @samp{!endvar} @cindex command, @samp{!var} @cindex command, @samp{!varnot} @cindex command, @samp{!set} @cindex command, @samp{!message} @menu * Locale:: What is a locale? * Additional Localization:: When the locale isn't enough @end menu Some units have different values in different locations. The localization feature accommodates this by allowing a units data file to specify definitions that depend on the user's locale. @node Locale @section Locale @cindex locale A locale is a subset of a user's environment that indicates the user's language and country, and some attendant preferences, such as the formatting of dates. The @command{units} program attempts to determine the locale from the POSIX setlocale function; if this cannot be done, @command{units} examines the environment variables @env{LC_CTYPE} and @env{LANG}. On POSIX systems, a locale is of the form @var{language}@code{_}@var{country}, where @var{language} is the two-character code from ISO 639-1 and @var{country} is the two-character code from ISO 3166-1; @var{language} is lower case and @var{country} is upper case. For example, the POSIX locale for the United Kingdom is @code{en_GB}. @cindex @file{locale_map.txt} @cindex setlocale function On systems running Microsoft Windows, the value returned by setlocale() is different from that on POSIX systems; @command{units} attempts to map the Windows value to a POSIX value by means of a table in the file @file{locale_map.txt} in the same directory as the other data files. The file includes entries for many combinations of language and country, and can be extended to include other combinations. The @file{locale_map.txt} file comprises two tab-separated columns; each entry is of the form @display @var{Windows-locale}@ @ @ @var{POSIX-locale} @end display @noindent where @var{POSIX-locale} is as described above, and @var{Windows-locale} typically spells out both the language and country. For example, the entry for the United States is @example English_United States en_US @end example @noindent You can force @command{units} to run in a desired locale by using the @option{-l} option. In order to create unit definitions for a particular locale you begin a block of definitions in a unit datafile with @samp{!locale} followed by a locale name. The @samp{!} must be the first character on the line. The @command{units} program reads the following definitions only if the current locale matches. You end the block of localized units with @samp{!endlocale}. Here is an example, which defines the British gallon. @example @group !locale en_GB gallon 4.54609 liter !endlocale @end group @end example @node Additional Localization @section Additional Localization Sometimes the locale isn't sufficient to determine unit preferences. There could be regional preferences, or a company could have specific preferences. Though probably uncommon, such differences could arise with the choice of English customary units outside of English-speaking countries. To address this, @command{units} allows specifying definitions that depend on environment variable settings. The environment variables can be controled based on the current locale, or the user can set them to force a particular group of definitions. A conditional block of definitions in a units data file begins with either @samp{!var} or @samp{!varnot} following by an environment variable name and then a space separated list of values. The leading @samp{!} must appear in the first column of a units data file, and the conditional block is terminated by @samp{!endvar}. Definitions in blocks beginning with @samp{!var} are executed only if the environment variable is exactly equal to one of the listed values. Definitions in blocks beginning with @samp{!varnot} are executed only if the environment variable does @emph{not} equal any of the list values. The inch has long been a customary measure of length in many places. The word comes from the latin @emph{uncia} meaning ``one twelfth,'' referring to its relationship with the foot. By the 20th century, the inch was officially defined in English-speaking countries relative to the yard, but until 1959, the yard differed slightly among those countries. In France the customary inch, which was displaced in 1799 by the meter, had a different length based on a french foot. These customary definitions could be accommodated as follows: @example @group !var INCH_UNIT usa yard 3600|3937 m !endvar @end group @group !var INCH_UNIT canada yard 0.9144 meter !endvar @end group @group !var INCH_UNIT uk yard 0.91439841 meter !endvar @end group @group !var INCH_UNIT canada uk usa foot 1|3 yard inch 1|12 foot !endvar @end group @group !var INCH_UNIT france foot 144|443.296 m inch 1|12 foot line 1|12 inch !endvar @end group @group !varnot INCH_UNIT usa uk france canada !message Unknown value for INCH_UNIT !endvar @end group @end example @noindent When @command{units} reads the above definitions it will check the environment variable @env{INCH_UNIT} and load only the definitions for the appropriate section. If @env{INCH_UNIT} is unset or is not set to one of the four values listed then @command{units} will run the last block. In this case that block uses the @samp{!message} command to display a warning message. Alternatively that block could set default values. In order to create default values that are overridden by user settings the data file can use the @samp{!set} command, which sets an environment variable @emph{only if it is not already set}; these settings are only for the current @command{units} invocation and do not persist. So if the example above were preceded by @samp{!set INCH_UNIT france} then this would make @samp{france} the default value for @env{INCH_UNIT}. If the user had set the variable in the environment before invoking @command{units}, then @command{units} would use the user's value. To link these settings to the user's locale you combine the @samp{!set} command with the @samp{!locale} command. If you wanted to combine the above example with suitable locales you could do by @emph{preceding} the above definition with the following: @example @group !locale en_US !set INCH_UNIT usa !endlocale !locale en_GB !set INCH_UNIT uk !endlocale !locale en_CA !set INCH_UNIT canada !endlocale !locale fr_FR !set INCH_UNIT france !endlocale !set INCH_UNIT france @end group @end example @noindent These definitions set the overall default for @env{INCH_UNIT} to @samp{france} and set default values for four locales appropriately. The overall default setting comes last so that it only applies when @env{INCH_UNIT} was not set by one of the other commands or by the user. If the variable given after @samp{!var} or @samp{!varnot} is undefined then @command{units} prints an error message and ignores the definitions that follow. Use @samp{!set} to create defaults to prevent this situation from arising. The @option{-c} option only checks the definitions that are active for the current environment and locale, so when adding new definitions take care to check that all cases give rise to a well defined set of definitions. @node Environment Vars @chapter Environment Variables @cindex environment variables The @command{units} program uses the following environment variables: @table @env @item HOME @cindex HOME environment variable @cindex environment variable, HOME Specifies the location of your home directory; it is used by @command{units} to find a personal units data file @samp{.units}. On systems running Microsoft Windows, the file is @samp{unitdef.units}, and if @env{HOME} does not exist, @command{units} tries to determine your home directory from the @env{HOMEDRIVE} and @env{HOMEPATH} environment variables; if these variables do not exist, units finally tries @env{USERPROFILE}---typically @file{C:\Users\@var{username}} (Windows Vista and Windows@tie{}7) or @w{@file{C:\Documents and Settings\@var{username}}} (Windows@tie{}XP). @item LC_CTYPE, LANG @cindex LANG environment variable @cindex LC_CTYPE environment variable @cindex environment variable, LANG @cindex environment variable, LC_CTYPE Checked to determine the locale if @command{units} cannot obtain it from the operating system. Sections of the standard units data file are specific to certain locales. @item MYUNITSFILE @cindex MYUNITSFILE environment variable @cindex environment variable, MYUNITSFILE Specifies your personal units data file. If this variable exists, @command{units} uses its value rather than searching your home directory for @samp{.units}. The personal units file will not be loaded if any data files are given using the @option{-f} option. @item PAGER @cindex PAGER environment variable @cindex environment variable, PAGER @cindex help Specifies the pager to use for help and for displaying the conformable units. The help function browses the units database and calls the pager using the @samp{+n}@var{n} syntax for specifying a line number. The default pager is @command{more}; @env{PAGER} can be used to specify alternatives such as @command{less}, @command{pg}, @command{emacs}, or @command{vi}. @item UNITS_ENGLISH @cindex UNITS_ENGLISH environment variable @cindex environment variable, UNITS_ENGLISH Set to either @samp{US} or @samp{GB} to choose United States or British volume definitions, overriding the default from your locale. @item UNITSFILE @cindex UNITSFILE environment variable @cindex environment variable, UNITSFILE Specifies the units data file to use (instead of the default). You can only specify a single units data file using this environment variable. If units data files are given using the @option{-f} option, the file specified by @env{UNITSFILE} will be not be loaded unless the @option{-f} option is given with the empty string (@w{@samp{units -f ""}}). @item UNITSLOCALEMAP @cindex UNITSLOCALEMAP environment variable @cindex environment variable, UNITSLOCALEMAP Windows only; this variable has no effect on Unix-like systems. Specifies the units locale map file to use (instead of the default). This variable seldom needs to be set, but you can use it to ensure that the locale map file will be found if you specify a location for the units data file using either the @option{-f} option or the @env{UNITSFILE} environment variable, and that location does not also contain the locale map file. @end table @node Data Files @chapter Data Files @cindex files, data @cindex data files The @command{units} program uses two default data files: @file{definitions.units} and @file{currency.units}. The program can also use an optional personal units data file @file{.units} (@file{unitdef.units} under Windows) located in the user's home directory. The personal units data file is described in more detail in @ref{Units Data Files}. On Unix-like systems, the data files are typically located in @file{/usr/share/units} if @command{units} is provided with the operating system, or in @file{/usr/local/share/units} if @command{units} is compiled from the source distribution. On systems running Microsoft Windows, the files may be in the same locations if Unix-like commands are available, a Unix-like file structure is present (e.g., @file{C:/usr/local}), and @command{units} is compiled from the source distribution. If Unix-like commands are not available, a more common location is @w{@file{C:\Program Files (x86)\GNU\units}} (for 64-bit Windows installations) or @w{@file{C:\Program Files\GNU\units}} (for 32-bit installations). If @command{units} is obtained from the GNU Win32 Project (@uref{http://gnuwin32.sourceforge.net/}), the files are commonly in @w{@file{C:\Program Files\GnuWin32\share\units}}. If the default units data file is not an absolute pathname, @command{units} will look for the file in the directory that contains the @command{units} program; if the file is not found there, @command{units} will look in a directory @code{../share/units} relative to the directory with the @command{units} program. You can determine the location of the files by running @w{@command{units --version}}. Running @w{@command{units --info}} will give you additional information about the files, how @command{units} will attempt to find them, and the status of the related environment variables. @node Unicode Support @chapter Unicode Support @cindex Unicode support @cindex UTF-8 @cindex @samp{!utf8} @cindex command, @samp{!utf8} @cindex @samp{!endutf8} @cindex command, @samp{!endutf8} The standard units data file is in Unicode, using UTF-8 encoding. Most definitions use only ASCII characters (i.e., code points U+0000 through U+007F); definitions using non-ASCII characters appear in blocks beginning with @samp{!utf8} and ending with @samp{!endutf8}. When @command{units} starts, it checks the locale to determine the character set. If @command{units} is compiled with Unicode support and definitions; otherwise these definitions are ignored. When Unicode support is active, @command{units} will check every line of all of the units data files for invalid or non-printing UTF-8 sequences; if such sequences occur, @command{units} ignores the entire line. In addition to checking validity, @command{units} determines the display width of non-ASCII characters to ensure proper positioning of the pointer in some error messages and to align columns for the @samp{search} and @samp{?} commands. At present, @command{units} does not support Unicode under Microsoft Windows. The UTF-16 and UTF-32 encodings are not supported on any systems. If definitions that contain non-ASCII characters are added to a units data file, those definitions should be enclosed within @samp{!utf8} @dots{} @samp{!endutf8} to ensure that they are only loaded when Unicode support is available. As usual, the @samp{!} must appear as the first character on the line. As discussed in @ref{Units Data Files}, it's usually best to put such definitions in supplemental data files linked by an @samp{!include} command or in a personal units data file. When Unicode support is not active, @command{units} makes no assumptions about character encoding, except that characters in the range 00--7F hexadecimal correspond to ASCII encoding. Non-ASCII characters are simply sequences of bytes, and have no special meanings; for definitions in supplementary units data files, you can use any encoding consistent with this assumption. For example, if you wish to use non-ASCII characters in definitions when running @command{units} under Windows, you can use a character set such as Windows ``ANSI'' (code page 1252 in the US and Western Europe). You can even use UTF-8, though some messages may be improperly aligned, and @command{units} will not detect invalid UTF-8 sequences. If you use UTF-8 encoding when Unicode support is not active, you should place any definitions with non-ASCII characters @emph{outside} @samp{!utf8} @dots{} @samp{!endutf8} blocks---otherwise, they will be ignored. Typeset material other than code examples usually uses the Unicode minus (U+2212) rather than the ASCII hyphen-minus operator (U+002D) used in @command{units}; the figure dash (U+2012) and en dash (U+2013) are also occasionally used. To allow such material to be copied and pasted for interactive use or in units data files, @command{units} converts these characters to U+002D before further processing. Because of this, none of these characters can appear in unit names. @node Readline Support @chapter Readline Support @cindex @command{readline}, use with @command{units} If the @command{readline} package has been compiled in, then when @command{units} is used interactively, numerous command line editing features are available. To check if your version of @command{units} includes @command{readline}, invoke the program with the @option{--version} option. For complete information about @command{readline}, consult the documentation for the @command{readline} package. Without any configuration, @command{units} will allow editing in the style of emacs. Of particular use with @command{units} are the completion commands. @cindex @samp{?} for unit completion with @command{readline} @cindex unit completion using @samp{?} (@command{readline} only) @cindex completion, unit, using @samp{?} (@command{readline} only) If you type a few characters and then hit @key{ESC} followed by @kbd{?} then @command{units} will display a list of all the units that start with the characters typed. For example, if you type @kbd{metr} and then request completion, you will see something like this: @cindex unit name completion @example @group You have: metr metre metriccup metrichorsepower metrictenth metretes metricfifth metricounce metricton metriccarat metricgrain metricquart metricyarncount You have: metr @end group @end example @noindent If there is a unique way to complete a unitname, you can hit the @key{TAB} key and @command{units} will provide the rest of the unit name. If @command{units} beeps, it means that there is no unique completion. Pressing the @key{TAB} key a second time will print the list of all completions. The readline library also keeps a history of the values you enter. You can move through this history using the up and down arrows. The history is saved to the file @file{.units_history} in your home directory so that it will persist across multiple @command{units} invocations. If you wish to keep work for a certain project separate you can change the history filename using the @option{--history} option. You could, for example, make an alias for @command{units} to @command{units --history .units_history} so that @command{units} would save separate history in the current directory. The length of each history file is limited to 5000 lines. Note also that if you run several concurrent copies of @command{units} each one will save its new history to the history file upon exit. @node Currency @chapter Updating Currency Exchange Rates @cindex currency, updating @cindex exchange rates, updating The units program includes currency exchange rates and prices for some precious metals in the database. Of course, these values change over time, sometimes very rapidly, and @command{units} cannot provide real time values. To update the exchange rates run the @command{units_cur}, which rewrites the files containing the currency rates, typically @file{/usr/share/units/currency.units}. This program requires @command{python}, and must be run with suitable permissions to write the file. To keep the rates updated automatically, run it using a cron job on a Unix-like system, or a similar scheduling program on a different system. Currency exchange rates are taken from Yahoo (@uref{http://finance.yahoo.com}) and precious metals pricing from Packetizer (@uref{www.packetizer.com}). These sites update once per day, so there is no benefit in running the update script more often than daily. You can run @command{units_cur} with a filename specified on the command line and it will write the data to that file. If you give @samp{-} for the file it will write to standard output. @node Database Syntax @chapter Database Command Syntax @cindex database syntax summary @cindex syntax of units database @cindex commands in units database @table @t @item @var{unit} @var{definition} Define a regular unit. @item @var{prefix}- @var{definition} Define a prefix. @item @var{funcname}(@var{var}) noerror units=[@var{in-units},@var{out-units}] domain=[@var{x1},@var{x2}] range=[@var{y1},@var{y2}] @var{definition(var)} ; @var{inverse(funcname)} Define a nonlinear unit or unit function. The four optional keywords @command{noerror}, @command{units=}, @command{range=} and @command{domain=} can appear in any order. The definition of the inverse is optional. @item @var{tabname}[@var{out-units}] noerror @var{pair-list} Define a piecewise linear unit. The pair list gives the points on the table listed in ascending order. The @command{noerror} keyword is optional. @item !endlocale End a block of definitions beginning with @samp{!locale} @item !endutf8 End a block of definitions begun with @samp{!utf8} @item !endvar End a block of definitions begun with @samp{!var} or @samp{!varnot} @item !include @var{file} Include the specified file. @item !locale @var{value} Load the following definitions only of the locale is set to @var{value}. @item !message @var{text} Display @var{text} when the database is read unless the quiet option (@option{-q}) is enabled. @item !set @var{variable} @var{value} Sets the environment variable, @var{variable}, to the specified value @emph{only if} it is not already set. @item !unitlist @var{alias} @var{definition} Define a unit list alias. @item !utf8 Load the following definitions only if @command{units} is running with UTF-8 enabled. @item !var @var{envar} @var{value-list} Load the block of definitions that follows only if the environment variable @var{envar} is set to one of the values listed in the space-separated value list. If @var{envar} is not set, @command{units} prints an error message and ignores the block of definitions. @item !varnot @var{envar} @var{value-list} Load the block of definitions that follows only if the environment variable @var{envar} is set to value that is @emph{not} listed in the space-separated value list. If @var{envar} is not set, @command{units} prints an error message and ignores the block of definitions. @end table @node GNU Free Documentation License @chapter GNU Free Documentation License @include fdl-1.3.texi @node Index @unnumbered Index @printindex cp @bye @c man .SH FILES @c man @DATAFILE@ \(em the standard units data file @c man .SH AUTHOR units-2.16/parse.tab.c0000664000175000017500000017740713163524352014133 0ustar adrianadrian/* A Bison parser, made by GNU Bison 3.0.4. */ /* Bison implementation for Yacc-like parsers in C Copyright (C) 1984, 1989-1990, 2000-2015 Free Software Foundation, Inc. This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ /* As a special exception, you may create a larger work that contains part or all of the Bison parser skeleton and distribute that work under terms of your choice, so long as that work isn't itself a parser generator using the skeleton or a modified version thereof as a parser skeleton. Alternatively, if you modify or redistribute the parser skeleton itself, you may (at your option) remove this special exception, which will cause the skeleton and the resulting Bison output files to be licensed under the GNU General Public License without this special exception. This special exception was added by the Free Software Foundation in version 2.2 of Bison. */ /* C LALR(1) parser skeleton written by Richard Stallman, by simplifying the original so-called "semantic" parser. */ /* All symbols defined below should begin with yy or YY, to avoid infringing on user name space. This should be done even for local variables, as they might otherwise be expanded by user macros. There are some unavoidable exceptions within include files to define necessary library symbols; they are noted "INFRINGES ON USER NAME SPACE" below. */ /* Identify Bison output. */ #define YYBISON 1 /* Bison version. */ #define YYBISON_VERSION "3.0.4" /* Skeleton name. */ #define YYSKELETON_NAME "yacc.c" /* Pure parsers. */ #define YYPURE 2 /* Push parsers. */ #define YYPUSH 0 /* Pull parsers. */ #define YYPULL 1 /* Substitute the type names. */ #define YYSTYPE UNITSSTYPE /* Substitute the variable and function names. */ #define yyparse unitsparse #define yylex unitslex #define yyerror unitserror #define yydebug unitsdebug #define yynerrs unitsnerrs /* Copy the first part of user declarations. */ #line 24 "parse.y" /* yacc.c:339 */ #include #include "units.h" struct commtype { int location; const char *data; struct unittype *result; int errorcode; }; static int err; /* value used by parser to store return values */ /* The CHECK macro aborts parse if an error has occurred. It optionally destroys a variable. Call with CHECK(0) if no variables need destruction on error. */ #define CHECK(var) if (err) { comm->errorcode=err; \ if (var) destroyunit(var); \ YYABORT; } int yylex(); void yyerror(struct commtype *comm, char *); #define MAXMEM 100 int unitcount=0; /* Counts the number of units allocated by the parser */ struct function { char *name; double (*func)(double); int type; }; #define DIMENSIONLESS 0 #define ANGLEIN 1 #define ANGLEOUT 2 struct unittype * getnewunit() { struct unittype *unit; if (unitcount>=MAXMEM) return 0; unit = (struct unittype *) mymalloc(sizeof(struct unittype),"(getnewunit)"); if (!unit) return 0; initializeunit(unit); unitcount++; return unit; } void destroyunit(struct unittype *unit) { freeunit(unit); free(unit); unitcount--; } struct unittype * makenumunit(double num,int *myerr) { struct unittype *ret; ret=getnewunit(); if (!ret){ *myerr = E_PARSEMEM; return 0; } ret->factor = num; *myerr = 0; return ret; } double logb2(double x) { return log(x)/log(2.0); } int funcunit(struct unittype *theunit, struct function const *fun) { struct unittype angleunit; if (fun->type==ANGLEIN){ err=unit2num(theunit); if (err==E_NOTANUMBER){ initializeunit(&angleunit); angleunit.denominator[0] = dupstr("radian"); angleunit.denominator[1] = 0; err = multunit(theunit, &angleunit); freeunit(&angleunit); if (!err) err = unit2num(theunit); } if (err) return err; } else if (fun->type==ANGLEOUT || fun->type == DIMENSIONLESS) { if ((err=unit2num(theunit))) return err; } else return E_BADFUNCTYPE; errno = 0; theunit->factor = (*(fun->func))(theunit->factor); if (errno) return E_FUNC; if (fun->type==ANGLEOUT) { theunit->numerator[0] = dupstr("radian"); theunit->numerator[1] = 0; } return 0; } #line 198 "parse.tab.c" /* yacc.c:339 */ # ifndef YY_NULLPTR # if defined __cplusplus && 201103L <= __cplusplus # define YY_NULLPTR nullptr # else # define YY_NULLPTR 0 # endif # endif /* Enabling verbose error messages. */ #ifdef YYERROR_VERBOSE # undef YYERROR_VERBOSE # define YYERROR_VERBOSE 1 #else # define YYERROR_VERBOSE 0 #endif /* Debug traces. */ #ifndef UNITSDEBUG # if defined YYDEBUG #if YYDEBUG # define UNITSDEBUG 1 # else # define UNITSDEBUG 0 # endif # else /* ! defined YYDEBUG */ # define UNITSDEBUG 0 # endif /* ! defined YYDEBUG */ #endif /* ! defined UNITSDEBUG */ #if UNITSDEBUG extern int unitsdebug; #endif /* Token type. */ #ifndef UNITSTOKENTYPE # define UNITSTOKENTYPE enum unitstokentype { REAL = 258, UNIT = 259, REALFUNC = 260, UNITFUNC = 261, EXPONENT = 262, MULTIPLY = 263, MULTSTAR = 264, DIVIDE = 265, NUMDIV = 266, SQRT = 267, CUBEROOT = 268, MULTMINUS = 269, EOL = 270, FUNCINV = 271, MEMERROR = 272, BADNUMBER = 273, UNITEND = 274, LASTUNSET = 275, ADD = 276, MINUS = 277, UNARY = 278 }; #endif /* Value type. */ #if ! defined UNITSSTYPE && ! defined UNITSSTYPE_IS_DECLARED union UNITSSTYPE { #line 154 "parse.y" /* yacc.c:355 */ double number; int integer; struct unittype *unit; struct function *realfunc; struct func *unitfunc; #line 275 "parse.tab.c" /* yacc.c:355 */ }; typedef union UNITSSTYPE UNITSSTYPE; # define UNITSSTYPE_IS_TRIVIAL 1 # define UNITSSTYPE_IS_DECLARED 1 #endif int unitsparse (struct commtype *comm); /* Copy the second part of user declarations. */ #line 291 "parse.tab.c" /* yacc.c:358 */ #ifdef short # undef short #endif #ifdef YYTYPE_UINT8 typedef YYTYPE_UINT8 yytype_uint8; #else typedef unsigned char yytype_uint8; #endif #ifdef YYTYPE_INT8 typedef YYTYPE_INT8 yytype_int8; #else typedef signed char yytype_int8; #endif #ifdef YYTYPE_UINT16 typedef YYTYPE_UINT16 yytype_uint16; #else typedef unsigned short int yytype_uint16; #endif #ifdef YYTYPE_INT16 typedef YYTYPE_INT16 yytype_int16; #else typedef short int yytype_int16; #endif #ifndef YYSIZE_T # ifdef __SIZE_TYPE__ # define YYSIZE_T __SIZE_TYPE__ # elif defined size_t # define YYSIZE_T size_t # elif ! defined YYSIZE_T # include /* INFRINGES ON USER NAME SPACE */ # define YYSIZE_T size_t # else # define YYSIZE_T unsigned int # endif #endif #define YYSIZE_MAXIMUM ((YYSIZE_T) -1) #ifndef YY_ # if defined YYENABLE_NLS && YYENABLE_NLS # if ENABLE_NLS # include /* INFRINGES ON USER NAME SPACE */ # define YY_(Msgid) dgettext ("bison-runtime", Msgid) # endif # endif # ifndef YY_ # define YY_(Msgid) Msgid # endif #endif #ifndef YY_ATTRIBUTE # if (defined __GNUC__ \ && (2 < __GNUC__ || (__GNUC__ == 2 && 96 <= __GNUC_MINOR__))) \ || defined __SUNPRO_C && 0x5110 <= __SUNPRO_C # define YY_ATTRIBUTE(Spec) __attribute__(Spec) # else # define YY_ATTRIBUTE(Spec) /* empty */ # endif #endif #ifndef YY_ATTRIBUTE_PURE # define YY_ATTRIBUTE_PURE YY_ATTRIBUTE ((__pure__)) #endif #ifndef YY_ATTRIBUTE_UNUSED # define YY_ATTRIBUTE_UNUSED YY_ATTRIBUTE ((__unused__)) #endif #if !defined _Noreturn \ && (!defined __STDC_VERSION__ || __STDC_VERSION__ < 201112) # if defined _MSC_VER && 1200 <= _MSC_VER # define _Noreturn __declspec (noreturn) # else # define _Noreturn YY_ATTRIBUTE ((__noreturn__)) # endif #endif /* Suppress unused-variable warnings by "using" E. */ #if ! defined lint || defined __GNUC__ # define YYUSE(E) ((void) (E)) #else # define YYUSE(E) /* empty */ #endif #if defined __GNUC__ && 407 <= __GNUC__ * 100 + __GNUC_MINOR__ /* Suppress an incorrect diagnostic about yylval being uninitialized. */ # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN \ _Pragma ("GCC diagnostic push") \ _Pragma ("GCC diagnostic ignored \"-Wuninitialized\"")\ _Pragma ("GCC diagnostic ignored \"-Wmaybe-uninitialized\"") # define YY_IGNORE_MAYBE_UNINITIALIZED_END \ _Pragma ("GCC diagnostic pop") #else # define YY_INITIAL_VALUE(Value) Value #endif #ifndef YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN # define YY_IGNORE_MAYBE_UNINITIALIZED_END #endif #ifndef YY_INITIAL_VALUE # define YY_INITIAL_VALUE(Value) /* Nothing. */ #endif #if ! defined yyoverflow || YYERROR_VERBOSE /* The parser invokes alloca or malloc; define the necessary symbols. */ # ifdef YYSTACK_USE_ALLOCA # if YYSTACK_USE_ALLOCA # ifdef __GNUC__ # define YYSTACK_ALLOC __builtin_alloca # elif defined __BUILTIN_VA_ARG_INCR # include /* INFRINGES ON USER NAME SPACE */ # elif defined _AIX # define YYSTACK_ALLOC __alloca # elif defined _MSC_VER # include /* INFRINGES ON USER NAME SPACE */ # define alloca _alloca # else # define YYSTACK_ALLOC alloca # if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS # include /* INFRINGES ON USER NAME SPACE */ /* Use EXIT_SUCCESS as a witness for stdlib.h. */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # endif # endif # endif # ifdef YYSTACK_ALLOC /* Pacify GCC's 'empty if-body' warning. */ # define YYSTACK_FREE(Ptr) do { /* empty */; } while (0) # ifndef YYSTACK_ALLOC_MAXIMUM /* The OS might guarantee only one guard page at the bottom of the stack, and a page size can be as small as 4096 bytes. So we cannot safely invoke alloca (N) if N exceeds 4096. Use a slightly smaller number to allow for a few compiler-allocated temporary stack slots. */ # define YYSTACK_ALLOC_MAXIMUM 4032 /* reasonable circa 2006 */ # endif # else # define YYSTACK_ALLOC YYMALLOC # define YYSTACK_FREE YYFREE # ifndef YYSTACK_ALLOC_MAXIMUM # define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM # endif # if (defined __cplusplus && ! defined EXIT_SUCCESS \ && ! ((defined YYMALLOC || defined malloc) \ && (defined YYFREE || defined free))) # include /* INFRINGES ON USER NAME SPACE */ # ifndef EXIT_SUCCESS # define EXIT_SUCCESS 0 # endif # endif # ifndef YYMALLOC # define YYMALLOC malloc # if ! defined malloc && ! defined EXIT_SUCCESS void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */ # endif # endif # ifndef YYFREE # define YYFREE free # if ! defined free && ! defined EXIT_SUCCESS void free (void *); /* INFRINGES ON USER NAME SPACE */ # endif # endif # endif #endif /* ! defined yyoverflow || YYERROR_VERBOSE */ #if (! defined yyoverflow \ && (! defined __cplusplus \ || (defined UNITSSTYPE_IS_TRIVIAL && UNITSSTYPE_IS_TRIVIAL))) /* A type that is properly aligned for any stack member. */ union yyalloc { yytype_int16 yyss_alloc; YYSTYPE yyvs_alloc; }; /* The size of the maximum gap between one aligned stack and the next. */ # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1) /* The size of an array large to enough to hold all stacks, each with N elements. */ # define YYSTACK_BYTES(N) \ ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \ + YYSTACK_GAP_MAXIMUM) # define YYCOPY_NEEDED 1 /* Relocate STACK from its old location to the new one. The local variables YYSIZE and YYSTACKSIZE give the old and new number of elements in the stack, and YYPTR gives the new location of the stack. Advance YYPTR to a properly aligned location for the next stack. */ # define YYSTACK_RELOCATE(Stack_alloc, Stack) \ do \ { \ YYSIZE_T yynewbytes; \ YYCOPY (&yyptr->Stack_alloc, Stack, yysize); \ Stack = &yyptr->Stack_alloc; \ yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \ yyptr += yynewbytes / sizeof (*yyptr); \ } \ while (0) #endif #if defined YYCOPY_NEEDED && YYCOPY_NEEDED /* Copy COUNT objects from SRC to DST. The source and destination do not overlap. */ # ifndef YYCOPY # if defined __GNUC__ && 1 < __GNUC__ # define YYCOPY(Dst, Src, Count) \ __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src))) # else # define YYCOPY(Dst, Src, Count) \ do \ { \ YYSIZE_T yyi; \ for (yyi = 0; yyi < (Count); yyi++) \ (Dst)[yyi] = (Src)[yyi]; \ } \ while (0) # endif # endif #endif /* !YYCOPY_NEEDED */ /* YYFINAL -- State number of the termination state. */ #define YYFINAL 34 /* YYLAST -- Last index in YYTABLE. */ #define YYLAST 179 /* YYNTOKENS -- Number of terminals. */ #define YYNTOKENS 26 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 7 /* YYNRULES -- Number of rules. */ #define YYNRULES 35 /* YYNSTATES -- Number of states. */ #define YYNSTATES 59 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned by yylex, with out-of-bounds checking. */ #define YYUNDEFTOK 2 #define YYMAXUTOK 278 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) /* YYTRANSLATE[TOKEN-NUM] -- Symbol number corresponding to TOKEN-NUM as returned by yylex, without out-of-bounds checking. */ static const yytype_uint8 yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 24, 25, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23 }; #if UNITSDEBUG /* YYRLINE[YYN] -- Source line where rule number YYN was defined. */ static const yytype_uint16 yyrline[] = { 0, 199, 199, 201, 202, 205, 206, 209, 210, 211, 212, 214, 217, 219, 221, 225, 226, 229, 235, 236, 237, 239, 241, 243, 244, 245, 246, 247, 248, 249, 252, 255, 256, 257, 258, 259 }; #endif #if UNITSDEBUG || YYERROR_VERBOSE || 0 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM. First, the terminals, then, starting at YYNTOKENS, nonterminals. */ static const char *const yytname[] = { "$end", "error", "$undefined", "REAL", "UNIT", "REALFUNC", "UNITFUNC", "EXPONENT", "MULTIPLY", "MULTSTAR", "DIVIDE", "NUMDIV", "SQRT", "CUBEROOT", "MULTMINUS", "EOL", "FUNCINV", "MEMERROR", "BADNUMBER", "UNITEND", "LASTUNSET", "ADD", "MINUS", "UNARY", "'('", "')'", "$accept", "input", "unitexpr", "expr", "numexpr", "pexpr", "list", YY_NULLPTR }; #endif # ifdef YYPRINT /* YYTOKNUM[NUM] -- (External) token number corresponding to the (internal) symbol number NUM (which must be that of a token). */ static const yytype_uint16 yytoknum[] = { 0, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 40, 41 }; # endif #define YYPACT_NINF -18 #define yypact_value_is_default(Yystate) \ (!!((Yystate) == (-18))) #define YYTABLE_NINF -1 #define yytable_value_is_error(Yytable_value) \ 0 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ static const yytype_int16 yypact[] = { 45, -18, -18, -18, -17, -17, 155, -17, -17, 155, -18, 9, -18, -18, -18, -18, 155, 67, 8, -1, 90, 16, -18, 89, -18, -18, 89, -18, -18, 89, -18, -17, 89, 10, -18, -18, 67, 67, 67, 67, 67, 18, 111, 155, 133, -18, -18, -18, 21, 21, 2, 2, -18, 155, 155, 23, 133, 23, 23 }; /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM. Performed when YYTABLE does not specify something else to do. Zero means the default is an error. */ static const yytype_uint8 yydefact[] = { 0, 4, 15, 19, 0, 0, 0, 0, 0, 0, 2, 0, 32, 31, 33, 34, 0, 0, 0, 0, 5, 18, 23, 7, 26, 27, 6, 24, 25, 8, 35, 0, 9, 0, 1, 3, 0, 0, 0, 0, 0, 0, 0, 0, 22, 28, 17, 13, 14, 12, 10, 11, 16, 0, 0, 20, 21, 29, 30 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int8 yypgoto[] = { -18, -18, -18, -14, -8, -3, 0 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int8 yydefgoto[] = { -1, 18, 19, 20, 21, 22, 44 }; /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule whose number is the opposite. If YYTABLE_NINF, syntax error. */ static const yytype_uint8 yytable[] = { 23, 24, 25, 33, 27, 28, 26, 17, 34, 29, 36, 37, 38, 30, 35, 31, 32, 23, 36, 37, 38, 2, 47, 48, 49, 50, 51, 41, 45, 36, 42, 39, 40, 52, 0, 46, 23, 23, 23, 23, 23, 0, 55, 56, 0, 0, 1, 0, 2, 3, 4, 5, 0, 57, 58, 6, 0, 7, 8, 9, 10, 11, 12, 13, 14, 15, 0, 16, 0, 17, 2, 3, 4, 5, 0, 0, 0, 0, 0, 7, 8, 9, 0, 11, 12, 13, 14, 15, 0, 16, 0, 17, 2, 3, 4, 5, 42, 0, 36, 37, 38, 7, 8, 43, 0, 11, 12, 13, 14, 15, 0, 39, 40, 17, 2, 3, 4, 5, 0, 0, 0, 0, 0, 7, 8, 53, 0, 11, 12, 13, 14, 15, 0, 54, 0, 17, 2, 3, 4, 5, 42, 0, 0, 0, 0, 7, 8, 0, 0, 11, 12, 13, 14, 15, 0, 0, 0, 17, 2, 3, 4, 5, 0, 0, 0, 0, 0, 7, 8, 0, 0, 11, 12, 13, 14, 15, 0, 0, 0, 17 }; static const yytype_int8 yycheck[] = { 0, 4, 5, 17, 7, 8, 6, 24, 0, 9, 8, 9, 10, 4, 15, 6, 16, 17, 8, 9, 10, 3, 36, 37, 38, 39, 40, 11, 31, 8, 7, 21, 22, 41, -1, 25, 36, 37, 38, 39, 40, -1, 42, 43, -1, -1, 1, -1, 3, 4, 5, 6, -1, 53, 54, 10, -1, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, 22, -1, 24, 3, 4, 5, 6, -1, -1, -1, -1, -1, 12, 13, 14, -1, 16, 17, 18, 19, 20, -1, 22, -1, 24, 3, 4, 5, 6, 7, -1, 8, 9, 10, 12, 13, 14, -1, 16, 17, 18, 19, 20, -1, 21, 22, 24, 3, 4, 5, 6, -1, -1, -1, -1, -1, 12, 13, 14, -1, 16, 17, 18, 19, 20, -1, 22, -1, 24, 3, 4, 5, 6, 7, -1, -1, -1, -1, 12, 13, -1, -1, 16, 17, 18, 19, 20, -1, -1, -1, 24, 3, 4, 5, 6, -1, -1, -1, -1, -1, 12, 13, -1, -1, 16, 17, 18, 19, 20, -1, -1, -1, 24 }; /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { 0, 1, 3, 4, 5, 6, 10, 12, 13, 14, 15, 16, 17, 18, 19, 20, 22, 24, 27, 28, 29, 30, 31, 32, 31, 31, 32, 31, 31, 32, 4, 6, 32, 29, 0, 15, 8, 9, 10, 21, 22, 11, 7, 14, 32, 31, 25, 29, 29, 29, 29, 29, 30, 14, 22, 32, 32, 32, 32 }; /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { 0, 26, 27, 27, 27, 28, 28, 29, 29, 29, 29, 29, 29, 29, 29, 30, 30, 31, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 }; /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */ static const yytype_uint8 yyr2[] = { 0, 2, 1, 2, 1, 1, 2, 1, 2, 2, 3, 3, 3, 3, 3, 1, 3, 3, 1, 1, 3, 3, 2, 1, 2, 2, 2, 2, 3, 4, 4, 1, 1, 1, 1, 2 }; #define yyerrok (yyerrstatus = 0) #define yyclearin (yychar = YYEMPTY) #define YYEMPTY (-2) #define YYEOF 0 #define YYACCEPT goto yyacceptlab #define YYABORT goto yyabortlab #define YYERROR goto yyerrorlab #define YYRECOVERING() (!!yyerrstatus) #define YYBACKUP(Token, Value) \ do \ if (yychar == YYEMPTY) \ { \ yychar = (Token); \ yylval = (Value); \ YYPOPSTACK (yylen); \ yystate = *yyssp; \ goto yybackup; \ } \ else \ { \ yyerror (comm, YY_("syntax error: cannot back up")); \ YYERROR; \ } \ while (0) /* Error token number */ #define YYTERROR 1 #define YYERRCODE 256 /* Enable debugging if requested. */ #if UNITSDEBUG # ifndef YYFPRINTF # include /* INFRINGES ON USER NAME SPACE */ # define YYFPRINTF fprintf # endif # define YYDPRINTF(Args) \ do { \ if (yydebug) \ YYFPRINTF Args; \ } while (0) /* This macro is provided for backward compatibility. */ #ifndef YY_LOCATION_PRINT # define YY_LOCATION_PRINT(File, Loc) ((void) 0) #endif # define YY_SYMBOL_PRINT(Title, Type, Value, Location) \ do { \ if (yydebug) \ { \ YYFPRINTF (stderr, "%s ", Title); \ yy_symbol_print (stderr, \ Type, Value, comm); \ YYFPRINTF (stderr, "\n"); \ } \ } while (0) /*----------------------------------------. | Print this symbol's value on YYOUTPUT. | `----------------------------------------*/ static void yy_symbol_value_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct commtype *comm) { FILE *yyo = yyoutput; YYUSE (yyo); YYUSE (comm); if (!yyvaluep) return; # ifdef YYPRINT if (yytype < YYNTOKENS) YYPRINT (yyoutput, yytoknum[yytype], *yyvaluep); # endif YYUSE (yytype); } /*--------------------------------. | Print this symbol on YYOUTPUT. | `--------------------------------*/ static void yy_symbol_print (FILE *yyoutput, int yytype, YYSTYPE const * const yyvaluep, struct commtype *comm) { YYFPRINTF (yyoutput, "%s %s (", yytype < YYNTOKENS ? "token" : "nterm", yytname[yytype]); yy_symbol_value_print (yyoutput, yytype, yyvaluep, comm); YYFPRINTF (yyoutput, ")"); } /*------------------------------------------------------------------. | yy_stack_print -- Print the state stack from its BOTTOM up to its | | TOP (included). | `------------------------------------------------------------------*/ static void yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop) { YYFPRINTF (stderr, "Stack now"); for (; yybottom <= yytop; yybottom++) { int yybot = *yybottom; YYFPRINTF (stderr, " %d", yybot); } YYFPRINTF (stderr, "\n"); } # define YY_STACK_PRINT(Bottom, Top) \ do { \ if (yydebug) \ yy_stack_print ((Bottom), (Top)); \ } while (0) /*------------------------------------------------. | Report that the YYRULE is going to be reduced. | `------------------------------------------------*/ static void yy_reduce_print (yytype_int16 *yyssp, YYSTYPE *yyvsp, int yyrule, struct commtype *comm) { unsigned long int yylno = yyrline[yyrule]; int yynrhs = yyr2[yyrule]; int yyi; YYFPRINTF (stderr, "Reducing stack by rule %d (line %lu):\n", yyrule - 1, yylno); /* The symbols being reduced. */ for (yyi = 0; yyi < yynrhs; yyi++) { YYFPRINTF (stderr, " $%d = ", yyi + 1); yy_symbol_print (stderr, yystos[yyssp[yyi + 1 - yynrhs]], &(yyvsp[(yyi + 1) - (yynrhs)]) , comm); YYFPRINTF (stderr, "\n"); } } # define YY_REDUCE_PRINT(Rule) \ do { \ if (yydebug) \ yy_reduce_print (yyssp, yyvsp, Rule, comm); \ } while (0) /* Nonzero means print parse trace. It is left uninitialized so that multiple parsers can coexist. */ int yydebug; #else /* !UNITSDEBUG */ # define YYDPRINTF(Args) # define YY_SYMBOL_PRINT(Title, Type, Value, Location) # define YY_STACK_PRINT(Bottom, Top) # define YY_REDUCE_PRINT(Rule) #endif /* !UNITSDEBUG */ /* YYINITDEPTH -- initial size of the parser's stacks. */ #ifndef YYINITDEPTH # define YYINITDEPTH 200 #endif /* YYMAXDEPTH -- maximum size the stacks can grow to (effective only if the built-in stack extension method is used). Do not make this value too large; the results are undefined if YYSTACK_ALLOC_MAXIMUM < YYSTACK_BYTES (YYMAXDEPTH) evaluated with infinite-precision integer arithmetic. */ #ifndef YYMAXDEPTH # define YYMAXDEPTH 10000 #endif #if YYERROR_VERBOSE # ifndef yystrlen # if defined __GLIBC__ && defined _STRING_H # define yystrlen strlen # else /* Return the length of YYSTR. */ static YYSIZE_T yystrlen (const char *yystr) { YYSIZE_T yylen; for (yylen = 0; yystr[yylen]; yylen++) continue; return yylen; } # endif # endif # ifndef yystpcpy # if defined __GLIBC__ && defined _STRING_H && defined _GNU_SOURCE # define yystpcpy stpcpy # else /* Copy YYSRC to YYDEST, returning the address of the terminating '\0' in YYDEST. */ static char * yystpcpy (char *yydest, const char *yysrc) { char *yyd = yydest; const char *yys = yysrc; while ((*yyd++ = *yys++) != '\0') continue; return yyd - 1; } # endif # endif # ifndef yytnamerr /* Copy to YYRES the contents of YYSTR after stripping away unnecessary quotes and backslashes, so that it's suitable for yyerror. The heuristic is that double-quoting is unnecessary unless the string contains an apostrophe, a comma, or backslash (other than backslash-backslash). YYSTR is taken from yytname. If YYRES is null, do not copy; instead, return the length of what the result would have been. */ static YYSIZE_T yytnamerr (char *yyres, const char *yystr) { if (*yystr == '"') { YYSIZE_T yyn = 0; char const *yyp = yystr; for (;;) switch (*++yyp) { case '\'': case ',': goto do_not_strip_quotes; case '\\': if (*++yyp != '\\') goto do_not_strip_quotes; /* Fall through. */ default: if (yyres) yyres[yyn] = *yyp; yyn++; break; case '"': if (yyres) yyres[yyn] = '\0'; return yyn; } do_not_strip_quotes: ; } if (! yyres) return yystrlen (yystr); return yystpcpy (yyres, yystr) - yyres; } # endif /* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message about the unexpected token YYTOKEN for the state stack whose top is YYSSP. Return 0 if *YYMSG was successfully written. Return 1 if *YYMSG is not large enough to hold the message. In that case, also set *YYMSG_ALLOC to the required number of bytes. Return 2 if the required number of bytes is too large to store. */ static int yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg, yytype_int16 *yyssp, int yytoken) { YYSIZE_T yysize0 = yytnamerr (YY_NULLPTR, yytname[yytoken]); YYSIZE_T yysize = yysize0; enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 }; /* Internationalized format string. */ const char *yyformat = YY_NULLPTR; /* Arguments of yyformat. */ char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM]; /* Number of reported tokens (one for the "unexpected", one per "expected"). */ int yycount = 0; /* There are many possibilities here to consider: - If this state is a consistent state with a default action, then the only way this function was invoked is if the default action is an error action. In that case, don't check for expected tokens because there are none. - The only way there can be no lookahead present (in yychar) is if this state is a consistent state with a default action. Thus, detecting the absence of a lookahead is sufficient to determine that there is no unexpected or expected token to report. In that case, just report a simple "syntax error". - Don't assume there isn't a lookahead just because this state is a consistent state with a default action. There might have been a previous inconsistent state, consistent state with a non-default action, or user semantic action that manipulated yychar. - Of course, the expected token list depends on states to have correct lookahead information, and it depends on the parser not to perform extra reductions after fetching a lookahead from the scanner and before detecting a syntax error. Thus, state merging (from LALR or IELR) and default reductions corrupt the expected token list. However, the list is correct for canonical LR with one exception: it will still contain any token that will not be accepted due to an error action in a later state. */ if (yytoken != YYEMPTY) { int yyn = yypact[*yyssp]; yyarg[yycount++] = yytname[yytoken]; if (!yypact_value_is_default (yyn)) { /* Start YYX at -YYN if negative to avoid negative indexes in YYCHECK. In other words, skip the first -YYN actions for this state because they are default actions. */ int yyxbegin = yyn < 0 ? -yyn : 0; /* Stay within bounds of both yycheck and yytname. */ int yychecklim = YYLAST - yyn + 1; int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS; int yyx; for (yyx = yyxbegin; yyx < yyxend; ++yyx) if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR && !yytable_value_is_error (yytable[yyx + yyn])) { if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM) { yycount = 1; yysize = yysize0; break; } yyarg[yycount++] = yytname[yyx]; { YYSIZE_T yysize1 = yysize + yytnamerr (YY_NULLPTR, yytname[yyx]); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; yysize = yysize1; } } } } switch (yycount) { # define YYCASE_(N, S) \ case N: \ yyformat = S; \ break YYCASE_(0, YY_("syntax error")); YYCASE_(1, YY_("syntax error, unexpected %s")); YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s")); YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s")); YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s")); YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s")); # undef YYCASE_ } { YYSIZE_T yysize1 = yysize + yystrlen (yyformat); if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM)) return 2; yysize = yysize1; } if (*yymsg_alloc < yysize) { *yymsg_alloc = 2 * yysize; if (! (yysize <= *yymsg_alloc && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM)) *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM; return 1; } /* Avoid sprintf, as that infringes on the user's name space. Don't have undefined behavior even if the translation produced a string with the wrong number of "%s"s. */ { char *yyp = *yymsg; int yyi = 0; while ((*yyp = *yyformat) != '\0') if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount) { yyp += yytnamerr (yyp, yyarg[yyi++]); yyformat += 2; } else { yyp++; yyformat++; } } return 0; } #endif /* YYERROR_VERBOSE */ /*-----------------------------------------------. | Release the memory associated to this symbol. | `-----------------------------------------------*/ static void yydestruct (const char *yymsg, int yytype, YYSTYPE *yyvaluep, struct commtype *comm) { YYUSE (yyvaluep); YYUSE (comm); if (!yymsg) yymsg = "Deleting"; YY_SYMBOL_PRINT (yymsg, yytype, yyvaluep, yylocationp); YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN switch (yytype) { case 4: /* UNIT */ #line 187 "parse.y" /* yacc.c:1257 */ { destroyunit(((*yyvaluep).unit));} #line 1170 "parse.tab.c" /* yacc.c:1257 */ break; case 28: /* unitexpr */ #line 187 "parse.y" /* yacc.c:1257 */ { destroyunit(((*yyvaluep).unit));} #line 1176 "parse.tab.c" /* yacc.c:1257 */ break; case 29: /* expr */ #line 187 "parse.y" /* yacc.c:1257 */ { destroyunit(((*yyvaluep).unit));} #line 1182 "parse.tab.c" /* yacc.c:1257 */ break; case 31: /* pexpr */ #line 187 "parse.y" /* yacc.c:1257 */ { destroyunit(((*yyvaluep).unit));} #line 1188 "parse.tab.c" /* yacc.c:1257 */ break; case 32: /* list */ #line 187 "parse.y" /* yacc.c:1257 */ { destroyunit(((*yyvaluep).unit));} #line 1194 "parse.tab.c" /* yacc.c:1257 */ break; default: break; } YY_IGNORE_MAYBE_UNINITIALIZED_END } /*----------. | yyparse. | `----------*/ int yyparse (struct commtype *comm) { /* The lookahead symbol. */ int yychar; /* The semantic value of the lookahead symbol. */ /* Default value used for initialization, for pacifying older GCCs or non-GCC compilers. */ YY_INITIAL_VALUE (static YYSTYPE yyval_default;) YYSTYPE yylval YY_INITIAL_VALUE (= yyval_default); /* Number of syntax errors so far. */ int yynerrs; int yystate; /* Number of tokens to shift before error messages enabled. */ int yyerrstatus; /* The stacks and their tools: 'yyss': related to states. 'yyvs': related to semantic values. Refer to the stacks through separate pointers, to allow yyoverflow to reallocate them elsewhere. */ /* The state stack. */ yytype_int16 yyssa[YYINITDEPTH]; yytype_int16 *yyss; yytype_int16 *yyssp; /* The semantic value stack. */ YYSTYPE yyvsa[YYINITDEPTH]; YYSTYPE *yyvs; YYSTYPE *yyvsp; YYSIZE_T yystacksize; int yyn; int yyresult; /* Lookahead token as an internal (translated) token number. */ int yytoken = 0; /* The variables used to return semantic value and location from the action routines. */ YYSTYPE yyval; #if YYERROR_VERBOSE /* Buffer for error messages, and its allocated size. */ char yymsgbuf[128]; char *yymsg = yymsgbuf; YYSIZE_T yymsg_alloc = sizeof yymsgbuf; #endif #define YYPOPSTACK(N) (yyvsp -= (N), yyssp -= (N)) /* The number of symbols on the RHS of the reduced rule. Keep to zero when no symbol should be popped. */ int yylen = 0; yyssp = yyss = yyssa; yyvsp = yyvs = yyvsa; yystacksize = YYINITDEPTH; YYDPRINTF ((stderr, "Starting parse\n")); yystate = 0; yyerrstatus = 0; yynerrs = 0; yychar = YYEMPTY; /* Cause a token to be read. */ goto yysetstate; /*------------------------------------------------------------. | yynewstate -- Push a new state, which is found in yystate. | `------------------------------------------------------------*/ yynewstate: /* In all cases, when you get here, the value and location stacks have just been pushed. So pushing a state here evens the stacks. */ yyssp++; yysetstate: *yyssp = yystate; if (yyss + yystacksize - 1 <= yyssp) { /* Get the current used size of the three stacks, in elements. */ YYSIZE_T yysize = yyssp - yyss + 1; #ifdef yyoverflow { /* Give user a chance to reallocate the stack. Use copies of these so that the &'s don't force the real ones into memory. */ YYSTYPE *yyvs1 = yyvs; yytype_int16 *yyss1 = yyss; /* Each stack pointer address is followed by the size of the data in use in that stack, in bytes. This used to be a conditional around just the two extra args, but that might be undefined if yyoverflow is a macro. */ yyoverflow (YY_("memory exhausted"), &yyss1, yysize * sizeof (*yyssp), &yyvs1, yysize * sizeof (*yyvsp), &yystacksize); yyss = yyss1; yyvs = yyvs1; } #else /* no yyoverflow */ # ifndef YYSTACK_RELOCATE goto yyexhaustedlab; # else /* Extend the stack our own way. */ if (YYMAXDEPTH <= yystacksize) goto yyexhaustedlab; yystacksize *= 2; if (YYMAXDEPTH < yystacksize) yystacksize = YYMAXDEPTH; { yytype_int16 *yyss1 = yyss; union yyalloc *yyptr = (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize)); if (! yyptr) goto yyexhaustedlab; YYSTACK_RELOCATE (yyss_alloc, yyss); YYSTACK_RELOCATE (yyvs_alloc, yyvs); # undef YYSTACK_RELOCATE if (yyss1 != yyssa) YYSTACK_FREE (yyss1); } # endif #endif /* no yyoverflow */ yyssp = yyss + yysize - 1; yyvsp = yyvs + yysize - 1; YYDPRINTF ((stderr, "Stack size increased to %lu\n", (unsigned long int) yystacksize)); if (yyss + yystacksize - 1 <= yyssp) YYABORT; } YYDPRINTF ((stderr, "Entering state %d\n", yystate)); if (yystate == YYFINAL) YYACCEPT; goto yybackup; /*-----------. | yybackup. | `-----------*/ yybackup: /* Do appropriate processing given the current state. Read a lookahead token if we need one and don't already have one. */ /* First try to decide what to do without reference to lookahead token. */ yyn = yypact[yystate]; if (yypact_value_is_default (yyn)) goto yydefault; /* Not known => get a lookahead token if don't already have one. */ /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol. */ if (yychar == YYEMPTY) { YYDPRINTF ((stderr, "Reading a token: ")); yychar = yylex (&yylval, comm); } if (yychar <= YYEOF) { yychar = yytoken = YYEOF; YYDPRINTF ((stderr, "Now at end of input.\n")); } else { yytoken = YYTRANSLATE (yychar); YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc); } /* If the proper action on seeing token YYTOKEN is to reduce or to detect an error, take that action. */ yyn += yytoken; if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken) goto yydefault; yyn = yytable[yyn]; if (yyn <= 0) { if (yytable_value_is_error (yyn)) goto yyerrlab; yyn = -yyn; goto yyreduce; } /* Count tokens shifted since error; after three, turn off error status. */ if (yyerrstatus) yyerrstatus--; /* Shift the lookahead token. */ YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc); /* Discard the shifted token. */ yychar = YYEMPTY; yystate = yyn; YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END goto yynewstate; /*-----------------------------------------------------------. | yydefault -- do the default action for the current state. | `-----------------------------------------------------------*/ yydefault: yyn = yydefact[yystate]; if (yyn == 0) goto yyerrlab; goto yyreduce; /*-----------------------------. | yyreduce -- Do a reduction. | `-----------------------------*/ yyreduce: /* yyn is the number of a rule to reduce with. */ yylen = yyr2[yyn]; /* If YYLEN is nonzero, implement the default value of the action: '$$ = $1'. Otherwise, the following line sets YYVAL to garbage. This behavior is undocumented and Bison users should not rely upon it. Assigning to YYVAL unconditionally makes the parser a bit smaller, and it avoids a GCC warning that YYVAL may be used uninitialized. */ yyval = yyvsp[1-yylen]; YY_REDUCE_PRINT (yyn); switch (yyn) { case 2: #line 199 "parse.y" /* yacc.c:1646 */ { comm->result = makenumunit(1,&err); CHECK(0); comm->errorcode = 0; YYACCEPT; } #line 1463 "parse.tab.c" /* yacc.c:1646 */ break; case 3: #line 201 "parse.y" /* yacc.c:1646 */ { comm->result = (yyvsp[-1].unit); comm->errorcode = 0; YYACCEPT; } #line 1469 "parse.tab.c" /* yacc.c:1646 */ break; case 4: #line 202 "parse.y" /* yacc.c:1646 */ { YYABORT; } #line 1475 "parse.tab.c" /* yacc.c:1646 */ break; case 5: #line 205 "parse.y" /* yacc.c:1646 */ { (yyval.unit) = (yyvsp[0].unit);} #line 1481 "parse.tab.c" /* yacc.c:1646 */ break; case 6: #line 206 "parse.y" /* yacc.c:1646 */ { invertunit((yyvsp[0].unit)); (yyval.unit)=(yyvsp[0].unit);} #line 1487 "parse.tab.c" /* yacc.c:1646 */ break; case 7: #line 209 "parse.y" /* yacc.c:1646 */ { (yyval.unit) = (yyvsp[0].unit); } #line 1493 "parse.tab.c" /* yacc.c:1646 */ break; case 8: #line 210 "parse.y" /* yacc.c:1646 */ { (yyval.unit) = (yyvsp[0].unit); (yyval.unit)->factor *= -1; } #line 1499 "parse.tab.c" /* yacc.c:1646 */ break; case 9: #line 211 "parse.y" /* yacc.c:1646 */ { (yyval.unit) = (yyvsp[0].unit); (yyval.unit)->factor *= -1; } #line 1505 "parse.tab.c" /* yacc.c:1646 */ break; case 10: #line 212 "parse.y" /* yacc.c:1646 */ { err = addunit((yyvsp[-2].unit),(yyvsp[0].unit)); destroyunit((yyvsp[0].unit)); CHECK((yyvsp[-2].unit));(yyval.unit)=(yyvsp[-2].unit);} #line 1512 "parse.tab.c" /* yacc.c:1646 */ break; case 11: #line 214 "parse.y" /* yacc.c:1646 */ { (yyvsp[0].unit)->factor *= -1; err = addunit((yyvsp[-2].unit),(yyvsp[0].unit)); destroyunit((yyvsp[0].unit)); CHECK((yyvsp[-2].unit));(yyval.unit)=(yyvsp[-2].unit);} #line 1520 "parse.tab.c" /* yacc.c:1646 */ break; case 12: #line 217 "parse.y" /* yacc.c:1646 */ { err = divunit((yyvsp[-2].unit), (yyvsp[0].unit)); destroyunit((yyvsp[0].unit)); CHECK((yyvsp[-2].unit));(yyval.unit)=(yyvsp[-2].unit);} #line 1527 "parse.tab.c" /* yacc.c:1646 */ break; case 13: #line 219 "parse.y" /* yacc.c:1646 */ { err = multunit((yyvsp[-2].unit),(yyvsp[0].unit)); destroyunit((yyvsp[0].unit)); CHECK((yyvsp[-2].unit));(yyval.unit)=(yyvsp[-2].unit);} #line 1534 "parse.tab.c" /* yacc.c:1646 */ break; case 14: #line 221 "parse.y" /* yacc.c:1646 */ { err = multunit((yyvsp[-2].unit),(yyvsp[0].unit)); destroyunit((yyvsp[0].unit)); CHECK((yyvsp[-2].unit));(yyval.unit)=(yyvsp[-2].unit);} #line 1541 "parse.tab.c" /* yacc.c:1646 */ break; case 15: #line 225 "parse.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[0].number); } #line 1547 "parse.tab.c" /* yacc.c:1646 */ break; case 16: #line 226 "parse.y" /* yacc.c:1646 */ { (yyval.number) = (yyvsp[-2].number) / (yyvsp[0].number); } #line 1553 "parse.tab.c" /* yacc.c:1646 */ break; case 17: #line 229 "parse.y" /* yacc.c:1646 */ { (yyval.unit) = (yyvsp[-1].unit); } #line 1559 "parse.tab.c" /* yacc.c:1646 */ break; case 18: #line 235 "parse.y" /* yacc.c:1646 */ { (yyval.unit) = makenumunit((yyvsp[0].number),&err); CHECK(0);} #line 1565 "parse.tab.c" /* yacc.c:1646 */ break; case 19: #line 236 "parse.y" /* yacc.c:1646 */ { (yyval.unit) = (yyvsp[0].unit); } #line 1571 "parse.tab.c" /* yacc.c:1646 */ break; case 20: #line 237 "parse.y" /* yacc.c:1646 */ { err = unitpower((yyvsp[-2].unit),(yyvsp[0].unit));destroyunit((yyvsp[0].unit)); CHECK((yyvsp[-2].unit));(yyval.unit)=(yyvsp[-2].unit);} #line 1578 "parse.tab.c" /* yacc.c:1646 */ break; case 21: #line 239 "parse.y" /* yacc.c:1646 */ { err = multunit((yyvsp[-2].unit),(yyvsp[0].unit)); destroyunit((yyvsp[0].unit)); CHECK((yyvsp[-2].unit));(yyval.unit)=(yyvsp[-2].unit);} #line 1585 "parse.tab.c" /* yacc.c:1646 */ break; case 22: #line 241 "parse.y" /* yacc.c:1646 */ { err = multunit((yyvsp[-1].unit),(yyvsp[0].unit)); destroyunit((yyvsp[0].unit)); CHECK((yyvsp[-1].unit));(yyval.unit)=(yyvsp[-1].unit);} #line 1592 "parse.tab.c" /* yacc.c:1646 */ break; case 23: #line 243 "parse.y" /* yacc.c:1646 */ { (yyval.unit)=(yyvsp[0].unit); } #line 1598 "parse.tab.c" /* yacc.c:1646 */ break; case 24: #line 244 "parse.y" /* yacc.c:1646 */ { err = rootunit((yyvsp[0].unit),2); CHECK((yyvsp[0].unit)); (yyval.unit)=(yyvsp[0].unit);} #line 1604 "parse.tab.c" /* yacc.c:1646 */ break; case 25: #line 245 "parse.y" /* yacc.c:1646 */ { err = rootunit((yyvsp[0].unit),3); CHECK((yyvsp[0].unit)); (yyval.unit)=(yyvsp[0].unit);} #line 1610 "parse.tab.c" /* yacc.c:1646 */ break; case 26: #line 246 "parse.y" /* yacc.c:1646 */ { err = funcunit((yyvsp[0].unit),(yyvsp[-1].realfunc));CHECK((yyvsp[0].unit)); (yyval.unit)=(yyvsp[0].unit);} #line 1616 "parse.tab.c" /* yacc.c:1646 */ break; case 27: #line 247 "parse.y" /* yacc.c:1646 */ { err = evalfunc((yyvsp[0].unit),(yyvsp[-1].unitfunc),0,0); CHECK((yyvsp[0].unit));(yyval.unit)=(yyvsp[0].unit);} #line 1622 "parse.tab.c" /* yacc.c:1646 */ break; case 28: #line 248 "parse.y" /* yacc.c:1646 */ { err = evalfunc((yyvsp[0].unit),(yyvsp[-1].unitfunc),1,0); CHECK((yyvsp[0].unit));(yyval.unit)=(yyvsp[0].unit);} #line 1628 "parse.tab.c" /* yacc.c:1646 */ break; case 29: #line 250 "parse.y" /* yacc.c:1646 */ { (yyvsp[0].unit)->factor *= -1; err = unitpower((yyvsp[-3].unit),(yyvsp[0].unit)); destroyunit((yyvsp[0].unit));CHECK((yyvsp[-3].unit));(yyval.unit)=(yyvsp[-3].unit);} #line 1635 "parse.tab.c" /* yacc.c:1646 */ break; case 30: #line 253 "parse.y" /* yacc.c:1646 */ { (yyvsp[0].unit)->factor *= -1; err = unitpower((yyvsp[-3].unit),(yyvsp[0].unit)); destroyunit((yyvsp[0].unit));CHECK((yyvsp[-3].unit));(yyval.unit)=(yyvsp[-3].unit);} #line 1642 "parse.tab.c" /* yacc.c:1646 */ break; case 31: #line 255 "parse.y" /* yacc.c:1646 */ { err = E_BADNUM; CHECK(0); } #line 1648 "parse.tab.c" /* yacc.c:1646 */ break; case 32: #line 256 "parse.y" /* yacc.c:1646 */ { err = E_PARSEMEM; CHECK(0); } #line 1654 "parse.tab.c" /* yacc.c:1646 */ break; case 33: #line 257 "parse.y" /* yacc.c:1646 */ { err = E_UNITEND; CHECK(0); } #line 1660 "parse.tab.c" /* yacc.c:1646 */ break; case 34: #line 258 "parse.y" /* yacc.c:1646 */ { err = E_LASTUNSET;CHECK(0); } #line 1666 "parse.tab.c" /* yacc.c:1646 */ break; case 35: #line 259 "parse.y" /* yacc.c:1646 */ { err = E_NOTAFUNC; CHECK((yyvsp[0].unit));} #line 1672 "parse.tab.c" /* yacc.c:1646 */ break; #line 1676 "parse.tab.c" /* yacc.c:1646 */ default: break; } /* User semantic actions sometimes alter yychar, and that requires that yytoken be updated with the new translation. We take the approach of translating immediately before every use of yytoken. One alternative is translating here after every semantic action, but that translation would be missed if the semantic action invokes YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or if it invokes YYBACKUP. In the case of YYABORT or YYACCEPT, an incorrect destructor might then be invoked immediately. In the case of YYERROR or YYBACKUP, subsequent parser actions might lead to an incorrect destructor call or verbose syntax error message before the lookahead is translated. */ YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); *++yyvsp = yyval; /* Now 'shift' the result of the reduction. Determine what state that goes to, based on the state we popped back to and the rule number reduced by. */ yyn = yyr1[yyn]; yystate = yypgoto[yyn - YYNTOKENS] + *yyssp; if (0 <= yystate && yystate <= YYLAST && yycheck[yystate] == *yyssp) yystate = yytable[yystate]; else yystate = yydefgoto[yyn - YYNTOKENS]; goto yynewstate; /*--------------------------------------. | yyerrlab -- here on detecting error. | `--------------------------------------*/ yyerrlab: /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar); /* If not already recovering from an error, report this error. */ if (!yyerrstatus) { ++yynerrs; #if ! YYERROR_VERBOSE yyerror (comm, YY_("syntax error")); #else # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \ yyssp, yytoken) { char const *yymsgp = YY_("syntax error"); int yysyntax_error_status; yysyntax_error_status = YYSYNTAX_ERROR; if (yysyntax_error_status == 0) yymsgp = yymsg; else if (yysyntax_error_status == 1) { if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc); if (!yymsg) { yymsg = yymsgbuf; yymsg_alloc = sizeof yymsgbuf; yysyntax_error_status = 2; } else { yysyntax_error_status = YYSYNTAX_ERROR; yymsgp = yymsg; } } yyerror (comm, yymsgp); if (yysyntax_error_status == 2) goto yyexhaustedlab; } # undef YYSYNTAX_ERROR #endif } if (yyerrstatus == 3) { /* If just tried and failed to reuse lookahead token after an error, discard it. */ if (yychar <= YYEOF) { /* Return failure if at end of input. */ if (yychar == YYEOF) YYABORT; } else { yydestruct ("Error: discarding", yytoken, &yylval, comm); yychar = YYEMPTY; } } /* Else will try to reuse lookahead token after shifting the error token. */ goto yyerrlab1; /*---------------------------------------------------. | yyerrorlab -- error raised explicitly by YYERROR. | `---------------------------------------------------*/ yyerrorlab: /* Pacify compilers like GCC when the user code never invokes YYERROR and the label yyerrorlab therefore never appears in user code. */ if (/*CONSTCOND*/ 0) goto yyerrorlab; /* Do not reclaim the symbols of the rule whose action triggered this YYERROR. */ YYPOPSTACK (yylen); yylen = 0; YY_STACK_PRINT (yyss, yyssp); yystate = *yyssp; goto yyerrlab1; /*-------------------------------------------------------------. | yyerrlab1 -- common code for both syntax error and YYERROR. | `-------------------------------------------------------------*/ yyerrlab1: yyerrstatus = 3; /* Each real token shifted decrements this. */ for (;;) { yyn = yypact[yystate]; if (!yypact_value_is_default (yyn)) { yyn += YYTERROR; if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR) { yyn = yytable[yyn]; if (0 < yyn) break; } } /* Pop the current state because it cannot handle the error token. */ if (yyssp == yyss) YYABORT; yydestruct ("Error: popping", yystos[yystate], yyvsp, comm); YYPOPSTACK (1); yystate = *yyssp; YY_STACK_PRINT (yyss, yyssp); } YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN *++yyvsp = yylval; YY_IGNORE_MAYBE_UNINITIALIZED_END /* Shift the error token. */ YY_SYMBOL_PRINT ("Shifting", yystos[yyn], yyvsp, yylsp); yystate = yyn; goto yynewstate; /*-------------------------------------. | yyacceptlab -- YYACCEPT comes here. | `-------------------------------------*/ yyacceptlab: yyresult = 0; goto yyreturn; /*-----------------------------------. | yyabortlab -- YYABORT comes here. | `-----------------------------------*/ yyabortlab: yyresult = 1; goto yyreturn; #if !defined yyoverflow || YYERROR_VERBOSE /*-------------------------------------------------. | yyexhaustedlab -- memory exhaustion comes here. | `-------------------------------------------------*/ yyexhaustedlab: yyerror (comm, YY_("memory exhausted")); yyresult = 2; /* Fall through. */ #endif yyreturn: if (yychar != YYEMPTY) { /* Make sure we have latest lookahead translation. See comments at user semantic actions for why this is necessary. */ yytoken = YYTRANSLATE (yychar); yydestruct ("Cleanup: discarding lookahead", yytoken, &yylval, comm); } /* Do not reclaim the symbols of the rule whose action triggered this YYABORT or YYACCEPT. */ YYPOPSTACK (yylen); YY_STACK_PRINT (yyss, yyssp); while (yyssp != yyss) { yydestruct ("Cleanup: popping", yystos[*yyssp], yyvsp, comm); YYPOPSTACK (1); } #ifndef yyoverflow if (yyss != yyssa) YYSTACK_FREE (yyss); #endif #if YYERROR_VERBOSE if (yymsg != yymsgbuf) YYSTACK_FREE (yymsg); #endif return yyresult; } #line 262 "parse.y" /* yacc.c:1906 */ struct function realfunctions[] = { {"sin", sin, ANGLEIN}, {"cos", cos, ANGLEIN}, {"tan", tan, ANGLEIN}, {"ln", log, DIMENSIONLESS}, {"log", log10, DIMENSIONLESS}, {"log2", logb2, DIMENSIONLESS}, {"exp", exp, DIMENSIONLESS}, {"acos", acos, ANGLEOUT}, {"atan", atan, ANGLEOUT}, {"asin", asin, ANGLEOUT}, {0, 0, 0}}; struct { char op; int value; } optable[] = { {'*', MULTIPLY}, {'/', DIVIDE}, {'|', NUMDIV}, {'+', ADD}, {'(', '('}, {')', ')'}, {'^', EXPONENT}, {'~', FUNCINV}, {0, 0}}; struct { char *name; int value; } strtable[] = { {"sqrt", SQRT}, {"cuberoot", CUBEROOT}, {"per" , DIVIDE}, {0, 0}}; #define LASTUNIT '_' /* Last unit symbol */ int yylex(YYSTYPE *lvalp, struct commtype *comm) { int length, count; struct unittype *output; const char *inptr; char *name; char *nonunitchars = "~;+-*/|\t\n^ ()"; /* Chars not allowed in unit name */ char *nonunitends = ".,_"; /* Can't start or end a unit */ char *number_start = ".,0123456789"; /* Can be first char of a number */ if (comm->location==-1) return 0; inptr = comm->data + comm->location; /* Point to start of data */ /* Skip spaces */ while(*inptr==' ') inptr++, comm->location++; if (*inptr==0) { comm->location = -1; return EOL; /* Return failure if string has ended */ } /* Check for **, an exponent operator. */ if (0==strncmp("**",inptr,2)){ comm->location += 2; return EXPONENT; } /* Check for '-' and '*' which get special handling */ if (*inptr=='-'){ comm->location++; if (parserflags.minusminus) return MINUS; return MULTMINUS; } if (*inptr=='*'){ comm->location++; if (parserflags.oldstar) return MULTIPLY; return MULTSTAR; } /* Check for the "last unit" symbol */ if (*inptr == LASTUNIT) { comm->location++; if (!lastunitset) return LASTUNSET; output = getnewunit(); if (!output) return MEMERROR; unitcopy(output, &lastunit); lvalp->unit = output; return UNIT; } /* Look for single character ops */ for(count=0; optable[count].op; count++){ if (*inptr==optable[count].op) { comm->location++; return optable[count].value; } } /* Look for numbers */ if (strchr(number_start,*inptr)){ /* prevent "nan" from being recognized */ char *endloc; lvalp->number = strtod(inptr, &endloc); if (inptr != endloc) { comm->location += (endloc-inptr); if (*endloc && strchr(number_start,*endloc)) return BADNUMBER; else return REAL; } } /* Look for a word (function name or unit name) */ length = strcspn(inptr,nonunitchars); if (!length){ /* Next char is not a valid unit char */ comm->location++; return 0; } /* Check that unit name doesn't start or end with forbidden chars */ if (strchr(nonunitends,*inptr)){ comm->location++; return 0; } if (strchr(nonunitends, inptr[length-1])){ comm->location+=length; return 0; } name = dupnstr(inptr, length); /* Look for string operators */ for(count=0;strtable[count].name;count++){ if (!strcmp(name,strtable[count].name)){ free(name); comm->location += length; return strtable[count].value; } } /* Look for real function names */ for(count=0;realfunctions[count].name;count++){ if (!strcmp(name,realfunctions[count].name)){ lvalp->realfunc = realfunctions+count; comm->location += length; free(name); return REALFUNC; } } /* Look for function parameter */ if (function_parameter && !strcmp(name,function_parameter)){ free(name); output = getnewunit(); if (!output) return MEMERROR; unitcopy(output, parameter_value); lvalp->unit = output; comm->location += length; return UNIT; } /* Look for user defined function */ lvalp->unitfunc = fnlookup(name); if (lvalp->unitfunc){ comm->location += length; free(name); return UNITFUNC; } /* Didn't find a special string, so treat it as unit name */ comm->location+=length; if (strchr("23456789",inptr[length-1]) && !hassubscript(name)) { /* ends with digit but not a subscript, so do exponent handling like m3 */ count = name[length-1] - '0'; length--; if (strchr(number_start, name[length-1])){ free(name); return UNITEND; } } else count=1; free(name); output = getnewunit(); if (!output) return MEMERROR; output->numerator[count--]=0; for(;count>=0;count--) output->numerator[count] = dupnstr(inptr, length); lvalp->unit=output; return UNIT; } void yyerror(struct commtype *comm, char *s){} int parseunit(struct unittype *output, char const *input,char **errstr,int *errloc) { struct commtype comm; int saveunitcount; saveunitcount = unitcount; initializeunit(output); comm.result = 0; comm.location = 0; comm.data = input; comm.errorcode = E_PARSE; /* Assume parse error */ errno=0; if (yyparse(&comm) || errno){ if (comm.location==-1) comm.location = strlen(input); if (errstr){ if (comm.errorcode==E_FUNC || errno) *errstr = strerror(errno); else *errstr=errormsg[comm.errorcode]; } if (errloc) *errloc = comm.location; if (unitcount!=saveunitcount) fprintf(stderr,"units: Parser leaked memory with error: %d in %d out\n", saveunitcount, unitcount); return comm.errorcode; } else { if (errstr) *errstr = 0; multunit(output,comm.result); destroyunit(comm.result); if (unitcount!=saveunitcount) fprintf(stderr,"units: Parser leaked memory without error: %d in %d out\n", saveunitcount, unitcount); return 0; } } units-2.16/strfunc.c0000664000175000017500000000423110641165333013716 0ustar adrianadrian/* * Copyright (C) 1996 Free Software Foundation, Inc * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ #define NULL 0 #define size_t int #ifdef NO_STRTOK /* Find the first ocurrence in S of any character in ACCEPT. */ char * strpbrk(char *s, char *accept) { while (*s != '\0') if (strchr(accept, *s) == NULL) ++s; else return (char *) s; return NULL; } static char *olds = NULL; char * strtok(char *s, char *delim) { char *token; if (s == NULL) { if (olds == NULL) { /*errno = EINVAL; Wonder where errno is defined....*/ return NULL; } else s = olds; } /* Scan leading delimiters. */ s += strspn(s, delim); if (*s == '\0') { olds = NULL; return NULL; } /* Find the end of the token. */ token = s; s = strpbrk(token, delim); if (s == NULL) /* This token finishes the string. */ olds = NULL; else { /* Terminate the token and make OLDS point past it. */ *s = '\0'; olds = s + 1; } return token; } #endif /* NO_STRTOK */ #ifdef NO_STRSPN /* Return the length of the maximum initial segment of S which contains only characters in ACCEPT. */ size_t strspn(char *s, char *accept) { register char *p; register char *a; register size_t count = 0; for (p = s; *p != '\0'; ++p) { for (a = accept; *a != '\0'; ++a) if (*p == *a) break; if (*a == '\0') return count; else ++count; } return count; } #endif NO_STRSPN units-2.16/UnitsWin.texinfo0000664000175000017500000002476613176223374015271 0ustar adrianadrian\input texinfo @c -*-texinfo-*- @c %**start of header @setfilename UnitsWin.info @finalout @setchapternewpage off @firstparagraphindent none @set EDITION 2 @set VERSION 2.16 @set OSVERSION 10 @set TKVERSION 10.0 @set VSVERSION 2015 @set BUILDDATE @w{19 October} 2017 @c %**end of header @copying This manual is for building GNU @command{units} (version @value{VERSION}) with Microsoft Visual Studio on Microsoft Windows. Copyright @copyright{} 2016--2017 Free Software Foundation, Inc. @end copying @titlepage @title @w{Building and Installing} @w{GNU @command{units}} on @w{Microsoft Windows} with @w{Microsoft Visual Studio} @subtitle Edition @value{EDITION} for @command{units} Version @value{VERSION} @author Jeff Conrad @page @vskip 0pt plus 1filll @insertcopying @end titlepage @contents @iftex @headings off @everyheading Building @command{units} on Windows using Microsoft Visual Studio @| @| @thispage @end iftex @macro label {text} @w{@sansserif{\text\}} @end macro @node Preface @unnumbered Preface This manual covers building and installing GNU @command{units} on Windows, using Microsoft Visual Studio from the Windows command prompt. You may be able to import @file{Makefile.Win} into the Visual Studio IDE, but that is beyond the scope of this document. If you have Unix-like utilities, you may be able to build and install in much the same manner as on most Unix-like systems, perhaps with a few minor adjustments. Versions 2.12 and earlier were built using Microsoft Visual C/C++ 6.0, Visual Studio Express 9.0 and 10.0, and the MKS Toolkit version 9.6 under Windows XP, SP3. Version @value{VERSION} was built using Microsoft Visual Studio @value{VSVERSION} and the MKS Toolkit version @value{TKVERSION} on @w{Windows @value{OSVERSION}}---@pxref{Top,,,UnitsMKS,UnitsMKS} for the details. A Windows binary distribution is available on the project website; the resulting installation is essentially the same as that using @file{Makefile.Win}, and usually can be achieved with less effort. The most recent build was for @command{units} version @value{VERSION}, using Microsoft Visual Studio @value{VSVERSION} on Microsoft Windows Professional @value{OSVERSION} on @value{BUILDDATE}. --- Jeff Conrad (@email{jeff_conrad@@msn.com}) @value{BUILDDATE} @node Building without Unix-Like Utilities @unnumbered Building from the Windows Command Prompt If you have Microsoft Visual Studio but don't have Unix-like utilities, you should be able to build and install @command{units} from the Windows command prompt using @file{Makefile.Win}: @example @group nmake /f Makefile.Win nmake /f Makefile.Win install @end group @end example @noindent The build requires that many environment variables be properly set; the easiest way to do this is to select @label{Developer Command Prompt} in the Visual Studio folder on the Start menu, and then change to the @command{units} source directory. If you install in the default location, you'll probably require elevated privileges; the easiest way to do this is to right-click on @label{Developer Command Prompt} in the Visual Studio folder on the Start menu, and select @label{Run as administrator}. By default, the units executable and data files are placed in the directory given by @code{%ProgramFiles(x86)%\GNU\units}; in most cases, this is @w{@file{C:\Program Files (x86)\GNU\units}}. On a 32-bit Windows system, the directory should be changed to @code{%ProgramFiles%\GNU\units}. You can preview the installation directories with @example nmake /f Makefile.Win showdest @end example @noindent If the destination directories don't exist, they will be created during installation. You can change these locations by editing @file{Makefile.Win}. If you want to run units from a command prompt or from the Start Menu Run box, you can add the installation directory to the @env{PATH} environment variable. Alternatively, you can create a shortcut to the program and place it in a convenient location. @node Icons and File Association @unnumbered Icons and File Association The installation process associates @command{units} data files with the @command{notepad} editor; double-clicking on the file icon opens the file for editing. The installation process makes @file{unitsfile.ico} the default icon for these files. An additional icon file, @file{unitsprog.ico}, is embedded in the executable file as part of the build process; this icon also may be useful if you wish to create a shortcut to the @command{units} program. Both icons are copied to the @command{units} installation directory. @node Currency Definitions Updater @unnumbered Currency Definitions Updater The script @command{units_cur.py} can be used to update currency definitions (if your system hides file extensions, this script will display as @command{units_cur}). The script requires Python (available from @url{https://www.python.org/}). @node Installing Python @unnumberedsec Installing Python If you want to use the currency updater, install Python if it is not already installed. If you need to install Python, unless you have (or anticipate having) applications that depend on @w{Python 2}, the best choice is probably to install @w{Python 3}. After installing Python, you should be able to run @command{units_cur.py} using the shortcut on the Start Menu, or if you have added the units installation directory to your @env{PATH}, from a command-prompt window. When you first run @command{units_cur.py}, you may get a complaint about a missing module; for example @codequoteundirected on @example ModuleNotFoundError: No module named 'requests' @end example @codequoteundirected off @noindent If so, you will need to install the missing module. The easiest way to do this is with the @command{pip} command; for example @example pip install requests @end example @noindent If you have @w{Python 2.7.9} or later or @w{Python 3.4} or later, you should have @command{pip}, though you may need to upgrade to the latest version. If you do not have @command{pip}, you will need to install it manually; see the Python documentation or the Python website for instructions on how to do this. @node Configuring @command{units_cur.py} @unnumberedsec Configuring @command{units_cur.py} If you want to run the currency-update script from the command prompt without changing to the program installation directory, you will need to modify @file{units_cur.py} to give the full pathname of the output file currency.units, i.e., change @codequoteundirected on @example outfile = 'currency.units' @end example @codequoteundirected off @noindent to @codequoteundirected on @example outfile = '@var{installation_directory}/currency.units' @end example @codequoteundirected off @noindent For the default installation directory on a 64-bit system, this would be @codequoteundirected on @example outfile = 'C:/Program Files (x86)/GNU/units/currency.units' @end example @codequoteundirected off @noindent The safest approach is to run @example nmake /f Makefile.Win showdest @end example @noindent to get the destination directory. Be sure to use forward slashes in the pathname to avoid confusing Python. The best approach is to modify @file{units_cur.py} before installation. If you add @code{.py} to the @env{PATHEXT} environment variable, you can simply type @command{units_cur} to run the updater from a command-prompt window. You can do this from the command prompt by typing @example set PATHEXT=%PATHEXT%;.py @end example @noindent but you'll need to do this with every new instance. You can make a permanent change by adding @code{;.py} to @env{PATHEXT} from the Advanced tab of the System dialog: click the `Environment Variables' button, find @env{PATHEXT} in either the list of User variables or the list of System variables; click the `Edit' button, make the change, and click `OK'. @node Example @unnumberedsec Example If you are installing units in the default location of @file{C:/Program Files (x86)/GNU/units} on a 64-bit system, the process would be to @enumerate @item Build the executable by running @example nmake /f Makefile.Win @end example @item Confirm the installation location by running @example nmake /f Makefile.Win showdest @end example It is assumed that the program will be installed in a subdirectory of the standard location for executables (typically, @w{@file{C:\Program Files (x86)}} on a 64-bit system or @w{@file{C:\Program Files}} on a 32-bit system), and a warning is given if this directory does not exist. Ignore the warning if you are intentionally installing in another location. @item If necessary, modify @command{units_cur.py} so that the output file is given by @codequoteundirected on @example outfile = '@var{installation_directory}/currency.units' @end example @codequoteundirected off @noindent By default, this will usually be @codequoteundirected on @example outfile = 'C:/Program Files (x86)/GNU/units/currency.units' @end example @codequoteundirected off @item Install the files by running @example nmake /f Makefile.Win install @end example @item Ensure that @file{currency.units} is writable by ordinary users. The installation should do this automatically, but if for some reason it does not, set permissions manually by adding `Modify' permission for the appropriate groups (typically `Power Users' and `Users') @end enumerate @node Running the Updater @unnumbered Running the Updater @node Updating from a Command Prompt @unnumberedsec Updating from a Command Prompt If you have modified the currency-update script to give the full pathname of the output file @file{currency.units}, you can update the file by running @command{units_cur.py} from any instance of the Windows command prompt. @node Automatic Updates @unnumberedsec Automatic Updates The easiest way to keep currency values up to date is by having the Windows Task Scheduler run @command{units_cur.py} on a regular basis. The Task Scheduler is fussy about the format for the action, which must be an executable file; an entry might look something like @example C:\Windows\py.exe "C:\Program Files (x86)\GNU\units\units_cur.py" @end example @noindent if the Python launcher is in @file{C:\Windows} and the script is in @file{C:\Program Files (x86)\GNU\units}. The program must start in the @command{units} installation directory; the starting directory must be specified @emph{without} quotes. @bye units-2.16/Makefile.Win0000664000175000017500000000735713172240660014275 0ustar adrianadrian# Makefile for units, a program for units conversion # created for Microsoft Visual C/C++ under Microsoft Windows(R) # # Copyright (C) 1996, 1997, 1999, 2005, 2006, 2012, 2013, 2014, 2017 # Free Software Foundation, Inc # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA # # # The units program was written by Adrian Mariano (adrianm@gnu.org). # This makefile was written by Adrian Mariano and Jeff Conrad # (jeff_conrad@msn.com), and tested with Microsoft Visual Studio 2015 # on Windows 10 Professional. # It was previously tested with MS Visual C/C++ 6.0, and MS Visual # Studio 2005, 2008, and 2010 on Windows XP Professional SP3 # Change these to suit the system configuration # Normal location on 32-bit system # ProgFilesDir = %ProgramFiles% # Normal location for 32-bit executable on 64-bit system ProgFilesDir = %ProgramFiles(x86)% bindir = "$(ProgFilesDir)\GNU\units" datadir = "$(ProgFilesDir)\GNU\units" srcdir = . # These are for Microsoft Visual Studio; edit to suit for other compilers. # Do NOT give the 'Za' flag with MSVC. CC = cl RC = rc.exe CFLAGS = /O2 /W3 /nologo OBJS = units.obj getopt.obj getopt1.obj parse.obj # suppress warnings about "unsafe" functions CDEFS = /DNO_SETENV /D_CRT_SECURE_NO_WARNINGS # add this to CDEFS if compiler version doesn't have isfinite() # /DNO_ISFINITE UDEFS = /DUNITSFILE=\"definitions.units\" /DLOCALEMAP=\"locale_map.txt\" RES = units.res all: units.exe units_cur.py units.exe: $(OBJS) $(RES) $(CC) $(CFLAGS) $(CDEFS) $(UDEFS) $(OBJS) $(RES) $(LIBS) units.obj: units.c units.h getopt.obj: getopt.c $(CC) $(CFLAGS) $(CDEFS) /c getopt.c getopt1.obj: getopt1.c getopt.h $(CC) $(CFLAGS) $(CDEFS) /c getopt1.c units.obj: units.c $(CC) $(CFLAGS) $(CDEFS) $(UDEFS) /c units.c parse.obj: parse.tab.c units.h $(CC) $(CFLAGS) $(CDEFS) /c parse.tab.c del /f/q parse.obj rename parse.tab.obj parse.obj units_cur.py: units_cur copy units_cur units_cur.py showdest: @echo datadir=$(datadir) & echo bindir=$(bindir) @if not exist "$(ProgFilesDir)" \ echo '$(ProgFilesDir)' does not exist and will be created install: units.exe $(srcdir)\winmkdirs $(bindir) $(datadir) copy /y units.exe $(bindir) copy /y definitions.units $(datadir) copy /y currency.units $(datadir) copy /y locale_map.txt $(datadir) copy /y unitsfile.ico $(datadir) copy /y unitsprog.ico $(datadir) cacls $(datadir)\definitions.units /e /g Users:c cacls $(datadir)\definitions.units /e /g "Power Users":c cacls $(datadir)\currency.units /e /g Users:c cacls $(datadir)\currency.units /e /g "Power Users":c copy /y units_cur.py $(datadir) cacls $(datadir)\units_cur.py /e /g Users:c cacls $(datadir)\units_cur.py /e /g "Power Users":c assoc .units=Units.DataFile # change this if you want a different editor for units data files for %%i in (notepad.exe) do \ if exist %%~$$PATH:i (ftype Units.DataFile="%%~$$PATH:i" "%1") \ else (ftype Units.DataFile=notepad.exe "%1") reg add "HKCR\Units.DataFile\DefaultIcon" /f /ve /d $(datadir)\unitsfile.ico /t REG_SZ clean: del /f/q $(OBJS) units_cur.py units-2.16/units.h0000664000175000017500000001101313047161160013372 0ustar adrianadrian/* * units, a program for units conversion * Copyright (C) 1996, 1997, 1999, 2000, 2001, 2014, 2017 * Free Software Foundation, Inc * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * * This program was written by Adrian Mariano (adrianm@gnu.org) */ #include #include /* Apparently popen and pclose require leading _ under windows */ #if defined(_MSC_VER) || defined(__MINGW32__) # define popen _popen # define pclose _pclose #endif #ifdef NO_ISFINITE # if defined _WIN32 && defined _MSC_VER # define isfinite(x) (!_isnan(x) && _finite(x)) # else # define isfinite(x) ( -DBL_MAX <= (x) && (x) <= DBL_MAX ) # endif #endif #ifdef STRINGS_H # include #else # include #endif #ifndef NO_STDLIB_H # include #else char *malloc(), *realloc(), *getenv(); #endif #ifndef strchr # ifdef NO_STRCHR # define strchr(a,b) index((a),(b)) # else char *strchr(); # endif #endif /* !strchr */ #define E_NORMAL 0 #define E_PARSE 1 #define E_PRODOVERFLOW 2 #define E_REDUCE 3 #define E_BADSUM 4 #define E_NOTANUMBER 5 #define E_NOTROOT 6 #define E_UNKNOWNUNIT 7 #define E_FUNC 8 /* If errno is set after calling a function */ #define E_BADFUNCTYPE 9 #define E_BADFUNCARG 10 #define E_NOTINDOMAIN 11 #define E_BADFUNCDIMEN 12 #define E_NOINVERSE 13 #define E_PARSEMEM 14 #define E_FUNARGDEF 15 #define E_FILE 16 #define E_BADFILE 17 #define E_MEMORY 18 #define E_BADNUM 19 #define E_UNITEND 20 #define E_LASTUNSET 21 #define E_IRRATIONAL_EXPONENT 22 #define E_BASE_NOTROOT 23 #define E_DIMEXPONENT 24 #define E_NOTAFUNC 25 extern char *errormsg[]; /* Data type used to store a single unit being operated on. The numerator and denominator arrays contain lists of units (strings) which are terminated by a null pointer. The special string NULLUNIT is used to mark blank units that occur in the middle of the list. */ extern char *NULLUNIT; #define MAXSUBUNITS 100 /* Size of internal unit reduction buffer */ struct unittype { char *numerator[MAXSUBUNITS]; char *denominator[MAXSUBUNITS]; double factor; }; struct functype { char *param; char *def; char *dimen; double *domain_min, *domain_max; int domain_min_open, domain_max_open; }; struct pair { double location, value; }; struct func { char *name; struct functype forward; struct functype inverse; struct pair *table; int tablelen; char *tableunit; struct func *next; int skip_error_check; /* do not check for errors when running units -c */ int linenumber; char *file; /* file where defined */ }; struct parseflag { int oldstar; /* Does '*' have higher precedence than '/' */ int minusminus; /* Does '-' character give subtraction */ }; extern struct parseflag parserflags; extern struct unittype *parameter_value; extern char *function_parameter; extern int lastunitset; extern struct unittype lastunit; void *mymalloc(int bytes, const char *mesg); int hassubscript(const char *str); void initializeunit(struct unittype *theunit); void freeunit(struct unittype *theunit); void unitcopy(struct unittype *dest,struct unittype *src); int divunit(struct unittype *left, struct unittype *right); void invertunit(struct unittype *theunit); int multunit(struct unittype *left, struct unittype *right); int expunit(struct unittype *theunit, int power); int addunit(struct unittype *unita, struct unittype *unitb); int rootunit(struct unittype *inunit,int n); int unitpower(struct unittype *base, struct unittype *exponent); char *dupstr(const char *str); char *dupnstr(const char *string, int length); int unit2num(struct unittype *input); struct func *fnlookup(const char *str); int evalfunc(struct unittype *theunit, struct func *infunc, int inverse, int allerror); int parseunit(struct unittype *output, const char *input, char **errstr, int *errloc); units-2.16/getopt.h0000664000175000017500000001066112040123025013530 0ustar adrianadrian/* Declarations for getopt. Copyright (C) 1989, 90, 91, 92, 93, 94 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ #ifdef STRINGS_H # include #else # include #endif #ifndef _GETOPT_H #define _GETOPT_H 1 #ifdef __cplusplus extern "C" { #endif /* For communication from `getopt' to the caller. When `getopt' finds an option that takes an argument, the argument value is returned here. Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ extern char *optarg; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to `getopt'. On entry to `getopt', zero means this is the first call; initialize. When `getopt' returns EOF, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ extern int optind; /* Callers store zero here to inhibit the error message `getopt' prints for unrecognized options. */ extern int opterr; /* Set to an option character which was unrecognized. */ extern int optopt; /* Describe the long-named options requested by the application. The LONG_OPTIONS argument to getopt_long or getopt_long_only is a vector of `struct option' terminated by an element containing a name which is zero. The field `has_arg' is: no_argument (or 0) if the option does not take an argument, required_argument (or 1) if the option requires an argument, optional_argument (or 2) if the option takes an optional argument. If the field `flag' is not NULL, it points to a variable that is set to the value given in the field `val' when the option is found, but left unchanged if the option is not found. To have a long-named option do something other than set an `int' to a compiled-in constant, such as set a value from `optarg', set the option's `flag' field to zero and its `val' field to a nonzero value (the equivalent single-letter option character, if there is one). For long options that have a zero `flag' field, `getopt' returns the contents of the `val' field. */ struct option { #if defined (__STDC__) && __STDC__ const char *name; #else char *name; #endif /* has_arg can't be an enum because some compilers complain about type mismatches in all the code that assumes it is an int. */ int has_arg; int *flag; int val; }; /* Names for the values of the `has_arg' field of `struct option'. */ #define no_argument 0 #define required_argument 1 #define optional_argument 2 #if defined (__STDC__) && __STDC__ #ifdef __GNU_LIBRARY__ /* Many other libraries have conflicting prototypes for getopt, with differences in the consts, in stdlib.h. To avoid compilation errors, only prototype getopt for the GNU C library. */ extern int getopt (int argc, char *const *argv, const char *shortopts); #else /* not __GNU_LIBRARY__ */ extern int getopt (); #endif /* __GNU_LIBRARY__ */ extern int getopt_long (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); extern int getopt_long_only (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind); /* Internal only. Users should not call this directly. */ extern int _getopt_internal (int argc, char *const *argv, const char *shortopts, const struct option *longopts, int *longind, int long_only); #else /* not __STDC__ */ extern int getopt (); extern int getopt_long (); extern int getopt_long_only (); extern int _getopt_internal (); #endif /* __STDC__ */ #ifdef __cplusplus } #endif #endif /* _GETOPT_H */ units-2.16/units.txt0000664000175000017500000033115713176227174014013 0ustar adrianadrianUNITS(1) General Commands Manual UNITS(1) NAME units -- unit conversion and calculation program SYNOPSIS 'units' [options] [from-unit [to-unit]] DESCRIPTION The 'units' program converts quantities expressed in various systems of measurement to their equivalents in other systems of measurement. Like many similar programs, it can handle multiplicative scale changes. It can also handle nonlinear conversions such as Fahrenheit to Celsius; see Temperature Conversions. The program can also perform conversions from and to sums of units, such as converting between meters and feet plus inches. Basic operation is simple: you enter the units that you want to convert from and the units that you want to convert to. You can use the pro- gram interactively with prompts, or you can use it from the command line. Beyond simple unit conversions, 'units' can be used as a general-pur- pose scientific calculator that keeps track of units in its calcula- tions. You can form arbitrary complex mathematical expressions of dimensions including sums, products, quotients, powers, and even roots of dimensions. Thus you can ensure accuracy and dimensional consis- tency when working with long expressions that involve many different units that may combine in complex ways; for an illustration, see Com- plicated Unit Expressions. The units are defined in an external data file. You can use the exten- sive data file that comes with this program, or you can provide your own data file to suit your needs. You can also use your own data file to supplement the standard data file. You can change the default behavior of 'units' with various options given on the command line. See Invoking Units for a description of the available options. INTERACTING WITH UNITS To invoke units for interactive use, type 'units' at your shell prompt. The program will print something like this: Currency exchange rates from www.timegenie.com on 2014-03-05 2860 units, 109 prefixes, 85 nonlinear units You have: At the 'You have:' prompt, type the quantity and units that you are converting from. For example, if you want to convert ten meters to feet, type '10 meters'. Next, 'units' will print 'You want:'. You should type the units you want to convert to. To convert to feet, you would type 'feet'. If the 'readline' library was compiled in then tab will complete unit names. See Readline Support for more information about 'readline'. To quit the program under Unix, press Ctrl-C or Ctrl-D. Under Windows, press Ctrl-C or Ctrl-Z; with the latter, you may also need to press Enter. The result will be displayed in two ways. The first line of output, which is marked with a '*' to indicate multiplication, gives the result of the conversion you have asked for. The second line of output, which is marked with a '/' to indicate division, gives the inverse of the conversion factor. If you convert 10 meters to feet, 'units' will print * 32.808399 / 0.03048 which tells you that 10 meters equals about 32.8 feet. The second num- ber gives the conversion in the opposite direction. In this case, it tells you that 1 foot is equal to about 0.03 dekameters since the dekameter is 10 meters. It also tells you that 1/32.8 is about 0.03. The 'units' program prints the inverse because sometimes it is a more convenient number. In the example above, for example, the inverse value is an exact conversion: a foot is exactly 0.03048 dekameters. But the number given the other direction is inexact. If you convert grains to pounds, you will see the following: You have: grains You want: pounds * 0.00014285714 / 7000 From the second line of the output you can immediately see that a grain is equal to a seven thousandth of a pound. This is not so obvi- ous from the first line of the output. If you find the output format confusing, try using the '--verbose' option: You have: grain You want: aeginamina grain = 0.00010416667 aeginamina grain = (1 / 9600) aeginamina If you request a conversion between units that measure reciprocal dimensions, then 'units' will display the conversion results with an extra note indicating that reciprocal conversion has been done: You have: 6 ohms You want: siemens reciprocal conversion * 0.16666667 / 6 Reciprocal conversion can be suppressed by using the '--strict' option. As usual, use the '--verbose' option to get more comprehensible output: You have: tex You want: typp reciprocal conversion 1 / tex = 496.05465 typp 1 / tex = (1 / 0.0020159069) typp You have: 20 mph You want: sec/mile reciprocal conversion 1 / 20 mph = 180 sec/mile 1 / 20 mph = (1 / 0.0055555556) sec/mile If you enter incompatible unit types, the 'units' program will print a message indicating that the units are not conformable and it will dis- play the reduced form for each unit: You have: ergs/hour You want: fathoms kg^2 / day conformability error 2.7777778e-11 kg m^2 / sec^3 2.1166667e-05 kg^2 m / sec If you only want to find the reduced form or definition of a unit, sim- ply press Enter at the 'You want:' prompt. Here is an example: You have: jansky You want: Definition: fluxunit = 1e-26 W/m^2 Hz = 1e-26 kg / s^2 The output from 'units' indicates that the jansky is defined to be equal to a fluxunit which in turn is defined to be a certain combina- tion of watts, meters, and hertz. The fully reduced (and in this case somewhat more cryptic) form appears on the far right. Some named units are treated as dimensionless in some situations. These units include the radian and steradian. These units will be treated as equal to 1 in units conversions. Power is equal to torque times angular velocity. This conversion can only be performed if the radian is dimensionless. You have: (14 ft lbf) (12 radians/sec) You want: watts * 227.77742 / 0.0043902509 It is also possible to compute roots and other non-integer powers of dimensionless units; this allows computations such as the altitude of geosynchronous orbit: You have: cuberoot(G earthmass / (circle/siderealday)^2) - earthradius You want: miles * 22243.267 / 4.4957425e-05 Named dimensionless units are not treated as dimensionless in other contexts. They cannot be used as exponents so for example, 'meter^radian' is forbidden. If you want a list of options you can type '?' at the 'You want:' prompt. The program will display a list of named units that are con- formable with the unit that you entered at the 'You have:' prompt above. Conformable unit combinations will not appear on this list. Typing 'help' at either prompt displays a short help message. You can also type 'help' followed by a unit name. This will invoke a pager on the units data base at the point where that unit is defined. You can read the definition and comments that may give more details or histori- cal information about the unit. (You can generally quit out of the page by pressing 'q'.) Typing 'search' text will display a list of all of the units whose names contain text as a substring along with their definitions. This may help in the case where you aren't sure of the right unit name. USING UNITS NON-INTERACTIVELY The 'units' program can perform units conversions non-interactively from the command line. To do this, type the command, type the original unit expression, and type the new units you want. If a units expres- sion contains non-alphanumeric characters, you may need to protect it from interpretation by the shell using single or double quote charac- ters. If you type units "2 liters" quarts then 'units' will print * 2.1133764 / 0.47317647 and then exit. The output tells you that 2 liters is about 2.1 quarts, or alternatively that a quart is about 0.47 times 2 liters. If the conversion is successful, then 'units' will return success (zero) to the calling environment. If you enter non-conformable units then 'units' will print a message giving the reduced form of each unit and it will return failure (nonzero) to the calling environment. When you invoke 'units' with only one argument, it will print out the definition of the specified unit. It will return failure if the unit is not defined and success if the unit is defined. UNIT DEFINITIONS The conversion information is read from a units data file that is called 'definitions.units' and is usually located in the '/usr/share/units' directory. If you invoke 'units' with the '-V' option, it will print the location of this file. The default file includes definitions for all familiar units, abbreviations and metric prefixes. It also includes many obscure or archaic units. Many common spelled-out numbers (e.g., 'seventeen') are recognized. Many constants of nature are defined, including these: pi ratio of circumference to diameter c speed of light e charge on an electron force acceleration of gravity mole Avogadro's number water pressure per unit height of water Hg pressure per unit height of mercury au astronomical unit k Boltzman's constant mu0 permeability of vacuum epsilon0 permittivity of vacuum G Gravitational constant mach speed of sound The standard data file includes atomic masses for all of the elements and numerous other constants. Also included are the densities of vari- ous ingredients used in baking so that '2 cups flour_sifted' can be converted to 'grams'. This is not an exhaustive list. Consult the units data file to see the complete list, or to see the definitions that are used. The 'pound' is a unit of mass. To get force, multiply by the force conversion unit 'force' or use the shorthand 'lbf'. (Note that 'g' is already taken as the standard abbreviation for the gram.) The unit 'ounce' is also a unit of mass. The fluid ounce is 'fluidounce' or 'floz'. When British capacity units differ from their US counterparts, such as the British Imperial gallon, the unit is defined both ways with 'br' and 'us' prefixes. Your locale settings will determine the value of the unprefixed unit. Currency is prefixed with its country name: 'belgiumfranc', 'britainpound'. When searching for a unit, if the specified string does not appear exactly as a unit name, then the 'units' program will try to remove a trailing 's', 'es'. Next units will replace a trailing 'ies' with 'y'. If that fails, 'units' will check for a prefix. The database includes all of the standard metric prefixes. Only one prefix is permitted per unit, so 'micromicrofarad' will fail. However, prefixes can appear alone with no unit following them, so 'micro*microfarad' will work, as will 'micro microfarad'. To find out which units and prefixes are available, read the standard units data file, which is extensively annotated. English Customary Units English customary units differ in various ways in different regions. In Britain a complex system of volume measurements featured different gallons for different materials such as a wine gallon and ale gallon that different by twenty percent. This complexity was swept away in 1824 by a reform that created an entirely new gallon, the British Impe- rial gallon defined as the volume occupied by ten pounds of water. Meanwhile in the USA the gallon is derived from the 1707 Winchester wine gallon, which is 231 cubic inches. These gallons differ by about twenty percent. By default if 'units' runs in the 'en_GB' locale you will get the British volume measures. If it runs in the 'en_US' locale you will get the US volume measures. In other locales the default val- ues are the US definitions. If you wish to force different definitions then set the environment variable 'UNITS_ENGLISH' to either 'US' or 'GB' to set the desired definitions independent of the locale. Before 1959, the value of a yard (and other units of measure defined in terms of it) differed slightly among English-speaking countries. In 1959, Australia, Canada, New Zealand, the United Kingdom, the United States, and South Africa adopted the Canadian value of 1 yard = 0.9144 m (exactly), which was approximately halfway between the values used by the UK and the US; it had the additional advantage of making 1 inch = 2.54 cm (exactly). This new standard was termed the Interna- tional Yard. Australia, Canada, and the UK then defined all customary lengths in terms of the International Yard (Australia did not define the furlong or rod); because many US land surveys were in terms of the pre-1959 units, the US continued to define customary surveyors' units (furlong, chain, rod, and link) in terms of the previous value for the foot, which was termed the US survey foot. The US defined a US survey mile as 5280 US survey feet, and defined a statute mile as a US survey mile. The US values for these units differ from the international val- ues by about 2 ppm. The 'units' program uses the international values for these units; the US values can be obtained by using either the 'US' or the 'survey' pre- fix. In either case, the simple familiar relationships among the units are maintained, e.g., 1 'furlong' = 660 'ft', and 1 'USfurlong' = 660 'USft', though the metric equivalents differ slightly between the two cases. The 'US' prefix or the 'survey' prefix can also be used to obtain the US survey mile and the value of the US yard prior to 1959, e.g., 'USmile' or 'surveymile' (but not 'USsurveymile'). To get the US value of the statute mile, use either 'USstatutemile' or 'USmile'. Except for distances that extend over hundreds of miles (such as in the US State Plane Coordinate System), the differences in the miles are usually insignificant: You have: 100 surveymile - 100 mile You want: inch * 12.672025 / 0.078913984 The pre-1959 UK values for these units can be obtained with the prefix 'UK'. In the US, the acre is officially defined in terms of the US survey foot, but 'units' uses a definition based on the international foot. If you want the official US acre use 'USacre' and similarly use 'USacrefoot' for the official US version of that unit. The difference between these units is about 4 parts per million. UNIT EXPRESSIONS Operators You can enter more complicated units by combining units with operations such as multiplication, division, powers, addition, subtraction, and parentheses for grouping. You can use the customary symbols for these operators when 'units' is invoked with its default options. Addition- ally, 'units' supports some extensions, including high priority multi- plication using a space, and a high priority numerical division opera- tor ('|') that can simplify some expressions. You multiply units using a space or an asterisk ('*'). The next exam- ple shows both forms: You have: arabicfoot * arabictradepound * force You want: ft lbf * 0.7296 / 1.370614 You can divide units using the slash ('/') or with 'per': You have: furlongs per fortnight You want: m/s * 0.00016630986 / 6012.8727 You can use parentheses for grouping: You have: (1/2) kg / (kg/meter) You want: league * 0.00010356166 / 9656.0833 White space surrounding operators is optional, so the previous example could have used '(1/2)kg/(kg/meter)'. As a consequence, however, hyphenated spelled-out numbers (e.g., 'forty-two') cannot be used; 'forty-two' is interpreted as '40 - 2'. Multiplication using a space has a higher precedence than division using a slash and is evaluated left to right; in effect, the first '/' character marks the beginning of the denominator of a unit expression. This makes it simple to enter a quotient with several terms in the denominator: 'J / mol K'. The '*' and '/' operators have the same precedence, and are evaluated left to right; if you multiply with '*', you must group the terms in the denominator with parentheses: 'J / (mol * K)'. The higher precedence of the space operator may not always be advanta- geous. For example, 'm/s s/day' is equivalent to 'm / s s day' and has dimensions of length per time cubed. Similarly, '1/2 meter' refers to a unit of reciprocal length equivalent to 0.5/meter, perhaps not what you would intend if you entered that expression. The get a half meter you would need to use parentheses: '(1/2) meter'. The '*' operator is convenient for multiplying a sequence of quotients. For example, 'm/s * s/day' is equivalent to 'm/day'. Similarly, you could write '1/2 * meter' to get half a meter. The 'units' program supports another option for numerical fractions: you can indicate division of numbers with the vertical bar ('|'), so if you wanted half a meter you could write '1|2 meter'. You cannot use the vertical bar to indicate division of non-numerical units (e.g., 'm|s' results in an error message). Powers of units can be specified using the '^' character, as shown in the following example, or by simple concatenation of a unit and its exponent: 'cm3' is equivalent to 'cm^3'; if the exponent is more than one digit, the '^' is required. You can also use '**' as an exponent operator. You have: cm^3 You want: gallons * 0.00026417205 / 3785.4118 Concatenation only works with a single unit name: if you write '(m/s)2', 'units' will treat it as multiplication by 2. When a unit includes a prefix, exponent operators apply to the combination, so 'centimeter3' gives cubic centimeters. If you separate the prefix from the unit with any multiplication operator (e.g., 'centi meter^3'), the prefix is treated as a separate unit, so the exponent applies only to the unit without the prefix. The second example is equivalent to 'centi * (meter^3)', and gives a hundredth of a cubic meter, not a cubic centimeter. The 'units' program is limited internally to prod- ucts of 99 units; accordingly, expressions like 'meter^100' or 'joule^34' (represented internally as 'kg^34 m^68 / s^68') will fail. The '|' operator has the highest precedence, so you can write the square root of two thirds as '2|3^1|2'. The '^' operator has the sec- ond highest precedence, and is evaluated right to left, as usual: You have: 5 * 2^3^2 You want: Definition: 2560 With a dimensionless base unit, any dimensionless exponent is meaning- ful (e.g., 'pi^exp(2.371)'). Even though angle is sometimes treated as dimensionless, exponents cannot have dimensions of angle: You have: 2^radian ^ Exponent not dimensionless If the base unit is not dimensionless, the exponent must be a rational number p/q, and the dimension of the unit must be a power of q, so 'gallon^2|3' works but 'acre^2|3' fails. An exponent using the slash ('/') operator (e.g., 'gallon^(2/3)') is also acceptable; the parenthe- ses are needed because the precedence of '^' is higher than that of '/'. Since 'units' cannot represent dimensions with exponents greater than 99, a fully reduced exponent must have q < 100. When raising a non-dimensionless unit to a power, 'units' attempts to convert a deci- mal exponent to a rational number with q < 100. If this is not possi- ble 'units' displays an error message: You have: ft^1.234 Base unit not dimensionless; rational exponent required A decimal exponent must match its rational representation to machine precision, so 'acre^1.5' works but 'gallon^0.666' does not. Sums and Differences of Units You may sometimes want to add values of different units that are out- side the SI. You may also wish to use 'units' as a calculator that keeps track of units. Sums of conformable units are written with the '+' character, and differences with the '-' character. You have: 2 hours + 23 minutes + 32 seconds You want: seconds * 8612 / 0.00011611705 You have: 12 ft + 3 in You want: cm * 373.38 / 0.0026782366 You have: 2 btu + 450 ft lbf You want: btu * 2.5782804 / 0.38785542 The expressions that are added or subtracted must reduce to identical expressions in primitive units, or an error message will be displayed: You have: 12 printerspoint - 4 heredium ^ Illegal sum of non-conformable units As usual, the precedence for '+' and '-' is lower than that of the other operators. A fractional quantity such as 2 1/2 cups can be given as '(2+1|2) cups'; the parentheses are necessary because multiplication has higher precedence than addition. If you omit the parentheses, 'units' attempts to add '2' and '1|2 cups', and you get an error mes- sage: You have: 2+1|2 cups ^ Illegal sum or difference of non-conformable units The expression could also be correctly written as '(2+1/2) cups'. If you write '2 1|2 cups' the space is interpreted as multiplication so the result is the same as '1 cup'. The '+' and '-' characters sometimes appears in exponents like '3.43e+8'. This leads to an ambiguity in an expression like '3e+2 yC'. The unit 'e' is a small unit of charge, so this can be regarded as equivalent to '(3e+2) yC' or '(3 e)+(2 yC)'. This ambiguity is resolved by always interpreting '+' and '-' as part of an exponent if possible. Numbers as Units For 'units', numbers are just another kind of unit. They can appear as many times as you like and in any order in a unit expression. For example, to find the volume of a box that is 2 ft by 3 ft by 12 ft in steres, you could do the following: You have: 2 ft 3 ft 12 ft You want: stere * 2.038813 / 0.49048148 You have: $ 5 / yard You want: cents / inch * 13.888889 / 0.072 And the second example shows how the dollar sign in the units conver- sion can precede the five. Be careful: 'units' will interpret '$5' with no space as equivalent to 'dollar^5'. Built-in Functions Several built-in functions are provided: 'sin', 'cos', 'tan', 'ln', 'log', 'log2', 'exp', 'acos', 'atan' and 'asin'. The 'sin', 'cos', and 'tan' functions require either a dimensionless argument or an argument with dimensions of angle. You have: sin(30 degrees) You want: Definition: 0.5 You have: sin(pi/2) You want: Definition: 1 You have: sin(3 kg) ^ Unit not dimensionless The other functions on the list require dimensionless arguments. The inverse trigonometric functions return arguments with dimensions of angle. If you wish to take roots of units, you may use the 'sqrt' or 'cuberoot' functions. These functions require that the argument have the appropriate root. You can obtain higher roots by using fractional exponents: You have: sqrt(acre) You want: feet * 208.71074 / 0.0047913202 You have: (400 W/m^2 / stefanboltzmann)^(1/4) You have: Definition: 289.80882 K You have: cuberoot(hectare) ^ Unit not a root Previous Result You can insert the result of the previous conversion using the under- score ('_'). It is useful when you want to convert the same input to several different units, for example You have: 2.3 tonrefrigeration You want: btu/hr * 27600 / 3.6231884e-005 You have: _ You want: kW * 8.0887615 / 0.12362832 Suppose you want to do some deep frying that requires an oil depth of 2 inches. You have 1/2 gallon of oil, and want to know the largest- diameter pan that will maintain the required depth. The nonlinear unit 'circlearea' gives the radius of the circle (see Other Nonlinear Units, for a more detailed description) in SI units; you want the diameter in inches: You have: 1|2 gallon / 2 in You want: circlearea 0.10890173 m You have: 2 _ You want: in * 8.5749393 / 0.1166189 In most cases, surrounding white space is optional, so the previous example could have used '2_'. If '_' follows a non-numerical unit sym- bol, however, the space is required: You have: m_ ^ Parse error When '_' is followed by a digit, the operation is multiplication rather than exponentiation, so that '_2', is equivalent to '_ * 2' rather than '_^2'. You can use the '_' symbol any number of times; for example, You have: m You want: Definition: 1 m You have: _ _ You want: Definition: 1 m^2 Using '_' before a conversion has been performed (e.g., immediately after invocation) generates an error: You have: _ ^ No previous result; '_' not set Accordingly, '_' serves no purpose when 'units' is invoked non-interac- tively. If 'units' is invoked with the '--verbose' option (see Invoking Units), the value of '_' is not expanded: You have: mile You want: ft mile = 5280 ft mile = (1 / 0.00018939394) ft You have: _ You want: m _ = 1609.344 m _ = (1 / 0.00062137119) m You can give '_' at the 'You want:' prompt, but it usually is not very useful. Complicated Unit Expressions The 'units' program is especially helpful in ensuring accuracy and dimensional consistency when converting lengthy unit expressions. For example, one form of the Darcy-Weisbach fluid-flow equation is Delta P = (8 / pi)^2 (rho fLQ^2) / d^5, where Delta P is the pressure drop, rho is the mass density, f is the (dimensionless) friction factor, L is the length of the pipe, Q is the volumetric flow rate, and d is the pipe diameter. It might be desired to have the equation in the form Delta P = A1 rho fLQ^2 / d^5 that accepted the user's normal units; for typical units used in the US, the required conversion could be something like You have: (8/pi^2)(lbm/ft^3)ft(ft^3/s)^2(1/in^5) You want: psi * 43.533969 / 0.022970568 The parentheses allow individual terms in the expression to be entered naturally, as they might be read from the formula. Alternatively, the multiplication could be done with the '*' rather than a space; then parentheses are needed only around 'ft^3/s' because of its exponent: You have: 8/pi^2 * lbm/ft^3 * ft * (ft^3/s)^2 /in^5 You want: psi * 43.533969 / 0.022970568 Without parentheses, and using spaces for multiplication, the previous conversion would need to be entered as You have: 8 lb ft ft^3 ft^3 / pi^2 ft^3 s^2 in^5 You want: psi * 43.533969 / 0.022970568 Backwards Compatibility: '*' and '-' The original 'units' assigned multiplication a higher precedence than division using the slash. This differs from the usual precedence rules, which give multiplication and division equal prece- dence, and can be confusing for people who think of units as a calcula- tor. The star operator ('*') included in this 'units' program has, by default, the same precedence as division, and hence follows the usual precedence rules. For backwards compatibility you can invoke 'units' with the '--oldstar' option. Then '*' has a higher precedence than division, and the same precedence as multiplication using the space. Historically, the hyphen ('-') has been used in technical publications to indicate products of units, and the original 'units' program treated it as a multiplication operator. Because 'units' provides several other ways to obtain unit products, and because '-' is a subtraction operator in general algebraic expressions, 'units' treats the binary '-' as a subtraction operator by default. For backwards compatibility use the '--product' option, which causes 'units' to treat the binary '-' operator as a product operator. When '-' is a multiplication oper- ator it has the same precedence as multiplication with a space, giving it a higher precedence than division. When '-' is used as a unary operator it negates its operand. Regard- less of the 'units' options, if '-' appears after '(' or after '+' then it will act as a negation operator. So you can always compute 20 degrees minus 12 minutes by entering '20 degrees + -12 arcmin'. You must use this construction when you define new units because you cannot know what options will be in force when your definition is processed. NONLINEAR UNIT CONVERSIONS Nonlinear units are represented using functional notation. They make possible nonlinear unit conversions such as temperature. Temperature Conversions Conversions between temperatures are different from linear conversions between temperature increments--see the example below. The absolute temperature conversions are handled by units starting with 'temp', and you must use functional notation. The temperature-increment conver- sions are done using units starting with 'deg' and they do not require functional notation. You have: tempF(45) You want: tempC 7.2222222 You have: 45 degF You want: degC * 25 / 0.04 Think of 'tempF(x)' not as a function but as a notation that indicates that x should have units of 'tempF' attached to it. See Defining Non- linear Units. The first conversion shows that if it's 45 degrees Fahrenheit outside, it's 7.2 degrees Celsius. The second conversion indicates that a change of 45 degrees Fahrenheit corresponds to a change of 25 degrees Celsius. The conversion from 'tempF(x)' is to absolute temperature, so that You have: tempF(45) You want: degR * 504.67 / 0.0019814929 gives the same result as You have: tempF(45) You want: tempR * 504.67 / 0.0019814929 But if you convert 'tempF(x)' to 'degC', the output is probably not what you expect: You have: tempF(45) You want: degC * 280.37222 / 0.0035666871 The result is the temperature in K, because 'degC' is defined as 'K', the Kelvin. For consistent results, use the 'tempX' units when convert- ing to a temperature rather than converting a temperature increment. The 'tempC()' and 'tempF()' definitions are limited to positive abso- lute temperatures, and giving a value that would result in a negative absolute temperature generates an error message: You have: tempC(-275) ^ Argument of function outside domain ^ Other Nonlinear Units Some other examples of nonlinear units are numerous different ring sizes and wire gauges, the grit sizes used for abrasives, the decibel scale, shoe size, scales for the density of sugar (e.g., baume). The standard data file also supplies units for computing the area of a cir- cle and the volume of a sphere. See the standard units data file for more details. Wire gauges with multiple zeroes are signified using negative numbers where two zeroes is '-1'. Alternatively, you can use the synonyms 'g00', 'g000', and so on that are defined in the standard units data file. You have: wiregauge(11) You want: inches * 0.090742002 / 11.020255 You have: brwiregauge(g00) You want: inches * 0.348 / 2.8735632 You have: 1 mm You want: wiregauge 18.201919 You have: grit_P(600) You want: grit_ansicoated 342.76923 The last example shows the conversion from P graded sand paper, which is the European standard and may be marked ``P600'' on the back, to the USA standard. You can compute the area of a circle using the nonlinear unit, 'circlearea'. You can also do this using the circularinch or cir- cleinch. The next example shows two ways to compute the area of a cir- cle with a five inch radius and one way to compute the volume of a sphere with a radius of one meter. You have: circlearea(5 in) You want: in2 * 78.539816 / 0.012732395 You have: 10^2 circleinch You want: in2 * 78.539816 / 0.012732395 You have: spherevol(meter) You want: ft3 * 147.92573 / 0.0067601492 The inverse of a nonlinear conversion is indicated by prefixing a tilde ('~') to the nonlinear unit name: You have: ~wiregauge(0.090742002 inches) You want: Definition: 11 You can give a nonlinear unit definition without an argument or paren- theses, and press Enter at the 'You want:' prompt to get the definition of a nonlinear unit; if the definition is not valid for all real num- bers, the range of validity is also given. If the definition requires specific units this information is also displayed: You have: tempC Definition: tempC(x) = x K + stdtemp defined for x >= -273.15 You have: ~tempC Definition: ~tempC(tempC) = (tempC +(-stdtemp))/K defined for tempC >= 0 K You have: circlearea Definition: circlearea(r) = pi r^2 r has units m To see the definition of the inverse use the '~' notation. In this case the parameter in the functional definition will usually be the name of the unit. Note that the inverse for 'tempC' shows that it requires units of 'K' in the specification of the allowed range of val- ues. Nonlinear unit conversions are described in more detail in Defin- ing Nonlinear Units. UNIT LISTS: CONVERSION TO SUMS OF UNITS Outside of the SI, it is sometimes desirable to convert a single unit to a sum of units--for example, feet to feet plus inches. The conver- sion from sums of units was described in Sums and Differences of Units, and is a simple matter of adding the units with the '+' sign: You have: 12 ft + 3 in + 3|8 in You want: ft * 12.28125 / 0.081424936 Although you can similarly write a sum of units to convert to, the result will not be the conversion to the units in the sum, but rather the conversion to the particular sum that you have entered: You have: 12.28125 ft You want: ft + in + 1|8 in * 11.228571 / 0.089058524 The unit expression given at the 'You want:' prompt is equivalent to asking for conversion to multiples of '1 ft + 1 in + 1|8 in', which is 1.09375 ft, so the conversion in the previous example is equivalent to You have: 12.28125 ft You want: 1.09375 ft * 11.228571 / 0.089058524 In converting to a sum of units like miles, feet and inches, you typi- cally want the largest integral value for the first unit, followed by the largest integral value for the next, and the remainder converted to the last unit. You can do this conversion easily with 'units' using a special syntax for lists of units. You must list the desired units in order from largest to smallest, separated by the semicolon (';') char- acter: You have: 12.28125 ft You want: ft;in;1|8 in 12 ft + 3 in + 3|8 in The conversion always gives integer coefficients on the units in the list, except possibly the last unit when the conversion is not exact: You have: 12.28126 ft You want: ft;in;1|8 in 12 ft + 3 in + 3.00096 * 1|8 in The order in which you list the units is important: You have: 3 kg You want: oz;lb 105 oz + 0.051367866 lb You have: 3 kg You want: lb;oz 6 lb + 9.8218858 oz Listing ounces before pounds produces a technically correct result, but not a very useful one. You must list the units in descending order of size in order to get the most useful result. Ending a unit list with the separator ';' has the same effect as repeating the last unit on the list, so 'ft;in;1|8 in;' is equivalent to 'ft;in;1|8 in;1|8 in'. With the example above, this gives You have: 12.28126 ft You want: ft;in;1|8 in; 12 ft + 3 in + 3|8 in + 0.00096 * 1|8 in in effect separating the integer and fractional parts of the coeffi- cient for the last unit. If you instead prefer to round the last coef- ficient to an integer you can do this with the '--round' ('-r') option. With the previous example, the result is You have: 12.28126 ft You want: ft;in;1|8 in 12 ft + 3 in + 3|8 in (rounded down to nearest 1|8 in) When you use the '-r' option, repeating the last unit on the list has no effect (e.g., 'ft;in;1|8 in;1|8 in' is equivalent to 'ft;in;1|8 in'), and hence neither does ending a list with a ';'. With a single unit and the '-r' option, a terminal ';' does have an effect: it causes 'units' to treat the single unit as a list and produce a rounded value for the single unit. Without the extra ';', the '-r' option has no effect on single unit conversions. This example shows the output using the '-r' option: You have: 12.28126 ft You want: in * 147.37512 / 0.0067854058 You have: 12.28126 ft You want: in; 147 in (rounded down to nearest in) Each unit that appears in the list must be conformable with the first unit on the list, and of course the listed units must also be conform- able with the unit that you enter at the 'You have:' prompt. You have: meter You want: ft;kg ^ conformability error ft = 0.3048 m kg = 1 kg You have: meter You want: lb;oz conformability error 1 m 0.45359237 kg In the first case, 'units' reports the disagreement between units appearing on the list. In the second case, 'units' reports disagree- ment between the unit you entered and the desired conversion. This conformability error is based on the first unit on the unit list. Other common candidates for conversion to sums of units are angles and time: You have: 23.437754 deg You want; deg;arcmin;arcsec 23 deg + 26 arcmin + 15.9144 arcsec You have: 7.2319 hr You want: hr;min;sec 7 hr + 13 min + 54.84 sec In North America, recipes for cooking typically measure ingredients by volume, and use units that are not always convenient multiples of each other. Suppose that you have a recipe for 6 and you wish to make a portion for 1. If the recipe calls for 2 1/2 cups of an ingredient, you might wish to know the measurements in terms of measuring devices you have available, you could use 'units' and enter You have: (2+1|2) cup / 6 You want: cup;1|2 cup;1|3 cup;1|4 cup;tbsp;tsp;1|2 tsp;1|4 tsp 1|3 cup + 1 tbsp + 1 tsp By default, if a unit in a list begins with fraction of the form 1|x and its multiplier is an integer, the fraction is given as the product of the multiplier and the numerator; for example, You have: 12.28125 ft You want: ft;in;1|8 in; 12 ft + 3 in + 3|8 in In many cases, such as the example above, this is what is wanted, but sometimes it is not. For example, a cooking recipe for 6 might call for 5 1/4 cup of an ingredient, but you want a portion for 2, and your 1-cup measure is not available; you might try You have: (5+1|4) cup / 3 You want: 1|2 cup;1|3 cup;1|4 cup 3|2 cup + 1|4 cup This result might be fine for a baker who has a 1 1/2-cup measure (and recognizes the equivalence), but it may not be as useful to someone with more limited set of measures, who does want to do additional cal- culations, and only wants to know ``How many 1/2-cup measures to I need to add?'' After all, that's what was actually asked. With the '--show-factor' option, the factor will not be combined with a unity numerator, so that you get You have: (5+1|4) cup / 3 You want: 1|2 cup;1|3 cup;1|4 cup 3 * 1|2 cup + 1|4 cup A user-specified fractional unit with a numerator other than 1 is never overridden, however--if a unit list specifies '3|4 cup;1|2 cup', a result equivalent to 1 1/2 cups will always be shown as '2 * 3|4 cup' whether or not the '--show-factor' option is given. Some applications for unit lists may be less obvious. Suppose that you have a postal scale and wish to ensure that it's accurate at 1 oz, but have only metric calibration weights. You might try You have: 1 oz You want: 100 g;50 g; 20 g;10 g;5 g;2 g;1 g; 20 g + 5 g + 2 g + 1 g + 0.34952312 * 1 g You might then place one each of the 20 g, 5 g, 2 g, and 1 g weights on the scale and hope that it indicates close to You have: 20 g + 5 g + 2 g + 1 g You want: oz; 0.98767093 oz Appending ';' to 'oz' forces a one-line display that includes the unit; here the integer part of the result is zero, so it is not displayed. A unit list such as cup;1|2 cup;1|3 cup;1|4 cup;tbsp;tsp;1|2 tsp;1|4 tsp can be tedious to enter. The 'units' program provides shorthand names for some common combinations: hms hours, minutes, seconds dms angle: degrees, minutes, seconds time years, days, hours, minutes and seconds usvol US cooking volume: cups and smaller Using these shorthands, or unit list aliases, you can do the following conversions: You have: anomalisticyear You want: time 1 year + 25 min + 3.4653216 sec You have: 1|6 cup You want: usvol 2 tbsp + 2 tsp You cannot combine a unit list alias with other units: it must appear alone at the 'You want:' prompt. You can display the definition of a unit list alias by entering it at the 'You have:' prompt: You have: dms Definition: unit list, deg;arcmin;arcsec When you specify compact output with '--compact', '--terse' or '-t' and perform conversion to a unit list, 'units' lists the conversion factors for each unit in the list, separated by semicolons. You have: year You want: day;min;sec 365;348;45.974678 Unlike the case of regular output, zeros are included in this output list: You have: liter You want: cup;1|2 cup;1|4 cup;tbsp 4;0;0;3.6280454 LOGGING CALCULATIONS The '--log' option allows you to save the results of calculations in a file; this can be useful if you need a permanent record of your work. For example, the fluid-flow conversion in Complicated Unit Expressions, is lengthy, and if you were to use it in designing a piping system, you might want a record of it for the project file. If the interactive session # Conversion factor A1 for pressure drop # dP = A1 rho f L Q^2/d^5 You have: (8/pi^2) (lbm/ft^3)ft(ft^3/s)^2(1/in^5) # Input units You want: psi * 43.533969 / 0.022970568 were logged, the log file would contain ### Log started Fri Oct 02 15:55:35 2015 # Conversion factor A1 for pressure drop # dP = A1 rho f L Q^2/d^5 From: (8/pi^2) (lbm/ft^3)ft(ft^3/s)^2(1/in^5) # Input units To: psi * 43.533969 / 0.022970568 The time is written to the log file when the file is opened. The use of comments can help clarify the meaning of calculations for the log. The log includes conformability errors between the units at the 'You have:' and 'You want:' prompts, but not other errors, includ- ing lack of conformability of items in sums or differences or among items in a unit list. For example, a conversion between zenith angle and elevation angle could involve You have: 90 deg - (5 deg + 22 min + 9 sec) ^ Illegal sum or difference of non-conformable units You have: 90 deg - (5 deg + 22 arcmin + 9 arcsec) You want: dms 84 deg + 37 arcmin + 51 arcsec You have: _ You want: deg * 84.630833 / 0.011816024 You have: The log file would contain From: 90 deg - (5 deg + 22 arcmin + 9 arcsec) To: deg;arcmin;arcsec 84 deg + 37 arcmin + 51 arcsec From: _ To: deg * 84.630833 / 0.011816024 The initial entry error (forgetting that minutes have dimension of time, and that arcminutes must be used for dimensions of angle) does not appear in the output. When converting to a unit list alias, 'units' expands the alias in the log file. The 'From:' and 'To:' tags are written to the log file even if the '--quiet' option is given. If the log file exists when 'units' is invoked, the new results are appended to the log file. The time is written to the log file each time the file is opened. The '--log' option is ignored when 'units' is used non-interactively. INVOKING UNITS You invoke 'units' like this: units [options] [from-unit [to-unit]] If the from-unit and to-unit are omitted, the program will use interac- tive prompts to determine which conversions to perform. See Interac- tive Use. If both from-unit and to-unit are given, 'units' will print the result of that single conversion and then exit. If only from-unit appears on the command line, 'units' will display the definition of that unit and exit. Units specified on the command line may need to be quoted to protect them from shell interpretation and to group them into two arguments. See Command Line Use. The default behavior of 'units' can be changed by various options given on the command line. In most cases, the options may be given in either short form (a single '-' followed by a single character) or long form ('--' followed by a word or hyphen-separated words). Short-form options are cryptic but require less typing; long-form options require more typing but are more explanatory and may be more mnemonic. With long-form options you need only enter sufficient characters to uniquely identify the option to the program. For example, '--out %f' works, but '--o %f' fails because 'units' has other long options beginning with 'o'. However, '--q' works because '--quiet' is the only long option beginning with 'q'. Some options require arguments to specify a value (e.g., '-d 12' or '--digits 12'). Short-form options that do not take arguments may be concatenated (e.g., '-erS' is equivalent to '-e -r -S'); the last option in such a list may be one that takes an argument (e.g., '-ed 12'). With short-form options, the space between an option and its argument is optional (e.g., '-d12' is equivalent to '-d 12'). Long-form options may not be concatenated, and the space between a long-form option and its argument is required. Short-form and long- form options may be intermixed on the command line. Options may be given in any order, but when incompatible options (e.g., '--output- format' and '--exponential') are given in combination, behavior is con- trolled by the last option given. For example, '-o%.12f -e' gives exponential format with the default eight significant digits). The following options are available: -c, --check Check that all units and prefixes defined in the units data file reduce to primitive units. Print a list of all units that can- not be reduced. Also display some other diagnostics about sus- picious definitions in the units data file. Only definitions active in the current locale are checked. You should always run 'units' with this option after modifying a units data file. --check-verbose, --verbose-check Like the '--check' option, this option prints a list of units that cannot be reduced. But to help find unit definitions that cause endless loops, it lists the units as they are checked. If 'units' hangs, then the last unit to be printed has a bad defi- nition. Only definitions active in the current locale are checked. -d ndigits, --digits ndigits Set the number of significant digits in the output to the value specified (which must be greater than zero). For example, '-d 12' sets the number of significant digits to 12. With expo- nential output 'units' displays one digit to the left of the decimal point and eleven digits to the right of the decimal point. On most systems, the maximum number of internally mean- ingful digits is 15; if you specify a greater number than your system's maximum, 'units' will print a warning and set the num- ber to the largest meaningful value. To directly set the maxi- mum value, give an argument of 'max' (e.g., '-d max'). Be aware, of course, that ``significant'' here refers only to the display of numbers; if results depend on physical constants not known to this precision, the physically meaningful precision may be less than that shown. The '--digits' option conflicts with the '--output-format' option. -e, --exponential Set the numeric output format to exponential (i.e., scientific notation), like that used in the Unix 'units' program. The default precision is eight significant digits (seven digits to the right of the decimal point); this can be changed with the '--digits' option. The '--exponential' option conflicts with the '--output-format' option. -o format, --output-format format This option affords complete control over the numeric output format using the specified format. The format is a single float- ing point numeric format for the 'printf()' function in the C programming language. All compilers support the format types 'g' and 'G' to specify significant digits, 'e' and 'E' for sci- entific notation, and 'f' for fixed-point decimal. The ISO C99 standard introduced the 'F' type for fixed-point decimal and the 'a' and 'A' types for hexadecimal floating point; these types are allowed with compilers that support them. The default for- mat is '%.8g'; for greater precision, you could specify '-o %.15g'. See Numeric Output Format and the documentation for 'printf()' for more detailed descriptions of the format specifi- cation. The '--output-format' option affords the greatest con- trol of the output appearance, but requires at least rudimentary knowledge of the 'printf()' format syntax. If you don't want to bother with the 'printf()' syntax, you can specify greater pre- cision more simply with the '--digits' option or select exponen- tial format with '--exponential'. The '--output-format' option is incompatible with the '--exponential' and '--digits' options. -f filename, --file filename Instruct 'units' to load the units file filename. You can spec- ify up to 25 units files on the command line. When you use this option, 'units' will load only the files you list on the command line; it will not load the standard file or your personal units file unless you explicitly list them. If filename is the empty string ('-f ""'), the default units file (or that specified by 'UNITSFILE') will be loaded in addition to any others specified with '-f'. -L logfile, --log logfile Save the results of calculations in the file logfile; this can be useful if it is important to have a record of unit conver- sions or other calculations that are to be used extensively or in a critical activity such as a program or design project. If logfile exits, the new results are appended to the file. This option is ignored when 'units' is used non-interactively. See Logging Calculations for a more detailed description and some examples. -H filename, --history filename Instruct 'units' to save history to filename, so that a record of your commands is available for retrieval across different 'units' invocations. To prevent the history from being saved set filename to the empty string ('-H ""'). This option has no effect if readline is not available. -h, --help Print out a summary of the options for 'units'. -m, --minus Causes '-' to be interpreted as a subtraction operator. This is the default behavior. -p, --product Causes '-' to be interpreted as a multiplication operator when it has two operands. It will act as a negation operator when it has only one operand: '(-3)'. By default '-' is treated as a subtraction operator. --oldstar Causes '*' to have the old-style precedence, higher than the precedence of division so that '1/2*3' will equal '1/6'. --newstar Forces '*' to have the new (default) precedence that follows the usual rules of algebra: the precedence of '*' is the same as the precedence of '/', so that '1/2*3' will equal '3/2'. --compact Give compact output featuring only the conversion factor. This turns off the '--verbose' option. -q, --quiet, --silent Suppress prompting of the user for units and the display of sta- tistics about the number of units loaded. -n, --nolists Disable conversion to unit lists. -r, --round When converting to a combination of units given by a unit list, round the value of the last unit in the list to the nearest integer. -S, --show-factor When converting to a combination of units specified in a list, always show a non-unity factor before a unit that begins with a fraction with a unity denominator. By default, if the unit in a list begins with fraction of the form 1|x and its multiplier is an integer other than 1, the fraction is given as the product of the multiplier and the numerator (e.g., '3|8 in' rather than '3 * 1|8 in'). In some cases, this is not what is wanted; for example, the results for a cooking recipe might show '3 * 1|2 cup' as '3|2 cup'. With the '--show-factor' option, a result equivalent to 1.5 cups will display as '3 * 1|2 cup' rather than '3|2 cup'. A user-specified fractional unit with a numerator other than 1 is never overridden, however--if a unit list specifies '3|4 cup;1|2 cup', a result equivalent to 1 1/2 cups will always be shown as '2 * 3|4 cup' whether or not the '--show-factor' option is given. -s, --strict Suppress conversion of units to their reciprocal units. For example, 'units' will normally convert hertz to seconds because these units are reciprocals of each other. The strict option requires that units be strictly conformable to perform a conver- sion, and will give an error if you attempt to convert hertz to seconds. -1, --one-line Give only one line of output (the forward conversion). Do not print the reverse conversion. If a reciprocal conversion is performed then 'units' will still print the ``reciprocal conver- sion'' line. -t, --terse Give terse output when converting units. This option can be used when calling 'units' from another program so that the out- put is easy to parse. This option has the combined effect of these options: '--strict' '--quiet' '--one-line' '--compact'. When combined with '--version' it produces a display showing only the program name and version number. -v, --verbose Give slightly more verbose output when converting units. When combined with the '-c' option this gives the same effect as '--check-verbose'. When combined with '--version' produces a more detailed output, equivalent to the '--info' option. -V, --version Print the program version number, tell whether the 'readline' library has been included, tell whether UTF-8 support has been included; give the locale, the location of the default units data file, and the location of the personal units data file; indicate if the personal units data file does not exist. When given in combination with the '--terse' option, the program prints only the version number and exits. When given in combination with the '--verbose' option, the program, the '--version' option has the same effect as the '--info' option below. -I, --info Print the information given with the '--version' option, show the pathname of the units program, show the status of the 'UNITSFILE' and 'MYUNITSFILE' environment variables, and addi- tional information about how 'units' locates the related files. On systems running Microsoft Windows, the status of the 'UNITSLOCALE' environment variable and information about the related locale map are also given. This option is usually of interest only to developers and administrators, but it can some- times be useful for troubleshooting. Combining the '--version' and '--verbose' options has the same effect as giving '--info'. -U, --unitsfile Print the location of the default units data file and exit; if the file cannot be found, print ``Units data file not found''. -l locale, --locale locale Print the information given with the '--version' option, show the Force a specified locale such as 'en_GB' to get British def- initions by default. This overrides the locale determined from system settings or environment variables. See Locale for a description of locale format. ADDING YOUR OWN DEFINITIONS Units Data Files The units and prefixes that 'units' can convert are defined in the units data file, typically '/usr/share/units/definitions.units'. If you can't find this file, run 'units --version' to get information on the file locations for your installation. Although you can extend or modify this data file if you have appropriate user privileges, it's usually better to put extensions in separate files so that the defini- tions will be preserved if you update 'units'. You can include additional data files in the units database using the '!include' command in the standard units data file. For example !include /usr/local/share/units/local.units might be appropriate for a site-wide supplemental data file. The loca- tion of the '!include' statement in the standard units data file is important; later definitions replace earlier ones, so any definitions in an included file will override definitions before the '!include' statement in the standard units data file. With normal invocation, no warning is given about redefinitions; to ensure that you don't have an unintended redefinition, run 'units -c' after making changes to any units data file. If you want to add your own units in addition to or in place of stan- dard or site-wide supplemental units data files, you can include them in the '.units' file in your home directory. If this file exists it is read after the standard units data file, so that any definitions in this file will replace definitions of the same units in the standard data file or in files included from the standard data file. This file will not be read if any units files are specified on the command line. (Under Windows the personal units file is named 'unitdef.units'.) Run- ning 'units -V' will display the location and name of your personal units file. The 'units' program first tries to determine your home directory from the 'HOME' environment variable. On systems running Microsoft Windows, if 'HOME' does not exist, 'units' attempts to find your home directory from 'HOMEDRIVE', 'HOMEPATH' and 'USERPROFILE'. You can specify an arbitrary file as your personal units data file with the 'MYUNITSFILE' environment variable; if this variable exists, its value is used with- out searching your home directory. The default units data files are described in more detail in Data Files. Defining New Units and Prefixes A unit is specified on a single line by giving its name and an equiva- lence. Comments start with a '#' character, which can appear anywhere in a line. The backslash character ('\') acts as a continuation char- acter if it appears as the last character on a line, making it possible to spread definitions out over several lines if desired. A file can be included by giving the command '!include' followed by the file's name. The '!' must be the first character on the line. The file will be sought in the same directory as the parent file unless you give a full path. The name of the file to be included cannot contain the comment character '#'. Unit names must not contain any of the operator characters '+', '-', '*', '/', '|', '^', ';', '~', the comment character '#', or parenthe- ses. They cannot begin or end with an underscore ('_'), a comma (',') or a decimal point ('.'). The figure dash (U+2012), typographical minus (`-'; U+2212), and en dash (`-'; U+2013) are converted to the operator '-', so none of these characters can appear in unit names. Names cannot begin with a digit, and if a name ends in a digit other than zero, the digit must be preceded by a string beginning with an underscore, and afterwards consisting only of digits, decimal points, or commas. For example, 'foo_2', 'foo_2,1', or 'foo_3.14' are valid names but 'foo2' or 'foo_a2' are invalid. You could define nitrous oxide as N2O nitrogen 2 + oxygen but would need to define nitrogen dioxide as NO_2 nitrogen + oxygen 2 Be careful to define new units in terms of old ones so that a reduction leads to the primitive units, which are marked with '!' characters. Dimensionless units are indicated by using the string '!dimensionless' for the unit definition. When adding new units, be sure to use the '-c' option to check that the new units reduce properly. If you create a loop in the units defini- tions, then 'units' will hang when invoked with the '-c' option. You will need to use the '--check-verbose' option, which prints out each unit as it is checked. The program will still hang, but the last unit printed will be the unit that caused the infinite loop. If you define any units that contain '+' characters, carefully check them because the '-c' option will not catch non-conformable sums. Be careful with the '-' operator as well. When used as a binary operator, the '-' character can perform addition or multiplication depending on the options used to invoke 'units'. To ensure consistent behavior use '-' only as a unary negation operator when writing units definitions. To multiply two units leave a space or use the '*' operator with care, recalling that it has two possible precedence values and may require parentheses to ensure consistent behavior. To compute the difference of 'foo' and 'bar' write 'foo+(-bar)' or even 'foo+-bar'. Here is an example of a short data file that defines some basic units: m ! # The meter is a primitive unit sec ! # The second is a primitive unit rad !dimensionless # A dimensionless primitive unit micro- 1e-6 # Define a prefix minute 60 sec # A minute is 60 seconds hour 60 min # An hour is 60 minutes inch 0.0254 m # Inch defined in terms of meters ft 12 inches # The foot defined in terms of inches mile 5280 ft # And the mile A unit that ends with a '-' character is a prefix. If a prefix defini- tion contains any '/' characters, be sure they are protected by paren- theses. If you define 'half- 1/2' then 'halfmeter' would be equivalent to '1 / (2 meter)'. Defining Nonlinear Units Some unit conversions of interest are nonlinear; for example, tempera- ture conversions between the Fahrenheit and Celsius scales cannot be done by simply multiplying by conversion factors. When you give a linear unit definition such as 'inch 2.54 cm' you are providing information that 'units' uses to convert values in inches into primitive units of meters. For nonlinear units, you give a func- tional definition that provides the same information. Nonlinear units are represented using a functional notation. It is best to regard this notation not as a function call but as a way of adding units to a number, much the same way that writing a linear unit name after a number adds units to that number. Internally, nonlinear units are defined by a pair of functions that convert to and from lin- ear units in the database, so that an eventual conversion to primitive units is possible. Here is an example nonlinear unit definition: tempF(x) units=[1;K] domain=[-459.67,) range=[0,) \ (x+(-32)) degF + stdtemp ; (tempF+(-stdtemp))/degF + 32 A nonlinear unit definition comprises a unit name, a formal parameter name, two functions, and optional specifications for units, the domain, and the range (the domain of the inverse function). The functions tell 'units' how to convert to and from the new unit. To produce valid results, the arguments of these functions need to have the correct dimensions and be within the domains for which the functions are defined. The definition begins with the unit name followed immediately (with no spaces) by a '(' character. In the parentheses is the name of the for- mal parameter. Next is an optional specification of the units required by the functions in the definition. In the example above, the 'units=[1;K]' specification indicates that the 'tempF' function requires an input argument conformable with '1' (i.e., the argument is dimensionless), and that the inverse function requires an input argu- ment conformable with 'K'. For normal nonlinear units definition, the forward function will always take a dimensionless argument; in general, the inverse function will need units that match the quantity measured by your nonlinear unit. Specifying the units enables 'units' to per- form error checking on function arguments, and also to assign units to domain and range specifications, which are described later. Next the function definitions appear. In the example above, the 'tempF' function is defined by tempF(x) = (x+(-32)) degF + stdtemp This gives a rule for converting 'x' in the units 'tempF' to linear units of absolute temperature, which makes it possible to convert from tempF to other units. To enable conversions to Fahrenheit, you must give a rule for the inverse conversions. The inverse will be 'x(tempF)' and its definition appears after a ';' character. In our example, the inverse is x(tempF) = (tempF+(-stdtemp))/degF + 32 This inverse definition takes an absolute temperature as its argument and converts it to the Fahrenheit temperature. The inverse can be omitted by leaving out the ';' character and the inverse definition, but then conversions to the unit will not be possible. If the inverse definition is omitted, the '--check' option will display a warning. It is up to you to calculate and enter the correct inverse function to obtain proper conversions; the '--check' option tests the inverse at one point and prints an error if it is not valid there, but this is not a guarantee that your inverse is correct. With some definitions, the units may vary. For example, the definition square(x) x^2 can have any arbitrary units, and can also take dimensionless argu- ments. In such a case, you should not specify units. If a definition takes a root of its arguments, the definition is valid only for units that yield such a root. For example, squirt(x) sqrt(x) is valid for a dimensionless argument, and for arguments with even pow- ers of units. Some definitions may not be valid for all real numbers. In such cases, 'units' can handle errors better if you specify an appropriate domain and range. You specify the domain and range as shown below: baume(d) units=[1;g/cm^3] domain=[0,130.5] range=[1,10] \ (145/(145-d)) g/cm^3 ; (baume+-g/cm^3) 145 / baume In this example the domain is specified after 'domain=' with the end- points given in brackets. In accord with mathematical convention, square brackets indicate a closed interval (one that includes its end- points), and parentheses indicate an open interval (one that does not include its endpoints). An interval can be open or closed on one or both ends; an interval that is unbounded on either end is indicated by omitting the limit on that end. For example, a quantity to which deci- bel (dB) is applied may have any value greater than zero, so the range is indicated by '(0,)': decibel(x) units=[1;1] range=(0,) 10^(x/10); 10 log(decibel) If the domain or range is given, the second endpoint must be greater than the first. The domain and range specifications can appear independently and in any order along with the units specification. The values for the domain and range endpoints are attached to the units given in the units speci- fication, and if necessary, the parameter value is adjusted for compar- ison with the endpoints. For example, if a definition includes 'units=[1;ft]' and 'range=[3,)', the range will be taken as 3 ft to infinity. If the function is passed a parameter of '900 mm', that value will be adjusted to 2.9527559 ft, which is outside the specified range. If you omit the units specification from the previous example, 'units' can not tell whether you intend the lower endpoint to be 3 ft or 3 microfurlongs, and can not adjust the parameter value of 900 mm for comparison. Without units, numerical values other than zero or plus or minus infinity for domain or range endpoints are meaningless, and accordingly they are not allowed. If you give other values without units then the definition will be ignored and you will get an error message. Although the units, domain, and range specifications are optional, it's best to give them when they are applicable; doing so allows 'units' to perform better error checking and give more helpful error messages. Giving the domain and range also enables the '--check' option to find a point in the domain to use for its point check of your inverse defini- tion. You can make synonyms for nonlinear units by providing both the forward and inverse functions; inverse functions can be obtained using the '~' operator. So to create a synonym for 'tempF' you could write fahrenheit(x) units=[1;K] tempF(x); ~tempF(fahrenheit) This is useful for creating a nonlinear unit definition that differs slightly from an existing definition without having to repeat the orig- inal functions. For example, dBW(x) units=[1;W] range=[0,) dB(x) W ; ~dB(dBW/W) If you wish a synonym to refer to an existing nonlinear unit without modification, you can do so more simply by adding the synonym with appended parentheses as a new unit, with the existing nonlinear unit-- without parentheses--as the definition. So to create a synonym for 'tempF' you could write fahrenheit() tempF The definition must be a nonlinear unit; for example, the synonym fahrenheit() meter will result in an error message when 'units' starts. You may occasionally wish to define a function that operates on units. This can be done using a nonlinear unit definition. For example, the definition below provides conversion between radius and the area of a circle. This definition requires a length as input and produces an area as output, as indicated by the 'units=' specification. Specifying the range as the nonnegative numbers can prevent cryptic error mes- sages. circlearea(r) units=[m;m^2] range=[0,) pi r^2 ; sqrt(circlearea/pi) Defining Piecewise Linear Units Sometimes you may be interested in a piecewise linear unit such as many wire gauges. Piecewise linear units can be defined by specifying con- versions to linear units on a list of points. Conversion at other points will be done by linear interpolation. A partial definition of zinc gauge is zincgauge[in] 1 0.002, 10 0.02, 15 0.04, 19 0.06, 23 0.1 In this example, 'zincgauge' is the name of the piecewise linear unit. The definition of such a unit is indicated by the embedded '[' charac- ter. After the bracket, you should indicate the units to be attached to the numbers in the table. No spaces can appear before the ']' char- acter, so a definition like 'foo[kg meters]' is invalid; instead write 'foo[kg*meters]'. The definition of the unit consists of a list of pairs optionally separated by commas. This list defines a function for converting from the piecewise linear unit to linear units. The first item in each pair is the function argument; the second item is the value of the function at that argument (in the units specified in brackets). In this example, we define 'zincgauge' at five points. For example, we set 'zincgauge(1)' equal to '0.002 in'. Definitions like this may be more readable if written using continuation characters as zincgauge[in] \ 1 0.002 \ 10 0.02 \ 15 0.04 \ 19 0.06 \ 23 0.1 With the preceding definition, the following conversion can be per- formed: You have: zincgauge(10) You want: in * 0.02 / 50 You have: .01 inch You want: zincgauge 5 If you define a piecewise linear unit that is not strictly monotonic, then the inverse will not be well defined. If the inverse is requested for such a unit, 'units' will return the smallest inverse. After adding nonlinear units definitions, you should normally run 'units --check' to check for errors. If the 'units' keyword is not given, the '--check' option checks a nonlinear unit definition using a dimensionless argument, and then checks using an arbitrary combination of units, as well as the square and cube of that combination; a warning is given if any of these tests fail. For example, Warning: function 'squirt(x)' defined as 'sqrt(x)' failed for some test inputs: squirt(7(kg K)^1): Unit not a root squirt(7(kg K)^3): Unit not a root Running 'units --check' will print a warning if a non-monotonic piece- wise linear unit is encountered. For example, the relationship between ANSI coated abrasive designation and mean particle size is non-mono- tonic in the vicinity of 800 grit: ansicoated[micron] \ . . . 600 10.55 \ 800 11.5 \ 1000 9.5 \ Running 'units --check' would give the error message Table 'ansicoated' lacks unique inverse around entry 800 Although the inverse is not well defined in this region, it's not really an error. Viewing such error messages can be tedious, and if there are enough of them, they can distract from true errors. Error checking for nonlinear unit definitions can be suppressed by giving the 'noerror' keyword; for the examples above, this could be done as squirt(x) noerror domain=[0,) range=[0,) sqrt(x); squirt^2 ansicoated[micron] noerror \ . . . Use the 'noerror' keyword with caution. The safest approach after adding a nonlinear unit definition is to run 'units --check' and con- firm that there are no actual errors before adding the 'noerror' key- word. Defining Unit List Aliases Unit list aliases are treated differently from unit definitions, because they are a data entry shorthand rather than a true definition for a new unit. A unit list alias definition begins with '!unitlist' and includes the alias and the definition; for example, the aliases included in the standard units data file are !unitlist hms hr;min;sec !unitlist time year;day;hr;min;sec !unitlist dms deg;arcmin;arcsec !unitlist ftin ft;in;1|8 in !unitlist usvol cup;3|4 cup;2|3 cup;1|2 cup;1|3 cup;1|4 cup;\ tbsp;tsp;1|2 tsp;1|4 tsp;1|8 tsp Unit list aliases are only for unit lists, so the definition must include a ';'. Unit list aliases can never be combined with units or other unit list aliases, so the definition of 'time' shown above could not have been shortened to 'year;day;hms'. As usual, be sure to run 'units --check' to ensure that the units listed in unit list aliases are conformable. NUMERIC OUTPUT FORMAT By default, 'units' shows results to eight significant digits. You can change this with the '--exponential', '--digits', and '--output-format' options. The first sets an exponential format (i.e., scientific nota- tion) like that used in the original Unix 'units' program, the second allows you to specify a different number of significant digits, and the last allows you to control the output appearance using the format for the 'printf()' function in the C programming language. If you only want to change the number of significant digits or specify exponential format type, use the '--digits' and '--exponential' options. The '--output-format' option affords the greatest control of the output appearance, but requires at least rudimentary knowledge of the 'printf()' format syntax. See Invoking Units for descriptions of these options. Format Specification The format specification recognized with the '--output-format' option is a subset of that for 'printf()'. The format specification has the form '%'[flags][width]['.'precision]type; it must begin with '%', and must end with a floating-point type specifier: 'g' or 'G' to specify the number of significant digits, 'e' or 'E' for scientific notation, and 'f' for fixed-point decimal. The ISO C99 standard added the 'F' type for fixed-point decimal and the 'a' and 'A' types for hexadecimal floating point; these types are allowed with compilers that support them. Type length modifiers (e.g., 'L' to indicate a long double) are inapplicable and are not allowed. The default format for 'units' is '%.8g'; for greater precision, you could specify '-o %.15g'. The 'g' and 'G' format types use exponential format whenever the exponent would be less than -4, so the value 0.000013 displays as '1.3e-005'. These types also use exponential notation when the exponent is greater than or equal to the precision, so with the default format, the value 5e7 displays as '50000000' and the value 5e8 displays as '5e+008'. If you prefer fixed-point display, you might specify '-o %.8f'; however, small numbers will display very few significant digits, and values less than 0.5e-8 will show nothing but zeros. The format specification may include one or more optional flags: '+', ' ' (space), '#', '-', or '0' (the digit zero). The digit-grouping flag ''' is allowed with compilers that support it. Flags are followed by an optional value for the minimum field width, and an optional pre- cision specification that begins with a period (e.g., '.6'). The field width includes the digits, decimal point, the exponent, thousands sepa- rators (with the digit-grouping flag), and the sign if any of these are shown. Flags The '+' flag causes the output to have a sign ('+' or '-'). The space flag ' ' is similar to the '+' flag, except that when the value is pos- itive, it is prefixed with a space rather than a plus sign; this flag is ignored if the '+' flag is also given. The '+' or ' ' flag could be useful if conversions might include positive and negative results, and you wanted to align the decimal points in exponential notation. The '#' flag causes the output value to contain a decimal point in all cases; by default, the output contains a decimal point only if there are digits (which can be trailing zeros) to the right of the point. With the 'g' or 'G' types, the '#' flag also prevents the suppression of trailing zeros. The digit-grouping flag ''' shows a thousands sepa- rator in digits to the left of the decimal point. This can be useful when displaying large numbers in fixed-point decimal; for example, with the format '%f', You have: mile You want: microfurlong * 8000000.000000 / 0.000000 the magnitude of the first result may not be immediately obvious with- out counting the digits to the left of the decimal point. If the thou- sands separator is the comma (','), the output with the format '%'f' might be You have: mile You want: microfurlong * 8,000,000.000000 / 0.000000 making the magnitude readily apparent. Unfortunately, few compilers support the digit-grouping flag. With the '-' flag, the output value is left aligned within the speci- fied field width. If a field width greater than needed to show the output value is specified, the '0' (zero) flag causes the output value to be left padded with zeros until the specified field width is reached; for example, with the format '%011.6f', You have: troypound You want: grain * 5760.000000 / 0000.000174 The '0' flag has no effect if the '-' (left align) flag is given. Field Width By default, the output value is left aligned and shown with the minimum width necessary for the specified (or default) precision. If a field width greater than this is specified, the value shown is right aligned, and padded on the left with enough spaces to provide the specified field width. A width specification is typically used with fixed-point decimal to have columns of numbers align at the decimal point; this arguably is less useful with 'units' than with long columnar output, but it may nonetheless assist in quickly assessing the relative magni- tudes of results. For example, with the format '%12.6f', You have: km You want: in * 39370.078740 / 0.000025 You have: km You want: rod * 198.838782 / 0.005029 You have: km You want: furlong * 4.970970 / 0.201168 Precision The meaning of ``precision'' depends on the format type. With 'g' or 'G', it specifies the number of significant digits (like the '--digits' option); with 'e', 'E', 'f', or 'F', it specifies the maximum number of digits to be shown after the decimal point. With the 'g' and 'G' format types, trailing zeros are suppressed, so the results may sometimes have fewer digits than the specified preci- sion (as indicated above, the '#' flag causes trailing zeros to be dis- played). The default precision is 6, so '%g' is equivalent to '%.6g', and would show the output to six significant digits. Similarly, '%e' or '%f' would show the output with six digits after the decimal point. The C 'printf()' function allows a precision of arbitrary size, whether or not all of the digits are meaningful. With most compilers, the max- imum internal precision with 'units' is 15 decimal digits (or 13 hexa- decimal digits). With the '--digits' option, you are limited to the maximum internal precision; with the '--output-format' option, you may specify a precision greater than this, but it may not be meaningful. In some cases, specifying excess precision can result in rounding arti- facts. For example, a pound is exactly 7000 grains, but with the for- mat '%.18g', the output might be You have: pound You want: grain * 6999.9999999999991 / 0.00014285714285714287 With the format '%.25g' you might get the following: You have: 1/3 You want: Definition: 0.333333333333333314829616256247 In this case the displayed value includes a series of digits that rep- resent the underlying binary floating-point approximation to 1/3 but are not meaningful for the desired computation. In general, the result with excess precision is system dependent. The precision affects only the display of numbers; if a result relies on physical constants that are not known to the specified precision, the number of physically meaningful digits may be less than the number of digits shown. See the documentation for 'printf()' for more detailed descriptions of the format specification. The '--output-format' option is incompatible with the '--exponential' or '--digits' options; if the former is given in combination with either of the latter, the format is controlled by the last option given. LOCALIZATION Some units have different values in different locations. The localiza- tion feature accommodates this by allowing a units data file to specify definitions that depend on the user's locale. Locale A locale is a subset of a user's environment that indicates the user's language and country, and some attendant preferences, such as the for- matting of dates. The 'units' program attempts to determine the locale from the POSIX setlocale function; if this cannot be done, 'units' examines the environment variables 'LC_CTYPE' and 'LANG'. On POSIX systems, a locale is of the form language'_'country, where language is the two-character code from ISO 639-1 and country is the two-character code from ISO 3166-1; language is lower case and country is upper case. For example, the POSIX locale for the United Kingdom is 'en_GB'. On systems running Microsoft Windows, the value returned by setlocale() is different from that on POSIX systems; 'units' attempts to map the Windows value to a POSIX value by means of a table in the file 'locale_map.txt' in the same directory as the other data files. The file includes entries for many combinations of language and country, and can be extended to include other combinations. The 'locale_map.txt' file comprises two tab-separated columns; each entry is of the form Windows-locale POSIX-locale where POSIX-locale is as described above, and Windows-locale typically spells out both the language and country. For example, the entry for the United States is English_United States en_US You can force 'units' to run in a desired locale by using the '-l' option. In order to create unit definitions for a particular locale you begin a block of definitions in a unit datafile with '!locale' followed by a locale name. The '!' must be the first character on the line. The 'units' program reads the following definitions only if the current locale matches. You end the block of localized units with '!endlocale'. Here is an example, which defines the British gallon. !locale en_GB gallon 4.54609 liter !endlocale Additional Localization Sometimes the locale isn't sufficient to determine unit preferences. There could be regional preferences, or a company could have specific preferences. Though probably uncommon, such differences could arise with the choice of English customary units outside of English-speaking countries. To address this, 'units' allows specifying definitions that depend on environment variable settings. The environment variables can be controled based on the current locale, or the user can set them to force a particular group of definitions. A conditional block of definitions in a units data file begins with either '!var' or '!varnot' following by an environment variable name and then a space separated list of values. The leading '!' must appear in the first column of a units data file, and the conditional block is terminated by '!endvar'. Definitions in blocks beginning with '!var' are executed only if the environment variable is exactly equal to one of the listed values. Definitions in blocks beginning with '!varnot' are executed only if the environment variable does not equal any of the list values. The inch has long been a customary measure of length in many places. The word comes from the latin uncia meaning ``one twelfth,'' referring to its relationship with the foot. By the 20th century, the inch was officially defined in English-speaking countries relative to the yard, but until 1959, the yard differed slightly among those countries. In France the customary inch, which was displaced in 1799 by the meter, had a different length based on a french foot. These customary defini- tions could be accommodated as follows: !var INCH_UNIT usa yard 3600|3937 m !endvar !var INCH_UNIT canada yard 0.9144 meter !endvar !var INCH_UNIT uk yard 0.91439841 meter !endvar !var INCH_UNIT canada uk usa foot 1|3 yard inch 1|12 foot !endvar !var INCH_UNIT france foot 144|443.296 m inch 1|12 foot line 1|12 inch !endvar !varnot INCH_UNIT usa uk france canada !message Unknown value for INCH_UNIT !endvar When 'units' reads the above definitions it will check the environment variable 'INCH_UNIT' and load only the definitions for the appropriate section. If 'INCH_UNIT' is unset or is not set to one of the four val- ues listed then 'units' will run the last block. In this case that block uses the '!message' command to display a warning message. Alter- natively that block could set default values. In order to create default values that are overridden by user settings the data file can use the '!set' command, which sets an environment variable only if it is not already set; these settings are only for the current 'units' invocation and do not persist. So if the example above were preceded by '!set INCH_UNIT france' then this would make 'france' the default value for 'INCH_UNIT'. If the user had set the variable in the environment before invoking 'units', then 'units' would use the user's value. To link these settings to the user's locale you combine the '!set' com- mand with the '!locale' command. If you wanted to combine the above example with suitable locales you could do by preceding the above defi- nition with the following: !locale en_US !set INCH_UNIT usa !endlocale !locale en_GB !set INCH_UNIT uk !endlocale !locale en_CA !set INCH_UNIT canada !endlocale !locale fr_FR !set INCH_UNIT france !endlocale !set INCH_UNIT france These definitions set the overall default for 'INCH_UNIT' to 'france' and set default values for four locales appropriately. The overall default setting comes last so that it only applies when 'INCH_UNIT' was not set by one of the other commands or by the user. If the variable given after '!var' or '!varnot' is undefined then 'units' prints an error message and ignores the definitions that fol- low. Use '!set' to create defaults to prevent this situation from arising. The '-c' option only checks the definitions that are active for the current environment and locale, so when adding new definitions take care to check that all cases give rise to a well defined set of definitions. ENVIRONMENT VARIABLES The 'units' program uses the following environment variables: HOME Specifies the location of your home directory; it is used by 'units' to find a personal units data file '.units'. On systems running Microsoft Windows, the file is 'unitdef.units', and if 'HOME' does not exist, 'units' tries to determine your home directory from the 'HOMEDRIVE' and 'HOMEPATH' environment vari- ables; if these variables do not exist, units finally tries 'USERPROFILE'--typically 'C:\Users\username' (Windows Vista and Windows 7) or 'C:\Documents and Settings\username' (Windows XP). LC_CTYPE, LANG Checked to determine the locale if 'units' cannot obtain it from the operating system. Sections of the standard units data file are specific to certain locales. MYUNITSFILE Specifies your personal units data file. If this variable exists, 'units' uses its value rather than searching your home directory for '.units'. The personal units file will not be loaded if any data files are given using the '-f' option. PAGER Specifies the pager to use for help and for displaying the con- formable units. The help function browses the units database and calls the pager using the '+n'n syntax for specifying a line number. The default pager is 'more'; 'PAGER' can be used to specify alternatives such as 'less', 'pg', 'emacs', or 'vi'. UNITS_ENGLISH Set to either 'US' or 'GB' to choose United States or British volume definitions, overriding the default from your locale. UNITSFILE Specifies the units data file to use (instead of the default). You can only specify a single units data file using this envi- ronment variable. If units data files are given using the '-f' option, the file specified by 'UNITSFILE' will be not be loaded unless the '-f' option is given with the empty string ('units -f ""'). UNITSLOCALEMAP Windows only; this variable has no effect on Unix-like systems. Specifies the units locale map file to use (instead of the default). This variable seldom needs to be set, but you can use it to ensure that the locale map file will be found if you spec- ify a location for the units data file using either the '-f' option or the 'UNITSFILE' environment variable, and that loca- tion does not also contain the locale map file. DATA FILES The 'units' program uses two default data files: 'definitions.units' and 'currency.units'. The program can also use an optional personal units data file '.units' ('unitdef.units' under Windows) located in the user's home directory. The personal units data file is described in more detail in Units Data Files. On Unix-like systems, the data files are typically located in '/usr/share/units' if 'units' is provided with the operating system, or in '/usr/local/share/units' if 'units' is compiled from the source dis- tribution. On systems running Microsoft Windows, the files may be in the same locations if Unix-like commands are available, a Unix-like file struc- ture is present (e.g., 'C:/usr/local'), and 'units' is compiled from the source distribution. If Unix-like commands are not available, a more common location is 'C:\Program Files (x86)\GNU\units' (for 64-bit Windows installations) or 'C:\Program Files\GNU\units' (for 32-bit installations). If 'units' is obtained from the GNU Win32 Project (http://gnuwin32.sourceforge.net/), the files are commonly in 'C:\Program Files\GnuWin32\share\units'. If the default units data file is not an absolute pathname, 'units' will look for the file in the directory that contains the 'units' pro- gram; if the file is not found there, 'units' will look in a directory '../share/units' relative to the directory with the 'units' program. You can determine the location of the files by running 'units --version'. Running 'units --info' will give you additional information about the files, how 'units' will attempt to find them, and the status of the related environment variables. UNICODE SUPPORT The standard units data file is in Unicode, using UTF-8 encoding. Most definitions use only ASCII characters (i.e., code points U+0000 through U+007F); definitions using non-ASCII characters appear in blocks begin- ning with '!utf8' and ending with '!endutf8'. When 'units' starts, it checks the locale to determine the character set. If 'units' is compiled with Unicode support and definitions; oth- erwise these definitions are ignored. When Unicode support is active, 'units' will check every line of all of the units data files for invalid or non-printing UTF-8 sequences; if such sequences occur, 'units' ignores the entire line. In addition to checking validity, 'units' determines the display width of non-ASCII characters to ensure proper positioning of the pointer in some error messages and to align columns for the 'search' and '?' commands. At present, 'units' does not support Unicode under Microsoft Windows. The UTF-16 and UTF-32 encodings are not supported on any systems. If definitions that contain non-ASCII characters are added to a units data file, those definitions should be enclosed within '!utf8' ... '!endutf8' to ensure that they are only loaded when Unicode support is available. As usual, the '!' must appear as the first character on the line. As discussed in Units Data Files, it's usually best to put such definitions in supplemental data files linked by an '!include' command or in a personal units data file. When Unicode support is not active, 'units' makes no assumptions about character encoding, except that characters in the range 00-7F hexadeci- mal correspond to ASCII encoding. Non-ASCII characters are simply sequences of bytes, and have no special meanings; for definitions in supplementary units data files, you can use any encoding consistent with this assumption. For example, if you wish to use non-ASCII char- acters in definitions when running 'units' under Windows, you can use a character set such as Windows ``ANSI'' (code page 1252 in the US and Western Europe). You can even use UTF-8, though some messages may be improperly aligned, and 'units' will not detect invalid UTF-8 sequences. If you use UTF-8 encoding when Unicode support is not active, you should place any definitions with non-ASCII characters out- side '!utf8' ... '!endutf8' blocks--otherwise, they will be ignored. Typeset material other than code examples usually uses the Unicode minus (U+2212) rather than the ASCII hyphen-minus operator (U+002D) used in 'units'; the figure dash (U+2012) and en dash (U+2013) are also occasionally used. To allow such material to be copied and pasted for interactive use or in units data files, 'units' converts these charac- ters to U+002D before further processing. Because of this, none of these characters can appear in unit names. READLINE SUPPORT If the 'readline' package has been compiled in, then when 'units' is used interactively, numerous command line editing features are avail- able. To check if your version of 'units' includes 'readline', invoke the program with the '--version' option. For complete information about 'readline', consult the documentation for the 'readline' package. Without any configuration, 'units' will allow editing in the style of emacs. Of particular use with 'units' are the completion commands. If you type a few characters and then hit ESC followed by '?' then 'units' will display a list of all the units that start with the char- acters typed. For example, if you type 'metr' and then request comple- tion, you will see something like this: You have: metr metre metriccup metrichorsepower metrictenth metretes metricfifth metricounce metricton metriccarat metricgrain metricquart metricyarncount You have: metr If there is a unique way to complete a unitname, you can hit the TAB key and 'units' will provide the rest of the unit name. If 'units' beeps, it means that there is no unique completion. Pressing the TAB key a second time will print the list of all completions. The readline library also keeps a history of the values you enter. You can move through this history using the up and down arrows. The his- tory is saved to the file '.units_history' in your home directory so that it will persist across multiple 'units' invocations. If you wish to keep work for a certain project separate you can change the history filename using the '--history' option. You could, for example, make an alias for 'units' to 'units --history .units_history' so that 'units' would save separate history in the current directory. The length of each history file is limited to 5000 lines. Note also that if you run several concurrent copies of 'units' each one will save its new history to the history file upon exit. UPDATING CURRENCY EXCHANGE RATES The units program includes currency exchange rates and prices for some precious metals in the database. Of course, these values change over time, sometimes very rapidly, and 'units' cannot provide real time val- ues. To update the exchange rates run the 'units_cur', which rewrites the files containing the currency rates, typically '/usr/share/units/currency.units'. This program requires 'python', and must be run with suitable permissions to write the file. To keep the rates updated automatically, run it using a cron job on a Unix-like system, or a similar scheduling program on a different system. Cur- rency exchange rates are taken from Yahoo (http://finance.yahoo.com) and precious metals pricing from Packetizer (www.packetizer.com). These sites update once per day, so there is no benefit in running the update script more often than daily. You can run 'units_cur' with a filename specified on the command line and it will write the data to that file. If you give '-' for the file it will write to standard out- put. DATABASE COMMAND SYNTAX unit definition Define a regular unit. prefix- definition Define a prefix. funcname(var) noerror units=[in-units,out-units] domain=[x1,x2] range=[y1,y2] definition(var) ; inverse(funcname) Define a nonlinear unit or unit function. The four optional keywords 'noerror', 'units=', 'range=' and 'domain=' can appear in any order. The definition of the inverse is optional. tabname[out-units] noerror pair-list Define a piecewise linear unit. The pair list gives the points on the table listed in ascending order. The 'noerror' keyword is optional. !endlocale End a block of definitions beginning with '!locale' !endutf8 End a block of definitions begun with '!utf8' !endvar End a block of definitions begun with '!var' or '!varnot' !include file Include the specified file. !locale value Load the following definitions only of the locale is set to value. !message text Display text when the database is read unless the quiet option ('-q') is enabled. !set variable value Sets the environment variable, variable, to the specified value only if it is not already set. !unitlist alias definition Define a unit list alias. !utf8 Load the following definitions only if 'units' is running with UTF-8 enabled. !var envar value-list Load the block of definitions that follows only if the environ- ment variable envar is set to one of the values listed in the space-separated value list. If envar is not set, 'units' prints an error message and ignores the block of definitions. !varnot envar value-list Load the block of definitions that follows only if the environ- ment variable envar is set to value that is not listed in the space-separated value list. If envar is not set, 'units' prints an error message and ignores the block of definitions. GNU FREE DOCUMENTATION LICENSE FILES /usr/local/share/units/definitions.units -- the standard units data file AUTHOR 16 October 2017 UNITS(1) units-2.16/install-sh0000775000175000017500000003325512320330320014064 0ustar adrianadrian#!/bin/sh # install - install a program, script, or datafile scriptversion=2011-11-20.07; # UTC # This originates from X11R5 (mit/util/scripts/install.sh), which was # later released in X11R6 (xc/config/util/install.sh) with the # following copyright and license. # # Copyright (C) 1994 X Consortium # # Permission is hereby granted, free of charge, to any person obtaining a copy # of this software and associated documentation files (the "Software"), to # deal in the Software without restriction, including without limitation the # rights to use, copy, modify, merge, publish, distribute, sublicense, and/or # sell copies of the Software, and to permit persons to whom the Software is # furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE # X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN # AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- # TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # # Except as contained in this notice, the name of the X Consortium shall not # be used in advertising or otherwise to promote the sale, use or other deal- # ings in this Software without prior written authorization from the X Consor- # tium. # # # FSF changes to this file are in the public domain. # # Calling this script install-sh is preferred over install.sh, to prevent # 'make' implicit rules from creating a file called install from it # when there is no Makefile. # # This script is compatible with the BSD install script, but was written # from scratch. nl=' ' IFS=" "" $nl" # set DOITPROG to echo to test this script # Don't use :- since 4.3BSD and earlier shells don't like it. doit=${DOITPROG-} if test -z "$doit"; then doit_exec=exec else doit_exec=$doit fi # Put in absolute file names if you don't have them in your path; # or use environment vars. chgrpprog=${CHGRPPROG-chgrp} chmodprog=${CHMODPROG-chmod} chownprog=${CHOWNPROG-chown} cmpprog=${CMPPROG-cmp} cpprog=${CPPROG-cp} mkdirprog=${MKDIRPROG-mkdir} mvprog=${MVPROG-mv} rmprog=${RMPROG-rm} stripprog=${STRIPPROG-strip} posix_glob='?' initialize_posix_glob=' test "$posix_glob" != "?" || { if (set -f) 2>/dev/null; then posix_glob= else posix_glob=: fi } ' posix_mkdir= # Desired mode of installed file. mode=0755 chgrpcmd= chmodcmd=$chmodprog chowncmd= mvcmd=$mvprog rmcmd="$rmprog -f" stripcmd= src= dst= dir_arg= dst_arg= copy_on_change=false no_target_directory= usage="\ Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE or: $0 [OPTION]... SRCFILES... DIRECTORY or: $0 [OPTION]... -t DIRECTORY SRCFILES... or: $0 [OPTION]... -d DIRECTORIES... In the 1st form, copy SRCFILE to DSTFILE. In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. In the 4th, create DIRECTORIES. Options: --help display this help and exit. --version display version info and exit. -c (ignored) -C install only if different (preserve the last data modification time) -d create directories instead of installing files. -g GROUP $chgrpprog installed files to GROUP. -m MODE $chmodprog installed files to MODE. -o USER $chownprog installed files to USER. -s $stripprog installed files. -t DIRECTORY install into DIRECTORY. -T report an error if DSTFILE is a directory. Environment variables override the default commands: CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG " while test $# -ne 0; do case $1 in -c) ;; -C) copy_on_change=true;; -d) dir_arg=true;; -g) chgrpcmd="$chgrpprog $2" shift;; --help) echo "$usage"; exit $?;; -m) mode=$2 case $mode in *' '* | *' '* | *' '* | *'*'* | *'?'* | *'['*) echo "$0: invalid mode: $mode" >&2 exit 1;; esac shift;; -o) chowncmd="$chownprog $2" shift;; -s) stripcmd=$stripprog;; -t) dst_arg=$2 # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac shift;; -T) no_target_directory=true;; --version) echo "$0 $scriptversion"; exit $?;; --) shift break;; -*) echo "$0: invalid option: $1" >&2 exit 1;; *) break;; esac shift done if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then # When -d is used, all remaining arguments are directories to create. # When -t is used, the destination is already specified. # Otherwise, the last argument is the destination. Remove it from $@. for arg do if test -n "$dst_arg"; then # $@ is not empty: it contains at least $arg. set fnord "$@" "$dst_arg" shift # fnord fi shift # arg dst_arg=$arg # Protect names problematic for 'test' and other utilities. case $dst_arg in -* | [=\(\)!]) dst_arg=./$dst_arg;; esac done fi if test $# -eq 0; then if test -z "$dir_arg"; then echo "$0: no input file specified." >&2 exit 1 fi # It's OK to call 'install-sh -d' without argument. # This can happen when creating conditional directories. exit 0 fi if test -z "$dir_arg"; then do_exit='(exit $ret); exit $ret' trap "ret=129; $do_exit" 1 trap "ret=130; $do_exit" 2 trap "ret=141; $do_exit" 13 trap "ret=143; $do_exit" 15 # Set umask so as not to create temps with too-generous modes. # However, 'strip' requires both read and write access to temps. case $mode in # Optimize common cases. *644) cp_umask=133;; *755) cp_umask=22;; *[0-7]) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw='% 200' fi cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; *) if test -z "$stripcmd"; then u_plus_rw= else u_plus_rw=,u+rw fi cp_umask=$mode$u_plus_rw;; esac fi for src do # Protect names problematic for 'test' and other utilities. case $src in -* | [=\(\)!]) src=./$src;; esac if test -n "$dir_arg"; then dst=$src dstdir=$dst test -d "$dstdir" dstdir_status=$? else # Waiting for this to be detected by the "$cpprog $src $dsttmp" command # might cause directories to be created, which would be especially bad # if $src (and thus $dsttmp) contains '*'. if test ! -f "$src" && test ! -d "$src"; then echo "$0: $src does not exist." >&2 exit 1 fi if test -z "$dst_arg"; then echo "$0: no destination specified." >&2 exit 1 fi dst=$dst_arg # If destination is a directory, append the input filename; won't work # if double slashes aren't ignored. if test -d "$dst"; then if test -n "$no_target_directory"; then echo "$0: $dst_arg: Is a directory" >&2 exit 1 fi dstdir=$dst dst=$dstdir/`basename "$src"` dstdir_status=0 else # Prefer dirname, but fall back on a substitute if dirname fails. dstdir=` (dirname "$dst") 2>/dev/null || expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$dst" : 'X\(//\)[^/]' \| \ X"$dst" : 'X\(//\)$' \| \ X"$dst" : 'X\(/\)' \| . 2>/dev/null || echo X"$dst" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q' ` test -d "$dstdir" dstdir_status=$? fi fi obsolete_mkdir_used=false if test $dstdir_status != 0; then case $posix_mkdir in '') # Create intermediate dirs using mode 755 as modified by the umask. # This is like FreeBSD 'install' as of 1997-10-28. umask=`umask` case $stripcmd.$umask in # Optimize common cases. *[2367][2367]) mkdir_umask=$umask;; .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; *[0-7]) mkdir_umask=`expr $umask + 22 \ - $umask % 100 % 40 + $umask % 20 \ - $umask % 10 % 4 + $umask % 2 `;; *) mkdir_umask=$umask,go-w;; esac # With -d, create the new directory with the user-specified mode. # Otherwise, rely on $mkdir_umask. if test -n "$dir_arg"; then mkdir_mode=-m$mode else mkdir_mode= fi posix_mkdir=false case $umask in *[123567][0-7][0-7]) # POSIX mkdir -p sets u+wx bits regardless of umask, which # is incompatible with FreeBSD 'install' when (umask & 300) != 0. ;; *) tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 if (umask $mkdir_umask && exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 then if test -z "$dir_arg" || { # Check for POSIX incompatibilities with -m. # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or # other-writable bit of parent directory when it shouldn't. # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. ls_ld_tmpdir=`ls -ld "$tmpdir"` case $ls_ld_tmpdir in d????-?r-*) different_mode=700;; d????-?--*) different_mode=755;; *) false;; esac && $mkdirprog -m$different_mode -p -- "$tmpdir" && { ls_ld_tmpdir_1=`ls -ld "$tmpdir"` test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" } } then posix_mkdir=: fi rmdir "$tmpdir/d" "$tmpdir" else # Remove any dirs left behind by ancient mkdir implementations. rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null fi trap '' 0;; esac;; esac if $posix_mkdir && ( umask $mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" ) then : else # The umask is ridiculous, or mkdir does not conform to POSIX, # or it failed possibly due to a race condition. Create the # directory the slow way, step by step, checking for races as we go. case $dstdir in /*) prefix='/';; [-=\(\)!]*) prefix='./';; *) prefix='';; esac eval "$initialize_posix_glob" oIFS=$IFS IFS=/ $posix_glob set -f set fnord $dstdir shift $posix_glob set +f IFS=$oIFS prefixes= for d do test X"$d" = X && continue prefix=$prefix$d if test -d "$prefix"; then prefixes= else if $posix_mkdir; then (umask=$mkdir_umask && $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break # Don't fail if two instances are running concurrently. test -d "$prefix" || exit 1 else case $prefix in *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; *) qprefix=$prefix;; esac prefixes="$prefixes '$qprefix'" fi fi prefix=$prefix/ done if test -n "$prefixes"; then # Don't fail if two instances are running concurrently. (umask $mkdir_umask && eval "\$doit_exec \$mkdirprog $prefixes") || test -d "$dstdir" || exit 1 obsolete_mkdir_used=true fi fi fi if test -n "$dir_arg"; then { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 else # Make a couple of temp file names in the proper directory. dsttmp=$dstdir/_inst.$$_ rmtmp=$dstdir/_rm.$$_ # Trap to clean up those temp files at exit. trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 # Copy the file name to the temp name. (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && # and set any options; do chmod last to preserve setuid bits. # # If any of these fail, we abort the whole thing. If we want to # ignore errors from any of these, just make sure not to ignore # errors from the above "$doit $cpprog $src $dsttmp" command. # { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && # If -C, don't bother to copy if it wouldn't change the file. if $copy_on_change && old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && eval "$initialize_posix_glob" && $posix_glob set -f && set X $old && old=:$2:$4:$5:$6 && set X $new && new=:$2:$4:$5:$6 && $posix_glob set +f && test "$old" = "$new" && $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 then rm -f "$dsttmp" else # Rename the file to the real destination. $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || # The rename failed, perhaps because mv can't rename something else # to itself, or perhaps because mv is so ancient that it does not # support -f. { # Now remove or move aside any old file at destination location. # We try this two ways since rm can't unlink itself on some # systems and the destination file might be busy for other # reasons. In this case, the final cleanup might fail but the new # file should still install successfully. { test ! -f "$dst" || $doit $rmcmd -f "$dst" 2>/dev/null || { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } } || { echo "$0: cannot unlink or rename $dst" >&2 (exit 1); exit 1 } } && # Now rename the file to the real destination. $doit $mvcmd "$dsttmp" "$dst" } fi || exit 1 trap '' 0 fi done # Local variables: # eval: (add-hook 'write-file-hooks 'time-stamp) # time-stamp-start: "scriptversion=" # time-stamp-format: "%:y-%02m-%02d.%02H" # time-stamp-time-zone: "UTC" # time-stamp-end: "; # UTC" # End: units-2.16/units.c0000664000175000017500000050137213176043333013405 0ustar adrianadrian#define VERSION "2.16" /* * units, a program for units conversion * Copyright (C) 1996, 1997, 1999, 2000-2007, 2009, 2011-2017 * Free Software Foundation, Inc * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, * Boston, MA 02110-1301 USA * * This program was written by Adrian Mariano (adrianm@gnu.org) */ #define _XOPEN_SOURCE 600 #if defined (_WIN32) && defined (_MSC_VER) # include # include #endif #if defined (_WIN32) && defined (HAVE_MKS_TOOLKIT) # include # include #endif #include #include #include #include #include #include #ifndef NO_SETLOCALE # include #endif #ifdef SUPPORT_UTF8 /* Apparently this define is needed to get wcswidth() prototype */ # include # include # define UTF8VERSTR "with utf8" #else # define UTF8VERSTR "without utf8" #endif #ifdef READLINE # define RVERSTR "with readline" # include # include # define HISTORY_FILE ".units_history" # if defined (_WIN32) && defined (_MSC_VER) # include # define isatty _isatty # endif #else # define RVERSTR "without readline" #endif #include "getopt.h" #include "units.h" #ifndef UNITSFILE # define UNITSFILE "definitions.units" #endif #ifndef LOCALEMAP # define LOCALEMAP "locale_map.txt" #endif #ifndef DATADIR # define DATADIR "../share/units" #endif #if defined (_WIN32) && defined (_MSC_VER) # include # define getcwd _getcwd #else # include #endif #ifdef _WIN32 # define EXE_EXT ".exe" # define PATHSEP ';' #else # define EXE_EXT "" # define PATHSEP ':' #endif #ifndef EOFCHAR # ifdef _WIN32 # define EOFCHAR "Z" # else # define EOFCHAR "D" # endif #endif #define PRIMITIVECHAR '!' /* Character that marks irreducible units */ #define COMMENTCHAR '#' /* Comments marked by this character */ #define COMMANDCHAR '!' /* Unit database commands marked with this */ #define UNITSEPCHAR ';' /* Separator for unit lists. Include this */ /* char in rl_basic_word_break_characters */ /* and in nonunitchars defined in parse.y */ #define FUNCSEPCHAR ';' /* Separates forward and inverse definitions */ #define HELPCOMMAND "help" /* Command to request help at prompt */ #define SEARCHCOMMAND "search" /* Command to request text search of units */ #define UNITMATCH "?" /* Command to request conformable units */ #define DEFAULTPAGER "more" /* Default pager program */ #define DEFAULTLOCALE "en_US" /* Default locale */ #define MAXINCLUDE 5 /* Max depth of include files */ #define MAXFILES 25 /* Max number of units files on command line */ #define NODIM "!dimensionless" /* Marks dimensionless primitive units, such */ /* as the radian, which are ignored when */ /* doing unit comparisons */ #define NOPOINT -1 /* suppress display of pointer in processunit*/ #define NOERRMSG -2 /* no error messages in checkunitlist() */ #define MAXHISTORYFILE 5000 /* max length of history file for readline */ /* values for output number format */ #define BASE_FORMATS "gGeEf" /* printf() format types recognized pre-C99 */ #define DEFAULTPRECISION 8 /* default significant digits for printf() */ #define DEFAULTTYPE 'g' /* default number format type for printf() */ #define MAXPRECISION DBL_DIG /* maximum number precision for printf() */ #define HOME_UNITS_ENV "MYUNITSFILE" /* Personal units file environment var */ #define LICENSE "\ Copyright (C) 2017 Free Software Foundation, Inc.\n\ GNU Units comes with ABSOLUTELY NO WARRANTY.\n\ You may redistribute copies of GNU Units\n\ under the terms of the GNU General Public License." #define NOERROR_KEYWORD "noerror " /* The trailing space is important */ #define CO_NOARG -1 /* Key words for function definitions */ struct { char *word; char delimit; int checkopen; /* allow open intervals with parentheses */ } fnkeywords[]={ {"units=", FUNCSEPCHAR, 0}, {"domain=", ',', 1}, {"range=", ',',1}, {NOERROR_KEYWORD, ' ',CO_NOARG}, {0,0}}; #define FN_UNITS 0 #define FN_DOMAIN 1 #define FN_RANGE 2 #define FN_NOERROR 3 char *builtins[] = {"sin", "cos", "tan","ln", "log", "log2", "exp", "acos", "atan", "asin", "sqrt", "cuberoot", "per", 0}; struct { char *format; /* printf() format specification for numeric output */ int width; /* printf() width from format */ int precision; /* printf() precision from format */ char type; /* printf() type from format */ } num_format; struct { /* Program command line option flags */ int unitlists, /* Perform unit list output if set */ oneline, /* Suppresses the second line of output */ quiet, /* Supress prompting (-q option) */ round, /* Round the last of unit list output to nearest integer */ showfactor, /* */ strictconvert, /* Strict conversion (disables reciprocals) */ unitcheck, /* Enable unit checking: 1 for regular check, 2 for verbose*/ verbose, /* Flag for output verbosity */ readline; /* Using readline library? */ } flags; #define UTF8MARKER "\xEF\xBB\xBF" /* UTF-8 marker inserted by some Windows */ /* programs at start of a UTF-8 file */ struct parseflag parserflags; /* parser options */ char *homeunitsfile = ".units"; /* Units filename in home directory */ char *pager; /* Actual pager (from PAGER environment var) */ char *mylocale; /* Locale in effect (from LC_CTYPE or LANG) */ int utf8mode; /* Activate UTF8 support */ char *powerstring = "^"; /* Exponent character used in output */ char *unitsfiles[MAXFILES+1]; /* Null terminated list of units file names */ char *logfilename=0; /* Filename for logging */ FILE *logfile=0; /* File for logging */ char *progname; /* Used in error messages */ char *fullprogname; /* Full path of program; printversion() uses */ char *progdir; /* Used to find supporting files */ char *datadir; /* Used to find supporting files */ char *deftext=" Definition: ";/* Output text when printing definition */ char *digits = "0123456789.,"; #define QUERYHAVE "You have: " /* Prompt text for units to convert from */ #define QUERYWANT "You want: " /* Prompt text for units to convert to */ #define LOGFROM "From: " /* tag for log file */ #define LOGTO "To: " /* tag for log file */ #define HASHSIZE 101 /* Values from K&R 2nd ed., Sect. 6.6 */ #define HASHNUMBER 31 #define SIMPLEHASHSIZE 128 #define simplehash(str) (*(str) & 127) /* "hash" value for prefixes */ char *errormsg[]={"Successful completion", "Parse error", "Product overflow", "Unit reduction error (bad unit definition)", "Invalid sum or difference of non-conformable units", "Unit not dimensionless", "Unit not a root", "Unknown unit", "Bad argument", "Weird nonlinear unit type (bug in program)", "Function argument has wrong dimension", "Argument of function outside domain", "Nonlinear unit definition has unit error", "No inverse defined", "Parser memory overflow (recursive function definition?)", "Argument wrong dimension or bad nonlinear unit definition", "Cannot open units file", "Units file contains errors", "Memory allocation error", "Malformed number", "Unit name ends with nonzero digit without preceding '_'", "No previous result; '_' not set", "Base unit not dimensionless; rational exponent required", "Base unit not a root", "Exponent not dimensionless", "Unknown function name", }; char *invalid_utf8 = "invalid/nonprinting UTF-8"; char *irreducible=0; /* Name of last irreducible unit */ /* Hash table for unit definitions. */ struct unitlist { char *name; /* unit name */ char *value; /* unit value */ int linenumber; /* line in units data file where defined */ char *file; /* file where defined */ struct unitlist *next; /* next item in list */ } *utab[HASHSIZE]; /* Table for prefix definitions. */ struct prefixlist { int len; /* length of name string */ char *name; /* prefix name */ char *value; /* prefix value */ int linenumber; /* line in units data file where defined */ char *file; /* file where defined */ struct prefixlist *next; /* next item in list */ } *ptab[SIMPLEHASHSIZE]; struct wantalias { char *name; char *definition; struct wantalias *next; int linenumber; char *file; }; struct wantalias *firstalias = 0; struct wantalias **aliaslistend = &firstalias; /* Next list entry goes here */ /* Table for function definitions */ struct func *ftab[SIMPLEHASHSIZE]; /* Used for passing parameters to the parser when we are in the process of parsing a unit function. If function_parameter is non-nil, then whenever the text in function_parameter appears in a unit expression it is replaced by the unit value stored in parameter_value. */ char *function_parameter = 0; struct unittype *parameter_value = 0; /* Stores the last result value for replacement with '_' */ int lastunitset = 0; struct unittype lastunit; char *NULLUNIT = ""; /* Used for units that are canceled during reduction */ #define startswith(string, prefix) (!strncmp(string, prefix, strlen(prefix))) #define lastchar(string) (*((string)+strlen(string)-1)) #define emptystr(string) (*(string)==0) #ifdef READLINE char *historyfile; /* Filename for readline history */ int init_history_length; /* Length of history read from the history file*/ int init_history_base; void save_history(void) { int newentries; int err; newentries = history_length-init_history_length; if (history_max_entries > 0){ newentries += history_base - init_history_base; if (newentries > history_max_entries) newentries = history_max_entries; } err = append_history(newentries,historyfile); if (err){ if (err == ENOENT) err = write_history(historyfile); if (err) { printf("Unable to write history to '%s': %s\n",historyfile,strerror(err)); return; } } history_truncate_file(historyfile,MAXHISTORYFILE); } #endif /* Increases the buffer by BUFGROW bytes and leaves the new pointer in buf and the new buffer size in bufsize. */ #define BUFGROW 100 void growbuffer(char **buf, int *bufsize) { int usemalloc; usemalloc = !*buf || !*bufsize; *bufsize += BUFGROW; if (usemalloc) *buf = malloc(*bufsize); else *buf = realloc(*buf,*bufsize); if (!*buf){ fprintf(stderr, "%s: memory allocation error (growbuffer)\n",progname); exit(EXIT_FAILURE); } } /* Look for a subscript in the input string. A subscript starts with '_' and is followed by a sequence of only digits (matching the regexp "_[0-9]+"). The function returns 1 if it finds a subscript and zero otherwise. Note that it returns 1 for an input that is entirely subscript, with the '_' appearing in the first position. */ int hassubscript(const char *str) { const char *ptr = &lastchar(str); while (ptr>str){ if (!strchr(digits, *ptr)) return 0; ptr--; if (*ptr=='_') return 1; } return 0; } /* replace various Unicode minus symbols with ASCII hyphen-minus U+002D */ void replace_minus(char *input) { char *unicode_minus[] = { "\xE2\x80\x92", /* U+2012: figure dash */ "\xE2\x80\x93", /* U+2013: en dash */ "\xE2\x88\x92", /* U+2212: minus */ 0 }; char *inptr, *outptr, *ptr, **minus; for (minus=unicode_minus; *minus; minus++) { inptr = outptr = input; do { ptr = strstr(inptr, *minus); /* find next unicode minus */ if (ptr) { while (inptr < ptr) /* copy the input up to the minus symbol */ *outptr++ = *inptr++; *outptr++ = '-'; /* U+002D: hyphen-minus */ inptr = ptr + strlen(*minus); } } while (ptr); /* if no replacements were made, the input isn't changed */ if (inptr > input) { while (*inptr) *outptr++ = *inptr++; *outptr = '\0'; } } } /* Replace all control chars with a space */ void replacectrlchars(char *string) { for(;*string;string++) if (iscntrl(*string)) *string = ' '; } /* Fetch a line of data with backslash for continuation. The parameter count is incremented to report the number of newlines that are read so that line numbers can be accurately reported. */ char * fgetscont(char *buf, int size, FILE *file, int *count) { if (!fgets(buf,size,file)) return 0; (*count)++; while(strlen(buf)>=2 && 0==strcmp(buf+strlen(buf)-2,"\\\n")){ (*count)++; buf[strlen(buf)-2] = 0; /* delete trailing \n and \ char */ if (strlen(buf)>=size-1) /* return if the buffer is full */ return buf; if (!fgets(buf+strlen(buf), size - strlen(buf), file)) return buf; /* already read some data so return success */ } if (lastchar(buf) == '\\') { /* If last char of buffer is \ then */ ungetc('\\', file); /* we don't know if it is followed by */ lastchar(buf) = 0; /* a \n, so put it back and try again */ } return buf; } /* Gets arbitrarily long input data into a buffer using growbuffer(). Returns 0 if no data is read. Increments count by the number of newlines read unless it points to NULL. Replaces tabs and newlines with spaces before returning the result. */ char * fgetslong(char **buf, int *bufsize, FILE *file, int *count) { int dummy; if (!count) count = &dummy; if (!*bufsize) growbuffer(buf,bufsize); if (!fgetscont(*buf, *bufsize, file, count)) return 0; while (lastchar(*buf) != '\n' && !feof(file)){ growbuffer(buf, bufsize); fgetscont(*buf+strlen(*buf), *bufsize-strlen(*buf), file, count); (*count)--; } /* These nonprinting characters must be removed so that the test for UTF-8 validity will work. */ replacectrlchars(*buf); return *buf; } /* Allocates memory and aborts if malloc fails. */ void * mymalloc(int bytes,const char *mesg) { void *pointer; pointer = malloc(bytes); if (!pointer){ fprintf(stderr, "%s: memory allocation error %s\n", progname, mesg); exit(EXIT_FAILURE); } return pointer; } /* Duplicates a string */ char * dupstr(const char *str) { char *ret; ret = mymalloc(strlen(str) + 1,"(dupstr)"); strcpy(ret, str); return ret; } /* Duplicates a string that is not null-terminated, adding the null to the copy */ char * dupnstr(const char *string, int length) { char *newstr; newstr = mymalloc(length+1,"(dupnstr)"); strncpy(newstr, string, length); newstr[length]=0; return newstr; } #ifdef SUPPORT_UTF8 /* The strwidth function gives the printed width of a UTF-8 byte sequence. It will return -1 if the sequence is an invalid UTF-8 sequence or if the sequence contains "nonprinting" characters. Note that \n and \t are "nonprinting" characters. */ int strwidth(const char *str) { wchar_t *widestr; int len; if (!utf8mode) return strlen(str); len = strlen(str)+1; widestr = mymalloc(sizeof(wchar_t)*len, "(strwidth)"); len = mbsrtowcs(widestr, &str, len, NULL); if (len==-1){ free(widestr); return -1; /* invalid multibyte sequence */ } len=wcswidth(widestr, len); free(widestr); return len; } #else # define strwidth strlen #endif /* hashing algorithm for units */ unsigned uhash(const char *str) { unsigned hashval; for (hashval = 0; *str; str++) hashval = *str + HASHNUMBER * hashval; return (hashval % HASHSIZE); } /* Lookup a unit in the units table. Returns the definition, or NULL if the unit isn't found in the table. */ struct unitlist * ulookup(const char *str) { struct unitlist *uptr; for (uptr = utab[uhash(str)]; uptr; uptr = uptr->next) if (strcmp(str, uptr->name) == 0) return uptr; return NULL; } /* Lookup a prefix in the prefix table. Finds the longest prefix that matches the beginning of the input string. Returns NULL if no prefixes match. */ struct prefixlist * plookup(const char *str) { struct prefixlist *prefix; struct prefixlist *bestprefix=NULL; int bestlength=0; for (prefix = ptab[simplehash(str)]; prefix; prefix = prefix->next) { if (prefix->len > bestlength && !strncmp(str, prefix->name, prefix->len)){ bestlength = prefix->len; bestprefix = prefix; } } return bestprefix; } /* Look up function in the function linked list */ struct func * fnlookup(const char *str) { struct func *funcptr; for(funcptr=ftab[simplehash(str)];funcptr;funcptr = funcptr->next) if (!strcmp(funcptr->name, str)) return funcptr; return 0; } struct wantalias * aliaslookup(const char *str) { struct wantalias *aliasptr; for(aliasptr = firstalias; aliasptr; aliasptr=aliasptr->next) if (!strcmp(aliasptr->name, str)) return aliasptr; return 0; } /* Insert a new function into the linked list of functions */ void addfunction(struct func *newfunc) { int val; val = simplehash(newfunc->name); newfunc->next = ftab[val]; ftab[val] = newfunc; } /* Free the fields in the function except for the name so that it can be redefined. It remains in position in the linked list. */ void freefunction(struct func *funcentry) { if (funcentry->table){ free(funcentry->table); free(funcentry->tableunit); } else { free(funcentry->forward.param); free(funcentry->forward.def); if (funcentry->forward.domain_min) free(funcentry->forward.domain_min); if (funcentry->forward.domain_max) free(funcentry->forward.domain_max); if (funcentry->inverse.domain_min) free(funcentry->inverse.domain_min); if (funcentry->inverse.domain_max) free(funcentry->inverse.domain_max); if (funcentry->forward.dimen) free(funcentry->forward.dimen); if (funcentry->inverse.dimen) free(funcentry->inverse.dimen); if (funcentry->inverse.def) free(funcentry->inverse.def); if (funcentry->inverse.param) free(funcentry->inverse.param); } } /* Remove leading and trailing spaces from the input */ void removespaces(char *in) { char *ptr; if (*in) { for(ptr = &lastchar(in); *ptr==' '; ptr--); /* Last non-space */ *(ptr+1)=0; if (*in==' '){ ptr = in + strspn(in," "); memmove(in, ptr, strlen(ptr)+1); } } } /* Looks up an inverse function given as a ~ character followed by spaces and then the function name. The spaces will be deleted as a side effect. If an inverse function is found returns the function pointer, otherwise returns null. */ struct func * invfnlookup(char *str) { if (*str != '~') return 0; removespaces(str+1); return fnlookup(str+1); } char * strip_comment(char *line) { char *comment = 0; if ((line = strchr(line,COMMENTCHAR))) { comment = line+1; *line = 0; } return comment; } /* Print string but replace two consecutive spaces with one space. */ void tightprint(FILE *outfile, char *string) { while(*string){ fputc(*string, outfile); if (*string != ' ') string++; else while(*string==' ') string++; } } #define readerror (goterr=1) && errfile && fprintf #define VAGUE_ERR "%s: error in units file '%s' line %d\n", \ progname, file, linenum /* Print out error message encountered while reading the units file. */ /* Splits the line into two parts. The first part is space delimited. The second part is everything else. Removes trailing spaces from the second part. Returned items are null if no parameter was found. */ void splitline(char *line, char **first, char **second) { *second = 0; *first = strtok(line, " "); if (*first){ *second = strtok(0, "\n"); if (*second){ removespaces(*second); if (emptystr(*second)) *second = 0; } } } /* see if character is part of a valid decimal number */ int isdecimal(char c) { return strchr(digits, c) != NULL; } /* Check for some invalid unit names. Print error message. Returns 1 if unit name is bad, zero otherwise. */ int checkunitname(char *name, int linenum, char *file, FILE *errfile) { char **ptr; if (strchr(digits, name[0])){ if (errfile) fprintf(errfile, "%s: unit '%s' in units file '%s' on line %d ignored. It starts with a digit\n", progname, name, file, linenum); return 1; } for(ptr=builtins;*ptr;ptr++) if (!strcmp(name, *ptr)){ if (errfile) fprintf(errfile, "%s: redefinition of built-in function '%s' in file '%s' on line %d ignored.\n", progname, name, file, linenum); return 1; } return 0; } int newunit(char *unitname, char *unitdef, int *count, int linenum, char *file,FILE *errfile) { struct unitlist *uptr; unsigned hashval; /* units ending with '_' create ambiguity for exponents */ if (unitname[0]=='_' || lastchar(unitname)=='_'){ if (errfile) fprintf(errfile, "%s: unit '%s' on line %d of '%s' ignored. It starts or ends with '_'\n", progname, unitname, linenum, file); return E_BADFILE; } /* Units that end in [2-9] can never be accessed */ if (strchr(".,23456789", lastchar(unitname)) && !hassubscript(unitname)){ if (errfile) fprintf(errfile, "%s: unit '%s' on line %d of '%s' ignored. %s\n", progname, unitname, linenum, file,errormsg[E_UNITEND]); return E_BADFILE; } if (checkunitname(unitname, linenum, file, errfile)) return E_BADFILE; if ((uptr=ulookup(unitname))) { /* Is it a redefinition? */ if (flags.unitcheck && errfile) fprintf(errfile, "%s: unit '%s' defined on line %d of '%s' is redefined on line %d of '%s'.\n", progname, unitname, uptr->linenumber,uptr->file, linenum, file); free(uptr->value); } else { /* make new units table entry */ uptr = (struct unitlist *) mymalloc(sizeof(*uptr),"(newunit)"); uptr->name = dupstr(unitname); /* install unit name/value pair in list */ hashval = uhash(uptr->name); uptr->next = utab[hashval]; utab[hashval] = uptr; (*count)++; } uptr->value = dupstr(unitdef); uptr->linenumber = linenum; uptr->file = file; return 0; } int newprefix(char *unitname, char *unitdef, int *count, int linenum, char *file,FILE *errfile) { struct prefixlist *pfxptr; unsigned pval; lastchar(unitname) = 0; if (checkunitname(unitname,linenum,file,errfile)) return E_BADFILE; if ((pfxptr = plookup(unitname)) /* already there: redefinition */ && !strcmp(pfxptr->name, unitname)){ if (flags.unitcheck && errfile) fprintf(errfile, "%s: prefix '%s-' defined on line %d of '%s' is redefined on line %d of '%s'.\n", progname, unitname, pfxptr->linenumber,pfxptr->file, linenum, file); free(pfxptr->value); } else { pfxptr = (struct prefixlist *) mymalloc(sizeof(*pfxptr),"(newprefix)"); pfxptr->name = dupstr(unitname); pfxptr->len = strlen(unitname); pval = simplehash(unitname); pfxptr->next = ptab[pval]; ptab[pval] = pfxptr; (*count)++; } pfxptr->value = dupstr(unitdef); pfxptr->linenumber = linenum; pfxptr->file = file; return 0; } /* parsepair() looks for data of the form [text1,text2] where the ',' is a specified delimiter. The second argument, text2, is optional and if it's missing then second is set to NULL. The parameters are allowed to be empty strings. The function returns the first character after the closing bracket if no errors occur or the NULL pointer on error. */ char * parsepair(char *input, char **first, char **second, int *firstopen, int *secondopen, char delimiter, int checkopen, char *unitname, int linenum, char *file,FILE *errfile) { char *start, *end, *middle; start = strpbrk(input, checkopen?"[(":"["); if (!start){ if (errfile) fprintf(errfile, "%s: expecting '[' %s in definition of '%s' in '%s' line %d\n", progname, checkopen ? "or '('":"", unitname, file, linenum); return 0; } if (*start=='(') *firstopen=1; else *firstopen=0; *start++=0; removespaces(input); if (!emptystr(input)){ if (errfile) fprintf(errfile, "%s: unexpected characters before '%c' in definition of '%s' in '%s' line %d\n", progname, *firstopen?'(':'[',unitname, file, linenum); return 0; } end = strpbrk(start, checkopen?"])":"]"); if (!end){ if (errfile) fprintf(errfile, "%s: expecting ']' %s in definition of '%s' in '%s' line %d\n", progname, checkopen?"or ')'":"",unitname, file, linenum); return 0; } if (*end==')') *secondopen=1; else *secondopen=0; *end++=0; middle = strchr(start,delimiter); if (middle){ *middle++=0; removespaces(middle); *second = middle; } else *second = 0; removespaces(start); *first = start; return end; } /* Extract numbers from two text strings and place them into pointers. Has two error codes for decreasing interval or bad numbers in the text strings. Returns 0 on success. */ #define EI_ERR_DEC 1 /* Decreasing interval */ #define EI_ERR_MALF 2 /* Malformed number */ int extract_interval(char *first, char *second, double **firstout, double **secondout) { double val; char *end; if (!emptystr(first)){ val = strtod(first, &end); if (*end) return EI_ERR_MALF; else { *firstout=(double *)mymalloc(sizeof(double), "(extract_interval)"); **firstout = val; } } if (second && !emptystr(second)){ val = strtod(second, &end); if (*end) return EI_ERR_MALF; else if (*firstout && **firstout>=val) return EI_ERR_DEC; else { *secondout=(double *)mymalloc(sizeof(double), "(extract_interval)"); **secondout = val; } } return 0; } void copyfunctype(struct functype *dest, struct functype *src) { dest->domain_min_open = src->domain_min_open; dest->domain_max_open = src->domain_max_open; dest->param = dest->def = dest->dimen = NULL; dest->domain_min = dest->domain_max = NULL; if (src->param) dest->param = dupstr(src->param); if (src->def) dest->def = dupstr(src->def); if (src->dimen) dest->dimen = dupstr(src->dimen); if (src->domain_min){ dest->domain_min = (double *) mymalloc(sizeof(double), "(copyfunctype)"); *dest->domain_min = *src->domain_min; } if (src->domain_max){ dest->domain_max = (double *) mymalloc(sizeof(double), "(copyfunctype)"); *dest->domain_max = *src->domain_max; } } int copyfunction(char *unitname, char *funcname, int *count, int linenum, char *file, FILE *errfile) { struct func *source, *funcentry; int i; if (checkunitname(unitname, linenum, file, errfile)) return E_BADFILE; removespaces(funcname); i = strlen(funcname)-2; /* strip trailing () if present */ if (i>0 && !strcmp(funcname+i,"()")) funcname[i]=0; source = fnlookup(funcname); if (!source) { if (errfile){ if (!strpbrk(funcname," ;][()+*/-^")) fprintf(errfile,"%s: bad definition for '%s' in '%s' line %d, function '%s' not defined\n", progname, unitname, file, linenum, funcname); else fprintf(errfile,"%s: bad function definition of '%s' in '%s' line %d\n", progname,unitname,file,linenum); } return E_BADFILE; } if ((funcentry=fnlookup(unitname))){ if (flags.unitcheck && errfile) fprintf(errfile, "%s: function '%s' defined on line %d of '%s' is redefined on line %d of '%s'.\n", progname, unitname, funcentry->linenumber,funcentry->file, linenum, file); freefunction(funcentry); } else { funcentry = (struct func*)mymalloc(sizeof(struct func),"(newfunction)"); funcentry->name = dupstr(unitname); addfunction(funcentry); (*count)++; } funcentry->linenumber = linenum; funcentry->file = file; funcentry->skip_error_check = source->skip_error_check; if (source->table){ funcentry->tablelen = source->tablelen; funcentry->tableunit = dupstr(source->tableunit); funcentry->table = (struct pair *) mymalloc(sizeof(struct pair)*funcentry->tablelen, "(copyfunction)"); for(i=0;itablelen;i++){ funcentry->table[i].location = source->table[i].location; funcentry->table[i].value = source->table[i].value; } } else { funcentry->table = 0; copyfunctype(&funcentry->forward, &source->forward); copyfunctype(&funcentry->inverse, &source->inverse); } return 0; } #define FREE_STUFF {if (forward_dim) free(forward_dim);\ if (inverse_dim) free(inverse_dim);\ if (domain_min) free(domain_min);\ if (domain_max) free(domain_max);\ if (range_min) free(range_min);\ if (range_max) free(range_max);} #define REPEAT_ERR \ if (errfile) fprintf(errfile, \ "%s: keyword '%s' repeated in definition of '%s' on line %d of '%s'.\n",\ progname,fnkeywords[i].word,unitname, linenum, file) int newfunction(char *unitname, char *unitdef, int *count, int linenum, char *file,FILE *errfile) { char *start, *end, *inv, *forward_dim, *inverse_dim, *first, *second; double *domain_min, *domain_max, *range_min, *range_max; struct func *funcentry; int looking_for_keywords,i, firstopen, secondopen; int domain_min_open, domain_max_open, range_min_open, range_max_open; int noerror = 0; if (*unitname=='('){ if (errfile) fprintf(errfile, "%s: unit '%s' on line %d of '%s' ignored. It starts with a '('\n", progname, unitname, linenum, file); return E_BADFILE; } /* coverity[returned_null] */ start = strchr(unitname,'('); end = strchr(unitname,')'); *start++ = 0; if (checkunitname(unitname,linenum,file,errfile)) return E_BADFILE; if (start==end) /* no argument: function() so make a function copy */ return copyfunction(unitname, unitdef, count, linenum, file, errfile); if (!end || strlen(end)>1){ if (errfile) fprintf(errfile, "%s: bad function definition of '%s' in '%s' line %d\n", progname,unitname,file,linenum); return E_BADFILE; } *end=0; forward_dim = NULL; inverse_dim = NULL; domain_min = NULL; domain_max = NULL; range_min = NULL; range_max = NULL; domain_min_open = 0; domain_max_open = 0; range_min_open = 0; range_max_open = 0; looking_for_keywords=1; while (looking_for_keywords) { looking_for_keywords = 0; for(i=0;fnkeywords[i].word;i++){ if (startswith(unitdef, fnkeywords[i].word)){ looking_for_keywords = 1; /* found keyword so keep looking */ unitdef+=strlen(fnkeywords[i].word); if (fnkeywords[i].checkopen!=CO_NOARG){ unitdef = parsepair(unitdef,&first, &second, &firstopen, &secondopen, fnkeywords[i].delimit, fnkeywords[i].checkopen, unitname, linenum, file,errfile); if (!unitdef){ FREE_STUFF; return E_BADFILE; } removespaces(unitdef); } if (i==FN_NOERROR) noerror = 1; if (i==FN_UNITS){ if (forward_dim || inverse_dim){ REPEAT_ERR; return E_BADFILE; } forward_dim = dupstr(first); if (second) inverse_dim = dupstr(second); } if (i==FN_DOMAIN){ int err=0; if (domain_min || domain_max){ REPEAT_ERR; return E_BADFILE; } err = extract_interval(first,second,&domain_min, &domain_max); domain_min_open = firstopen; domain_max_open = secondopen; if (err) FREE_STUFF; if (err==EI_ERR_DEC){ if (errfile) fprintf(errfile, "%s: second endpoint for domain must be greater than the first\n in definition of '%s' in '%s' line %d\n", progname, unitname, file, linenum); return E_BADFILE; } if (err==EI_ERR_MALF){ if (errfile) fprintf(errfile, "%s: malformed domain in definition of '%s' in '%s' line %d\n", progname, unitname, file, linenum); return E_BADFILE; } } if (i==FN_RANGE){ int err=0; if (range_min || range_max){ REPEAT_ERR; FREE_STUFF; return E_BADFILE; } err = extract_interval(first,second,&range_min, &range_max); range_min_open = firstopen; range_max_open = secondopen; if (err) FREE_STUFF; if (err==EI_ERR_DEC){ if (errfile) fprintf(errfile, "%s: second endpoint for range must be greater than the first\n in definition of '%s' in '%s' line %d\n", progname, unitname, file, linenum); return E_BADFILE; } if (err==EI_ERR_MALF){ if (errfile) fprintf(errfile, "%s: malformed range in definition of '%s' in '%s' line %d\n", progname, unitname, file, linenum); return E_BADFILE; } } } } } if (emptystr(unitdef)){ if (errfile) fprintf(errfile, "%s: function '%s' lacks a definition at line %d of '%s'\n", progname, unitname, linenum, file); FREE_STUFF; return E_BADFILE; } if (*unitdef=='['){ if (errfile) fprintf(errfile, "%s: function '%s' missing keyword before '[' on line %d of '%s'\n", progname, unitname, linenum, file); FREE_STUFF; return E_BADFILE; } /* Check that if domain and range are specified and nonzero then the units are given. Otherwise these are meaningless. */ if (!forward_dim && ((domain_min && *domain_min) || (domain_max && *domain_max))){ if (errfile) fprintf(errfile,"%s: function '%s' defined on line %d of '%s' has domain with no units.\n", progname, unitname, linenum, file); FREE_STUFF; return E_BADFILE; } if (!inverse_dim && ((range_min && *range_min) || (range_max && *range_max))){ if (errfile) fprintf(errfile,"%s: function '%s' defined on line %d of '%s' has range with no units.\n", progname, unitname, linenum, file); FREE_STUFF; return E_BADFILE; } if ((funcentry=fnlookup(unitname))){ if (flags.unitcheck && errfile) fprintf(errfile, "%s: function '%s' defined on line %d of '%s' is redefined on line %d of '%s'.\n", progname, unitname, funcentry->linenumber,funcentry->file, linenum, file); freefunction(funcentry); } else { funcentry = (struct func*)mymalloc(sizeof(struct func),"(newfunction)"); funcentry->name = dupstr(unitname); addfunction(funcentry); (*count)++; } funcentry->table = 0; funcentry->skip_error_check = noerror; funcentry->forward.dimen = forward_dim; funcentry->inverse.dimen = inverse_dim; funcentry->forward.domain_min = domain_min; funcentry->forward.domain_max = domain_max; funcentry->inverse.domain_min = range_min; funcentry->inverse.domain_max = range_max; funcentry->forward.domain_min_open = domain_min_open; funcentry->forward.domain_max_open = domain_max_open; funcentry->inverse.domain_min_open = range_min_open; funcentry->inverse.domain_max_open = range_max_open; inv = strchr(unitdef,FUNCSEPCHAR); if (inv) *inv++ = 0; funcentry->forward.param = dupstr(start); removespaces(unitdef); funcentry->forward.def = dupstr(unitdef); if (inv){ removespaces(inv); funcentry->inverse.def = dupstr(inv); funcentry->inverse.param = dupstr(unitname); } else { funcentry->inverse.def = 0; funcentry->inverse.param = 0; } funcentry->linenumber = linenum; funcentry->file = file; return 0; } int newtable(char *unitname,char *unitdef, int *count, int linenum, char *file,FILE *errfile) { char *start, *end; char *tableunit; int tablealloc, tabpt; struct pair *tab; struct func *funcentry; int noerror = 0; /* coverity[returned_null] */ tableunit = strchr(unitname,'['); end = strchr(unitname,']'); *tableunit++=0; if (checkunitname(unitname, linenum, file, errfile)) return E_BADFILE; if (!end){ if (errfile) fprintf(errfile,"%s: missing ']' in units file '%s' line %d\n", progname,file,linenum); return E_BADFILE; } if (strlen(end)>1){ if (errfile) fprintf(errfile, "%s: unexpected characters after ']' in units file '%s' line %d\n", progname,file,linenum); return E_BADFILE; } *end=0; tab = (struct pair *)mymalloc(sizeof(struct pair)*20, "(newtable)"); tablealloc=20; tabpt = 0; start = unitdef; if (startswith(start, NOERROR_KEYWORD)) { noerror = 1; start += strlen(NOERROR_KEYWORD); removespaces(start); } while (1) { if (tabpt>=tablealloc){ tablealloc+=20; tab = (struct pair *)realloc(tab,sizeof(struct pair)*tablealloc); if (!tab){ if (errfile) fprintf(errfile, "%s: memory allocation error (newtable)\n", progname); return E_MEMORY; } } tab[tabpt].location = strtod(start,&end); if (start==end || (!emptystr(end) && *end !=' ')){ if (!emptystr(start)) { if (strlen(start)>15) start[15]=0; /* Truncate for error msg display */ if (errfile) fprintf(errfile, "%s: cannot parse table definition %s at '%s' on line %d of '%s'\n", progname, unitname, start, linenum, file); free(tab); return E_BADFILE; } break; } if (tabpt>0 && tab[tabpt].location<=tab[tabpt-1].location){ if (errfile) fprintf(errfile,"%s: points don't increase (%.8g to %.8g) in units file '%s' line %d\n", progname, tab[tabpt-1].location, tab[tabpt].location, file, linenum); free(tab); return E_BADFILE; } start=end+strspn(end," "); tab[tabpt].value = strtod(start,&end); if (start==end){ if (errfile) fprintf(errfile,"%s: missing value after %.8g in units file '%s' line %d\n", progname, tab[tabpt].location, file, linenum); free(tab); return E_BADFILE; } tabpt++; start=end+strspn(end," ,"); } if ((funcentry=fnlookup(unitname))){ if (flags.unitcheck && errfile) fprintf(errfile, "%s: unit '%s' defined on line %d of '%s' is redefined on line %d of '%s'.\n", progname, unitname, funcentry->linenumber,funcentry->file, linenum, file); freefunction(funcentry); } else { funcentry = (struct func *)mymalloc(sizeof(struct func),"(newtable)"); funcentry->name = dupstr(unitname); addfunction(funcentry); (*count)++; } funcentry->tableunit = dupstr(tableunit); funcentry->tablelen = tabpt; funcentry->table = tab; funcentry->skip_error_check = noerror; funcentry->linenumber = linenum; funcentry->file = file; return 0; } int newalias(char *unitname, char *unitdef,int linenum, char *file,FILE *errfile) { struct wantalias *aliasentry; if (!strchr(unitdef, UNITSEPCHAR)){ if (errfile) fprintf(errfile, "%s: unit list missing '%c' on line %d of '%s'\n", progname, UNITSEPCHAR, linenum, file); return E_BADFILE; } if ((aliasentry=aliaslookup(unitname))){ /* duplicate alias */ if (flags.unitcheck && errfile) fprintf(errfile, "%s: unit list '%s' defined on line %d of '%s' is redefined on line %d of '%s'.\n", progname, unitname, aliasentry->linenumber, aliasentry->file, linenum, file); free(aliasentry->definition); } else { aliasentry = (struct wantalias *) mymalloc(sizeof(struct wantalias),"(newalias)"); aliasentry->name = dupstr(unitname); aliasentry->next = 0; *aliaslistend = aliasentry; aliaslistend = &aliasentry->next; } aliasentry->definition = dupstr(unitdef); aliasentry->linenumber = linenum; aliasentry->file = file; return 0; } /* Check environment variable name to see if its value appears on the space delimited text string pointed to by list. Returns 2 if the environment variable is not set, return 1 if its value appears on the list and zero otherwise. */ int checkvar(char *name, char *list) { char *listitem; name = getenv(name); if (!name) return 2; listitem = strtok(list," "); while (listitem){ if (!strcmp(name, listitem)) return 1; listitem = strtok(0," "); } return 0; } #ifdef NO_SETENV int setenv(const char *name, const char *val, int overwrite) { char *environment; if (!overwrite && getenv(name) != NULL) return 0; environment = (char *) malloc(strlen(name) + strlen(val) + 2); if (!environment) return 1; strcpy(environment, name); strcat(environment, "="); strcat(environment, val); /* putenv() doesn't copy its argument, so don't free environment */ #if defined (_WIN32) && defined (_MSC_VER) return _putenv(environment); #else return putenv(environment); #endif } #endif #ifdef _WIN32 # define isdirsep(c) ((c) == '/' || (c) == '\\') # define hasdirsep(s) strpbrk((s),"/\\") #else # define isdirsep(c) ((c) == '/') # define hasdirsep(s) strchr((s),'/') #endif #define isexe(s) ((strlen(s) == 4) && (tolower(s[1]) == 'e') \ && (tolower(s[2]) == 'x') && (tolower(s[3]) == 'e')) /* Returns a pointer to the end of the pathname part of the specified filename */ char * pathend(char *filename) { char *pointer; for(pointer=filename+strlen(filename);pointer>filename;pointer--){ if (isdirsep(*pointer)) { pointer++; break; } } return pointer; } int isfullpath(char *path) { #ifdef _WIN32 /* handle Windows drive specifier */ if (isalpha(*path) && *(path + 1) == ':') path += 2; #endif return isdirsep(*path); } /* Read in units data. file - Filename to load errfile - File to receive messages about errors in the units database. Set it to 0 to suppress errors. unitcount, prefixcount, funccount - Return statistics to the caller. Must initialize to zero before calling. depth - Used to prevent recursive includes. Call with it set to zero. The global variable progname is used in error messages. */ int readunits(char *file, FILE *errfile, int *unitcount, int *prefixcount, int *funccount, int depth) { FILE *unitfile; char *line = 0, *lineptr, *unitdef, *unitname, *permfile; int len, linenum, linebufsize, goterr, retcode; int locunitcount, locprefixcount, locfunccount; int wronglocale = 0; /* If set then we are currently reading data */ int inlocale = 0; /* for the wrong locale so we should skip it */ int in_utf8 = 0; /* If set we are reading utf8 data */ int invar = 0; /* If set we are in data for an env variable.*/ int wrongvar = 0; /* If set then we are not processing */ locunitcount = 0; locprefixcount = 0; locfunccount = 0; linenum = 0; linebufsize = 0; goterr = 0; unitfile = fopen(file, "rt"); if (!unitfile) return E_FILE; growbuffer(&line,&linebufsize); /* coverity[alloc_fn] */ permfile = dupstr(file); /* This is a permanent copy to reference in */ /* the database. It is never freed. */ while (!feof(unitfile)) { if (!fgetslong(&line, &linebufsize, unitfile, &linenum)) break; if (linenum==1 && startswith(line, UTF8MARKER)){ int i; for(lineptr=line,i=0;iMAXINCLUDE){ readerror(errfile, "%s: max include depth of %d exceeded in file '%s' line %d\n", progname, MAXINCLUDE, file, linenum); } else { int readerr; char *includefile; unitname = strtok(0, " "); if (!unitname){ readerror(errfile, "%s: missing include filename on line %d of '%s'\n", progname, linenum, file); continue; } includefile = mymalloc(strlen(file)+strlen(unitname)+1, "(readunits)"); if (isfullpath(unitname)) strcpy(includefile,unitname); else { strcpy(includefile,file); strcpy(pathend(includefile), unitname); } readerr = readunits(includefile, errfile, unitcount, prefixcount, funccount, depth+1); if (readerr == E_MEMORY){ fclose(unitfile); free(line); free(includefile); return readerr; } if (readerr == E_FILE) { readerror(errfile, "%s: cannot open included file '%s' at line %d of file '%s\n", progname, includefile, linenum, file); } if (readerr) goterr = 1; free(includefile); } } else /* not a valid command */ readerror(errfile,VAGUE_ERR); continue; } if (in_utf8 && !utf8mode) continue; if (wronglocale || wrongvar) continue; splitline(line, &unitname, &unitdef); if (!unitname) continue; if (!unitdef){ readerror(errfile, "%s: unit '%s' lacks a definition at line %d of '%s'\n", progname, unitname, linenum, file); continue; } len = strlen(unitname); if (unitname[len - 1] == '-'){ /* it's a prefix definition */ if (newprefix(unitname,unitdef,&locprefixcount,linenum, permfile,errfile)) goterr=1; } else if (strchr(unitname,'[')){ /* table definition */ retcode=newtable(unitname,unitdef,&locfunccount,linenum, permfile,errfile); if (retcode){ if (retcode != E_BADFILE){ fclose(unitfile); free(line); return retcode; } goterr=1; } } else if (strchr(unitname,'(')){ /* function definition */ if (newfunction(unitname,unitdef,&locfunccount,linenum, permfile,errfile)) goterr = 1; } else { /* ordinary unit definition */ if (newunit(unitname,unitdef,&locunitcount,linenum,permfile,errfile)) goterr = 1; } } fclose(unitfile); free(line); if (unitcount) *unitcount+=locunitcount; if (prefixcount) *prefixcount+=locprefixcount; if (funccount) *funccount+=locfunccount; if (goterr) return E_BADFILE; else return 0; } /* Initialize a unit to be equal to 1. */ void initializeunit(struct unittype *theunit) { theunit->factor = 1.0; theunit->numerator[0] = theunit->denominator[0] = NULL; } /* Free a unit: frees all the strings used in the unit structure. Does not free the unit structure itself. */ void freeunit(struct unittype *theunit) { char **ptr; for(ptr = theunit->numerator; *ptr; ptr++) if (*ptr != NULLUNIT) free(*ptr); for(ptr = theunit->denominator; *ptr; ptr++) if (*ptr != NULLUNIT) free(*ptr); /* protect against repeated calls to freeunit() */ theunit->numerator[0] = 0; theunit->denominator[0] = 0; } void logprintf(const char *format, ...) { va_list args; va_start(args, format); vprintf(format, args); va_end(args); if (logfile) { va_start(args, format); vfprintf(logfile, format, args); va_end(args); } } void logputchar(char c) { putchar(c); if (logfile) fputc(c, logfile); } void logputs(const char *s) { fputs(s, stdout); if (logfile) fputs(s, logfile); } /* Print out a unit */ void showunit(struct unittype *theunit) { char **ptr; int printedslash; int counter = 1; logprintf(num_format.format, theunit->factor); for (ptr = theunit->numerator; *ptr; ptr++) { if (ptr > theunit->numerator && **ptr && !strcmp(*ptr, *(ptr - 1))) counter++; else { if (counter > 1) logprintf("%s%d", powerstring, counter); if (**ptr) logprintf(" %s", *ptr); counter = 1; } } if (counter > 1) logprintf("%s%d", powerstring, counter); counter = 1; printedslash = 0; for (ptr = theunit->denominator; *ptr; ptr++) { if (ptr > theunit->denominator && **ptr && !strcmp(*ptr, *(ptr - 1))) counter++; else { if (counter > 1) logprintf("%s%d", powerstring, counter); if (**ptr) { if (!printedslash) logprintf(" /"); printedslash = 1; logprintf(" %s", *ptr); } counter = 1; } } if (counter > 1) logprintf("%s%d", powerstring, counter); } /* qsort comparison function */ int compare(const void *item1, const void *item2) { return strcmp(*(char **) item1, *(char **) item2); } /* Sort numerator and denominator of a unit so we can compare different units */ void sortunit(struct unittype *theunit) { char **ptr; int count; for (count = 0, ptr = theunit->numerator; *ptr; ptr++, count++); qsort(theunit->numerator, count, sizeof(char *), compare); for (count = 0, ptr = theunit->denominator; *ptr; ptr++, count++); qsort(theunit->denominator, count, sizeof(char *), compare); } /* Cancels duplicate units that appear in the numerator and denominator. The input unit must be sorted. */ void cancelunit(struct unittype *theunit) { char **den, **num; int comp; den = theunit->denominator; num = theunit->numerator; while (*num && *den) { comp = strcmp(*den, *num); if (!comp) { /* units match, so cancel them */ if (*den!=NULLUNIT) free(*den); if (*num!=NULLUNIT) free(*num); *den++ = NULLUNIT; *num++ = NULLUNIT; } else if (comp < 0) /* Move up whichever pointer is alphabetically */ den++; /* behind to look for future matches */ else num++; } } /* Looks up the definition for the specified unit including prefix processing and plural removal. Returns a pointer to the definition or a null pointer if the specified unit does not appear in the units table. Sometimes the returned pointer will be a pointer to the special buffer created to hold the data. This buffer grows as needed during program execution. Note that if you pass the output of lookupunit() back into the function again you will get correct results, but the data you passed in may get clobbered if it happened to be the internal buffer. */ static int bufsize=0; static char *buffer; /* buffer for lookupunit answers with prefixes */ /* Plural rules for english: add -s after x, sh, ch, ss add -es -y becomes -ies except after a vowel when you just add -s as usual */ char * lookupunit(char *unit,int prefixok) { char *copy; struct prefixlist *pfxptr; struct unitlist *uptr; if ((uptr = ulookup(unit))) return uptr->value; if (strwidth(unit)>2 && lastchar(unit) == 's') { copy = dupstr(unit); lastchar(copy) = 0; if (lookupunit(copy,prefixok)){ while(strlen(copy)+1 > bufsize) { growbuffer(&buffer, &bufsize); } strcpy(buffer, copy); /* Note: returning looked up result seems */ free(copy); /* better but it causes problems when it */ return buffer; /* contains PRIMITIVECHAR. */ } if (strlen(copy)>2 && lastchar(copy) == 'e') { lastchar(copy) = 0; if (lookupunit(copy,prefixok)){ while (strlen(copy)+1 > bufsize) { growbuffer(&buffer,&bufsize); } strcpy(buffer,copy); free(copy); return buffer; } } if (strlen(copy)>2 && lastchar(copy) == 'i') { lastchar(copy) = 'y'; if (lookupunit(copy,prefixok)){ while (strlen(copy)+1 > bufsize) { growbuffer(&buffer,&bufsize); } strcpy(buffer,copy); free(copy); return buffer; } } free(copy); } if (prefixok && (pfxptr = plookup(unit))) { copy = unit + pfxptr->len; if (emptystr(copy) || lookupunit(copy,0)) { char *tempbuf; while (strlen(pfxptr->value)+strlen(copy)+2 > bufsize){ growbuffer(&buffer, &bufsize); } tempbuf = dupstr(copy); /* copy might point into buffer */ strcpy(buffer, pfxptr->value); strcat(buffer, " "); strcat(buffer, tempbuf); free(tempbuf); return buffer; } } return 0; } /* Points entries of product[] to the strings stored in tomove[]. Leaves tomove pointing to a list of NULLUNITS. */ int moveproduct(char *product[], char *tomove[]) { char **dest, **src; dest=product; for(src = tomove; *src; src++){ if (*src == NULLUNIT) continue; for(; *dest && *dest != NULLUNIT; dest++); if (dest - product >= MAXSUBUNITS - 1) { return E_PRODOVERFLOW; } if (!*dest) *(dest + 1) = 0; *dest = *src; *src=NULLUNIT; } return 0; } /* Make a copy of a product list. Note that no error checking is done for overflowing the product list because it is assumed that the source list doesn't overflow, so the destination list shouldn't overflow either. (This assumption could be false if the destination is not actually at the start of a product buffer.) */ void copyproduct(char **dest, char **source) { for(;*source;source++,dest++) { if (*source==NULLUNIT) *dest = NULLUNIT; else *dest=dupstr(*source); } *dest=0; } /* Make a copy of a unit */ void unitcopy(struct unittype *dest, struct unittype *source) { dest->factor = source->factor; copyproduct(dest->numerator, source->numerator); copyproduct(dest->denominator, source->denominator); } /* Multiply left by right. In the process, all of the units are deleted from right (but it is not freed) */ int multunit(struct unittype *left, struct unittype *right) { int myerr; left->factor *= right->factor; myerr = moveproduct(left->numerator, right->numerator); if (!myerr) myerr = moveproduct(left->denominator, right->denominator); return myerr; } int divunit(struct unittype *left, struct unittype *right) { int myerr; left->factor /= right->factor; myerr = moveproduct(left->numerator, right->denominator); if (!myerr) myerr = moveproduct(left->denominator, right->numerator); return myerr; } /* reduces a product of symbolic units to primitive units. The three low bits are used to return flags: bit 0 set if reductions were performed without error. bit 1 set if no reductions are performed. bit 2 set if an unknown unit is discovered. Return values from multiple calls will be ORed together later. */ #define DIDREDUCTION (1<<0) #define NOREDUCTION (1<<1) #define REDUCTIONERROR (1<<2) int reduceproduct(struct unittype *theunit, int flip) { char *toadd; char **product; int didsomething = NOREDUCTION; struct unittype newunit; int ret; if (flip) product = theunit->denominator; else product = theunit->numerator; for (; *product; product++) { for (;;) { if (!strlen(*product)) break; toadd = lookupunit(*product,1); if (!toadd) { if (!irreducible) irreducible = dupstr(*product); return REDUCTIONERROR; } if (strchr(toadd, PRIMITIVECHAR)) break; didsomething = DIDREDUCTION; if (*product != NULLUNIT) { free(*product); *product = NULLUNIT; } if (parseunit(&newunit, toadd, 0, 0)) return REDUCTIONERROR; if (flip) ret=divunit(theunit,&newunit); else ret=multunit(theunit,&newunit); freeunit(&newunit); if (ret) return REDUCTIONERROR; } } return didsomething; } /* Reduces numerator and denominator of the specified unit. Returns 0 on success, or 1 on unknown unit error. */ int reduceunit(struct unittype *theunit) { int ret; if (irreducible) free(irreducible); irreducible=0; ret = DIDREDUCTION; /* Keep calling reduceproduct until it doesn't do anything */ while (ret & DIDREDUCTION) { ret = reduceproduct(theunit, 0); if (!(ret & REDUCTIONERROR)) ret |= reduceproduct(theunit, 1); if (ret & REDUCTIONERROR){ if (irreducible) return E_UNKNOWNUNIT; else return E_REDUCE; } } return 0; } /* Returns one if the argument unit is defined in the data file as a dimensionless unit. This is determined by comparing its definition to the string NODIM. */ int ignore_dimless(char *name) { struct unitlist *ul; if (!name) return 0; ul = ulookup(name); if (ul && !strcmp(ul->value, NODIM)) return 1; return 0; } int ignore_nothing(char *name) { return 0; } int ignore_primitive(char *name) { struct unitlist *ul; if (!name) return 0; ul = ulookup(name); if (ul && strchr(ul->value, PRIMITIVECHAR)) return 1; return 0; } /* Compare two product lists, return zero if they match and one if they do not match. They may contain embedded NULLUNITs which are ignored in the comparison. Units defined as NODIM are also ignored in the comparison. */ int compareproducts(char **one, char **two, int (*isdimless)(char *name)) { int oneblank, twoblank; while (*one || *two) { oneblank = (*one==NULLUNIT) || isdimless(*one); twoblank = (*two==NULLUNIT) || isdimless(*two); if (!*one && !twoblank) return 1; if (!*two && !oneblank) return 1; if (oneblank) one++; else if (twoblank) two++; else if (strcmp(*one, *two)) return 1; else one++, two++; } return 0; } /* Return zero if units are compatible, nonzero otherwise. The units must be reduced, sorted and canceled for this to work. */ int compareunits(struct unittype *first, struct unittype *second, int (*isdimless)(char *name)) { return compareproducts(first->numerator, second->numerator, isdimless) || compareproducts(first->denominator, second->denominator, isdimless); } /* Reduce a unit as much as possible */ int completereduce(struct unittype *unit) { int err; if ((err=reduceunit(unit))) return err; sortunit(unit); cancelunit(unit); return 0; } /* Raise theunit to the specified power. This function does not fill in NULLUNIT gaps, which could be considered a deficiency. */ int expunit(struct unittype *theunit, int power) { char **numptr, **denptr; double thefactor; int i, uind, denlen, numlen; if (power==0){ freeunit(theunit); initializeunit(theunit); return 0; } numlen=0; for(numptr=theunit->numerator;*numptr;numptr++) numlen++; denlen=0; for(denptr=theunit->denominator;*denptr;denptr++) denlen++; thefactor=theunit->factor; for(i=1;ifactor *= thefactor; for(uind=0;uindnumerator[uind]!=NULLUNIT){ if (numptr-theunit->numerator>=MAXSUBUNITS-1) { *numptr=*denptr=0; return E_PRODOVERFLOW; } *numptr++=dupstr(theunit->numerator[uind]); } } for(uind=0;uinddenominator[uind]!=NULLUNIT){ *denptr++=dupstr(theunit->denominator[uind]); if (denptr-theunit->denominator>=MAXSUBUNITS-1) { *numptr=*denptr=0; return E_PRODOVERFLOW; } } } } *numptr=0; *denptr=0; return 0; } int unit2num(struct unittype *input) { struct unittype one; int err; initializeunit(&one); if ((err=completereduce(input))) return err; if (compareunits(input,&one,ignore_nothing)) return E_NOTANUMBER; freeunit(input); return 0; } int unitdimless(struct unittype *input) { struct unittype one; initializeunit(&one); if (compareunits(input, &one, ignore_dimless)) return 0; freeunit(input); /* Eliminate dimensionless units from list */ return 1; } #if 0 void showunitdetail(struct unittype *foo) { char **ptr; printf("%.17g ", foo->factor); for(ptr=foo->numerator;*ptr;ptr++) if (*ptr==NULLUNIT) printf("NULL "); else printf("`%s' ", *ptr); printf(" / "); for(ptr=foo->denominator;*ptr;ptr++) if (*ptr==NULLUNIT) printf("NULL "); else printf("`%s' ", *ptr); putchar('\n'); } #endif /* The unitroot function takes the nth root of an input unit which has been completely reduced. Returns 1 if the unit is not a power of n. Input data can contain NULLUNITs. */ int subunitroot(int n,char *current[], char *out[]) { char **ptr; int count=0; while(*current==NULLUNIT) current++; /* skip past NULLUNIT entries */ ptr=current; while(*ptr){ while(*ptr){ if (*ptr!=NULLUNIT){ if (strcmp(*current,*ptr)) break; count++; } ptr++; } if (count % n != 0){ /* If not dimensionless generate error, otherwise */ if (!ignore_dimless(*current)) /* just skip over it */ return E_NOTROOT; } else { for(count /= n;count>0;count--) *(out++) = dupstr(*current); } current=ptr; } *out = 0; return 0; } int rootunit(struct unittype *inunit,int n) { struct unittype outunit; int err; initializeunit(&outunit); if ((err=completereduce(inunit))) return err; /* Roots of negative numbers fail in pow(), even odd roots */ if (inunit->factor < 0) return E_NOTROOT; outunit.factor = pow(inunit->factor,1.0/(double)n); if ((err = subunitroot(n, inunit->numerator, outunit.numerator))) return err; if ((err = subunitroot(n, inunit->denominator, outunit.denominator))) return err; freeunit(inunit); initializeunit(inunit); return multunit(inunit,&outunit); } /* Compute the inverse of a unit (1/theunit) */ void invertunit(struct unittype *theunit) { char **ptr, *swap; int numlen, length, ind; theunit->factor = 1.0/theunit->factor; length=numlen=0; for(ptr=theunit->denominator;*ptr;ptr++,length++); for(ptr=theunit->numerator;*ptr;ptr++,numlen++); if (numlen>length) length=numlen; for(ind=0;ind<=length;ind++){ swap = theunit->numerator[ind]; theunit->numerator[ind] = theunit->denominator[ind]; theunit->denominator[ind] = swap; } } int float2rat(double y, int *p, int *q) { int coef[20]; /* How long does this buffer need to be? */ int i,termcount,saveq; double fracpart,x; /* Compute continued fraction approximation */ x=y; termcount=0; while(1){ coef[termcount] = (int) floor(x); fracpart = x-coef[termcount]; if (fracpart < .001 || termcount==19) break; x = 1/fracpart; termcount++; } /* Compress continued fraction into rational p/q */ *p=0; *q=1; for(i=termcount;i>=1;i--) { saveq=*q; *q = coef[i] * *q + *p; *p = saveq; } *p+=*q*coef[0]; return *qfactor = pow(base->factor,exponent->factor); if (errno) return E_FUNC; } else if (errcode==E_NOTANUMBER) { /* Base not dimensionless */ if (!float2rat(exponent->factor,&p,&q)){ /* Exponent must be rational */ if (unitdimless(base)){ base->factor = pow(base->factor,exponent->factor); if (errno) return E_FUNC; } else return E_IRRATIONAL_EXPONENT; } else { if (q!=1) { errcode = rootunit(base, q); if (errcode == E_NOTROOT) return E_BASE_NOTROOT; if (errcode) return errcode; } errcode = expunit(base, abs(p)); if (errcode) return errcode; if (p<0) invertunit(base); } } else return errcode; return 0; } /* Old units program would give message about what each operand reduced to, showing that they weren't conformable. Can this be achieved here? */ int addunit(struct unittype *unita, struct unittype *unitb) { int err; if ((err=completereduce(unita))) return err; if ((err=completereduce(unitb))) return err; if (compareunits(unita,unitb,ignore_nothing)) return E_BADSUM; unita->factor += unitb->factor; freeunit(unitb); return 0; } double linearinterp(double a, double b, double aval, double bval, double c) { double lambda; lambda = (b-c)/(b-a); return lambda*aval + (1-lambda)*bval; } /* evaluate a user function */ #define INVERSE 1 #define FUNCTION 0 #define ALLERR 1 #define NORMALERR 0 int evalfunc(struct unittype *theunit, struct func *infunc, int inverse, int allerrors) { struct unittype result; struct functype *thefunc; int err; double value; int foundit, count; struct unittype *save_value; char *save_function; if (infunc->table) { /* Tables are short, so use dumb search algorithm */ err = parseunit(&result, infunc->tableunit, 0, 0); if (err) return E_BADFUNCDIMEN; if (inverse){ err = divunit(theunit, &result); if (err) return err; err = unit2num(theunit); if (err==E_NOTANUMBER) return E_BADFUNCARG; if (err) return err; value = theunit->factor; foundit=0; for(count=0;counttablelen-1;count++) if ((infunc->table[count].value<=value && value<=infunc->table[count+1].value) || (infunc->table[count+1].value<=value && value<=infunc->table[count].value)){ foundit=1; value = linearinterp(infunc->table[count].value, infunc->table[count+1].value, infunc->table[count].location, infunc->table[count+1].location, value); break; } if (!foundit) return E_NOTINDOMAIN; freeunit(&result); freeunit(theunit); theunit->factor = value; return 0; } else { err=unit2num(theunit); if (err) return err; value=theunit->factor; foundit=0; for(count=0;counttablelen-1;count++) if (infunc->table[count].location<=value && value<=infunc->table[count+1].location){ foundit=1; value = linearinterp(infunc->table[count].location, infunc->table[count+1].location, infunc->table[count].value, infunc->table[count+1].value, value); break; } if (!foundit) return E_NOTINDOMAIN; result.factor *= value; } } else { /* it's a function */ if (inverse){ thefunc=&(infunc->inverse); if (!thefunc->def) return E_NOINVERSE; } else thefunc=&(infunc->forward); err = completereduce(theunit); if (err) return err; if (thefunc->dimen){ err = parseunit(&result, thefunc->dimen, 0, 0); if (err) return E_BADFUNCDIMEN; err = completereduce(&result); if (err) return E_BADFUNCDIMEN; if (compareunits(&result, theunit, ignore_nothing)) return E_BADFUNCARG; value = theunit->factor/result.factor; } else value = theunit->factor; if (thefunc->domain_max && (value > *thefunc->domain_max || (thefunc->domain_max_open && value == *thefunc->domain_max))) return E_NOTINDOMAIN; if (thefunc->domain_min && (value < *thefunc->domain_min || (thefunc->domain_min_open && value == *thefunc->domain_min))) return E_NOTINDOMAIN; save_value = parameter_value; save_function = function_parameter; parameter_value = theunit; function_parameter = thefunc->param; err = parseunit(&result, thefunc->def, 0,0); function_parameter = save_function; parameter_value = save_value; if (err && (allerrors == ALLERR || err==E_PARSEMEM || err==E_PRODOVERFLOW || err==E_NOTROOT || err==E_BADFUNCTYPE)) return err; if (err) return E_FUNARGDEF; } freeunit(theunit); initializeunit(theunit); multunit(theunit, &result); return 0; } /* If the given character string has only one unit name in it, then print out the rule for that unit. In any case, print out the reduced form for the unit. */ void showdefinition(char *unitstr, struct unittype *theunit) { logputs(deftext); while((unitstr = lookupunit(unitstr,1)) && strspn(unitstr,digits) != strlen(unitstr) && !strchr(unitstr,PRIMITIVECHAR)) { tightprint(stdout,unitstr); if (logfile) tightprint(logfile,unitstr); logputs(" = "); } showunit(theunit); logputchar('\n'); } void showfunction(struct functype *func) { struct unittype unit; int not_dimensionless, i; if (!func->def) { logputs(" is undefined"); return; } if (func->dimen){ /* coverity[check_return] */ parseunit(&unit,func->dimen,0,0); /* unit2num returns 0 for */ not_dimensionless = unit2num(&unit); /* dimensionless units */ } logprintf("(%s) = %s", func->param, func->def); if (func->domain_min || func->domain_max){ logputchar('\n'); for(i=strwidth(deftext);i;i--) logputchar(' '); logputs("defined for "); if (func->domain_min && func->domain_max) { logprintf(num_format.format, *func->domain_min); if (func->dimen && (not_dimensionless || unit.factor != 1)){ if (isdecimal(*func->dimen)) logputs(" *"); logprintf(" %s",func->dimen); } logputs(func->domain_min_open?" < ":" <= "); } logputs(func->param); if (func->domain_max){ logputs(func->domain_max_open?" < ":" <= "); logprintf(num_format.format, *func->domain_max); } else { logputs(func->domain_min_open?" > ":" >= "); logprintf(num_format.format, *func->domain_min); } if (func->dimen && (not_dimensionless || unit.factor != 1)){ if (isdecimal(*func->dimen)) logputs(" *"); logprintf(" %s",func->dimen); } if (!func->dimen) logputs(" (any units)"); } else if (func->dimen){ logputchar('\n'); for(i=strwidth(deftext);i;i--) logputchar(' '); if (not_dimensionless) logprintf("%s has units %s",func->param, func->dimen); else logprintf("%s is dimensionless",func->param); } logputchar('\n'); } void showtable(struct func *fun, int inverse) { int i; logprintf("%sinterpolated table with points\n",deftext); if (inverse){ int reverse, j; reverse = (fun->table[0].value > fun->table[fun->tablelen-1].value); for(i=0;itablelen;i++){ if (reverse) j = fun->tablelen-i-1; else j=i; if (flags.verbose>0) logputs("\t\t "); logprintf("~%s(", fun->name); logprintf(num_format.format, fun->table[j].value); if (isdecimal(fun->tableunit[0])) logputs(" *"); logprintf(" %s",fun->tableunit); logputs(") = "); logprintf(num_format.format, fun->table[j].location); logputchar('\n'); } } else { for(i=0;itablelen;i++){ if (flags.verbose>0) logputs("\t\t "); logprintf("%s(", fun->name); logprintf(num_format.format, fun->table[i].location); logputs(") = "); logprintf(num_format.format, fun->table[i].value); if (isdecimal(fun->tableunit[0])) logputs(" *"); logprintf(" %s\n",fun->tableunit); } } } void showfuncdefinition(struct func *fun, int inverse) { if (fun->table) /* It's a table */ showtable(fun, inverse); else { logprintf("%s%s%s", deftext,inverse?"~":"", fun->name); if (inverse) showfunction(&fun->inverse); else showfunction(&fun->forward); } } void showunitlistdef(struct wantalias *alias) { logprintf("%sunit list, ",deftext); tightprint(stdout,alias->definition); if (logfile) tightprint(logfile,alias->definition); logputchar('\n'); } /* Show conversion to a function. Input unit 'have' is replaced by the function inverse and completely reduced. */ int showfunc(char *havestr, struct unittype *have, struct func *fun) { int err; char *dimen; err = evalfunc(have, fun, INVERSE, NORMALERR); if (!err) err = completereduce(have); if (err) { if (err==E_BADFUNCARG){ logputs("conformability error"); if (fun->table) dimen = fun->tableunit; else if (fun->inverse.dimen) dimen = fun->inverse.dimen; else dimen = 0; if (!dimen) logputchar('\n'); else { struct unittype want; if (emptystr(dimen)) dimen = "1"; logprintf(": conversion requires dimensions of '%s'\n",dimen); if (flags.verbose==2) logprintf("\t%s = ",havestr); else if (flags.verbose==1) logputchar('\t'); showunit(have); if (flags.verbose==2) logprintf("\n\t%s = ",dimen); else if (flags.verbose==1) logprintf("\n\t"); else logputchar('\n'); /* coverity[check_return] */ parseunit(&want, dimen, 0, 0); /* coverity[check_return] */ completereduce(&want); /* dimen was already checked for */ showunit(&want); /* errors so no need to check here */ logputchar('\n'); } } else if (err==E_NOTINDOMAIN) logprintf("Value '%s' is not in the function's range\n",havestr); else logputs("Function evaluation error (bad function definition)\n"); return 1; } if (flags.verbose==2) logprintf("\t%s = %s(", havestr, fun->inverse.param); else if (flags.verbose==1) logputchar('\t'); showunit(have); if (flags.verbose==2) logputchar(')'); logputchar('\n'); return 0; } /* Print the conformability error message */ void showconformabilityerr(char *havestr,struct unittype *have, char *wantstr,struct unittype *want) { logputs("conformability error\n"); if (flags.verbose==2) logprintf("\t%s = ",havestr); else if (flags.verbose==1) logputchar('\t'); showunit(have); if (flags.verbose==2) logprintf("\n\t%s = ",wantstr); else if (flags.verbose==1) logputs("\n\t"); else logputchar('\n'); showunit(want); logputchar('\n'); } /* end showconformabilityerr */ /* determine whether a unit string begins with a fraction; assume it does if it starts with an integer, '|', and another integer */ int isfract(const char *unitstr) { char *enddouble=0, *endlong=0; while (isdigit(*unitstr)) unitstr++; if (*unitstr++ == '|') { (void)strtod(unitstr, &enddouble); (void)strtol(unitstr, &endlong, 10); if (enddouble == endlong) return 1; } return 0; } int checksigdigits(char *arg) { int errors, ival; char *nonum; errors = 0; if (!strcmp(arg, "max")) num_format.precision = MAXPRECISION; else { ival = (int) strtol(arg, &nonum, 10); if (!emptystr(nonum)) { fprintf(stderr, "%s: invalid significant digits (%s)--integer value or 'max' required\n", progname, arg); errors++; } else if (ival <= 0) { fprintf(stderr, "%s: number of significant digits must be positive\n", progname); errors++; } else if (ival > MAXPRECISION) { fprintf(stderr, "%s: too many significant digits (%d)--using maximum value (%d)\n", progname, ival, MAXPRECISION); num_format.precision = MAXPRECISION; } else num_format.precision = ival; } if (errors) return -1; else return 0; } /* set output number format specification from significant digits and type */ int setnumformat() { size_t len; if (strchr("Ee", num_format.type)) num_format.precision--; len = 4; /* %, decimal point, type, terminating NUL */ if (num_format.precision > 0) len += (size_t) floor(log10((double) num_format.precision))+1; num_format.format = (char *) mymalloc(len, "(setnumformat)"); sprintf(num_format.format, "%%.%d%c", num_format.precision, num_format.type); return 0; } /* parse and validate the output number format specification and extract its type and precision into the num_format structure. Returns nonzero for invalid format. */ int parsenumformat() { static char *format_types = NULL; static char *format_flags = "+-# 0'"; static char badflag; char *two = "0x1p+1"; char *valid="ABCDEFGHIJKLMNOPQRSTUVWXYXabcdefghijklmnopqrstuvwxyx.01234567890"; char *dotptr, *lptr, *nonum, *p; char testbuf[80]; int errors, ndx; if (format_types == NULL){ format_types = (char *) mymalloc(strlen(BASE_FORMATS)+4, "(parsenumformat)"); strcpy(format_types,BASE_FORMATS); /* check for support of type 'F' (MS VS 2012 doesn't have it) */ sprintf(testbuf, "%.1F", 1.2); if (strlen(testbuf) == 3 && testbuf[0] == '1' && testbuf[2] == '2') strcat(format_types,"F"); /* check for support of hexadecimal floating point */ sprintf(testbuf, "%.0a", 2.0); if (!strcmp(testbuf,two)) strcat(format_types, "aA"); /* check for support of digit-grouping (') flag */ sprintf(testbuf, "%'.0f", 1234.0); if (strlen(testbuf) > 2 && testbuf[0] == '1' && testbuf[2] == '2') badflag = '\0'; /* supported */ else badflag = '\''; /* not supported */ } errors = 0; p = num_format.format; if (*p != '%') { fprintf(stderr, "%s: number format specification must start with '%%'\n", progname); errors++; } else if (strrchr(num_format.format, '%') != num_format.format) { fprintf(stderr, "%s: only one '%%' allowed in number format specification\n", progname); errors++; p++; } else p++; dotptr = strchr(num_format.format, '.'); if (dotptr && strrchr(num_format.format, '.') != dotptr) { fprintf(stderr, "%s: only one '.' allowed in number format specification\n", progname); errors++; } /* skip over flags */ while (*p && strchr(format_flags, *p)) { if (*p == badflag) { /* only if digit-grouping flag (') not supported */ fprintf(stderr, "%s: digit-grouping flag (') not supported\n", progname); errors++; } p++; } /* check for type length modifiers, which aren't allowed */ if ((lptr = strstr(num_format.format, "hh")) || (lptr = strstr(num_format.format, "ll"))) { fprintf(stderr, "%s: type length modifier (%.2s) not supported\n", progname, lptr); errors++; } else if ((lptr = strpbrk(num_format.format, "hjLltz"))) { fprintf(stderr, "%s: type length modifier (%c) not supported\n", progname, lptr[0]); errors++; } /* check for other invalid characters */ ndx = strspn(p, valid); if (ndx < strlen(p)) { fprintf(stderr, "%s: invalid character (%c) in width, precision, or type\n", progname, p[ndx]); errors++; } if (errors) { /* results of any other checks are likely to be misleading */ fprintf(stderr, "%s: invalid number format specification (%s)\n", progname, num_format.format); fprintf(stderr, "%s: valid specification is %%[flags][width][.precision]type\n", progname); return -1; } /* get width and precision if specified; check precision */ num_format.width = (int) strtol(p, &nonum, 10); if (*nonum == '.'){ if (isdigit(nonum[1])) num_format.precision = (int) strtol(nonum+1, &nonum, 10); else { num_format.precision = 0; nonum++; } } else /* precision not given--use printf() default */ num_format.precision = 6; /* check for valid format type */ if (emptystr(nonum)) { fprintf(stderr, "%s: missing format type\n", progname); errors++; } else { if (strchr(format_types, *nonum)) { if (nonum[1]) { fprintf(stderr, "%s: invalid character(s) (%s) after format type\n", progname, nonum + 1); errors++; } else num_format.type = *nonum; } else { fprintf(stderr, "%s: invalid format type (%c)--valid types are [%s]\n", progname, *nonum, format_types); errors++; } } if (num_format.precision == 0 && (num_format.type == 'G' || num_format.type == 'g')) num_format.precision = 1; if (errors) { fprintf(stderr, "%s: invalid number format specification (%s)\n", progname, num_format.format); fprintf(stderr, "%s: valid specification is %%[flags][width][.precision]type\n", progname); return -1; } else return 0; } /* round a number to the displayed precision; indicate in hasnondigits if a number will contain any character other than the digits 0-9 in the current display format. */ double round_to_displayed(double value, int *hasnondigits) { int buflen; char *buf; double rounded; if (!isfinite(value)){ if (hasnondigits) *hasnondigits = 1; return value; } /* allow for sign (1), radix (1), exponent (5), E or E formats (1), NUL */ buflen = num_format.precision + 9; if (num_format.width > buflen) buflen = num_format.width; if (strchr("Ff", num_format.type)) { int len=num_format.precision+2; if (fabs(value) > 1.0) len += (int) floor(log10(fabs(value))) + 1; if (len > buflen) buflen = len; } /* allocate space for thousands separators with digit-grouping (') flag */ /* assume worst case--that all groups are two digits */ if (strchr(num_format.format, '\'') && strchr("FfGg", num_format.type)) buflen = buflen*3/2; buf = (char *) mymalloc(buflen, "(round_to_displayed)"); sprintf(buf, num_format.format, value); if (hasnondigits){ if (strspn(buf, "1234567890") != strlen(buf)) *hasnondigits = 1; else *hasnondigits = 0; } rounded = strtod(buf, NULL); free(buf); return rounded; } /* Print the unit in 'unitstr' along with any necessary punctuation. The 'value' is the multiplier for the unit. If printnum is set to PRINTNUM then this value is printed, or set it to NOPRINTNUM to prevent the value from being printed. */ #define PRINTNUM 1 #define NOPRINTNUM 0 void showunitname(double value, char *unitstr, int printnum) { int hasnondigits; /* flag to indicate nondigits in displayed value */ double rnd_value; /* value rounded to displayed precision */ rnd_value = round_to_displayed(value, &hasnondigits); if (printnum && !(rnd_value == 1 && isdecimal(*unitstr))) logprintf(num_format.format, value); if (strpbrk(unitstr, "+-")) /* show sums and differences of units */ logprintf(" (%s)", unitstr); /* in parens */ /* fractional unit 1|x and multiplier is all digits and not one-- */ /* no space or asterisk or numerator (3|8 in instead of 3 * 1|8 in) */ else if (printnum && !flags.showfactor && startswith(unitstr,"1|") && isfract(unitstr) && rnd_value != 1 && !hasnondigits) logputs(unitstr+1); /* multiplier is unity and unit begins with a number--no space or */ /* asterisk (multiplier was not shown, and the space was already output)*/ else if (rnd_value == 1 && isdecimal(*unitstr)) logputs(unitstr); /* unitstr begins with a non-fraction number and multiplier was */ /* shown--prefix a spaced asterisk */ else if (isdecimal(unitstr[0])) logprintf(" * %s", unitstr); else logprintf(" %s", unitstr); } /* Show the conversion factors or print the conformability error message */ int showanswer(char *havestr,struct unittype *have, char *wantstr,struct unittype *want) { struct unittype invhave; int doingrec; /* reciprocal conversion? */ char *right = NULL, *left = NULL; doingrec=0; if (compareunits(have, want, ignore_dimless)) { char **src,**dest; invhave.factor=1/have->factor; for(src=have->numerator,dest=invhave.denominator;*src;src++,dest++) *dest=*src; *dest=0; for(src=have->denominator,dest=invhave.numerator;*src;src++,dest++) *dest=*src; *dest=0; if (flags.strictconvert || compareunits(&invhave, want, ignore_dimless)){ showconformabilityerr(havestr, have, wantstr, want); return -1; } if (flags.verbose>0) logputchar('\t'); logputs("reciprocal conversion\n"); have=&invhave; doingrec=1; } if (flags.verbose==2) { if (!doingrec) left=right=""; else if (strchr(havestr,'/')) { left="1 / ("; right=")"; } else { left="1 / "; right=""; } } /* Print the first line of output. */ if (flags.verbose==2) logprintf("\t%s%s%s = ",left,havestr,right); else if (flags.verbose==1) logputs("\t* "); if (flags.verbose==2) showunitname(have->factor / want->factor, wantstr, PRINTNUM); else logprintf(num_format.format, have->factor / want->factor); /* Print the second line of output. */ if (!flags.oneline){ if (flags.verbose==2) logprintf("\n\t%s%s%s = (1 / ",left,havestr,right); else if (flags.verbose==1) logputs("\n\t/ "); else logputchar('\n'); logprintf(num_format.format, want->factor / have->factor); if (flags.verbose==2) { logputchar(')'); showunitname(0,wantstr, NOPRINTNUM); } } logputchar('\n'); return 0; } /* Checks that the function definition has a valid inverse Prints a message to stdout if function has bad definition or invalid inverse. */ #define SIGN(x) ( (x) > 0.0 ? 1 : \ ( (x) < 0.0 ? (-1) : \ 0 )) void checkfunc(struct func *infunc, int verbose) { struct unittype theunit, saveunit; struct prefixlist *prefix; int err, i; double direction; if (infunc->skip_error_check){ if (verbose) printf("skipped function '%s'\n", infunc->name); return; } if (verbose) printf("doing function '%s'\n", infunc->name); if ((prefix=plookup(infunc->name)) && strlen(prefix->name)==strlen(infunc->name)) printf("Warning: '%s' defined as prefix and function\n",infunc->name); if (infunc->table){ /* Check for valid unit for the table */ if (parseunit(&theunit, infunc->tableunit, 0, 0) || completereduce(&theunit)) printf("Table '%s' has invalid units '%s'\n", infunc->name, infunc->tableunit); freeunit(&theunit); /* Check for monotonicity which is needed for unique inverses */ if (infunc->tablelen<=1){ printf("Table '%s' has only one data point\n", infunc->name); return; } direction = SIGN(infunc->table[1].value - infunc->table[0].value); for(i=2;itablelen;i++) if (SIGN(infunc->table[i].value-infunc->table[i-1].value) != direction){ printf("Table '%s' lacks unique inverse around entry %.8g\n", infunc->name, infunc->table[i].location); return; } return; } if (infunc->forward.dimen){ if (parseunit(&theunit, infunc->forward.dimen, 0, 0) || completereduce(&theunit)){ printf("Function '%s' has invalid units '%s'\n", infunc->name, infunc->forward.dimen); freeunit(&theunit); return; } } else initializeunit(&theunit); if (infunc->forward.domain_max && infunc->forward.domain_min) theunit.factor *= (*infunc->forward.domain_max+*infunc->forward.domain_min)/2; else if (infunc->forward.domain_max) theunit.factor = theunit.factor * *infunc->forward.domain_max - 1; else if (infunc->forward.domain_min) theunit.factor = theunit.factor * *infunc->forward.domain_min + 1; else theunit.factor *= 7; /* Arbitrary choice where we evaluate inverse */ if (infunc->forward.dimen){ unitcopy(&saveunit, &theunit); err = evalfunc(&theunit, infunc, FUNCTION, ALLERR); if (err) { printf("Error in definition %s(%s) as '%s':\n", infunc->name, infunc->forward.param, infunc->forward.def); printf(" %s\n",errormsg[err]); freeunit(&theunit); freeunit(&saveunit); return; } } else { # define MAXPOWERTOCHECK 4 struct unittype resultunit, arbunit; char unittext[9]; double factor; int errors[MAXPOWERTOCHECK], errcount=0; char *indent; strcpy(unittext,"(kg K)^ "); factor = theunit.factor; initializeunit(&saveunit); initializeunit(&resultunit); for(i=0;iname, infunc->forward.param, infunc->forward.def); printf(" appears to require a dimensionless argument, 'units' keyword not given\n"); indent = " "; } else if (errcount==MAXPOWERTOCHECK) { printf("Error or missing 'units' keyword in definion %s(%s) as '%s'\n", infunc->name, infunc->forward.param, infunc->forward.def); indent=" "; } else if (errcount){ printf("Warning: function '%s(%s)' defined as '%s'\n", infunc->name, infunc->forward.param, infunc->forward.def); printf(" failed for some test inputs:\n"); indent = " "; } for(i=0;iname); printf(num_format.format, factor); printf("%s): %s\n", unittext, errormsg[errors[i]]); } } if (completereduce(&theunit)){ printf("Definition %s(%s) as '%s' is irreducible\n", infunc->name, infunc->forward.param, infunc->forward.def); freeunit(&theunit); freeunit(&saveunit); return; } if (!(infunc->inverse.def)){ printf("Warning: no inverse for function '%s'\n", infunc->name); freeunit(&theunit); freeunit(&saveunit); return; } err = evalfunc(&theunit, infunc, INVERSE, ALLERR); if (err){ printf("Error in inverse ~%s(%s) as '%s':\n", infunc->name,infunc->inverse.param, infunc->inverse.def); printf(" %s\n",errormsg[err]); freeunit(&theunit); freeunit(&saveunit); return; } divunit(&theunit, &saveunit); if (unit2num(&theunit) || fabs(theunit.factor-1)>1e-12) printf("Inverse is not the inverse for function '%s'\n", infunc->name); freeunit(&theunit); } struct namedef { char *name; char *def; }; #define CONFORMABLE 1 #define TEXTMATCH 2 void addtolist(struct unittype *have, char *searchstring, char *rname, char *name, char *def, struct namedef **list, int *listsize, int *maxnamelen, int *count, int searchtype) { struct unittype want; int len = 0; int keepit = 0; if (!name) return; if (searchtype==CONFORMABLE){ initializeunit(&want); if (!parseunit(&want, name,0,0) && !completereduce(&want)) keepit = !compareunits(have,&want,ignore_dimless); } else if (searchtype == TEXTMATCH) { keepit = (strstr(rname,searchstring) != NULL); } if (keepit){ if (*count==*listsize){ *listsize += 100; *list = (struct namedef *) realloc(*list,*listsize*sizeof(struct namedef)); if (!*list){ fprintf(stderr, "%s: memory allocation error (addtolist)\n", progname); exit(EXIT_FAILURE); } } (*list)[*count].name = rname; if (strchr(def, PRIMITIVECHAR)) (*list)[*count].def = ""; else (*list)[*count].def = def; (*count)++; len = strwidth(name); if (len>*maxnamelen) *maxnamelen = len; } if (searchtype == CONFORMABLE) freeunit(&want); } int compnd(const void *a, const void *b) { return strcmp(((struct namedef *)a)->name, ((struct namedef *)b)->name); } /* Ideally this would return the actual screen height, but it's so hard to code that portably... */ int screensize() { return 20; } /* If have is non-NULL then search through all units and print the ones which are conformable with have. Otherwise search through all the units for ones whose names contain the second argument as a substring. */ void tryallunits(struct unittype *have, char *searchstring) { struct unitlist *uptr; struct namedef *list; int listsize, maxnamelen, count; struct func *funcptr; struct wantalias *aliasptr; int i, j, searchtype; FILE *outfile; char *seploc, *firstunit; list = (struct namedef *) mymalloc( 100 * sizeof(struct namedef), "(tryallunits)"); listsize = 100; maxnamelen = 0; count = 0; if (have) searchtype = CONFORMABLE; else { if (!searchstring) searchstring=""; searchtype = TEXTMATCH; } for(i=0;inext) addtolist(have, searchstring, uptr->name, uptr->name, uptr->value, &list, &listsize, &maxnamelen, &count, searchtype); for(i=0;inext){ if (funcptr->table) addtolist(have, searchstring, funcptr->name, funcptr->tableunit, "", &list, &listsize, &maxnamelen, &count, searchtype); else addtolist(have, searchstring, funcptr->name, funcptr->inverse.dimen, "", &list, &listsize, &maxnamelen, &count, searchtype); } for(aliasptr=firstalias;aliasptr;aliasptr=aliasptr->next){ firstunit = dupstr(aliasptr->definition);/* coverity[var_assigned] */ seploc = strchr(firstunit,UNITSEPCHAR); /* Alias definitions allowed in */ *seploc = 0; /* database contain UNITSEPCHAR */ addtolist(have, searchstring, aliasptr->name, firstunit, aliasptr->definition, &list, &listsize, &maxnamelen, &count, searchtype); free(firstunit); } qsort(list, count, sizeof(struct namedef), compnd); outfile = 0; if (count==0) puts("No matching units found."); #ifdef SIGPIPE signal(SIGPIPE, SIG_IGN); #endif if (count>screensize()){ outfile = popen(pager, "w"); } if (!outfile) outfile = stdout; for(i=0;i=0; if (!valid) printf("Error: %s\n",invalid_utf8); } #else fputs(query, stdout); if (!fgetslong(buffer, bufsize, stdin,0)){ if (!flags.quiet) putchar('\n'); exit(EXIT_SUCCESS); } #endif } #ifndef READLINE # define getuser getuser_noreadline #else /* we DO have readline */ void getuser_readline(char **buffer, int *bufsize, const char *query) { #ifdef SUPPORT_UTF8 int valid = 0; while (!valid){ if (*buffer) free(*buffer); *buffer = readline(query); valid = !*buffer || strwidth(*buffer)>=0; if (!valid) printf("Error: %s\n",invalid_utf8); } #else if (*buffer) free(*buffer); *buffer = readline(query); #endif if (*buffer && **buffer) add_history(*buffer); if (!*buffer){ if (!flags.quiet) putchar('\n'); exit(EXIT_SUCCESS); } } void getuser(char **buffer, int *bufsize, const char *query) { if (flags.readline) getuser_readline(buffer,bufsize,query); else getuser_noreadline(buffer,bufsize,query); } /* Unit name completion for readline. Complete function names or alias names or builtin functions. Complete to the end of a prefix or complete to the end of a unit. If the text includes a full prefix plus part of a unit and if the prefix is longer than one character then complete that compound. Don't complete a prefix fragment into prefix plus anything. */ #define CU_ALIAS 0 #define CU_BUILTIN 1 #define CU_FUNC 2 #define CU_PREFIX 3 #define CU_UNITS 4 #define CU_DONE 5 char * completeunits(char *text, int state) { static int uhash, fhash, phash, checktype; static struct prefixlist *curprefix, *unitprefix; static struct unitlist *curunit; static struct func *curfunc; static struct wantalias *curalias; static char **curbuiltin; char *output = 0; #ifndef NO_SUPPRESS_APPEND rl_completion_suppress_append = 1; #endif if (!state){ /* state == 0 means this is the first call, so initialize */ checktype = 0; /* start at first type */ fhash = uhash = phash = 0; unitprefix=0; /* search for unit continuations starting with this prefix */ curfunc=ftab[fhash]; curunit=utab[uhash]; curprefix=ptab[phash]; curbuiltin = builtins; curalias = firstalias; } while (checktype != CU_DONE){ if (checktype == CU_ALIAS){ while(curalias){ if (startswith(curalias->name,text)) output = dupstr(curalias->name); curalias = curalias->next; if (output) return output; } checktype++; } if (checktype == CU_BUILTIN){ while(*curbuiltin){ if (startswith(*curbuiltin,text)) output = dupstr(*curbuiltin); curbuiltin++; if (output) return output; } checktype++; } while (checktype == CU_FUNC){ while (!curfunc && fhashname,text)) output = dupstr(curfunc->name); curfunc = curfunc->next; if (output) return output; } } while (checktype == CU_PREFIX){ while (!curprefix && phashname,text)) output = dupstr(curprefix->name); curprefix = curprefix->next; if (output) return output; } } while (checktype == CU_UNITS){ while (!curunit && uhashname)>1){ uhash = 0; curunit = utab[uhash]; } if (!curunit) { checktype++; break; } if (unitprefix){ if (startswith(curunit->name, text+unitprefix->len)){ output = (char *)mymalloc(1+strlen(curunit->name)+unitprefix->len, "(completeunits)"); strcpy(output, unitprefix->name); strcat(output, curunit->name); } } else if (startswith(curunit->name,text)) output = dupstr(curunit->name); curunit=curunit->next; if (output) return output; } } return 0; } #endif /* READLINE */ /* see if current directory contains an executable file */ int checkcwd (char *file) { FILE *fp; char *p; fp = fopen(file, "r"); if (fp){ fclose(fp); return 1; } #ifdef _WIN32 else if (!((p = strrchr(file, '.')) && isexe(p))) { char *pathname; pathname = mymalloc(strlen(file) + strlen(EXE_EXT) + 1, "(checkcwd)"); strcpy(pathname, file); strcat(pathname, EXE_EXT); fp = fopen(pathname, "r"); free(pathname); if (fp) { fclose(fp); return 1; } } #endif return 0; } /* return the last component of a pathname, and remove a .exe extension if one exists. */ char * getprogramname(char *path) { size_t proglen; char *p; path = pathend(path); /* get rid of filename extensions in Windows */ proglen = strlen(path); if ((p = strrchr(path, '.')) && isexe(p)) proglen -= 4; return dupnstr(path, proglen); } /* Find the directory that contains the invoked executable. */ char * getprogdir(char *progname, char **fullprogname) { char *progdir = NULL; char *p; #if defined (_WIN32) && defined (_MSC_VER) char buf[FILENAME_MAX + 1]; /* get the full pathname of the current executable and be done with it */ /* TODO: is there way to do this with gcc? */ if (GetModuleFileName(NULL, buf, FILENAME_MAX + 1)) progdir = dupstr(buf); #endif /* If path name is absolute or includes more than one component use it */ if (!progdir && (isfullpath(progname) || hasdirsep(progname))) progdir = dupstr(progname); /* command.com and cmd.exe under Windows always run a program that's in the current directory whether or not the current directory is in PATH, so we need to check the current directory. This could return a false positive if units is run from a Unix-like command interpreter under Windows if the current directory is not in PATH but contains 'units' or 'units.exe' */ #if defined (_WIN32) && !defined (_MSC_VER) if (!progdir && checkcwd(progname)) progdir = dupstr(progname); #endif /* search PATH to find the executable */ if (!progdir) { char *env; env = getenv("PATH"); if (env) { /* search PATH */ char *direc, *direc_end, *pathname; int len; FILE *fp; pathname = mymalloc(strlen(env)+strlen(progname)+strlen(EXE_EXT)+2, "(getprogdir)"); direc = env; while (direc) { direc_end = strchr(direc,PATHSEP); if (!direc_end) len = strlen(direc); else len = direc_end-direc; strncpy(pathname, direc, len); if (len>0) pathname[len++]='/'; strcpy(pathname+len, progname); fp = fopen(pathname, "r"); if (fp){ progdir = dupstr(pathname); break; } #ifdef _WIN32 /* executable may or may not have '.exe' suffix, so we need to look for both */ if (!((p = strrchr(pathname, '.')) && isexe(p))) { strcat(pathname, EXE_EXT); fp = fopen(pathname, "r"); if (fp){ progdir = dupstr(pathname); break; } } #endif direc = direc_end; if (direc) direc++; } free(pathname); if (fp) fclose(fp); } } if (!progdir) { fprintf(stderr, "%s: cannot find program directory\n", progname); exit(EXIT_FAILURE); } *fullprogname = dupstr(progdir); /* used by printversion() */ p = pathend(progdir); *p = '\0'; return progdir; } /* find a possible data directory relative to a 'bin' directory that contains the executable */ char * getdatadir() { int progdirlen; char *p; progdirlen = strlen(progdir); datadir = (char *) mymalloc(progdirlen + strlen(DATADIR) + 2, "(getdatadir)"); strcpy(datadir, progdir); if (isdirsep(progdir[progdirlen - 1])) datadir[progdirlen - 1] = '\0'; /* so pathend() can work */ p = pathend(datadir); if ((strlen(p) == 3) && (tolower(p[0]) == 'b') \ && (tolower(p[1]) == 'i') && (tolower(p[2]) == 'n')) { p = DATADIR; while (*p == '.') /* ignore "./", "../" */ p++; if (isdirsep(*p)) p++; strcpy(pathend(datadir), p); return datadir; } else return NULL; } char * findlocalemap(int checkonly) { FILE *map = NULL; char *filename = NULL; char *file; /* Try the environment variable UNITSLOCALEMAP, then the #defined value LOCALEMAP, then the directory containing the units executable, then the directory given by DATADIR (relative to the directory with the executable), and finally, the directory containing the units data file. */ file = getenv("UNITSLOCALEMAP"); if (file && *file) { map = fopen(file,"rt"); if (!map) { if (!checkonly) { fprintf(stderr, "%s: cannot open locale map '%s'\n specified in UNITSLOCALEMAP environment variable. ", progname, file); perror((char *) NULL); } return NULL; } else filename = dupstr(file); } if (!map) { file = LOCALEMAP; map = fopen(file,"rt"); if (map) filename = dupstr(file); } if (!map && !progdir) { if (!checkonly) { fprintf(stderr, "%s: cannot find locale map--program directory not set\n", progname); exit(EXIT_FAILURE); } else return NULL; } /* check the directory with the units executable */ if (!map) { filename = (char *) mymalloc(strlen(progdir) + strlen(file) + 2, "(findlocalemap)"); strcpy(filename, progdir); strcat(filename, file); map = fopen(filename,"rt"); } if (!map && !emptystr(DATADIR)) { /* check data directory relative to the units executable directory */ if (!datadir) datadir = getdatadir(); if (datadir) { if (filename) free(filename); filename = (char *) mymalloc(strlen(datadir) + strlen(DATADIR) + strlen(file) + 2, "(findlocalemap)"); strcpy(filename, datadir); strcat(filename, "/"); strcat(filename, file); map = fopen(filename, "rt"); } } /* check the directory with the units data file */ if (!map) { if (filename) free(filename); filename = (char *) mymalloc(strlen(unitsfiles[0]) + strlen(file) + 2, "(findlocalemap)"); strcpy(filename, unitsfiles[0]); strcpy(pathend(filename), file); map = fopen(filename,"rt"); } if (map) { fclose(map); return filename; } else { if (filename) free(filename); return NULL; } } char * findunitsfile(int noerrmsg) { FILE *testfile=0; char *file; file = getenv("UNITSFILE"); if (file && *file) { testfile = fopen(file, "rt"); if (!testfile) { if (!noerrmsg) { fprintf(stderr, "%s: cannot open units file '%s' in environment variable UNITSFILE. ", progname, file); perror((char *) NULL); } return NULL; } } if (!testfile && isfullpath(UNITSFILE)){ file = UNITSFILE; testfile = fopen(file, "rt"); if (!testfile) { if (!noerrmsg) { fprintf(stderr, "%s: cannot open units data file '%s'. ", progname, UNITSFILE); perror((char *) NULL); } return NULL; } } if (!testfile && !progdir) { if (!noerrmsg) { fprintf(stderr, "%s: cannot open units file '%s' and cannot find program directory.\n", progname, UNITSFILE); perror((char *) NULL); } return NULL; } if (!testfile) { /* check the directory containing the units executable */ file = (char *) mymalloc(strlen(progdir)+strlen(UNITSFILE)+1, "(findunitsfile)"); strcpy(file, progdir); strcat(file, UNITSFILE); testfile = fopen(file, "rt"); if (!testfile) free(file); } if (!testfile && !emptystr(DATADIR)) { /* check data directory relative to the units executable directory */ if (!datadir) datadir = getdatadir(); if (datadir) { file = (char *) mymalloc(strlen(datadir) + strlen(UNITSFILE) + 2, "(findunitsfile)"); strcpy(file, datadir); strcat(file, "/"); strcat(file, UNITSFILE); testfile = fopen(file, "rt"); if (!testfile) free(file); } } if (!testfile) { if (!noerrmsg) fprintf(stderr,"%s: cannot find units file '%s'\n", progname, UNITSFILE); return NULL; } else { fclose(testfile); return file; } } /* Find a personal file. First checks the specified environment variable (envname) for the filename to use. If this is unset then search user's home directory for basename. If home directory cannot be found, returns NULL. Otherwise if the file exists then returns its name in newly allocated space and sets *exists to 1. If the file does not exist then sets *exist to zero and: With checkonly == 0, prints error message and returns NULL With checkonly != 0, returns filename (does not print error message) */ char * personalfile(const char *envname, const char *basename, int checkonly, int *exists) { FILE *testfile=0; char *homedir, *filename=0; *exists = 0; /* First check the specified environment variable for a file name */ if (envname) filename = getenv(envname); if (filename && *filename){ /* environment variable exists */ testfile = fopen(filename, "rt"); if (testfile){ fclose(testfile); *exists = 1; return filename; } if (checkonly) return filename; else { fprintf(stderr, "%s: cannot open file '%s' specified in %s environment variable. ", progname, filename, envname); perror((char *) NULL); return 0; } } /* The environment variable was not set so identify the user's home directory. Under Windows if HOME is set we assume it's meant to override HOMEDRIVE, HOMEPATH, and USERPROFILE */ homedir = getenv("HOME"); if (homedir) { filename = mymalloc(strlen(homedir)+strlen(basename)+2, "(personalfile)"); strcpy(filename,homedir); } else #ifndef _WIN32 { /* If not running Windows there is nothing else to try */ return 0; } #else { /* If running Windows try a few other places */ /* try HOMEDRIVE and HOMEPATH */ char *homedrive, *homepath; if ((homedrive = getenv("HOMEDRIVE")) && (homepath = getenv("HOMEPATH"))) { filename = mymalloc(strlen(homedrive)+strlen(homepath) +strlen(basename)+2,"(personalfile)"); strcpy(filename,homedrive); strcat(filename,homepath); } /* finally, try USERPROFILE */ else if ((homedir = getenv("USERPROFILE"))) { filename = mymalloc(strlen(homedir)+strlen(basename)+2, "(personalfile)"); strcpy(filename,homedir); } else return 0; } #endif /* _WIN32 */ /* With home directory in hand we now look for the file */ strcat(filename,"/"); strcat(filename,basename); testfile = fopen(filename, "rt"); if (testfile){ fclose(testfile); *exists = 1; return filename; } if (checkonly) return filename; else { if (errno==EACCES) { fprintf(stderr,"%s: cannot read file '%s'. ",progname,filename); perror(0); } free(filename); return 0; } } /* print usage message */ void usage() { char *unitsfile; /* nonzero argument suppresses error messages */ unitsfile = findunitsfile(1); printf("\nUsage: %s [options] ['from-unit' 'to-unit']\n",progname); printf("\n\ Options:\n\ -h, --help show this help and exit\n\ -c, --check check that all units reduce to primitive units\n\ --check-verbose like --check, but lists units as they are checked\n\ --verbose-check so you can find units that cause endless loops\n\ -d, --digits show output to specified number of digits (default: %d)\n\ -e, --exponential exponential format output\n\ -f, --file specify a units data file (-f '' loads default file)\n", DEFAULTPRECISION); #ifdef READLINE printf("\ -H, --history specify readline history file (-H '' disables history)\n"); #endif printf("\ -L, --log specify a file to log conversions\n\ -l, --locale specify a desired locale\n\ -m, --minus make - into a subtraction operator (default)\n\ --oldstar use old '*' precedence, higher than '/'\n\ --newstar use new '*' precedence, equal to '/'\n\ -n, --nolists disable conversion to unit lists\n\ -S, --show-factor show non-unity factor before 1|x in multi-unit output\n\ -o, --output-format specify printf numeric output format (default: %%.%d%c)\n\ -p, --product make '-' into a product operator\n\ -q, --quiet suppress prompting\n\ --silent same as --quiet\n\ -s, --strict suppress reciprocal unit conversion (e.g. Hz<->s)\n\ -v, --verbose show slightly more verbose output\n\ --compact suppress printing of tab, '*', and '/' character\n\ -1, --one-line suppress the second line of output\n\ -t, --terse terse output (--strict --compact --quiet --one-line)\n\ -r, --round round last element of unit list output to an integer\n\ -U, --unitsfile show units data filename and exit\n\ -V, --version show version, data filenames (with -t: version only)\n\ -I, --info show version, files, and program properties\n", DEFAULTTYPE,DEFAULTPRECISION); if (!unitsfile) printf("Units data file '%s' not found.\n\n", UNITSFILE); else printf("To learn about the available units look in '%s'\n\n", unitsfile); puts("Report bugs to adrianm@gnu.org.\n\n"); } /* Print message about how to get help */ void helpmsg() { fprintf(stderr,"\nTry '%s --help' for more information.\n",progname); exit(EXIT_FAILURE); } /* show units version, and optionally, additional information */ void printversion() { int exists; char *unitsfile, *localemap; if (flags.verbose == 0) { printf("GNU Units version %s\n", VERSION); return; } printf("GNU Units version %s\n%s, %s, locale %s\n", VERSION, RVERSTR,UTF8VERSTR,mylocale); #if defined (_WIN32) && defined (HAVE_MKS_TOOLKIT) puts("With MKS Toolkit"); #endif if (flags.verbose == 2) { if (!fullprogname) getprogdir(progname, &fullprogname); if (fullprogname) printf("\n%s program is %s\n", progname, fullprogname); } /* units data file */ if (flags.verbose == 2) { putchar('\n'); unitsfile = getenv("UNITSFILE"); if (unitsfile) printf("Environment variable UNITSFILE set to '%s'\n", unitsfile); else puts("Environment variable UNITSFILE not set"); if (isfullpath(UNITSFILE)) printf("Default units data file is '%s'\n", UNITSFILE); else printf("Default units data file is '%s';\n %s will search for this file\n", UNITSFILE, progname); } unitsfile = findunitsfile(1); if (unitsfile && flags.verbose == 2 && !isfullpath(UNITSFILE)) printf("Found data file '%s'\n", unitsfile); else if (unitsfile) printf("Units data file is '%s'\n", unitsfile); else puts("*** Units data file not found ***"); /* personal units data file */ if (flags.verbose == 2) { putchar('\n'); unitsfile = getenv(HOME_UNITS_ENV); if (unitsfile) printf("Environment variable %s set to '%s'\n", HOME_UNITS_ENV,unitsfile); else printf("Environment variable %s not set\n", HOME_UNITS_ENV); } unitsfile = personalfile(HOME_UNITS_ENV, homeunitsfile, 1, &exists); if (unitsfile) { printf("Personal units data file is '%s'", unitsfile); if (!exists) puts("\n (file does not exist)"); else putchar('\n'); } else puts("Personal units data file not found: no home directory"); #ifdef READLINE if (flags.verbose == 2) { historyfile = personalfile(NULL,HISTORY_FILE,1,&exists); if (historyfile) printf("\nDefault readline history file is '%s'\n", historyfile); else puts("\nReadline history file unusable: no home directory"); } #endif #ifdef _WIN32 /* locale map */ if (flags.verbose == 2) { putchar('\n'); localemap = getenv("UNITSLOCALEMAP"); if (localemap) printf("Environment variable UNITSLOCALEMAP set to '%s'\n", localemap); else puts("Environment variable UNITSLOCALEMAP not set"); if (isfullpath(LOCALEMAP)) printf("Default locale map is '%s'\n", LOCALEMAP); else printf("Default locale map is '%s';\n %s will search for this file\n", LOCALEMAP, progname); localemap = findlocalemap(1); if (localemap && !isfullpath(LOCALEMAP)) printf("Found locale map '%s'\n", localemap); else if (localemap) printf("Locale map is '%s'\n", localemap); else puts("*** Locale map not found ***"); } #endif printf("\n\n%s\n\n", LICENSE); } void showunitsfile() { char *unitsfile; unitsfile = findunitsfile(1); if (unitsfile) printf("%s\n", unitsfile); else puts("Units data file not found"); } char *shortoptions = "VIUvqechSstf:o:d:mnpr1l:L:" #ifdef READLINE "H:" #endif ; struct option longoptions[] = { {"check", no_argument, &flags.unitcheck, 1}, {"check-verbose", no_argument, &flags.unitcheck, 2}, {"compact", no_argument, &flags.verbose, 0}, {"digits", required_argument, 0, 'd'}, {"exponential", no_argument, 0, 'e'}, {"file", required_argument, 0, 'f'}, {"help", no_argument, 0, 'h'}, #ifdef READLINE {"history", required_argument, 0, 'H'}, #endif {"info", no_argument, 0, 'I'}, {"locale", required_argument, 0, 'l'}, {"log", required_argument, 0, 'L'}, {"minus", no_argument, &parserflags.minusminus, 1}, {"newstar", no_argument, &parserflags.oldstar, 0}, {"nolists", no_argument, 0, 'n'}, {"oldstar", no_argument, &parserflags.oldstar, 1}, {"one-line", no_argument, &flags.oneline, 1}, {"output-format", required_argument, 0, 'o'}, {"product", no_argument, &parserflags.minusminus, 0}, {"quiet", no_argument, &flags.quiet, 1}, {"round",no_argument, 0, 'r'}, {"show-factor", no_argument, 0, 'S'}, {"silent", no_argument, &flags.quiet, 1}, {"strict",no_argument,&flags.strictconvert, 1}, {"terse",no_argument, 0, 't'}, {"unitsfile", no_argument, 0, 'U'}, {"verbose", no_argument, &flags.verbose, 2}, {"verbose-check", no_argument, &flags.unitcheck, 2}, {"version", no_argument, 0, 'V'}, {0,0,0,0} }; /* Process the args. Returns 1 if interactive mode is desired, and 0 for command line operation. If units appear on the command line they are returned in the from and to parameters. */ int processargs(int argc, char **argv, char **from, char **to) { extern char *optarg; extern int optind; int optchar, optindex; int ind; int doprintversion=0; while ( -1 != (optchar = getopt_long(argc, argv,shortoptions,longoptions, &optindex ))) { switch (optchar) { case 'm': parserflags.minusminus = 1; break; case 'p': parserflags.minusminus = 0; break; case 't': flags.oneline = 1; flags.quiet = 1; flags.strictconvert = 1; flags.verbose = 0; break; /* numeric output format */ case 'd': if (checksigdigits(optarg) < 0) exit(EXIT_FAILURE); else /* ignore anything given with 'o' option */ num_format.format = NULL; break; case 'e': /* ignore anything given with 'o' option */ num_format.format = NULL; num_format.type = 'e'; break; case 'o': num_format.format = optarg; break; case 'c': flags.unitcheck = 1; break; case 'f': for(ind=0;unitsfiles[ind];ind++); if (ind==MAXFILES){ fprintf(stderr, "At most %d -f specifications are allowed\n", MAXFILES); exit(EXIT_FAILURE); } if (optarg && *optarg) unitsfiles[ind] = optarg; else { unitsfiles[ind] = findunitsfile(0); if (!unitsfiles[ind]) exit(EXIT_FAILURE); } unitsfiles[ind+1] = 0; break; case 'L': logfilename = optarg; break; case 'l': mylocale = optarg; break; case 'n': flags.unitlists = 0; break; case 'q': flags.quiet = 1; break; case 'r': flags.round = 1; break; case 'S': flags.showfactor = 1; break; case 's': flags.strictconvert = 1; break; case 'v': flags.verbose = 2; break; case '1': flags.oneline = 1; break; case 'I': flags.verbose = 2; /* fall through */ case 'V': doprintversion = 1; break; case 'U': showunitsfile(); exit(EXIT_SUCCESS); break; case 'h': usage(); exit(EXIT_SUCCESS); #ifdef READLINE case 'H': if (emptystr(optarg)) historyfile=NULL; else historyfile = optarg; break; #endif case 0: break; /* This is reached if a long option is processed with no return value set. */ case '?': /* Invalid option or missing argument returns '?' */ default: helpmsg(); /* helpmsg() exits with error */ } } if (doprintversion){ printversion(); exit(EXIT_SUCCESS); } if (flags.unitcheck) { if (optind != argc){ fprintf(stderr, "Too many arguments (arguments are not allowed with -c).\n"); helpmsg(); /* helpmsg() exits with error */ } } else { if (optind == argc - 2) { flags.quiet=1; *from = argv[optind]; *to = dupstr(argv[optind+1]); /* This string may get rewritten later */ return 0; /* and we might call free() on it */ } if (optind == argc - 1) { flags.quiet=1; *from = argv[optind]; *to=0; return 0; } if (optind < argc - 2) { fprintf(stderr,"Too many arguments (maybe you need quotes).\n"); helpmsg(); /* helpmsg() exits with error */ } } return 1; } /* Show a pointer under the input to indicate a problem. Prints 'position' spaces and then the pointer. If 'position' is negative, nothing is printed. */ void showpointer(int position) { if (position >= 0){ while (position--) putchar(' '); puts("^"); } } /* end showpointer */ /* Process the string 'unitstr' as a unit, placing the processed data in the unit structure 'theunit'. Returns 0 on success and 1 on failure. If an error occurs an error message is printed to stdout. A pointer ('^') will be printed if an error is detected, and promptlen should be set to the printing width of the prompt string, or set it to NOPOINT to supress printing of the pointer. */ int processunit(struct unittype *theunit, char *unitstr, int promptlen) { char *errmsg; int errloc,err; char savechar; if (flags.unitlists && strchr(unitstr, UNITSEPCHAR)){ puts("Unit list not allowed"); return 1; } if ((err=parseunit(theunit, unitstr, &errmsg, &errloc))){ if (promptlen >= 0){ if (err!=E_UNKNOWNUNIT || !irreducible){ if (errloc>0) { savechar = unitstr[errloc]; unitstr[errloc] = 0; showpointer(promptlen+strwidth(unitstr)-1); unitstr[errloc] = savechar; } else showpointer(promptlen); } } else printf("Error in '%s': ", unitstr); fputs(errmsg,stdout); if (err==E_UNKNOWNUNIT && irreducible) printf(" '%s'", irreducible); putchar('\n'); return 1; } if ((err=completereduce(theunit))){ fputs(errormsg[err],stdout); if (err==E_UNKNOWNUNIT) printf(" '%s'", irreducible); putchar('\n'); return 1; } return 0; } /* Checks the input parameter unitstr (a list of units separated by UNITSEPCHAR) for errors. All units must be parseable and conformable to each other. Returns 0 on success and 1 on failure. I an error is found then print an error message on stdout. A pointer ('^') will be printed to mark the error. The promptlen parameter should be set to the printing width of the prompt string so that the pointer is correctly aligned. To suppress the printing of the pointer set promptlen to NOPOINT. To suppress printing of error messages entirely set promptlen to NOERRMSG. */ int checkunitlist(char *unitstr, int promptlen) { struct unittype unit[2], one; char *firstunitstr,*nextunitstr; int unitidx = 0; int printerror = promptlen != NOERRMSG; initializeunit(&one); firstunitstr = unitstr; initializeunit(unit); initializeunit(unit+1); while (unitstr) { if ((nextunitstr = strchr(unitstr, UNITSEPCHAR)) != 0) *nextunitstr = '\0'; if (!unitstr[strspn(unitstr, " ")]) { /* unitstr is blank */ if (!nextunitstr) { /* terminal UNITSEPCHAR indicates repetition */ freeunit(unit); /* of last unit and is permitted */ return 0; } else { /* internal blank units are not allowed */ if (printerror){ showpointer(promptlen); puts("Error: blank unit not allowed"); } freeunit(unit); return 1; } } /* processunit() prints error messages; avoid it to supress them */ if ((printerror && processunit(unit+unitidx,unitstr,promptlen)) || (!printerror && (parseunit(unit+unitidx, unitstr,0,0) || completereduce(unit+unitidx) || compareunits(unit+unitidx,&one, ignore_primitive)))){ if (printerror) printf("Error in unit list entry: %s\n",unitstr); freeunit(unit); freeunit(unit+1); return 1; } if (unitidx == 0) unitidx = 1; else { if (compareunits(unit, unit+1, ignore_dimless)){ if (printerror){ int wasverbose = flags.verbose; FILE *savelog = logfile; logfile=0; flags.verbose = 2; /* always use verbose form to be unambiguous */ /* coverity[returned_null] */ *(strchr(firstunitstr, UNITSEPCHAR)) = '\0'; removespaces(firstunitstr); removespaces(unitstr); showpointer(promptlen); showconformabilityerr(firstunitstr, unit, unitstr, unit+1); flags.verbose = wasverbose; logfile = savelog; } freeunit(unit); freeunit(unit+1); return 1; } freeunit(unit+1); } if (nextunitstr) { if (promptlen >= 0) promptlen += strwidth(unitstr)+1; *(nextunitstr++) = UNITSEPCHAR; } unitstr = nextunitstr; } freeunit(unit); return 0; } /* end checkunitlist */ /* Call either processunit or checkunitlist, depending on whether the string 'unitstr' contains a separator character. Returns 0 on success and 1 on failure. If an error occurs an error message is printed to stdout. A pointer will be printed if an error is detected, and promptlen should be set to the printing width of the prompt string, or set it to NOPOINT to supress printing of the pointer. */ int processwant(struct unittype *theunit, char *unitstr, int promptlen) { if (flags.unitlists && strchr(unitstr, UNITSEPCHAR)) return checkunitlist(unitstr, promptlen); else return processunit(theunit, unitstr, promptlen); } void checkallaliases(int verbose) { struct wantalias *aliasptr; for(aliasptr = firstalias; aliasptr; aliasptr=aliasptr->next){ if (verbose) printf("doing unit list '%s'\n", aliasptr->name); if (checkunitlist(aliasptr->definition,NOERRMSG)) printf("Unit list '%s' contains errors\n", aliasptr->name); if (ulookup(aliasptr->name)) printf("Unit list '%s' hides a unit definition.\n", aliasptr->name); if (fnlookup(aliasptr->name)) printf("Unit list '%s' hides a function definition.\n", aliasptr->name); } } /* Check that all units and prefixes are reducible to primitive units and that function definitions are valid and have correct inverses. A message is printed for every unit that does not reduce to primitive units. */ void checkunits(int verbosecheck) { struct unittype have,second,one; struct unitlist *uptr; struct prefixlist *pptr; struct func *funcptr; char *prefixbuf, *testunit; int i; initializeunit(&one); /* Check all functions for valid definition and correct inverse */ for(i=0;inext) checkfunc(funcptr, verbosecheck); checkallaliases(verbosecheck); /* Now check all units for validity */ for(i=0;inext){ if (verbosecheck) printf("doing '%s'\n",uptr->name); if (parseunit(&have, uptr->name,0,0) || completereduce(&have) || compareunits(&have,&one, ignore_primitive)){ if (fnlookup(uptr->name)) printf("Unit '%s' hidden by function '%s'\n", uptr->name, uptr->name); else printf("'%s' defined as '%s' irreducible\n",uptr->name, uptr->value); } else { parserflags.minusminus = !parserflags.minusminus; /* coverity[check_return] */ parseunit(&second, uptr->name, 0, 0); /* coverity[check_return] */ completereduce(&second); /* Can't fail because it worked above */ if (compareunits(&have, &second, ignore_nothing)){ printf("'%s': replace '-' with '+-' for subtraction or '*' to multiply\n", uptr->name); } freeunit(&second); parserflags.minusminus=!parserflags.minusminus; } freeunit(&have); } /* Check prefixes */ testunit="meter"; for(i=0;inext){ if (verbosecheck) printf("doing '%s-'\n",pptr->name); prefixbuf = mymalloc(strlen(pptr->name) + strlen(testunit) + 1, "(checkunits)"); strcpy(prefixbuf,pptr->name); strcat(prefixbuf,testunit); if (parseunit(&have, prefixbuf,0,0) || completereduce(&have) || compareunits(&have,&one,ignore_primitive)) printf("'%s-' defined as '%s' irreducible\n",pptr->name, pptr->value); else { int plevel; /* check for bad '/' character in prefix */ char *ch; plevel = 0; for(ch=pptr->value;*ch;ch++){ if (*ch==')') plevel--; else if (*ch=='(') plevel++; else if (plevel==0 && *ch=='/'){ printf( "'%s-' defined as '%s' contains a bad '/'. (Add parentheses.)\n", pptr->name, pptr->value); break; } } } freeunit(&have); free(prefixbuf); } } /* Converts the input value 'havestr' (which is already parsed into the unit structure 'have') into a sum of the UNITSEPCHAR-separated units listed in 'wantstr'. You must call checkunitlist first to ensure 'wantstr' is error-free. Prints the results (or an error message) on stdout. Returns 0 on success and 1 on failure. */ int showunitlist(char *havestr, struct unittype *have, char *wantstr) { struct unittype want, lastwant; char *lastunitstr, *nextunitstr, *lastwantstr=0; double remainder; /* portion of have->factor remaining */ double round_dir; /* direction of rounding */ double value; /* value (rounded to integer with 'r' option) */ int firstunit = 1; /* first unit in a multi-unit string */ int value_shown = 0; /* has a value been shown? */ initializeunit(&want); remainder = have->factor; lastunitstr = 0; nextunitstr = 0; round_dir = 0; if (flags.round) { /* disable unit repetition with terminal UNITSEPCHAR when rounding */ if (lastchar(wantstr) == UNITSEPCHAR) lastchar(wantstr) = 0; if ((lastwantstr = strrchr(wantstr, UNITSEPCHAR))) lastwantstr++; } while (wantstr) { if ((nextunitstr = strchr(wantstr, UNITSEPCHAR))) *(nextunitstr++) = '\0'; removespaces(wantstr); /* if wantstr ends in UNITSEPCHAR, repeat last unit--to give integer and fractional parts (3 oz + 0.371241 oz rather than 3.371241 oz) */ if (emptystr(wantstr)) /* coverity[alias_transfer] */ wantstr = lastunitstr; if (processunit(&want, wantstr, NOPOINT)) { freeunit(&want); return 1; } if (firstunit){ /* checkunitlist() ensures conformability within 'wantstr', so we just need to check the first unit to see if it conforms to 'have' */ if (compareunits(have, &want, ignore_dimless)) { showconformabilityerr(havestr, have, wantstr, &want); freeunit(&want); return 1; } /* round to nearest integral multiple of last unit */ if (flags.round) { value = remainder; if (lastwantstr && *lastwantstr) { /* more than one unit */ removespaces(lastwantstr); initializeunit(&lastwant); if (processunit(&lastwant, lastwantstr, NOPOINT)) { freeunit(&lastwant); return 1; } remainder = floor(remainder / lastwant.factor + 0.5) * lastwant.factor; } else /* first unit is last unit */ remainder = floor(remainder / want.factor + 0.5) * want.factor; round_dir = remainder - value; } if (flags.verbose == 2) { removespaces(havestr); logprintf("\t%s = ", havestr); } else if (flags.verbose == 1) logputchar('\t'); } /* end if first unit */ if (nextunitstr) { remainder = want.factor * modf(remainder / want.factor, &value); if (round_to_displayed(remainder / want.factor, NULL) == 1) { value++; /* at displayed precision, value rounds up */ remainder = 0; /* and remainder is zero */ } else if (fabs(remainder / have->factor) < DBL_EPSILON) remainder = 0; /* remainder is just rounding error */ } else { /* last unit */ value = remainder / want.factor; if (!flags.round) { /* round to displayed precision */ value = round_to_displayed(value, NULL); } } if (!flags.verbose){ if (!firstunit) logputchar(UNITSEPCHAR); logprintf(num_format.format,value); value_shown=1; } else { /* verbose case */ if (value != 0) { if (value_shown) /* have already displayed a number so need a '+' */ logputs(" + "); showunitname(value, wantstr, PRINTNUM); value_shown=1; } } freeunit(&want); lastunitstr = wantstr; wantstr = nextunitstr; firstunit = 0; } /* if the final unit value was rounded print indication */ if (!value_shown) { /* provide output if every value rounded to zero */ logputs("0 "); if (isdecimal(*lastunitstr)) logputs("* "); logputs(lastunitstr); } if (round_dir != 0) { if (flags.verbose){ if (round_dir > 0) logprintf(" (rounded up to nearest %s) ", lastunitstr); else logprintf(" (rounded down to nearest %s) ", lastunitstr); } else logprintf("%c%c", UNITSEPCHAR, round_dir > 0 ?'-':'+'); } logputchar('\n'); return 0; } /* end showunitlist */ #if defined (_WIN32) && defined (HAVE_MKS_TOOLKIT) int ismksmore(char *pager) { static int mksmore = -1; if (mksmore >= 0) return mksmore; /* Tries to determine whether the MKS Toolkit version of more(1) or less(1) will run. Neither accepts '+', so if either will run, we need to give the option as '+g'. */ if (strstr(pager, "more") || strstr(pager, "less")) { char *mypager, *mkspager, *mksroot, *p; char pathbuf[FILENAME_MAX + 1]; struct _stat mybuf, mksbuf; mypager = NULL; mkspager = NULL; mksmore = 0; if (strlen(pager) > FILENAME_MAX) { fprintf(stderr, "%s: cannot invoke pager--value '%s' in PAGER too long\n", progname, pager); return 0; /* TODO: this really isn't the right value */ } else if (!isfullpath(pager)) { mypager = (char *) mymalloc(strlen(pager) + strlen(EXE_EXT) + 1, "(ishelpquery)"); strcpy(mypager, pager); if (!((p = strrchr(mypager, '.')) && isexe(p))) strcat(mypager, EXE_EXT); _searchenv(mypager, "PATH", pathbuf); } else strcpy(pathbuf, pager); mksroot = getenv("ROOTDIR"); if (mksroot) { char * mksprog; if (strstr(pager, "more")) mksprog = "more.exe"; else mksprog = "less.exe"; mkspager = (char *) mymalloc(strlen(mksroot) + strlen("/mksnt/") + strlen(mksprog) + 1, "(ishelpquery)"); strcpy(mkspager, mksroot); strcat(mkspager, "/mksnt/"); strcat(mkspager, mksprog); } if (*pathbuf && mksroot) { if (_stat(mkspager, &mksbuf)) { fprintf(stderr, "%s: cannot stat file '%s'. ", progname, mkspager); perror((char *) NULL); return 0; } if (_stat(pathbuf, &mybuf)) { fprintf(stderr, "%s: cannot stat file '%s'. ", progname, pathbuf); perror((char *) NULL); return 0; } /* if we had inodes, this would be simple ... but if it walks like a duck and swims like a duck and quacks like a duck ... */ if (mybuf.st_size == mksbuf.st_size && mybuf.st_ctime == mksbuf.st_ctime && mybuf.st_mtime == mksbuf.st_mtime && mybuf.st_atime == mksbuf.st_atime && mybuf.st_mode == mksbuf.st_mode) mksmore = 1; } if (mypager) free(mypager); if (mkspager) free(mkspager); } return mksmore; } #endif /* Checks to see if the input string contains HELPCOMMAND possibly followed by a unit name on which help is sought. If not, then return 0. Otherwise invoke the pager on units file at the line where the specified unit is defined. Then return 1. */ int ishelpquery(char *str, struct unittype *have) { struct unitlist *unit; struct func *function; struct wantalias *alias; struct prefixlist *prefix; char commandbuf[1000]; /* Hopefully this is enough overkill as no bounds */ int unitline; /* checking is performed. */ char *file; if (have && !strcmp(str, UNITMATCH)){ tryallunits(have,0); return 1; } if (startswith(str, SEARCHCOMMAND)){ str+=strlen(SEARCHCOMMAND); if (!emptystr(str) && *str != ' ') return 0; removespaces(str); if (emptystr(str)){ printf("\n\ Type 'search text' to see a list of all unit names \n\ containing 'text' as a substring\n\n"); return 1; } tryallunits(0,str); return 1; } if (startswith(str, HELPCOMMAND)){ str+=strlen(HELPCOMMAND); if (!emptystr(str) && *str != ' ') return 0; removespaces(str); if (emptystr(str)){ printf("\n\ Units converts between different measuring systems and %s6 inches\n\ acts as a units-aware calculator. At the '%s' %scm\n\ prompt, type in the units you want to convert from or * 15.24\n\ an expression to evaluate. At the '%s' prompt, / 0.065\n\ enter the units to convert to or press return to see\n\ the reduced form or definition. %stempF(75)\n\ %stempC\n\ The first example shows that 6 inches is about 15 cm 23.889\n\ or (1/0.065) cm. The second example shows how to\n\ convert 75 degrees Fahrenheit to Celsius. The third %sbu^(1/3)\n\ example converts the cube root of a bushel to a list %sft;in\n\ of semicolon-separated units. 1 ft + 0.9 in\n\ \n\ To quit from units type Ctrl-%s or Ctrl-C. %s2 btu + 450 ft lbf\n\ %s(kg^2/s)/(day lb/m^2)\n\ At the '%s' prompt type '%s' to get a * 1.0660684e+08\n\ list of conformable units. At either prompt you / 9.3802611e-09\n\ type 'help myunit' to browse the units database\n\ and read the comments relating to myunit or see %s6 tbsp sugar\n\ other units related to myunit. Typing 'search %sg\n\ text' will show units whose names contain 'text'. * 75\n\ / 0.013333333\n", QUERYHAVE, QUERYHAVE, QUERYWANT, QUERYWANT, QUERYHAVE,QUERYWANT,QUERYHAVE,QUERYWANT, EOFCHAR, QUERYHAVE,QUERYWANT, QUERYWANT, UNITMATCH, QUERYHAVE,QUERYWANT); return 1; } if ((function = fnlookup(str))){ file = function->file; unitline = function->linenumber; } else if ((unit = ulookup(str))){ unitline = unit->linenumber; file = unit->file; } else if ((prefix = plookup(str)) && strlen(str)==prefix->len){ unitline = prefix->linenumber; file = prefix->file; } else if ((alias = aliaslookup(str))){ unitline = alias->linenumber; file = alias->file; } else { printf("Unknown unit '%s'\n",str); return 1; } #if defined (_WIN32) && defined (HAVE_MKS_TOOLKIT) if (ismksmore(pager)) /* inner escaped quotes are necessary for filenames with spaces; outer escaped quotes are necessary for cmd.exe to see the command as a single string containing one or more quoted strings (e.g., cmd /c ""command" "arg1" "arg2" ... ") */ sprintf(commandbuf,"\"\"%s\" +%dg \"%s\"\"", pager, unitline, file); else /* more.com seems to have positioning problems, and it can't back up */ sprintf(commandbuf,"\"\"%s\" +%d \"%s\"\"", pager, unitline > 2 ? unitline - 3 : unitline, file); #elif defined (_WIN32) sprintf(commandbuf,"\"\"%s\" +%d \"%s\"\"", pager, unitline > 2 ? unitline - 3 : unitline, file); #else sprintf(commandbuf,"%s +%d %s", pager, unitline, file); #endif if (system(commandbuf)) fprintf(stderr,"%s: cannot invoke pager '%s' to display help\n", progname, pager); return 1; } return 0; } #ifdef SUPPORT_UTF8 void checklocale() { char *temp; temp = setlocale(LC_CTYPE,""); utf8mode = (strcmp(nl_langinfo(CODESET),"UTF-8")==0); if (temp){ mylocale = dupstr(temp); temp = strchr(mylocale,'.'); if (temp) *temp = 0; } else mylocale = DEFAULTLOCALE; } #else void checklocale() { char *temp=0; #ifndef NO_SETLOCALE temp = setlocale(LC_CTYPE,""); #endif if (!temp) temp = getenv("LC_CTYPE"); if (!temp) temp = getenv("LANG"); if (!temp) mylocale = DEFAULTLOCALE; else { mylocale = dupstr(temp); temp = strchr(mylocale,'.'); if (temp) *temp = 0; } } #endif /* Replaces an alias in the specified string input. Returns 1 if the alias that is found contains errors. */ int replacealias(char **string, int *buflen) { int usefree = 1; struct wantalias *aliasptr; char *input; if (!flags.readline && buflen) usefree = 0; if (*string && **string) { /* check that string is defined and nonempty */ input = *string; removespaces(input); if ((aliasptr=aliaslookup(input))){ if (checkunitlist(aliasptr->definition,NOERRMSG)){ puts("Unit list definition contains errors."); return 1; } if (usefree){ free(*string); *string = dupstr(aliasptr->definition); } else { /* coverity[dead_error_line] */ while (strlen(aliasptr->definition)>*buflen) growbuffer(string, buflen); strcpy(*string, aliasptr->definition); } } } return 0; } /* Remaps the locale name returned on Windows systems to the value returned on Unix-like systems */ void remaplocale(char *filename) { FILE *map; char *value; char name[80]; map = fopen(filename,"rt"); if (!map) { fprintf(stderr,"%s: cannot open locale map '%s'. ",progname,filename); perror((char *) NULL); } else { while(!feof(map)){ if (!fgets(name,80,map)) break; value=strchr(name,'#'); if (value) *value=0; value=strchr(name,'\t'); if (!value) continue; *value++=0; removespaces(value); removespaces(name); if (!strcmp(name, mylocale)) mylocale = dupstr(value); } fclose(map); } } void close_logfile(void) { if (logfile){ fputc('\n',logfile); fclose(logfile); } } void open_logfile(void) { time_t logtime; char * timestr; logfile = fopen(logfilename, "at"); if (!logfile){ fprintf(stderr, "%s: cannot write to log file '%s'. ", progname, logfilename); perror(0); exit(EXIT_FAILURE); } time(&logtime); timestr = ctime(&logtime); fprintf(logfile, "### Log started %s \n", timestr); atexit(close_logfile); } void write_files_sig(int sig) { #ifdef READLINE if (historyfile) save_history(); #endif close_logfile(); signal(sig, SIG_DFL); raise(sig); } int main(int argc, char **argv) { static struct unittype have, want; char *havestr=0, *wantstr=0; struct func *funcval; struct wantalias *alias; int havestrsize=0; /* Only used if READLINE is undefined */ int wantstrsize=0; /* Only used if READLINE is undefined */ int interactive; int readerr; char **unitfileptr; int unitcount=0, prefixcount=0, funccount=0; /* for counting units */ char *queryhave, *querywant, *comment; int queryhavewidth, querywantwidth; #ifdef _WIN32 char *localemap; #endif /* Set program parameter defaults */ num_format.format = NULL; num_format.precision = DEFAULTPRECISION; num_format.type = DEFAULTTYPE; flags.quiet = 0; /* Do not supress prompting */ flags.unitcheck = 0; /* Unit checking is off */ flags.verbose = 1; /* Medium verbosity */ flags.round = 0; /* Rounding off */ flags.strictconvert=0; /* Strict conversion disabled (reciprocals active) */ flags.unitlists = 1; /* Multi-unit conversion active */ flags.oneline = 0; /* One line output is disabled */ flags.showfactor = 0; /* Don't show a multiplier for a 1|x fraction */ /* in unit list output */ parserflags.minusminus = 1; /* '-' character gives subtraction */ parserflags.oldstar = 0; /* '*' has same precedence as '/' */ progname = getprogramname(argv[0]); /* unless UNITSFILE and LOCALEMAP have absolute pathnames, we may need progdir to search for supporting files */ if (!(isfullpath(UNITSFILE) && isfullpath(LOCALEMAP))) progdir = getprogdir(argv[0], &fullprogname); else { progdir = NULL; fullprogname = NULL; } datadir = NULL; /* directory to search as last resort */ checklocale(); #ifdef READLINE # if RL_READLINE_VERSION > 0x0402 rl_completion_entry_function = (rl_compentry_func_t *)completeunits; # else rl_completion_entry_function = (Function *)completeunits; # endif rl_basic_word_break_characters = " \t+-*/()|^;"; flags.readline = isatty(0); if (flags.readline){ int file_exists; historyfile = personalfile(NULL,HISTORY_FILE,1,&file_exists); } #else flags.readline = 0; #endif unitsfiles[0] = 0; #ifdef _WIN32 if (!strcmp(homeunitsfile,".units")) homeunitsfile = "unitdef.units"; #endif interactive = processargs(argc, argv, &havestr, &wantstr); #ifdef READLINE if (interactive && flags.readline && historyfile){ rl_initialize(); read_history(historyfile); init_history_length = history_length; init_history_base = history_base; atexit(save_history); } #endif signal(SIGINT, write_files_sig); signal(SIGTERM, write_files_sig); if (logfilename) { if (!interactive) fprintf(stderr, "Log file '%s' ignored in non-interactive mode.\n",logfilename); else open_logfile(); } /* user has specified the complete format--use it */ if (num_format.format != NULL) { if (parsenumformat()) exit(EXIT_FAILURE); } else setnumformat(); if (flags.verbose==0) deftext = ""; if (!unitsfiles[0]){ char *unitsfile; unitsfile = findunitsfile(0); if (!unitsfile) exit(EXIT_FAILURE); else { int file_exists; unitsfiles[0] = unitsfile; unitsfiles[1] = personalfile(HOME_UNITS_ENV, homeunitsfile, 0, &file_exists); unitsfiles[2] = 0; } } #ifdef _WIN32 localemap = findlocalemap(0); if (localemap) remaplocale(localemap); #endif for(unitfileptr=unitsfiles;*unitfileptr;unitfileptr++){ readerr = readunits(*unitfileptr, stderr, &unitcount, &prefixcount, &funccount, 0); if (readerr==E_MEMORY) exit(EXIT_FAILURE); if (readerr==E_FILE){ fprintf(stderr, "%s: cannot open units file '%s'. ", progname, *unitfileptr); perror(0); exit(EXIT_FAILURE); } } if (flags.quiet) queryhave = querywant = ""; /* No prompts are being printed */ else { queryhave = QUERYHAVE; querywant = QUERYWANT; printf("%d units, %d prefixes, %d nonlinear units\n\n", unitcount, prefixcount,funccount); } queryhavewidth = strwidth(queryhave); querywantwidth = strwidth(querywant); if (flags.unitcheck) { checkunits(flags.unitcheck==2 || flags.verbose==2); exit(EXIT_SUCCESS); } if (!interactive) { replacectrlchars(havestr); if (wantstr) replacectrlchars(wantstr); #ifdef SUPPORT_UTF8 if (strwidth(havestr)<0){ printf("Error: %s on input\n",invalid_utf8); exit(EXIT_FAILURE); } if (wantstr && strwidth(wantstr)<0){ printf("Error: %s on input\n",invalid_utf8); exit(EXIT_FAILURE); } #endif replace_minus(havestr); removespaces(havestr); if (wantstr) { replace_minus(wantstr); removespaces(wantstr); } if ((funcval = fnlookup(havestr))){ showfuncdefinition(funcval, FUNCTION); exit(EXIT_SUCCESS); } if ((funcval = invfnlookup(havestr))){ showfuncdefinition(funcval, INVERSE); exit(EXIT_SUCCESS); } if ((alias = aliaslookup(havestr))){ showunitlistdef(alias); exit(EXIT_SUCCESS); } if (processunit(&have, havestr, NOPOINT)) exit(EXIT_FAILURE); if (!wantstr){ showdefinition(havestr,&have); exit(EXIT_SUCCESS); } if (replacealias(&wantstr, 0)) /* the 0 says that we can free wantstr */ exit(EXIT_FAILURE); if ((funcval = fnlookup(wantstr))){ if (showfunc(havestr, &have, funcval)) /* Clobbers have */ exit(EXIT_FAILURE); else exit(EXIT_SUCCESS); } if (processwant(&want, wantstr, NOPOINT)) exit(EXIT_FAILURE); if (strchr(wantstr, UNITSEPCHAR)){ if (showunitlist(havestr, &have, wantstr)) exit(EXIT_FAILURE); else exit(EXIT_SUCCESS); } if (showanswer(havestr,&have,wantstr,&want)) exit(EXIT_FAILURE); else exit(EXIT_SUCCESS); } else { /* interactive */ pager = getenv("PAGER"); if (!pager) pager = DEFAULTPAGER; for (;;) { do { fflush(stdout); getuser(&havestr,&havestrsize,queryhave); replace_minus(havestr); comment = strip_comment(havestr); removespaces(havestr); if (logfile && comment && emptystr(havestr)) fprintf(logfile, "#%s\n", comment); } while (emptystr(havestr) || ishelpquery(havestr,0) || (!fnlookup(havestr) && !invfnlookup(havestr) && !aliaslookup(havestr) && processunit(&have, havestr, queryhavewidth))); if (logfile) { if (comment) fprintf(logfile, "%s%s\t#%s\n", LOGFROM, havestr,comment); else fprintf(logfile, "%s%s\n", LOGFROM, havestr); } if ((alias = aliaslookup(havestr))){ showunitlistdef(alias); continue; } if ((funcval = fnlookup(havestr))){ showfuncdefinition(funcval, FUNCTION); continue; } if ((funcval = invfnlookup(havestr))){ showfuncdefinition(funcval, INVERSE); continue; } do { int repeat; do { repeat = 0; fflush(stdout); getuser(&wantstr,&wantstrsize,querywant); replace_minus(wantstr); comment = strip_comment(wantstr); removespaces(wantstr); if (logfile && comment && emptystr(wantstr)){ fprintf(logfile, "#%s\n", comment); repeat = 1; } if (ishelpquery(wantstr, &have)){ repeat = 1; printf("%s%s\n",queryhave, havestr); } } while (repeat); } while (replacealias(&wantstr, &wantstrsize) || (!fnlookup(wantstr) && processwant(&want, wantstr, querywantwidth))); if (logfile) { fprintf(logfile, "%s", LOGTO); tightprint(logfile, wantstr); if (comment) fprintf(logfile, "\t#%s", comment); putc('\n', logfile); } if (emptystr(wantstr)) showdefinition(havestr,&have); else if (strchr(wantstr, UNITSEPCHAR)) showunitlist(havestr, &have, wantstr); else if ((funcval = fnlookup(wantstr))) showfunc(havestr, &have, funcval); /* Clobbers have */ else { showanswer(havestr,&have,wantstr, &want); freeunit(&want); } unitcopy(&lastunit, &have); lastunitset=1; freeunit(&have); } } return (0); } /* NOTES: mymalloc, growbuffer and tryallunits are the only places with print statements that should (?) be removed to make a library. How can error reporting in these functions (memory allocation errors) be handled cleanly for a library implementation? Way to report the reduced form of the two operands of a sum when they are not conformable. Way to report the required domain when getting an domain error. */ units-2.16/ChangeLog0000664000175000017500000003430512407773204013651 0ustar adrianadrian2014-09-22 Adrian Mariano * units.c (readunits): changed comment processing to happen before unicode validity check, so that comments can contain bogus unicode (if desired). 2014-03-28 Adrian Mariano * units.c (main): Changed getprogname->getprogramname to avoid CYGWIN conflict. 2014-01-23 Adrian Mariano * units.c (processargs): Only print error message for invalid entries plus the short message on how to get longer help. 2014-01-03 Adrian Mariano * parse.y: Switch to %parse-param and %lex-param so that parser will work with Bison 3.0. 2013-12-20 Adrian Mariano * units.c: Put functions into hash table like the table used for prefixes. * units.c (unitpower): Convert exponents to rationals using new function float2rat. This enables support for rational exponents with numerators larger than 1. * units.c (completeunits): Rewrote this function to handle hashed functions as well as prefixes and built in functions. 2011-01-23 Adrian Mariano * parse.y (yylex): Tweaked scanner to raise a new error (BADNUMBER) when a number is immediately followed by more numeric characters. This prevents things like 1.2.3 and 1..2 which were both legal and had possibly unexpected parsings before. Added new error code to units.h and new error message to units.c. 2010-05-20 Adrian Mariano * units.c: Added utf8 support. Added code to check for !utf8 in units.dat. Added better checking for locale. Added strwidth() to determine with of a utf8 string, and corrected code to use this function where appropriate. 2009-12-05 Adrian Mariano * units.c (rootunit): Fixed bug (n & 1==0) is always false * Numerous minor changes for eliminating warnings with -Wall 2009-10-03 Adrian Mariano * units.c (main): Changed RL_READLINE_VERSION test from > to >=. 2007-05-18 adrian * units.c (personalunitsfile): Added personalunitsfile() function to find ~/.units.dat if it exists. Added code in main() to load this file (first) when no -f specifications occur. (tryallunits): Modified to perform searching either for conformable units or for text matching units. This required changes to addtolist() as well. * parse.y: Added entry to support x^-y when - is not a multiply operator. Added MULTSTAR type and support for lower multiply precedence for '*'. Added special check for '**' operator as the old code didn't work. 2006-02-26 adrian * units.c: Added -1/--one-line option to display one line of output only. * units.c: Added --compact option to print output with only the conversion factor. * units.c: Changed verbose variable. Now it is 1 for normal output, zero for less output and 2 for more verbose output. The --compact option sets it to zero, and --verbose sets it to 2. The --terse option now simply sets other options. 2005-09-10 adrian * parse.y: Declared err as static and added %name-prefix to parser to make it possible to use units as a library. Note that declaring err as static also averts a bus error on the Intel Mac. 2004-12-12 adrian * units.c (checkunits): Added check for units that use '-' as a binary operator. These units will act differently depending on the way the program is invoked, so print a warning. * units.c (compareproducts): Modified to use a pointer to a function to decide whether a unit should be regarded as dimensionless. Added functions ignore_dimless(), ignore_primitive() and ignore_nothing() to use for invoking compareproducts. Modified compareunits to take this parameter as well. 2004-06-20 Adrian Mariano * parse.y: Added MINUS token and changed lexer to treat '-' according to the global variable minusminus either as MINUS or in the old fashion as MULTMINUS. * parse.y (funcunit): Added call to freeunit() to close memory leak. * units.c (compareproducts): Altered this function to use isdimless() when comparing units so that dimensionless units can be ignored in the comparison. Added isdimless() which checks whether a unit is defined as NODIM. 2003-12-04 Adrian Mariano * units.c (lookupunit): Added check for -ies plural 2003-09-20 Adrian Mariano * units.c (readunits): Wrote in a file to capture error messages, pass back an error return instead of calling exit(), do included units files with "!include", give error on nested "!locale" statements. 2003-05-09 Adrian Mariano * units.c: (readunits): Added error checking for function and prefix names. 2002-05-06 Adrian Mariano * units.c (reduceunit): The last change to reduceunit was screwed up. Corrected it. 2001-11-26 Adrian Mariano * units.c (readunits): Added locale checks to support the '!locale' syntax in units.dat. * configure.in: Added --enable-path-search option which replaces the use of an empty datadir for specifying path searching. 2001-08-30 Adrian Mariano * units.c (reduceunit): Separated two calls to reduceproduct(). This fixes a bug where "Unit reduction error" occurs instead of "Unknown unit". 2001-08-17 Adrian Mariano * units.c (tryallunits): Added signal() calls to ignore the SIGPIPE signal and hopefully prevent premature termination. 2000-05-28 Adrian Mariano * units.c (addtolist): Modified tryallunits() to search function definitions and produce a sorted list, piped through the pager. Modified ishelpquery to invoke ishelpquery to produce a list. 2000-04-18 Adrian Mariano * units.c (fgetscont): Added fix for backslash at the end of the buffer. 2000-04-13 Adrian Mariano * units.c (readunits): Set "userfile" when a path search is performed so that "help" can find the data file. (ishelpquery): Modified to find functions and prefixes. 2000-04-12 Adrian Mariano * units.c (ishelpquery): Wrote new function to print help messages by invoking a pager on units.dat. This required new field in unitlist structure, and code in main() to check for the "help" command. 2000-04-10 Adrian Mariano * parse.y: rewrote parser rules for correct unary '-'. * units.c (showdefinition): Substantially simplified and made correct for expressions that start with an operator (/ or -). 2000-04-09 Adrian Mariano * units.c (isfunction): Fixed call to removepadding() 2000-02-12 Adrian Mariano * units.c (fgetscont): Fixed buffer full test 1999-04-27 Adrian Mariano * units.c (addsubunit,addsubunitlist): Changed overflow test. Mon Aug 17 13:12:01 1998 Adrian Mariano * units.c (addunit): Added declaration for handlesum() so that it isn't called before being declared. Moved handlesum down the code past completereduce() so that handlesum doesn't call completereduce() before its definition. Sun Mar 8 10:08:56 1998 Adrian Mariano * units.c (main): Set rl_basic_word_break_characters to delimit words properly for unit completion. Mon Jun 9 19:12:08 1997 Adrian Mariano * units.c (lookupunit): Switched order of prefix and plural handling so that plurals are handled first. (This fixes the problem of "pints" being interpreted as p- plus ints.) Sun Apr 6 01:01:24 1997 Adrian Mariano * units.c (removepadding): Added check for zero length strings. This caused units to hang when invoked with arguments that consisted only of whitespace. Mon Mar 10 19:23:21 1997 Adrian Mariano * units.c: Changed 2 strdup() calls into dupstr() calls. Sun Mar 2 18:02:16 1997 Adrian Mariano * units.c: replaced sscanf with strtod affecting numlength() and addnumber(). This circumvents a bug in NeXT's C library and yields simpler code. Wed Feb 12 22:28:42 1997 Adrian Mariano * units.c (showanswer): Fixed to give slightly better display when verbose mode is active. Tue Jan 21 18:51:58 1997 Adrian Mariano * units.c: Changed showanswer() to convert reciprocal units. Added -s,--strict option to disable this conversion. Mon Jan 13 20:37:26 1997 Adrian Mariano * units.c: Added addnumber() because recursive call to addunit() was causing problems with strtok. Tue Dec 31 00:57:42 1996 Adrian Mariano * units.c (prefixhash): Changed to AND with 127 because signed chars seem to be causing segmentation faults with 8 bit characters. Changed size of the table to 128 to correspond. Thu Dec 26 13:54:59 1996 Adrian Mariano * units.c (completeunits): Added 1 to mymalloc() call so there is enough space. (This fixes the tab bug.) Mon Dec 9 23:46:27 1996 Adrian Mariano * unit.c (addunit): Changed logic for calling handlesum() to check that the character immediately before the '+' is not an 'e' since this would probably be an exponent. Mon Dec 7 10:47:43 1996 Adrian Mariano * units.c (lookupunit): Added tempbuf variable to prevent problems when the output from one call to lookupunit is used as input to a later call to lookupunit. * units.c: Changed main() and processargs() to allow invoking units with just one unit specified on the command line. Tue Dec 3 14:19:33 1996 Adrian Mariano * units.c: added verbose option, changed showanswer() to give verbose display, removed first argument from showunit(), added new function removepadding() to trim whitespace. * New file: texi2man, a perl script for converting the texinfo documentation into the man page format. Makefile.in changed to generate units.man from units.texinfo. Mon Dec 2 14:10:56 1996 Adrian Mariano * units.c: New functions handlesum(), addsubunitlist(), and productoverflow(). (addunit): Call handlesum() if there are '+' characters in the string to be added. This handles sums of conformable units. Added free() calls to free savescr when returning with an error. Sun Dec 1 17:30:52 1996 Adrian Mariano * units.c: Added isblank() and showdefinition(). Changed main() to call showdefinition if the second unit entered is blank. Also changed the loop to re-prompt the user for the first unit until something nonblank is entered. Changed showunit() to take two arguments. Wed Nov 27 23:08:33 1996 Adrian Mariano * units.c: Added function completeunits() for doing completion when readline is in use. * makefile.in: added support for LDFLAGS. * units.c (lookupunits): Added tests to avoid trying plurals on one character long base units. Fri Nov 22 19:25:23 1996 Kaveh R. Ghazi * Makefile.in, configure.in, units.c: add ansi2knr support. * New files: aclocal.m4, ansi2knr.1 and ansi2knr.c. Fri Nov 22 10:33:43 1996 Adrian Mariano * units.c: Added removespaces() function called from addunits() to remove spaces around '^' characters so the user doesn't have to be so careful. Thu Nov 21 23:39:09 1996 Adrian Mariano * units.c (lookupunit): Added check to return the input if it is a number. This was made necessary by the change in the handling of numbers which broke the '^' operator on numbers. Thu Nov 21 15:22:40 1996 Adrian Mariano * units.c (numlength): Changed test for sscanf to require a return value of exactly 1. For some reason, sscanf sometimes returns -1 instead of 0 when no fields were read. Thu Nov 21 09:17:26 1996 Adrian Mariano * Makefile.in: Added ALL_CFLAGS so that CFLAGS can be used by the user. * configure.in: Added fix to look for ncurses library to go with readline. (Required by some linux version.) Wed Nov 20 14:03:22 1996 Adrian Mariano * configure.in: Added check for const support. * Makefile.in: added VPATH, fixed a few places where $(srcdir) was needed, fixed the install targets to create directories if necessary by calling mkinstalldirs. Fixed man pages install target. Sun Nov 17 00:05:12 1996 Adrian Mariano * units.c: Added numlength() to handle "numbers" with multiple 'e' or '.' characters. Changed number evaluation in addunit() to do something reasonable when multiple '|' characters appear. Now number evaluation is done by sscanf() instead of atof(). Removed handling of numbers with no trailing space from lookupunit() and added it to addunit() with a recursive call. Thu Nov 1 16:18:08 1996 Adrian Mariano * units.c: Fixed up portability for string.h, stdlib.h. Added declarations for string functions and atof(). * units.c: Removed calls to tolower() since they turned out to be unportable. Sun Sep 8 10:19:43 1996 Adrian Mariano * units.c: Added long options, made option flag variables global. * units.c: Added freeunit() function to free units (which was never done), and uncommented two free() calls in cancelunit(). * units.c: Added processargs() function to tidy things up. Thu Sep 5 01:18:52 1996 Adrian Mariano * units.c: Removed all the static char * buffers and added support for readline(). Added growbuffer() and fgetslong() and getuser(). * units.c (readunits): Rewrote parsing to be cleaner and to remove trailing white space in units. Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc units-2.16/configure0000775000175000017500000044654613176043432014021 0ustar adrianadrian#! /bin/sh # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.69 for GNU units 2.16. # # Report bugs to . # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. # # # This configure script is free software; the Free Software Foundation # gives unlimited permission to copy, distribute and modify it. ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # Use a proper internal environment variable to ensure we don't fall # into an infinite loop, continuously re-executing ourselves. if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then _as_can_reexec=no; export _as_can_reexec; # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 as_fn_exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST else case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi " as_required="as_fn_return () { (exit \$1); } as_fn_success () { as_fn_return 0; } as_fn_failure () { as_fn_return 1; } as_fn_ret_success () { return 0; } as_fn_ret_failure () { return 1; } exitcode=0 as_fn_success || { exitcode=1; echo as_fn_success failed.; } as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : else exitcode=1; echo positional parameters were not saved. fi test x\$exitcode = x0 || exit 1 test -x / || exit 1" as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 test \$(( 1 + 1 )) = 2 || exit 1" if (eval "$as_required") 2>/dev/null; then : as_have_required=yes else as_have_required=no fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. as_found=: case $as_dir in #( /*) for as_base in sh bash ksh sh5; do # Try only shells that exist, to save several forks. as_shell=$as_dir/$as_base if { test -f "$as_shell" || test -f "$as_shell.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : CONFIG_SHELL=$as_shell as_have_required=yes if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : break 2 fi fi done;; esac as_found=false done $as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : CONFIG_SHELL=$SHELL as_have_required=yes fi; } IFS=$as_save_IFS if test "x$CONFIG_SHELL" != x; then : export CONFIG_SHELL # We cannot yet assume a decent shell, so we have to provide a # neutralization value for shells without unset; and this also # works around shells that cannot unset nonexistent variables. # Preserve -v and -x to the replacement shell. BASH_ENV=/dev/null ENV=/dev/null (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV case $- in # (((( *v*x* | *x*v* ) as_opts=-vx ;; *v* ) as_opts=-v ;; *x* ) as_opts=-x ;; * ) as_opts= ;; esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail # out after a failed `exec'. $as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi if test x$as_have_required = xno; then : $as_echo "$0: This script requires a shell more modern than all" $as_echo "$0: the shells that I found on your system." if test x${ZSH_VERSION+set} = xset ; then $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" $as_echo "$0: be upgraded to zsh 4.3.4 or later." else $as_echo "$0: Please tell bug-autoconf@gnu.org and adrianm@gnu.org $0: about your system, including any error possibly output $0: before this message. Then install a modern shell, or $0: manually run the script under such a shell if you do $0: have one." fi exit 1 fi fi fi SHELL=${CONFIG_SHELL-/bin/sh} export SHELL # Unset more variables known to interfere with behavior of common tools. CLICOLOR_FORCE= GREP_OPTIONS= unset CLICOLOR_FORCE GREP_OPTIONS ## --------------------- ## ## M4sh Shell Functions. ## ## --------------------- ## # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits as_lineno_1=$LINENO as_lineno_1a=$LINENO as_lineno_2=$LINENO as_lineno_2a=$LINENO eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) sed -n ' p /[$]LINENO/= ' <$as_myself | sed ' s/[$]LINENO.*/&-/ t lineno b :lineno N :loop s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ t loop s/-\n.*// ' >$as_me.lineno && chmod +x "$as_me.lineno" || { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } # If we had to re-execute with $CONFIG_SHELL, we're ensured to have # already done that, so ensure we don't try to do so again and fall # in an infinite loop. This has already happened in practice. _as_can_reexec=no; export _as_can_reexec # Don't try to exec as it changes $[0], causing all sort of problems # (the dirname of $[0] is not the place where we might find the # original and so on. Autoconf is especially sensitive to this). . "./$as_me.lineno" # Exit status is that of the last command. exit } ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" test -n "$DJDIR" || exec 7<&0 &1 # Name of the host. # hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, # so uname gets run too. ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` # # Initializations. # ac_default_prefix=/usr/local ac_clean_files= ac_config_libobj_dir=. LIBOBJS= cross_compiling=no subdirs= MFLAGS= MAKEFLAGS= # Identity of this package. PACKAGE_NAME='GNU units' PACKAGE_TARNAME='units' PACKAGE_VERSION='2.16' PACKAGE_STRING='GNU units 2.16' PACKAGE_BUGREPORT='adrianm@gnu.org' PACKAGE_URL='http://www.gnu.org/software/units/' # Factoring default headers for most tests. ac_includes_default="\ #include #ifdef HAVE_SYS_TYPES_H # include #endif #ifdef HAVE_SYS_STAT_H # include #endif #ifdef STDC_HEADERS # include # include #else # ifdef HAVE_STDLIB_H # include # endif #endif #ifdef HAVE_STRING_H # if !defined STDC_HEADERS && defined HAVE_MEMORY_H # include # endif # include #endif #ifdef HAVE_STRINGS_H # include #endif #ifdef HAVE_INTTYPES_H # include #endif #ifdef HAVE_STDINT_H # include #endif #ifdef HAVE_UNISTD_H # include #endif" ac_subst_vars='LTLIBOBJS LIBOBJS PYTHON mkstoolkit EGREP GREP CPP MKDIR_P INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM OBJEXT EXEEXT ac_ct_CC CPPFLAGS LDFLAGS CFLAGS CC HAVE_MKS MKS_DRIVE MKS_RES MKS_POSIX PYTHON_VERSION HAVE_PYTHON UDAT STRFUNC DEFIS target_alias host_alias build_alias LIBS ECHO_T ECHO_N ECHO_C DEFS mandir localedir libdir psdir pdfdir dvidir htmldir infodir docdir oldincludedir includedir runstatedir localstatedir sharedstatedir sysconfdir datadir datarootdir libexecdir sbindir bindir program_transform_name prefix exec_prefix PACKAGE_URL PACKAGE_BUGREPORT PACKAGE_STRING PACKAGE_VERSION PACKAGE_TARNAME PACKAGE_NAME PATH_SEPARATOR SHELL' ac_subst_files='' ac_user_opts=' enable_option_checking enable_relocation ' ac_precious_vars='build_alias host_alias target_alias CC CFLAGS LDFLAGS LIBS CPPFLAGS CPP' # Initialize some variables set by options. ac_init_help= ac_init_version=false ac_unrecognized_opts= ac_unrecognized_sep= # The variables have the same names as the options, with # dashes changed to underlines. cache_file=/dev/null exec_prefix=NONE no_create= no_recursion= prefix=NONE program_prefix=NONE program_suffix=NONE program_transform_name=s,x,x, silent= site= srcdir= verbose= x_includes=NONE x_libraries=NONE # Installation directory options. # These are left unexpanded so users can "make install exec_prefix=/foo" # and all the variables that are supposed to be based on exec_prefix # by default will actually change. # Use braces instead of parens because sh, perl, etc. also accept them. # (The list follows the same order as the GNU Coding Standards.) bindir='${exec_prefix}/bin' sbindir='${exec_prefix}/sbin' libexecdir='${exec_prefix}/libexec' datarootdir='${prefix}/share' datadir='${datarootdir}' sysconfdir='${prefix}/etc' sharedstatedir='${prefix}/com' localstatedir='${prefix}/var' runstatedir='${localstatedir}/run' includedir='${prefix}/include' oldincludedir='/usr/include' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' infodir='${datarootdir}/info' htmldir='${docdir}' dvidir='${docdir}' pdfdir='${docdir}' psdir='${docdir}' libdir='${exec_prefix}/lib' localedir='${datarootdir}/locale' mandir='${datarootdir}/man' ac_prev= ac_dashdash= for ac_option do # If the previous option needs an argument, assign it. if test -n "$ac_prev"; then eval $ac_prev=\$ac_option ac_prev= continue fi case $ac_option in *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; *=) ac_optarg= ;; *) ac_optarg=yes ;; esac # Accept the important Cygnus configure options, so we can diagnose typos. case $ac_dashdash$ac_option in --) ac_dashdash=yes ;; -bindir | --bindir | --bindi | --bind | --bin | --bi) ac_prev=bindir ;; -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) bindir=$ac_optarg ;; -build | --build | --buil | --bui | --bu) ac_prev=build_alias ;; -build=* | --build=* | --buil=* | --bui=* | --bu=*) build_alias=$ac_optarg ;; -cache-file | --cache-file | --cache-fil | --cache-fi \ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ac_prev=cache_file ;; -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) cache_file=$ac_optarg ;; --config-cache | -C) cache_file=config.cache ;; -datadir | --datadir | --datadi | --datad) ac_prev=datadir ;; -datadir=* | --datadir=* | --datadi=* | --datad=*) datadir=$ac_optarg ;; -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ | --dataroo | --dataro | --datar) ac_prev=datarootdir ;; -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) datarootdir=$ac_optarg ;; -disable-* | --disable-*) ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=no ;; -docdir | --docdir | --docdi | --doc | --do) ac_prev=docdir ;; -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) docdir=$ac_optarg ;; -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) ac_prev=dvidir ;; -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) dvidir=$ac_optarg ;; -enable-* | --enable-*) ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid feature name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "enable_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval enable_$ac_useropt=\$ac_optarg ;; -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ | --exec | --exe | --ex) ac_prev=exec_prefix ;; -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ | --exec=* | --exe=* | --ex=*) exec_prefix=$ac_optarg ;; -gas | --gas | --ga | --g) # Obsolete; use --with-gas. with_gas=yes ;; -help | --help | --hel | --he | -h) ac_init_help=long ;; -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ac_init_help=recursive ;; -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ac_init_help=short ;; -host | --host | --hos | --ho) ac_prev=host_alias ;; -host=* | --host=* | --hos=* | --ho=*) host_alias=$ac_optarg ;; -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) ac_prev=htmldir ;; -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ | --ht=*) htmldir=$ac_optarg ;; -includedir | --includedir | --includedi | --included | --include \ | --includ | --inclu | --incl | --inc) ac_prev=includedir ;; -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ | --includ=* | --inclu=* | --incl=* | --inc=*) includedir=$ac_optarg ;; -infodir | --infodir | --infodi | --infod | --info | --inf) ac_prev=infodir ;; -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) infodir=$ac_optarg ;; -libdir | --libdir | --libdi | --libd) ac_prev=libdir ;; -libdir=* | --libdir=* | --libdi=* | --libd=*) libdir=$ac_optarg ;; -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ | --libexe | --libex | --libe) ac_prev=libexecdir ;; -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ | --libexe=* | --libex=* | --libe=*) libexecdir=$ac_optarg ;; -localedir | --localedir | --localedi | --localed | --locale) ac_prev=localedir ;; -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) localedir=$ac_optarg ;; -localstatedir | --localstatedir | --localstatedi | --localstated \ | --localstate | --localstat | --localsta | --localst | --locals) ac_prev=localstatedir ;; -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) localstatedir=$ac_optarg ;; -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ac_prev=mandir ;; -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) mandir=$ac_optarg ;; -nfp | --nfp | --nf) # Obsolete; use --without-fp. with_fp=no ;; -no-create | --no-create | --no-creat | --no-crea | --no-cre \ | --no-cr | --no-c | -n) no_create=yes ;; -no-recursion | --no-recursion | --no-recursio | --no-recursi \ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) no_recursion=yes ;; -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ | --oldin | --oldi | --old | --ol | --o) ac_prev=oldincludedir ;; -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) oldincludedir=$ac_optarg ;; -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ac_prev=prefix ;; -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) prefix=$ac_optarg ;; -program-prefix | --program-prefix | --program-prefi | --program-pref \ | --program-pre | --program-pr | --program-p) ac_prev=program_prefix ;; -program-prefix=* | --program-prefix=* | --program-prefi=* \ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) program_prefix=$ac_optarg ;; -program-suffix | --program-suffix | --program-suffi | --program-suff \ | --program-suf | --program-su | --program-s) ac_prev=program_suffix ;; -program-suffix=* | --program-suffix=* | --program-suffi=* \ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) program_suffix=$ac_optarg ;; -program-transform-name | --program-transform-name \ | --program-transform-nam | --program-transform-na \ | --program-transform-n | --program-transform- \ | --program-transform | --program-transfor \ | --program-transfo | --program-transf \ | --program-trans | --program-tran \ | --progr-tra | --program-tr | --program-t) ac_prev=program_transform_name ;; -program-transform-name=* | --program-transform-name=* \ | --program-transform-nam=* | --program-transform-na=* \ | --program-transform-n=* | --program-transform-=* \ | --program-transform=* | --program-transfor=* \ | --program-transfo=* | --program-transf=* \ | --program-trans=* | --program-tran=* \ | --progr-tra=* | --program-tr=* | --program-t=*) program_transform_name=$ac_optarg ;; -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) ac_prev=pdfdir ;; -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) pdfdir=$ac_optarg ;; -psdir | --psdir | --psdi | --psd | --ps) ac_prev=psdir ;; -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) psdir=$ac_optarg ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) silent=yes ;; -runstatedir | --runstatedir | --runstatedi | --runstated \ | --runstate | --runstat | --runsta | --runst | --runs \ | --run | --ru | --r) ac_prev=runstatedir ;; -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ | --run=* | --ru=* | --r=*) runstatedir=$ac_optarg ;; -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ac_prev=sbindir ;; -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ | --sbi=* | --sb=*) sbindir=$ac_optarg ;; -sharedstatedir | --sharedstatedir | --sharedstatedi \ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ | --sharedst | --shareds | --shared | --share | --shar \ | --sha | --sh) ac_prev=sharedstatedir ;; -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ | --sha=* | --sh=*) sharedstatedir=$ac_optarg ;; -site | --site | --sit) ac_prev=site ;; -site=* | --site=* | --sit=*) site=$ac_optarg ;; -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ac_prev=srcdir ;; -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) srcdir=$ac_optarg ;; -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ | --syscon | --sysco | --sysc | --sys | --sy) ac_prev=sysconfdir ;; -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) sysconfdir=$ac_optarg ;; -target | --target | --targe | --targ | --tar | --ta | --t) ac_prev=target_alias ;; -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) target_alias=$ac_optarg ;; -v | -verbose | --verbose | --verbos | --verbo | --verb) verbose=yes ;; -version | --version | --versio | --versi | --vers | -V) ac_init_version=: ;; -with-* | --with-*) ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=\$ac_optarg ;; -without-* | --without-*) ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` # Reject names that are not valid shell variable names. expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && as_fn_error $? "invalid package name: $ac_useropt" ac_useropt_orig=$ac_useropt ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in *" "with_$ac_useropt" "*) ;; *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" ac_unrecognized_sep=', ';; esac eval with_$ac_useropt=no ;; --x) # Obsolete; use --with-x. with_x=yes ;; -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ | --x-incl | --x-inc | --x-in | --x-i) ac_prev=x_includes ;; -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) x_includes=$ac_optarg ;; -x-libraries | --x-libraries | --x-librarie | --x-librari \ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ac_prev=x_libraries ;; -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; -*) as_fn_error $? "unrecognized option: \`$ac_option' Try \`$0 --help' for more information" ;; *=*) ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* ) as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;; *) # FIXME: should be removed in autoconf 3.0. $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" ;; esac done if test -n "$ac_prev"; then ac_option=--`echo $ac_prev | sed 's/_/-/g'` as_fn_error $? "missing argument to $ac_option" fi if test -n "$ac_unrecognized_opts"; then case $enable_option_checking in no) ;; fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; esac fi # Check all directory arguments for consistency. for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ datadir sysconfdir sharedstatedir localstatedir includedir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ libdir localedir mandir runstatedir do eval ac_val=\$$ac_var # Remove trailing slashes. case $ac_val in */ ) ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` eval $ac_var=\$ac_val;; esac # Be sure to have absolute directory names. case $ac_val in [\\/$]* | ?:[\\/]* ) continue;; NONE | '' ) case $ac_var in *prefix ) continue;; esac;; esac as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done # There might be people who depend on the old broken behavior: `$host' # used to hold the argument of --host etc. # FIXME: To remove some day. build=$build_alias host=$host_alias target=$target_alias # FIXME: To remove some day. if test "x$host_alias" != x; then if test "x$build_alias" = x; then cross_compiling=maybe elif test "x$build_alias" != "x$host_alias"; then cross_compiling=yes fi fi ac_tool_prefix= test -n "$host_alias" && ac_tool_prefix=$host_alias- test "$silent" = yes && exec 6>/dev/null ac_pwd=`pwd` && test -n "$ac_pwd" && ac_ls_di=`ls -di .` && ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || as_fn_error $? "working directory cannot be determined" test "X$ac_ls_di" = "X$ac_pwd_ls_di" || as_fn_error $? "pwd does not report name of working directory" # Find the source files, if location was not specified. if test -z "$srcdir"; then ac_srcdir_defaulted=yes # Try the directory containing this script, then the parent directory. ac_confdir=`$as_dirname -- "$as_myself" || $as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_myself" : 'X\(//\)[^/]' \| \ X"$as_myself" : 'X\(//\)$' \| \ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_myself" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` srcdir=$ac_confdir if test ! -r "$srcdir/$ac_unique_file"; then srcdir=.. fi else ac_srcdir_defaulted=no fi if test ! -r "$srcdir/$ac_unique_file"; then test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)` # When building in place, set srcdir=. if test "$ac_abs_confdir" = "$ac_pwd"; then srcdir=. fi # Remove unnecessary trailing slashes from srcdir. # Double slashes in file names in object file debugging info # mess up M-x gdb in Emacs. case $srcdir in */) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; esac for ac_var in $ac_precious_vars; do eval ac_env_${ac_var}_set=\${${ac_var}+set} eval ac_env_${ac_var}_value=\$${ac_var} eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} eval ac_cv_env_${ac_var}_value=\$${ac_var} done # # Report the --help message. # if test "$ac_init_help" = "long"; then # Omit some internal or obsolete options to make the list less imposing. # This message is too long to be a string in the A/UX 3.1 sh. cat <<_ACEOF \`configure' configures GNU units 2.16 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print \`checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for \`--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or \`..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [$ac_default_prefix] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, \`make install' will install all the files in \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify an installation prefix other than \`$ac_default_prefix' using \`--prefix', for instance \`--prefix=\$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/units] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] _ACEOF cat <<\_ACEOF Program names: --program-prefix=PREFIX prepend PREFIX to installed program names --program-suffix=SUFFIX append SUFFIX to installed program names --program-transform-name=PROGRAM run sed PROGRAM on installed program names _ACEOF fi if test -n "$ac_init_help"; then case $ac_init_help in short | recursive ) echo "Configuration of GNU units 2.16:";; esac cat <<\_ACEOF Optional Features: --disable-option-checking ignore unrecognized --enable/--with options --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) --enable-FEATURE[=ARG] include FEATURE [ARG=yes] --enable-relocation look in program directory for units data files (default is NO) Some influential environment variables: CC C compiler command CFLAGS C compiler flags LDFLAGS linker flags, e.g. -L if you have libraries in a nonstandard directory LIBS libraries to pass to the linker, e.g. -l CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if you have headers in a nonstandard directory CPP C preprocessor Use these variables to override the choices made by `configure' or to help it to find libraries and programs with nonstandard names/locations. Report bugs to . GNU units home page: . General help using GNU software: . _ACEOF ac_status=$? fi if test "$ac_init_help" = "recursive"; then # If there are subdirs, report their specific --help. for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue test -d "$ac_dir" || { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || continue ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix cd "$ac_dir" || { ac_status=$?; continue; } # Check for guested configure. if test -f "$ac_srcdir/configure.gnu"; then echo && $SHELL "$ac_srcdir/configure.gnu" --help=recursive elif test -f "$ac_srcdir/configure"; then echo && $SHELL "$ac_srcdir/configure" --help=recursive else $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 fi || ac_status=$? cd "$ac_pwd" || { ac_status=$?; break; } done fi test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF GNU units configure 2.16 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF exit fi ## ------------------------ ## ## Autoconf initialization. ## ## ------------------------ ## # ac_fn_c_try_compile LINENO # -------------------------- # Try to compile conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest.$ac_objext; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_compile # ac_fn_c_try_link LINENO # ----------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_link () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack rm -f conftest.$ac_objext conftest$ac_exeext if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { test -z "$ac_c_werror_flag" || test ! -s conftest.err } && test -s conftest$ac_exeext && { test "$cross_compiling" = yes || test -x conftest$ac_exeext }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would # interfere with the next link command; also delete a directory that is # left behind by Apple's compiler. We do this before executing the actions. rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_link # ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES # --------------------------------------------- # Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR # accordingly. ac_fn_c_check_decl () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack as_decl_name=`echo $2|sed 's/ *(.*//'` as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 $as_echo_n "checking whether $as_decl_name is declared... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 int main () { #ifndef $as_decl_name #ifdef __cplusplus (void) $as_decl_use; #else (void) $as_decl_name; #endif #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_decl # ac_fn_c_try_cpp LINENO # ---------------------- # Try to preprocess conftest.$ac_ext, and return whether this succeeded. ac_fn_c_try_cpp () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_cpp conftest.$ac_ext" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err ac_status=$? if test -s conftest.err; then grep -v '^ *+' conftest.err >conftest.er1 cat conftest.er1 >&5 mv -f conftest.er1 conftest.err fi $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } > conftest.i && { test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || test ! -s conftest.err }; then : ac_retval=0 else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=1 fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_cpp # ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists, giving a warning if it cannot be compiled using # the include files in INCLUDES and setting the cache variable VAR # accordingly. ac_fn_c_check_header_mongrel () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if eval \${$3+:} false; then : { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } else # Is the header compilable? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 $as_echo_n "checking $2 usability... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_header_compiler=yes else ac_header_compiler=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 $as_echo "$ac_header_compiler" >&6; } # Is the header present? { $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 $as_echo_n "checking $2 presence... " >&6; } cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <$2> _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : ac_header_preproc=yes else ac_header_preproc=no fi rm -f conftest.err conftest.i conftest.$ac_ext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 $as_echo "$ac_header_preproc" >&6; } # So? What about this header? case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( yes:no: ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 $as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ;; no:yes:* ) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 $as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 $as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 $as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 $as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 $as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} ( $as_echo "## ------------------------------ ## ## Report this to adrianm@gnu.org ## ## ------------------------------ ##" ) | sed "s/^/$as_me: WARNING: /" >&2 ;; esac { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else eval "$3=\$ac_header_compiler" fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_mongrel # ac_fn_c_try_run LINENO # ---------------------- # Try to link conftest.$ac_ext, and return whether this succeeded. Assumes # that executables *can* be run. ac_fn_c_try_run () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then : ac_retval=0 else $as_echo "$as_me: program exited with status $ac_status" >&5 $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 ac_retval=$ac_status fi rm -rf conftest.dSYM conftest_ipa8_conftest.oo eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval } # ac_fn_c_try_run # ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES # ------------------------------------------------------- # Tests whether HEADER exists and can be compiled using the include files in # INCLUDES, setting the cache variable VAR accordingly. ac_fn_c_check_header_compile () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2> _ACEOF if ac_fn_c_try_compile "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_header_compile # ac_fn_c_check_func LINENO FUNC VAR # ---------------------------------- # Tests whether FUNC exists, setting the cache variable VAR accordingly ac_fn_c_check_func () { as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 $as_echo_n "checking for $2... " >&6; } if eval \${$3+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case declares $2. For example, HP-UX 11i declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes, which can conflict with char $2 (); below. Prefer to if __STDC__ is defined, since exists even on freestanding compilers. */ #ifdef __STDC__ # include #else # include #endif #undef $2 /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char $2 (); /* The GNU C library defines this for functions which it implements to always fail with ENOSYS. Some functions are actually named something starting with __ and the normal name is an alias. */ #if defined __stub_$2 || defined __stub___$2 choke me #endif int main () { return $2 (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : eval "$3=yes" else eval "$3=no" fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi eval ac_res=\$$3 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 $as_echo "$ac_res" >&6; } eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno } # ac_fn_c_check_func cat >config.log <<_ACEOF This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by GNU units $as_me 2.16, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ _ACEOF exec 5>>config.log { cat <<_ASUNAME ## --------- ## ## Platform. ## ## --------- ## hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` uname -m = `(uname -m) 2>/dev/null || echo unknown` uname -r = `(uname -r) 2>/dev/null || echo unknown` uname -s = `(uname -s) 2>/dev/null || echo unknown` uname -v = `(uname -v) 2>/dev/null || echo unknown` /usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` /bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` /bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` /usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` /usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` /usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` /bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` /usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` /bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` _ASUNAME as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. $as_echo "PATH: $as_dir" done IFS=$as_save_IFS } >&5 cat >&5 <<_ACEOF ## ----------- ## ## Core tests. ## ## ----------- ## _ACEOF # Keep a trace of the command line. # Strip out --no-create and --no-recursion so they do not pile up. # Strip out --silent because we don't want to record it for future runs. # Also quote any args containing shell meta-characters. # Make two passes to allow for proper duplicate-argument suppression. ac_configure_args= ac_configure_args0= ac_configure_args1= ac_must_keep_next=false for ac_pass in 1 2 do for ac_arg do case $ac_arg in -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil) continue ;; *\'*) ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; esac case $ac_pass in 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; 2) as_fn_append ac_configure_args1 " '$ac_arg'" if test $ac_must_keep_next = true; then ac_must_keep_next=false # Got value, back to normal. else case $ac_arg in *=* | --config-cache | -C | -disable-* | --disable-* \ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ | -with-* | --with-* | -without-* | --without-* | --x) case "$ac_configure_args0 " in "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; esac ;; -* ) ac_must_keep_next=true ;; esac fi as_fn_append ac_configure_args " '$ac_arg'" ;; esac done done { ac_configure_args0=; unset ac_configure_args0;} { ac_configure_args1=; unset ac_configure_args1;} # When interrupted or exit'd, cleanup temporary files, and complete # config.log. We remove comments because anyway the quotes in there # would cause problems or look ugly. # WARNING: Use '\'' to represent an apostrophe within the trap. # WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. trap 'exit_status=$? # Save into config.log some information that might help in debugging. { echo $as_echo "## ---------------- ## ## Cache variables. ## ## ---------------- ##" echo # The following way of writing the cache mishandles newlines in values, ( for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( *${as_nl}ac_space=\ *) sed -n \ "s/'\''/'\''\\\\'\'''\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" ;; #( *) sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) echo $as_echo "## ----------------- ## ## Output variables. ## ## ----------------- ##" echo for ac_var in $ac_subst_vars do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo if test -n "$ac_subst_files"; then $as_echo "## ------------------- ## ## File substitutions. ## ## ------------------- ##" echo for ac_var in $ac_subst_files do eval ac_val=\$$ac_var case $ac_val in *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; esac $as_echo "$ac_var='\''$ac_val'\''" done | sort echo fi if test -s confdefs.h; then $as_echo "## ----------- ## ## confdefs.h. ## ## ----------- ##" echo cat confdefs.h echo fi test "$ac_signal" != 0 && $as_echo "$as_me: caught signal $ac_signal" $as_echo "$as_me: exit $exit_status" } >&5 rm -f core *.core core.conftest.* && rm -f -r conftest* confdefs* conf$$* $ac_clean_files && exit $exit_status ' 0 for ac_signal in 1 2 13 15; do trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal done ac_signal=0 # confdefs.h avoids OS command line length limits that DEFS can exceed. rm -f -r conftest* confdefs.h $as_echo "/* confdefs.h */" > confdefs.h # Predefined preprocessor variables. cat >>confdefs.h <<_ACEOF #define PACKAGE_NAME "$PACKAGE_NAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_TARNAME "$PACKAGE_TARNAME" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_VERSION "$PACKAGE_VERSION" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_STRING "$PACKAGE_STRING" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" _ACEOF cat >>confdefs.h <<_ACEOF #define PACKAGE_URL "$PACKAGE_URL" _ACEOF # Let the site file select an alternate cache file if it wants to. # Prefer an explicitly selected file to automatically selected ones. ac_site_file1=NONE ac_site_file2=NONE if test -n "$CONFIG_SITE"; then # We do not want a PATH search for config.site. case $CONFIG_SITE in #(( -*) ac_site_file1=./$CONFIG_SITE;; */*) ac_site_file1=$CONFIG_SITE;; *) ac_site_file1=./$CONFIG_SITE;; esac elif test "x$prefix" != xNONE; then ac_site_file1=$prefix/share/config.site ac_site_file2=$prefix/etc/config.site else ac_site_file1=$ac_default_prefix/share/config.site ac_site_file2=$ac_default_prefix/etc/config.site fi for ac_site_file in "$ac_site_file1" "$ac_site_file2" do test "x$ac_site_file" = xNONE && continue if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 $as_echo "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \ || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file See \`config.log' for more details" "$LINENO" 5; } fi done if test -r "$cache_file"; then # Some versions of bash will fail to source /dev/null (special files # actually), so we avoid doing that. DJGPP emulates it as a regular file. if test /dev/null != "$cache_file" && test -f "$cache_file"; then { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 $as_echo "$as_me: loading cache $cache_file" >&6;} case $cache_file in [\\/]* | ?:[\\/]* ) . "$cache_file";; *) . "./$cache_file";; esac fi else { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 $as_echo "$as_me: creating cache $cache_file" >&6;} >$cache_file fi # Check that the precious variables saved in the cache have kept the same # value. ac_cache_corrupted=false for ac_var in $ac_precious_vars; do eval ac_old_set=\$ac_cv_env_${ac_var}_set eval ac_new_set=\$ac_env_${ac_var}_set eval ac_old_val=\$ac_cv_env_${ac_var}_value eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set) { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 $as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *) if test "x$ac_old_val" != "x$ac_new_val"; then # differences in whitespace do not lead to failure. ac_old_val_w=`echo x $ac_old_val` ac_new_val_w=`echo x $ac_new_val` if test "$ac_old_val_w" != "$ac_new_val_w"; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 $as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 $as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 $as_echo "$as_me: former value: \`$ac_old_val'" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 $as_echo "$as_me: current value: \`$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status. if test "$ac_new_set" = set; then case $ac_new_val in *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; *) ac_arg=$ac_var=$ac_new_val ;; esac case " $ac_configure_args " in *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. *) as_fn_append ac_configure_args " '$ac_arg'" ;; esac fi done if $ac_cache_corrupted; then { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 $as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ## ## Main body of script. ## ## -------------------- ## ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu test "$program_prefix" != NONE && program_transform_name="s&^&$program_prefix&;$program_transform_name" # Use a double $ so make ignores it. test "$program_suffix" != NONE && program_transform_name="s&\$&$program_suffix&;$program_transform_name" # Double any \ or $. # By default was `s,x,x', remove it if useless. ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` saveCFLAGS=$CFLAGS ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu if test -n "$ac_tool_prefix"; then for ac_prog in gcc cc egcs cl.exe do # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. set dummy $ac_tool_prefix$ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_CC="$ac_tool_prefix$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi CC=$ac_cv_prog_CC if test -n "$CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 $as_echo "$CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$CC" && break done fi if test -z "$CC"; then ac_ct_CC=$CC for ac_prog in gcc cc egcs cl.exe do # Extract the first word of "$ac_prog", so it can be a program name with args. set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_ac_ct_CC+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$ac_ct_CC"; then ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_ac_ct_CC="$ac_prog" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS fi fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 $as_echo "$ac_ct_CC" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi test -n "$ac_ct_CC" && break done if test "x$ac_ct_CC" = x; then CC="" else case $cross_compiling:$ac_tool_warned in yes:) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 $as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} ac_tool_warned=yes ;; esac CC=$ac_ct_CC fi fi test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH See \`config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 set X $ac_compile ac_compiler=$2 for ac_option in --version -v -V -qversion; do { { ac_try="$ac_compiler $ac_option >&5" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compiler $ac_option >&5") 2>conftest.err ac_status=$? if test -s conftest.err; then sed '10a\ ... rest of stderr output deleted ... 10q' conftest.err >conftest.er1 cat conftest.er1 >&5 fi rm -f conftest.er1 conftest.err $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } done cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" # Try to create an executable without -o first, disregard a.out. # It will help us diagnose broken compilers, and finding out an intuition # of exeext. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 $as_echo_n "checking whether the C compiler works... " >&6; } ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` # The possible output files: ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" ac_rmfiles= for ac_file in $ac_files do case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; * ) ac_rmfiles="$ac_rmfiles $ac_file";; esac done rm -f $ac_rmfiles if { { ac_try="$ac_link_default" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link_default") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. # So ignore a value of `no', otherwise this would lead to `EXEEXT = no' # in a Makefile. We should not override ac_cv_exeext if it was cached, # so that the user can short-circuit this test for compilers unknown to # Autoconf. for ac_file in $ac_files '' do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; [ab].out ) # We found the default executable, but exeext='' is most # certainly right. break;; *.* ) if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; then :; else ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` fi # We set ac_cv_exeext here because the later test for it is not # safe: cross compilers may not add the suffix if given an `-o' # argument, so we may need to know it at that point already. # Even if this section looks crufty: it has the advantage of # actually working. break;; * ) break;; esac done test "$ac_cv_exeext" = no && ac_cv_exeext= else ac_file='' fi if test -z "$ac_file"; then : { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables See \`config.log' for more details" "$LINENO" 5; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 $as_echo "yes" >&6; } fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 $as_echo_n "checking for C compiler default output file name... " >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 $as_echo "$ac_file" >&6; } ac_exeext=$ac_cv_exeext rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 $as_echo_n "checking for suffix of executables... " >&6; } if { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : # If both `conftest.exe' and `conftest' are `present' (well, observable) # catch `conftest.exe'. For instance with Cygwin, `ls conftest' will # work properly (i.e., refer to `conftest.exe'), while it won't with # `rm'. for ac_file in conftest.exe conftest conftest.*; do test -f "$ac_file" || continue case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` break;; * ) break;; esac done else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest conftest$ac_cv_exeext { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 $as_echo "$ac_cv_exeext" >&6; } rm -f conftest.$ac_ext EXEEXT=$ac_cv_exeext ac_exeext=$EXEEXT cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include int main () { FILE *f = fopen ("conftest.out", "w"); return ferror (f) || fclose (f) != 0; ; return 0; } _ACEOF ac_clean_files="$ac_clean_files conftest.out" # Check that the compiler produces executables we can run. If not, either # the compiler is broken, or we cross compile. { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 $as_echo_n "checking whether we are cross compiling... " >&6; } if test "$cross_compiling" != yes; then { { ac_try="$ac_link" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_link") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } if { ac_try='./conftest$ac_cv_exeext' { { case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_try") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; }; then cross_compiling=no else if test "$cross_compiling" = maybe; then cross_compiling=yes else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot run C compiled programs. If you meant to cross compile, use \`--host'. See \`config.log' for more details" "$LINENO" 5; } fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 $as_echo "$cross_compiling" >&6; } rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out ac_clean_files=$ac_clean_files_save { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 $as_echo_n "checking for suffix of object files... " >&6; } if ${ac_cv_objext+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF rm -f conftest.o conftest.obj if { { ac_try="$ac_compile" case "(($ac_try" in *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; *) ac_try_echo=$ac_try;; esac eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" $as_echo "$ac_try_echo"; } >&5 (eval "$ac_compile") 2>&5 ac_status=$? $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; }; then : for ac_file in conftest.o conftest.obj conftest.*; do test -f "$ac_file" || continue; case $ac_file in *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` break;; esac done else $as_echo "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile See \`config.log' for more details" "$LINENO" 5; } fi rm -f conftest.$ac_cv_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 $as_echo "$ac_cv_objext" >&6; } OBJEXT=$ac_cv_objext ac_objext=$OBJEXT { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; } if ${ac_cv_c_compiler_gnu+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __GNUC__ choke me #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_compiler_gnu=yes else ac_compiler_gnu=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 $as_echo "$ac_cv_c_compiler_gnu" >&6; } if test $ac_compiler_gnu = yes; then GCC=yes else GCC= fi ac_test_CFLAGS=${CFLAGS+set} ac_save_CFLAGS=$CFLAGS { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 $as_echo_n "checking whether $CC accepts -g... " >&6; } if ${ac_cv_prog_cc_g+:} false; then : $as_echo_n "(cached) " >&6 else ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes else CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : else ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_g=yes fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext ac_c_werror_flag=$ac_save_c_werror_flag fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 $as_echo "$ac_cv_prog_cc_g" >&6; } if test "$ac_test_CFLAGS" = set; then CFLAGS=$ac_save_CFLAGS elif test $ac_cv_prog_cc_g = yes; then if test "$GCC" = yes; then CFLAGS="-g -O2" else CFLAGS="-g" fi else if test "$GCC" = yes; then CFLAGS="-O2" else CFLAGS= fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; } if ${ac_cv_prog_cc_c89+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include struct stat; /* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ struct buf { int x; }; FILE * (*rcsopen) (struct buf *, struct stat *, int); static char *e (p, i) char **p; int i; { return p[i]; } static char *f (char * (*g) (char **, int), char **p, ...) { char *s; va_list v; va_start (v,p); s = g (p, va_arg (v,int)); va_end (v); return s; } /* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has function prototypes and stuff, but not '\xHH' hex character constants. These don't provoke an error unfortunately, instead are silently treated as 'x'. The following induces an error, until -std is added to get proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an array size at least. It's necessary to write '\x00'==0 to get something that's true only with -std. */ int osf4_cc_array ['\x00' == 0 ? 1 : -1]; /* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters inside strings and character constants. */ #define FOO(x) 'x' int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; int test (int i, double x); struct s1 {int (*f) (int a);}; struct s2 {int (*f) (double a);}; int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); int argc; char **argv; int main () { return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ; return 0; } _ACEOF for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c89=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c89" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c89" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 $as_echo "$ac_cv_prog_cc_c89" >&6; } ;; esac if test "x$ac_cv_prog_cc_c89" != xno; then : fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 $as_echo_n "checking for $CC option to accept ISO C99... " >&6; } if ${ac_cv_prog_cc_c99+:} false; then : $as_echo_n "(cached) " >&6 else ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include #include // Check varargs macros. These examples are taken from C99 6.10.3.5. #define debug(...) fprintf (stderr, __VA_ARGS__) #define showlist(...) puts (#__VA_ARGS__) #define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) static void test_varargs_macros (void) { int x = 1234; int y = 5678; debug ("Flag"); debug ("X = %d\n", x); showlist (The first, second, and third items.); report (x>y, "x is %d but y is %d", x, y); } // Check long long types. #define BIG64 18446744073709551615ull #define BIG32 4294967295ul #define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) #if !BIG_OK your preprocessor is broken; #endif #if BIG_OK #else your preprocessor is broken; #endif static long long int bignum = -9223372036854775807LL; static unsigned long long int ubignum = BIG64; struct incomplete_array { int datasize; double data[]; }; struct named_init { int number; const wchar_t *name; double average; }; typedef const char *ccp; static inline int test_restrict (ccp restrict text) { // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\0'; ++i) continue; return 0; } // Check varargs and va_copy. static void test_varargs (const char *format, ...) { va_list args; va_start (args, format); va_list args_copy; va_copy (args_copy, args); const char *str; int number; float fnumber; while (*format) { switch (*format++) { case 's': // string str = va_arg (args_copy, const char *); break; case 'd': // int number = va_arg (args_copy, int); break; case 'f': // float fnumber = va_arg (args_copy, double); break; default: break; } } va_end (args_copy); va_end (args); } int main () { // Check bool. _Bool success = false; // Check restrict. if (test_restrict ("String literal") == 0) success = true; char *restrict newvar = "Another string"; // Check varargs. test_varargs ("s, d' f .", "string", 65, 34.234); test_varargs_macros (); // Check flexible array members. struct incomplete_array *ia = malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234; // Check named initializers. struct named_init ni = { .number = 34, .name = L"Test wide string", .average = 543.34343, }; ni.number = 58; int dynamic_array[ni.number]; dynamic_array[ni.number - 1] = 543; // work around unused variable warnings return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' || dynamic_array[ni.number - 1] != 543); ; return 0; } _ACEOF for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 do CC="$ac_save_CC $ac_arg" if ac_fn_c_try_compile "$LINENO"; then : ac_cv_prog_cc_c99=$ac_arg fi rm -f core conftest.err conftest.$ac_objext test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext CC=$ac_save_CC fi # AC_CACHE_VAL case "x$ac_cv_prog_cc_c99" in x) { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 $as_echo "none needed" >&6; } ;; xno) { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 $as_echo "unsupported" >&6; } ;; *) CC="$CC $ac_cv_prog_cc_c99" { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 $as_echo "$ac_cv_prog_cc_c99" >&6; } ;; esac if test "x$ac_cv_prog_cc_c99" != xno; then : fi if test "$CC" = cl.exe; then if test -z "$saveCFLAGS" ; then { $as_echo "$as_me:${as_lineno-$LINENO}: setting special CFLAGS value for cl" >&5 $as_echo "$as_me: setting special CFLAGS value for cl" >&6;} CFLAGS="-O2 -W3 -D_CRT_SECURE_NO_WARNINGS -nologo" fi if test `expr "$CFLAGS" : '.*D_CRT_SECURE_NO_WARNINGS'` -eq 0; then { $as_echo "$as_me:${as_lineno-$LINENO}: disabling CRT_SECURE warnings for cl" >&5 $as_echo "$as_me: disabling CRT_SECURE warnings for cl" >&6;} CFLAGS="$CFLAGS -D_CRT_SECURE_NO_WARNINGS" fi else { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fpic" >&5 $as_echo_n "checking whether C compiler accepts -fpic... " >&6; } if ${ax_cv_check_cflags___fpic+:} false; then : $as_echo_n "(cached) " >&6 else ax_check_save_flags=$CFLAGS CFLAGS="$CFLAGS -fpic" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ax_cv_check_cflags___fpic=yes else ax_cv_check_cflags___fpic=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext CFLAGS=$ax_check_save_flags fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags___fpic" >&5 $as_echo "$ax_cv_check_cflags___fpic" >&6; } if test "x$ax_cv_check_cflags___fpic" = xyes; then : CFLAGS="$CFLAGS -fpic" else : fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 $as_echo_n "checking for an ANSI C-conforming const... " >&6; } if ${ac_cv_c_const+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int main () { #ifndef __cplusplus /* Ultrix mips cc rejects this sort of thing. */ typedef int charset[2]; const charset cs = { 0, 0 }; /* SunOS 4.1.1 cc rejects this. */ char const *const *pcpcc; char **ppc; /* NEC SVR4.0.2 mips cc rejects this. */ struct point {int x, y;}; static struct point const zero = {0,0}; /* AIX XL C 1.02.0.0 rejects this. It does not let you subtract one const X* pointer from another in an arm of an if-expression whose if-part is not a constant expression */ const char *g = "string"; pcpcc = &g + (g ? g-g : 0); /* HPUX 7.0 cc rejects these. */ ++pcpcc; ppc = (char**) pcpcc; pcpcc = (char const *const *) ppc; { /* SCO 3.2v4 cc rejects this sort of thing. */ char tx; char *t = &tx; char const *s = 0 ? (char *) 0 : (char const *) 0; *t++ = 0; if (s) return 0; } { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ int x[] = {25, 17}; const int *foo = &x[0]; ++foo; } { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ typedef const int *iptr; iptr p = 0; ++p; } { /* AIX XL C 1.02.0.0 rejects this sort of thing, saying "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ struct s { int j; const int *ap[3]; } bx; struct s *b = &bx; b->j = 5; } { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ const int foo = 10; if (!foo) return 0; } return !cs[0] && !zero.x; #endif ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_c_const=yes else ac_cv_c_const=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 $as_echo "$ac_cv_c_const" >&6; } if test $ac_cv_c_const = no; then $as_echo "#define const /**/" >>confdefs.h fi ac_aux_dir= for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do if test -f "$ac_dir/install-sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install-sh -c" break elif test -f "$ac_dir/install.sh"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/install.sh -c" break elif test -f "$ac_dir/shtool"; then ac_aux_dir=$ac_dir ac_install_sh="$ac_aux_dir/shtool install -c" break fi done if test -z "$ac_aux_dir"; then as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 fi # These three variables are undocumented and unsupported, # and are intended to be withdrawn in a future Autoconf release. # They can cause serious problems if a builder's source tree is in a directory # whose full name contains unusual characters. ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: # SysV /etc/install, /usr/sbin/install # SunOS /usr/etc/install # IRIX /sbin/install # AIX /bin/install # AmigaOS /C/install, which installs bootblocks on floppy discs # AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag # AFS /usr/afsws/bin/install, which mishandles nonexistent args # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" # OS/2's system install, which has a completely different semantic # ./install, which can be erroneously created by make from ./install.sh. # Reject install programs that cannot install multiple files. { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 $as_echo_n "checking for a BSD-compatible install... " >&6; } if test -z "$INSTALL"; then if ${ac_cv_path_install+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. # Account for people who put trailing slashes in PATH elements. case $as_dir/ in #(( ./ | .// | /[cC]/* | \ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ /usr/ucb/* ) ;; *) # OSF1 and SCO ODT 3.0 have their own names for install. # Don't use installbsd from OSF since it installs stuff as root # by default. for ac_prog in ginstall scoinst install; do for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then if test $ac_prog = install && grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # AIX install. It has an incompatible calling convention. : elif test $ac_prog = install && grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then # program-specific install script used by HP pwplus--don't use. : else rm -rf conftest.one conftest.two conftest.dir echo one > conftest.one echo two > conftest.two mkdir conftest.dir if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && test -s conftest.one && test -s conftest.two && test -s conftest.dir/conftest.one && test -s conftest.dir/conftest.two then ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" break 3 fi fi fi done done ;; esac done IFS=$as_save_IFS rm -rf conftest.one conftest.two conftest.dir fi if test "${ac_cv_path_install+set}" = set; then INSTALL=$ac_cv_path_install else # As a last resort, use the slow shell script. Don't cache a # value for INSTALL within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. INSTALL=$ac_install_sh fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 $as_echo "$INSTALL" >&6; } # Use test -z because SunOS4 sh mishandles braces in ${var-val}. # It thinks the first close brace ends the variable substitution. test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 $as_echo_n "checking for a thread-safe mkdir -p... " >&6; } if test -z "$MKDIR_P"; then if ${ac_cv_path_mkdir+:} false; then : $as_echo_n "(cached) " >&6 else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in mkdir gmkdir; do for ac_exec_ext in '' $ac_executable_extensions; do as_fn_executable_p "$as_dir/$ac_prog$ac_exec_ext" || continue case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( 'mkdir (GNU coreutils) '* | \ 'mkdir (coreutils) '* | \ 'mkdir (fileutils) '4.1*) ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext break 3;; esac done done done IFS=$as_save_IFS fi test -d ./--version && rmdir ./--version if test "${ac_cv_path_mkdir+set}" = set; then MKDIR_P="$ac_cv_path_mkdir -p" else # As a last resort, use the slow shell script. Don't cache a # value for MKDIR_P within a source directory, because that will # break other packages using the cache if that directory is # removed, or if the value is a relative name. MKDIR_P="$ac_install_sh -d" fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 $as_echo "$MKDIR_P" >&6; } { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing sin" >&5 $as_echo_n "checking for library containing sin... " >&6; } if ${ac_cv_search_sin+:} false; then : $as_echo_n "(cached) " >&6 else ac_func_search_save_LIBS=$LIBS cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char sin (); int main () { return sin (); ; return 0; } _ACEOF for ac_lib in '' m; do if test -z "$ac_lib"; then ac_res="none required" else ac_res=-l$ac_lib LIBS="-l$ac_lib $ac_func_search_save_LIBS" fi if ac_fn_c_try_link "$LINENO"; then : ac_cv_search_sin=$ac_res fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext if ${ac_cv_search_sin+:} false; then : break fi done if ${ac_cv_search_sin+:} false; then : else ac_cv_search_sin=no fi rm conftest.$ac_ext LIBS=$ac_func_search_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_sin" >&5 $as_echo "$ac_cv_search_sin" >&6; } ac_res=$ac_cv_search_sin if test "$ac_res" != no; then : test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" fi { ac_cv_lib_readline_readline=; unset ac_cv_lib_readline_readline;} for termlib in "" -ltermcap -lncurses -lcurses; do if test "$ac_cv_lib_readline_readline" != yes ; then { ac_cv_lib_readline_readline=; unset ac_cv_lib_readline_readline;} { $as_echo "$as_me:${as_lineno-$LINENO}: checking for readline in -lreadline" >&5 $as_echo_n "checking for readline in -lreadline... " >&6; } if ${ac_cv_lib_readline_readline+:} false; then : $as_echo_n "(cached) " >&6 else ac_check_lib_save_LIBS=$LIBS LIBS="-lreadline $termlib $LIBS" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Override any GCC internal prototype to avoid an error. Use char because int might match the return type of a GCC builtin and then its argument prototype would still apply. */ #ifdef __cplusplus extern "C" #endif char readline (); int main () { return readline (); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : ac_cv_lib_readline_readline=yes else ac_cv_lib_readline_readline=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext LIBS=$ac_check_lib_save_LIBS fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_readline_readline" >&5 $as_echo "$ac_cv_lib_readline_readline" >&6; } if test "x$ac_cv_lib_readline_readline" = xyes; then : LIBS="-lreadline $termlib $LIBS";DEFIS="$DEFIS -DREADLINE" fi fi done if test "$ac_cv_lib_readline_readline" = yes; then ac_fn_c_check_decl "$LINENO" "rl_completion_suppress_append" "ac_cv_have_decl_rl_completion_suppress_append" "#include " if test "x$ac_cv_have_decl_rl_completion_suppress_append" = xyes; then : else DEFIS="$DEFIS -DNO_SUPPRESS_APPEND" fi fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 $as_echo_n "checking how to run the C preprocessor... " >&6; } # On Suns, sometimes $CPP names a directory. if test -n "$CPP" && test -d "$CPP"; then CPP= fi if test -z "$CPP"; then if ${ac_cv_prog_CPP+:} false; then : $as_echo_n "(cached) " >&6 else # Double quotes because CPP needs to be expanded for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" do ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : break fi done ac_cv_prog_CPP=$CPP fi CPP=$ac_cv_prog_CPP else ac_cv_prog_CPP=$CPP fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 $as_echo "$CPP" >&6; } ac_preproc_ok=false for ac_c_preproc_warn_flag in '' yes do # Use a header file that comes with gcc, so configuring glibc # with a fresh cross-compiler works. # Prefer to if __STDC__ is defined, since # exists even on freestanding compilers. # On the NeXT, cc -E runs the code through the compiler's parser, # not just through cpp. "Syntax error" is here to catch this case. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #ifdef __STDC__ # include #else # include #endif Syntax error _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : else # Broken: fails on valid input. continue fi rm -f conftest.err conftest.i conftest.$ac_ext # OK, works on sane cases. Now check whether nonexistent headers # can be detected and how. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if ac_fn_c_try_cpp "$LINENO"; then : # Broken: success on invalid input. continue else # Passes both tests. ac_preproc_ok=: break fi rm -f conftest.err conftest.i conftest.$ac_ext done # Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. rm -f conftest.i conftest.err conftest.$ac_ext if $ac_preproc_ok; then : else { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;} as_fn_error $? "C preprocessor \"$CPP\" fails sanity check See \`config.log' for more details" "$LINENO" 5; } fi ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ac_compiler_gnu=$ac_cv_c_compiler_gnu { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 $as_echo_n "checking for grep that handles long lines and -e... " >&6; } if ${ac_cv_path_GREP+:} false; then : $as_echo_n "(cached) " >&6 else if test -z "$GREP"; then ac_path_GREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in grep ggrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_GREP" || continue # Check for GNU ac_path_GREP and select it if it is found. # Check for GNU $ac_path_GREP case `"$ac_path_GREP" --version 2>&1` in *GNU*) ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'GREP' >> "conftest.nl" "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_GREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_GREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_GREP"; then as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_GREP=$GREP fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 $as_echo "$ac_cv_path_GREP" >&6; } GREP="$ac_cv_path_GREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 $as_echo_n "checking for egrep... " >&6; } if ${ac_cv_path_EGREP+:} false; then : $as_echo_n "(cached) " >&6 else if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 then ac_cv_path_EGREP="$GREP -E" else if test -z "$EGREP"; then ac_path_EGREP_found=false # Loop through the user's path and test for each of PROGNAME-LIST as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_prog in egrep; do for ac_exec_ext in '' $ac_executable_extensions; do ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" as_fn_executable_p "$ac_path_EGREP" || continue # Check for GNU ac_path_EGREP and select it if it is found. # Check for GNU $ac_path_EGREP case `"$ac_path_EGREP" --version 2>&1` in *GNU*) ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; *) ac_count=0 $as_echo_n 0123456789 >"conftest.in" while : do cat "conftest.in" "conftest.in" >"conftest.tmp" mv "conftest.tmp" "conftest.in" cp "conftest.in" "conftest.nl" $as_echo 'EGREP' >> "conftest.nl" "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break as_fn_arith $ac_count + 1 && ac_count=$as_val if test $ac_count -gt ${ac_path_EGREP_max-0}; then # Best one so far, save it but keep looking for a better one ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_max=$ac_count fi # 10*(2^10) chars as input seems more than enough test $ac_count -gt 10 && break done rm -f conftest.in conftest.tmp conftest.nl conftest.out;; esac $ac_path_EGREP_found && break 3 done done done IFS=$as_save_IFS if test -z "$ac_cv_path_EGREP"; then as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 fi else ac_cv_path_EGREP=$EGREP fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 $as_echo "$ac_cv_path_EGREP" >&6; } EGREP="$ac_cv_path_EGREP" { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 $as_echo_n "checking for ANSI C header files... " >&6; } if ${ac_cv_header_stdc+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #include #include int main () { ; return 0; } _ACEOF if ac_fn_c_try_compile "$LINENO"; then : ac_cv_header_stdc=yes else ac_cv_header_stdc=no fi rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext if test $ac_cv_header_stdc = yes; then # SunOS 4.x string.h does not declare mem*, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "memchr" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include _ACEOF if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | $EGREP "free" >/dev/null 2>&1; then : else ac_cv_header_stdc=no fi rm -f conftest* fi if test $ac_cv_header_stdc = yes; then # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. if test "$cross_compiling" = yes; then : : else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include #include #if ((' ' & 0x0FF) == 0x020) # define ISLOWER(c) ('a' <= (c) && (c) <= 'z') # define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) #else # define ISLOWER(c) \ (('a' <= (c) && (c) <= 'i') \ || ('j' <= (c) && (c) <= 'r') \ || ('s' <= (c) && (c) <= 'z')) # define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) #endif #define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) int main () { int i; for (i = 0; i < 256; i++) if (XOR (islower (i), ISLOWER (i)) || toupper (i) != TOUPPER (i)) return 2; return 0; } _ACEOF if ac_fn_c_try_run "$LINENO"; then : else ac_cv_header_stdc=no fi rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ conftest.$ac_objext conftest.beam conftest.$ac_ext fi fi fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 $as_echo "$ac_cv_header_stdc" >&6; } if test $ac_cv_header_stdc = yes; then $as_echo "#define STDC_HEADERS 1" >>confdefs.h fi # On IRIX 5.3, sys/types and inttypes.h are conflicting. for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ inttypes.h stdint.h unistd.h do : as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default " if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : cat >>confdefs.h <<_ACEOF #define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 _ACEOF fi done ac_fn_c_check_header_mongrel "$LINENO" "string.h" "ac_cv_header_string_h" "$ac_includes_default" if test "x$ac_cv_header_string_h" = xyes; then : else DEFIS="$DEFIS -DSTRINGS_H" fi ac_fn_c_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default" if test "x$ac_cv_header_stdlib_h" = xyes; then : else DEFIS="$DEFIS -DNO_STDLIB_H" fi ac_fn_c_check_func "$LINENO" "strchr" "ac_cv_func_strchr" if test "x$ac_cv_func_strchr" = xyes; then : else DEFIS="$DEFIS -DNO_STRCHR" fi ac_fn_c_check_func "$LINENO" "strspn" "ac_cv_func_strspn" if test "x$ac_cv_func_strspn" = xyes; then : else DEFIS="$DEFIS -DNO_STRSPN";STRFUNC="strfunc.$OBJEXT" fi ac_fn_c_check_func "$LINENO" "strtok" "ac_cv_func_strtok" if test "x$ac_cv_func_strtok" = xyes; then : else DEFIS="$DEFIS -DNO_STRTOK";STRFUNC="strfunc.$OBJEXT" fi ac_fn_c_check_func "$LINENO" "setenv" "ac_cv_func_setenv" if test "x$ac_cv_func_setenv" = xyes; then : else DEFIS="$DEFIS -DNO_SETENV" fi ac_fn_c_check_func "$LINENO" "setlocale" "ac_cv_func_setlocale" if test "x$ac_cv_func_setlocale" = xyes; then : else DEFIS="$DEFIS -DNO_SETLOCALE" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for locale and UTF-8 support" >&5 $as_echo_n "checking for locale and UTF-8 support... " >&6; } if ${am_cv_utf8+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE 600 #include #include #include int main () { wchar_t *out;char *in;char *res; res=setlocale(LC_CTYPE,"");res=in; mbsrtowcs(out, &res, 2, NULL); wcswidth(out,2); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_utf8=yes else am_cv_utf8=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_utf8" >&5 $as_echo "$am_cv_utf8" >&6; } if test $am_cv_utf8 = yes; then DEFIS="$DEFIS -DSUPPORT_UTF8" fi { $as_echo "$as_me:${as_lineno-$LINENO}: checking for isfinite" >&5 $as_echo_n "checking for isfinite... " >&6; } if ${am_cv_isfinite+:} false; then : $as_echo_n "(cached) " >&6 else cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #define _XOPEN_SOURCE 600 #include int main () { float a;a=1;isfinite(a); ; return 0; } _ACEOF if ac_fn_c_try_link "$LINENO"; then : am_cv_isfinite=yes else am_cv_isfinite=no fi rm -f core conftest.err conftest.$ac_objext \ conftest$ac_exeext conftest.$ac_ext fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_isfinite" >&5 $as_echo "$am_cv_isfinite" >&6; } if test $am_cv_isfinite = no; then DEFIS="$DEFIS -DNO_ISFINITE" fi # Extract the first word of "mksinfo", so it can be a program name with args. set dummy mksinfo; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_prog_mkstoolkit+:} false; then : $as_echo_n "(cached) " >&6 else if test -n "$mkstoolkit"; then ac_cv_prog_mkstoolkit="$mkstoolkit" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_prog_mkstoolkit="found" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_prog_mkstoolkit" && ac_cv_prog_mkstoolkit="no" fi fi mkstoolkit=$ac_cv_prog_mkstoolkit if test -n "$mkstoolkit"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $mkstoolkit" >&5 $as_echo "$mkstoolkit" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi # assume that if we have the MKS Toolkit, we're running the Korn shell HAVE_MKS=no if test $mkstoolkit = found; then if mksinfo > /dev/null; then if test -n "$ROOTDIR"; then DEFIS="$DEFIS -DHAVE_MKS_TOOLKIT" echo 'using MKS Toolkit' MKS_POSIX=".POSIX:" MKS_RES='$(RES)' HAVE_MKS=yes # if the user has specified a drive, leave things alone. # otherwise, prepend the drive on which the Toolkit is installed case "$prefix" in ?:*) MKS_DRIVE= ;; *) MKS_DRIVE="${ROOTDIR%%:*}:" ;; esac else echo 'no ROOTDIR... cannot use MKS Toolkit' fi else echo 'mksinfo failed... not using MKS Toolkit' fi fi # Extract the first word of "python", so it can be a program name with args. set dummy python; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } if ${ac_cv_path_PYTHON+:} false; then : $as_echo_n "(cached) " >&6 else case $PYTHON in [\\/]* | ?:[\\/]*) ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. for ac_exec_ext in '' $ac_executable_extensions; do if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 break 2 fi done done IFS=$as_save_IFS test -z "$ac_cv_path_PYTHON" && ac_cv_path_PYTHON="no" ;; esac fi PYTHON=$ac_cv_path_PYTHON if test -n "$PYTHON"; then { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 $as_echo "$PYTHON" >&6; } else { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 $as_echo "no" >&6; } fi if test $PYTHON = no; then HAVE_PYTHON=no echo ' Units will work without python but the currency update' echo ' script, units_cur, will not be installed' PYTHON='' else HAVE_PYTHON=yes fi # Check whether --enable-relocation was given. if test "${enable_relocation+set}" = set; then : enableval=$enable_relocation; if test $enable_relocation = yes ;then UDAT="" echo relocation enabled else UDAT="$datadir/units/" echo relocation disabled fi else UDAT="$datadir/units/" fi ac_config_files="$ac_config_files Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure # tests run on this system so they can be shared between configure # scripts and configure runs, see configure's option --config-cache. # It is not useful on other systems. If it contains results you don't # want to keep, you may remove or edit it. # # config.status only pays attention to the cache file if you give it # the --recheck option to rerun configure. # # `ac_cv_env_foo' variables (set or unset) will be overridden when # loading this file, other *unset* `ac_cv_foo' will be assigned the # following values. _ACEOF # The following way of writing the cache mishandles newlines in values, # but we know of no workaround that is simple, portable, and efficient. # So, we kill variables containing newlines. # Ultrix sh set writes to stderr and can't be redirected directly, # and sets the high bit in the cache file unless we assign to the vars. ( for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do eval ac_val=\$$ac_var case $ac_val in #( *${as_nl}*) case $ac_var in #( *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 $as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; esac case $ac_var in #( _ | IFS | as_nl) ;; #( BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( *) { eval $ac_var=; unset $ac_var;} ;; esac ;; esac done (set) 2>&1 | case $as_nl`(ac_space=' '; set) 2>&1` in #( *${as_nl}ac_space=\ *) # `set' does not quote correctly, so add quotes: double-quote # substitution turns \\\\ into \\, and sed turns \\ into \. sed -n \ "s/'/'\\\\''/g; s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ;; #( *) # `set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac | sort ) | sed ' /^ac_cv_env_/b end t clear :clear s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ t end s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ :end' >>confcache if diff "$cache_file" confcache >/dev/null 2>&1; then :; else if test -w "$cache_file"; then if test "x$cache_file" != "x/dev/null"; then { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 $as_echo "$as_me: updating cache $cache_file" >&6;} if test ! -f "$cache_file" || test -h "$cache_file"; then cat confcache >"$cache_file" else case $cache_file in #( */* | ?:*) mv -f confcache "$cache_file"$$ && mv -f "$cache_file"$$ "$cache_file" ;; #( *) mv -f confcache "$cache_file" ;; esac fi fi else { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} fi fi rm -f confcache test "x$prefix" = xNONE && prefix=$ac_default_prefix # Let make expand exec_prefix. test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' # Transform confdefs.h into DEFS. # Protect against shell expansion while executing Makefile rules. # Protect against Makefile macro expansion. # # If the first sed substitution is executed (which looks for macros that # take arguments), then branch to the quote section. Otherwise, # look for a macro that doesn't take arguments. ac_script=' :mline /\\$/{ N s,\\\n,, b mline } t clear :clear s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g t quote s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g t quote b any :quote s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g s/\[/\\&/g s/\]/\\&/g s/\$/$$/g H :any ${ g s/^\n// s/\n/ /g p } ' DEFS=`sed -n "$ac_script" confdefs.h` ac_libobjs= ac_ltlibobjs= for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue # 1. Remove the extension, and $U if already installed. ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' ac_i=`$as_echo "$ac_i" | sed "$ac_script"` # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR # will be set to the directory where LIBOBJS objects are built. as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' done LIBOBJS=$ac_libobjs LTLIBOBJS=$ac_ltlibobjs : "${CONFIG_STATUS=./config.status}" ac_write_fail=0 ac_clean_files_save=$ac_clean_files ac_clean_files="$ac_clean_files $CONFIG_STATUS" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 $as_echo "$as_me: creating $CONFIG_STATUS" >&6;} as_write_fail=0 cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 #! $SHELL # Generated by $as_me. # Run this file to recreate the current configuration. # Compiler output produced by configure, useful for debugging # configure, is in config.log if it exists. debug=false ac_cs_recheck=false ac_cs_silent=false SHELL=\${CONFIG_SHELL-$SHELL} export SHELL _ASEOF cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 ## -------------------- ## ## M4sh Initialization. ## ## -------------------- ## # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : emulate sh NULLCMD=: # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST else case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;; esac fi as_nl=' ' export as_nl # Printing a long string crashes Solaris 7 /usr/bin/printf. as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo # Prefer a ksh shell builtin over an external printf program on Solaris, # but without wasting forks for bash or zsh. if test -z "$BASH_VERSION$ZSH_VERSION" \ && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='print -r --' as_echo_n='print -rn --' elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then as_echo='printf %s\n' as_echo_n='printf %s' else if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' as_echo_n='/usr/ucb/echo -n' else as_echo_body='eval expr "X$1" : "X\\(.*\\)"' as_echo_n_body='eval arg=$1; case $arg in #( *"$as_nl"*) expr "X$arg" : "X\\(.*\\)$as_nl"; arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; esac; expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" ' export as_echo_n_body as_echo_n='sh -c $as_echo_n_body as_echo' fi export as_echo_body as_echo='sh -c $as_echo_body as_echo' fi # The user is always right. if test "${PATH_SEPARATOR+set}" != set; then PATH_SEPARATOR=: (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || PATH_SEPARATOR=';' } fi # IFS # We need space, tab and new line, in precisely that order. Quoting is # there to prevent editors from complaining about space-tab. # (If _AS_PATH_WALK were called with IFS unset, it would disable word # splitting by setting IFS to empty value.) IFS=" "" $as_nl" # Find who we are. Look in the path if we contain no directory separator. as_myself= case $0 in #(( *[\\/]* ) as_myself=$0 ;; *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH do IFS=$as_save_IFS test -z "$as_dir" && as_dir=. test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break done IFS=$as_save_IFS ;; esac # We did not find ourselves, most probably we were run as `sh COMMAND' # in which case we are not to be found in the path. if test "x$as_myself" = x; then as_myself=$0 fi if test ! -f "$as_myself"; then $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 exit 1 fi # Unset variables that we do not need and which cause bugs (e.g. in # pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" # suppresses any "Segmentation fault" message there. '((' could # trigger a bug in pdksh 5.2.14. for as_var in BASH_ENV ENV MAIL MAILPATH do eval test x\${$as_var+set} = xset \ && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : done PS1='$ ' PS2='> ' PS4='+ ' # NLS nuisances. LC_ALL=C export LC_ALL LANGUAGE=C export LANGUAGE # CDPATH. (unset CDPATH) >/dev/null 2>&1 && unset CDPATH # as_fn_error STATUS ERROR [LINENO LOG_FD] # ---------------------------------------- # Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are # provided, also output the error to LOG_FD, referencing LINENO. Then exit the # script with STATUS, using 1 if that was 0. as_fn_error () { as_status=$1; test $as_status -eq 0 && as_status=1 if test "$4"; then as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 fi $as_echo "$as_me: error: $2" >&2 as_fn_exit $as_status } # as_fn_error # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking. as_fn_set_status () { return $1 } # as_fn_set_status # as_fn_exit STATUS # ----------------- # Exit the shell with STATUS, even in a "trap 0" or "set -e" context. as_fn_exit () { set +e as_fn_set_status $1 exit $1 } # as_fn_exit # as_fn_unset VAR # --------------- # Portably unset VAR. as_fn_unset () { { eval $1=; unset $1;} } as_unset=as_fn_unset # as_fn_append VAR VALUE # ---------------------- # Append the text in VALUE to the end of the definition contained in VAR. Take # advantage of any shell optimizations that allow amortized linear growth over # repeated appends, instead of the typical quadratic growth present in naive # implementations. if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : eval 'as_fn_append () { eval $1+=\$2 }' else as_fn_append () { eval $1=\$$1\$2 } fi # as_fn_append # as_fn_arith ARG... # ------------------ # Perform arithmetic evaluation on the ARGs, and store the result in the # global $as_val. Take advantage of shells that can avoid forks. The arguments # must be portable across $(()) and expr. if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : eval 'as_fn_arith () { as_val=$(( $* )) }' else as_fn_arith () { as_val=`expr "$@" || test $? -eq 1` } fi # as_fn_arith if expr a : '\(a\)' >/dev/null 2>&1 && test "X`expr 00001 : '.*\(...\)'`" = X001; then as_expr=expr else as_expr=false fi if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then as_basename=basename else as_basename=false fi if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then as_dirname=dirname else as_dirname=false fi as_me=`$as_basename -- "$0" || $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ X"$0" : 'X\(//\)$' \| \ X"$0" : 'X\(/\)' \| . 2>/dev/null || $as_echo X/"$0" | sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/ q } /^X\/\(\/\/\)$/{ s//\1/ q } /^X\/\(\/\).*/{ s//\1/ q } s/.*/./; q'` # Avoid depending upon Character Ranges. as_cr_letters='abcdefghijklmnopqrstuvwxyz' as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' as_cr_Letters=$as_cr_letters$as_cr_LETTERS as_cr_digits='0123456789' as_cr_alnum=$as_cr_Letters$as_cr_digits ECHO_C= ECHO_N= ECHO_T= case `echo -n x` in #((((( -n*) case `echo 'xy\c'` in *c*) ECHO_T=' ';; # ECHO_T is single tab character. xy) ECHO_C='\c';; *) echo `echo ksh88 bug on AIX 6.1` > /dev/null ECHO_T=' ';; esac;; *) ECHO_N='-n';; esac rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file else rm -f conf$$.dir mkdir conf$$.dir 2>/dev/null fi if (echo >conf$$.file) 2>/dev/null; then if ln -s conf$$.file conf$$ 2>/dev/null; then as_ln_s='ln -s' # ... but there are two gotchas: # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. # In both cases, we have to default to `cp -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then as_ln_s=ln else as_ln_s='cp -pR' fi else as_ln_s='cp -pR' fi rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file rmdir conf$$.dir 2>/dev/null # as_fn_mkdir_p # ------------- # Create "$as_dir" as a directory, including parents if necessary. as_fn_mkdir_p () { case $as_dir in #( -*) as_dir=./$as_dir;; esac test -d "$as_dir" || eval $as_mkdir_p || { as_dirs= while :; do case $as_dir in #( *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( *) as_qdir=$as_dir;; esac as_dirs="'$as_qdir' $as_dirs" as_dir=`$as_dirname -- "$as_dir" || $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$as_dir" : 'X\(//\)[^/]' \| \ X"$as_dir" : 'X\(//\)$' \| \ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$as_dir" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` test -d "$as_dir" && break done test -z "$as_dirs" || eval "mkdir $as_dirs" } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" } # as_fn_mkdir_p if mkdir -p . 2>/dev/null; then as_mkdir_p='mkdir -p "$as_dir"' else test -d ./-p && rmdir ./-p as_mkdir_p=false fi # as_fn_executable_p FILE # ----------------------- # Test if FILE is an executable regular file. as_fn_executable_p () { test -f "$1" && test -x "$1" } # as_fn_executable_p as_test_x='test -x' as_executable_p=as_fn_executable_p # Sed expression to map a string onto a valid CPP name. as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" # Sed expression to map a string onto a valid variable name. as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" exec 6>&1 ## ----------------------------------- ## ## Main body of $CONFIG_STATUS script. ## ## ----------------------------------- ## _ASEOF test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Save the log message, to keep $0 and so on meaningful, and to # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" This file was extended by GNU units $as_me 2.16, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS CONFIG_LINKS = $CONFIG_LINKS CONFIG_COMMANDS = $CONFIG_COMMANDS $ $0 $@ on `(hostname || uname -n) 2>/dev/null | sed 1q` " _ACEOF case $ac_config_files in *" "*) set x $ac_config_files; shift; ac_config_files=$*;; esac cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 # Files that config.status was made for. config_files="$ac_config_files" _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\ \`$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. Usage: $0 [OPTION]... [TAG]... -h, --help print this help, then exit -V, --version print version number and configuration settings, then exit --config print configuration, then exit -q, --quiet, --silent do not print progress messages -d, --debug don't remove temporary files --recheck update $as_me by reconfiguring in the same conditions --file=FILE[:TEMPLATE] instantiate the configuration file FILE Configuration files: $config_files Report bugs to . GNU units home page: . General help using GNU software: ." _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ GNU units config.status 2.16 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Copyright (C) 2012 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." ac_pwd='$ac_pwd' srcdir='$srcdir' INSTALL='$INSTALL' MKDIR_P='$MKDIR_P' test -n "\$AWK" || AWK=awk _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # The default lists apply if the user does not specify any file. ac_need_defaults=: while test $# != 0 do case $1 in --*=?*) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` ac_shift=: ;; --*=) ac_option=`expr "X$1" : 'X\([^=]*\)='` ac_optarg= ac_shift=: ;; *) ac_option=$1 ac_optarg=$2 ac_shift=shift ;; esac case $ac_option in # Handling of the options. -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ac_cs_recheck=: ;; --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) $as_echo "$ac_cs_version"; exit ;; --config | --confi | --conf | --con | --co | --c ) $as_echo "$ac_cs_config"; exit ;; --debug | --debu | --deb | --de | --d | -d ) debug=: ;; --file | --fil | --fi | --f ) $ac_shift case $ac_optarg in *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; '') as_fn_error $? "missing file argument" ;; esac as_fn_append CONFIG_FILES " '$ac_optarg'" ac_need_defaults=false;; --he | --h | --help | --hel | -h ) $as_echo "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \ | -silent | --silent | --silen | --sile | --sil | --si | --s) ac_cs_silent=: ;; # This is an error. -*) as_fn_error $? "unrecognized option: \`$1' Try \`$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;; esac shift done ac_configure_extra_args= if $ac_cs_silent; then exec 6>/dev/null ac_configure_extra_args="$ac_configure_extra_args --silent" fi _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 if \$ac_cs_recheck; then set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion shift \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 CONFIG_SHELL='$SHELL' export CONFIG_SHELL exec "\$@" fi _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 exec 5>>config.log { echo sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ## Running $as_me. ## _ASBOX $as_echo "$ac_log" } >&5 _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # Handling of arguments. for ac_config_target in $ac_config_targets do case $ac_config_target in "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; esac done # If the user did not use the arguments to specify the items to instantiate, # then the envvar interface is used. Set only those that are not. # We use the long form for the default assignment because of an extremely # bizarre bug on SunOS 4.1.3. if $ac_need_defaults; then test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files fi # Have a temporary directory for convenience. Make it in the build tree # simply because there is no reason against having it here, and in addition, # creating and moving files from /tmp can sometimes cause problems. # Hook for its removal unless debugging. # Note that there is a small window in which the directory will not be cleaned: # after its creation but before its name has been assigned to `$tmp'. $debug || { tmp= ac_tmp= trap 'exit_status=$? : "${ac_tmp:=$tmp}" { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status ' 0 trap 'as_fn_exit 1' 1 2 13 15 } # Create a (secure) tmp directory for tmp files. { tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && test -d "$tmp" } || { tmp=./conf$$-$RANDOM (umask 077 && mkdir "$tmp") } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 ac_tmp=$tmp # Set up the scripts for CONFIG_FILES section. # No need to generate them if there are no CONFIG_FILES. # This happens for instance with `./config.status config.h'. if test -n "$CONFIG_FILES"; then ac_cr=`echo X | tr X '\015'` # On cygwin, bash can eat \r inside `` if the user requested igncr. # But we know of no other shell where ac_cr would be empty at this # point, so we can use a bashism as a fallback. if test "x$ac_cr" = x; then eval ac_cr=\$\'\\r\' fi ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then ac_cs_awk_cr='\\r' else ac_cs_awk_cr=$ac_cr fi echo 'BEGIN {' >"$ac_tmp/subs1.awk" && _ACEOF { echo "cat >conf$$subs.awk <<_ACEOF" && echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && echo "_ACEOF" } >conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` ac_delim='%!_!# ' for ac_last_try in false false false false false :; do . ./conf$$subs.sh || as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` if test $ac_delim_n = $ac_delim_num; then break elif $ac_last_try; then as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 else ac_delim="$ac_delim!$ac_delim _$ac_delim!! " fi done rm -f conf$$subs.sh cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && _ACEOF sed -n ' h s/^/S["/; s/!.*/"]=/ p g s/^[^!]*!// :repl t repl s/'"$ac_delim"'$// t delim :nl h s/\(.\{148\}\)..*/\1/ t more1 s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ p n b repl :more1 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t nl :delim h s/\(.\{148\}\)..*/\1/ t more2 s/["\\]/\\&/g; s/^/"/; s/$/"/ p b :more2 s/["\\]/\\&/g; s/^/"/; s/$/"\\/ p g s/.\{148\}// t delim ' >$CONFIG_STATUS || ac_write_fail=1 rm -f conf$$subs.awk cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 _ACAWK cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && for (key in S) S_is_set[key] = 1 FS = "" } { line = $ 0 nfields = split(line, field, "@") substed = 0 len = length(field[1]) for (i = 2; i < nfields; i++) { key = field[i] keylen = length(key) if (S_is_set[key]) { value = S[key] line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) len += length(value) + length(field[++i]) substed = 1 } else len += 1 + keylen } print line } _ACAWK _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" else cat fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 _ACEOF # VPATH may cause trouble with some makes, so we remove sole $(srcdir), # ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and # trailing colons and then remove the whole line if VPATH becomes empty # (actually we leave an empty line to preserve line numbers). if test "x$srcdir" = x.; then ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ h s/// s/^/:/ s/[ ]*$/:/ s/:\$(srcdir):/:/g s/:\${srcdir}:/:/g s/:@srcdir@:/:/g s/^:*// s/:*$// x s/\(=[ ]*\).*/\1/ G s/\n// s/^[^=]*=[ ]*$// }' fi cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 fi # test -n "$CONFIG_FILES" eval set X " :F $CONFIG_FILES " shift for ac_tag do case $ac_tag in :[FHLC]) ac_mode=$ac_tag; continue;; esac case $ac_mode$ac_tag in :[FHL]*:*);; :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac ac_save_IFS=$IFS IFS=: set x $ac_tag IFS=$ac_save_IFS shift ac_file=$1 shift case $ac_mode in :L) ac_source=$1;; :[FH]) ac_file_inputs= for ac_f do case $ac_f in -) ac_f="$ac_tmp/stdin";; *) # Look for the file first in the build tree, then in the source tree # (if the path is not absolute). The absolute path cannot be DOS-style, # because $ac_f cannot contain `:'. test -f "$ac_f" || case $ac_f in [\\/$]*) false;; *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; esac || as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done # Let's still pretend it is `configure' which instantiates (i.e., don't # use $as_me), people would be surprised to read: # /* config.h. Generated by config.status. */ configure_input='Generated from '` $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' `' by configure.' if test x"$ac_file" != x-; then configure_input="$ac_file. $configure_input" { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 $as_echo "$as_me: creating $ac_file" >&6;} fi # Neutralize special characters interpreted by sed in replacement strings. case $configure_input in #( *\&* | *\|* | *\\* ) ac_sed_conf_input=`$as_echo "$configure_input" | sed 's/[\\\\&|]/\\\\&/g'`;; #( *) ac_sed_conf_input=$configure_input;; esac case $ac_tag in *:-:* | *:-) cat >"$ac_tmp/stdin" \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac ;; esac ac_dir=`$as_dirname -- "$ac_file" || $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ X"$ac_file" : 'X\(//\)[^/]' \| \ X"$ac_file" : 'X\(//\)$' \| \ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || $as_echo X"$ac_file" | sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/ q } /^X\(\/\/\)[^/].*/{ s//\1/ q } /^X\(\/\/\)$/{ s//\1/ q } /^X\(\/\).*/{ s//\1/ q } s/.*/./; q'` as_dir="$ac_dir"; as_fn_mkdir_p ac_builddir=. case "$ac_dir" in .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` # A ".." for each directory in $ac_dir_suffix. ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` case $ac_top_builddir_sub in "") ac_top_builddir_sub=. ac_top_build_prefix= ;; *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; esac ;; esac ac_abs_top_builddir=$ac_pwd ac_abs_builddir=$ac_pwd$ac_dir_suffix # for backward compatibility: ac_top_builddir=$ac_top_build_prefix case $srcdir in .) # We are building in place. ac_srcdir=. ac_top_srcdir=$ac_top_builddir_sub ac_abs_top_srcdir=$ac_pwd ;; [\\/]* | ?:[\\/]* ) # Absolute name. ac_srcdir=$srcdir$ac_dir_suffix; ac_top_srcdir=$srcdir ac_abs_top_srcdir=$srcdir ;; *) # Relative name. ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix ac_top_srcdir=$ac_top_build_prefix$srcdir ac_abs_top_srcdir=$ac_pwd/$srcdir ;; esac ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix case $ac_mode in :F) # # CONFIG_FILE # case $INSTALL in [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; esac ac_MKDIR_P=$MKDIR_P case $MKDIR_P in [\\/$]* | ?:[\\/]* ) ;; */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; esac _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 # If the template does not know about datarootdir, expand it. # FIXME: This hack should be removed a few years after 2.60. ac_datarootdir_hack=; ac_datarootdir_seen= ac_sed_dataroot=' /datarootdir/ { p q } /@datadir@/p /@docdir@/p /@infodir@/p /@localedir@/p /@mandir@/p' case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in *datarootdir*) ac_datarootdir_seen=yes;; *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 $as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} _ACEOF cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_datarootdir_hack=' s&@datadir@&$datadir&g s&@docdir@&$docdir&g s&@infodir@&$infodir&g s&@localedir@&$localedir&g s&@mandir@&$mandir&g s&\\\${datarootdir}&$datarootdir&g' ;; esac _ACEOF # Neutralize VPATH when `$srcdir' = `.'. # Shell code in configure.ac might set extrasub. # FIXME: do we really want to maintain this feature? cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_sed_extra="$ac_vpsub $extrasub _ACEOF cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 :t /@[a-zA-Z_][a-zA-Z_0-9]*@/!b s|@configure_input@|$ac_sed_conf_input|;t t s&@top_builddir@&$ac_top_builddir_sub&;t t s&@top_build_prefix@&$ac_top_build_prefix&;t t s&@srcdir@&$ac_srcdir&;t t s&@abs_srcdir@&$ac_abs_srcdir&;t t s&@top_srcdir@&$ac_top_srcdir&;t t s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t s&@builddir@&$ac_builddir&;t t s&@abs_builddir@&$ac_abs_builddir&;t t s&@abs_top_builddir@&$ac_abs_top_builddir&;t t s&@INSTALL@&$ac_INSTALL&;t t s&@MKDIR_P@&$ac_MKDIR_P&;t t $ac_datarootdir_hack " eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ "$ac_tmp/out"`; test -z "$ac_out"; } && { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&5 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' which seems to be undefined. Please make sure it is defined" >&2;} rm -f "$ac_tmp/stdin" case $ac_file in -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; esac \ || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; esac done # for ac_tag as_fn_exit 0 _ACEOF ac_clean_files=$ac_clean_files_save test $ac_write_fail = 0 || as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 # configure is writing to config.log, and then calls config.status. # config.status does its own redirection, appending to config.log. # Unfortunately, on DOS this fails, as config.log is still kept open # by configure, so config.status won't be able to write to it; its # output is simply discarded. So we exec the FD to /dev/null, # effectively closing config.log, so it can be properly (re)opened and # appended to by config.status. When coming back to configure, we # need to make the FD available again. if test "$no_create" != yes; then ac_cs_success=: ac_config_status_args= test "$silent" = yes && ac_config_status_args="$ac_config_status_args --quiet" exec 5>/dev/null $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false exec 5>>config.log # Use ||, not &&, to avoid exiting from the if with $? = 1, which # would make configure fail if this is the last instruction. $ac_cs_success || as_fn_exit 1 fi if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi units-2.16/UnitsMKS.pdf0000664000175000017500000046023313176227176014260 0ustar adrianadrian%PDF-1.5 %ÐÔÅØ 1 0 obj << /Length 587 /Filter /FlateDecode >> stream xÚmTM¢@½ó+z&ÎÁ±?tBL$ñ°ãd4›½*´.‰<øï·_•èÌf’W¯_wÕ«îrðãc;Šòê`GæUŠOÛV×&³£øç¾öƒ¤Ê®[vïÖæ6ïWÛ7ñÑTÙÖvb¯“uYt/N¼.³ó5·½êÿ¢¥=åS‚> stream xÚmTM¢@½ó+z&ÎÁ±?tBL0ñ°ãd4›½*´.‰<Ì¿ß~U¢Îf’W¯_u½ªîvðãc;ZäÕÁŽÌ«Ÿ¶­®MfGñÏ}í I•]/¶ìÞ­ÍmÞ¯¶o⣩²­íÄ0^'ë²è^œx]fçkn{ÕÿEK{*ʇuÄpg6;µÞ$4»¢;»µgZ8, ’ü²M[Tå›P¯RJG¤eWxm½ñ­ž÷ŽE™7·¢â žÒ"/²îÑ7»¸¦‘¼ýj;{Y—ÇÊ‹"1þt‹m×|‘£o¼irÛåI É‘c¶×º>[TÒ›ÏEnn#×ÛûþbÅø¹‘ûÒî«¶BS¬ØEVå¶­÷™möåÉz‘”s…«¹gËüŸµ)gŽÏR©ð133wÄ xAÄbêí;¬ÒaGL6K& 0+‡}&ö"?‘á°(Ò¦Òa/ ¡cì,•!£½¥‰î-fö3¤Ù*IÃx {aªùð”sIC%ÒðhSô¢¨7å£Å}­HÏ=ŤIYƒ¹(îƒêjŧ ÿZóéàü4{ÖØSOØá5˜‡áZ ä®ekxvKº·Ǭü÷…Ü@2aÂ> stream xÚmSÁnâ0½ç+¼$z Ø¨"¤€ÄaKU¢Õ^C<ÐHàDN8ð÷õÌŠV{Hôüæç=üúØS`¾Jñ m}u%ŒÒßE Y]^/`»w¦¶oâÃÕå:1L·ÙÖVÝ‹omy¾èUÿ­àTÙ ÖÃþŽv¹Êó‘DM^ug{¦…Ç‚° ÉpmUÛ7¡^¥”žX[“ÖôÚã{=1î+kܽ¨8 …@iaª²»¯è_^|Ó˜¼¿µ\¶öXq,ÆŸ>ØvîFŽ^‚ñÎp•=‰!9òÌþÚ4gÀêBË¥0pôùÞÞ‹ ˆñs#P~k@hZ+vQÖÚ¦(ÁöA,åRÄÑf€5ÿĦœq8>K¥Â_¸—žX NˆHæžÐÔ3$¤Çž˜{<Ý0Š*¢5cÕ~ÿP÷õʯÂùÝ5WÂ42^!ž0^#žrq‰xƘœE„3xÎü ñ ªz“)cÒgl1BÌîÒ°õ•?ŸXqû!òŠNA‡¨Wš»A*dý1ùÔ)iȧΰÅç“Оó â9ç’†NVf¤¡–kô¯VäaŠžUJü†ôì?%Íš5Ø»bÿTW£=ј«±®–¾Œ¿É5ëñ2éfè&p2pj³V^ócH£Mc†VYxLS7˜E=›þ1âj· ¾gÈÈ endstream endobj 6 0 obj << /Length 364 /Filter /FlateDecode >> stream xÚ…‘ËNÃ0E÷ù /EŒÇãG¼-*EE,€EÕôaQ‘¤êïcÇ%´¨yá±}}ïø÷ˆåÄ 2+s²øHx¿Û¬I,î' t…Ÿÿ”dA“ oðÒ§f8ãh‚rT$WFÁ™V¹"Å*ô¥rÍ”õ«’¼ÐÑÎmKW­Ó ¢óªŒÅuÕvóív8˜Ü>¦oÅÔ»Ùc7äÈtx@ﵫ\×d'¡ÙA— Írk£º®¢õÌ-šº­W]\>»ª¬SºoãÆÞu›Xu›ep÷q'F³›‡x^¤VÒÚ×@ëí{šu]¸Œ‹äs€Éra¾a¾ž®ïµY’Ur¹)E> stream xÚ}Q]Oƒ0}çWô±$R{û¼º¸EÍŒQŒÎlkd­æbüó¶tLŒ!snOï¹÷ˆºPNQÊ9ÉE†ÖûˆÕv‹¸_DpÒ ÎÜ÷_I"CɤÛEÏ¥D@INs@ÅÆÛ£ **ôŒ‹îâ„eïK³ Ê&ð±¾±m¯ÝTÚl+MåÀÚt}Ù4?‹ÛÇø¥¸vÆjj̘"\¥nÐÁ÷`tßt¿ä@R!GÙŠJúáǪÛN[å °±ºÔëÖvvÓú¤MeýÍã`ƒ&3àN@†öGÝïâ„sŽû]íÀwÅ,T–7qƱõ]±mÞtO†~Ô5RdŒqfß½×g«·;úA#a)G”p–Ý:¬¬Ätå„ÊÝï›èVä_é€ R¨1FA}¹WûAÛºìÁGá÷YŠË¶žhìÁTeïò< Å+³–Š.‹èÕ}Ÿã endstream endobj 44 0 obj << /Length 1758 /Filter /FlateDecode >> stream xÚíšËrÛ6†÷~ MWÒB(q#€îœÄɤi¦Çͦ邑(›­Dv(ÉiòôiÆ$±ã‹& 1Ö1~ÿ—s.p’È?p"’ ÃÂ'‹ÍQÒü´¾˜è‡³WGÐÄÍeà܉|v~ôóKJ'0"pr¾šPÈ`v¸óåäÏi1ûëü×£“s;E(RPE^Sdé2€ %JQ¾SÊ €˜hµó™ Óìã:ŸÍ1£Ój¥?ŸWå Ãé.×[õNz(0I‘Jþë Az¤Ó:_e‹\G¹¡”θü&ò—Ù¦L¤½¿}ã¿ë`÷ûŒé‘ö¤Ênञ;ᖕεá yðš4M%4VÚDß ­0M8`iÕgûb½,Ê MgV.õÃër»ËÖkõ…T¸ƒÈ™,…-vû²hAà‰9à><Çl7sk{²Ý5`Üö8ikû@ºŸaBdî"*@ÒÌFú÷«âÓ¼¾*òOÚ¾»¿DRÀPú=Ý{H‰à¡ç-ÒpÑ~À:zî„{(: p¬¬Œ¼AÒ‚Ë€ÈTrYD?$\ìk› hÚ+ÿDZrU¹*dpîƒ\VP‚ù½…ü1 h¬‹E° !èò€¼ÆÉ6%-‚)•=e‹à~»«6Å]:1žî.U§‡I[:³]![=pPE*¾¸'”@Çh2.ÄÒÔ…‡hr­õÓ'ÛД´4Q${#Ó/7EYlwµ¤Fe Õi]\ëü›¹ TÔ> î¬í3<sb!ëÂC¹Žc/dq² dAI  •g#yR*²®Šº*7yó¼ÓëýŒË¥j]¨ÕêVÿhUÕšÀ÷ÅvŸ­õó»Ý~YT^E («UcÃÌi,]xˆ ×(?q² AI•68çФgÈH¾–K¸"[_tÙjìþTì.µíMU›/ß]æëµ…ÁáÓIKc˜˜éŤ aâzæÇ$N¶Á$(i1`FÛ:õ·ì{ÜìÛTA¦/ Ù”ã¼î}Ûå¢òÇ NU ¹Ö(m}(!¹¶UÒwˆÒ˜™fbÍìÂCfº3ë73N¶13(iëA’„ÌåˆI¡=ø©m7ª‹:ÛxÍò1=´­?¸öÿb9ìÂCºP/‡q² ‡AÉ6©Î@ÂŒäÙ¾,í2ª+:ƒž˜ÅõÄr`òhªÏíìERà„(èY⥠RVQ–´0 Âí)G¥ÛÓ¥e!ÓuâmV«|k ÊKé½×y„¿¡ïxB9cP3b¡êÂCP¹û¡Š“m  JZ¨Ò0fÎTN6Š©³¹ZR/dáYdZ”½nOMqÔßšÚèíSÌy÷uqÌn3M±vwá!»Ý¹÷Û'ÛØ=¼vŽEpRnú§—EiNZ›ƒ×}9rt% HlGù6û'_Ù|28»J±La·´úÏ[GμÚy<órÂg^=³èØ™W¤t{æ5”ö7½D¾"íyg~™é:Ó.[ª•÷œÚ„ÓãW'g¾ÿú,СèÜÂX.3Çæ².<”Ë\j¨7—ÅÉ6¹,(iAMdrfuÿöÍ;—ˆÈ-p™ÀLToDµ²'6ÍéS}µi³—+ôô?Íý™ZŒ«ë)pê]ð1=œþ~k¯n´0wúº#M‹q0²gé¢-‹ …ÇHMÕ°õ,„)𛓆:½#)»ÿEFNDìEF„èa+âööL[óbìÂCºD0/‚q² ƒÉëå C@0¼ÉR¦w½cj¤2'ÂGÝ;•D3{±%± •D×6Zã¤mIHd#ù:B˜3?å;âÊw[WuµÜz^m6v?é7µéî½ÄþjBü¦åXú0³›>ºðPúp-ô§8Ù&}%-5 ”EÉ4æÇû]µ‘È,4D¹ÿ ‰C‘ºe…1s±vá!]ü†dÿä[à endstream endobj 160 0 obj << /Length 2526 /Filter /FlateDecode >> stream xÚ•YÝsÛ6Ï_¡GjÆ‚ àGúrM®Í´™´™Æ¹>´J„lÔ©!H;¾É»X€"i*V'3.ýÞß®ù*„|•‡«4ŽY.²Õîð*´»í튿½{ÅÝ7#Ê77¯®”rÅC–‡9_ÝìÇGÝ”«?‚7½®J]ß®ÿºùh“1­ W!QöµîŒ#›G,J#OÖÔëMÇÁïº.›u”7Dð¨»;zõáý'Zܬ³8hÖ jª{Ý­7<‹Ó(àxÍ«nÁd]¨¤|¦‚ÄJYÄ¥p*H2Áx,ˆã­Ú;µ$¨3J˜HåÍFa’<85ÊÖ>gÁDMƒÜS­ñ{õŸ!·} ú½‚½4 ¶k8»¢.‰\צ+ª ma¯x÷Ëç%£Ä!g<¹Ä(‰L=Ù¾mt*Ø€ŠÖdX¼‡½¦­ñœ†e<]mx̸ät€¹SŠ%dàHô®mL³ïèÑÙ;{³õFÚRôű%ï”1DÜöµ¡w«ÆþG;…£Ñ=?⻦¯JÚ¦ë“às­¿l*}oUN¯àC<,vÑ©ƒAK¨c”-tB‘LÓ«£DÛ㯠Vû¦ª/ÆÂ˜þ ÜC7Ðu(+á¬Xtµ‡iÔ®¶ð“áäKà¾8¸Õ±wîÈžèÓ>Æ"ñQôÉçÚ-ódP%ôðg(CÅnÙÕ’‹ñ8dÉÉÇÞ¾¾îM{]5»¢ºÞêzÉÝrÉ$?¹[ÓÒ5V¸XÊ@}Q;4JÖéŠm¥€~"y|hLGä¨ÿÉg¥6»ÞXsjôQç¢%ã©èúp¬ôNwÕ%—ÁR˜|zCq…Ùgä·ðøm(ŠêS‡ü•º¡GhvÍá¨12™½Ÿ È.n—(1Ýþ“uÓqQáqö,Üׯý’¨’H¶}Gû3ƒáÜ i¦t­¢OêÆ}R íÃÔTè tJÍtú0„@gkzúhWÔôÄâhŸH‘ƒ$#=n1?-¹E”QvIæ‘’Ï2̽QóYe€ '(=ƒ‡cGëÞÇ2¹FE°NDì¯ûPÜ«½®û}ÙO“Œ¥Ñà§_RóR#dÔñJ¦àcðûírã©7#rªºù¤’ε·F :>'Å.”,ŒÄ…xêçL—!pçSÐÁ­NoÇé±Tø•YpyW ¿Ç4.¬ë¢}¢”ñÚµœÚf?|kc«ã†v¿ÞçÆ üW@Q²¡a ÷ôûD‰z£«#ç,ŠroàCÓ.Öõ(7¨H ϲ `R î^aízñ¤ÂLXuÚsÐyšOÃìXܪöŠò‹-up,º€ç­-—ªë”K@]ã^œ‹MÁ‡ñeX-žæiBdK±G!‹üHÄSÙKÐËSoFä ž8?ÔròÇuGŽ =OP M8‹sáøøý»~[4KÆ’x¨`9=£ÎIÓòyØó ÅDÊDfp÷;}‹ ô¹CÌ'9æ¼E$,¡'åÅb©,Œ]§5Æþ>Þibð±ó´ä-D‚ïÑ;ñ¡ljGqW,gúDïƒúÎý˜³$™ø>žYxF-¾Ú:tÚm¨¢÷ŽÍféêMÌ¡~ä³`ò±mnÛâ@ŠüR¼«ìˆd¾d â‰ëScÑØ~âúpoênÑ?¢”;HøÝz“ –l‹"¹b,Jâ¡"¤_0£”*‹1Òyªºq¿Êšµ¤'ñ Ý6N¯tbQ{¤ò¼cÏЇN@]^P ŽרÎókõ±sÚµ^ÃQ”%çóYÝzZ”IÈÈD”‰ U;U#špÏίhð+ÜߟK¤ É}$g©È|/E8®Š í¹B3 9Ü%ø —[Ûã4•bÚTâ® =¤û·¢“«æHY¶5 åˆ$¦Fš0!¸ €ÝV°àb„'ñÑ@\{ˆë(ä’Vþ¬Ù‡Ó àñ{¨:p·?‡Ã ØŸçdõ_w]ã*ˆK¥pwzÞâ_‰ègÀä<&oyÛÔmQz”á<[B›ÎÂP®„m´å ÓSoFä”5§~2;Ô2÷·Úïÿ»³ìüë`jXqÎL”s–AÛ3žú93Ó1;Ô2ƒI†”Bºƒ®S§kauMÞ=:là] 'ÂÏtú²‰SçR¸øé4  “òñIxàœ…xƒ 7"á&ÎX–;/ùõaCñi´z<3òà9<áÈ]N™7” ©k(¯FÐdh²H›“œ(Îøœá?œ2y¤d°ëSßÑ]÷>mv6Eº_,36%‡É4Ø5xÚ^ßö-)#H‚ÐOŒ–´r2-q ²lZº­y8Žï¯.¹7pñw®cØ‚d]éNÛæ4)§ÂíR¾ý@vžÖðµm!퇳ÎQ}-ÊRw”i2 ØùèNgØŽҜﵡ앪´s}Xìmß¶ª¨ ö °(l•½?í oï©n€}#ïÛq„J•2½¶ŒN\=Ñ7Ž’$ Þµa[åe(%C/H–gFw‹Cñ7@,Ñ•;šf@€Is¤D°ó+’YËáKgòÖΰ/ͨÎÂ…– Ò«¡ÐBO™í—›É¡q‘žµQ*h&êbã0f²l6?é´+ŒOè<.ª‡ž `‡„£™@ 1ˆÓš¡cY#“ã‘ò·ÅŒgCÀÎ3tM¾‹³ «î]qÂ3›>Êå,#矺¢í 哟¸´¦SCÿ1ESïqDJ™ÏMCãx4Õ.ʃ®b^“N3­~¸z«ØZ£”;æh~ÄO òÐÏ|øx`o„ðÍiÞ:¸a1R¢A@CÜýÏῸV¤DÝ6õÖî4jÃ[9ÁÐ'8ÝÝdQ„dI&'HÉC©NPw nfcÓÕ=ìŠÖœõ‚Áaî¾^Ìè<„†=‰g26»þæ%¶˜ÈfyD8Ë|lÕ±ð©lðwJfœþÆ­:d&.†A*ê&ÿ°æmÜ/lÆèëÚÕÛQ÷pú£ƒAŸº„3jK ßŠã³…ðb}I§¯ßF†Ili+óÂíÕòÓHÑï–®9r@ zïSÀñ¤,ægš˜*£©@‰cî µ.Sâlº·Cé vµõG‚ÏÎê¯Ïüµì™N,f¸Té(LÜž˜pO¿CÉ÷}u5ÁY³”u¤ÆõÞ–ú[õ2ßbÄ÷‹XG† [‰Œ ž”šÃ${ŽSÓûxÑõðײ¦¢\YÎà…›üû}Üßb˜oþWÌ endstream endobj 164 0 obj << /Length 2420 /Filter /FlateDecode >> stream xÚ½Y[oÛ:~ï¯ò²23âEÕƒ<¤Þ¶›Ýž´HÜíN²ª,ÛBmÉä6Ùìoßus™Æ[‹15‘ù~ñþøIìŸDR²Xé“tûÌ7ÔjuBƒ›×ϸå›ãtÀùbþìüUœpŸÅ~ÌOæËáRóÅÉïÞ‹}¾YäÅjòÇüïÀy•b8ò‰s_äMmÙFKJÁD$Z¶²˜L¥”Þ‡¼X”¡½¯5”÷5oÖ4õë?ni0Ÿhé•“)p•›Ïy3™r-#á ÜæÙËyw°@ˆ#5€œß¨ ‚c)&U(¬ B­—Š$ž•ÅGŸ«Õ¾êôÅôf\íÓ²XæÀœ¹t1µ¼S3.¬ŽçëÌ¥^!YÊ£– B&; ×i•ï@WJj/išl»»ÀSä5%Q·ÉgÔ|FOÍÚ>¡­‰sW‘ÚÓ¬®i²~¨a)ƒé²ÌG^£bƒ†M¦Q¿ØÁÎ (è:fZK8°d< ‹²øó}‘ßO7y+‡Ð‘Ý¡>sé‚sp¢8Ù— s€¡ k"¥‰-¯ƒ“*o•1yÖιÏË¡œÃ챈ëN7yÑ*ôËÄø—‰ |Å]ü÷P?§u@£äà,àj|@¨¶‘SÛ‚…}ÞûßÕ°Kê:[|W~@ICëæ”jQ¥‰¶4irÂ<ÊK¬xE²Íþ$±7{{Š]’Wõ™]„eÌY$¦< ™Ž£±¾Øy/(œÀûÝêZ ßÄng^ÁpØr]¸ X$º˜ûbNàÊvcwfì§ðHÃþÿ8€xiÊl“Š È‚8L.ÉìžWY5Ö([¹"4;^†÷ÈÕÊ‹S“ «×vð¹^ŸšÈ÷Gyk¸à¸*^œþrêT¬ÂTü°^õŠ$£WtzU<"½"5·³‰¥ç]*í0´ $v@ÆPÇz)·[UY²h÷‚8zp;‹‘ý„骄Ï"_ŽËmÄÚ‚< b„‰*ðn¡îïS”ÉÞW›þìqж9Tb‹³LVH7ûEvœ÷üyÌKÁÙ7»¿x@¥K€•ËÎý_I ³ŒåJ£€ã¿3Ëù¾®Î7ešlÎëuRe6]1ã.w }ÈbëB-¼«%mÿ`rëÞÊbáEš/ˆ’`›¡áÈÔBs¦C=6uIPJ’ ” ™C&‹]‡qÉÐ_«.;R: Zl 'ÔM²Ù€X [S€h¯¾–ω!"# Óé®Ê–ù½K$ê8Ë­>Ác%OE,Œãã"¬ªº4qÖPÄäº§Ó GØKpÙ.N€Á`tømÓ- \“ŠÍàsÑgG%âq̺3RÉwJQk<ŠÙ£üri_M wDñL–Ø“2à&À¢`|Ûýšc¬*Óõ~×I—^2¢$ôƒººÇóãÃØƒ ɸ“Òí•(ßæU ’‚Ï0AèN>bO,ËŠRÛ_ò@#¤Ûý±…go¯_]½¾»½š¿tF8UÎÛ'Þ·‡õÛ’{¯Ìź¢ùì>Ùî6挜%Qû ReÔ«R*…K1¢U ™ŠD€gõ¤¥$Sðð–é¼;±HôIäùù»ª\UÉ–ÜôUn[ʤ³{bÈ¿¾~ï®GExlú£c>¬Ÿ}ûêó£("{üºdfºj³ˆ Qá}­Ö.:µüGLc†2þ®†”2ûh26†ßÆ@¤]¯¸ê§qó˜{»¤C¥äÈë¬6®û”[ O³Æ£Ôx¥æ¡í ÁD½6GE^:*—î~¶PûÆøqêî:…»º\l®‚°í¾ÞƒÎHš¤n?õþúÃÙó endstream endobj 170 0 obj << /Length 3044 /Filter /FlateDecode >> stream xÚÍZëÜ6ÿž¿bÑ/ñ¯­‡í§¾Òë¹ݽmóŽ=³ºzì©lï&ýë)?f¼Ùýx°#Q”DQ䤜ø*‚ñU]¥R†¹Ê®vÇW‘£ÚÃ5~ùáUÌ|[`ÜÎ8¿¹}uýVë«8 ó(¯n÷ó¥nË«_ƒoS—¦9l~¿ý;ð&s^¥BlEÄ94¦ï˜m±¤¡H…gk›ÍVJüË4e»YðØ!A¦¿§¡w?ÝPãv“É Ýl«­ÿ0ýfg2Äm^};L ñB çó*H2ÆR‘ÄÝ=ÉÙ¼©RÜ ˆLÒ`W4ÔxØè$(ì'êím{¤V÷©ë+n÷íœn¶Zéàß›Líp¶ÜoQ¬š’§ÝWØ€åwýPÔ¼Æ}kY†¦8VÔjyö'¶,êμek>‰—tëÕ­Ü+·›æagþÚʶs[­Ü¯’a*RϸkÇ¢)ßÐ.Ux߬­¾ÍU˜* â% ^¶ÜnI_|ûåõ{Ûlq$Â[SW5‹tô1Kà'þbM$™ÀƒÖ"9[®óìdê¡ÖÛ¡_p”Ö<àRuëªï+Ë{¹ëGªiº¾¨ë¢7pÏx³ÛX +¾ß˜ŽøhêšGâP‡|N±1¡#«mžz΢£_æT+¾˜’/†k·:Ê4»Ô]ÛìÍa°«¶£ug#„œ¬ó´SV `JHùÄç±,7O¨ æÚ·LÝ ]ßÍ_XËs˜fÀ=4¼&¿b½¸=NOÀÜVÅ¡ziLáõt.g’Ûí}UŸVQda¶ÔÉoRÊþt¸¢ˆRIÐî‰'è*jò™;R€_†¦yBb!b0=¹äçn Õ俆%*Mºìª’„í¹ê SS{ˆŠÑnâÀ 8ÍòåÒ6»jçŒ×¡Ùo€®Ÿ9@–„yö2ñu¨¨™õfgͩᅠMŒÛLOúÃ?þI’‚Ên8Vξú‹¦1­™v®C©F¡Š¡oQ°U@Ô€œ# º¨¡àŽÑ²] 0uqW³ªd&Ã$Í0]ôçñ-Ždæ §5Õ31Îsogìç–':[Ôí}ß÷§/¯¯9F<>†‡f[{¸îÚ}ÿXØêÚŸüú\Hƒ§É …ôÜ—B.“‡³EÉùHë@À‘*äf‚W„ß<ΉõëòhÓõnøa#Áb¸ñä°jT5ó0Ù8€ñøØ9Õ®±…‘]¥òbVÍ(ÊC¥ŸÏ™ ¦fÉ蕼SA?5[/-’« )eP;ìþÁ\ÖôÌÅáÊM×Á*`¤:CãkŒ"ÈÕT€md(d²téb¡\Ž7‰r‹§ ¼HêÄG¢D.ãš*(õ‘£ˆ÷Å©£!žîa(`ˆ]Ƥ_AA¦Éë"bÁ1èªêÂÍbÀÍ\^©4 e®Ÿs3æÞÎØW,ø|Q'À¯€|vD+  FC鎳¡ß¡û†FNÅ¡¢–:—X€-½LZä|FÒùb^MqˆØž·÷,BUt¦êzê<â¥c„Ö”åBD-[îß›ŽZ†cuÏ#pt—ÃNi Ð „ÖÔ¼›-jAæpiJ¿esÔz™»Ú¡SäW9å<:âÅà‡¦Ù¹Qh¡!8£ÎÂóAr½z<Gëàºß¬È-¢"=š‘Š ªw¡§ãž«tc×¶cî;ŸAbÇ¢ÇcÃåÁ‘šÝ ÖŽ€Ž„¤í(á_¢ )‚ÿ¬B»hOǧˆ„Ùñ£HxýYw‰#hç#Ü¿&UAÓ…¢b”‚«ûƒ çb,dÃ휊òÝqc˜”A{Ë/éL!éèPÕézcDÂbÁù%R÷$)fÒxSŸ¨Ã¶¾Å8Á³)¸à A?ÎÑò(Yzöà¼HiÁ^„7’ Ð6C{<úœ;“ŒÀ,{´Äšú®ø¦]{§p}€äÑê4×i0XPׇNÞӇ׵M³j!Ÿµx6ö§a¦Ô,ö?M€ÅfpgÿzèìuÝîŠúúnd±È1{4£$}%àl™ÂNæëáÿÂå/Ó¸1gûÎÊÊÎFá>1Cö:?Ëç\ûÇY×½0È@‹²4hèÈÚõ¾qæ½¹¨ƒ4ÄDl£ïá ÷£Ü?¡"±¦¯r>" ±Þó\~,äri:U ™¼?k•o±FwôÆ¿jîU›¨íÓä)¯!ý‹¦ÏÂëþ6’L¦†Ò§þ›7íâi3@ÉûçNƒ}ò)‡ó8q¦nÛ¬Bâd’œ½iÿÿa†HÇÿ°æ­)$|£7¼#1V¤øQn¹ðLq"Y‚‘ð5¥HÄçÀÈ%±#¶ü̪c§S6ÐÑÒP×Û8ï˜j ~ìþîníj endstream endobj 11 0 obj << /Type /ObjStm /N 100 /First 823 /Length 1964 /Filter /FlateDecode >> stream xÚµYÛrÛ¶}×Wà­í ˆû¥“霤©;ž6Síö\r2­"Q6[‰ôP”ôë»6AÙŠIÉY3–kí ° – fXL&½gR3å"3šiãМ²Læ D" Ö0%Xt–)ɤðn¤“2x¦4“*¦dDd4ÎBVÆiÉÀ EàYÞ ôŽyàE¸Í/:´/FÉ‚‚* ¤ Ê`\eŒƒÏVrQ¡¢‘Ñ¢\i,œ¥È:xG’qA’ä Ä™ ápøË§FR5U"®&jê.é‡`1+K‰Ÿ0_"„V€O"†–š%‚f%,“ˆœÐ"LV7’ˆ“U„ƒÀX-] [mIÈvHÄÂØ,átkÍ CT€ !T€lá\iì´IX‚š6@ö„Láò$Œ Ù@&[Çœ$ƒ©)5ÙÈÁ÷Ô¡a¬( R§#¡BÀ@{LBæ,*†b‹ A±v÷ e¤YŠŠ×TD°ÄpÑÓXϼDÐ-‰[3zõj”¾ÊYv2¾ÈGÙ÷UÙäe³dëét”æËjUOò%WÛð.Ÿã7Õ'ö^ ÁI…y¢>Œ0¼Æ8ø¹ûî»ùhìÕ+–Ñü¢ªbõuUx#®«PW´uŒÍNêjr–7ì=ôz{IJóüSÃ>¬aÆ´¸§1¢½ÊƒÊeG4 Ü>ŠÓs­zŠ¢Ù벬€óž²é!“;eÒV%Eã¶P©Ð©0©°©Hf¨„¢ŠJ(:¡è„¢ŠN(:¡è„¢ŠN(:¡è„bŠI(÷ÜÒš1ÊÎV›öùç¢ük”½©êi^'ˆä¥ ¼kŒâsÈ¡ùà n‘ųµ{ÝíŒe?VçËÞ²¯å7¡ý)…åQ…;J¸ ‡a4-ƒŠ+OÙ %Fîµ9(wÜ “èB[¤S/Dç4XP-×Iô t›܈a:ýBt:rç;:ã9Þø¥SŽã—è´áRȃÒI ‹º©¢ö t&ÞnˆNx>¼êÌ ‘{ÚÔbÉ¥ó’ÑÑÉM<,EÖ¾¤¥sks g¦¤i¢EÀ.i#àÐaJûBJÃöb­… ÎUê tBâM”Vžp®?(¥•§£Å¢—‡¡KñÃÁIúž·Pº¢T†› ï(‘δr‡¤T AÆ;JŠ©?•)ŽÊ+”éÝ®ÞóÆ”ÎFÌR›è\[¤ó/äP……`îbˆs/ׇ¢ì,”ŠŸÞJÁ¹þl’¶c*em%"72>L÷ãÓÎ9ûÏÿGçeMz¹šÏ?ìïWeÑ,È#e{¿\çõu‘ß$”Û§žŽR³âbUwh“î±3akogµlªEñw'Ù\檎›¢*;ćåzد§‹¢,–MþëVþ¤.®‹y~Ñ©¹K ‡öCy]ÔU¹À1$×Åøã<_ÒìªÛ¶b¹Ï©vÖ¬¦E•Xž3°Ç~Œpãyñwk+IÞÍå†+~ªê¶ùì2ŸÏñÇ øïOx}­w§êÛb6Ëëµ-÷ô¾“åÚÏûõ´ûã" |õUŠ\uQã¶ÎÊéª,»9µvÎƒÓæ‰cV{u]Ü.Nú÷n\³|Ùºâ£Ö‰àA¹þ,]|̧[ÇåFô;mø§›¯{Aô4:*ÊVö|µvÚ»ñ_ùìÖÊýý ˜_ޝ‹4ªYKûúÇN»”·¥³‡òî§3ê]€f#=ž­f³âÕNWX óq¢«uصÇð×1²årƒŒâÜN±å²š)ñ1‚ÛlßxS|Ñ2Ÿk¬ÑÉçvÅ"*”R:Ú_¯¦ã&¯×ùùA¹m^ê¢~ò¹¹¼5m¨§¿ŽÚö Ü{ íèß•º¹ý…yÛ»{HmG';««ÅƘï«Å¢S;NË'È÷3ô /EŒžÜi´N¹C=;¾Ü:ÑûtkÃ3?‰ÚôU’¾¯§ÒïýíGç(tû±*ºa°\à(fƒÆ©ïnÿw÷Ó<þwQò«éì›[o¶î:¯®öÛƒj%¸ví]§{ C× ØxËáï®t5¤Ã0©„‘tMaˆTÒ U{²f´ã—Š˜¿ÐÝ)òëéqú÷õb\Ì›êÛ?óÙìw¬‚z<ý×bYòIµ¸·K¦k’ÛägÊéxTîA9í-7J?bk¾y!°±M§;('ïoÓŸ{¡ázt³óô+ ²Ô釽ö š>†ç{ló,s{±‚ºBÝîå=ßO*î¹IÅuÉÄíJ&[Ð\kº4 \+¦eàtÙj-=>jù\6ÍÕ·YÆnnnøE¹âU}‘-«Ysm³1R-½Y²ýr‹”XÖ‘“ÈiŽî¾ÓQ뇓ˮýïælÙ±VÿƘ.þ endstream endobj 178 0 obj << /Length 2467 /Filter /FlateDecode >> stream xÚ•Yëoܸÿž¿bëOZ ¢EQÏ4 àKs‡´—¢¸8釻ÃA–¸»lôØ%;î_ß©•Örì€ÅÇÎó7\¾ àoò`“ Áò(۔͋ÀŒöû 5~ùé·t>ú3Ê®_\þǰ<Èùæz7ßêºÚüêý0ªºRí~ûûõß6™ÓFÃV@”c«mÉ[Š…ièȺvë !¼«¶ê¶aæÝiˆ¼;5hêã?>Qãz› ¯Ûú@ÕÕ_Õ°õy&ÒЋð˜ﯧ‹ÅaøL åÓ"H²ˆqÇã(ô†ƒÄ÷T«‡¢-% w;úþ¨j;ò~˽oǺëeïVƒ%>šÛÈV¿Äáýð¨­Nù%ÁœŸ0Y"b'À¿É[Y»}zÔ»®i ³ ò_}ׇ5Mp‘°lÚHº~(Çá%’n|‘å,‚YŸ Æc"éÕþ€:BîãÐ+kUb÷+2' ZÖ²Ö˜çA‚,wgoŽóAÉUs‰FÂ-ø+ðÇEÃòx¢5æR ƒý^® ôÆùÂãGå."&Dæˆ?Œµ‰­²²4d;7V2‡n¬”¸WÂ(ÌBÍ63Ç“XHa–±$N­28mz,œ‡ì:«xÚ”~S F5–ͪ–ŒMÁká.Q"£œѦ¿ƒ®ë X›Æ¨£}_4«ÊÅa¢»YpîU´£Vª‹žÎ+ê;¼6ùåÁ Q/”¼rIåÖmZÞž¯àXði²G¹µõ0çr`£Ö(O³îdbè’J;Ó‚­ìQ&ÎaŒË£haý¨Ë(ævY!÷PQ()ù4JAcãåšWd!˜zö<¯À3ó“Wàñ`-nÄkßæÎÄÔjÌ3&‚ä, úú°vlæ“3ê²WøÍæª-ë±B?Ä3ɾs¨/@z<ˆîô=DÅÓ±øn¯nF JèCy ¨Ñ †ÀS;úR‚†‘v×Hêõ²Ð”…ƒYà†Îd,†þ@ƒÆHàKVsZÒS¥ŒÓkåv\Òbd˜…ÏI3ÁßÌc “L`ãGAÀ2±4ÿ¢·­ÁMÐÌú¢vöìM~5Ï3•ýên–°œä.aG,ö„_l7¹ÚFFh]UjQn·‚›Ük²¹u’ÇÒy àÒ"]“"‘sÚ@º«GÊHØ3Î$RsìWí»õà+ˆ@Œ·˜k€0UØ ÒøÈrnqÂH1)€b€³µÈvXŽZ›Ü“AÈnÏ« „J$øé÷ýJÁQû3ò•já|SÃʯW+7A¦HÞËßѪò €_Å9×î(Ä3™¶ÄOð|¶¥a<7ϽÚQÖ%Zÿ0Ôµ–áAÒ ú¨1FX0a]¸Æ ÁYš¨ºÖºLó(£Éš1W_XÛxü)õľ'ÃxŽã®E¿¸UÕä>}>­Ú[Çž)äžv–+Œ2)¤Ê$ÖÎõ ƒ&K¥ ¹8ôº´,ú°ÃTáÙÝ`dºÛ|ÇÔ3XçmVFØ×®VÆ©Ê iõ•e^ ¡v4]¬yOs’ÁT?:fäøøu¾.À›LyˆY¿5u«ß\Œ}ûJ—Ø í7ªì;Ýí¿ìšW…nØ-¿ jÇÉŠåo.8 .ÞRŠçx–IêõÐzøÐîºÿç,±¶¡•Äk  ­WÃýŒ$>#™û^õãþÅ÷-à7V€­ÏWï¨A€­Eð³…Á̰«l 0Õ­”•«|ÿíš^O¬¾7`$ú3¾ Т›o. ý¡½í¾ÊÞª`T¥¡$zs±+j-/.ßZн&®ËG…á/dçÈ—â}dÏI«ß¥rfööyÅâjt‡ÐSÃêƒXÚƒ”ˆg“w¬½ªtŠxÎpBYÜ›ö«‹òt*}[š¢ôÄX.]]O…v+N¼` ¼O¢|+¨Éâ<_ gP¦† w%e[³_$ ðí¨)ma‹/-QBˆm¶Hú>ŽË‡+4WþÏhFäjeX×tSÍ¡0Š”¶’5D'žºÝâQ-œÇè¡ôæÆLwš—S˜¦bÁÖø+ƒ- ã$Äl)+B*0l°M’ÎÑÃy^ã”qnxš°ü©gGG쟨)//ãèrKÃïaŽúäZx—‹ÏrãxCmFˆoÐrGròø/¹\ØÝ-úJëѤóÓ“o¬ÞF¯ž@Š&ާ± bf€ŠÉù;ê3 ¤y¦à³;¦’ĆÈØüø‰¾_¦Òx4МF? c¥:¬‘ÂÜ> stream xÚYms¤6þ¾¿b¾Sd„S÷Áû'ûVëIî®’Ô‡,sÖë«ûñ×R7ocÆö¥¶j¢GjµºŸç‘ÌWüã«Ä[ÅAÀ!WÙþ™g{››6>½yÆÉÎCwbù|óììu®¸Ç/á«Ív:Ô&_ýê<ïŠ2/ª›õï›Á6šÚ ÁLËCË®*ZMf³!Ÿù±ß›ÕÕÚ ‚Àù{Qåõڗέ6¹-Ú~z÷Ó66k8õÚ«ºüR´k—Ë öÐLóìÕfXXèûOŒ€±|<‘Œ‚<¾6n~-ÒÖÄÁ ÂÐiwÊ4„S)•SWÏ[c\7ͤ×è~×ý²-ö »t›îÛõ–¾îèão¥Òl톞t6»‚ ñ)œ¼ÐY§á…;è‰pŠ MÞ_^mL `á.q9eQ}Áðö¾Ùå™ÿÔ÷¸Å Ð hdõ~ŸV9}ÕØÙt´•Û¦Þã§áz§Êò»Ù(ÂÑj_duÙgÀÞLÙé?_b‡,•ÎÒCßÁ|Íó¥ ô%“°8ÉÂ$ÁÕía¸Ðü-¶JÓkQA”Ë’©oŠÍ¿¸°5‡®m”®»&SçËß ¾çK)íN&¦ByWdM­ë- ž“Ú¬°«ŸWãkÚg±† Ò{AzÆ2~$“{kwbŽÙ<ÑÑ ÖÙ]Ûô98'çlöØë¼Â£Žq]“ÞÌìøägªr;=ë)‹ë&5U€}&]‘Ë69úr}‡Qâ',Õ‡oÇ!á‘`"«È÷XD„¤·v'æ ~<¨uƒ¡‹aÂB>O©É_!=çBQN¯x#çÈN›¦Y‹ÒRר¢êT_¾0)ÿ‚¬ÖÞ-ÒFUJëóãÅaÄd ~z>ó‚Çò¡·v'æ ùp<èÜ÷Ìö îÜÞÞâ;ÃGVçêÐÔ(³ÖYÿ@;íGäÌx.š¶ÈËÎxœDòì]úðÔý'”{q8”E[WîÏ/Ü‹[ˆÉ½pÀ¶%^´ %ߣåÑ[»ó…\8tÌ…³×1.f>‡T±5ÓˆdqBÙûº¨ fÅ!U" ö\'Ó_s/a~˜ô,‹WÛ¢TãD‚"òíD½­+›§HÄj—®¼ýéró˜RJÆø:ižÉjšX"á©m—à£âûòÕë«S ÈWT8$ ­Å0¬2Øñ¸vÜ~¼³b½Ã—]: áÑñ0\8‘Ø•T´Ž¾C×{µÃÓ } 5€B)äÅL†3~ÄDP9Éæ;£Œo¨§ë®ÌI¶çy/¬ :;´´b„ëÝZŠ)ÌÇ(ŒPRþ™5-ð‡€ÓÚ˜{à©¥±C…rŠä–’®:sô _>uÞ‹9ÇŒC6ÜçžÉéOL¹¿œ¢žYeÇ –Š› (Š2zðfm¬×¶¿¨–ç ¤å2“Õò÷W–Ìæg¢ ~Ïkάóâ£CûøáêòçO,´ôp@æH Iñ‰…€ëO]O üM´´5\oGÇ$¼Ã—1¨±Ä ´£þ &mÚܨ–<Óh‰ÚÙô4êß]ÑØC-¼mQõÄ9°Ìº€±±Ê»‚Vfw}uÁ’x0Ü£‘§­j¯3<@7#—Ïf’%À‡ÄÈ ½üˆÄ> 0E¾)ï𛥶%–I´žüÉ‘û ˜ä¶­3>ð“A8ËPÖsü4¬g>¦m«€5¾õîñ î°‹gx„‘Näè™Þ‰’d`"ûÈ`LpÂFÓm/àI¨¿Ò]–)•kk)N¿/9‹¢Av` ,²>Èò†Ü23Ó|–p˜9}'–L_Ï6 !Çæi3§…K?pQeº" îÉ{F öá·Õ­£˜r€$q@Y@Tj‰‚‡ ×y‰ˆÝp¶½iÒýR˜=ÂmK¥^|j÷ÎÇ‘Í'¨;Òh[áI¼DÂÑ‹jØ 3Ñ®Ã69a»®ÓÌØ~ÑeªwØ•ÛÒv‡]ZÒ&mëÆd¢Ÿ{r¢ÀjH{+ezRº3ì¨tž_½táH 3×岤á,ôù(V0öKeÀAÇŸhY»/”‡i;¿’£ôÁ;3ÛCUºÄc°ð( \>%Ïïfe æÁVƒ$”ªè©‚ª •ðh^eÚ×Ó:ÃK?šé¦øŠèb‹ª'ç¬n°ûkæ•áÿÏÑÊæYÛ¶÷ªP´Peýüezò„P ’9i_¾¿Ú\¼}‹×ÃGvÞ馬³´¼.ª³É#]JfO¤ø‹úKÖq‚áŒa ðIק˾ž³gÖÛ³?é®ÁÂ3G\“Ù Zi‰÷a6s4}µ=¸-ØcO({êØQC§{j‘‹¦‡*ÇdT"æd)ÙhºsΊíÓö>Ú?NÐd ¡ôæéÜÇñDAw _×!àMS˜Ã⵺wé:™…1 `FýÇ.@ÉÚ˜/]€ j=ùõÅ !N*#J%ü€ñ;ÑÙ!½¡,õïßu Æáhò´uöÖ¬óxÐéE¯…ïñ> stream xÚYY“ÛÆ~ׯط€UâsáÐ>Y‰å8.«\1U~pR),1\N$Zï¿Oƒ‹¥Uj0˜iöôùu7VÞÅð'ïòø.ÕZä&»ÛŸ^Å´Û<ÞñâŸ?¼’n „Ûå»Ý«7ï­½“±Èã\ÞísV»òî÷è]ï«ÒŸ7ÿÞýh“9­1W1SögßµlÁR+¡R5ÕçÍVkýæÏe½QYôÔ↉ž|w䣟ú•»M¦£z³ªºúÃw›­Ìtª¢¯yõýnTÌ*õB åg&HA­T(iM0A’!µa‰Ü×g”1µQq.yñÞWŽWßµ-H¨e´÷EçA» €Õu*ÍüvO¨6üÈXyfnlã½KC†ùäKW¾]3¼TVd6[Xþ à¶vš #ó•Xaª”°féMäñ&O# Ø+‹Í6“q´;usrMP±åç©(kÚ°«Ä[©…´’y•îPô8[g1ÙWY®‰¦"×ê%A˜fÉ@V]ÁüÿKS¹ö5¼å*ø.C é¼*º!YZ>t'tÏÅ¥+ÁIáøÌÏð[ ûÓíû®x¨Üü.^? ‹çé22‡S™-Íñ€„VS`à¥{×¶`qk¶¸¶&ª62BY!G¢†É‹ŠBV§b¸^‚àüÒ·îÐW¼ö~>S|öüòäÛ#¯ºÀl߸¢ ?/øÑë¦]—„A¯Ï`#ÖB'æ«.Û„ s`L6Å Ô7ÆDïj 3$Â%.öõÅ“wàœ„Ò:xmqr|TúÆí»ºy?o'ʵ<É•Hâäe°§¯"؆ˆCä¿tÌ…–tÙ©yyp*j1‚î­*†:›î€á@‘kW‘#…Qú%Â牺®³±ó$¶ºa|t9ú}Q­J‘€ÒÙÈþ“_AZÈØÄ•¾[ψ.C%ǧU–©Óµ÷`+Èù²î!C·ûÊï1îÿÀb·P¢J…ORN¥rÌ_Üd\"² >#‡~š‘«9ƒm¢"p†¯2ìh î6ñJ¥Æ]ÞW}IáÄ?>¡•%¼Õ„m@¶[Žo<9¬fŸ–"“_Ç{•¸éÌÕЂΠè>—Õp0‡CÈOÙªH´Æ‘\ÑTÞÌõçUÈK ¶Žˆ÷Ëw»¿¯ÊœˆÔŽ2wÇâ<á(, $Îm78šË ¯fHùÇ«‰—¡”y™õFˆÃâh3Æz z:AÜVþìF±] ] âÏØ ÉòDÈd™žO¾Â’£ Rõ¨ˆЦ\¢ä< ì§ ÃSH·ž`ž~[t¼;U®‰·¼e …X(“ÿÃJG°|ü 7À[«õ"ÕBeú¾7ñwmÐ’4ã:‘g‡zy·Ë„M¾µ/÷¡êêþJ&”¦í^óE—žu°W„~¾¨|1²t7£z6åÛ ¿Žx*K¡ ™%äýµo@ÔgîÐÿæP¸Ä}üÇ µìP×\ó¥†}‰wIÔîéÖt²ZÄÙR¥ÿìûUæÖB¥· »ë,M•žc¹aÁ®/%[6ö“v@Vε»8ÑñYãþÛ@„~yîŽ ®\kcè SÈ2œ<|EÐÇMhœ ³H×CSŸ®'.Iå9»ÓI"€Ö—§®z;#çásWLéöc×]Ú·oÞ<==‰ © êæñ͵@ʤÂJóBêÏZFàSl'gÁhWqùµW-’$LŒÙTÖ1ô‚Öƒš@©Bø#«8Ÿa X4:„·S˜À 4òaã³87 £ŒCÓYš¡œðù°¦: <}¸ƒbžç:l @ù¨¨IEN®Ä”Ù€ÎOñ²VCß5^˜K¾  œÔl0ÆfcËò°±,ˆ5ø¼pvQ¡œo}È€„#!tvÿäÿ,y%Tr;{(@䪜ÊOÊ®‚—³£Lιq›iÔ«‘À&N2*lä¹f#²äj,žâ ×PmÆ’ëx3špÖ!@üÞ_5¦_€0~Ýå]o1c®G÷@gᆾ¶ä ö•žü¯HølèÿÇÙ² L¸2Ö~ŽC/à™€Ÿ0} sÚd,(2ó;5ONw¹1anÊCq%²¿´—õËC3B[4¸÷$Œgƒ°{Õrx[-\øY(Ë^PËÕ§mHP¶,Ú£’n€_„¬#îïB&Ù<š€¤ã4iB¸( 5pÙbõmÁ¦5°ÖÐJ-'árœˆ}{Û¦¿}טÈxŠmÈðÒ`ñZµTz©_V‰EßcìòÊé#¼<ºpwÁèJ/UáGdÄöoMŸ%25Pž|Û2ãK˜ºúÊÝs†ÏL`„@\æ «º? ¸Æ½¾ÑueKÓý\#ßu÷{ªï›¦nÞn¶VÙèCÍÏQðú\œ0úp ƵX»!Z\¯f³ûæ#³qd¾yéÈ’¡é†ó€LYè1àlJ6ÜäïWÉÜRvn)D½X†®Ž\ÑzNy¼†*Ôè©$Üa9ÜðýÈßÑløž– ßÂÕ+¦½Â YͺÃlqšRî©ù¢Sú&±ð ^E „/ƒk¾Å-ÐMÞ0é5€ÏÛ3ÄUÂ0!IÇUÁß!a9l-QѬÐc˜|ys{¬{º“¥+&éNdù؂߰<}uóÔ5؆Ôý㑯îçI&•"NÓeq›r[ñ©C|³¿<6ôõx¯!NaªRøÁúzjÌÙüzŽ%:#^U‡ß}Í æ¯\šo¶ÄõÅ! Wµ‚ŒÍ$çvùÜ×#ÎÂ߯:ÇgáÛÆ¬¿2 õX û€9,º¡&ÌR6»‡Öw=g’áf¦é÷Cï`Bƒ'Gþ·Îj÷·(=f*=ØÉÿìŒÌ‘ endstream endobj 196 0 obj << /Length 2185 /Filter /FlateDecode >> stream xÚ­Y[ë¶~?¿Â8/•µV”¨[‚ó°I›¦mÒ$Š¢)Z­L¯…•%G—îú%¿½s£.^ùÄmŠ}ðp8"9·o†\µòàO­Ro›êd•ßyÄmžVL|÷ûwJä6 ¸™H~±}wÿU®”ç¦^ªVÛýt©ínõw狾(wEõ´þÇö Meµv‘òX²¯Š®±Ù’ïú±oÅêj½ ‚ÀùkQí굟8/-2´óRtžúöOß3±]'S¯7 U—ÏE·Þ¨$ˆ}'ÆmÞýn;(úþ@É7&ˆA-í:òÅQ¢]h>ñÇsw SÇ¡“U;V1N§Ÿ$‰„©U1¯«}ñÔ7fÉ‘ݨÔU¾Xy{0¬q^O¥é ›ä”u‡*;Ê\Q-9Ay•?xáÛìÙì‹rqkº:ÔVò˜¡õϼG]Vˆ{³Ïm™µÓ~ÎbûºáióšáAï–N´Q¡ïÆqDVLÅŠÛ~ý—?¯Á¡ó¾üìG0òǦ~j²ŸÑdê‘ ¢û®y]¶¦Ÿ¸ o¤/Lùˆ‘kC«\+§²¢d‰¾*MÛ2ÝÄæŠólÖÈ,ͲêÉìä»z´Œr^Ö~ Â27µ]`m§?i»QOÚíÞížítÿ?›ë{8”†CóOào1Ïþ7êjš¶ àF-²CB]´ò[µ]V–d­fËFz\vžøÀhÏmgŽw0=òÂ]‚0vC•Üå‘XIÃqÝœQtµÑ^LÙ²Q«Â[á¾g¸ÒVe/d¢²œs/BèNÜî>¹¿às}Sª™õèß2ù£z¯I?¿:‹lØuô¬Sò”H…Nßöàâ3³Ÿ Že,{¶g±à+O™¦©›÷<„|Ëžä›—–¨¦¯ª+5ÆOb7õ“› 5Tn¨C+ê®7ló°š op[4¤º)˜Ë´=cjæSHø±Ìé;GœíÛŽùTÜ L•—u åì˜STüÛ‚uJà üÔבe Sx}™ÔC¦+²z&ªÍ4BÀ¢%û<7fGVÒŒš8}jêÇÒIAo®YžUìÅÉ¡¡"¢> u±3;+ÁÅQƒ®%RN:P™0?õGaäd%7v:Ž>ûä ‹9H Öd]a9»¢1yW7g+°ˆ!IàŽåïãÃöë%‡û>’VêU¯ç.4±étž<#@û¿ ‡’ Ô™¦mÚIÊè “T…àW,Óøý ‚'É®Ã$á:L ¸t++v‡¬³”Ýtf~œÍ? >?ÃÁ¢„Í"¼Cg2dîØá· v KRð©sžS€† }Aªãi&Å6ÍÚØRÿml³|}fú”µí5àR¾©1ÜÓ—ÚãÄ‚¡^'›<7âÛ@0À¶%ç¥$¾Ttî§svŸÂ×^äPs*Kæ’pK ûÔí‰ ”û3å5u¦Ý§:Ôúä± óáݶèAú¥Óô£nójú)/qCÏ_(Ÿþ/Ih3ú´NgÚlÇxÅhÅÅ fÞÓPò…8{˱"sØ¢åÀ ¾E/àŽ=¦¬É7#¤2þÙ÷zŸèY6#£–}YÙE³]û/¸$†dЬK$Ÿ¡TT†RBj þbòĔܕùawöp³g dÐcoÖ>/]=¿çžÈìúÒ4TÁBûÐÒh&Ê,.¹^XØZ,q-•Pèâ¸ñ¨ûŽ%:»æÛˆn Yz˜Ír4ÏÆ—Caoü87Þïq4^'ð³jI7(Oyße¥q·4òàšIM¬‰ÃcñtÛ2Èêgyw¬¦; ÝyY<¯©-»©»áËyç¥Eòt¦ JMïy:ü)ë<+‘€.ˆØ˜ð™ÿþ¶®ˆŠí4U°UÁN¨âa™õ•¸UÞŸ yˆ»ö&Nÿ31Si±Ãõ¦ šÙª7§Í›âÔMw¾v×IõÛ¬µtˆTÁ=0šÝdñ_ÿê}­Ü endstream endobj 208 0 obj << /Length1 2185 /Length2 16205 /Length3 0 /Length 17493 /Filter /FlateDecode >> stream xÚŒõPœ[Ó† Cîî0¸»\ƒ»» î.Á%¸;ÁÝCpwwwww‡pØû•ì÷ûÿªsjªfæZÝ«»ïõt¯‡ŒH^‰NÐØÖ(fkãDÇDÏÈ –Rgb02²Ð322Ñ)›;Yÿ³C¦ tp4·µáþ‡‡°ÐÀécMÄÀéÃQÆÖ él`b0±s3qp32˜¹þãhëÀ 1p17ÈÐ$mm€Ž0d¶vîæ¦fNyþó@iD`âââ ý{;@Ðè`nd`1p2Zd42°(Ù™Üÿ'%™““7ƒ««+½µ#½­ƒ)-ÀÕÜÉ  t:¸IÈXÿ-†  lfîø/ƒ’­‰“«ð±`en´qüØâlc t|d(IHäì€6ÿr–þ—-à߇`¢gúo¸ïþ+¹Íß› ŒŒl­í lÜÍmL&æV@€œ˜4½“›-ÀÀÆø/G+GÛý.æV†—nT|(ü·>G#s;'GzGs«¿42üæã˜EmŒ…m­­6NŽ0Õ'bî4ú8ww†?\KÏÿ‰¹±É_2ŒíTlÌí"ÿöùX‚ù³f t°122r°s€ö ›‘Ã_ ”Ý퀙þZþÐàåigk0ùô27~üÀx:¸NÎ@/Ïþ—`˜˜ÆæFNC ©¹ ÌŸèË@“ñÇów0wh1~´€ñ¯Ïÿé|t˜±­•û÷¿1ƒ¨²°š¢*Í¿%ÿ×($dëð¤ccÐ1³1˜˜X¸lŒ¯ÿ#o`þï:ÿì•°1±pý«ÜsúOÉ.ÿîÊàcÉÚ~t.@ù§ÑµÙ>¾˜þ?·ûß[þÿuù_Qþ_ýÿV$æleõ·ò_ÿ?vks+÷{|t®³ÓÇÈØ~Ì‚ÍÿuUþkt…l­Œÿ¯MÂÉàcmL­þ{ŒæŽbæn@cys'#³µË¿ÖUþ4+s ¼­£ù_W €Ž‰‘ñÿØ>¦ËÈòãúpüèÉ¿MÀáùß”¢6F¶ÆM3;ÀÀÁÁÀ†ñ£•˜ÙØžLãh tû»‹ ô6¶N[â¼&¶0=Qv6ƒà_Kÿ"vƒÐâ0ÿ!NƒÈâúh¸ÿ#€Aì1Äÿ €Aâ±$ÿÐGv©?ô‘]ú}d—ùCÙeÿÐGv¹ÿçGvù?Ä `PüCÙ•þÐGvå?ô‘]å}dWýCÙÕþK\dð‡>j1üCµý—þz† ÆÿÀ³þ?Š3ùƒF“ ë_hþ‡ÿrþƒü.ÿŒö±búüØoöü÷`Œú,þ’,ÿš¬þ¢¬ÿQç‡(›àGݶÿEÖßwÜ?ÌuÛý9Ÿ²w¶uZYMœþk`aýcø×-ñ'‡Éáø¡ÄñÏ9üE@àŸ‚Ø>Ü?îË?>´þ3܇Vçà‡V—àGý®ÿ8ô­ÿÅü¡Õýø¡ÆãoüŸ14rvpøxý}Q~Ìèøï7è4‚Yš·5úhñ+°õñ§ ®+ÝÞ8ï ÙžZ ç’C›ó3d"UÕÿ ‡{ÁÄ¡n¤ÕQÊ;eÂ7Ï“¦ZÈïÍñ -/ß^õb§öZ`'1ú'òOkúð¡ñè”ö¿½ÙSõ³kí$˶wæDÏE}tíw«é+] žßSدb—‚}-¦‹T‰Ðö+š%Ë1̘Ã"†p¢Ã‡¢F¹tCœ½»ŸAÉšx'”Œ¥ñ:d)ðÔÜdŽzšóX+WfvìÄ&ÅÖÄ»C"÷:L’Ä\ð,.Œ– /4Á×oàkC4°g­&êXâ)™ØÁ:Òó.EÜ™ Ž6RØ&:²RÊjÇBÉ®á(š~cÒ˃qTh?xÃð¯˜ýáÀßoét&Ïü=µ'Ί ðŽ’¢ýðûaÒû"vn—÷4EmÜ»@ì"³aŽ“V—§üYû'ŽÇ+¯‰ q¨L­[e3>åI¼!ƒa&3¢¬/úg™jƒý•(ï–| ¸%‘SŸ¤,F«7$;<Þ{d3OŒø—uyöŸà>m.Ø+ï9.—j§¢Ò,¸%»l>H½„‘0+åþÔJ8éË2Dá-—õ· üÅQUl`ŸšKÓøÝô¶èAŸ{¼vªd:öȸJÈ8îÛ”DéäyÐW]×Äʲ ‰ˆÈSF‹Z|^g(ýèäM‡$=ûBå,>OŠ2¶ÌÐ)q_ %v¹¬ÿzfÜvI:_ƒ¦E×½YîPMŠÊoת÷«˜×ZҘݞÉmí-5YzáJÕií Ùý}¼ì¶îFdðYAþk+=$Ç®™`ù†‡RØö(w%÷â­ùÃMä±}.g|»¨þ{ùíÁ˜Ÿ²ÎóTÒ¼Îf%QsþÓƒ"ãK9Í]ò³áºE^X „à³0»tÅã*Ôc+,åÞ÷;_ \1<ö¸?Í A¶"ÌoÑ'L¡¹5—bä¹`%—âP¦ù£ðhò„±/¦±I­Ì¦Õ€ÎÐx¼"‹·å0‚Ruú8h”LJq/T¡ å‚bÁ—äpH¨Îù½Ïïe«½7¥+êÀ×ýàê×ÔLÇ·þf„iø½:ÆoÈ_BÛ:X$ØÛ&5áxï î>›QûÍD.ÝáóâüçÄV?¹Þwo¨åµ±³¨ôŠNDP°/ ”ÃËû„~É]&Õð¯ FjÉ")oØÅœ ÃÏŠý”ÚˆÅÍ㨹Ÿ{—¦;Ò^Ií.Qã‰&‰ñWo¸j"¼š×^%?VcthN<€AXªZ©ÃÐ8ÖutíÔ;›¬…h¤K ª"štUI]•©³jËRIvuUpç¹õ9ÞÊΗór'5Lè±åDO~xÞéä¬ùàG«Ó}´¼Í4#¥ªb˜Fû,},?G°8-û`ÍNõÀÏ ¬ZÐm b6 Òöêüîe;àg;¸/sŠ´RIDzŒ¹'ÍÐçS-Þ„_d˜wõGÙ*¥£o¸ó°vkòŸ7+ÚǼ7e£,ÈèCo†¢™péñÉWyA‰å—ÜWð/î§ &Ö§@îA±Æ·âsz?©@ÑHb?a["cÃñðÑ~õ®Ô-Uá«òFFY÷¦úÌ…™$žE‡¦H31û"™ù±5Æ:Í|ÿi<ƒ Ä¡:±äô¶O³ì|t"jŒs[^Ôú0‚Ä(";•VÂÞŒ›ðÄUèÂk&Ú©§NÙï,û˜IÉ…St€iÌ6Ï“»®ÎZ Þ†J} §.œñS”@ò>ª¬½I{qVG= «9‰ ¶2ýuÉŠºqv—[¯ŽŽÏnˆã>±Qºù¥v`Q3s@Ø»fÀêîé®< ¥Å8•)Œ›Áï`JD‹6Ӷꙃ 0Ns ÉÅ¢ê hOTˆ´š?¯¬«ß†ç!úBø ÔÝžfk¿ì ~Z²6ÑGðzßåÁ‚ÁarnùG€&¾<ëO“y9;u½'o[’V´¢&)Y¶ðºkJáÕ «¼ j‚«™a‡Ï×'sQ¯@ÿ:-ÄëS‡DEôGRü™W0-ÑlVOÔ ^;Eµ§#:è¿b= ðýºxk³øR É5Ek£ï–}zC}Ƽ0£3žJîþiyéÞ ­à´+1 k ézßtS~ /I%P@ŠZíS«hh•Óg½!:ɶ„XCüñ¼ïy7šÆÑ—%fß“b~…G÷ò¹Éž•ä®ÛíD;‚f4‰Kû.ɘñÝdÍØFÞΜdgàt‚,K~¹”¤Ñ¶†'Ä“Ä~aÇî¶ÄFš·öã"†…è‹Lwiµ]ÍØ]=xx×+]¼ÒGåA„ 6 ¦©Ã¾9 .$ŸšHõÓÜV0ùUDÅ+Ù<å÷íx“Dúè!SëàgÖi›_¡?IŽ™ÿ¶I±–HÕLÚ²CÜ©•ž@¼îCÍÅUÙ] @1·H­»ð yh*àêJÏ0Ê+Ú§Ý­Ps 9K˵ŽóúŒyŸ¿ê­IB¿ ûKðó°]€Ã*Ãy8Õžy9Kë'É,ú–¶sdJµÏÀ‚?´\ï¯qºËÂ=¯¯cò¿e»èStÓ‹ãá±ä,í'J‘&b£åB§¶hY|~¥%M¯9ödˆ`¶lÎ(¾‡Æt+Ã×ûŽUC–1ŸÆù½º‹hËÔ"+q}]¼TˆlËp0¹/Ò}ÕfcûžH²³ä‚®¤1QK…~€!µ«T ‹WëmÓ”Z!ƒ£þBËIžÇaßoLú;y-V׉A ÅoÑ}¢Ã§£«ꦜµQAÊ“j‰w $HM¤Õ˜¯Åx¼¬™n·”ˆcHD“~7ŒþV~ObNÌÞ!‰ M(¯>²áaˆP˜¥l4ýàõîwFE†)½(e"ÇŒ¸Vé·½  ”­U‰©¢«¾·9ødE\;Ã)–5¹G([Zað5Slþúz6·Î5åO—@õÔñâ\ ÓéLƒfUk|·ËZwÔèQb$íø=ãQYB‹¼Üeç5h?‚_-Tö1\ºþ§,¸ùʴɉØ,C?lÈh‚-Òø¨žÁQö*ü¶Ð±“·¿vf:xùz‚"CªkþÉá †ÌsqÆHú‚˜«Ïà"JçÚ§V³S~ŒÀn4ja¡¾Ð¡ŠP>Æ pq\:ž‚ ·f¹4|õEÜ«@û€"m9'Ú¦“dP—ïSôtöúls¥—Dd¬ñhY⨤Ïf+ÙÁªßQ”¤Öpc©¡îã»!3™î”Û§X&ò&ŸFÐ4™Zƒ#«Z×¾j]T¦íŠ€5+¹Lç™Õ»L»“¼§½ê¹F"sÞðN×>…>ÎèPF],Ãpï]07çóO¡®®zeïíˆgÍgB üâîϱ*îs4Øç<\jožV 3i¹•DnÍYm?)•åÑo:¢ã?¿ÓùBws‚!î¥DJ`ð îaËn¡ÞÒ™âÂ5é­*ÙÝDì8%pÝ®§–™­)¾×K‚z½SHx‚Ï?MNo¼•5å•{;±ÚPô [U'©~ZõòÉ6€ø»”­£±aŒNó)öûhÖº «¸îh¹e¥çAÏ÷* TjÝïu: dâ!N∑ß?zuÖë¨ÙЃ# Êx®OØs¿^czf¿Ò/ÌŒC|Z§bwsÐê«©Q‡ßMdµ×b,د¦HYëáä¹2^‹+Ń,Y"–ƒfú‘ÚYÎÆ|W_Ì›qõÚÏCÑalÅô¦R,ïdÓgà môsŸ]Ð稘ÓWRãvIIÎàÙŸ¦<_@½–lWÖk‹¹Ü©œªáÃvøZùk™ÖÎ"Y°{ Ã΢¯ÇÅéZZ ÿºpGl^%ÃûMH5IfS¯6'öCŽM)Õ½ÂgmöÀûFÓ¾í¬d™Ð\"7È´0KxD9Ú- ´Oç¥ô ‰ê–Ð< Ô‰U3=IdVÇz/ÔOu$vYî%ÞÏ·ò®•ÊÄüwÌ5Ý'I•þl-“ŸÊê³ ô8AFß1Âý T>‡Ð>˜q\pÊä²NãA{rqïŒÖlYü¶vp¹K—¿"ç‹Ë†2ôu»nÙÑ{h)‘îiìÍ‚u/ .øy;Á†8¥(Ààir¢ |åUf<Ü 5¸pクãPsDTÆÚò–5s×a"ŸgÛpæÛ!3C£KA›‚pήǰ¢æi¶86t1Ä:•vÏXRG Ë cŒ©yYQÖÍ^©âz'G,ºðâƒ?yy}Â+ÝÃÓO˜8¥EäÆˆ‚¼ó›z§éééÙs»NHˆwÆ92@Q¯ ]Û5¦g@fj ïÝâc¸s(¥6[v¢’í| zŸ>,›œ{O+˜ž›C|²â«=¨Ø2ÚÉ î§a°ÊžòFóz Ûφm—ÿ¡†ŽªfÔâ=‰zŠÁïÓ­Jkì ªMú¥°Ü OY±“ M†³KäÔ§qR:ËQÃ3T¤–„ö1@ÄÓ DÛâK©M’ñpÅØ˜”(\…]üœÁ Áýªž02&(Ó¼1Âëð«¨(Â*+qG!ÖñP¹8‡/Ùbsê¯%³D½e(EE‘+˜!ϨP"Êý·/Û±°•Vbž‹¥´è÷?ö ¸`P)hù¬Nðò4íí~êc„b¡ ‡ÿ<§E`Ç^þv­‚}øK‹y Äó±qtoßóV¯/죹­2Zµ:)ïRVEËw‚b~×JÑ3:Q•Ä ™\ÞÍÍÞp$BDYM٤ɸî©óü€ý6ßñ˜Óx¹îŠÅLÒ2Ìýmd²•}=gõëÓÏ‚YK‡+o‰@ѨëÛÙ«4—ŠÐ*CÚn­4·R¿­A$ †”M›ÒÊ…˜þÏÌîþtfP¨¥³Uô5ŸCt +]¾´m±…ÞVo7{DÇà6Éíþ¨k²Fj^ËδGÇZ:›ü­¼ö ¤`òÊÆqáðæaÑ*dâXÂÈí{auíwœõ®õÁ†é‰ýÆÈçëI¨`Ij(ÑÑ»Ë/þõ‰uþ½’àœSA7IÿÉ‘Q+¤•N¹ Ä¨L4¿Ùl+{÷mÃÿ„/=ÚÖ+.þ×v>”ë‘•ñð¸Óý†Â'ŠV-`M^%Q8„Ÿ-¢½žºA’+·ø;Ç7í ïÖ95cË([{ÜÊ1m•º—ËÁt–fÊ3¶PÓQ7KàÒVK£‡ NÔÿ†2b®²_Y6Åæ VÒ8?ú¥¥âÑÈKR|»×«ÐLЊOY'Dq5|Œ‰ùHø[K¹ïL„äIï;©jãÝgeÃrkãÂx„Ë«çôÊešhÁQ×G*»¬ú¨_t¨ç ò8ÉRŒL»­*ú×%OäA:" /„†cV?JŽÔt¹ýšgüá‡e‚‰xæ$ 5˜öÙhÕÒÖí˧ãâõ]²D¡ _ÜjÒ9g:¼X»5¶Di9Ðøš B޼æÓJÂöÊR…‡Êµ°+ñE#'a?‘{Šl$ÎÛª†§Â . ‘“×Av0'— þ÷R5<ttr ²øÙÿ]3 }÷´Î’€‹i‡$÷†1ò¨@d7ÿþQÚΉY÷È—°zn%«OóðrÖàQ¥Dan)I¢} 3V„ùý#Y ¾/,ó­X(zQ?Ð c²²u‰hT­jV+¥`¹]Üù™E\„F¿“8ötÇ.ôÙÃ3vf¥ÎXâñ¢¶ÈlÑ+ãJb¹PG"6Õ¾Œ_f ÿH· PØö'Á3E *HŠ™,‚H«C¡MÐZŠ“¹«¤§7¸fJî_˵ “jUw9° ó+÷ÓúðŠŠ6Ü«crºv>Öpˆ$ÛÆøÁåf¨ï£Wc…ÞÀÀ´hë7R;*„Æ@ä–xÚ®\e:îo nQilÖý\GOh@~ŠÔÆÇ×}'’{ „y8|_ŒV ‚…²mÇð½ü™³Ú¨’]TŒïî^@äÔÝ.|ùjñêµ=>“é¾-¤#è¾Ý‚ÎA®â> ^í2_naKøVÇë åWR28¦cË̯ó¶°ÏKã%Ù^ÔQ8@ѽxÉBR§ûåRy âg¹o¬8>„ê9ËÎÁÝN‰s—;’éZˆ6šC¸q¯nÏùâ}!óZzO\Tê×Φ†–øÙÓ˜lÀª>®A„¤˜eA0•Ùëkí =ï|fì‘–]3Dѵ¬ò{¦ºüÓ$u=¾—Ö×ö(;ŽÎPó])ò€¢»B{ÿ› $$k;ݺ̧y†˜d6iìÉJÍá¶LmK‡$²ÓÊÜl*AdÞf*?#ã]×Ú`KPmË5=ÚìZªKa×CØ–Ç>k‡Ÿõ_ï&‰¿ßþÛAbÒ9å¡ÈÅxÝmF-߻רš<“&k2)„L’tб¡¨ÂdƒO.ôÖ.÷¯Üˆú¦3»SŒKÓ¥ÂRœpöE v"ÂP¯Ó©%§™¤.ðùж®«Rz}ÚõÔäN:›Äýu±Ì¶ 會ry°2bTiSñû#å®Át¤Š©"‰D¿ª«€/[Ëéýü¬…9‰.ÏÅNä>÷•Ö#V£¶ ²¢<¢Á<&ÖˆÖZç!sÉp#²õ%ÑÅ”‡sú(|Z]»÷Íñ§=L[*‚ÚíŠP£ó§®¸$Ådî8VTQqè&ÙÝÓ-PƸ² Ö~kŽúd†iCK¥#…_WhÆ"ç÷jGwÔÛ]jCsïx†¾Oˆi Év£l]Ûno®ŽnœZÌr.†m‰‹¢/|ÝgQ<9ˆxøåNzZu†_?ÂCÀ(Ýœ?€[¢FµK1¤ÚTDcU6&æ…h”}‚¼|EEïgNÌÊ«µÅ÷cç¬]Ò‚ãÇ[ëTVÍE c>Ï`*~t\Î}6v›Èî)~6¤z™?¦~K¸ìGÇ!‰7úî'ŠcpÅ;öÔ+عS¿€Ø¸ûø]Ø-lN¯èä² m·¤”¡o˜Åó3ÂÄ‚¶ì.‘xã¯f3Ë Å Ïµû–/€Ý˰‡J…È¥=fL®í‡öèÑBÌqÄœì½Þqî0„‘èÖ¤Ü'îÁÜ® Pÿ­*lÍùÆMÂæ°’áZjÚH1™zk3áFÈ‘wT0x­ù&&Øô,gkŒ¶BĽw´ÊsŸïä5žSn—-õ­W Ö˜˜¡-»oü“UWÓö"-ø—âÛžø}+Û!™Ñêœî=µõ´(€"Úê’ù5‰EÃuÆ,  3iv*–ÖL1‹ôV!¿\£ ÇóšÅGÀ’¢¶2†¶š;Í>qQY v[”<Ø®‰¾öuÕ_0°Àf;WQQWŒ»¹w†$ÀÚ)@a§Éã,©õáÕ¬LÇ9xŒŽŒÓ„ã}BÆE^š’Ä:üÑþõe\¡‚“5L>^!±ÂóâUY´^4Ùå·q˨ l8€²¡É3&›¼TDSAwV£ÓúÅ"vÂè}†æ4Ðë±¢óÁ±¼¿;˜H²d=ÀŸ¤f£ãSsί3c]R§¤/gýöù-W…¸ S*R÷mº!Ñ_8»¹ÖúêAe4¤[‹P{”4êÒ<37~­­ñùNúÉ4ÿ¯HpEwBã!Á,ͤì Õû,c!ñÉú{ÅŸ*f¯N®bïAqÂì^—Ì;à¹øCû†_þÒMn¿,ˆõK\#R)¶s€÷õ·™¾%k”'oæQºp•e•(¦Þl´Ã– ”’36rmýÙߣ8fõåk?¦Â,ØR£|`S`FkèM¤É»AUDi¢Yôy—,ˆØ¢_˜Ñé›}Áäù¸°=‹åŸ©ÎoHs;‘²ãÙý›—ÓÃaóÍu‹ ÆÈc¡ÏqÕà oƒ'·Jµìv}EJ'ao(äøë'–{¨…ì~xIÎJ§ÞWJ(§«4 © Y”%ËÝ¢¡\€ˆÞª2wMH•Âñ+W~›Þhô!ŽM¿—½ÊÊóÊdTf²gB{›¡®p½ÛçhŠ«˜H%8UèÐ$]ã¹t¬¡ƒh1MA…0ˇ— ›,»nŸ(Kó[Åi âŠà"ç¡”¢jÇe_oˆÊ~Ô’¾ê_ÐK.@Þ$ÿDš#‘lÊ$9Ò¤…bn ›ŽÈ®}e ;3=‚×»J¸GRm’_iûN€by8ø“‡q@é’¶¼"ÐïYÇ5Ñ`¨ ™#q#|%3òÈ\H¯'‹io‡C)cR³G°á³É*É(ühñ×ß}²ûÄãDySz4îßÎ)L·úCø&#ï–3y‚¸¼I ¿{›ÈAn!¦sãÂ~Léùkè`X;ºëÊl&ÛS\rŸ¬ ƒZ…î¨ìRÉ ßÓÍ[±'r[íB @ªu¯Ä__E;J¬`¢6ŠãVÊýR”höëeW¾”#Ò×ÛͯªvF.‹£È_î{”š{txî_#“²ŒHmB¸˜[rÛÞÇ¥MöüO- $»·[VŽp™ì†ó`Lø?T7­oË[ßVDøÆ=Í…8ðÖB#ßÀ³©ðp ÌÖº¤êu䟲J¦ÂœÉñ…6 «"seCMb¢œ•`cÐë.Pk>…5b&á+¿ ƒ©gÓÙ-\Þ¬%u·Ž«˜p™£*iJ =|sHÅ6„N±„ü»/Û’aRÊçk~ËE€wHzدŸz›KÏÆBbfÛÚ>d¢qOèÚÝ‹³/Dß~E ™Ž”¨ ‘=EW¡F,K% o õ°,=ZËló,Ó¥SC[ôe8ÿÖ¸²›¢ (®ŒÑ a€-ïZ þnýè ¾õû²Âíx¦èfCiksœ&oÝX[餅4Ó.S4IÒû [ÄÙN‰3tû¢×€õÛÖU{ùPÌOKLpa¾ ˜r²@îM'¹ cШŠïS·fä­92?=k{(»-¢c‡k‹7KÄŒŒåÖ{G+{B?ûê¡–Iß fr+Vs9ˆ2óïŽ~»É¾¦­XmÀÔ‰8¹? wÝmÎÈœõJ¥¬Gœì‚¤oR­©Ð%oPSÜgçéÛѲn¤XétHá>¡8³±¨×T¡]¶‰Ò]Ÿ9Iÿ8†‡ì“y<v®ÏÆb©”øù"½lìzt;qÊ|oèbí Qnø­kˆÕ) ¶˜/L‰Ö,³\‚jåù0tž@B :³6j2bëbÕ¡…qå^d:þ¸Ãb¯ï–xÄrUɿͅÀná§Ú¸~ç=ýsÚÚÆ3³Ïó¨ÿ¨¬,®8[¯Ï2ÜïŒ0ˆ! %ê×Úv qWâ¥_:¾·#ÁÁ3Öêv‚2IãëUWpÏÌ×ÕËÛ™Çô¶Â.;˯Óq¥Ÿ@Êôª«»Y©ˆM—$ú–ú½B•Þyß6ÁŸ?}‰E»ŽG>6Í“¬:øé.:ÈØû«ËNJ çü5ÑíR"˜Þ¦8lã—‹JeA™ãZLa̶í5o|¶}‚ÓôÙgfÏ#”ás76m´u"ÝÑ.Ý/ýn5ð)ø&í‚TaLy#lM;¸ÅQ}§éV‘ ¾é9ے²4ÂÓ,!·õ [7?kG£9GÖh ¨+AR„}½«wª¨·rˆyç´qÆÜr‰^zàÀG³W&éù²™ï>Mã£ÒÿΚ'f¯èòÚn“¸å=Frž/Gu\7×Ò¿1&9’áþ[à'tp¡|×Ù^ž#f¯²DN£Š#~ˆÔö$|nB…âz½Y\¾æj§±_°ú»SXb^êÆL?íg$nM¥úwÓ&©Ã¼á»5G¨#Rº/Þ*>xD;-DÈЕj=Ý?:oÓ<‡8²$<-§öϵ-ÔN¶În~\‘iþtÛÐÿ¤úƒÚ-bAE÷‚*ÊÆ4«%èow–#®=FT5̾aÐIO+° “³N‚ö%xNòÎÀ7µ55¬îqq+C)Vì_ <Õ$è¡ùجÈO~ËóCô‰Ì¨ˆ¡|Â[-âÅCÛsK¦Ž\ ¼DböJ ë”ë-$ø_t-÷±¸ÆÖ}µŒí®…˜N¤øebCoVxhŒ‚FÓŠzž˜s×=AÙê(õ5$ùbŽ%Ô¼µ@WÕvÚ4v–R­ˆç ÆuuÙÉáäpëÑåzb,î†ä ²å6#·E r„Îôk 䕺/³Dd7Žz²àæß¶¢h¥]DÚ¥©¾Kó¯qU›ø‰nðtývµ•Që¥ÝMn…β§·ÑUÒØEy›NÔÃ6t;q2ލ;B®—ç®`](G5y íG9èÉÒQ9]ü•ý´¸ÂSÿkt¸ªŸv[xò²4Y ÁƒNft?é»È´’‡wPMy²úÇ©ãP‡·ei«—èõUÎçr¢¾Ï|“³O‚Ås€8‚e/Aw¿Q¨Þ\WE8&#–>øeö]äíüO³À—WDT Yw0ôl¢‚O³ºŸ¦Z—©fÍg[}´ŸËíåØWëBÔÌ EQh"ÅGPägKÉúº¤–½’ñd‚Â$¹y¯î3’=‚cîLJóR14bž Àø®Í;ìÐÞÞ#é §~ ï)¡Ì”¹¹xh<»§]p€ž¬¼ôE@+“zmò¯õ^vŽÅxï~®Ù­íMrÖE/œJ¸úâ7 h[˜¶Ëžìi,î_ïc¹Ð1´Ð4E‡³ºö,L@©Û,‹Ü‹ÌÓ¼Wi¾i $a‹ÐSš:²…àcÚ¥\ß"½U4&„wËÚçŒHaÀG"Î,@´œ¦¨$wØUbût[7åJ·O±mù߇Hzª"–ù2ò|6.b)¤Lž¶´8× |Šÿ®R·ékƒÜwýUù+%ØŠ¦Vʸ{‘jd†~A:%VdýOJÿKë~"YL5ñ£'ÁµÍ§G2oxßy².„=j”(~ž/)‹%2õ–šŒ·0Ž(WÊö!˜ôAàAóf¡9ó`§Ð½•/ÎEéF¦¦( ͇e €ãï[¢ƒ­§æVCP”ø”ôOiÅ´RjWMìhÈŠ8’„=*–_;”ÎÆÛÛéVZÚö4¹4¤ —_<– 8 ?7êô ö–à©s®J6ø¶FS‹ & ð>2çÒ9éx.p¦æ$ìº os‘änïÁÿ°àõAÝ…t$á´LÓÑtÛ m€ý*ç'’7‘mîú¦N1Àê¢ïÌßÚxB[#¡5É1‘\¤¿@`+'œT«¥{‡Ëw4™îÏ”fš\1Ö,xàcÃâéøÖ:(d¾Ç­gȧ‡(W"š[PЖ~ JaÝ iª„"ôÔGâg­¸ÄWfô}P>&àLv ·±}¨}ŠÓ¸úõäµóíSƒ$½Ü¢Ûõ37ÿ…ýý8iƒÁB-HÒ$¾WY5õ«`EÌ)‘žšð÷\ó#ŒQ'oÍײƒ8Še‹òù9¼"ù‘€èBPbt…;`Pžÿ/‹ìæ·p)y™²ú˜ŒÌõß·ú=>!“çg4û\GˆµO©©9ÕꊜyW¶cYÐtXxQöÌ9©è„R/”ظ)©JL¹ëý‹ íK‘Ì8G4…Åä]Í(ºš¦Ö³þÙÌkîñ„‹Û½±9¨Nõ)v1ôÌé¼?öެiœG¨ùž¿BŒçrMÂ5 $%÷¸$#ÞÇ·Ù€ÆN;;Ú"ÒM לF±$·á’…¦< [¥¶7‘ñUÿËœ,ÿŽ¸Ý¹Õ1I—Ñ!IÝ -Îý>Æ8¢öxͧk€‚ÚòPß_DøÐjË©•úi¤ÜX"ø´§Ü4‹-òa¸_tàk¬ÙØjȦìžc#(Šoj?ƒ17Þë¼úÓ|áR7ü¹\Þ†ïê@Û!Lœ€uùBóA0CiHS2{K¢f°Ë`¡o\G!l½0& f’• ò•Æ}QöT(8?RLïí)Š‘ö2%G:ûBßÐÀÎü¬ ëMÅÈ+ ïH7´öÉ&¥Ù&Íû“eÏXUÚŽq\Y×ËÍ¿Zø/¨Ü9px€´è"i‹w#4 )Ì÷[”„4^&¹WÚ‹œ‘ÌõçåÌ_±-ÛO´Ô⎠ܙ>¥|ÝÓg<âá'sûƒÞd“Ù„løïY¡&Ö³†X 0K`¡HT 0\.Ø~ÜMséû¯­åþbX€Þaw8ºìXЋ$L`ô®Ì™]xÿÀÆç ½\èc¾ÃCUrôpr–/}µˆ¦t¬xRXòã\Ï1 €ÍÀVæ™Ê¡¸z¿Šˆ^[ν¡ïaõáQý}ž¯ƒÄÕ»êÔcïø Ø; c!:)äÊ7·tR%í£¢ý|óçÕïs"ú‹ù™Eàë9BÑÂ. ®ã Ü|àZl;ýL™FI­ §¿oš±&¾î8J=\gúäò™,‰U›ßû `Ýwí±Vj,Ù0ÐI±gõÄfn_§;ùJ/øÓi©H€ã7•"¶lœ8;¤?*W׫à5ÆÐcŒZfv¥ä >FÑž[™p`Eh's “F„¾}£`9M•R¿ñîÛÄjõÓ1¤mP£_Ýýœî6ªöcºˆvÍ<§ÿÌê¢C×xàÊžMÙ†_ï7¥ ƒŠ,TÄ ìÎz¼Cíñ+«z’|Á6_lÁO”³Åù„Ü#{Lž¹Ø+‘N!ÌÌ’›51Ø]-ƒ\^vêãÁ e‘ೂ´a”¦«¾¦§{=4nkåeÿpó…ÚÔÚ2:Úo›ÍvŸôf­D™$×eôL˜˜˜ŸU9' C桳z¿/6ªT–1ç0¾Þ25Y•îF ·ÝÑ‘œ‰ÂÌ›¡7ïZ*Ýå£× ‰ˆi·Ü‘Ì(ʃö+RyË™R«²åY0ð$é‚ ¤4eýdíÇãwüE6¸HÊ9­¯Ïšz d¦d‡õBÈ"Xm0 GůRžŠéêðšQ]f-JÎ`©œè²Lþ™¡‰âÕäpaèa Ñ”Дϭ4»îÁß0…ö{åömòg…NP7É#ÁŸk¤¼ÄCçH½¯øú@c>ª™>0þC«†¥A¸¾¨ëˆó¹ø"›†c=¶¾_›±×6ø$_˜Ùq†áÍœ;&±N…æ÷‚žšµrØMBŠ^Áùä \Ýòˆ¹hØ;ñËÑ&üŠžÇñéÜ»Édž”ÞŬ¸ , ç¡É…’¤"ð7ÅF`ï/ë»1퀸0lç7ëÅò}ºha¶kEã@#‡FXØ?‹©¯ç|C¨iu`‚Ù*GÃ;P6mx¦­ÉÄÊDؼ•¢/8‹¡Å­nny+¬SèØ2è ä¥K6ËfC¶Ê9½p[€o‡Å,,Stü„¶-ÎûÉjõG_¸ï:‚k^¤ÈftÛoq3¹Øß `Å"°ú¶[Ä’ûl³š¯Ï+³\‰d " Fë¹;ª9úï—¸AyÝâ³§­,Ñe“› ¦!]ÇÚØwCÒ+ÎbÏÇ„%—~¬‚ 7­ìæ¢=éË´g¤È0*êI8,~»?ƨB. ð𠇾EJÎŽ^óN 6tì÷ó†Í]™åµjµœáÖ0Æi/ jóí„w0ù0†àŽ·¬â›®V‡!§=€ Q¢æCˆ¯ì¼#2а'œdúRþÕÛ '¶ßŽZ07/ÃÛ÷c‚Þç±ZÝüø1~´N iÈ,É;¼M’K QLâ4wè,YîTºÆ»7ÊœX1Æ]çEnðôD:ß6bâ32‚Ò=[[)0Iù´±·Vc¿fR Â÷)5Ümç˨±¤½ S¯æ¨1Lů¡ïOaچݔmôÝÔGç‹÷sȯ,¹èÜÞFb–…q?¡ÂN&å„q³vŽ• )˜×sRgü/äêïØPAq|±¯›)cÐÞ„ U{cÃR"´e+ê‹øJòöÔx•íщËÊbøM‡ï¤ÑmÅš{Û$¦¿ðõø &J`›  ƒ3¹uQ GU­ÚJˆŒdŒ6êà ÇpÕ€'ËmU2džÛ(?„I/¾–^Ën:Ûž&*àU)ÐwtÏiš†¬1º¦W…Žz£¾é‹,à·§©Ùaåá%]«HVÁ£Ñ^š+´GeAò l·jþF¶±í?J«Þ.í­¡¾§Î¡oj‘4‘Ÿ3õ©-_CßWdÕ*åÜ›Kkbm:xwžÊŽžq:væç¸/ÒLüô(ÛþÅÄó7,|dÃØ—³ÐÕ+”iÓŠ¢ÉÜöt|_?¸oIv„GV’àKÝ¡´Û‡ `Ü'µö÷huWŸzh¸ß:…3ÇËÂÿŸØ'ý aNÜ‹é~•®kw¤ô¤|¶& wƒG϶^ŽIá‚NàÒžÓnÃô‰ôy˜® ¹®]ízÄÕ _‘£‚ ‰Ðýµe‰Úe3: ŒÂ}〨*81ËB ¨ÌïòÃ+ÛQjl@ˆµk;r¯û1Føùë­|<þ«O¡Õ‡Õ×ÏÈp·[Ò¹šD*↩—°‡È„× 2ìsÕtÉyîÒ³€8ýÕ5–¨Ênònyù»‘ÿ­(¢ÿJ‹RDxbWÚ/h߀bãÛÓ‹±6û[£¢€B8ïÏ¢h:Mζ0TD°?bé¤/7ß·AÄ‘>½«Ð~ÆËI"©òû˳_X YI…"íü¶#³ñ.SƸµz¸4™ ÚÊXÑ0Tdõó •Ï[Ø$˜Ì¤ðΈ @Fæ’X+ìUû H²žÝ61ĶõÅ8ÙåÕ‡ËrüÂ%¯NÎUD'J!g`4\rcªK»iN =Ëm6ÂçcS+×÷µ+hÒ &ÒÁ.úÞ…t§¸8Q'€† œ”:#ÜZÄt-Qî9< +‘%……øàc|>^3G:þ t$¡Ð‘ 铬¯$7KV°-óh' ý£ÂÉœg,[fŠK-ꟛɡkǾ5›§:iz ü¸\òެyÿÌeäfán¢M x…+¦¦kÁ<úÕ/˜VªRb&¼ùéN!²ü¹©aTÝÜÐ5 ¬\^mQÌ9íáI!¢çì±§¨Íÿ²¤ª†ëŸ×Ÿû›‘Gm0ÔÙïƒWßß `Œ» "¾9Pº‡z#Ýç ?£í#0[²8%òILHè=(¦EÌW;®ܹU`º¿Þ!dDr¸ñÇàƒxµi¤Š£YÅ¡¨ŸpE2KJêÿF¤¸Ìuö3`[ãº^-à%> stream xÚwT“ë²6‚´ RD¤JD`ÓIh"½÷^U@I€P’„Š ½)½7é*½ƒ(U@”ªt"EEéEàuŸsöùÿµî]Y+ygæ™öÎ3ßúÂ}ÃÐDH †²ƒ«£8!°0H¨¢§§A 1aHÀÍmŠÀ¹ÀÿÖ¸Íá,…”þ„ Átª¨‡BµÝ]€`1 XR|KŠ‚@·ÿ¢0Ò@UˆÔj£p,€[…öÆ q„<¼P> øöí[‚¿ÜJ®p  Aõ 8G¸+!#â4AApœ÷?BðÊ:âphiOOOaˆ+V…qçz"pŽ@c8Žñ€Ã€ç-õ!®ð?­ ¸¦Žìoƒ Êç ÁÀ…  Gb .îH$dšhé Ðpäo°îo€ ðÏåÁÂà…ûã}üå BQ®hÒtÚ#\à@u]aœNAÂÎ,Šàñ€ \ vÀ¯Ò!@u%# „ÐáŸþ°P à c.ç=Šœ‡!\³¦‚ru…#qXÀy}ª J¸wo‘?ÃuF¢<‘>Kö$Ìþ¼ ˜;ZÄ ‰ps‡k©þÁT€ëà8 Hê–˜”î„{AEΘz£á¿Œàs5¡?4 ´'´÷CØÃ ?,ÄÄaÜá~>ÿiø§ƒ0´ƒ; €G'¨áö¿eÂü1/ %ˆ@?0tþù×ÉšÀ0 éâýoø¯‹¨˜ikê« üiù_Fee”ÐGHL($*‚AâRÀ[„ƒß?ãBêø_-¤= xì¼^ÂEý]³ÇðþÙ>à?ƒé£Ô…yÿÍt+JøÿŸùþËåÿGóó(ÿ+Óÿ»"uw—_vÞ߀ÿÇqE¸xÿA¨ëŽ#¬а Èÿ†ZÀﮆpwýo«BX%¤ÒB`qaøo=«Žð‚à 8¨ãoÚüÖ›/œ  7Daç‚ô_6–A ,›¿M,aåp¿y.à KõÏ:ÔPì|ûD%$ â Ÿ I}À„5…Á½~±("ŒDá.@BÏ~@{p>h ) š0ì\øGl¨;CHþ‹„ÄË¿Ö÷‚Cã(¨L°SupËA¥«§Ðò ,éfêÁQ¡Á‚û¸.µa›…x“¬ÌIgê`õûNmúÊnÙ³¶}–j8j½Å÷„8ÔW8ìbÇÏö.Œ&øì³qŽÓ4=±HV¾.]Œé"2d¢m§T€9t™pÓøþUÝñ1Á“‡¡Dý–vH‹~k{eI¦.#Ûmó/ŸŒqMv½¦Ë;Lå|r}´m‘¢ŸÎ©#Ûzˆ÷¬ ïéë¦ëd¨íñpù;W(ŽNM¦—MUœ¼Â|:ïòÏœbtz;+а®çs|ÉÕú[ŽK[Ö7xÛo9Ú&ÚGƒ¿àÙéÐÓ Ê©˜Üü•HØTvIC|Â>Ö¼# ¡ùz¶ì»³vXˆŽ÷ähÇÐüOw-ËwÝÁ¼‚zñr§¥K_üê¸_Æx؇7ÿU™L·¤&À˜É·îg”×Íå’5½Ç2j!j)•êØb*_4};¸9à˜µ"µÜì²HÝçò»{>xñÓ¼íÖVežI·Š(d }4~¾fÚ7½àÉÑ&XäM-4­*Zï麰ç[áµ`­ÛãŠ*ô+÷¸J|ÿ@÷(% äÈ~ºÞÃ$ÜÁY6µØ¾{½”8FT¢Ÿûüh'ñm7ª…H àQ}´?Ù NêеxÒg†WėÛ${òº¨ˆå'Ï~È7§h‹»*NŒÅêÇ›øz}Zò›—èoÓ-„ Ü—ßé%.(Ò8ú ]™â}DýÁ¨7h-þqt‹ÒüNSNßHëè×K-%r·Ÿ~ÎÜØs`eÙΔ»ÌaÙjÃqfw†²¹ú]™Í¼`î¨ûa?yý–'ÇWfâ¥ú¬Œ×ó­5Ô=u¬A_pb÷&Lt«É3ZÿEÙˆ¦ü®ªßîwŠ©¬¸®»I—[¾ÖVî•9”\&kÛµ6ej?ƒøÚ¶:ÆÛ=à{åy7hjÉrJü^}‡è–÷àJª#³ICHé?zô©Ððºýø} äxÜÐÅê"Ž7_Û^EoÏ·±ÛÄÀ+jø‰ñ¾ÉqIá†Û|zÒ2”CMÍaÅÞ=~ìœ+x?Ú.>ý;¾¿‰BÕ"n£L¶¸~…”~ú¸{ð¼)04I7ræ‹E]µh•©zœù<‚¤ÕK¾ÏþƒfÍ‘%‡µ©ÚÞ+§tãÞHcª¥%Æu`z*팋ÔþÎt<ºz''#Kó†ùþt ¬þF}€ Lécgúr Åž,ôÓ×Ü2ŸÝá žðöv@߬ۋ}EóGûßêæä¯L.Õšæ~ìE}3öLY„]Ï€7mD¶(#šWÙÙ^11zm¼ìœ†[™¼“ÔÌy+`Ë 8ƒšk1W’HòÚ`ô8"p!°€€ ™gú¡¢ÖPdaO|ûLn“ý-&í…‡÷T…ã}þWš:U¾V;ïFx^©cÑÛÈä¯ëŒôð~Vx»èZe§$¤¥–î2üîZº_,‰äSQ? Ð7óJÆÁÑäS"Å’íþý -gåøðîS—oòžñ³wÖe?iÞ©ì¾èåAÿòŠ_À’ºWg†à Þ:¼³ª‘±N¦¦çòšSAcg–3Õ’>óžxÙ™øaÚÎ\Íô™“†­Ãp˜Ñ³ªjJÞ¢Ï2ý•FÔfÁ*h»Õ·Š2*D·ák<ê–¼Q€¼Ÿ!‡±‡E ƒL1¢È¯©-Í6;å!ätÃö³ï‰KrJÜA3ûq1Î"ñå<»—Þ —Ö}¤ ¬šÓ½k~ï™Ýñ;Ù– ÷'FyµQçê€êwºÚuc[ëžôÄ™¥Tîe,õÂ\ŽL5Ùz‘çÞp³îØ¥‹Ó™‘¨1ŽA_k`…uÚÒ +¾)pF¿œ'‰%QcÌ ¬X*,r›X¦gHëÂú;u|"WQk€ÙGb—ö’^nó¹ì”Þ€jO¿ª‡šš"5üÜGSvIÎ ?ïVy£¼Þ×;•Kñʯ6y™Jbå]LJ¼¦Ðœm¾úP»žùú!™G/«3$$×’?=`ŸZ@ŸòÁ^‹ÆÒžYŽXžQl„»åÇÓrÚ·gåõ¼¤mVB÷nD3_ÏÞÐîhò±aŒöbëØ$öò˜2Ùéú‰ÈJ8ÓaÚ—3òÌ38½Å(ñ3ü&«tÒÁ<3F]C…¸ºž¾kú*å+&z{cˆÍ1êIù¤ËtÝïö×/-ÿãÿàtÓ¢#Ku]j5ŠkkÄw+ûFƒzä\ß@dã)ËÚ¤n‚ŒÍÌ(Y[‹«¾9¹ãn/ïG&FWc·Õ+ûùÚ–Lñþöã´$·“ŸKÖ|ºf>Êñ÷R½ØxÊf"Hª~¬DAµ=®4Ú5çíÂûpQ÷BÓ;Ü‹\’M³Xúo_V)Û™Ÿ»*ó3Çš2ÜŽRk".´0pšLMS©¹†^aº Ñ$»ÎIa…/8yM+2Z¹@Á¨*•a+s^©­‡ÙmF ª”»mwð„žÜ¹²¡•ŸÑ=šzóÒjªþõÃ7gŸŽá([ø…f ìZáË»ÑòŠLû1•Á«dUOÇ›,H÷С£ÛÎdyAƒ½J¹´¼ÖzKÌèh(iö¦cï– $U¹Ì¼{ï-ǶSr/¡ÈŒç:}Øý: êw6‰D?~©ôرƒ¥ ynKªý6áÔ9ª¥i@CÍq”gUájP0ÿÊ|9«mRÖ¢âí¨©(+E݈iе1Žê ¾­â/þWûf2¡BjC,Ë! ¨¦vŸfÚ$–*Ú~¾Ml•þEÇËM¬£pþ ®˜½,c-ö½ïÅîpPþ€ÜŠZœbEs¢ð¦èýyLM¡t/»¦|)|uÒp`¦fT¦bÿcχ'Á~®™kB?êô”ñX[¬_lvôÄI¶Q‘Á&Û"Bœ’½¨ÞLc¯öúyŠË·¨YG+ [» {ëRé \¼³[½÷ÍÄ®T¸¥×Žîn.n«r>?óh‹jÜu:¥#ŠQHÍ9šîWbiX‘.ÁJ·Z÷°ÊhŠ–‡¼¬Vpi«­†2Ð/îïÜ€SäO­ áÀ>аˆôÄÙɆ&%LŸ8‹,ûÌ‘­ %¢2s¯?~ÛM²ø¥PJƒ›.=Øòf£»Aï‡ôHÒòä5Ô$`ƒUâÆ³øìfPRä§IÅÉõþKª”#7¥d.=x²U{¶½Èžs½RÎAå{^\màŒÂáêÆ<¹LŒuB ÆŸðO3¡"B÷“ªc{URåé- ‡GM©‡oX¥i•ånsí’ÿèÙ`âÊàoŒÛ=êuÄÐìޢ䀗ʬö_¶è.ùïkœ‚ÔR)‰ fÁKõ…1^ˆÊHógn—â+ž'–ÑŽ£?;è_ðô¶ž·ÊœÆŠº¹~;UÈþX¨S´'ã³»kÚ$þ6´=çõãbý¼ÍQÚy²VçùNؼ×+-G5¹ž âðBëxk Ð4¾Ýºù›ÖÃ㯢3Ìå7© Ã.¦®wYRV¦Æâ¡î'ÞMfÆÎó$±„7’º¾ÖçoÛBƒ}[îŽæš¿ìâ]ÃÏ­»úx¼|Ô¡ãÏø‘¥%RM«`‰§²‘Á9Î ed­‹³sדª—n¦1_:˜ùZÍrDÉ ‡·<ûÆ¾Š›wú=¨:¥É)ÊCš*„ޤÒÙô¯Œ°[Ü»!ç®¶m´–˜BÁ»¡*+SãTÙÙ×p47¡µ|(Še`Ï«Ÿ;VªuÕHx«oÒ íýÙüC/:³xkLåÑ}åÜ…¨ÕJ¹LìmòC¦‹[¯¨õL[š>œ5Kg5TÃþE¡x NÞÿAu?&uë2ÃU:[C“39™3µÃÖŒ žíˆ|Œ—(%—å‡h¯q´X+ÑÆ§»fOJÝ‚Hëø‰ms1À§ûJTe fRÝ=]¨X~4öÛ!µZáž‹s±"ÒH`{@Æ8.™!êý.´‚1x¢Þïú‹Uµ:æ¦A7ŸK±,Dg'¡Õ¤[=û²²‡Õ ôT 9¥rZ»kÅÚ=¶ßß$Þá3öÚœ_‹%éô¢”žt,¹IѬªÉ¼ž3ê%†Öù¿jbÔ.¼´Ú¸X(ív‘±»×Ñ[g¦öT]FöîYÎûŸþ¾[Ïæ(Gé®ì˜Š`ÚNŠ8*6•:íÖ[zòk—\J¹]ð; tˆ?ös‚ª¡Š¾¸ŽUýÌÖŠ‚ÚÍÆÈáý$Îõç›39;ñŠ&¹G¾ÚT|g;šVYÉü‡=ÌTeùú“7­ 2N ¾%½ø_úivMã}Ý«R¢†tS®U-½½ï(¢t)Fq=vßʆ¶›9r¶’,ݤĤq8ê+ƒRÎ}×y«d²v‡I™9M‹9Lá×eä¨3.jL=x€—¢½e‚Aó„VsE8ï.½U\¤¨+J‚è„¿N¾Æp³¯î{œºcWñézÕ%œn˜ÔP(¥/Ü÷ÝÈz«Áu¾9·÷Ë´êI8Êdƒâ|9¯êÂæ.Ò¨IêE6+]rg ´')÷—C•ü˜žXQ-xß§”ó²‰~õÜŒôÅãö¹'’aNÊ“‹R ! ÁŸ—UI_ÄűY>ÚñVMœh#wµ(²¹o9Köõä£Ó²§)ë@@ ¾nìK!aí,S4§X¯’"ÏŠ·â˯ŒŸFŠ‘…·'£Döã†X¨¼¨’¶wùoÕoj¾³90’Ýa{` š‚L/ÔL9I¤Àî`’5UÁœ-з–ݼ‡e{®/xQÉíez„_ü©ñŽÁ¯ònÓ7<4mt§â‚ø‡«ùøo©nzò¢…CÔÓ §˜A9‘*š6°º©Ÿšõ±'sÅ&ÜlxE•ê+T Õ¥½¼Skz‘.çÞ¿—ŽŽ8óŒU÷ˆ%ôÖha™†À½öþå誹ȶu¹F ~ž@Ó[Ï¥ü„ÅÞLžïnsIz-Åqµž£ºëe££öqCÑ«\¶<^§˜3»e~F9_\4« t8Dßriج¬}‹•5oö$*í'î?áàçx¬Î´•"TÒ1UsH÷’ê-œ~^+%¡U{pÜÇÓÁðð#YwqÁÁÝ&aPíŒÐØâ¤‰­Ê%¢‡·Üà¦éŒÅ²v…Th4®ºav¸gja`Ê6ü]\ØÀ‹Ë+Þë3ÝGw™sKû¤t4l¾jnŽ£vðEAßúÒ=d-[StjZÚ~Ž›^ôüüëfZÚêøP3¹¾¥›À#mq7²³%-¸èð¬ N&F¬CžA­x,6fõÍD_ZêI>ã_׊æ(Ìfù–Fí¸‡Ž'QÑ ©«ò‘’Ô‹=þ|©”ñ€çO{îxJ¼áì_ðuN+á…3s‰0Íj?oÕ jœO¸Þ³û*› ¤·‹ºéˆ2]ãîÜZ¾ dœË+_È?xD9\ò¥WT"ܱeu³ÙWKXÂý•­‘aþþøC>ÛOSŒŒzê×x’ï‹'H0%ÕÜ/š ~È 7W g§Ðà·Uxk¬®WB=ßp:6à°øhÝn?9GŒ$9%j•èÓÀJ šâ¾êtnÐ[ê¼Ý(k•Ûë¹:ÿbï“\»a±1Œ=R»Zß­Õ´)y x¬eúŠ+,ætÐ;c"ì[ÂÍd4¢iåÌê˜mÍäÂ35÷D½cFºé5­AÁ×ÍÞHŠªÒ%DQtD!Ü|Ää ¦Å =¯„“ÞNÝ”#¶×0zþ#é°qЦ¨õ-/Þ/ÍâhªrC©~6á‹ìÙØ~;ÙÝG5ÖºF¡ Mþƒz¯IåáÂB“¨g#WOU˜Ë™i.&?épé£Ýì²òg6¸ÊåÑJV-L›t£8õ<\Ï]…p„_ú¬ªÄ¬òoì•ãsË‚&,yŠºxÂÚÏVFº —Gõ°·Í¼/ »Ö9X¸Ñã’hî%¶kšõìÒ·®ž…ÌÎ?R+‹’Ž3y‰ô¾†ðô5Ö;ŽºªÂ)Ëày‹¨û0\æA®ïã³Á=)d½˜-”*ÓD/ŒRd›L×}T1è¯Î6‚þŠãSÊIÞ"w¯¯ËÉV$Aí²–v–¬3ô/äQQ‹…§¼‹âº |æ½ • §åšŸ\£û8ÒŠ¢AöÁ+}÷h³¤Å®ôPnÕ¹ç[²|2}u^c(hÅà>¡Hý\ÄI-u¯fïf[`¸9–Ç£x«úãUCαwÅ6z5tz0#KÞÅiÖ²¹–Ñ÷x̯õ0¸×H’“ä3·ú…æÑ8M¤xmL}³ù±Gv endstream endobj 212 0 obj << /Length1 1398 /Length2 5888 /Length3 0 /Length 6843 /Filter /FlateDecode >> stream xÚuTÓýû6("LAB¥a”Ò0º¤$¤[’±ml£AºD@º;%¤„$DAB:Dº‘þ3žßó~ï{Îûž³}?÷}Ýõ¹¯ë;NV=C~E(Ú¦ŠFáøABÒÀûÚÚê a ˆ€0€“Ó‰³‡ýmp>„a°H4Jú!îc``Þ¦ ÆáÚhPÃÙ‚Ä¥AÒBB@a!!©¿hŒ4Pì‚„µ€h à¼vtÇ á¾Îß@.7$%%Á÷+¨èà !`PŒCÀð!`{ !‚„áÜÿ•‚KÃ9J ººº €°h \Ž›èŠÄ!€0, ノ Ô;ÀþŒ&à!ØßC´-ÎŒñ{$†ÂâCœQPˆ¯4T×ê:ÂP¿ÁZ¿|À?— €þ“îOôÏDHÔ¯`0‚vp£Ü‘(8Ðiêªj àÜp|@0 ú¶Ç¢ññ`0Òlƒüj TUÔ‚ñþ™ Á qX,Òþ猂?Óà¯Y½vp€¡pXÀÏþ”‘ïî‚–û…vEyþ}²E¢ ¶?Ç€:; £NÎ0uå?¼ ð ÃÅ„$%D$Å0' Ì ‚üYÀÈÝöË úiÆÏàíéˆvÚâÇ€y#maø€'ìâ0Î0oÏÿíø÷ ¡Hhƒ#Q€²ãÍ0Ûßgüþ1H7 ¹ž~  ÐÏÏž,ñ ƒ¢QöîÿÀ­XPMOQÇÈ”÷ÏÈÿq*)¡Ý€žü" ¿°˜$$,”À?xÿ;ù§¡bÕQ¶h|Äï~ñõwÏ.HÀõG!ÜÀ'ÓAã© rýÃt !1!þ ôÿÍ÷_!ÿ7šÿÌòÿdúw¤êloÿËÏõðøÁH{÷?í›x,"Ö ™˜ù™-þÌ*;­jàÛ\?Ò3Hs4~e¶gÁþZkÿ®4v/DiÑžÏÓІávI¯ fü&Y°êìwT<®¡kGõj DY·ŒŽ¼½¤æ icäàx¬ Gë_í + €Æ¦êmý1ð–Çg‹êjà 0•ý“®DÜxQÁé™t_‰Ä¬TÜÕ¸ø8š¹­(/A«ZùØ(iFÚ5’,]è÷¥µ= 'Åu%÷å/ Ë&5 ƒýd¶³ ·®UyôãŸ6÷·÷Fš¯O–l 2:T µ-_ò£®ÏÈë¤ë¡ÍÜ›Ô 7¿Ç"ªBªÕPpgítž<¼xGBüÖ¹½óše®RïI¦GЕn¾l“³x%lÎ_lò¨q© Õ‡_ëYoõ›Öz.±ZÁ½Ê\f@žþn"1”åïb+;²4I—jæ!#Ó] .¥te& Ú<°Ž°…€Ù2š?Ä‹B¬\éI¤Tj°À#•Æëý$ã>å—š 7 4U[¿Ü\ݦRO”iƒÍŒ%ÈæZžz‰¿ZT9uŽçª+è^®Br«4)ŠO†=•_ôñ?Ÿ¤•LfÔ¢æ›]ôªc¿#U˜F ˜ÝÙfˆ™è}ž‹d€ó?ãì÷–ôñfµ|ª/s/Žs¬ÕU{@RØcsË+aÆU:¹•hû;®’¼®‰\•,iX ŒÐRìR’l%ªux1dûä"í%q‘Mê’†ý|á“KYfØfÊ$£eí“7ºQÉk.a+;zËÊ ñêTLù‰ý;„ÆÓã’ß®Q±ðV·z<ŽàìDô,2¶NÙ|¸ÉNóÕèŠs=¼:l4ö`Pxo-W™©übÂ.—;œhøæi÷+»>ú ?ɅŶÕÎSp.—‚wn•CÒe`aßP³èÀJÉ^!M$´ŽS£Í|{º¿Ø1‡§K‘ ‡‘šügã ÝÇwY2³\ Ð=ù¦ïÌ€|…Ç0³Be›¬éý˜µ©€= £~BFǤY œ0GF·¤¾BÌÑŸÇÞÖÅ–LUTÁ}N^4š\aAT|ÕÈìå~ÌüÊ“4¥0í¨l©3ôЗñN©eì‘ Íníï¦]/a& ,Åå^/+“z`[,ï;©®ˆ–Þ_`Dyé²…]søôp¥'µJùú„⻌“žUf²ÝÜÃÔ‚)©Æ±¿‰ü'»oíP•ñ^&!®–Ã`#ÞqÙNOMUyI‘+PNqÅÉúÇa­hNî23µAšÔÙg÷cß­Û]ë£'õ>)ÁÒ§:¬MúñžsÍ£c`ØD%³LuŒˆ%KàÚ:ƒZŽ$nþ‰þDð ‰N³Ø=ó¡^Ç$céUßEƒ× ^q›ºí6ÆŽŠ]ŸÞ÷½æ¥üï9k-ï!ú ›>i²V´@‹ÂÛ’ ¿˜ôUŸ9](Wõ‰„ÄRÓ(o’|@"Δ¿‘ïèùíŠ9KË̼kî7×¾ìLƒË8Õ>×ða<“Pb9^{ÞÔT³s®çé^Å  VWs[í1ÍM£‹MöÝÜØ½|‡¨:ìšÇä`Î @n]êz”(¤Î8¯"u¡ÝɃî:˜L7HkÛÐ1WÎ^V¡¥÷™aó’X ¼BÖ¼eÙØ3ňè¿Ð’Sº(âT:U‡§O™>y“²ŠÈçi0Bê†Ú OEg½K×ÉTÍSÑ$ù<î« .Žá~‘ºuséè©%UcíñƒœÀÝ…1UѵÎú½âï_ˆ® tâ JŽ,j‹ Û]Íðä⃒µ·ópÿ»ƒ7–j]¨@ªöb©pTÖEÍFN_çtà$ß`Ð øÞgëa‚•ýI¹´òÖ ÷ã7r×0—oˆÜ¸eÁaÑA›5ÒÓYyP£±Aä}) ~ÃiîªÂÃw6ésÏÔÑÜ|_+Ôç3„<’||/Zý.Ïô ‰!3ÆÉÁºt‡d#Ìd=Î?ÜpKTXXã-¿¶ìG5ªLº7vÊp©*rPéÙ©™˜èNž«¶Yñ² ┪ůªjvONF)ž÷Ò_çpù!*&|UÓûÍïa\à¢[QV oÏ„âEú\ñØÁxAœ‘ÎGrUvƒöúšB=t+bÅ­ƒ…·ÁHÜv¢ÄDýfýhc_,!B©ï¢«ÍÿÕíß=»eê>Ðd«j?ó…ñ¹žnW˜É»\¢–ZéýñKk¨’"žˆ¬°gÊ%±w õf[0Ûõ^ň®|µSu_? (Â51ÿzkEƒÏôW×÷ùêa|f ´m-‹8Rè JÚ´¥„ÍÆR3áüÃàìDØö€òÉøb¥[.êÓØÊ–£E?h‹ŠkoA€Xc\²òfVÅò¢Ë^ð,ÆæîZtm^q¥MY´‘{¬ç±¨|#—òÜÞ $ëÇø ƒâ*ˆœß­½SR3èa¹Ý20šOûšÆh£ã{n7°}ØñéѨç†ÙD$ÁŠq$‹ŸôÝ)âÔ‚£²ñ;G/òï9 ŒÆìRÚ»^Êóèì ½ÿ*öá„}<¿9Þë[f¿sL«Â^`-iw§mf—Ù,'<@ÞàÑ{ŠÔ ñô+ì‘»ßVùvåòÔFÉ,(Å*Cd¬gÝ),¨¥V¤cŠWÛö¶ 8>öòSö) ïGÆp`V¶O*ç>&%Oímotí g_ra:#¶2µÏ"Æ—òê 9æžß7øòc¼¸K‚µT¿“Ü£Á»qaé÷ ^à<­kè%ˆu“mߤ5ÃzëŒCvè ÕMNŸ êa€úèá¿À ny@‘ŠçÂêØ ±í>—=³{¸ð†râžÃ›Á ¡­ i¸P·½èJ«6F[ëüÂZöºÕ«b&ÛWU=ÑÔ“§BÍ}k--_»=ä .úHÖF´ÉüŒ,`ZzWM<€Y¿wöܵuØDxè†Ù=@5Ì3’6S”Sèqvd S“K…°¾éOèÅ3#|íè’VH^ñ–«.­kk]PêwG“ÁÌ@ëjêàˆ@I Ùï«Öü:Åörg½áù /®,ßOx˜ˆÖÊ×éÓM«ìøx™ó1A@лó8Õœ§3GvcÑ‹V;:4{‹ÀfÛ×yÄHœpúQ=ÈVÅ©ºÛ\ñmÄY„ peMÑÐ2Ø48#ò¸¢d6­°c-6RÌõ˜*þ¾Çû‘RŸ%i§sÕ‰G«<,ÏLÁ/ìjƒòQšê ñ–&Õ°.šÃÌB?vFÖ5‰¼l± ¾ö>‰WKÁä'ÛbV[¬ù„Ó÷ëIK_ic‹aÃ9 ºÚ,Jh¥~±û$Æã×ëÚ3^Õë¡ÈÜßhÖ§’}ÐáÖ¦¿»À¬¼·R§Y(ª÷3qüâ]LaÕ¢Ø0:äw²“‘R]@g —Dº‰Å­37AZ‡hx*ëlÝ?¿TÊÏ ì"Q\]”|!¢hΖ·‹kAøÒÃßM$æÍ÷ºå€C$Qä>”ùÓAâ%ö~¯bv®sñ#¿>¦„bR_ººçùÅ7TÌ¿xùEǾ§6 tk@Ôˆ½1:cèm$i¤9M”ýªU}íÖ-„ëù@Ù3·§ò?ØôÔnꦨx¹{¼ÐìWÊ8M ÒßäHŒ4›õ,ØØë ¾CY<V('®^—uÄ}±ªgw2™±¾Ml¦TÏí¯Ä>Æ8Ñÿ–=zÏêǦô]0ˆlûFÚ’ZR)…þÝ-òég”ÈB(V½6‰nóŠþe›-ã1¥ÜNþ›¸LØ{c#‚°lcþñ^®Ëö ŸoÓg„e¼Õ®~ÄЙ;Ødº<Ü©þfép/#°œy=Î܇Krþɤe¾#âc¤MZ€_Ò)Gb‰NrZâxÅYÒr@zNMÆ_“„LØõ€Ò*»o\¾/i‘Pa T+L,¯ióªN—Uuz6‘~ ‚ì,×›X_·*ÛYU÷-\&,ÚøX9u{Ջ䘌½YtÍað)¶­L|“‰@!ÚÖv3Ã~¿4¦Y];Ó-²=×TLÖÚ¿ È­~)×&{%Äm}Ü„4d³¢Tsµ Œ®¼„´ð*ò®Ë¶‘A·’§ç[‚B=ǯ$£Ú AOÚÉNŒ›wew\r¾m_v?ÙÂ=ÌØðyyUà?3oÒ$çÏjâHî¬ÍIö 6°#Úd°4d–]+Ö$˜„Ù?R}O°¼óе`;åÍë  ñÔ“NïÐp)},ƒì¸…šÊÁóÓUãŽG—ö߃N£i£¤ßN3õêT–—­WŒ$è]5˜Yjçc¥¶ÃiójØ|ahZ—蟅«Â9 l핯ô¿ÞH&n&Hó }ó âMx“ÀõHzÿòRk•Ú^i>çp?³Œ¨þšqÿu ÒÆy*~=‹£ó/íýUØåÑ»ÃÊ2_‡öRÁ•ÎÅ˘a‚üGì쬶MûijßF‹6/OnKÌ?}" Q ô·§|NÇeiG4í”OÙ¾AòS¡UxtI^¶5fhÙ"ªs7ž’à‚“—*=«|öfJ AȸJ(ì/BOrg h ³©5ñžàÊ5ÉŒ®jÞ„áá‰ÙÂÚîµI>Óí…ëeõÍ,¾ôåÞ<¼60å)_¡¯aUì›.ŸK/èÅv=ßPÉŒ›Xõ1,4§Â¸2zß3>o«…¥Š©$@‡*~°ÖKù7}2¡SxœPé8êý‘´Ä5÷”Émh1Œ>mÇ«ÛÜ–›_ÌgòºyÁ$îŠYÄ_ªóo(öhJ/ÂÚöȼÀ=«Ê¢€ð S ^¥»Y(×N6oY~ßqZ¤ßZñâ+"·à׊ ;"]PnÅ)µÜÖlÈÆP“÷Ö’I‹6ÿd‹ÆjŠg¹¥âǼ`×ÌœYß’Ä9ÈeÊñг!¥å­1‘˜«‹¥7  ªÙ “xóõA?öPÅüU¥+øÙ‰§ùD˜vì/Gù¬¼ˆ?ß°?ƒ_¤jƒ_šìœ¨µ×u++<§3¹ Ï•-'æ›2ᡟE/µÊŒªTDõ‰‘3mc* Ÿ&|T²-Hyt(uý³1½‘ ”6ö×븽Ñ~L©nY!Oí$ÁqÄ×¹ÁZñÉöû}nãôgyá˜dùÕôjÓÍDLK~â«dâKô$ߘ¬œÝÝ™P×Ì +˜sX¾ÌIÓ·LÉæ®|þØöó9¯û*Óëº_øµ‘¡t’¸tV5æ<êIç™l vÚ­‹ç „^3Ç}<5ï˲ïÂ¦Ï  m! +*Ú|i#y4Ì´Ü~›RP×y'щË$ðìÙ1 ƒ€”-O÷À„‹·Ô.:5ßÛº%lMá’'Ä¥ŽÇ9E' —ÏúBJW%ej¾ä;™Í C/‚(__‚‘xÕìîŸÈtEÐo­¦«i´õm’j¿z(ЉÊR·½°r‰}2×ò“éêùÀ&md›‚Eè/½dÃÿÃQ <Öê/=ä&|ˆÂ¾kï xpímTëýX²ORcÑòÕ"Ô|°è$“øÜ§kåÚë{‹´/¹:âÍuÖÖŠ›»n]^{¦›Â ¥=ÃTd~@Ý $1Ë™jRÅ)\u›.·8¶Qëk —kÉóÆÎÜË'¥*ESÛÝ#È\®W› Á”Ï{îôb™ê¸ ‡‡.Ž4+ &±›ï6wójóë> stream xÚŒ¶tœ Û.¶il6ÉÄ6Û¶LlÛjФqÛlì6¶m3ûÝû{ÛýýÿZ第5™ëÆuûy†ŒHA™NÐÄÎ(fgëLÇDÏÈ–Ubb02²Ð322Ã’‘©X8[ÿÃ’©,ìl¹þ0v:ƒd"†Î ;Y;[€”‹5€‰ÀÄÎÅô‰‹‘ÀÌÈÈù?†vŽ\CW €,=@ÊÎèK&lgïáhafî ó?_”ÆT&NÎO´ÿqÚ-Œ m²†Îæ@PDcCk€²±ÐÙã_”<æÎÎö\ nnnô†6NôvŽf|T´7 gs€Ð èè 4üU0@ÎÐøweô°ds §¿åÊv¦În†Ž@H`ma ´uy¸Øš àeI€¼=Ðöoc™¿ hÿôÀDÏô_º¼ÿ"²°ý³¡±±½¡­‡…­ÀÔ“¡wvw¦Úšüehhídò7t5´°64ü'sC€˜ "ÀTà?å9;ZØ;;Ñ;YXÿU"Ã_4 .‹ÚšÛÙØm`ÿÊOÄÂh j»Ãß“µ²µs³õú˜ZØš˜þU„‰‹=ƒª­…ƒ PRäö·Ì è `cddüÄÉ:€îÆæ Ñ«xØÿ£dúK ªÀÇËÞÎ` *èca ýƒõr2tœ]€>^*þ`™˜&ÆÎ# ™…-ìovhú7 ßÑ ÍÚ=&ã_ÿý¦ Z/;[kßæÿ™/ƒ’°ˆ¼”8ÍßÿW'$dçð¢ceÐ1³1˜þZ²O />ÿ¦Q0´ø'?|%mMíœg jÓÿdìúÏPþsT€sÉÙ¶ ü½ä:ŒlŒÆ ¦ÿçUÿËÿ߆ÿÅò[òÿ˜‹µõÔ”ÿÑÿÔ†6Öÿ€–ÖÅt²v 3°ýߦêÀ¿Vhbáb󿵒Ά C´5³þo-œÄ,Ü& ÎÆæoËßrÕ¿®ÌÚ¨`çdñ×c@ÍÿÒNËØ ôèp­äT@Ðåü;¤¨­±É_'ÆÌÆ0tt4ô€ „Ø^L [4ºÿg‰ ô¶vÎ ¨<€©#ì_eg0þ%ú±„~£Oá߈À òqDÿ‹>1Ä~#&ƒøoÄ`üX R¿(ºôoŠ.ó¢ËþF èr¿(ºü(ºÂoÄ º„ß]ù7EWù@ÑU#Ptµß]ý7ÅÓü/âé #PfF¿¨v#GCc+ èmbêü[Îò_ùßñ_ˆÚø¿ˆ Dflg Ú†ÿ‘°²þ%±±ùð¯5a0ù‚B3€Êþ+3ˆhcbèdþ‡ ”h™þ%cuÎô7ÑšþYÿ‚0€ðoÈÆòtý#¿ôv.ŽЃLÌþ€ ÂßÁYA³0÷°7Úþa’ýT™å4«? ¨sÖ@P[mþ¨Ô²ßÌl W[Ðyý¡k÷;³Ý¿Ô bì«Adö ·¦í¿&ÌÊôôßóeemzÎÙý11Ðo‡ß"wp±sšYÿ‹‘…õ·â- û?šÛsþ#ý·1Ó_£ûcL ¶:ýîÈÉ hcñï­cûËèúÇ4Ø@$N WÒëõÐÉú_ûÃÊêwXгžÁÙÜøÇJ€úæìf÷‡ˆÃå¡ë”™Ûûòvÿ‚è=þ€ &zþNÄä tü;Ô¿ž—Æ.Ž 9ÿçÚÿÿÁÿù}ºaç쌹ƒ-kƒÛî«ñÜèvÇx§ÉvÕS¨è¼Û]ß'RU¥®;Þ &þD^Ù¥¼X"|ñ:n®{Ö¯Øúäý¬ÿUir·va³o<ÿXð{/þ‡t*{Þ/ÞjVÍàRdÙ.ˆ ¹h÷n=âîß{K—GBçv÷ªØ¥ážK§è¢U£tŠfÈrŒ2f±‰ß9ÓáÃP£^¸#ÍÜÜN£f¿J}¥õ9‰f)ðÒÚ`þò0ë¹Z®ÂìÔ…CŠ£…yƒ:2Iî%t$…5ïU\°Ò·àÞÌS@˜…@›¼B‡LÀœVe¡iÛØ]ã:²ØÁ´“¦ÀëCÛ‰¯)iD×w$–ǨjÕDs®a±ât˜ ­¶Ýªý0µLþ¸Ä9õý 0ƒ i~ìßôÃë©Îaup¨î.4¹å~°qhû‡z/ÿG37&jQs툕e®4üdèRçQˆ.u $:2í’k"Ç3´aWà/¡G\¦­|FF-ènð‘glÙÞ¿¾øTÔ_ÈulÌ Ì[»¡ê½±Ë½u&_\ä㘳ˆ¤‡R椉þøœ³C¡È] ¬Ÿ *e¸Ø¨À¤)ñ ”‰Ûb[øÕOZÀ*)Þ½;_9¡èaùÀ™G¦V¡ÚË–§H´sI7zP0 ÒÃykr°u[V&¤‡qh§öpQá.4øeSåSpÎç%ÿ¬.'ùTqÁHˆÂ»íÙîF$§*B®D61Hê*¼Û£]…Ïn´¥’"d‹²½Ò‡ÚÜt²:Êúëǯí;²oìþeÙ5zíw†Î™„0òLÇ9 `b¿X<HR·‘deç'Ä{µ^Vµ!mÊßZ<Ç£ÄüÞ}@µ.}(#þ)ÅW „ZPŠQú賯F µ¢<°lC›s°Vt®„ŠÙ„YÐÞ*ÝYÚ®AÐ.5éï~Uˆ­¯=¦¡Ž‚Õu­˜]… ¢ðvã”ý ¢³] rô3lŠwÁüe@cí… sT¼›‹Õ0ÅbgÁ•XW0tôÄQÅЯÎEïÓ*c" .ÝéF­Š‘¥é7²÷åöZ-ùP¡È‚y ¦Æ½Ó6>ˆ€Z)O/Ÿ¹aAÛÆÁQ6GtÒb–ūû!@,¶ñ(-v¯’cô”òµC-à‹5¥µYåŒ%£©ŠèU¢¦ƒÒÙ¤ÙaÍ—CVE&¬ê_@ç–ƒZASÑH ÎIÏê4×ÉäKš-¢ç×0ï+òöó¹æ>Êdzâè~A¹(u„‹(È- r•鈔ÿÄI*)cñJ/¸`†·ikÍî&õ!FL¾þ’GúÃî±Âh¾üAAì!×Ðx¿µ)ë\òýú{ÍÝù:ŠÅ10õ¥‰Ý ò®\ÆiÀ+Æ7‹‹S.Œ2q Ãrô÷x JÌf±€ÃzÐ_jg»7o­:3 ºT”fÀÛ ŽÓk³æ)/0¹%МKòÏä€¸ØæEFjWáz‰S‰|wʸi>Ùë仹ã jn‰Ãê­²‰VŽ®Äc ~ÌÒ_iN¯¿Û¼8ô§$„·nD›„&è(&þÄ£.]±PÁü} '¸5ÑÏ“5ÊU&Sù.×"ý)¦ †F)uîDÛ± íy@ó¦íTÓèÓV³ð¾ ònA3LáñvL \U4÷äê5êbZ:¨kI"Š¢¶ž\KQ` IrqÙ,oç-)½K»˜êSyÇs¶ù˜m| Ρ&Å̲áÏ•î_Ž~3ë© ¶ú¶‰R29˜p0”I°µûÙÃß`+êåð½¤Åê×—/ô¬ÒŒÖ~ÚùbžÈTåéÂ,æ«æ€7÷z=‡£ºnˬ¯´ì岯_3¥ú¡9Ú¾9%¢ÿ컺´ÕZ‡¤Nmå-¹rº¹°KC7ðúê1C$,Lé…e C¯î§ÕprN°Çˆe ·adbæ¤bBJ7©s[56“F.Ãcß …Ú„dïÝì›VÇqðH?Ø“Ô@c:ÖïéQìD¸©_+äY9–zÍÌï:Óóâèªíf>¬[Ü0ˆg6ß6i9 ÛÌm‘è=,Ìý§]±šʺ¾¿B² R+¬í„æËã?&e¸1>4Fˆ%¯®?ž•ˆ®j‡šÞ+¸³úK„dcx½W®ã^'˜CGÖD#fºf[¼z޻ߔÐ!ž.Ó~wÏ”4–zjÌ&wÏYjÏÇüIªUèåªÞ‰ò,¢ÁŒòºÄC‘Ñ™O»r‹c4^Ü©·)€‹P‰”S—<üÑÆ£’Ê¢'ÂuðÐòç­zq¤L’¾’¡uç±ûwýìyÍ ®Z6Ù¢*¨õ½³eôóˆ÷h_Z+êñüŠŸ,óC6zsˆ|Ö ÎŽEÈÕ?ú”îÌ)j4“¾“X/ÚGq–̯hûà70K¿¨ùñ—À‚-F™c²þõ‰íJÀO„ùçmgA9h:Û¤Èd~hý5L=ýe3ô¸zßL̾îh‚ê‰Óbi¡°µ v`Oê¯M°| ÖŠö_CqËrý¦©ºB2ê .¢¹ß+ãPÀë5ßpí8CIÕX ¡»—}¥dâkÁXVt€øRÒŸ`¥BÑ|‘‰ÌÉë€g»°ãàl-#̯Ñ`ÅM†uø:ßã0UÀ¿9áÉ$¬LÓõ1O©Û—8¡Ì< ÇR&•$»4œhMùkºž† 8¨¸Ë`c/Ç&ý \ýáMÕ½¼°f!‘T±¡Õ<]Åê­êÓÙÛ³ß}]ü]0I4œ¤™xrö@4. 3£¹[<…#Mv`\ ZÕtBð”Æ+´8"©‹ç¯üŽé@r5Ý‚bŽ8¢­*c^ªI·è«ìøêaÈUÐ/™à&à„Šþ¨ U2‰¥ †"Àæ·º>I‰ {Ÿþ•.£;¨qPDÂ2,yÛ Ã#Ð}% vþ'ßÒÄ\UUθUrå’u7yR ÏþÒ·êK`,•é䎘gšAc#1˜€²yÏt[ÜÐÕŒ- C,ð£Î¶ZM)Kï•a… ‘‡GÛ6ׯiôLc¢<÷ è¤@£qÙ׹ϛ ¦>,ëIiÇÃ…ýÛÄâ%I(û¦²N“ïg5ÔU_|žoë›4{ê£õàügæÉ,Gû‰$:Î#å%Þ`G¿ê?4Dr„ÕŽ]ú}Ý’jrÍA¬ Ð]!%]|_Š´L!lÎÀ–ʬŒý‚ßz:\ýã—@|vƇo†åuþtè©‚~Æ¡‡Övêàu²”—1ïÁ‹H– æ'l5½,— X¼­!\ñ+ Z($­³_ü6jˆvëžsn¦~x%ä¾­J9ç³7<Ѓ X0?–·‚4ÈhH{ Â=Ï¡?(ÏJ’2é­Í™M¦¨T²Ë¸ÞÇÛœ ‹ô«§ÈšêøÏX·VÍhšö—r-®±óýžñüÞt¦ÎËzk¿E`^?¸Ë½®7Tù !ÆÜJøAÝ·>½%v¼3†LÉ'ËÔÂ„íª±dƒ©ŽÑ̼Ÿn¸? O ðàs<÷,.e ƒ±P},‡ª÷žò"v}zýÜ‘öÎÕ ß§îÚ†9}Ia´¥FôB¬²æ×*ñ¼ŠLBäkÚç8%´§“™$È{‚<—6àÔ“ý4HÊ=[ít*åoqníÓÓyþL‡1÷¢8´Y,gdB³ÜÖ±œiGü!z±HõC›çä•ّ٨áΗX—:±ìÉTžn4GÕ¦Òò ˆGê6ˆ³Û7V~ fÝŸ±¬ÅßFsÓæ/¿éý˜pÚÕ¦§¨ž^ùÂßÄÅM|â;¡êË¿J•°Í„h)®üD|è%ªÄÃÀìü"ÛÛýà´[èÿdÅ)©qgšW’> ¹õ6þòDƒ¶X¨!zR”„<@´IÔ5ÑML-µ¬ü ±kI“  æãô¹å2>ùÔ¢àK*usƒÙ¶p¾·ùÜÁ7ßMàÆ©šˆÔ¬wrK‹’Ïd‘°cÄVŸÊ€àÀœ)ö DJ^\‚‚7tñt›ôí4ÉØW•ìFD±»G}Ü—;½™xH|\H8îÔ]ÞGJž@ —ö7ÅÞ—‰Š E–#nw’¦/„,W„Ê#\¥–F(§ËdMÎR_ß3ð åÈ¿¥ã;ª­üÄq×­n~ׯGµužõ£^×ß:ã’Í®Y{?gBŒ™V޼˜Í¢$B§FNñ‡ä¥ÄÌèõa¿ שÀ‚Ø9Ö¾ÜÜ{e«Œ5<åT­æêsïÚYM›ÅDÍc–龫@Pé)COÒ„غù¼ÐÂ…kÉ5‰bLƒ_WÝÁiÂE+Aë=ÎÜ^°´MéÀ6,8Ÿ¾¾jn²Ä`‰ùê§¹ÿˆ‚TÍôŽ¤Ðˆ«ï @RCf—„Ó!L Þ_¹å{æTÓ‚ä›-䤖dôÁœ®×!öZÀ€9gQ]òìû5è²#–n 9²˜r£°^^bŸ,aû?? y¿vî°dšìKÜw|À¨ìš¬|Å‘rýI+Mè þá².d15"zμ0!¡ðéVÁ©æŽú ]­Ø ª¨ì×yÝoBŸ·²HQÁt1“ñ(6ïmùîAšëmlŽœTûåõ“,õ{™Ú»MãƒY]I®p$çÑ…HÍú~x!|“h÷‰¦Â÷&óÊÀåv9£_ôFnÕeÛw…˜÷:^¤Z•`㟂팴‡eލåÍÀ_ÔíŠ]BÕ|«|7áŒýt –Ñ5ùÕÃ}6ÊIBµí’\÷ç6¶!Nøe ž4ÖQÍÕPĪ‚eÐ>ÅÃ8¥VÒÎ(°@I=6[¹Ÿ³¨3LÞ|ÇqOáÓ.L{õ)õQˆ÷ŒÐïrÄo”u-ï ¯?eþ ¡\Ë´`†uä«=þ伩r_ЕºD ÿúŠ‘oš/RI3õáTmßÚ©³»?cA¾³“  ë°¾§c²Ö-i©‹“7ZƷ뺔q#ùm¬ ~ÕF^…çœð·xÒùˆØ]¸3ý˜ƒbh« PŸñ•V©DJº®;Í:zZëNƒ-UÄÍvš„èU{‚S° ã%/T* J˜K]ú^ue9á„Ð[)0¯õ³èKjjšàÉy¹žîù¬Îw5•¶ÁØdq6ÞóEÖÓ°ì/BpsG…ü \¼1*¡ÓxÄwhn^ŸEe"$·yÚ«ˆ– _ #nÝ/\çÛ…a¨,‰j»%Ê•Eçþ‰LãC©hÒ •ñІŠ\UØøyTb2\”뛃Aá¡®–xï©î¥N¬ ¼ò(•¡µ=$„4Ì.‰a—EéÉÇ/“=Ô2hÜxN¥&{ùÐÙz‚†5]ŠŠ€:éÚÜ¥g 3>Â6£YmÃÃ%ˆOaâ+Œd'ÃùJ÷XC­L)±q®~Y×xéáy®Š îìïÇZi:‚NІ‰ø9¨›©"¾ðŠ6µzI_Ö¤£éð»§ÿÊ/=¦Ì³¨~áæBx±øˆïý°õºV©{Üô#éÜ1­¾S@:üà æ·'ÚY!ˆ™ð‰ÍÃ¥!ѹ篳æ}ü7ŠL¤ªZ†pÍðîwÐ_æY‰æ9–çÛÚ¨nò Å|¤WµI¨kë“Z·'0RÝ“”^#Uź>þIÚÓ–›í þ¡¦lÏ!¡üóð.x½‘†= Іþóy\‹3oÎÈvíD^‚©ÿúKb±Õ®DP QÞã@ºaæwzÏ[­T³…¶ñÍ+ðïöBÁ·õ‰ogÚ~ÍWRLb’ib°y§Cžfá1C?r•(ç̹­TÌÀ]1—À¿ÎG÷hŸ#-®;ocó›•6ïzkº,ˆ+–±_ÇŒhqÆs!Ìß©1x|½{­O9Á»?w# j¯ÉRîÄ…ŸÔï{û¶>…t‚^ù¹yg”gsî#³«'‹"Ðueš Ãéôv–¡ñ¦VàõL¹jg=K âÚ T>y°ø2ƒæ!ð+djø‚D³;Þ€8c.sÍÁ•»ˆG*eÝ’[ÐtˆÂsý»ðmFÞuØ3ûø…”CÀìGü’ÛæÐ¬Á,ú«ªX„7Å„øÁ¦óÛ$§u‰~ß( Seïa>yEkgÅøÃ´HmÉŸÓ˜ õý¸ò_tl9QN õVâpE®Ôy¹{y} jxx½šºê±6—Pg9!2wËÌÒs0¤œiÇ ;®.ÌAp’ÒdÔˆ ½(?ȵt­ëc‰ ï''ˆfäúkJ, Y¾]½M…Nš}`5曾M·ÊÔü»f9º9¢+ãâm÷—É•—¼¶kâÁü|«á:*›í¡ÓÄ[ÞOHÈÌŸg¢#½NQoÑ-x ƒU¼ìô°[=-Îk:Í•™z{SÓ&»]ïÖv·.fÂl¿¯a5× ›†_Q¬È ÏÈxižLa¸*7š9þ9¨ºnl1@Ôüö¬Ÿ³ñEñ²¶‡ÅçÑ´’7­²ןþà¤n–«¨æì~Äyibý\„»–ч–ïá¢]Uùh¼rØà*©z†# Îa • Mà æFwxf×»å˜ms«–¡*wЕÆmæ_ ¼¶l&Ô“r2¹É}ÏÑÆu/޳Y“K ßù¡ù‘Rï¸mòXõ»ÐB‘_uÞ h«Ö´\fá ¹WÝØØçÛnjgq½à¶Ÿâ?Ù6’ÚÑ®µäŸš<“ÀïÛQ¡¹ð*äb]àDúñpOwÁ’ç5ñ¾ðÔê~讎ިæº>¼ ¬[·ç“z¹V´nx˜$ô¶“Ö}ô¸  B±%Ü{Êh{v #²BÃÇ‘¢›f2·\.{çi噬î«gjÒlsŸX™¦»ÜáÅÓ°g ù´oß0AãGäkM]x3ËP#a:QBV¦÷()Š®%æÃ·÷9ºé骚^Vòg£xü3iSw-M%&ñSš>qg +aêFC&R¿…ÿœ•$æ8bh^âý9¹¾Ú°Š'ÑÖíÑ%òt‰N˜G ]DLLÍ>ò9넇8eÀlƒ«-g­Ë U~±€Ì+¼^rŒ= wŽ[ÿa¨›»?Ú– *¬@û,!+v˜?O'Ñ_ €f販p€bSÓÞ…§½j-m…ß„ŸÞ»"iâòWÊ£?ôœÛS‘çk^çj² “÷k´GpÜ*aBƒÌTd˜wÇÒÀüµœ¯IälS¾Vbþ³8íÙ*CL"ÒºLKUÝù#Éü­kyy‚Vb Þ ØÊ Ñ~>yJE©ªñEE5E.øvUvr‘ÃÝÑzø™ç;£ä™…³é!ùõbo¡òr«¾¶x«ÐÛR oçAܹ§5$Kµ0a¾CCÂoÝv|¯f@ÊMð5öÞ:ƒžq£Ò†ª{"_;wù´ƒ$ûÝëo¦Ã¦š^kü¥t3=a¶WÉKg¢_ öBÐZòSpa¶\ƒé>vè«ìËͧúåo8%eÔw—?™Íê£Â–fÌl‹¥÷i˜°<ßðçøgP`ÂØ™bÁ³MµÇ#|.Ê%ë$ߪ̆¤m¥[?'6#)Æk[yâ¶Ñíi&Usû¬­‡[žß÷"’dù`aMû ñëðNf…1ѼÖMÕ}¤{GÊò¦èJ±¶ùKéÝØI?äŒâL·ÛG×âK¶E#5,Žpù'²áyˆ°ªNOÏwÒío-¶r“IµßíN1áÚ•êPøù<Ö¦ýÈ<>cæ„õåzèÑ òBEͽïÏÐçf wzÑ+°O÷OŸæ-?7. 2B㺃éÅo­‡çùÈââ8AZ‰¦Ë±Cz5õ™Ý}­8­Bæó“n¿¨DÇâLVLÓžè›@nRôÌN–±ædNǼÙÐsïŹ ]ýl“,*Ÿ§KnN–h网æ•ÅæÔ"néˆ_Ø÷O¡ôrܯ\Ç7úxàu[òAúá¡Gôw‡?NfòܳÛF¾K»òÉt–Xndé‚Y:æWy¡>é*iÜj&r(ªˆÜžb»:ðúØ©e¦|+ýt2VÑæÈ¹àŸÊ©»AH.÷ÙZ€ÈÞX]\GF¡è]²“A¦ó,¾q%n+1E»NN“©Ã–Z’úMª ¦[ÀÌ|»Îöj÷"±·r-¯œ4L©Ñ‹¶óß‹ÙH¼cMø5“ˆW>rCƒf¼’(XÑ…Ym*. Úò´ˆSM`Tè™úh‹êtM·d(ZK`SLˆênŸAñ3Ó``Ôe¹?.‘®=Ë £~à šöGãMó)¦nÞÛóTÆtÒ̽°fÞÐk=4'1XÒSqÜ}ñ©Q÷è±Îýòx}tw¤Øxd ?SfÜF;ÉÙjmå§æ¹I6ª–@ºd¹¨QÚ¦t Q³L°ÔÓá6>Úï˜ †}|×¼Õ%ºLð°Z ¼JaôäÞdüù&†¨‰š½¨Ô—ý—™^âûÎw²¶3õÏ»~h7¹Sæ*íT5ºöÀ‚AÔõÍɈÚaÉðØ®õñɵaµÌ“°Ÿ#¶á—ø`XjšæR± (SRЛÕiFâ4Š-låÑ_­½US¥Óœ )np¼]V?€ãÔýG¾ê¯ þæ’ƒÌwõÑ&x×pðCBØ¢'áðÝW"•Dm–¢0g-Áïo7V9˾Œ£‘ÀhŽŒhWö†ZŠ7•¿¹;+9.ažË-¢Á ò?ØK¢÷¤#`NëBÊãŒnÎÞëÈ%Ìü(1$Jï"bL{¹]Tô‡‡×Ò’¾b¸è¿Y¸Y^Tæ3•‡x4{.&ä K®¡#6¼É ‹Nûü²û–1æÔOªŒ&×¼Wï=’θÖÊ/‡‡\®„¾Nsˆn ¥,|™]œeV¯¤oí 0¯…þ9®§ ˜7& ‚wüÒÎÁ£”$eþ°Šu$±jd‰o– e¤%ˆ©¡d)eË'Z;èQ¹—ÂÞ+é ¡¬ßºósqŸ¨èLÜè|µ˜¿©M¡Ý[ê£Mž¡Ú‹Ni’ZQ#:8L؈ Ãõ¬_"ôñ ŒÑ–„CY·øNÿî%0²Ñ~ÿ3s1•;_+ÖJàîþªýbŒÍ>¡KDÍwîÕû0[dú}6&­Œ|±ÉwÎö–ýÈÉ9ʲXö‚ó‚‚€"«[…!,’Õ{üŽ „ë Ø,ÆmØ®Sƒœ-³—ÝÆ6¨Þ%ט½f¬IÌW]7õ–iÌßO8–à#´Œ„cÀ€ED•ý˜$Ò%ÏòèÉ;b_¶ú8[²IôBÏ–”»ùd—ù€·Ô%ˆDy ßr¬½Ú¾Sä3ì†÷~ Ü¡m!ÚrsrÎ>Y6ú@þ¼•v°õòZ þ í­€¤è ßO &ÒâŒj^©_¾\F5«‹rÌWaÚQ5”îþK6ЃµÃó”ÂÌ•1{“kà¥ø)ý$ÌC“ˆGöŠ~óÀLm}¯”§è'”¶­Îàx’¼F-\uï‘XUô¯ü"@¶«ð×¶çnPic¡K›²ÐÅ`ö:Ôî[[.9eÕ3Ͻ²' wïס¬”´0-ÈôáªÕ¤â™h@@ýk›=æîø&jù×8„R\íÏ12æQ ß §ã{|G{˜¼3«B¯7œhÓ|gß.HyчyIUè}2c·LLy2¿µM²9¼«¼Í )d Ôæ–~é®Ô'pDÓ®Á¡òÛé)aËòšŒ‰"Õ€˜›ÞO,”˜nˆºü*‚™#p5Vée˜Aª‡ªð ‚U(Rè¤Ê,ùzZt ~™¨­¹"“·Ìþó:Ò;ÞŠâ”äŒ6±l²|ò~ùûAEWŸ£ûÀ&oq½îDÉÒFÔ©õ HËI¬wëôÅ-œ¬Ìç ¼0'›¡a¸% ¾°Ù»¨È¯¶:* ÃÜþ²bH?MD”Aêba¾´Gþ\§9Ákï¾}ÕŠt #öž6:ôh³1W#"ÙæÃ><¡ĠÛ ù°Ï;â—÷²«Z3Ï&§lFêÚYlA8܈m.e«ä%/Å@¬ðìï™ã­ê‚%xa\4b ŠŸˆû‚•W{~:ak|(»3w7ŸeÜóøÂ.b/Ey ŸurÏ$377ŠìuP/3Dæ¹[86Ÿ¨[I…wXDõ¸¬NUq~Ià{wí̽Ÿäbq«§B¢t"¨uÉnë‰9¨KcQe Œ†¾Ë6`ü&4ÚÞÿð.$xî,F¢úÉoY&§ˆœ%ê¦oÍù-4 źÃU¢=™.׋ž¹`Šç™Jjc:­n9n­¯«½&ÆÌŸ<)\µ)‹[eÔÄÂA ·Çæ›ë£u '‹p©Ž©ãUÑ’TGÝÒí,%¦´Ä×…ŸÉÕƒ²Gw/f¥gÏñ‹¯807‘”±=xá—“ŽûóãyÓØ)kâS‰‚(×K´…tØ{5vãÒ2š/3Ãì-ÇÆ¹zd̤‹ÚO©ÃÒ„´„̨¸ißÍ«ûG|ç¢?ô‹RÈÆ¼C¡r¯"AH %›Áœú$â_¹Ol2ã‰0/2ÊŸktRœ´þIþyvcËük¸Q\ÚKL?Ïwbˆ¯˜8)tŒÄ~§ÔPÙÆÁ.ˆ°(°ƒø9ú…vÀzËóÄž¢D]Jïh‰ˆp>¤®³`ví÷Ù²Ë Ÿ‘«÷ _’ƒ,¹Š Â]! ìcåºYö\à …àÎcîT ¥©²‹IËùV®løÁ”k°2IÍ›4eRí2É5éÐ9Ó¢ú³Lm4ǽå£8KØ‹^:T.¯éͽR;áÝ;4ƒeÞºŒÉBð‹ yã!ë3±ƒ™KqÛ¡¿ß•Ü\@î¨jŸüÖòÚ²tÜI£}0™‚ãA=­¬ÓûÐ2Z«:½—ãõçµÅY!£F)Ð2'ÅD6SËÚOÜÑØ4jù¬y¨5Á•ûÎç´ ÄU<ÝÙ­.åO¥§Ø¹a»QNÃKVpÓQ. ÀŠ‚[IÀý)/®º­ù µ›SÚsú‡É‚¥œ»qRä•FQDê•QôªB>É”)ý¸ÂJÎñFrYÖž£s´¯õñ1w”ýXÖ—÷AèCÔ!§ôj´Ä”¶k¢‹U(ˆU¯oi+õUÔ”û*¶ñý˜&•huï˜Ӄ*°Íû? ÉŸE)šAšÔÉ[‡Îs¢ÿbtÍp™Ãi{á½Ì:¨~¾ù Í\¨ˆ€Í/SÂ|ÑYÔ×RÖ M3û˜Ã1‹öȆço‚{Ê烃5 c$ÍôË×Ö5ï²öÐË#)BÑ6¶sGÇ5møžˆÑmÔ/OÚ:¹ì¶Égæäà‡µ"'ÿsÓx #ºnUŒ¸­Ø”>D ×gpwåk T÷Ï’¶ágx’™{a© ÕC‚€[%Ñ=go1 ÒôÁóë¹H°é*`•oCn¿ø¸ñ2ØquÜMSœI¤ûêórÄ žt&ZÃp žlYé²ÏÑàOÕëè"|Ò5åëM3ZR;iNεêïUŒÕ-¿*iî.8¹e Yœ„’­ð³ä Èñgük´RH™v(kŒ´K×àèÜÞ¬æ³ëtǼ÷x§S:?Õ,5jSˆdˆðé8žèJªË‘³Å^dBA±Û¿tÊü8ÑÍÎù¼ŸŽ(êpL‹IhYzX«ë™}Ÿßð®KŽšîVrl”ÿ¦ðâ^$ÀEpy/× lÔ¡àãâ“ÑOL˜¦Šb± ž^/ R† &ét. 1œ» Ší®•ÈÝ3ŽZ*TðlúуIÁÜpM˜ŠòÉwèMêÌR4š_¸‘¯ãžÊ»w ÷K"ûg/÷oN \‹½øþÜJJ¬‰ÆÆD2<äH*âfÆ–!ÄŒGg$fI£Ë4„Zxå%xâN¥Ýª=S/] be´Žx¡×Ø÷±˜ͨ† Ô†Æ;Ÿán²KêU}íÀ‰’×”÷C n?d;Ç+ôGië%|wõ¿+ÞE”fdïäæÞÑ.mÆŠA »±MÁ¿»SÏñ…£S4Ez4eO|ºÖ´ kÁ7ëTDÅ,Ô\³Ï׽ܲâûþÀþ¼A:ÄΞ»'§7Ðë(W¤/FY¨¿× Œdq®Ã›ßÕöP`§ô[G›üšéŽ^ÒÍSo@³À¾Ò±Ç¬bøe°Ü¯V·©B‡jÃÛŽh00 œ O² §l “‹ÒØ)-Ëæ(=-V¸7”n§IÛú#2+ëû©TÙƒáih®GÕ%s†ºEÝ+;$±>©TüÁL`jÒƒ¯LO2+ék>ÊV^BT≘ 9àÉÃÅI\+ñ&=Àûí²® ÕR•ó–)ÕeÔñp^¹Aˆd~µ~Á¼…ýx y˸óòÛŽßÖpõÃÎÑE†»ŸGcÖ&ï„§Ò…s£¾0„ðh>›j>Rø‰_òZé^߯zb?Ùg3äÏÒP>i¶Xo „Ïj ‹dÆ"-9VUÑÞuyÖž#?»@Ô¬‚Ì7‰ô ™í̵ÞQ“QÞgײK^¹Fèè±Ë­ô;® N茑iSd®œ~fº‹ W­ àÒ˜Î Úï´1å¶ @ ™W»A–Nf´šµW'·+–ë,IúQÝ(hg&Œ[²¹fãôœÀ`±À1ä“ÍiCÂ@¬Õ±d.¿— ¦ÕGM7t¨£L îÎ\ýKxšúàíÅ¢%Jgì}œJ‰f΂Lou¾YhUˆWyÂ꫈xyËÄŽá;Å5Væpg°‹xNzsX®Oº,V)¿‚îµ)à íÅVøD|©â¢½íÓIQ]£´c;„‹;'#ì°61˜/mY  ÓÓËÊ¥¶Â^˜ÃC* ž¯ìylÕ¿m{G{„ÿh¨•õÿÞvCßÓÇ~‹=ro€*-3³É¢éøeXE*«¶ý6;¼«ÁBLn\ýàÇÒÅÆ7c°Â“®Á¤Wv… /Q86-Ù©—­Iñd…îÐS\ëî㡉÷\Ôù´'Ç‹t:I×·íó6áƒV½7ù±²ƒŸgfP[TZ°b£{]X:to«\³M/’ ª8Ðöˆ`ÉŠžœ'X-VqåÉ,CI®º( øfÕ Yâ¶5B¡ìü_U>–`Ü X;Ô ¨†$:›·Ð\ç– Vè@tG;§b½N™(:æúZD¶xªËJýÕ3†Kÿí½ÀGȦúk{—ã2dÍ. b¢[2!C×¶Îõ¨WŒXU(0èkî‡Át9A¦–ÆÄq¤ojŠò1 —ãgµr,ÁxÊIT>š›ˆ×…ŸÍdCRüŒC#9Ê×c“'$MR×ã.tr›¯ íµÞ¹í‡ i*\Ù>‰ê@/r(€‰×ðà@»Ú̃i7ÄÑcŸ&Ýú‚šh*À*ÒÚpþ  p/ñj4õráëÑçBŽp‘5I’ŒÚ{§ÚãdÞ$gÈÏ……GÝ+»·þTŒÔÚþÝÜ| EÔC˜›Ú¨Wû³ §¬BÕ;ÁÊÁZOëaÈ™ù”«ø-È&st¥þñc`.½«D^8Q©:~<'ËZˆÙ®{wYS]Q~\‚j íÔÜ"î=\,•‹ºò|Ó2¾1¡‚2¤ŽS¼5nõúöšKõéý„g`©î5Æ"zÔ¨jì(˜På"¹#.ƒ–Ñ×~/ÚI‡”K=…º»äÎqeÅ0:ã¢Í0L—[;w>ƒŽ ¦'õ÷o˜ð‰ë‘;+>sÖK´½iS_Ë‘%yøôþŒyôÁ0bi·ìjê Y(§óÕ>áùÅ4f?æÙã±òBm‰î8 „_¨Ü—U~Ö>­5³éÛàæ9»Þð§ªÒSU;—LN†Æ[NiLˆ×”ûy:ô¯Ë_xW4ï5“×[YÜóT çmÁ)Áy%qËá®ÛÖC> wãïŸ.m®ŽsÿôP£v]ÈtÅ«áÜðøkMÓˆ½B:þt‹Cêü‘ñØ Í 1Q7ºÂÓEÀ»…ŽO0P.nuÚYéãâ£?‘}ª‡Rï{–*ZûÕ*añE¿#Ã,”E~¢ÊÏ®3É ñŸ‚< ¬{²ÙœRù7åcl¹K··¤¬§,pái•‚P ßfÞ™´|«]ä'¹óËÇý¢  Èô³2´¯®¤ý-Æíu5t’]ä¡‚Vm83ƒh羇/{šË×Pî;nîÁù9°ùønL6$"«Ó`à¨äõîžE’$ã«ïÕ¸ÁVxø«{ÅPü””sÁøx#•ÇÁÿ%>nMI[É¥ €ÑYöf«Æ(Û˜QZ¹ôºò¼º ÖÐ(З±Â$-æÛäPFdÞX£ö²Mæ(ᙡ2탶\·D¢c`I²Ê¥·¥8Š1£í’[-?N´qÔWev~û}Ë[ë6ûl¾¿:…6ÎS e\=ÖF‡É8/Ì¢y~ÊÐÖ„Ð’¹õžñ]ñý£"ïôØÍMjgÎ}Üz¸UÓ•j‹ ýÆBÁžÐ¥é]êU0ïï8’­%rcÕusv ¶¤\(UQ;NFêK7R›3äwHKÛ¨Âw]2L¶wÓýéð¸è³õZ jB  ðòþÿv}4lÏÍËe¤µÆ9©JÈMeÑ$6hÚŠ¦Ô¢ VGíi áÛ 'h»R ¯«Ä6x3¨tg»údÛRc›iâR>8 Hô¨ƒœŽ4ª#…Ù=Z9@z³ƒ »Ü<²‰,IÀk¸~‘Áô‹ñâ´`xMÿZTNè€cìÈw™;Œøt&t 0Û ÛIH4€]žœåÌÅޞʠû#AØá]I¶·óMõVÀyVVâ¿ÊH4]’ˆ i}ö„Ê<‰r·Ç†–ž •‡)\y«àïèA^\ozJ±W·tãtOIr1ꬸ0ät2vB³ÔË>}eË+µ-èåµ—ñßû¶d+ ¡¾¸´Íô«i\³/`±b zŸ#-à«ûr$߈½3±OŸ¯šÒ`ooVJá,ÛOJæx™(¯­çÛ3â¬0j(èÒ ¼hßò;߅Ϥ½œbéî¦ °êb)Àd'â캼Ïbë+¿ÏúÑ žªú¤£»Fi¹&+ê˜?ÕÏç«•üò£ù˜¬ÞЀø(DZ[š‡˜o†ý%2›¯¼ Ù qâ@›üæ·7ÉsVûŠLdÞa¼^x«β³6íäËÕž¼_!ÛFòFjÏĉjZ1« îì¡W>B¡´g¬FW f/¡NÚÉMÔ] V(£¡G‰ ö ¢¬“1„eÓÌ)^p¸Fìf¹GÚÒ ŒôMÓÒ KPxúVíj„rŒ= ´¸ù¿¼´¿ß\Ñð ’fêHþÉðFëÕ¶cý*Î;šVÚ½7б/_‡Ë+}:uÙ%ÅWÎr8 ÓÚ¦q·CÌa²Éë“Ò>7ž‹¨‘šn“_€ùÚŽ¥ö*¿H±<–eÚÕvŸãè 1,%íœC™¦( ØTóDÐ]¶¬pL<–P]ü© Ýï¡47ï8KQìÍŸ’sX–ƒìØ|©¹yӚܤ “í /  üI( z·¦¢=§!*¯ÙßTw0h§…ÏÃVN½ú…Á9vÒÁ/(¼^©°þóò×»òèÿõMpg‹-ÂÈ¡<Æ­wK^Ú ¢ìn Ë*'©Žr Í®S,&|(EÐïʧ©|¬åè~œÖè !ý˜'Ü—lÚ»äÄ[w×¾Žýš3ó"çD¨ÿŠÉú–]UL­•€ãGºµ¾Á»¯Ŷ†]Â(ó£Ù î+ÖdŹì=½³£ö‚TÔ‘TÔÃ&3c[É\ùNm·¼á*xåzìÛlúE•çaNäÞE°áp{7¬é¶×~Vå{F»ç zˆ]ÁM?opßš”ëƒÎÇ'Ç›+c”|²ÄÿI^‘¬†HØ\f%}Ò; ‚ ð6Ô­5՛ɥ «ÎGޝ1Ú£ªù—Õñ Xݼ[ôõçV”æNÈúd[4#>x•E<Íš Ýø,X5§Õžg9Jìd7tÊå© …SɆ¾Ðs2urÞëW)sF¿ {ôŒwð:·UÖÛT—,Ôíj‚]—Eí8Õ‰5¨c5ÎK¯i4´D1¸0qjkWUa}‹’ÙßJÉåL}oŒ!‰â1Ý<þÄÍÚiðïœq1_œ»¬€™ñxÿ®âëT4½ ¶P?r^/ä•p2ÂïÚà«»“ëDHy{Jº²Ûpâ DAýëËyä¢*ÕêA¨‚ÒÓà«S𪄜RóG€1`ÝÆ'ì&]yѺ®¢ €âU;U ~Ó˜>Ép(­Nv['=„R4+ĪB[q¼¼@ U.ç(Šz…$Ú7C“Ïë£g:ø#:yéŒÒëh<•Ã>リ/NÕNù^a°Ze#kÖȬظœÎ¢WD • †k÷ÓUM#q–zÉ–S䮪;{¶GGƒ¸>cž'[Àû¶=áFᬠ.ò¡K‘°ï“‰5Õã˜È·€ã‚zR+•w?D;ð²M@§È¶Fð•9öö$~U?É>} Ù‰ ‚rõÇíÛK*&ódøø¾'–µ•¾¹za’o˜Ôµöv íãØ¾w’u ~`ÏÐâÆÝp33«ØO$m~O¨·:$¤ð'jÔ›8 Œzg,Ÿnú…h?££¸Ö1Ê8„V¸×žëŒAiÈÆ‹à:Ý«}”¥e˜|dÒ1µkljµúH¨ ç™ÔQ«c5ÍYî{K4GžK=&P|…+¡#&7!læ¤ÝO=*Ê®FÞ¸vÝH½Ä.Ec¿¤¨e79†Ó/èXÜ^n’õƒ[{Â|J#>Y×ãWŸ¥‘’ßùMt€ö­ZŠ©œÀ"Cmæ$–iOfpn`‡`ÑôF‰å Nµ§ÀGçÉ+¾ŸM­}cpV¢Õ#b/ë,òWP³+$ªbxqµû>¨Ì–•±jwá1&#¸×>ÆäY„xü`›Û%5}:tZb\É&¨Â9¸‘Ðþ” ”iûüû”15öŸS<c<üT„äßlR¾6:"Pã/3-mž&"F’4*7 !¤ô9Ý…í< @œ±cêèγ7V#dO²kÕ½z±€…DpJnȺÐk‰Mrb ð¡?ÿú‰k…- Ü‘kùКaP)Ð`¬g˜e„®Ú × ™rÆ:ÚQNÇk¹[Ê»úXÜÕœø £¹æ§¦«°•¥FÃ;Yú… Íy ·¤7Ø‚qè5ëÿñš,*¹¶Èéà&ë"—”Ã…'¬À E¶8„`½øË çÝQºyœ)‚–VšÉ&`Ÿ°“–C³£˜&Ý `¶È!ܺfï-t‘ýÕM #$Ž&;Eá•Åý“ЯâW»UÉ¿lÓN€Öß[núÃp4“ê­TÙtc6¦õ‹xäÆ¿ÂAª=ÏZvïçÉÁŸmQ©,,ðÆ߸uó3ÿ:/LÎîk¿" Œ¯³³¨“a­vð¡›p •ug¶EÚ¹vF“ªWPGcw=<äXiÖ·šÿO”šû”MEñwmIM*<ËËù(<.G¸®V«j‹ƒ_®\Sc¨)\rn‘ò¹²­E%$‹AoÉžba¼<´·%îÜÌ43a3fSöeG’ø B}¼®«üm `¹ e¿ßb `­(aÅþt‰˜ÜBë–Vžã#H>g•Æ«Á@ œJ‡†ôÇ‹HOœ 3®É¥íjO¥!Lþ,¥DãÙ¯¨ 8W0-9/£>äÅÊ#ÒM³H2ôÜì'ø^;³è×- ‰›ŕڑGMuižæn~“ñå™ÕÕÌ)mÈ‹^¡ Ë^u®ãíœ2<äeAh¯«—¢:éLæå‡½¢?¿Vµš5h …Î!И‹¬W6,6ñjk4¼„J¢» FL}ý|!cýþrE £46²x”U2SünªÐÂÆôó'!ÆÓ‡·-°çÈâÛ‡IÙµ?°†`i¢E’Å–+,ž[Àaì4©aIIÄè©Ë_§ãÜØ†Ì*ÖÓt•ì=h€Ó5 úÆþ¨;ÿÕÚš*ˆ°Z4´rQeUÕë_£­a›g}`l#´‰J¦Íй¢º og{•pYÃ`ÆŸ”ÿWˆ=WwÆ…)“¬?DTF}{­ÂàÆ¢Ç(yÞn5 ÑÎ}¦Ÿü·r`…(g»ˆ`‰±FÓ(MÁãx[½°ç‰X|GÕ÷U]j;‘sBîðMxD¥Ö*€7ìÏJ=oi3gè?íÉ[¦³KïÇIëQ¦aš¢àGx¾íh'Û¤àVÝ'W:¶mÜå2ÜêG‘n퇞Qù´z5üãˉ§Zj¤ó ¤Þ9Y!‚—¢`¹`3eÞÒè$´¶@ BðNHÔÏDü gŸ3 ü9[’†ßÝGÍÉV0k·ü¥ xóÞ Ñ,ÎÖóÿÿæ“úþð¼5Wí]©X!?)§JGƒ’B$BÐÚoYïÈBá{>)’7ŸIZ¡R1 RéÜÂ%1S7·ÜÄÚêúêì•îO‹ác²eE~dÝOZëfc»DZýéÃ[kî䤦·ÓvÁ¡>¼«Šée³'Gµ@rm±Ø3˜"ÁXâ´ç.{üšVËì-É®^õ¢LZqWfÏÇTÂÁf~ºaåíœõéAèHº‡§t ƒC빎@@ÊÒЦ~¿gÃô·Ê匙ŭwèñ'ôžÁI¾N™\ЍkÇ?­\7‡“qì¨+Ø5p!/KÛ2)œ02ò}œqVæÂÉü|öŽZû‹ë[O¯H¥´Þûê}ysÚÙç…O8ËŸƒ27IP;üà—-8GºªYÙ’¬ Ÿ%îJtýþOŸ$,ÏÅÞØ»I±qRéxÔMCòuÙñ³±aOÁ [~[vØ/ÚªÕºlh¯”ÔdÙz÷ Û|¬¨öŒx†\§«‹*šèÌu×çŦÉG¥þ´ÄS¯»‘–„Ù9 È%³],4[³÷Y‚mHÙ`áôðž)ÿUÏIn¸zc…‚mîNƒI)÷ñ뚺Ë>¹¯ š‰[JÇ(17ƒLÒ3‚w3¸° ªÝÍmð*º<§"œÚ•Îåä©DLø€«óeqà ³RÂ±Ž­´ò ^Ž7˜§v@¾ÙtßîoŸ9Hʇ‡z˜R8ü£Z)mbA[¼ñ2\qÄæa(†uf#Ý¢Ë×"çhÓ͑ƃ¼OßPšO”¢ìÙ§Äsˆ%'j´\S'­ÖĤöÃN1Ÿ]ŽŠã%eCˆ´«MK¢†}hqk«ÊùÕ«Š€üˆ‹ ú ª ÑrRfÑÃw–XX”Á-§šòßçS”:ìMˆ›†þmI%ªóý½U'Mù$æC3º!ßÊÂë*v¡ƒe˜¯îV¬ç;¥NIj¨ª )=cÉgÈèÔ­÷£éêZ¶ŠrðÊ?–4dFpܦþ Ä|ùÅá>„Ë{er÷©‡jŽü å =ÛÄC6o2O9¾rÿÊd&ðÖºó¦‚ûùþ4û4iÎc$â•pšÎ7žo›ì Õmy9-"ð¬^Dê.¤»ŠÕ—96†z=ÖZŠOéìÂ÷aU›ñÔ ( {ä×¼À´X-Áì÷ö–]Rwç¼ì´ŸÉƒÑ®CTÛÊ­qnB 'üŸ.ìÓöÇsD¿r?åu4”’¤“.Q$_òb²rê?{»Í¹ ,!²¤8ÿ0/â éÑr°Ld¯…Y¯:#~ݯ×bS%Öõ™Y¶è*“®A$.·3Á«ȲTª‰_l¼éÃ(rOZ‰²ø’Ÿr·^žöb§,Ud¿g×ÿ=è܈c¡?qð–zQj_cà~Y˜ÆìÕe+¢Î¸Ñër°™ö¹‹ÅÛ³QU³¨‡<;Ý 4~&·Fq`;|+C1r-ê^ñŒÇð&mR]*ö=‰ŽÞ½¥$;7w6º3Y2ÙlõE^û!Õ¬«¢ñù¿ÔŸ$Saðòµ3aÁŸ¤‹'NæDÔ¯e/†g¶E2|@ºp´¡?•¹¾|g‰SÕ‰®[[<ÜäA—‰ìŽzÍ…µ§á¨ÚÞŽ2]p®¾bKŽƒ»{drö{¥[âTì,Rwaò¸µ| öËQË$Ú“óåÚRÓ ìàLÄ­ˆ±ß ´÷ÓÍ{»ÜS\…ÙI äHbˆÐðÀÜÉÏþçB¤!ÛºGň"êäí)"PaÔÿJ'<;°¡¡ÎþÆ¿,;ô©–J;•KH•e2Ça=·1ˆYñ²ßmÜé_Y]LéˇÒ*TðôÉYP’£©ÿ1¬ZÁ5h)ôJ6÷ÆÍ06È$Š4G"µçPœ¡÷a¼½Dfûºô¡ÃqàVåË"›·DpÆ3ùÈmªyLZ¾R 5Ma-ÍK:oÙ6®9µQ…M@³¶ºØ1¥Î‡Ÿk®Û×9›Úî®9[ Å˜à™ï£-Ûþåž9«áDh/FùCâ¾>šº[¶¯=)m¤†ÆNÖ?žr‘÷¹Og9F‘ÇÞìÐê×ÞófóÒPøJ[(—±8Š"‹]^äÚý endstream endobj 216 0 obj << /Length1 1464 /Length2 7552 /Length3 0 /Length 8530 /Filter /FlateDecode >> stream xÚ·XÓí>.ÝÒ©À‘Ý„ÒHƒÔ`FlÀŒP”Fº»E$¤$¤;¤¤¤»$䇾ïû­ÿÿº~¿k×µ=çœûœçœç¹ïÏ6V&m] <nQ†Ã@~> €‚†®:?€O‡OŸ•UŠt„üãÇg5€¸" p˜Ä \! äO„¼jÀaU7G¿ €_D‚_T‚ ÀÇ'þî*P¹CÁ €*Aà³*À=]¡¶vÈ»}þYØ­9üââ¢ÜÒòNW¨5Ð!í Nw;Zƒºpk(éù_%Ø¥ìHg ^^‚îj+ÃÁ ð€"í:ÄÕü  r‚ü=>+@ÏŠø+  ·Az€\!€;‡#ÔCÜ¥¸ÁÀWÀÝî]u€–3öXý/7àïÃðóðÿ«ÜßÙ¿ Aa’AÖÖp'gÌ ³Ø@!-eu$ É ÁÀ¿ Gü.ä‚:‚¬îZ”åŸ@wþ=ÂÚêŒDð  Ž¿gäý]æî˜•``¸“†DàÿîOê ±¾;wOÞ¿/×÷€yÿcÙ@a`›ßc€ÝœyõaP7ˆŠâߘ;þ¿}¶$@˜OT\ q@PÖv¼¿7Ðót†ü òÿvßÍðÒÛî °¹òj¹ûÀ÷F€Ü!¤«ä¥÷þÛÂç瀡ÖH€Ä Ãÿwõ;7Äæ/ûîþ]¡(À ¾;úñø~¿þµ2»csôü7üÏó*é«>5Ràú{äŸ<£Þ@P@˜ÀÏ/ ½[¼üï:Ú èß}üG® Ìÿ«Ý»sú§e÷¿9Àþ·@8ÿ]K~Ç\€ýßD7åæ³¾{ãÿ¦ûŸ”ÿ?–ÿ®ò%úÿv¤ìæèø'Îþàÿ9A=ÿFÜ1× y§ ø`ÿ 5„ü%] êæô¿Q$èN ò0Û;FÅy„DþrCÊP¬ EZÛýEš¿üú¿åæ…A´áèï ÈÏÇ÷?±;Y;Ü=DwÌü‚ÜIè¿·U‚YÃÁ¿µ& ,¹º‚<ñï®úÎxó߉ Aýá2€—GÞ¥îF| °»âÿ¾W1a¯þo×_–(€×ð_?ß]úoóŽ[¼°ÿ0ÿ0E¼È›w`Ôó¿úµvsu½Óî^Ý óýçA  Öø3“pkÉûʀƋrùÀµ!!¢îã·§¸†«J´îÏý¤.Oó¦å[Ç×Ã.—Èv>ÜÖ:Qñ9˜óI “ š©jIJ±úÎí3L&ýs¡î&°®ÖÒbb)ÛR|Öéõ8•ã æv9Z›Hßz*õøséùG»¶š]Bô¡ˆ011ABô€&ùô¦Ò'òcãÍ*ÇrC{qôÊ[—)]ýÂ+ݳEÜhÐå”ÛÛDÎj§éÛ2É›í"tj–À1ÖÕv%š«hv¿ÓÆ€7ìVˆ]YÉ •ÕáãgÇûFU$·#QÁ—êÜ$Uâlæ°É#-5ŠVÁU® ‡°ƒsÊžgBuN:–˜¸ZgúÆõár ö[!'H³Z Á/õ²Ô&úþeül†~5£s%ÚC£Cò?@“ÞòNòÒaðO§K}üRhºSëG—žyš*‰Ò[˜Ñß¶9†j‘âúAkèÞÑ¥hÖ$‘ ¢?²Wî>µáxÈÔÖïª÷21ÕãYóɬ…ø-Ë–2bZXUψÍ‚""ëì~ÕàgQ;â:ïwqäí–ï„VZ•×£å.ÍÙëܶoøÞ 1ä2•¨ò0v{Õ~F«Sk‹Št»ØŸçè/øÞb0n»‘ϱYó'~Òžž£u^Ô,¦±¡.ú6UG›æM½£àNØób+_!¹Ñzg"á7¢Îùà7BºŽÕˆÑÌ—¾R7®ò£t*LýQEr*SSIüñ{r—1ƒ˜j3›®eÐçpÿ| §á*Ù<}©÷CfíÓ&Φ`ÈDßüÜ"ᆞê1?Ò=ÍûãF'Ή,}„Ę×ÂÞÇ[†ð'ï2Ï.ª1åðkSWÙ´ô‹ÔI ñ²Ôå  å‹Žvî2Ö´(‚4Þ±¤ÍÈ»íæBM€ {¨U j?>Ò#<8z·\aÓÈʲ£°Í!1jo¹*Rëðv>H¦~áøUÔvv¨æó0d4¾¢#FÐm#¶j3Ýê›Ì5[§W4^ÊrÕ=·æ3©qò³ë…ªtaÁš4òÀåPik!sš&cO«LMÕn9|½s‘Ýl±ì7TQzaÅÃø2çp<Ã"`ÜÎp´ØI¦?É‚êíÙ”lux§’Y”‡æ}7¢–÷…BæÄm Á%þj>¬ C‹²ùTúÓFñýû \ö18kßåA_ÈG&±ÐÒjÙÞ“”1|(WŠë„^Æ4x"¡'E9c_ãÝNÈå¹}XM&™bìxDèù³­Æ•\ÂEá_ìJÌÛ!)Œíµ-ßÇÃý«ÁBùÙ€÷ÁÆ3,ð6•àýÐÔõ‚ì¼"t†-¡ Ù,‚EÎÑ©Ž¯KŒ¯m$y$ —üÔÒš/}zbr&YHP4²pD[)"º±2>ºàc8î4ã¿{AîXõ’¸iåÖ*ÜASÏøœò$…àºöŠxýYàºù@æJk—m~bOKÀ²¢§Ê†®ÕƒÖ°±ZRèÈýMéÅdGZþÝ'M¾ò`ü7fÄÀퟖ›-?û© ‚]Þ9u'Ò‚m#&Væká 3ùF念·®Ä½¢|¿x4›öüæÛýwoáUQ%2 œ{ÌÒ\›ã[þxÙÍùO ü"xãe0ÝHúù`³EV­þ‰ Nm+%ï-Û/¶ãó¨Gßtù~¸mB¾äÑ…BÚôxlÂÈ ³ºîÉ‹…S}¡ä5l°gQ†S—db„œ\ ÌŠ77íŽò³c³Ö—e«Ž»l%¨o?µq lÚçŠÙ¡Ïkx8ö‰üȺ”¼íºà/JÇ.âï§ò†\­‚¨µš³dºÿ©¯=;ÍøŠò–{O½žªYUã'Ã1a²¸jÔ€hµÉwÔ'¬÷âêX_>ï"Eˆ¨y|ŠIºB€Âi¯ð®5ž†Ë£ØáØ8ŽõÉzŸ&›Ð7u>Ö¼&7˜æî|v'Õ’†‰€-¥>§´â9:ºqâÄ4Ž´4a<á¡jŸY\Ž~5h¾²øVÆy‰;¥^˜^Ð çî0 ©bHÞ¿A"6àx®´o=ç8£Í™/í¨e«b˜ì-ÈXêŒJ$¬í y̤Û•-Ó§€#û^†{¥/Ì(´ú‡jç¥n1^UP¡G0‚*âí‡ò#Þ¼õ(¡c–«ÂøïÏ–XU°YŸ_ÆOí{( ¢ϸǎº¼¥°§ŠFFm ŠŒ­ÎÓ[µûýJ¸òt I‹w41âe08c|1Œ?Èo,‡‡ýȾF3‡ÊsNÈ}EõË:?ù@¹©iy}'I“8ϼa«AÒø¹Dú‰T’ ÎO–R•ËENZ©mÈ;MWšY6_äÜÞÀ«Èï ”ŸI Û˜Û@" ü:bû'&4j&„“^µêŽ.(Ñ“Ñ(LKÕkU9Ö šH µú^p¹…˜âø5—–È#郯rè¨×Ãs_1Ú©=oÞ,~лK±˜Ö”+"DÐåyú»îÃð4G܆µ^ŽÈdŠÐ‚fLŸv>Ôãô|¡”s°î{-„,_øsüø$¡×ìgbM¢~YÜÒ%<^ +§ÿylž˜GõéÒ5ÁðŒ>‚!Èøs›§×ÍqÞH¼SÓ4ÀÒ't·˜ŽÇ©Ö®øò³9?Çp—¢­Ê}³øí¼MÀ§!öèš ±Ô|ÇŽ©†ì—Áëç–̽™Kt#u³²¿¥Î¶M¥Z×Ö´?¯Yí¦C†3ƒH¦ê Ò¶.¥Øëä|ÄãóF¾%‡°.â»¶CT·Œš5hûa=âÖ£“¥k´uxÆœ–»‹_[>'=ºè',›±›¨c­{Èâ^Ñ"Ú­Hµ·{–¹« ÂeßX9Í4¥XØw“8xqôªR~dùa¤q·ïš?–vÆ>ðžñqEccæ±Á‡ÖùÃÞ±Tª%íØI7 b½'þÅ|ú[ç=.!qœU©æŸ9½`"9…O+ËoŠÁævÉ íT`1Y¶9¯ŒäËã'ç9êë!s›‚)‰²Ñ½²À­ÔV—oV}Ö×´5óÔòZ<‹,6\Òžñís?y·ô’¶˜¶E¬S[BÒ¹¤-íq²[Üzû¼q#ùA!‰µ,è[4%²!|üK(Ø¢à,}÷TȸÓ\œ"eyeUY?LØ {;vDeì£êF¨FAèâI¶êæÝhŒ³k8¾WƒRVï¡;äp°EØnUàgm²ÒÛ^ üÚIŠeŠ8:QçåVF—·æh­9óp;×díI,*,|ÊÌ4ÿôEö¤«ßùÙ5€ŽEžT:*û=s<39ïHÆߥ&¤½uŸXû3x¸ÌgUÁûpQ(ŽèÇâ¹^³“•äþþ†l´Ñ\Mà@9‹x­¤p(ìZ|·`¹;ß”B¢áK»”'\Ðfw¨KKoH+ ‰¨k«9qž®_÷³æuË}»1T† ʽE¶üÁ..޾²_ŠùS¥aÚ| bc¦ÞRŠö·Ç•­~¥irxƒ·ÓÆ`—>ÜmG:†n%ÑÉ+yH—ë€ÌE^êø[ž|é²"ù:ƒŠh¡r²¾f˜5J^Wå‡ñy/tþìu°}¶ÝëûÏМ$ýН¯5ÆÖ(Ç“Ó/¸€È";›fò“F®‡±¯Æiyñ Yr–üíÜoÖ} ¢’ãèx*³çÑ:·b6½íËÜ x_*yÄßÀ%‹![Cn§T C5\%»¾T?¸"‘i‰Õ³â%¯Š@$õéfÓçƒþÏ«zíÄ/c0·1ÈÎQHn2 (DägÜ’e,À÷b·…Ÿ'”ùøÌŒÓĸÕlø Ä6î§N‚|fß`s¿Þo;þ#Þ gµ¨„ šK(´ÐÍNÛµŸÁþim¼‡ƒ‡–‚ð9çq©_œïQ­PÚsnE¬e8^½kRÜi·YošŠ¯Ãs1¯i±¥'j–bE9qŸƒUŸ¥KY RAG ÒölNsÊ“sš°xOÀŸjyc•?-ë¶0Œ·ÊVÓ}:>ÖK|ÖůéUf­]kôA0º}Ò‰ýaðI®Æðýdjöõžæ!P˜WMø‚×ÃÉ5ôþ7ÍoÊ1š„IÚ³ê” –E<œŒ9GÝ¥ Ì1‰Øq™¬DÏØo½l@)¹n'ãC”ƒ¨Ónº¢&ÆÃW®¬l?]Ö9¬‚W”Ô;ƒ7BGNÉ~öJû >e¬Fv(8¸ÒŽÔƒõL”-Òõ_fðŠô[ÍiùÈõ¼wÌøšÄSI™r~ëAõ“ËÛ³ˆG äDZÖ‚:®Ç¦‚™O“¢Oq„h‹\OÒÜî$o°­>–SÿæØWÉÕ&®å†ÊÏ ²çÙ zyRê w˜Í\>Ù•tï9ro#Á‘¢M)†ù}¤Ž¾IëKGVå l޾]¾ˆë\™74˜?yïìø™’ðÙê7r&ãÖnÁ­? –hœGCϼx%Ù%¾¡Òîþ&±Q}UÍK ¹Ìî5,ÊŸ‰²·ªtatx2rÏFÀc ¿YpKûöæÐ¯?žz{°_RÚ×läàAǼ“œŠñõ`:¿N¶O[&ÓN5z|8 C}ÿ˜þÓìx3O³*úûÞž õ¶ôèiø¼ôqDÙ ¤Amë'XWÞG‹Saö>¶’NB|¢èØ«ïÖugЏ/¹@ÈAyS­‚³ü5)ÃJˆåÛOÏe2"™‹Uä …¯¿LtºM:ôƒWäùâ$¹SŠ8,¢nËæš–<½¬4§<)¿~íïH?… ßÏP1G ¹! 0Hú@…¢0M(“ŸåÇÚqÚrÏ9µö9S0fP®˜q¡ f Ü—ìñÌëØù5f2Y N.Á¥9„¯T˜Jg€ˆön²¡ŠAšÔöƸ µHŸ|3~L]ì6ç;^®±—"Þ×ÈÅ`"¹I‡à_g6Ú=¦£—;±¥'O|àÔP²É}vt‚ó¬àæ2Q©"¹$ sÕ/eóÈ|Âbõ*…ËÔ³ïÛŽܦCG1Y™´œj‡ÎóQ1‹ÆwubK%3ÒZÕ>lBÁj4¶ ÐfVç*øûtn©•}°;o&ãÓ^U(÷º1#âHT©ãT};%%>2 “êh2Ã1>#2íݼ)õRÈœüÁÚOÅsâ¹ö•ñ*¢_/ˆH×¼§=$›5Ènƒ%Ö¸KW4Šó½ûúfm†iȶ™k9XoÚ5i—Eó£»>5êÓwÞ&•+Õ¤8·zÞæò[ ±ŠTØM Ò39w­Ðûf®dTÄf`lQ¨ÎqZ.ŽPÏ&’i¬éWL˜y­¥ÆÒh8¥|´¤ð:‘h¡Ñ;1zKo›m¾ Ó•«ï‰¼\ód"%Ͳq<  /‹Ä¡AÇNG\xÕL5$º¿´0"fDÂ`y¢ûP¢Œ0E¢¤BDgŸS?= ÙµxÂhÖퟕΔLi $mÕ±[c™B°T±mžÙç`* [í¼Î0ëCa^Ó¸å%.®ýèêtJ?(‡ÖýTüV:ºQ°f0®SÇdö!ïP’iX~˜Žï½Ó»!™<¶tÝ‹ÎÝ0ßRÆæÓ—^§ÒæÉµâÃ2?3›ÚÖô(ôäÉé.J‘™µDr´Ö#0‡º–Ð"ÊAlm‹>ˆµôý¹½ÓöÍ î{|÷ûÙ©⩦Ä; ç³ÃKÇG˜÷ÚŽI¥ó“-IÑ>î°¬Ê$5ÂÍïp7/_Äòz$róxƒ]°¥¨MŽo4Œ–MÖÌŒÛy%KȪ«ÊÍ$Ñû+Rî6²5l·/»µn¬$®‹Cv=_Dg i’R%6•‚œÞ³–Æë0Lx«]}JÉ?ižyfÑ ¸fØÛ¶ù8I“%Gä(¢g$æ%³·!LèkÀŽ)ûh®©RVÄ•ñq…h1ÿK€W¶_ÌH±Ÿu¼>€.½8ýx/–ïK®Vý¨g,"á¬+ãjm¶4.Q#kìz³éíÖ‘.JŽ4èÃzÞ¼Þw<µ~´ÖÊÁuï5$üyØ?y\‘|¶¿Ø–ö«ß®/ §JßÃa®‰´MjÜs±Ìß:Lª7Q“lrìo÷ºUNÆ(> \4@i—ÛºZ¹§#E&BqÍÄ)"¨­öÌÌÑNc¼±ÛßOaUù`oò’š±3ïŒÏÝUÌ °sš©QÒÚDŽgÓá‹>x·9­j\8õÀ«`BEAçÎ^ªD&WhBº”×¶žþÛ…g'b¤6/ ¥¿uÓ°‡ŽR'˜¡gbOƒ!Ô&¥vZS|D!f¯.ý÷ù¥nžÏµð ¯V?kÔòs{ÜÒJ¥Y® búˆêsðcü‘'!ãÆ—/€Q×»ÊÑFòIËÃÚ‘Yx¹– K~=‰uθZÙçi”²•ÃõL±¿>’p)_ä Rž¥™¿ ‹Æ¦2äN•7OfhÕ“i•ÊÒ@ý:lkM V뽫i0i¹]Þˆ/'‡_¡¿ÇÄFè%8x©¼C SZ»¬éw,ù›=Gkû¿=+IÞ®ÔàÈ„ jyßäLôL~vÖŽÒÑ/ -ièPî¤ôö>ϳ5ûk½Ô÷«/åwef‡Îœ¾ž¼v|  …çõ%›5¾k>küæ]®¨Ú¬K|ZŒ™BŠèMèá‡PpóJ ô–R¾¼ê¥ÚlBrÖ‚ý(Õ5㉠ÕC+O Ÿº1âždŽïL©äÃåÖñ&:꾇ΚÌg¿ˆ3ØsT^)s ˜åÔ¹Ú·›à³ì9ìYœØ*<Ôúfa÷T¦ˆ³öÔúK×w´›¯ÙP¿WŽÆ¢2«Á…Ie¶†'¦Õ|òô-z~U’f«)sûDö'ÿZ¿!P!ÐŽÙ¥þºñ;‡È±É2Ëﻀ ‡ 4|‚ÏVz£J:âmõ¢uVnµð_¨7ªFKjì‡z~²:,ê~°Ç7oO~IÄ©aãòTj…ðO¸%óxp¾r ø†5è8`[ O?<]ȉwG=!'²r˜Ûÿh 3!ÑC¦8·N`•(ó47Å`œY%Gï@Ñù˜z·HoÖf`º8E¾%Ý]¿ mNÃ~ø~Ó!6LÒ#>c÷GN­%°â&ö ÍÈÔ‰þVUòTÐÙEë¬äñ‰›ÀéD‰š¾Ã—kµn'$uåFaÈi’=ˆ!NU…á*ö[$¯»´ªµEo=Þtù\"Uù›Nô_3S„òKšÑœT¸n9ù9)N8wiVK¾žì¹{•CH3ب!Ÿàg)í2ö{ª&`ü¸8c!Ù\tåU†¾Â6F×ÌYˆdmÛ/ŸìÇ(ïé z¶Ÿw_=Çã¾¶$"©Æ£í'—/²½3Ô+z쬴ⓗ{ô|g æÍ”í(tÙ»‡REÂ[iÇvmn0 ZL-éÖØßÁ£×‡ ¸),&|µº3+çvŶ‚Ñì;…ùïOClóJÖ8sÑ"k`%,‡38¶úü ”1ôî7JšV_Iþ!bï¢qqù­)«V»ä¯dº*¡Þ–ŽfuNçøÔ؈ÖÛ딯ýtE«ÜÌt-Æôý°Ÿ¦«ÙÙgǾyÛGöª'º&¸%Ý¿á¼é#»Ö1‰ !ŽsjLÁ8‰¹dŽ‚f–FŸÀ÷¶ÚNŠ>Ç¥nU‘ØÿÊ+ å4ÓY½±Å³¤ ¶¿†Ž# N$ƒ°ˆ SìÚNé{7ü…Ñ:åP¦¼§`ûÊ.é@'%ßÓïWgNsî-9fè‚LC£¢¦r]Ñ¥œÅuغý ¹‘öš/F½ZuÆ{Ž C5KÕ+4g‡L×ÓÛÂàÍ1u€[œ¢äË/ŽÑ`›1ÝJ©¦ 0Tóçî ^`®¦Îž1JÛNxHî¾H³gÊhd’½=/ÉÖ-ºP¾¤ØÝfŸæ9'DsÛw«T2´õ»Ã0Fèsø,¸±LF<¨½æé%KôÑì— Up<ò¨Àb³ÞA0F5ðÚýÔs3P'V~Ͳq¶¡1†½Kóù™}Hå^¡…xÈv¬WR‡5º¨ÍOÄ[pQjáÆÖ,UJ`eH/¨lý— Ø˜?&ëd¸Îý­à–ÄAë,r+!Ê*—^Äãȇ¢?Zg‘PËó†s=Ë«ieÅŠõ/9Íèé±£I>Õ*÷œJB mwpv Õl«uQß2ÈnÚO™Õx_ˆíŸ”˜ÒÜ×7")µTÓÖ÷‘W\q°ð±­7\´^ïâ÷ÁŠÈšO£€=q¥ì‘ܧq¤?ij#_Y[Ö±'}™üSîajMœÔÏ›b³w¯}Üüç g›×M/>çŠ$M¶ =0Bƅɘª¼"v ‰ 7Ðùl”óÜk?–‚$Q_–̯Ù­ƒù' ï]ˆë-Û9•lžìMçÍ5·% )†Ô©™üt»ì:š¨e|?S±|ë%>¨M9ýy[Ê.0~ž'°åRPDX.·%ÏévÚÈgŽnÛÉYî¸>^apYöçWC™Rý†§AÀÓ­ ·O»T^§Þ z«³‚ lÙYÈï¿è}¡$Y“z5béÜx²ÒäÑc¡1BѸ$$@'¬w™¨ÌEßç’§!å…>¤~ì@ ™ÒIÆVê‡2E__OÛ§´m{œ4 ߑ̿‡í²´7—V3ë—.káüà0<â©Üû£øEÕÅÔ!›ý6/¨ Õ¢±ʃ99ÜzÀÁd Ú,”[ä’£¡?a­§lƒh¿i7 °×ä`YXV˜õB=7$…XãŸ*+î꾎.(3Àžv=ú&„6žpÝ2¦@d /Wê£B"¾þ“ªƒ endstream endobj 218 0 obj << /Length1 1569 /Length2 8003 /Length3 0 /Length 9034 /Filter /FlateDecode >> stream xÚveT”m.CHH×PÒtH‡t#- Ì£0C -”€R‚¤¤€R"!!-Ò R’}ßï}ý¾s~œ5k=ó\{_{ß{ß÷µïõp³ë )ÂÑv54 #A¤Ê:FÚÆÆPA Ânnc$Æñ¯À}áîD£¤ÿà(»#`˜k› sMÕA£€šžÎ@¨*. •†@€ÂˆÔˆhwi  Ì ꀀšhÂÀ­ŒvõuG::a®WúÏ+מ•’’üTtA¸#ía(  ã„p¹^Ñæ 4BÛ#ßÿJÁ{Û ƒq•ƒ½½½A0ÚÝQŽOèÄ8 w/ø«m .ÌñOs 7ÐØ éñ—Ëí€ñ†¹#€×g¤=åq䉂#Ü×ë4´z®Ô_dí¿‚À¿·AÿI÷wô¯DHÔï`˜½=ÚņòE¢HgPOM„ñÁa(ø/"ÌÙ}ó‚!avׄßÅÀjŠ@ØuwèaïŽtÅx€<οºÿJs½Ñª(¸2ÚÅÂx~Õ§‚tGØ_ï¼/øŸ#~€B{£üÿÅHÜáW+pOW° 鿉ÐPù›umüksD`€bDòú`n@„½ø×"ƾ®ˆßNè/óuþ®hW Ãu+ˆ¤âúàïóB1ÿ?ÿP(Ž´ÇíŽHàßì×f„Ã_øZîH %äZ„P ä×ïŸ7ëkÁÑ(gßé¿l¡h¡¢¯(ðOÓÿ¸•”Ð>@!aPHXD(•ŠK‰þ;‘> ùw!„j Ð@©¿ê½Þ¨ÿÔìõ·xÿž>àçÒE_ äýWïV1ˆýõúÿ­úß!ÿ/±ÿÊòÿ¡÷ÿ­IÍÓÙù7ƒ÷?”ÿ‹sA:ûþ͹–°'æztÐ×Cú_ª)â¯)ÖAÀ‘ž.ÿëÕÀÀ®ÇBåx-m!)¨ø_f¤‡Ò×Gbì~Ëä/³É¯±sF¢úh䯫(…@þÇw=kö®¯kuþv!®Gé¿WUEÙ£á¿fNXLsw‡ù ×¢úC¯‡Žðù­g „Bc®C€×Ðî€_G+%Ã~™~#èµÚÀˆ? 0ìð‚‘@I Øù(»ü ¯µFý¯S¹þE`÷? 8Œù^Wåù¼^Èë_x-i°Ïoø_[aïéî~}=üVíõ>ýÿ¾‹„=`rm/~¿:¼éäµ"“·Ðò€H»¸ÉÑ•'›( Î{„óA—þÁ+&ÑÜCÉ”,ý>'¹ K\\숧LªqÞ¤”šA„TÔ¨pÔ£·@5·u¥Iw‰x‡ö íŒ ±ô©/Ö•}»ÔwØK̹å”û©Œ"Ð4A,'«knzL¬¥yåÄzkã|R´g¡ßõÔ ¤ >÷´¨@î‡F¦’h¶ÖŸòhZÔnS—7SÙŽw(‘‰}ޏÀTïÚ1™¿’néo>sjÖRhÁ~/X“óz XÐs<©›ÈÉ%ë.a@û.èù!¹PEm|»_¸ñP#NÏÚÕ[nð3¸ô8iÚ}bïÍ'õïñ~Ù¯6{‚ÅGÕyw^P´"G>Ùr.ã½Ð}|›6"Wƒ+RyÂ4fÐq]ý‘bCÝÃÑ•s²šxÂ=›7 ÄæçcÉ1sä€î`cÍ»¥«”ÛA|w\=•¶Q[-˜eóöC!ÞŒ¾5­ùñ›ªjÆ–’MИOò"ÏdÞ˜´}Lj—µÅn[ÙJ…oDÍ Î0T á•™ßÖð› V¯AëPÅr†Ëw\²‰ŠÖCØ« Ÿ_²žíjò!Ê[ÙÉ)hkQoÚ¡›Û;¤£êØ mXW%ŠŸx}›ðä*HìSËò+§#xð¯<·ì',oZ1Âg.¢×)ÌÂR%m!fL¯¦ c”Gqé“Þn³› NÚ‡< Û_± Ô*qwriˈÈÈß‚èñ WF¨É|7Œ²¿.ó±JízÃÖ&Ä_Àþ–‡ùkÔÃ7ËRmää=úÒÆ¡Žhï~ A_¬øMêJšÊ,Þ€>{Ó‘eßÔÐ8ƒ¼s°Ø¬ñ$ÕÎâŠFnõÔ¨’w€Ôc«^ÀB_ÌM=—šu-ÓCøwdꓟVhXo eS(ìß›‚­G?wƒ¸é@ðÏε¹ÒZZ2DÉ!—;쬥}|Q‡…BTËs~ŽÔž"b;MŽ¢Œ®2‰&‰LîíÁöGÕAË©Eþ¸bôÄu[çXà;)Ò<ÆgÖÊ:Âä9þ™©xzÏ3%\‘¹OK<úˆxÉ Ô+2²òé€È­OÚj ÍïÞº?ëSAulýìçg]åc¯Å¦vEK%¢ŽÐ/íu@ÊÅ{žÄ /g®˜Tš4ãÍàñöP$Ð+euXܤ6– ^ ¯ÂŽ‹6¥oöªfaˆ@(ÛlÙë!î–åæ<ƒ<‰XÓ (m”³E_ªÁ;̶©Y üÎ+Я…øÊJ-áQ#±5[’AÈ'E$éF!;+µ÷·‹^]è6741gÊ×^–´‰FÅzp¦¹Ë‚s±­š]>9=&w·ì…Ï|AßøE}P]óÆ.%È¿ýˆISæº,›:õ’ˆǃÛLÀa=)xóÈ |ø»]Ú Ú[}0oȘMè÷¤M8}¸­Ôoþc©:æ®Ád0;eÙyüÁ\z#~-ÖÑÛ×fR_Ñ ÁšD1]CózzùÇ$Î5‰¸¢Y˜—¼‰²¯lä¶Z¼}‹dr)û;ÚPÓ÷^1A97¬nÈSÐÅ"Xy[\¿µlíO™u2H]Ξt½™OÓ›~—^äÞÉ%”7%ÊGÔ7l~¼ òSäg»‰“‹ô´ëlÂËÞlíÉ©>Õ]“øA«—±åû•’¸9 ý—{³¼yqúŽlòSÅ 3Nšj¢[Õoîâ¹n¦Rfé*ÕI?ÿòÓ‡u˜õòçÛe?Q‚‹c)¥—n÷¨än÷Ìõ÷ù)?»˜°>Ëò‘´äÙ®üPúí(è'^ăôàÃ÷‡Î®-ÌQ‰ô¾º¡_Ÿ¶eøQ¦4{©_öÙßWcã÷UŸN§©[Z†òX…¬¹Ý«}Ê ¥â¶+¼è·QyVµ¡Ìá¥`@u˜áÛmSx4ÆÓ«ÁAÛJ¯îÝzKhHià«\¦¾ì2˦Ë-1¶\·Çj¢€'ÛÇ:„ÆG²¾ð•f¿ÔPÐÀ»7\Ýbó®ó–Q´êN³°[ÓùB˜ö¥ò2©¤MQÐvQù÷5û|Å6.©á† ^1 3ªÍmp¢n}ª°&ÚyuMäN£â·Yza ·þû6ÞÊžãt>¤uUŽáf´B¥D¨ñ¬šŠ>{§oÏCCÿëëc¦vtÿ Í:èke ¿4Vù¤yÑ~m÷#V@ëÞ×&‰Ð;¡\–‰ËŠóm]åhÞQ—üÑÓOXX2ª ~û!;ùÃ.Ïb†Û,•Uçã|Puý;i›ùµ8ïç§ê-lëª:™±õÙÜovƺ”œW@©mcu¢-xý·¨w¯š½…ßݼeþÊi×wn Û U?¸^G¦Ý£K`­šú0y#ÿÓô Õócý¾{ÂãüéC[6+£/•›\¹i^ÛåÂ.黸xj¼|. OEÈ*oâKÚ˜PÔ-¡ª AQcçž(URöˆýjßa×9Ÿ6 1¡B;ë)ß6Ùuþ|Wëi»ø -Ü)J?=;+jQrÛ¨ª°im0Sn0úÜ+È5RùÜ)2£B(÷»Û‹xcs¹Á ÎãÙ ´È#K,ÿ êËyÆœ³yø!ïöëŽt¢ žŠ—CôZÕÒ&Ñûm!rÆõ²S_‘Žß-àBOGëí ¿%rÄf?­¥¼õPà±ÏiˆêAß`[y à=MfÑËC©²hHþØÔÛ÷=ë³·~Ã~™¹ØzCôilüÙý-™Yñrɳê*²­kvR&‚ª!ìóïõJ ÷î1KM¯%R×5ñuí³{4ÞÉyh ™=xŽð­ŠžÜP¯½‘KaFYÜÇú2Éa&º'3fs"[>ÖTü¹Èè½â¸Üm„`Ø+<ÔÀ£8zrAkz#†µÄŠV‚A9Èœ¦oó7v6ìPÚÎöÊÔÚ2Ö)ɦÃ÷Á–?wŒ# I.¬žl]´\Ó¨5Ο»“Øjâr\•iz™¦ÖEûNtÍE}’¯I/[›cjÉ^Ïl¡…>®1|]²6ÂÂ[&žN{-*?}ÎÑí¥éèØûcÖi. ÛtQ3{%_ÆhPä´½ÖŠ—°.ž0Zf¥´Dþy÷ɪ?…-Jriî³"üP—õÎVßB#­ú”œÏ«U’÷¢ ·-ĸ,m‘RlòÎ ’Yü:ê,õ±ÖCòS’>¾¸­À!¡¬C€KKXãÒ¹@¢ºhi3îÇjA§ z¦>UíÕcK§{6Vnê†@ÞÂÙÈ„™½†$5W>Á‘IXBD`*’€“q\î]-Ú";نʪڔ¦+‰F'ˆ‡XtÁXîLæNX)“:C˯r:ï¨Ô2˜žxØ}‰}»ÃúÎ|t]œÏDh÷x¨ü¬Î¢•R—?OoKÓÙ˜úPÿý%u”õ-Pˆ}Ï¥ÝQ†¥!†„´£: öHë›ÀSéZµ­iæDì%©û! ú±·­Ûeðቿ-ŒNÎL¹ÛÆh“틃íΪ%’bAñqxå©!GP?ËQ¯ ÿÅìÌOdo;òÚº7þäNɺ,ûtezêË€ÏêUÞ•ª³F&m2>¾™²(.S€ùžö£üç¡îÅA¬MêšËëjî-f?éûÆ¿o’Ø›© ’›^A ?P,©Dbsú¬ÞÌ›Ç µ+&êžQM?vC<ÄœÄ)2t&Éï'½Lns!èõâþüa«¡ú›;Þ÷KZ¶fË¥î`æÏõ5ÿ¹ÑÖÆs¦4Â>fª<;UA Rf<€íîWõ±×Žkg–€Q›ŒqHâwî{Tý3uy‰·êÐ'žÈ©ÁµÊº›"Ïg›KÇÄcÌ¿×b/'Šˆ ˜ñ;š#XK™çœ, úiˆÛ…Ågê¿%hïá˜ÛŸÆ‚~” Y Ãç÷FмӿøDž SaBç –†6—µ4>ãÙÕ«– ?³бñéz ™Q¡ÄYÝxé¦Mp^Ón2"‡kë2ꉜ=;¹×Hïmã˺Ïoœ/”_­)?záorz•÷mQïïvÈNð>ž©14µE™.3Ly^ÜPŽñ<ÄâØ\d›šÜæ+Q-v ý2+Sé4›bŽX/ˆïñœ[4ŒV¯€Ý`°µ·–øârÐô'nÜMÇ›8ÛŠ2}Ë/ï Ö ÅbŽ¿¿Ùž”ÛA¤¾@'÷§›â«Ì ß~—Ê+þqëÜͶ»`%|D£“Ì_K¥F’KŽˆAâ&Ö÷«šš\·1½U*Õ§Vø¾âz7=Z·æ&{ý­Üv?$º+ YTyeK®‘ï% 0éáxiŸÈ(:{¦—Ì&–²V½swãÕ1hÁê^.ÉfKã-`F¾Gò iÄëšÓà•Ûâ-sÎØìlo¸ªä§gû–&¤21<;ªwç“lº 'ÞÄ^Ô6\ª¾æÉív[ŒÅ|6YL]«yì:CõʥijӗXÝÏëDš· ƒÙ”b2ñjè¨ô—Ú02ÁáCíú®bÙCì,í{îǧ½áo ‹ªżœÜZ8>|mõ¬Æw¼È«bfžÐ8r–9µÉé/xi„×Ê.59A„OP–µ.çí¯LS7ɰ“_¼fåÖ÷ü5 ò53éü;stµi)OŒ ”zÉNbš·Ž1œ4=P(óhÙ­ö«LétÐY³³>@ÃUÚá$¸»¸ûYWþ¢zža¯خɥ«[Üüƒäáãªá´ë—©7°’š1—C £.`¡  ¦¬ªå’q'#ºE­ÃØïñ“.|ÜKrS¦ÊçEºÜzâœÓ_U~£ŽÐk;uþ‹7…«âu™ƒH$§AÅ ¢—’ic£,m¾iÖ½EGN?’¾²Îz0)×¥}!Ô<à廊![Ù÷RFG}—ÛRJHÎyO“ÅkTýí‹×òг`¬<ý¦c–‡Ù0ª‹Ú×ä’ž¸<1{uRY ¦¹“æp]9±6hÆ7©+»h’ÉûDQ˜Àd–G–ñoC^xöߺBщœ/V4´ˆÕnë6äjâL°×—l&Ín0¢^ìª.Ÿ`Ó¬W+6o2©ÝB¨<Ù«–ômÚ#‘hš¨RÖ¼¯k>>w!ÿø-’«ö(âÍF{pUÅ4è9(S~ÅôS”C+xVª‡¯,£ìÃúÔš_”2ðõâ,7ÌPÊ_~âU%ƒ6i]Vï¸`L?ZOþ€-CH5IྻƣXÉ'…÷,]ëùˆ7RóJÇt‚‚29ÞÒXø}#çúƒ&¢ ¶´!_aCà¼ËÉ×ÓJÿgVŽÞ¥é~˃wÐ!jU÷øA$¢“€ñî»ßV¢o˜8§(³{~‚¦¥W¯^~½Þæ÷­S2ú,úN*k¤vùe;žû wOX±­ÙÅ&~ØC­¾½ò9Ò¿!B<°»â›¨]Ü BsÆß¶¢øžÐÞÞ³ž?¨ôâ—#ꙟt.}'ôj™A2—g?6;Ý7%Dýd1=Þ Žú!ô ®@›Uw<§ë¸3ÜÆF:Õóšx—pn]¾l°¿ mšÎì ÀqëJ[R{h“ç)â×qûò8sâf(ŽwßS£|’òB £ "ßÊÍ"ã®A™Ü»Þ$¥ñ•ì"fíV‰fà–¶è”•©òH)Iµœ€³Îé'3ܤÐP±{=Ñ^]! Ú¶n&Ÿ²¯¿.Kà Vúe³˜½w °ƒg+„V[©é£ [0¶o}$ù.nmqЉ“GÒÁiYå8lJY8¼iæq›m+5ª~LÝ]b†°>Æe!TsL=¹óÈ@G‰Ýrá°,‹¸0åäTMFÛúNP9TßšílüÙ}îýÄõÀDžIA8L›ùf%%³Nòz@ãdy•ªÀ»J’æ²±¢(JÊNQžÜ. ·¸0÷33:‹wý"bÏD¾Æ' §Eþhñ}m骄YÓ«§Œ÷X›…ˆé.›ÚÂÅÕ=ýª²"Ý 3ùx¬6ͬ;Uqîºá"^‘ü¼ßälÇú{tw}eSìó§¢›¾ÉSÒ.C2\ñžØMKa¤ùè¡êÍ(­L±¡²éØÄ³J|ËñCø©†A„:òÒÞ¶ä–Ÿg@ù;«Ë0N_­;ÁÓàô¾²b'¤+l·ôøs5[¢»|µˆç ­²“åBϼ|˜ÜWsøðH¼8:;'jV”$Mc™ȃqYÔQ›D§ÅÙòÇß¾G}ËyÊÍöxžô=@¼ê§iŸ8§ ƒq+œmíÝVó“° _zˆCšüõgná§…¶†çONÆö¬®ÖiÄ­ÏÅï?âo øƒ&q•Gä°P}¼BšN+÷ŠËå­N›²t¢µ¯.ÚhÒÁy˜N²„^ÍÍÅXÁ‹5çtŸ°ïàwêó7øúÇqèÍoðo' r5©zw§_F,ólv]ùr ëÞ§|ó’„&C¯O|¾‡¢9m­Xj¯8¯íÌù:iõ©|àôƒfîÐLYâ;Ó‹c¢îotåîÐOØ5:ÍËJM÷-Ï8œ z#buf),Ê>ŠÛ¹AÝî‡ÊTÝZ £_Rðæ¹Ž( ?µ€„Õú5g󔇚ÀÜFYºnù"<³ƒX е“T-ÇÆM/,s/u7œüÁ‰ ·™n‰… «møõ¼57ªm®îi5 á+Ýs6s©»=KØo¶§LWí²èø#1ØINkÚZÙÀ¾ÍH]+xVT^tª±Aíðsà ó!®)®ˆÊç4Ù*.Î!ÛfÏÓŒ¦eòöÏü:í3²(š‚‡ŽMEÕ°rCC ž?¼'+CÕÎà·˜U™q1šX‚`jŒOJZ ù¼ñMj'—Õ‚b¨ Y¸åÉ·×¾Ý@^ æ eöû1¥@ª"2™é=ÉÚÓ¥†Íé9…]ÛDÃQ_JÛa7˜…-­©Dbç3Þãx™÷2¨…@DZbŠG@%KBªzeòÙ’:K¯v]†E'³ú¥Vy¢IˆHƒöjÈ!M«ùy·€£® C\€²Íþæ—³w™¬Æ4“¤™¥R?Ç\0/=éŹs'>®®Ì¶ˆ vÔã¸ô('jÂ5å‘%ÄYE­çhö«QÕjN‰GºVZÇ:úhl¶Tøò’5ßC(FXÍÛ»¼›ç–ð—€g^9R†§£³W•%.èçRÞ0'ý,iå 8uwÒ©lyajS®¼DXeñ}b8b3{‚è´¶°Ûù$³K¢iñö]õlcw¶„]„5…l—ZA-#ökª¹«^83;“=MÈú“[Ï^}x ^Úª¿²°çÉš{FµñéÝ!#Š{ à}4ÜÔu©…ßÛ_š7’[bØê^(ý%»¹P\iýpy¾!ëåì ¬—P^ZìüE#SD›õâý7µl[awÖ3ðžÊü4l— ¸à(ÜÑŒ'o<»_%}ÒJ~Rÿn‹2áÝ€nNC§Žxž+ÝñsŸ[H)3ñ¸‰-Ÿ'Ç.“ )}ÅÍãÛP9Y¾0¦ÔHWêÁÚÃúù&!ªÄ„Ëq—v«ôÉÀétS$öÈÈ‘à\ØKIÞ}½ƒé-&;yFT×1y·´õ³‹×Y„v÷Q²â\¡Þœ4¿Œ¼¶5‡þ6­’lÊ›@Ý\­—‰‰©TþÇ&ƒÍòË9¦UáMàÑ@îð×j¯-âºÒ1“tÙ¹Á·>$”>q§É°5*¶ö†oÖP:|ƒYîbÔÈéIM“pmµ‰T ýoÞ`™÷\Â)>ªþNé~ú8 »}Õ|Ë·$+{9LŠÛë ¹x½Dq{vmži•9{“iªˆ$HÂÖlÐ&G[ýávhÏ¡¯îÉËâ2ÈÂݶW؃ŒÛü’7på°¥?É?°®ÊœÞ'ÂÒPö—y›öL¢˜ô‹B ÞÊ0—‘ÖIÞð–3$ Ûæ<~òì±úø"Óp'´Wáfª´¬».7¼O÷ëðZgmž˜¸`¹ê}ÊI¤<Èé§ §aYìÉHµ:Í*+룊ÁxZþAâ†6eB߇?þò ÿ‚€‰ÄÓõ]¢2<†iá®J:á p'¯ÆÝÚKëx#|y±³ñž~”I’vmîµ½Ø ‚]yí¸fã³´7{R9á\ñ ùu…ŸïNȺOn6¹lb9Z¨GM­›’ QȾÕÀÎãÛF‰Íž_¶š?Qྣ¶ê¾7wAy5Òéã÷±Î¯K9n„<¥„œ:Uñu 2Ž[¸~éèv+RÞômQ¹ÓãcÑíÄÒ¨™­o8¤U>©ç´Q:À@mõϤÓå~ÆØòå-‘Òè‡úì?žÏ)\¡sÔV¿7.”«€óñÐ…=—ROEšäÒwÛè9°é15ù½±‘;> q ƒi˜™Ê¾:èlÁͺµ:¾Ý;ÎÁ×Z¿Ã?<ÿaóÆ.…~¯ ºqˆ.IÊÐF‡éeøTeÐG^ÁÈÓœÈäv£(rßQ#+ǵ<ߎô”Uþ[DZŸ0ÍOƒ!ýáËû?¢ÞŸ;c·‚K7,ø°(Óp'Ê뇓 ß¼]Øjš"¾úô”¯Q×áµG²’_ÿj ÀÊ× |˜m²ˆûcÍý‹¯þY}«ÓO­¸ykmv“â?ÚŒnÒœŸ®s:3wýtø O[ „S…x"c4Ѹç:øów»µ~g†í {¿©¿ßX»Üc]›¬ù°mÕŠÙÜÍ‘/ccæÎÂù÷b:²-ÜŠåò•Lz¨†Húoe|ûYîú”Ša{¿,‘E¡¼™‘J|DG¨DŒ»~èȲp6ª¾K®Ã©ñ‘:J*tîž*qA©1••ƛЯk°¤–”"Œéÿ?¶~bC endstream endobj 220 0 obj << /Length1 1798 /Length2 9368 /Length3 0 /Length 10484 /Filter /FlateDecode >> stream xÚ·P”íð”t7K7,Ý ÝÝÍ ,±K,]Ò !Ò ’Ò ’‚ %J ÒÝÝ‹Oúü¿oæ}ggvïßés]çÜ3ËH«¥Ë)m ³+À pN. (@V]W—ù¸€@^ FF=Üü·ƒÑìîAE³uƒà29üÁP¨x:xø<‚¢9ˆ;ØæáÜ}¹ÿº\'(Ìêÿ7ÙA ¶v¿Ú°õtåÖ‡BÜ<ÁÊrÙ<ˆ0þ•Ùƒá ( ä€Ý`î_ ô|]Á(y~‰zôw…¹ìÚBìÀ?þ /0îî ôÿ]ñ_ÂàáØBlàk°=Šñoô1ØîO~¸wˆÀø0~<à¯Ï?Oæf ƒ:ûþkþÇs«)h(ʨ²ÿÕò?J˜ÀŸSÀÉ+ˆˆˆ„Dÿ £‚üUÆo®ÊP;@äÏjŽéþ–¿öƒðßX°‡ÁXþs3 Ðæá‹çÿyÚÿpùÿò_Qþ¯sþ¿)x:;ÿ¡gùÓàÿ£¹@œ}ÿ²x\OøÃ¨ÃVú¿¦†à?7Wl ñtù_­2ô° ÒP{çâ¡ñÛjAà6ÎËŸrý_›æ ‚µ`_ï'ø?º‡õ²qzxx< å*ðÃöü7¥<ÔfûkÍx ww/ða–xþ<ûh öùcŒÜ\PüÁðÐ^ ÀæŽñëN…ܲ¿D’0€[îzЩÿK"nÍHàÖú—xÜ:ÿ€[÷_âpëýK‚nƒHä!è_zÈ`óý: nÛßÀ þ RÚý‹¿ò›ö¡ûßð¡‡ßPÀý»ñC×οáC.ÿâÃ2qCÇ2`¿áCb×ßð!‘ûoøÈã7|hþ>\)7Üû÷X§áù>”åõò?ØýOóÿŒ€§»ûÛð5}˜¿ù×.ì¶Á˜™„Ùˆ…;Ö…·]ÖJSzs® £.,µÇ$÷F À™¦òýÔg*~u“±²­"LÓš.›  dÛ¿ñ1ëÊ™OUʃ#È÷®Èr \tÙƒ©maö£Bi1+øIÚT¸V¦È¦ÌɆ“·BÝ|ÕëÅ?Û=6LDv.€’s<ÚTJx¼tnûb¬1-Ãü³±^»iº§ž²þèOÄXHÂ…L[ù•ïŠiBÆç?ú³ûzÓøŽ U{j«" ɉüThs_~"'NÊViö@`’8—-Oæ;ïAÈüŒúu+ÐZ»çT;'Í )éñ;#$Šƒ¦”}µ–84 aQ˜«·„5×.°«¹¬oæ}B]*þÏ45s»nq™5AÀó¸ñ‹>ÞyÄ" ÝÜFR$2Ûš]5É ®ÿ7TÌùˤłù´€¥!&?<!GÂÕŽ¦Ïkh¨²Å©²Ã.EÔ %á¡igÕa3Ÿðdí 7Ô™6E ?ÉÇ„É ¶š³ Üj?òÀl’FžîÅ@üvŸôG–ð ¦SÕ½ÂzB*÷d³Cx»¼ÀGd$µ;EO-Wž¦û¡ÛĠΘϟ ™8°Æ¬͵éTÏÑe?€Ú‚{/®MéØ;:Y·ÊjëÏ—LÑ­„èQ³üšÌÃEoJq¦Ó)~ 4ŽEÕ4²îSÞ‰0,g­ÚoÄ4‡ÚCNó N^/tl8Ûì1ª |ºøm¶ žG£ºîK§°2Z±‡ôƒÅx¼qÐZ6œwìR>´Ú̩ш¨íiâ /†YR–¡ÙìÛ]Ò©ÌdÕ>õ;jÎÜd]vð}ìÊžÓæVðƒó<g½VüÝÛ´Á­IÇQ…étö+×!ƒi¶ƒú.«º’r6»Æ$Û;^ØÃˆÏW8ÙÛ½—g¾ozÖ÷ÚšÒ.†hCÕ®’“w=EÚÄJZÃÞ4G;ª”5l:í½a{m"ʯëäÜèñ570˜½¤ózJéõyViË`ÎX˜Ê1·ÏÏ[ꬭhxÐwmù2 ñ26m©ä÷-iyÛŠU\”O®O"æ+œT¶mHñ¾¼Ò%^)|E22Bò¦^:Ų”(‹‹Ö-å“(¯Ö-z§ýëÁëvJf +ðûš¯¹Þ{N%nS޲ÆR/,×!ŸI§°¡üðÈe%w²y’Tú=$%O,_Õ:9ýTÄ~ÿ^ MRêã·Ôи…ýÙ[!^Ÿ wl©(¯¸Kó–eº¹7—JSþ©zêSjp'óÕEÓÄîC²¸¥ÐðD’‰IC¶c=@0[Ÿžñº J>j>Û)"©A–žkÛQó•¼¢AfPÅ)sŠãgq)ý¢4Ñå"tïšèò,çÀÌ!®Â—Õø‘îýŶ(7=hü(zg}R˜ùDüÚ$9°EÁ^5æ¬nH…4€—$Êq;e÷b/I“¿Œ#j•²äJ=_/yJTâÖÑ#ëûŹA(sÐÊ/·¾Wƒðtæü Èüô*8rø„4йxY/‰ª³–¶QùÀ,Aþ|Ç cm5ìÓcÊYà­ +b²LÄB5̇¶;–½’£†qs{Ë¥/•NÃœé ˜Li1ÇuæÏ"34쎢&| ©BÞ=Ü~á¡xAxŸñ2é5±û@‚ŒÁ0ø¹‹•»äë3aJÝ¡g'ÂþBO*F‘ v9‡òÑ-..½B ÜG©w „öÉL}õgá'®¾c ?lï„ò"âíý0˜æ¾­«U…Óáß||ÄÆ!¨Š×ëjŸ(õMcH4!‡ 9O<¯ð ƒÉ7ùÜÓ(Q Uˆ™˜lë5.4fd¾Õ¿ÊÂ9;YÉ ƒ®%ÂÈÙŽd­Fz†tD^²{2°Eþámë.†e!åÝÐaVBýncÅ$8P}@ê[ ŸqzÕs±›ï³.è»H_$¶5F+…–ç)ã(˜”dÙµ¾à%eFü˜Ñ`Y¹¸GÑ(&¤¢€Q(~vá!ðý5éÏ9k/7áé5ê í×J ›å!m/ëCÁÙNaY[•¼Îº¾ßÀù\S»¶J1?e÷¯ë ÉóÃÎE'ß­á¼!~ge¼åæ8"_(†aUÓ+#D›Çí ¬cšÄÓ£I|Fx§N<H\[¥1š,xTèäv‡Ü>>ÛºHæ©¿%ª?§j‚—`6p´÷’½ú¢ýªPù{ŽU¶c)I±V^½þIyðZD¢–bÙÍËg·›ûZ…sšY†¹¿Ø¨ÁÞ÷,²ñÚ1Á÷÷uªïzÄÞ FáЧa8fˆ¬pV¬‰ U¥ò_|ë÷æÓÆ3‰]~Y’“ w¤{XM1Tš×“imoCVüQõk§?Þ¨;ø e9ÿðÍ |cÛoð:pÞL÷£ob `’‡†!ÄŠ1Q¬a~B[[yß§MÖ!mâÐV, CE&/ ÒlIÝßIæP  ßµ– G4 < b‹Œé¶ õÁ/y—x‡»F"âõ™i|ëªÿ€A±=ø¦qfYa§>g M×t0^ ³íò>Á9,~{Ivªº•agòrŒ{9×Ê‚ŽË„ZÐŒ)DáŽa‰û#ñDšEœDÆ ,­»ÞL(q×ìHÇ.ò§‹_Å©U•ëu%T/©ø²ƒaœú¨qÃà½dyZ{Ò”AÊ~A,Ø¿›'è‰ÐÚæ’!¶$õEFRgìÄ—°;>´¥¥ø£& ø¹šøäg:7×À’¯õDÔoê?Ä£š~i•–Rî‚™§¨|ý”¢nßP×2¢ûÙÂ:Ý+xGB ÿr Í±ZÖ5¯“5xõ)¥_~=-ŒÏbMø¬FÅ–À¥‰¸M 9âu ëG†ÉP0±úoé"ïŒ …ó€WóÓ>îC”„A›ôò€Ì ‡jŸHè¢TgI>æ~?í#[Û©Aä©aIùÖ çŽÝ÷H´#*ÂN¥%Ê_¬ú¹I›B¾Ò)ÅMǘâÌpÑJ&Ë:稦ʘµ ˆ1͘LŸ¸‘ ëóqLÄ«‰,fñÐð°oö œ¸#àh„°`ò˪‚L¹J2Q’ĵÛv»’mˆdÈ …zNŠ=„ŠÍé«ÅúESvskÔ‰µ€/’ë‘ñJÖ•;4°€¦låÌü™%›‘„b<¦IÕrjæ%´Éw|«ÝËT³‡c¦zk@Ý6d%Ö‘¯{¾‘¹Øj•cçêoðC™gJ1x²¸1´/)RƱ¹š®AËÞWò>RáÀÉWqt: arq!\ž‘†Ùòè=§Ãï í^TL¨§ÿK7{²pwð7ï-ª¦¼fÔ—,Ý^C”0$xÆÓ²«]žNƒÃE³cÊÓÉÀ×øC6—\Ö%×¹~{Þ®¡­( í›mÌy„cÙ÷CñTó$‘u¬C­ÀM µ¨ý|$+À;þóÜÞñ¼”#W6—Þ¸ .yžü sõ‘›omi¶U4뽨÷YSFSµ±BG³³ç/ÓZE¾J%‘ã¶ûK a2òãe]Ó­¼}¯·]ºªØZ!ºï˜‚¾kK–íL W›ŽTƒ¤×7Ärž•ÎçˆõVr¹Ò¾Í_ãÍL:8–$ž`¿¶ (kú}AìƒçRL%+M s™çëPÐ,·ô(·z¦ª†¼›:žÌK¶ µêOëu0:½šj -!:5q¶ôg!3¬= ƒaI-µ<11^K—”‘›0—ØÉ åW³¯O³L Ä^rŽd&7ˆß“¤‰U+ˆw‘Ú7(¤Whßþ”HŠÌÝÕ ’óï6ŠÉâéS¦‡ %¥«K¹ß'ZúÚ\FþøD Æþƒ­ÃWåöCYD;‹¬—qèœO· àà¾Xà®ÿ¨13YPJäLHª+ö:vJ*=Ó¹Ëú˜ç–a…EЗr»#N2í8³g]®u2sQÃýˆ…•\ug=£ß•¾›¨ãÄsä­ìBÀéŠØà!Ð'NQšL×áàŬ½HaP£J~ª¥¾)¡-@b‹ÆY3æíÕA{%µ%@±¨oh/vÐñ|ôø†cÖtž«{¢Ur'­2Û>G™ãUœB37›AïøŽFÌÑaabMv•ÑGü\YtšÈëM=5¥1ÐÙëTõ´[çÒî8GÅS³Ý{×øãÎòò±ƒÓ±s¥<"[5ÇÛû¢Óîh4d v,º„HP^{õ×QÁbWÊfÎà9?#"5Œm^¹îMmÙúž\+ÓdýÓW?NÙ!¨é»9 M,*ßOy`ÀÌ”f} Ì@Ï#Îb4¢q¬‹{ŽiÄÆ¢÷ÖUý9rÌ´¤…z¸+úUêäÊç hÈýFYTV̼uLÓÈ*Ù¨îx±Þ”Wœ/·óí2¸ìÇí\Òß÷ç<·UúÄïFûÚÏ“dHt}Ò(œ¨®)ì„‚tÊ™,¼#¾Ç,|oà !’ÿQÅ+@äuZT ©3–|À?Q{nCpyƒî}´¥äŽ©’Š|ýq‘XsJ”w%×4Û=(/ø«›â Iß7k Jf"YG y·AB‘òl™M¬. ,1´/qfk¾WÒÊ)`è+ì§äm^Ü®¯Oß°cÛYT…¹ÕÐpïdÅs=i|A ¼F8DÞò0õþºÝ†`žFN—ðN.¸ó«\e²ÏóµÇ, 9ÇOš Ç©ÀŒ´ £ï+Ò1Œ÷§›õŒe…­tUB±˜OÐ×9µY'nf¦Ëy@e³¯ÞKʹ—ñ$­¸¨D©ÓŸ ߆Ʊ\Éõrnò|!vPïîÔëžoL<~}O=¡Ä¬¦"¦ŠaL’É›C7%ˆ?Q²éÄ1[ý²ª½¬BþÎì«ÔÝì¿"g_Õ°o Ùe B+“áàB® Ïia‹H„XV&ÍFªé|]B^žoP ìÏ‘Ç.à>ˆÉ Ý®ÁعÄ-&h4ë‹_ oI=—Ó_ÇG><}ÆÑFvz‹ØÙ\zO#ÃWëA6„+x‘Õóâ‰ß³<ªŠ§<ŸPö#÷VÍ€ãÈ÷ýÙ”Ö>K”Ÿ^lGÒsÝ'oj¨H§Æi÷=zèÞ3VeáP½xEè9ÂØÌt„f3h¤z“0Ií¹†?öq¤Dû8©öÍáóŠÈ$ ‹þU <#yƲüˆ!ßYD¼R´Y³ ¨Ñ¨<޵pcJ'#ã¢,~Úrh‚¼ÔÕp=\ß­¯4}VDÙ— ëd÷¢˜Ù’ãKD\, Õ ÔCCt5GǤ6D•ûZkS§S† :—ÞÜJ¼ÃSçlxQº "à[ÚsÐœŠµvÝXóß_½®iØ=­»¤º+ØÝé-šU×aÛR†yëaâÅ'¦ëÎr:5-ÁÔÎÀÑ­m›ívSœÝNCQ7¿¿ {_[–Äš¬Â¤=ÍH¦gÃ?<@­C§´HjŒe:Ö=©[.øó»E|á‘Õ¶là.'}½3}üPj®_íŒ(º0Ó5Ó“Ë¢Bý=5áƒ;¬7òùÑ:Z2»y(ëßNþa›gšP%ÏØ;ûøõHÇÕÍXï.Q4–oËŸæŒÀd†¼Á¢¶-uÐnòä;Ãgl£ ÌZI~±³u½5–ê½?gÞ&M¢NmW=Þ&í{mînÇ!)Ë@»¥H›UÎá‹1/†%ë– 9õål™%+<í0ýmçOˆNDôù%ÓùÜʨ³ç³‹R¢¤ÌÏX©Çt ¥4·Ìfuš<âH|IÛyÖÄŒDÊÖkáÈZ¹‹ÉÔÓ¼Fרµû)Ö]¥IÒáßﵪ}÷%8éÄaèÓ]Ë­´+-•]´' ?élEŒöNEõù~ª3Š_]ʤGqv,¯ô]cGš„wê™›Y»Ë®].-ùð1îHž»@o8I¥Ÿ‘=¹Nù³_ŹÑ£¬(Lç†T:€´GÕ'Í~]‚Ä^w(ü-†eúSîàþDfYÝA«Þ… _ð«;ƒº‡*oz-Ÿì¶êÞ™×=1éŸÞ¼¶TfÂQœÃÛŠvrjá?y¾Ä`MO ïÄSûîämŒ»aô® #•˜vC²;RïSK•-ìE°oWŒ$Ú01 ÏT"<–8§Gk ¨g©ˆ§]ê ;Ÿ™æ-d”ô°tÝF˜[¼â¥pãÑ ÂJD¥ôõr©­ëÿÐ w‘¦b¢?ùùLýSµÇ§áü92¼‘ Óå>Üí@XéçùK;M"ãÍ,Ÿך½[ý¼[àÉ„˜8]{S2øCÖ0Ä“‘!ØN$)RàŽ‘ìÐþ«à”º+xÍ!ìù)f´DkÛË› 0ÖB:Rƒ‡:ÿäH6 í•¿¨$v쌉CbZÚ?ŸþîSá­ûÁc£Qù{´Öí䃦Æú2-GT_9,.tµƒï¼„ƇH%å ¸Üb‘.D+¡™ÜàM“91l.©ü"Õ5’=Á¶æðF×ý7_Íš±8_ Ž è| #RÓÈ¡š,IL$¥GįÒzw5&Åÿ`"ů‘4ÍCÌ[~¶:{Ü”æ­â<—£.Ê™òl%½ÆfYiÑom Í4š¡è›Ù”Öçj˜v‘áÏø‘B¥BdëÏ]}T_v±fY"­ÀÏ(Æï¯ÓÓ”,÷¹‰À‘åñ‰” kß:­En8MUVè”åLZ&E—O×'Eß² ¡ìò2Åj˜oc–EŽd<Ú1<¸¬¡ñ9ä¿ÃÇL >B–·ù@Ä_UˆrÏFÀü¹ƒÏšÿìi¶ðT@={[)D¾€´âùÊàG”!ñÅ;¡É£§OºF¡å­Z—U>Gd˜ÓXýžo˜«ïihŠïe?˜Ø…ìwï2 oÍ"l­È ßËеÔ<ŸžÃJžÂà_Ólγ¢ûD—t¼~dлJ-¦Õ_åEL«KÂóy6dÈÐcÿÈ»?mzq+‘ãèfÉÄÅ¥BG¢u2’»±ŠÉ{1c„Úbe7Í-ûŠæ–§~ñE¦´¹dBpœVŠYi êtb5•Õ˜EîÒ>Š3~ácpMwf™î€úm0[¿kjç‰IeÙé’m8´²T¨¸H%×xÔÊÅ„[|Zp½ïåkN§o8,É4Яhk9cþVbDßÊχiÛWäÇ8Z1ç[^ÿÊcô¬Œsô!3xä«§ùä¾j~±5g]Äü7ϼ@5qúÙÇ¡¬Ñ˜Ö—î›Õ ž/fðÀo=¡&§áoº~ƈqœ¢¨Ö¸Ÿæ¦«Ó>{C}cù"G2d\/ôY»ä³ã™Ý*{rZ2‡³«d˜öóãoVs|ã¾ýOщ‡qf‡z1G²÷–Ûa×WøÄš;zÖóz|Å]QwˆÅÂÀúB«%ùÕdú°ðx…}ÑÁ¢ývâ…Ú:[•ÃÕD‡ƒ€¹&–p;?ìE¥tþ Y‰í#^/h¨¯W­Ž’é¨ô$ØÛøCÊ¿È$sŸXd)Ý­ñØ!±¼U¾D…«‚ú¶õÓåÁCeÛú‡3\Pô¡® ò³W‰Šò$Îï9óõcÖ£ çÛ¡²ã~¾~œØ<ÞÛ>‘bÔ}zg;ˆ±ç\ÿZw§?mZ㜑;ɉóÔœ½¢=ëÏ —Åž¦#dïGVd¦6VÝY™‰ñôÙ¨‹lT}rA<5å/ÐIªAêU‘‚>ñ–³^el¤É®(à$™¹µulÎ’è¼DSõu=J*šàf:§Ù‚§Øah°&øñ…ÛPG„bŸÁHé²ÜÌ‘_~î0«ÄSºÓ˜‰uxÌxH‘)ïR‚ µ_…ž¬"ÌB4ž!\š+BcD ìÓñËA…šG?[<“£´×òÍ#Ìä¢àÅÞ@9eÕ “­u]˾­lÐëõ÷h@гj±;ͪêèÍ•i ô©@³¨NÛW–ÚûX÷VQá ñKs›Ëå*‘ÁªÕ/Ö3ÚNžÕi´áy¾¯ÓJóó:œ­§ÉbPóÂ÷áMÌßF^ƒ1Q%=}×޲%ädÄdü¼C<1tXçE¥ôô{¼û—³¼]Ï#~rRi¿§l6ÒŸå£7€„zô†Ø* Å rOÀMíGƧ*‹^ Åm;ÜÏ7{j-$(±dðFöÁ,¾¨zïØ«(TáKûÜÏ+84G|h Ľ]ø¾q¸•¬C߈9±&˜f‡&ò~\FÞó]{…²b ¾Zi Põê©—Ýíç&¸Ç`ÄdTˆûú9…Y×Ý¿Œ÷³~ä¦\=ež2€7u· Øû{´n èÔmÍÒõÈE÷gºž,![Þ¶é©E*6S+f¶R{t‰«:µ¾×*ï÷û~œø•úµ•~`@zYÆõV£]Jÿ][xS²J÷Ί!z¹+ÑÈ£ù³5¤®¤ðwœX¨Š1S”¶&{B×òCò^Ë#W42–ÆUõw-÷vœÑ¨Ï’tB‘ð±2[<± §\ð¹ãñæè'¡¸¥HÙ’ø”¡¢äàzíZ«W~JžŠß7‚%øVµâWyméX´›p&äÄ¡¼%õ‘ÅG¹«<çž|Msôóõˆ¥Mw ð 3Q– ÃÙ[Bnö=†€CrhëåϦAùgéÏ»»d嵿«éåâ1Ž!;rºíÞØW!^ïto‹0ºIyªå&0“"ÈZƦò\½-¸ž+_g¯´;Åë (û—·ò‡óÚô( Ò-Ý^—(NlM2ÅH:Ò5aªóŸ-+fÕWBÀÆsÊ×Vw€h×e›çú)Åe(ƒÌë¤òN‡fYø;Œà5o…Œå°(ߎ¾|;b£1‡?½Ã©wÑ-)<»ãÁž’ÑÌ„±0þÙCîé§9úÏ#90>X÷ÝJƒù`_^ê1û žbX§Î¹íSÂ;’KRyAŽëë iÆùoyƒÛèqÈ7‘ýô‹3¾ÏŽq~Ï7;ód("æÝÑD´¿UÔpÑŸxµþ*AH÷ó­7G“À Ëc®23Õ7µJµßÞú¹GŸiµ‚ò}÷´àe–ÜgQBîÜ5‚Ý‚˜K/I3[Ö“#eß›¦±ÜàÆwøCàéøÙø$¥ÁÅ¢š7ű-rÖÒ‘Ç-ð¿-¬‡MŸÈ´Þ´eò¸îCÔòJß ÷õ92ÝgÈ¿¬ò-¦ÿ’Á+¯Íhb·Ì3rÕ#™øÁU®Òs.¹4eh´]­#JºAápŸª¨Ò"0)¹%u­¤yi¥˜€Üê+°—Ë¥{„ol6…ÕÿȬ¼óWåâö®WÌÔ…¹·÷¬ÚZbdöÂ9*âÂ=iöCC_†OŸÊ‡ŒA¨90IrF¨WH+x’hÉnV°Ø]¢9YͧÛo•>yÛFx„$g±áÚuô®J~?ˆõôEõ‰ÎWhN¹nmÓq 0…ØUÜ’ÓPò"ìm7ÐàÑi=ž,Cì ½@¬eß Þ’îpîÇLR˜Ÿ‰âO»1ØÜÑL¾³W0óÏ-PEr_rmMoŽ~Z!1ÔÀávµQ"¡‡,ý’Œ¦½–ê&§#0-üIRèà[ú [Á ÷Õþ¤®[Æeß”ªžøCÊ©u îÝ×OÒvËÔçÞR™MóûÞå,>´ÿÆFG ¶Nx"%ëì/ó¬ºaW}ËC*räǽ"”f5‚HAÿúc‘˜Mã"®,E3èc^~UÕ±)ƒÎ­ª!`ãÑË u`¡úYÒüú ›”ïÃîø“ÅÂK_ây²Âb´fG5,Ë‚Y‡]ËÚ Ôe½ÑEžëÔ’°¯]Û–f\Üæ¤‚8/âš|<|;ÿRšeJ endstream endobj 222 0 obj << /Length1 1406 /Length2 6162 /Length3 0 /Length 7128 /Filter /FlateDecode >> stream xÚx4\íÚ¶è½F¢×Aôè½÷AÆ c3:ÑkDÑ{DoQDI$z'B|“ä}Ï9ïùÿµ¾oÍZ{ösß×ÝžçºöÌÚì,úFü v[ˆ*ŽâJ”tŒ,„€ PD&`g7†¢`¿íì¦w$—ú„’;„BÛ”A(4PhzÀB"!1)!q)  Jþ D¸K”AžP;€Ž@‡ Ø•®>îPGºÎß·.07@HRRœïw8@ÁâƒàÊâ‚®ÁF0‚òùG ®Ž(”«”  ———È)€pwåæxAQŽCâî ±ü  rü5š;ÀØŠüã0BØ£¼@îÚƒ‚!p$:Änq «Œ4´z®ø°öà¯Í ý+Ý_Ñ¿AῃA`0ÂÅ÷ÂöP §ª-€òFñ@p»_@ ‰@ǃ$ØêŠB ¡°_3 þJƒÞf¸ÂÅG! ~õ§ u‡€Ñûî#ø×á:Ã^p¿¿WöP¸ý¯1ì<\MàP7ˆ†ò_´‰àß6 ”@Üo°£à¯Æ>®ßÎßfô ~®W€=z HÔ‚þ"ðC‚þ#VnHþi½O·ìù¸þ7àŸ¹thæB\ÿ&ú# (Œ¾ýŸéþ;äÿÇò_YþW¢ÿwGª0Øo?×Àÿã¹@a>!ÐÌõ@¡U ƒ@kþßP3Èéê@ì .ÿíÕ@ÐjP€; Í/t_xÿŠT…zCìô¡(°ãÖü±›üÒ ‡è#Ð_Otø_>´ÈÀÎè§MÍß.ZCÿ¬«#ì~‰MXT rwù Ï½ø ¡UiñþMf€ B‡Ð3ìî¿VH h‹Þ#4ÁÑö?&€ ê†AÀ¿ŽñãEÁîîhþfº£¿×¿åxCÀ ³°t˜Óë°ö‹z/þÏ£¸+«Ñ }Q¢(޹~ŽÚxYjSnŠíªî§ëÏ—ELÎúÓóì]Œy?êÎ ^NSÏCa¨ô­+ðç~?îv€0Ù!èÆÅÓ£×Éö I[b[r&›Í^…‹÷ˆl¾úRx݉Ü|(¹ pŸ‘²¤Ñ£ž)ävnc>µ`a[E Y<"#w·Ìð0Ö0¿Æ| ;Wl¥ýî³n—9´´ô.§¿/]ä¨@«·Z¬*‚‚–ÒW“%w8i€–*1G³ ‰Á¡(z¦T–šÀJ[äÁ±ŒõX|ùÇtA[ Gƒƒ®Rð½'#uÑY™Üžå#›lãï‚Dw›“¢ùjÒÙÙ«í0Ά2ö«E`y½ØÔLܺÎ7:Óˆ’Òs mÌÅÆX¼'¡"Ö_&î^<~–•($l•*“øôRQLÆä:lo¶xõ @AÇN¡¯¥Ëâ´ê1|Oàôe´Âœ9~òµù]ûPOä‚m‘j*8Á¼#kûíVb“†èÙ{2S1T­Ö¢Ë†;>7~:Ð0/[¿­SMú¡¼äük¼©I¾1Ùœ±ö&F†îm ©p… iRb ç½2ÆW‹•b#/dBšeR%‚€O>LÜR6؉'­]¿cÐóÇ:ÁÖý@PßZ+¯ó¡ãã]NMÔýhãvÂÕWE‹©àñÙå<ÅŸ&6¥OåÙ?ûwºyÒ°Ÿg®PõÒ5¸nór„±ãaCÆ›‰ÞÎÔMoõ†Ë3ì Û!5©Ö°"XEc¼h«ÒR?U´‰e?H»ý¤ß½gľñä;¡å¹ôý`Wë¯ ºû®?ÊÝ•ä$œóá’"ëU:A’~Ø„Q¦ÊD§äD ‰†áY¸†£}#ÁLNk‘º`Û’íis YÝ¥šëÁY/ÃEk-ƒ æ€/ø«(DU⇧¾ÈÇO‚æzbï|]µ{O¶7­ÌÜè•CtZp£,G4“XÄÏŒ˜ë«h_ ¯Û·Ü©j)C¨§úÑxOÑRnqvµ{Ðú·!ˆ.Î.Ít™ ³TRŽŠw3[â§1O~p¤¬gÀ˜Uo¨j“a: ½bR͵=,®à„)]XŠ‹>ôpá‡1xÚÏ ByíÇïæèlï2לÃäÀ<ËQ¬{UÖ†•_¬Ê]"6HßCK´Êõ§âX4îľž~ýcóî©!ÙOÔ´™tf×ÈaÆ€‡<×½rÏH Åô“9~þë§§ ‘Ϫ¥0¬ÔÎc oìJz¼Â)T’º™BiOÕštË¢éòÄO"¥Ö!ÊPSD]úÏÖÜ$¹žºf锜Z™á²|aýë%X+¾7¦fÑLîâx*¥Îaç(;ÐOËÛðåPçt8“S?³µ‡m*h\è[c–×ez-dQÛi ªû:sÏEB½$0Å ï ™èkÔÙûi•"é ÷F-ªÛóww<»ãÇ-ó[~Ì35k³ëåËogª‡F$“?XÖçŒÓ|9ü!Ð3q†¯Ÿ­žÕѤDGî¤n[n5Ù•g6LÜ“xŽF惾2`]$Y¾P7IÔú@$5Úøs„}k€ÎÇ 82´E;¬ž¨(>ýeŠ8üv˜aáe’¡ïKŠãcûo~‘ÖdÊŽOløef®)¦oÍ\¾é_ÈE Ûs*û,¯ÕØ ¼š~%of’H®…Ó‰»q†Ò~¹¥uußYO†f÷g…ü¬ ©ô#ŒoI¡òt™æ‹3æûLbq|7,ËEÜó˦±ù¯Óm!ÖslM±Ÿ¬È$`©ñMÈް°nÁ„µ5kî,ãÏoƒ@Dǘ«•{ u«ÔÁF¬ùÒñ_S¯<¬1Œ¢ D2ÅeÈ>xÂ?d¯ãWeÆ×Ž·³†Ož—QX âŽòøEMöÊçM§ñ>eÈ‚ߺ.ƒÆ\áƒÖë§?Íø•é–…`ì;²#¿—;È`´Ì­êR‡l|®4]Üí•eY|•›á#ÄÜ=²EåÃ’3IÅoô¢<{lJp ¿ÔI&¬±ôwY \Ïow'П·¸‹·wKÕ=LûÚÕ¿á9Ï$éLèCGÝ žäã*M§<8·Hv¢ÝÊ™:0 ³ª\ʶõUS’ceñ‡,y±|­M{6\d¨ÿ•íKS‹ÔMÇ{îÁŽ8•{ó_‹ì8+{?wÑó·4¾Æ¤ï°ÆD.tÑÇΤ!t¯~xE÷¶@›XbüÍÉÂ3ððqÃ8‚r³2&[[½è}«ÖÇ“ãÆ\îŒS<·\Þ¹` ŸÔ¾Ñ¶¢¼ì[6:#±×ùåëð€ä¦¸×ôœ'9ãµge(£ÒÁB;¹¥Zs*l ®P‹Ðð·çκf ovUç|U ¨Kûæ\÷¡oÅp—kqfÜZxžˆ©pu½ãÖ†;Fò æïŠ˜~·SvŸÖàs+UUX¾Ïs ÿäøEOfò}Þ' …yLoSTÀqï_/`%éôoÏ V1Ro£æÃ±®Ô!Y úJõßG)- ¾E=iMìˈÀ)A0òì¦KÆö»Ïh<ÍG8U›ìjQx;å· ÜæÃ½àµª™}}HØ«‘ SÖÞ7xˆ%|Þ¨ÏGœ´up>˜°èXÁ…ðï ^Çæ‰Çò¨ˆÞK·‹<,DÄ¥ùY)•˲ýÄR½íëÀ2ÅóÑŠ1ãóž_÷GðîhÑhâH"¾OËËÀaé™k5qˆÀlLÔó±žíZBmÓè''ïn®.\ˆ(a 1"+vÊÖâÇ me6¯ š  t®oÎú☆ððI˜¢>æ¡ñX S£¯¸¿0çïbŸÙ iå8WTŒÄ8-VàÓþ4åj¯W™Ý¢›â·Aefߨ}æïj¾n™7/¤+èAiøßv¾Àž¾Ýg™|¯1TùžÊû$W×jUžŠÒÓÚå Ï}w½i»1¸8üN!Ù–½d(O5ý޹Ôiç¦ì@{–Ïè²6£=æè3ª^É$P’“4/£U0ò6÷Ä¢B’CoÏV°¹VæÓFNß…‡Ç# Œ‹Ü·á{gãwêfŒÛSÈz3>h­knï}³V†–^[H!<ÿØ,ÜÃrH¹ly韑v÷»¨iضý¤IÌ–›~pÀùÕ”¿ÌMlúÿL¨ž¿~/îWd–äa S\ÀÆçdF^W… ¾¾n§ aQ2¥ÁñìÓ¤ý´ê†ôyÒ@o‚ª¥ôôƒ-ÃÀ‚4”aÎjk ¦+ƒ„Ð‘Ž¶‹X?èdcÖÅõhO3Q/_S»–|cs°¥0(R²f@õ­K‘Éôä Û¤JA+u‚“ ÁS+9@Å×ç~^8Õ6$¢"çEª{Ó]u÷Ÿ+f~ÝÈÞQ(­ _íp{=~0L¼òfyò~^ SdaÂÄžÐ+}û»ïoWóÍõ剬·ã0¼p/,±L\êö|ü‰°½¡öÇ3š“®@ïs5¶›<ú°¢­q€ü–±;#)M¥4Ç;UG3SÀ5µY‰!2w«ºíYhn1ó w” à nzá¾6”hå’_XxšåKnîïÕåÐpIÏ]z)kÎòÎ%r8$?£&6»a2URÿzñ\â½3ÍL"Ο‹]"P ÞVQiGŸ@qÿ>&J·¾èmLø5i³³‚†U$7ÎI`£QÁ—‹´x]È3\ÜÌøŽRë8ÆDÎ+°<ÉÚÝ+ަAÿ+c}…éçL“t»5ä7[ å¼)`⪠ÆùO|8]v2M¾Kº²Øtb–´/žnpëf«Õï¯âdÈcö•޾q²ª'‡‹˜ËjæûÊ-(ïÉè^„ßê°…1>ós£±µà’e]àùú´spÔ¹ÔGä±sñt­¾ÞC¯ìµÖraUDØAŸ@µm÷ÂO%‰j¨¨÷©Wðíj&™•éê¦#*çÌ×™ÍÙ™Íêþv5öؾ9ÿ²š´M Û,Mþhøø‡Èó³tWf˜Aõ‹dƒ/™Ñض«¥T‚®Ç·Ž_0'»uªNJ`ÛüœQ Kê‚oS¼Ç»)pÑŠóãð•~0Ó•‹ìr´n §®ßÎyyÈÉC}ífd| ~„z@?ë|$ˆ/W&ìBË;‹èb4j?DÖyë{ø%R#Û[Çk.ôsŸòò?¯*Ë7yš^«zjr¡ÏÚ¦5Á[Ñ>eÑ §Vp¥žáCíè鳴륜ñ$»É¹,4øba_îI?ž¡Úü¢0¯.UÿêŪ…:£­PrÃZ›ú€_³W耡µÅd-1Á 6ÕÒ÷iêÊ G¦tr®Gx>“é-”úËìª2m!=ýŠ‘¸g gùjZóúŽuOtë-›±5†l¶¢‚”ðŒ©}—§ìooÞ~0–{|ëñ}ô¯²ŠÐ¬&gûõêÛãÃÛ¸$!x‹JƒÈÖt…í @ÇMq‘ç¤[õGž«[]'ZÌürt¦—EäæâŸ•éY}—2£•¦$ódN'ÍÀ1_“Æ SdNº]bN/ ¿ª!-—Çb\¸Ó„¤ÞÁ:3±Úxš$3ióóÎu’hý›˜ ÷ ”¬LuÏz°­Vçk¢T½‚{m>Œ³ñ¢¯8õêøÖ£“óù¼Aí`ÌíÐ|ýdqŠóÌCÍWZËáþâñä3&é&nÖouÒ—RÓz<;†®N•žÔÉui†¶ &©²Š™Ôe7q1Ox?jL‡iY‡¦+&e¶ƒ‘ß–wC½šV«så,#^WbzKOsƒPÛâd¦kÃeu¼•dEM•Uo®ÅcêL!Y¯fËú}6?½MÆ3΋U½RswX3Á}K*:™Ëá_ßЃÿ$uI­|c^"7}‹(¿WÇóó — ª$t}@t8^?ÜͶ³ê3À1»®7ŸHåB,û2®êà¶¡e'ÍDB÷Ó½/ø?9C6ß¶ UQÌ¿‘`&9¤ø<Ë%5‰¯•; X§x˜yŸI+Ê!»¬ïkaOÙ& …|lŽqe `†tÆÊÞ¯åÿØ@+àSÁ»õ#刜ähâ€cŽ ë·’׳%m›¶tžŠ`Þ@•.^9ÂAÑâ(˜ä‰y‹¾ìÜá䶆ꦔ\*e>×ÈDo ÜOì$¬äbYô©BO\6ØÙìÒ¹¨ ¬sؼš3ôõc1u UÏ“’×sº$´vNsÄ"¤‘²„™÷èéÓ&Qœæ©vT’¼*⵺¸ø™v±~}VG±.-Ï#iïô’æ¶ÍÅQÙÑyÒ>µÀŒÀµH;ûÉì…p¥8ù–É’©òVÿ¹¸ªâîø['}ɵ£*Öìn‡dŘç±c} ú{q'ÒŠÖñzeÉ"ß»xïˆÔ…zÀÛ°ØšV4ú‰·nòlôp!?¿'`Î`{³ò8$€_’Ê@ðmÑg:HP®Ü|÷ÀàÖTMÃ-&ÒÇ ,«˜bÛƒ®Û×ßÚ¶*l¶„L^Œ¦õób“î zÊk,Çsj£h5ó–éɲë$j„,#B7Ì{â†FÌ<¢k´]Ÿì=Ò1U¥ŠÞŒñ:k|6“”µO (kN\¼m<AE6VÜ´æ;•G÷ú³–Ô9ÙK˜%È´¤šÖŽqÌÃŒ³ §ªãžGˆŠ;S­üL¾Çˆ§žôƒ¯Ò{ÌÿYôÞ-RÏ} ªE¶¾93ºëXr§å¡ØÄÝp ¾åIG#~³‡äñÄXcšw9›j·dJ7>zé~~^‚•KE³]艮èo„yõÚLD«cX´–E¢'†Y­?O~wpû) ¬µWéç’ve•ù9džÈvVCîÎ( o¯ÇÜÖû~¸ý˜|¿Ä5)ïy¥TCŒF)MëZ KÐ«æ¹ %^ÅÇ!£÷l¯ ~0M*iŸ'6S{gxÝþÔY̮ڼœÃAô„5lC%Yv4¿Qú16I¡çö æÅjcË]ð,®Õ~3†U-Ý„ÎéÙJn˜OÌÊÓ{FÊÃÎ ‘Úã¡ åkc;Öäò—¶¼›ÝzVó°jïOœb^Gëb毕H»”µ˜ôðh»#í³¹佬ì‹M3‡{,·ŸlÇ ©~ÿÆdM¢ âYy{`M/Ûsªš¡Qø–'!ïågãæåËaàÂ¥í½³ì[–Ù¾>ãI3lØ¡ÊÎ3¢év† ;¹úÂåýdp|Ìd»¢6d/«7}ä¿ôÝ´˜¬^âÿ~¥Ð«.=öK;xà£h+^cáðŽo=À‘/‹|¿ŸŠÏo—ý¡ÃccëFÏ(æÖŒÀsN½!*Ù"?€õÏhzÛ_ZϼJ¹Ë=“ÉïפßR£7{)LjXÚSOâýîë6>s”Aþ‰—¢ÃDâZûµÑu[n6ë\9,ÛöàÌWº¥6CÃgæ‘ÊN÷ðV´«{©³a“<®|„ãÍ ‘Ô XïP4ÊèüË[vÆà]®†Ë oÊYï 7xd¨@’D/xß.Ô KqÒáSÖ¶”œf|Ú´2xMwrPc#Ïsê;$ÐÒùâyÒb.­=a Ðò}¤K™¶yµ~N­²…Ç·1ž"“Ñ¡APpSòk‚L?JMÑ™,O6Ë EͽKf%é20k}ªw}:™xŸGÏ÷G«¸ùØ œRaÁqµòq~~œ"~gKf[œ<ÅânfýÙÅ»ƒ->QøÆŠjLª`ŽÜÕHLæ*‘)P¯+xC–“ê/>ŸÓ½¬tØö_WÕ—`J[P{b Äo¿Íq똱³ÝË =ÎòNΤËaÍ4ö÷/ed=ɼ†ˆÅFéKæ{yל¾sÔ*ûã~ì÷£ñîØ¨]åÈ"?~yþPÛS¶'ßCüîô›×ÓO‰±´ˆ_‚æI{i©0b}ÈC°;D«IÇá 7nAk^nmï4x)Å{ÃVùóã3ÖÍ„á/¢9r—ENÖä(ñÁ3«Úž’E?|³™s‡…Acg3¾þõ+U­ÓˆGKB!MS´Ž`™9~_¯@‘‰gKKVXƒÕ$ðD‡®Ý8ÓXžÑ0ûHîG1%R¦¯G Ì º)Yç€û3Ì/)ÈbL#ºmÅ(¿ÇÇ]Klš±tïVå‡áx†WŸ»Ó‡‰…„J†ï9fZ¬ž"/!8 —äk¼™DöKþeÒC×.UñÖ ýÌ…i‹év˜ q†ÎЋæm ‡Â”Ùï¯æÒ¦žc\½¼¤^éYˆ¸í+4ĤÆéŸòÖ>ÔtRYx9i" '6‰õ)ŠK¹üvø¢³Ík3»­gVÓ¥&+õiI®Fi+^˜¥¥Ã›õÒe‘…È'Óz[ Ù€¹W7Ô't(ÍÎmHXXþóØ‘Á¢Ï?£´âJ‹^4Ušn8j:Ò/Ý¥UçJóç)Îû±L˜%g7ȧƒyòŸH¿b8œ»õÎØØ$Ü:J“)Èr¬òÊéûÏÚO=g. ?ÆyîÕŽ ŽÒgfæÄJ‹ÆÄ-ÿhùÓÌ endstream endobj 224 0 obj << /Length1 1466 /Length2 8040 /Length3 0 /Length 9025 /Filter /FlateDecode >> stream xÚtTÔÝö6ÝÒ % Ý )Ý-ݨÔ 1ÌÐ)R"ÝRÒ-Ý"]J)-¥tç}ßû¿ï½ß·Ö÷­Yë7çÙûÙûì}γ3½¶·¬5̬ƒ"¸ùxxÅòúª|¼^^^^~ff}Âü/;³!ØAÅþÁwƒ6⨃ž¹9ø|OÅø„Åxyü¼¼¢ÿ"Â\Å wˆ5@ƒð Ãq˜åaÎ^®[;ÄÃ>ÿZجØ|¢¢Â\²N`Wˆ Ð!ìÀN;Zz0+áõ)Ø$ìg1 ÐÃÃäç¹ÚJ±s< ;€.vu[~· Ð9ÿn‡ oÿåЃ٠<@®`ÀƒÁb†ÂBÜ Ö`WÀÃî=Uu€–3úYý/àïÃðñðýoº¿£'‚@ÿƒ¬¬`NÎ ¨j °8‚ZJê<OµþM9Âañ wÄdù@øS: $«=tøwp+Wˆ3·8þîø;ÍÃ1+B­åaNN`(Žó»>ˆ+Øêáܽ€_®æõù²@­m~·aíæ 4€B\ÜÀª sL8ÿ¶Ù‚!^^^~Øö´²þÞ@ßËüÇÉ÷ÛüЃŸ3Ì`óÐØb~øÃñƒÜÁ„«ØÏ矎ÿD8||kˆ` ¶…@qþýÁ ¶ù ?Ü¿+Äð’÷A~|Þß¿ÿ]™>(Ìuôú7ýÏ ôŸéª+pþÝòÿ:åä`žn!7¿/€_ ü°ðûÏ<Ú Èßuü#VjˆþUîÃ9ý«d÷¿5Àö÷€°þ3—&ìA¹`Û¿…nÂ+Äkõðáûÿ–ûŸÿ›Êgù ý¿+Rrstüãgû‹ðøANG¯¿ÊuC(š›O‡Wð/;®ñ[kCVv©æ/»Áïys„@ÁÚ08ä÷ óÅËû_¾‡!³rxxEàÒüã?ÌÐ‚Yÿ6~¡§«+È çá®À‡ïa*­ÁžÄ ò@aˆ‡ÀC~˜+Îï‹-›þ ß­ÿù@ð? ?hóoø g ìPtýáàlåæêú0½”õÐͿ🧠ö[áÌ}Y‰‡Ø×„´^TÉR{poŒò >ê?Š:Á2ZW¤tßÔ ’—¸<Èž•íœþ}¹L¼Ë_|ßè`LÎë`¶ä›-F>W׊nc¹Æå;N,yµ Wwãÿ¡ÖÑñÂBjmK¾ß¤ûÉãDfŠý1—ËáÆLƶ²KSÅy¹Ý>&kÃO<”јhL <”6ÙŒ¶ ¹jÙ©évU&ø‘Ìè¯Ä'JÛ—©}CüB«ýó¥\È•TêGÎj';RﶺŸR©YŒ¦˜×»)®ß°´†¼b³„ëI3Šgª®©­Ç¨êÚ6© ,£ö¥ Ê/¿a8XÆ–Íö´d]5çèP(þ5—¬_è- ÄZÚ]V¦L"©„Û;‹­4ñ3¤†'›HÍW½zp"ÁLžœ9•ZÈ5”NÒ ­wìó•o {(:Ø5Â%×öd-@7)+Óþ«£ù· 1DµAAk .3=AÔá5í.caïÓ±½aeQH.YÊð5°•Øü‰8¸‹T½G9Ðc}•ûÂwÜßk4m®Ñû§;2«„ç®Îà BÕ»zË]\D‘g»Ùî‡8jY‘ñ¡dI.>uši©Šì»'š€ØLÝ6¯Ñ …›Þ‡ÔJ DPxßTÿ„ܧ¿uÌ<0J¹}bP=l…[æ7–ëcfÅ*ó!Ù'¢vèi·ÿþ’tÔ3½ŽšÒÞZ÷S¦¤ÚH-ÓaÖkœ¼4ºlÃ9xé]¤o[XüHGež–º Zø׸ùç×´"­Ò–¯å¿=íØè©fÑ,Æ´á±$>šúT¶FÐòH™v ¯q·äçú«Üi5º|jâù«ìÒTH5ÕD³–£}ë@'gá*©x¯² !)1%ï 6¦Ñícw*£×ð˜]m´»9h¶ñ8U!OˆNØx`RÅÇS#Õ{S¥·C… ùÔþ}²tàãÞë'+if83êvåï¯Uä~„OÀ˜k¤,í›\²Ú º§?5½$¢+kã›[ò6„Q:ž V¯ç—ü5íÊ£˜y÷-æÃÊ7–9Ãc]öç¡xâñÀÃ3ãúœâ ¤Hx/¬« û݆ѩ?8™Ø„fð}y’tÏ÷b-f•_–‘yŽÍÒhˆÂY„)\˜±8$¿6œ0'Þf`y'ä?P’eÞ•yã;I·|‹•Ö $teäoÏõîHQ 2c c»þVê•P"]Z¹p/C ƒ+„P *i…h0Õh..¦o\¬ óŠ ß5îú}èÕ^Re½ÓU´[ü8€zMKÓˆ ¥wÞË÷ƒ´t¼vtQa-HŠBá¿:ÅÛU3/«5æ˜Â_¨,`L¼ÂÀ{ÙB=”賈åáa#}¼V@]oƒÖÕžŽ¤ˆùͶ‰5æLm~µ`Ï9Úås_)úÎzžpeùŽ(Âtú“ ª€üw"=²í´–’ YÊ”µ¡ÖKÐ QÁ3ïÚ&•$Þ8·Ìu²Àêq½ÆØkàs LV[v!ÒÏ¥Ûb&UAvÙÏ“\•Ûè“›½¢Õ3®=vÈV™[u z[ïÒŠ%åØ;&™SܼÙº› Š'Ú'u‡Fvu½H³#mÞ¦J„dª³¹Þ µ[?ÔG}ä«<üä~dôµnWðV°8»‡ ꈹ ¨½óh;á„ÊOû»wœ}AÀ²jƒÄR@µ\¼‚èL0)ŸSˆìµ©à5]cc•äþ­‡:I‚[ã»ßKB?Kc(°âůKJulO8E"Ïyçj ÝD`SàáOs 1ñ~!Ûe?Í¥cf×eþlùMdξ$'ø)fÓ>Yz½ Ö¢·<Ý£ø[µÆé{…WåGõ&‚$u’]YKÑ?_ÝmшЩÁMÎX×®T c}ëæ¼“Û\D!«¼4¢d V=ÜZ¤Q=uΔ=-"±ãh.ôp¡WõlQ™T8ñQfÙˆA8¼ç´3”`*1×·-Rßmp»E;±ò•Þ7«›òº©fÿË_½økçd˜{öÂ_¸üqŸ)áé«‘×ò"䯼/ÛÓ'd5L³lfŒH7xšÒFCš/R@ ¤®ö_å-2nºe›èÔ—Ž§ Ná!}âSGã©óh†€ÂB¿«”—ÝmŸ3ÊÇp[ØJR=Ƭ°ùÆŽ£ŸX£¨pþœ®ê¦H “V¢¶ÅJí‚‹–ÆÇÕáÓžŒ+?wí bú’û°Ÿ}¬¾ÞÙwAÚ&’h'¶kÿ‚¡°aE.â@Ãs±çø«²›À×Ñ—ˆ(¯¤Xv±˜&ÎšÊÆ¯m*½=Ÿªž¾Àq4é•¿™ \ËO^yÁêË=ò %û"„ ^R(J¢]+FŽÔ̧à¾Ï£I¾èåÍJ†Ò}, t/—Šã ·<Â@¾qnàäGö_Þëpd&Þœ6±üŒ¿~gÒË”‡ïk ‰œ÷š•wsɤx‡X£ !F÷ʶs©¿K‰Ó)hÇ5Ià yM )a¬Fí¦‹ªN—ƒþ…p7h¨¸°OnZy-vXÛ‰0³×.ì¸~×ñ²ÜRôsÓ÷KMÝ×,f^5ªåýžµÖØŸ–"½úy©ò>Q\Údn¿DqјpÚûÓùˆGzg?˜©©.x7gÏ­Û\®ÔÀ7É‘:XKR• Ê,üŸ- )$ŒãNÇUFÏ;Pݧ§‚Žp¥ŒSÃŽ(¨û¦YV¦îíGƒ.¹ÍÝoÀË/,iù/šTì#ùü\n[Ê̵ùÉ}¿D~úG ;Ôh¯œ Â.ß›ïn†þ¤Y•”Ü "‹Á>N-tOŸŽ?Ž!<.\Z¹0zÙl>…¿ƒÛ5Á¾}Ætú¼rõ9Hìþ¶‰o:†Ð²å‘Â{ÑÛÇ~CJá¨_:ÊyÏ­6סyº‹ÁªgÎu^=éao!pb­žµËÑ=øuÿH'ó™áÓØ•‚T)âFˆ…ÿðp7¼µñ…ÑÓ]‡†Ž˜öXëp§É^ç¨Çû³à±»Œ}“äèý²¹z²LXáy©GædFˆŸÒ¢µ±8Vsüç¨=èû£ÌAÅV=9»À¼=šCKKÚ5N²ôt~—ïe66D:A±!„]èh 8Ð-Ru‚¯0`T«GÌ&.Ö3#’¼$PMqaFD$¬áð:jå ~rã?%{ ˜äŠ,˜s¶.ô¼Ýö.?=÷ö>d§¾Æ¶îQ «M´K­GK$âk†ZÞ‹™kÄù) úJ—#Ò-ûêów\Þï.û¼£Ç;bÐ1¼¯dæ£O.@Èi¨ª 3bpv»$9€t]ùŠ—Ö\onªHdäÃÙpÍ2!VîuÍx߇E¨!ˆ÷}f:låj¯f–ŠÎ÷l.è——$}£Jt¾â ®‰Ý&²u`¿Œêñ/V&Š»ÓÚ¤~Nt(ÓÆµ¥YPÔJb|!8>{cnj€D›ÓЕì½C—ˆ§¿ÏÅdX2!Jd?²·ðb©þ$îžðÉ}‰ÐjûRc"dfHÇe¸â×\ꤲƒÕèÙÊžOA&¶o‘îÇK”[udBÜ­Çý¦¤îò²v[LýlB¹^¢R"»²""°¾¡‹üªÒO‘‘¹zŸµ>áɺKKG§$å,µÌ ¬5Ç:À%Ý-¿å#£ˆ úÖ|ê1i3gö9˜,®•bañ¦QÅ$Ë8­Â7º2lÓ»‚ÈÆìæs~CšJ`ú¤à—€×zª|z³• –´Q÷%èpþb_†Fgš)Zœ5–6n/ªº'¯Sï ïÚ©µÖrÂ[r¼søá‡}èÅw ;‚œ]Ûíí‘bR²Ðç+}à—¹&ãûØéÁÂo¹ ú±\2úÁ¡âe¸wç%Ó”Ù{U¥ÞŸZ§Š–ÉÇv¼Á3çX¨ß¬$½NAë—*3Lßž ö]àŒE/«Ì)›eYXF÷F·Ÿo6GÝh„8,ûP1)Do4WQcêX¦+ýæ39°q¾_…In†}¯êå ù3§‡ŒÈ;é=dS~R;|dÕ×Ñ› ‰©hsб¡,k–’.Û:.lè#ñªëW6;Ô:LI-=‰aJ™žŒú:û«Z]Oó‘P·’äwöÈ~zƯ"È`ßÁÙ‘ÄiÛêd sÍŠ/:(M$§‹bT¹Å™Eè‰ &²7±èÖ2æ?×}«8ÀY1 ×Èù>*ä¸CÑpÚ[é¿k{ñu¶Út×âÔµÕ£>T”{¶bõ^£q"ÇA*AEµ€Z§1¯¬6¿Þy~€, ]T9`Vò‰L4 0'Æc]Aþ"ô†STq|’˜_¿s¸éÓùºƒX­æ—aµ3$SŽ&‘l/%Ã%d–kùÕûÍ:PÛgŠ (f1"ˤ¡eïVÏÞKx5zîZoÜè7†ç²yÞÂ]šöMÛÖ+±¬ß¬0¾ú†Ïg}mMÙku} zÛ.)­´¶LŸ>+Œ£{Wˆdæ¿|u‡¹×z ÖÑQÞÝ'™k9’8/ 嚎Ä'|i¿Péùy ˼ý³IñZЊ¨KÚX1h¥Êö3µÇ‘c*g´?fW¶I+rSy£J¹ä¯ëž?\ª Š|ê¯JÐߤÏÃíry6ˆV9¿Î=§ŽmÍÏýEY껹޿JvjÔ£JnL8%’šºµá­¯«øR-ýóa$\Jß¡Ç^¦6*æ·fâšø^* èÀoŒ ì´3÷ˆ&Œ}ž’¡À’Nú±tˆG¤gV埀ÿ$áüjÚ/©*äñÜTÅd±¦MÜ€aàÝIðòkMJŠ®EtâæÁ£ô°±oß0zO%}^dþ4xãTgù&y[uÈbi©u &ró+sWusé¬V)UJë¶+;2Ð;.!ËTYÒ^x^7»–Ážã6ÕßÄéœÈ„,r?­/lÏ5äT%¯íOFÐÙPzôï5:Éj·ª¯œ¬5£Þ¾˜y>¡¾ uø¾àÜëÙDvšNmdT~$& ãV;Vyl-Ú*´qJüŒ=ºûZrYèKŒ‰0±Îø8aÀ~C²- ôÔ…v7=¢ ÇNîé~­™}óö<çë))Ké Õ Z¡‚0¼ï'«ZÏŠÎ Îjï6c\S¦§P#ÅÂDhšïø¥Ã)ôSÑö¸®tÞ?ßÄVm¾Þ©•SÜFÖÎâÚú›üs•–^¿ø´¿‹’¨Õ'Æ‹÷eVV)”¿¤¶[«Xòö¿ê ŠNûn×÷âëAn0é³¢€Ç´r)®RÜ嚸<+ØQÕÊØ @Ä•1þ4ïK*Ëjž¢SÊ1”-†GWyí~D6 \S‚4ÐW°ÍŸjôÄGM<¥³dPñH ÕóMÝ5ý%Y^ìÞ#\ÙÓÔiñÊóÙ(?|Ëû5Gíy@þ…¸8;»Iñ"Úä¬äí÷è >2ݾÙSÛEßÛþŠš¸ø¦-:[Aº‰AG`WŸ±.*縯ªeˆO®Ý(žbnD©PðK(Wº¯ˆ)m¥|×ãV¹dÃAÍ ÂÓƒ)¶I•ß9,ê¤oÞ`fj‡EÉãʇ´d³«Ï(*Ìv/NîSéé"Á¨Z–‘Ø¥&i˜ú’À¹ë“ë@ø§‰¾Ó¾Nºè³D™´üûZm¥ÇEgiCØ‹< _oÙäég—,»N±h†Ó1K<©æì™5M<ÿÕ×½¯ft›Àw”óýíf.ð¹B¦=‡G4@èèÒC¢G€„Ëm¥‡à{—äLJTéf`7lUÜÛSNÉÈÌŽ©Òu,þAlg_ÞI%•²¡^@¡åCu·Sâ=þÛ5ú´‚Oï|5å+ ³ ¤õ¬")|•©¥v«ÞyM2ùƒï_P tÛðĉƒµ†dŠš”±ÊÄ"²O“’Ô^hØQ¿uR[­'³×Ä;µ°\u~rÖo|(`ô£S÷1ÚµÔÉb¾e¨ þ  »EK½¾ rß·€³WlŽhY˜¡Yc‘ˆ`9²=éÚ¹ŽI‰ÜḂ–««7Œ¤©E´ p€4%7J]ň´Éè¦\Á˜¦îƒk†ÔKñOEfƒSÁªÜnJ2ê¾dÔ•­©£ï¤ ,º3¯‹ñERÂröë·U_í&˜Þñ壾#Úét6j&й‘ÝoùóŽrš2e<÷¹|4æú‹j­Û2CãGà¤x*w€›‚×ÈÓJvwrÙ´_9ŠìÛ4¨uiºÈËD3 g}(ôÙ‚£‚oi_e¶FõÄÐÙ:Iò;¢tôü¯¸cqÊœ&>õ¸ÈÈ®V÷E!Ï Ç>ldÍ'Mµ0Ó¥?f[ábx®& •Èí Ñ¯‰Šïªz1&©”Ì©W Êl•¾¯†FõÕ•…¼ÎcøNëYÿÕçÓ0¢É[rFv¸Š×|—cŽM™jþ÷ïèÙšñ™Üý'\ê=zËŠþ[`l•Å„W"ÆÖ$øïÃȪéÀÅ-^õ¸žZsŒY»¬"AT!‘òöKxAlön”1ÂØ ²Ma—+P[WqŒNºìœðK{CenÀš\Úm,Sôî¹´aÊ> % #5{”UãæËª[ÏÑ+àH“*‰êЄcäâ™êæŒHŽ©¸;¢¥ø†«¬y}§Jª‰~A]ÐßÚƒϪ„™lBÏÒÔ^ÒnTË04©\cÆs蕎{j²D˜. ™›¾1;r='cÔ´îéŠÇFÑ‹HŽnŽØš½`ËäŽF;]ü|®Í‘µRäìZÓ@FH,g\EÚÕ½t]Yh&/û\f›äWï*ü´A‰M™ý òô{IêWW [ú{½%xèc/†7ÓŸ“· 5%%mrS¯ïPBèZÚÙ š õEjJÑi¸š¤XŽ N§µ¡õxoóÏZ»wÛ„Q·3?Pè¾Jé‡õi¶€9ÞwÈÄ?IOS g×ÝxÆ:áå8›+Fàq c'iÚÄ©Cº»›†P“RÚ<™Jj®óÎ}$b¤9¢Èä ßõ#xxÜŸûRѽ‚N+Là˜gµÖî™õªâ7!_FŒ±/¬6p…/YA»QéEl½†>Ä«QÖ¿³gº˜È§ÙKÛµ“0C¼D©ÕŸ‘/1>?[aŠºð)µŸ¸éþúëŒ×b²ÌÞ¦Í-yK1ºœí¾Uw”83›ï…å¹f,šnW>îƒâà ˜Ï@.æš/Í6D¸Á|+‡÷„jÚÍ•ñdᇘÑc•“JU“û†Ì¤UÓÅ…Õ=ãÕûå—§¤C—tÊ¿ð3Ñ“yXO•Ó^Ï•ž(&ûOB­ór±9ô­uÔòêðÐl˜_ˆ™LʼD³Eñï¢=}§‰À“H •u‰"¹Ýv$Aj^=Ùo@´Q&×¢½R§ð'¯ë4ÛžµÆ±{k5\;…Ï©qç~ Þk$» [Ì[ÜÍ®x¢þ‰&IA¼PÈ»áý,°+Y2Å–4‹¬œïˆß fœ>GaÑ­TR2cPl¶ÝÛZ¥Ãèƒ^Åzy…;îñâ(ÒâØ¡r¼F±Ñ!SI[aûq{ Deýı‘ï_mSíðæ ŒVˆÖX€¢ìø‚y$_÷…|€|üfêË0geeîÄëß4e‚v“$ý6dbøÛØn"ã_—Û_•¨7N+¶LôÜú4÷ÑÀߘÇ/ q>Åÿl‘þ­íô •Ò<5wC?M¸¡ ‰1Aô–Ÿž>Gq ]¥½…Í™JœÍ9öÔUлø'w›J‹wn:ÙÖ\½ZÛ« ¡¾BåÑ“˜ èR‚Íû3Æ|z(•ÏàtÜs6[ ‘ÃË=L](CýeÓrØHu*}ݪ_Σs¸U¸²™ìuàH”‘Ë~͵r4Y©Kç¢Í´rŽûÓáÑñÖh|3úûÿ š… endstream endobj 226 0 obj << /Length1 2612 /Length2 18319 /Length3 0 /Length 19826 /Filter /FlateDecode >> stream xÚŒöP\kÓŠbÁ]C° ÁÝÝÝÝݘƒ»;!Ü î®Á‚»»w „·3[¾½ÿ{«Î©©š™§»ß~Zßµ(ߪ¨3ŠZØ›¥ìÁ.Œ¬L,|qE V ; 2%¥ÈÅø?92¥ÐÉdæû—…¸ÐÔ"“0u*Úƒr®¶Vv++7 €……÷†öN| S7@‘ g:#SŠÛ;x:¬¬] <ÿû  1§°òòr3üy jt™›‚Ц.Ö@;£¹©-@ÝÞtñü k>ffwww&S;g&{'+!Z€;ÈÅ t:¹-¤ P2µþ2%@Ãäü—BÝÞÒÅÝÔ €lAæ@°3äˆ+Øè€°ÔeÊ@ð_Æ 0þ.€•‰õwŸþÃüçaSss{;S°'l°ÙÊR L.. S°Å†¦¶Îöó¦n¦ [S3ˆÁŸ¡›¤DU¦ ÿÎÏÙÜ äàâÌä ²ý#Gæ?Ü@Ê, ¶··³‚]œ‘ÿˆOä4‡ÔÝ“ùïæÚ€íÝÁÞÿC– °…åiX¸:0k‚AŽ®@Y‰¿m "äß2+  €“………‡ t=Ì­™ÿ Ððtþ©dýC ÉÁ×ÛÁÞ` Iè ²B~½MÝ€'W ¯÷¿ÿEȬ¬ ¹ À h#ÿö-ÿÂþ;<ú,ñc°üñùçŸ!dÂ,ìÁ¶ž¿Íÿl1³„¦Œ²˜2ýß)ÿ£³÷x3rÙØÙœìÜ.^.€ï½¨˜‚þŽâ_'eÁ–öÞ¿‚…Té»ý=4¯-࿾”ì!s ÐüsNsÈëÿçaÿóÈÿ¿ÿÃËÿë˜ÿ߈¤\mmÿÔÓüeðÿ£7µÙzþm™[WÈ(ÚC6üMµ-®"Ðäj÷µ².¦][ÙþSH³Èh¡r1·þs6þkþ±g¶ 0PÅÞôÇÍ`deaù?:Èr™Û@ngÈHþ©Bv翌’`s{‹?–Œ“ `êädê‰Ì™$6NN€7+d-€1€™ lï9€dç °´wBþ£¥\œfÑ?D!n³øoÄ™©ßˆÀ,ùâf0KýF¬fé߈ À,ó±˜e#ŸüoÄ`Vø 슿„]é7‚°+ÿƒx ì*¿„Oí7‚ð©ÿFfß®ùAص~#»öoa×ù ìºÿ ^ˆ¥é?ˆ• âÆÔÙ颭ðw½ ̦.¿AšýFÍLÍmœmM­K!e4s‚ˆÇ‘å¿Î²ÿ#ÿkŸþQ@â2ÿqB(Ìím!£ôOl‰b¶ø„üŽ20ÌÀÿøãúCïè YÃÿI 73d|lMíþå¼åo/ Kð_zˆÄê·OˆµÕEÈJý6çwÞ¶X{:Xÿ9Dú„Äúþ_Ò›AHæ¿cæ‚$mûÇÒüÖCêô¯ ·#óo*Nˆ/0dÙþ¥‡”ÁþwtÃöÿQC2rø­†8s€úÌoxÌ\Ýaí39Åt[¬& ·>\#?k—i{m´J¥½@ðqmЛ´)ïâÉNªïÍÚy9É熔N¢•ù´aöX)y?Yü°Bn| nÑUÅeôH&þOk±Q2#ô 0Ú,~ߺøÛ,Üý÷ýº:W’‹®åd_ó9۾ŊÉ~-ÚÊTà?–æp;¨¶Gs°˜CˤÍÍs\¸êŸ¢¹ë¶÷&§gí}fûªï253<’¼’Õ)lý+-²Ù,së™n™†"Ùb Ð$’ Ššñ/“<(çG)í§RÍéóÒ“(Kø»r‰Æ—[Ì9‹”žâÁŠŒLÎñŸ_ý鉾|ÏÝMyyIÁ߯¢%„žŽÕ`†šrŒx£¹:%uT{Ûšè"94Ó´–'‚6@ÀJØ›_'e¤&œÌø9éóeO‘#~‚QæÛ‡(:V+÷›¶®\梜ìföN‘òmƒn¯o¦^ÇÓ¬ÄG´š˜6Ó.~~”ôÒ¥n*»9æŒ2÷¿ï`ÛnŸ‡_0Ç=ŒugE~¼;d0Ë–5 ÏŒìöl®ãû4¶‹f¹[ºzü1aïøGÑC‰¥Õ)e§Cîƒè™2) µwiÌ|Ý(º{ù³ú¾:0ƒšGâåÇè4Ñv=ÛäD×¾/éTe€Ø|‰ýltkÜŽ\pwÊw½¢lx”“åê¤ØÊ0theïi©Ô½¦[ÚC·“üœk™*v¢sCô9Z‹#^k#ùñæødá¯MØ4Б³UÜ©ÞÔÔìtWÄÞ¨©e”‰ŠÃUs>ñ¾û%z¶E/<(vBq°:H{,_ÇWL£M½Ïõ,Ö/]†JÈè?¦‘–4¯ €Ãc°ù [r@…é?Q.Ižáú£mYwó¾Ôä\kÚÈ„ª&©r–Þ.ížEžC~{Z(+SrSE‰OñÐ;R]šM ]„Ë {S˜ñbÞ_'š:àÛá•¿>“£ujï«]¢ìËÛ Ó²÷±e¥*M‡ñb“ÊÊ_Û銼µð»Æ¸rV3fîo·SPǾ:÷ŽhÌ$BUJtÁš ói;¾5ô 亷%˜¼”Â!DQïõ˜lZÁ÷ jhÄÈ–ƒe>mw¿äaµÇ_~ºéÍ1Á^»^Ø L ¸^\P—:Dl Ó•벶ì_—ÈÑ윮(a>U¾¥LiBuJìBóZ¾ŸIü4.Ï›×é!Óψã¶-ù8ÇáaÌI±“³Üú™ÞÇð+«ØbÛ–“ÚlÔlÍ‘!Yæš  œPsÈÓ¿…¤¤¾Ñ듾|…àè:NÚ4X» ˜Óñ«Ûêáh΂† ÁþÌ®¯={«µc¤ˆëp;ÚˆÌú½Î×#@ê”&ùÜ[ôÍ”³â‰‰0 5«qÔ—Óû2 »Ähf¥˜æa…µÓ-[ZçqIô}ì[-¸ŸÁ6œ‚ÇTº¹§ Òe÷Ÿa£>%¯?‡¹‰WTzíHÁÕ®G™HoË!(¿í*öÈìÍ—d¢åÉÍt1¡O™°?^>ND¬ªD öÂ5Ùëóì_iJW5nq ‰ ‡@Ëä"Klí·øAJÇ›ãø= µ6 Zè D oP©Ÿ}€l(f“£/€WÙå‹>»Oô§ ìχ¥ç‡%„$íTbG …þö¯Ÿ¼WÏLêp†,܉|CФå^¼˜›2e¨;ô(B>,C¥-)NðDl~ŠÐËø]€(À½á]­à°ŽÕ{£EK‰ƒ½uh3²Êrš¦a_ð(öåjÒ{qªñns"èÖÔ{á•,Ë^˜“®Úrãà]Ú4±'tìg*Øò;B÷ØNŽQõÉ´ä%[¬îÒùÁä:$æa)m&ùÈä®ÍÿšfÏÐ…DP(¦`c#ßèÀk‰heõÈm{äSNõ•(`æ5ºâ)]þÅõ’N·w«_„N¹5OÍüÇ{¿ ”CQ7Áà†ƒ›•0¦Ò&X£ÒŠ´×ÊŸJ–_´VQKS•\áéy_V08¸±>zJcÐL÷Á+÷`½C!L¸>à&à‘Tþ#ÕÕ}®ö å˜NbÈÅR8Ù0¯ÃNƒ”‘EºØ邜 4—>£ÝÇÛÌèiO](jÅÆ'X”JÄê³EœrÑw–qä–ÄQäpÂÀ›”gbªxµŽ>ÉÁÃ6…€ã°>(.8ÔÂÖ´j l°¾ßmss/aÞZ‡õ¦žŸúªdêUƒQ‘#†À$ÍùOÿûnNé.” ¦q¬é„ ™1’E ½m¹¹7)ˆ«ÆØÍIKù~^"t¬%|òAvP™uð†sšG[nÒôÙÀ¬&›ð¥•øw\ÕÀrÜwȾº²òúAwý ³7¢©çj*cd*6 m 轄‚X´Í“— åˆx•tÛ±˜k o: ”qRÊ!±•½¥Ô:áW,‰)„/gÏ  ‰: µh+ëw‰¦Jð{B¦ØN_9æEï,:ÊRºܪ9qëaŽ[39x}–jôMæ‚* ˜çòo:q<$ÏésSvvÒ¿ñKVV+÷fÊøTª'ôÔÔ†7Þ] u"t_ÜŽ’4ïÔtµ `”Ù _ÕÝ¥í†nJ.CÔ¹Ðñï"÷/€ß»;ß²C ŠéjXa¦ÂÁ¯À×úâkäj˜¦NDEd—OÂXâeÌYeµÍ=_èÓ»$²æ²ÑŠ. {o”Üžï˜/ÖäÄ•—x©Ð©Ž–¦¨/ªíYБØ*,Řá¼/Å…qow5î/†}M̲ñš½Ð¸Ó®W–ùpÃ_õǯzWË_ÛyÈ?¨e‘”àòÚ¶…‡qß—ýH£Eùt’>[GŸõ%W{pšdÊ)o»­”‹Jf*QœwÁÎé•O/·SöOé;J¾ðK9§ç/ë4åVÒF=} õ~Õ*GðFòÛës„Ý›º÷º¡£ ä·Í‰¸Â–Mܤ)+é¾X-ñ:£»ö‡ì™ÔÛô¡@î+¿l[^©Žøø‘@®+òØyj"hÑ ™WÉ‹$>”7¨Íd¾ï<¾+àŽl®çó¥÷…øþ4)(rxŒ2C~õP·Ù1Àÿ†ÝG4ÎKjK—ãZaIXf$Un«8ëˆÖï—2³ØL¿KY¸÷G??^¶š{øFË d%g¾0y–öžOÿ|•,×÷h˜Dj‹ÈCù»_ξlQ„Þª¢´îoäŽ]t6?áØ]£Ô°Ùa429ãÌ|HýNîãŽØº¸ ÍD}C³ÓÞ*èÌ)s<0cRØð‘MÎýh‡ièlˆ+!m…ÆûÁc% Mq%Íô2¦hâé+}\”I0"Lk¿újýgrú ÷–<Ê[±‘öO¶ÐÃL«¨0öW¤“øó®nÈòM!êÂã,ze$_/²ì%a¶ÎÑt",LòhF~ƒ›MôHoÑ;6ì¤[Ü¢=­Xx…ŠÈIYŠÎ *²_PÕ±†Åd5š¢æçÜ.±—‡¹dHjm6n¶>• ›SG‡‹vdU¨i'û™{Õˆú47¯ýÁÀˆå1&%ƒcÀR³›ÔVár-êjS T%^±Ì;¥9gL¨‹WíÃöÌxŽ >èÏ=Ì ¼e,b¥¨áTH\WÄÂ’ezÆŸO”ýÅnñ.[Ž÷;Ušl lè»ZÀd¿Õ§/ætmbXÐô%•x«RÚ`‹0EßI5]×43ئ J·ôsac+EN=û>û5Ü]â’ìúàËœ0X?‚3项ǥƓñ†lÌœŠÔ+›aCIœ&aØÔì%Ó%føbŒƒ‰í#66lɽË( ³~ŸÈŽ¿xÑ”¡©×μÎZˆv3ÌWñ‘PPÊø×TO?èš”˜È‹Uo’ZÏ9þ8ÂáA}Ë?Ìt99HÔI×ש xS1x~aÖ™X¤(O˜bêmf/Ÿ!»žÖ ±o&rŸ·"¹dïžö‰Sëp$ƺ(§¾/ÅØ‡V¿_°—]Ð2èCøfZаú­o¼¡×h|ú>Œ¸*ÿ9‘³ º„Z‰ÇC1‚^’Ï- 9r„<¶y¶ì¼Ô+Á´ÈŸRõ“I½êMíÄ0úòü¼”ÜÌyä(ÄÐ÷Fnâê«÷oì2RaQËÞ6RÁuâ²·xàö è;¾ï–Ã}ÿCxŽ]3JsnæË6JQôîå•LèoÂ&†ã™^ÛqXÑ~wR¯íü ‰=Þ·3pßÏpRIôiÚãmê™eâåóLZßàm{Ï21ZÀiÄIïh=ÃR§êÂNTƒvoÅÇ2èÑìW±å¸¤UèD.Ñèlç½0õc1VØpTB)اڜ¸¼”V%L¶ò6åÝÞÕ«œ4FeMVí,m§oSsmh·ØÌåH9ø5£SËð>Úl„Ì«–ï+’ú ¢J4XuúþÓëPàåÙJAû”?>Úi®$„Ò,èoùAò€£*8,3y?KôÍ /cD|…Íá¦Fh ¡ÞÙ˜$Š€üõü4WhtM±üÇ?û 4עشïYa™‹ ¯Ñ£±äª¤nT}&—’ü+*†%§Þ»„´[I¾Qóé çl¨kd–2±_h?1Õ£¢EšÉ‚˳½¢~ Nì''E¿pAó@Iè=ò@šu,ÓÀîÄ÷Ñ£¨ã+ÄìÆã‹ö¨†96/H Óäïûñ’~€/û´»ÇKÙaªñƒÃ`Ù*'23¹íÂðó'³/òbÅ”ZÈKÁBLÐZ¡zIBxç+-W-úJ¯¼{üûš#þÕ?Ž=¦ 1¤vÌprW` á[<¢ò³³šîwaÄ…f­çGZ…H¯r?'® ¾míòÜyª8dà³ÂÖ¥ ãΜJ«‡Ž›‡ 3ËŠb{©;8|?¦l}Ì&”U„nrE²#~€+\Q]Ûë0©¯ºëèö½ùjí¹±õZÿB¾CHÕ1IS}o'´dxK5þDƾC/Öóõðφ]þ a¶¼:€ Ã"«M™Î±…læije:L —æá²PJý„ï&—i3jõÓÇ‹¼7ŽˆY™ŒCÅ“]€§ë';“_W…u§¨% áGË!bŒbAP0¤Õ¢qRndzʃïôvÖò"|Àž)tÓhJ½Ùõ”„é³J™ª¶™¼™Œ%¦[äÚp{&T9ï¹hn—/EšÕéâSV`š1k¡  ek xC*Eµ²”ÞÉݧ{ÝfyΛ®l{¼Ø6—7‚3›bý«0µ½¥¥w¦u8Zj:‚Ô®Œ§òV•Öuh1‘ï7Ù‰ŸÇåàùOIÅËnv`Î{˜û« ‚&vâÀ¨–ÈŠnE× ?ü«;yiUĺýýª)„(ò_[ëÄa·}ÄYŠ5„Ò[u~ÓFƒ’ª gʉjÖôßýæ?Ë3›¥ü0ò{g‰yoY’ׂZÑÊãýHÄ"<¼r¾º8¿-ÑÓH*ÿ‰PIL,ÀJK¢óË m‰»›\ ´+=»ußr¥àùE,´.€_´o°Uí›({ŸÚÝv›áº§†å"¶³1ÓQÍÞ”ÔBu$2Q»pñØÛz“ÚĤû„hlï~ uø¨ÆcέHî2Χהb¸EV™†²cä9­X‹sÚIr/ÁŠûÆA]+—ìõEjÄ¡Lºÿ–`}.ð‹`[ÌövU#ÆD[ÃÜB¹¯`¿†8‡×»29Ö®"üaÜ,ž}wü"ñoM[Þz2œ>*‰F¾çÀ;€Ó÷†ËŸ…9ä‹ ñÔm6FLV4‚ÌÎÒ5’MM7E™~ôq<·­5YÄ©ígÔð½Á7Œ\¯Ž-òÐJ7Fßj éöÙ˳ð¢/˪dê—¤¼¦…UﻕñÞÉO4.<dpß¶ù£Ðïñ|Ì3øH_ã»’Æ‹ P6©ºi°²[ñû4Zi&~Fe‚]›ùá3^oçœ}úlföÐBM説üçnÉÆ¯Ìw³S\:Âp–Õo%=×=Qs:Bq6”à70•YÁ–bYJ^B…°I<‰‹ ­Ô„gÈÇѬŒz}¡ääŸviâ[—öò­¨ö ê#{‹ºW¯µŠŒÒà`Êå­LÕ;ÖWná´fOðƒÙ—‚ž„*™}ˆZÔÜùcmcL¼T T@Ú ¼†ŠÒ²TÊw²Ù8eZ57ÚÕãïL ¤ÞÊñtÅÚ¶£IM‰>«âƒZy<€41$ÅÿŠe›oÜQæì hs°ËñkUˆÚCžú¬ì&áW8´ª-ŠàX[A]„&˜.l€ºžG¸ŸÑí ÍCïÜ ¤NË($ã«ø57qòÙ)Vû}=jç¶úÃë“(0°Ú^~.Ö°¿š416M½ù„ á±xåöÓ¦&›r·Ôþ ¡¾‰ÅíÿOH†‚ ð‰û9 u F¡%$kà•ǰ)Þ–ƒRþœùFè´ŒUNkMzC!ÁÇú-‘¡°œAû“ˆLzPâGK6ÏxëjÐcOù±ójÑ! Ñ­RS¯å°e%¥œkfpM¤5øõ6W*ÄòR/Q¾ LK •šŠO³±>ú¥FÛñüh7øõÓ–®y.¹ÿFUÉqßäÆõWò¯Uè¹bòþ6!‡uºÞÊd6¨K@Îô8yáKôuÈ7‹e´¾µ O|Æ×ÏÑ;ñó†ù#`¢.5Á Ì¢/#!#ýB‘Ýýé¦ã1Ú#Ó08Ò<-žÖê#bù›˜ `D€S QÙ÷HîÎnqÊl¢rpÕÁÑO= y©öi&j:S‰G^¡®ø6ÃgÛÿï‘X2¶Ô[Yçw@Šv©îù2èàØ›;µŠÐW­ûp?ïË jq¼Å߈"|‰]=Ïš· K’éEüÔ¹–9Ø LE+Î"ûàgÇx qŽ ¯Î·?\,ÀïIûÔžU"Ì:éxUí)Òpýf  2JUþS£8ùƒù¡úCúlÁòq´\QýYå¶K|å/Ó{ð\[È\âüŠ„bnú¢Ìü8?R Ág‹ôªÔÁŒ-$iãÀñfZÐS‚ÜÔ7TƒÚùB×Óc'.Ö* ê÷ת¶ )uQ)Âw§´%Í þayy;ôÑAÒtrŸzÙÑß³@&£ŸqZ!çÄ9©£î¥Ë`SI±w^±¶„ßìã¼Í][µáe7”ÿ’dÐG‹•}J™‹¼;‰÷ó%tR/~Cz ]p0ò¤'IÆhH‘Ç{£¾ø'X”ÛL­féÚU«i»‹ð1ÌÔ$vДÑjèlÍ·(-êzôÕƒÃ%ñê{&œ˜|%›'J[êPˆF6¦ªàybv\ú^†9;bíÁn¢l‘bÅü NÒvnɧ›¡…šÐXyòÅ…<ØÙ/Ûõv¸¥«&}ñ¤iI>t[b'“/ž—ÏÙá:!âŒvª¢5‹óÛ…ü…+7‰¦¯o 1 nˆwlÀ:c¿*ñå xÜéÁÖçþƒœt ÓðkÄ#ahMAnRj´n\Ÿòî°õб"êÄ«Ë=æÕ@׺–U<0…nœOëÃG:,êÃ1[JÖg£ÁFª&¦K¶W+LXÒÃ^zÑ/¸¡:6â ŸvIŒ[–pq$¼ô`PؤàyÞ¹1¼%‚)e( i+ö±ÿè€·äØæ5˃„ØCÀôAãÙOîÍ-L1ƒLíÝŽå¶;{rì·Øo?GÝ ÷:9WHK`"ñ~5 á› è‡KZ wW…]>©mô‡zÑïÓ¾v¼“·dï¼Ø½„÷Ûiçå{^n 5ˆf]‘iÞãDÁV0jQ4ï/å 2#®Mß©PYö>v.MÀhåò–Ié»'^ ȸz6{žB+ö•Sƒ0~º% åu?¿Æ°ÅuöQþpLK6SÔÀ<¨p.R€»gtu£•,Ì2ÌÚªI^mÃû]ùvE!ÂR9ÈJOpVÛþô5×Ó¹9ºû¬ÅVÝøj²äýíÝÄrÞ¸bÚí‰xk£a¨U´’O¹Ž¨J¾Ôíè.£^zÇEµHùi[[%ÞÙ3&½úˆøöí‚«m«÷Tû.…éÇ87ˆ›,(äôlÉ€Bj7w$NpÇ<_w ·å’b±G½ü©€×αDœ¡7þ’ÔB9iâÏ$m¨a††áZ›¹Y8ŠoaÅwï$ˆ¿>Þ|%þÄ+à]ÚÐî3r¢»°ìgIŠmÿ ˆ_•7¹zþTÔñaºnFgjíÛ5Ï×WÃ627{ón¼Ü‹i¸}c_WìwÊœ:Oâ:["Á9¼Ëéw>v†Üú„ËUú[uÚä¹[9äž”ü)w—AR¬#·«q¦€.ó7ßðOÖ§àÊÉ1úÔ3¶ÃÊÖqa3;ú:ÐÇ«£Å­Þ‘ÅÖ»;ަø¦y½žNˆ~õFpÌëíËÊWøŸ¾(ÁÐF%̧Iùb ‚‡•ÉËØû G°“t×UZF;(ý£{‚øBüW”T#v="Ñ8ü˜¦^]匾ƒhuÒ,pàÙ~m1!Gy&;)Ó_½6ßÚÔ^}‡ƒÞw—ô'õGõ+ZG kš –èmîtì}/_nz†pg/î3S«ÊÝEí±±?é²ïÐÓ;Ù‡í1î˜1 +Õ|c¥sþ n.«ëîþª”å¶"Òó˜šñ-2шn2øÕ6Ó£åŽG#íøFP¹uí×Q3f~¥züŠ]š*} q5)~+Á§™VbÇqw%»†E¤ÍºÈª¯#éÒÈŸÌÝsŸÒI<= ߺôtj'±úV'‡•õS½érh—åF Ñh2ÅÿD8z¨e•J7ÅYG™.¼Üc‹“‚]µÂD»HÑX› þYhmZ8ÈäowÏÏÊeDÒE_}çuГÏH˜ù?‘[e4ió÷žÕÞ}ù7Î:¢9¼ŸYM#S£¾ÞÏóÈß´T‡?›ùfM"ë ²M«&ð¡v &Œ+ÍA=L¦Ë\_oK¡XówÝÞ•­GtGP¶g ²³¿ìyŸ6‰.Êjëj4ÀžB}ÀZ[¾ï˜:úu2h#ø6Ûx"½FRìu¾~ÁxüªI&¾G˜Ô í]Í—ËðVI/dw㉷,– Bn dC›îî”K‡Kòo'ž;3È^Gtú 8Br&¬©16à¿9®êEüÈK™X¢†WPæýŒJ/½F e,qdÖ±ZkjÓôAó™¥ËAWÕðp2–AýjYýZ`‚~{®°h¹½;¡Mq/Ae2p‘ ™¤›c(Pª|Jw‚6ý8ZþˆHË#*mí%]öšÂP]Óµƒ}ü¤¤§‚°ü³ÝN¦Y1æ–Æª Óæ+«è§Š¯É…áK·w_òPŒâ¼<ˆÐ£ Y'd?ZÒ5K˜À*d€Ñ‹lo>(Ê8Ôc ¹¹Ó3¶á‹±©¶ËE,¼ç&ž£Ø{·%¸¹,*šÔ—§˜lªC¹GPCêrïþ}AþåònjTw‰1w+9éRçš°?÷ä-0l`Çùúƒ—êÝÇcüŽW±X»ŽíøœÃZAC DÒ×€Tì"Kª­m½éõ OÈV°¹+•ý’ÖíóíŽZïWŸö¶¤w®‰ y=ë:]K³gúØPyv_ ¿¡Ž–D„«òW-ý²ˆ¢¹”¤ÈÇ3­óª{és‚˜NvAŽ/O7=¶ÕUÉËzê$&‡Žð¹ Ÿüˆ¾©dES üë,ÕU(¿BÆriwrìâ–õuΦEÙK}ÒÎi|:ô ùÙž…&¾ýZÂøg^™Ýæªxq]‹„ò°%ôâýZâzY nïzÕœúðFÚÿ”x ¡7óx:: F¾¡*.G;æ­À&½®Ól¹|6pHþ™Æð´3³”QïÖŒ¼¸âöj^Ý(yôªY(„×ýGeѺ¥Ï#´ ïkŽ|1oôê¶,›þÁ%F½UKåò¯ÓN¥—¹#–>9¯ôcÜC pDqåCI ™ºzú¤ñÏït(•ßlìKoëȦXé ÷¢úNÆò*m¢}Pí¢4î{/·msoW¥k§¥:ŸÇNóð‹>ªy „rm8à™¨¥±†Žô‚ø¥šo\!H¤nñ)>ÞsCäríÀl;ž›å9‰ˆ!ÚUbèèõÂÐg“oÛ[Ǫ6^éÆÀ@Ÿ-U¹ û&jTZûo«€Bïæ¤D…!§ÛŽ$|}·ž¼¼8T‡X(2‡é&„xš%Dz‚†o‹Ö¡£|§vI ¼¥kqH¥=n YDkù0 oûåL~Qw1*5¶¨!—ï£ãûë"|DÐ%/ÍÎŒÒ\,Aæw">»ÅLTD?4Ñâùª;¨)rv|'{ÞÖøÝÓÎR¥Û¯s·6¥È•îÕ¡wŸh'UÔÄqXØe}ü…d7វٕ+1ȯi†‘ÞáÈHtm}ÉŸ<±¨#Ç¥ÄEÞ­%h@HØHx×'ÕæÐ®¿OWKŒŽ6L~¦XF$¾Ck†½²ZYÊKOœuz¾2’ýÐó4JÔ–÷>äƒñ;feIµ‚é&\ïs.Þ°ž]Ô¸zc77a$_ûJK=ïŠö¼±â~â¹Ìª­P««WØ­]ê(³iÖŦo9;öÁm§w ½­ƒ‹ìµYï ¿,¿ÎH‰òm$ObwZ_ˆ×Y7¥áŒ¦¦‡Y[§0[¹g3\¿ 㨨ÊY=šT"‘ª?–3úšNèe[õ5ƒ‚0Í„òœ ©3a:PÒ'ì.ÖÎФf·uƕĖ•Ï]¼·Ý*ÇS½ œ’sM™nIQæh±¤»² ‹êpæçwAã$™UaîôpxyÖÂ"ðBçŒ ¾ÝH_’:¦«FH+Åk%®Ú™¬àmkœ,z½‡´ûݲm™)d©Æ„ˆÞÏšYRJ†rUýdŒß_:Ùí8ä{%BOúH@7³w†;L£7ã .Ìö™!”(a$—Eßî»36~áQÃz3T’@ýóœýPÀb³-â\v]à‘Ò=¦uuoZçDUXbÍÔËø–]ٌь¾äE I>ž¿)­N¨Ñ…©±¤‹8Û{ÑâGŒ@L£&mÁ½‡9Ÿ„›)õ%_"oe˜ð¼kç\¸&V#Þ“6Ë®Wóå¥é²“Zyï„ã})Õ€‘ &ø!ëÇ8aÙN3eëÚìÒÔáRGƒ˜ÃšûnŒ"êP÷yèû§_Ñ–±×?uG‘-ý¦|¸ÇGBQµ±y÷¨û°hY½n8Ñ·‘ 7ÌØH u{|ÕÆËwõOçÜ1+óù¨Œ$f\F„º+ÃØvQÒñò©¢ñd'.1ªUmƒXwº7ì­jßïvXXiñÉGOIùç|«ºNàsM,"S›L”æ7ã4áÂ' °Ò&Zï÷5س·ÝT»g‰^,€xÒ±—gýô發æËÜ[@1G<1ÙšVSÛl̃;%h⸥Íôƒ¼ÂxD[Â÷|nYµŽ[ ¥/5ø[âVQ©G»b¯Ï,œLD ¹îÅ<;ˆÞ4”Û}1HAf Ò`9Õ«7éÞ6D ÂH`9€õAmÂ}T#”¹Ã!˜»®ÊâäîU¨%ˆó]OÞÌMIv](­Ó}ÕÜDÄç×(ƒ÷° ŽÝ÷ÞjÓ}n;.Ìψšl›Xý#69SÕT¬öËzúYØVʽè§i›•ö!£-â˜NÄ ºúM’‚î* Bõ3 Â Òî¤Úá²:7#kb™“7»!‡4¿=æÄpŠ1<Ÿ¡õí¯ëìce–ÏêPÇJt5Ý¥²j*ÂÄ^‰ƒjò˜¢õ—‘wòܳlgÏ]_+Ê9ºxŠ õÞõ–'t>3Wñ3­ÉšØx=wQKMµ±JWʤÀ÷’bjâÃ$éß•Sˆy'Uì­óÙ|/„åÅ#G ö ƒá(~öo=úéÔ[ÁCn®å~©I‰°­ð‘ Ù,dg…ŸF)ÏX]ðÁ¢<Ç9®CÿÅ«u<ëݘ# 5ªÆq~Së4áºÉV&œ ?ÆöN[-³YKÿ™ñÖDÛáÒzñ'?c\pGYgï˜Í¯eï9@Î÷¬õZ¦³¬ÿ›+;lpà/¢ ö®Öo*Å´š…l¹. Ý·¹ËiVyõ ôhÁuƒ.JN!B 7ã{^Ų¨E ~[µzA"làÅuÓÕHkK;–7¹4Û)÷o;žyfÌD|­ÑµÛñ{-.¡í˜Xy¼Ò}ñÉœd`ÔD¤Í‘^ðE0cìPÂŽc¬ÎŸˆ@òz7«Ó6ìÃæ²¼‹ýðÃ>Î¥qï4ŽGý5AO|>Îx:)cÕ¾Ø×8W»¦ðìèö=ÿU:½ëÜy‰í{gq4 Þ_*¬÷Þg5{&Ïž(=øJJÓCÎ êòbË¢” dËõ!A/ˆ;qø ]ÅNº¼6¾H"<˜xœpNK´vO½£Ç-/ ^D C¹EkÕPG)¿’¤Ù¬|Aã#Ns¤°Aœ,ßé N­ùk˘!‰v‹ª+&øë¬0"YjÒDŃ O™t¤é»Þ¾ÀWèEÄš?­WFDo?½âžÊJ.ztÍç½=Kžð<˜+²æ@Þ6qi u¿têh÷óâ%ÚФ”Ky<;&\b¬jGÖBfñ ì‹ÿ ? MGEψ¥SpJU^¢Ë¶Jw%ÎÅnÁN)Õf'ÃážO§þ e”aŒš¿düÖåµ ´¹UþÒæAq~1æ>4YxaD¹FÉ«6¹‘Þ$y*•5S¶HŒ- QêÅO\­Á&;\.ÃÐl!a«%ÆÃ£Çš?Ïš’ô”ˆõßüTÿ:bÀüFô>KHóÝ4¼UÕö:³"±G衚‰Ì€ñeÞ†µiÁ:ì|¯D b07v¿„áÅð‘©àJ¯´%!öªc]†ãÖ=“¹^çpmÎö÷\Ló›© ÔJg×­|¿›üå%‡›Œö BÞ¶¼Ä™sOþµÞ“#‚!Z…÷Á¯…Â7ËÕüÁ k0Scðæ¡Ãx® ˜]¾§¿á5$7{5»œ¹ìÈÝ8¾½hµ]Ÿnh*'Ý ªdÄ×U?’<´_JìHŽ =­Ý‘ÇßÀ–uÚ3wýJ™ªW/Y€ú&VX*°„®L…··üëlU„ð?gI3¸°Ñ­‰ìŠlp)!ü«Â#§+Sõ(ÑîÇeé ¬Ï(myé;?ç ðjrHnoÝÎÆ¶aÏÇaT8Ùv³0“Æ$Ϋ`³?>ÇrÒ E«ð|¬ïT1ËN9îÅí÷k5 t‰ë·Wµô‘È}F#µ]´€ñÝ_Z”†G"ˆBET²&Ý+æ4ð+)ðëë—Iº£džlg¹›6±WéY*‰‡#|ÅÅ÷SzÁd{™å—ôx Þ@ÿÀbĪüm‘.×ܬ×þ†*y½ ¢ëçU­oë‡þnhNPýºÐ±'W%JеeNpÞ»™ž „aÂß›ä¹P'BÁs$ø>Dá)¯âdë‰J•6aúÞÆ©û_x‚#¿4§’nfZ‰J…ðÁ† ÇÓvRVwu˜ û :,ZM#-˜‘¼ŸòãÐ4ƒ¨®¾-aÏ‹Ä;P/*‰'Ÿ/¬3¢9Ü#„æW:ð¾ nŠ`¸› qÄdß36â³û››YBé+¶déÂx&`.ð¾ÆŸcÁ_î÷öŸ¡jáµúO–§„}b³éHQHG©9ˆf-~=’™’rgçòš"åyLdŸÚxÈ}Ö z¾•;Ç·%WDp±ù»Ek+Žì}±Ò™•åÏPð š&™fÓVê=h (ÊØ{ÖW&-Šƒb;Jwo\¯Zªgš*Aë¯4øñ3„ºn¦÷Ä›ªo‡ „£ Ã9F¶Â LÊ•[m¿ÎîüĪ7yÅ>°ƒ¤By£S+ÅöV* .ÍkŽeߥ3HE¾!¯£Ïέ¶ƒz‹º¸øü¬Sœ u#ˆw3¶H^oÀ!y8ï&…ïú*#(S¯Qäq?×G óúIøDA8yÐÂoøîjƒ1:Z|,ö`˜;èg÷2¨â—£‘!µñ}Ú[#ÃŽ ¬14ÆwHi5£…·G8ñ-—ŠQïϿ栒_¶c°)»„¢÷ë:B‡X%ËŸklIÀè`uþº>7\,¼w(ʹ·m4ÐP"©":¢2vþ*öÂ]WpÕìEÿaë@??%í“jÆÜö݉d£ÇL]_4N¹Câ´n™°5lä¨"†àQ]ÜV žÉB3T')÷pt'ߌwmóÛ)ä ¹Ç‚fÝúJ}Ø0QåJ÷Žã#8Ÿ³CœÄn ^O£üá_SfR ±¶ƒyø’ÏI°•Ä{R<.WSï@ÍC•-®Nýu²CÓLùøæÏ¯C÷Dã^‰ãc”ÃzyR*9Æ)^=ÍW–±w Ž'or†¢G+dC‘cyüDM‘T¡Ï‚>S̨±Ìù$߬EB™Ð^ùÇÛG›}–’±Í¸OŽ6}ÝSd!!PåEí9x4:)ÈþÙ:Ã.í„Í0CÒj‚I$vo°Ä†Ø2J›;Z„àA\)‚‚h8ryüÓo H!¬°‚%_x”9«[¡ÿ1˜X}Ôp«—fYÝŠ2l'nÿ¿7éz?~õ]YåR¾Ø§,é´Ââã>Í ÞœÐÎÌð‰º{Û‹©ñ{³ÒÌXÚÉ=;6ûb >ú˜es! &ªªø!šŸù•yeò|ôÕÛ “î¾gîðͽhºbA£Ò±Çß^J‹„y.÷ÐÄâ¨1W˜ÈXg¹wsºŒÃòuž ‚hÛ+['TÆ.âàɇgW~”['^ £LxÌ%1#ÿ%mßk¢àlT4d9J>i„‘8U9Éþ$ˆjL ésU…òŒ=d9«H{p‘ÄäÍÅùî›ë‰‚ä;8<ùàíhY™×hr!Vx@¡#ùÏÍ\ß?èÕä„ÅØ‘çÚÜ5>õ,ÌΈcÚìý¸1DK–ê'öçfÛ-Þþy/mhÄ-è³àÄÛ>™¢à=A]úùÙn¨¨Ü•Æ?0Ñ_D<à̯N‚OwM÷"ÊÀO¼Û1¢C¡î׿i#d:Ho³ýdaiò–sô&¿ßh‘Õ;qMf~GÛCâíÍaA¡CÏï™ çi¶Æ½>»<¯¥Ú `÷ÉánélOïwWUNÑ ¨M{©¤‡LÈðDŽíîÕü¿ù²=—üÎrS=çoT{µ‡³›;PÆýߣ;~z/¬×k zƒ¨%ƒ@Îô±ÙW:0ü›û;ÿdÛŒ ‘‘ Þ¡ÈzVÁݶäUYšø_Å—ýòš‚¥è³<¿cD{u„ÞצÑç+9®ëñµ7A»¯) ³òC:Ñëå`ÕZPÐÏDn³+äÞ•ÕÒLKk'ò€øúÍFuð©ÃÂ…*’К3€8_¹ |à ^T´Àq¯MÖ ðBÍ~_>v<›ËH—÷:ÍãOfPWIoxøÄ³•Áïøƒs¹oA¿P¯Zå§ùDÕÍŠÊŠÖAêk¨ãëyª†+7cLÈx2zœ1`€IŸX®)›4¾^£ @}‡§ºÖÇ\’ÄÎ{ä¿…ˆc•r†ðÜ'9ú»d¨pwo+ŽîUä˜ÙŒ"·EN…Ü{è3ÁžnàÿÕfÄû¥Ù6}á“^¶áòÕ•¥ëW­Õ—xpZ{6Š ò¿ÅL÷ƒš~ê‡sÉ´+ fƒØ©æatÑ4Ý– tô—Adb,%ŒA¥3]Ôsý=¡+ÍJ$Š-¢#ñAñߪj§I‰ìJ¹÷žiÔ.ñLÀÀƒŠëäé/NEV©ìkÝ"ñqª½zåw³³Pœ²ôsO] ¥ÙÆ@§¬ül½”sT±ßy‚:P UÔ­Ù"îHéÃU>ù¶³H7‰ÔïuÊöX_L«ÎuÁ-1í—|Ãèi@*,eB4ŸÞE"Цxfo:õÞx¡ ZqªûžŠæEÏâ§ÌÏV;gáÄ{z/”° ¿t"ØuyÉ¢Âyùä¾MÆÂZólEFÍìBø1´¸ÏYÒRÙ‰¢Iz"º¦#»­Ø³ñRÇÚ«ÅÞ‡ùy×L"5ÔÏ&n ’|× ¶Â²ò„b8Þm[‹òbUE_œb…·Ó9ÙëÑgLÐÓ*€¢ìÕ9{‡Œm¹A±9T[§†7̹Îà¥z…Œ÷!mbEBæbD„ºýÝ^–ÕqÓƒ¥„ }[Æî7XuOÖ`² ‚øAÎenô'? faTòZÈèõ€Ùó„„ÁzIƒ³¿Ë¼çú]y',)sš½J‚¨`:upÔÛ:–¼Z•·‚)6Z$µ …·`G†ø~`m¦íL´™Ñ˨t†-Ëð°!`t¡¢méûÉÓQàCñl@Êèøq.ìâ·KLÉ|Ã~%ràMξE§äŽ~þ¬äOk—ÊKyix×:@2ý@Àbã×ÐlÂ5÷n”O«}˜Ólâ²Rv˜Þ‰óëc»VhD…yÆá —ý±9k[‚ä8IûJACªÇ‘‡©ôÄRú· +ÙXúšFtcêf%CTÝæà8ЖBËxò“ÎÉ~f’Xâ5Qf{¬ßé¿«@ËÙ$צ’8©±wâ¯Õ7tC+cÚÁ°sD+ç ÁÆ Æ:7·¥ÀÁÍd¶TPÚ= ˆŒPlë¾mð'P]|U$ ÏzTÙ”-IŽØ»ÂÃÖãÿU‡ui+dÇÝú³Påϯïrì…ð¼0Î6ž÷!Þ”¡Ë½gjgÁtÌÍÜE÷Œ"Ïã7û¥ÔøoS‰ù4µ©FJ=¬[Í »®§ #ØMÛ¹[cL­‰ƒ*3ƒ(nTBçËÜÍáÈŸP‚@s²G@ÜëQn2Oûq2˜ybô©«ëXMá«gFáŠün«Ê»ÇLâØÆÎA¥7g0ò‰žcAp_Ú œ/ü"ñyj>É ¾íAiYQhè´Q£újwcôqÑUé(÷cûMÑÁ\X¶ ‹øÈC[‘/^ãÞxÍ6Ü'ZýïÑO>ö +?°$"Es M2?»îéß\—™úw†©€ë]ÙìÁë^¦µh)G ÒZÜX{tÖGØXmäÇÅmcü»ƒ?ŽÞ-It˜µì2šê;í8ÈIãµeJ —¢÷im‰6ŠÍ “óòÙ„Ÿ–ö@¨ïÞÜ ¹+€(ÌÎ{…Œ¿ûƒõ¥ax’øÚÅ\æQá÷sf·qMŠ˜v@QX0a‘³Eìžÿ:·MÚÔlác̾$øvV—á-wSÁƒ±…îÇÙŒ”‡¶ãP— žPøÙ2Õú±uâ—çGS_ÞÆ ¥ú¬éÇøÎZd_‹òIÌLéáNöŒOa/¿ªU}¡Û"¤î‰ Á*/{"Þðµó™mUsä( l~W…»Ú¦)˜XÂiÇQ¤> stream xÚtTÓmØ>&¡‚¤4?)ém4HÇDºEpŒß`Äc#¤Ã %$Diiƒé)ADI%D@Ào¨¯ú¾ÿÿ9ßwvζ뾯»žçºžóz†ÂʶXŽÅà…a"PY@õŠ‘L€BÅD PQ #4Þ üÇNÁcâÜÐXŒì_ UˆÀmj<‘x‹´NL €Iʤd¡P@ •ù‡ˆÅÉjw´-pEÐÂb@7 U¬‹mg'Öùç/À‡ä`22RB?Âeg‡F"0ÀÞt&VD"œC, â½þ•‚OÎw‘…@<<âr!‰¯‡Q’?\ qwþ]QƒÄÚ.™¨„$€Àá^P¢’D%$oqmAÏ" ",ž§óPXÅá•JJåCÓO$@Ô#)Ñøƒ¤È•ßH @ôþ QbðÉ™ˆ?ˆ˜ùÁˆ"†€Ab$ê/(@ìþ‚ÄîÐAbbÇ¿ 4qú  9ÿ0b‡˜¿ ±.ö/(@pAb!·¿ $Áÿ‰u ?à¿ÎIÀáˆÐõ ^Ì?øÇk‚ž ’bd‹¼âPR³]¢Ìâ!<Û#*~¦u=l“ÌtFÉ}^?HUngCìQø[冹ð š%ÑÜï/Í ŽV|î‡Ë2Œ<­9²™òyM#¿»ä¦M»\_oq] ckÇð©Â ÝcS©ŸÿœëÚì`ꂆoEÑ×BûO¤ž/‹œ>ÚNÊ(--vúhH­rjm‘J©rÿ@&·ÛºRÏJ|aç~K—¨ÄTëh¾Ðôä}–ÅÅ3.—7S’>6J2_¾þèç™iTgüÍ´YÈgãöJ/:Kœe´þb)‹ Ëˆ«X)›¹Ô[ðDtú⦑Á²Tˆ€ÝÕ˜YªQm²¢ª)œès²h=¾9saõ;¯ýT슺·²¹ÌÝ”24½Íê×.°÷ ¿æãó…ÒJ8® "9î Å®m®f–œ¸1¹¾ûÖg÷¡‹Ò-òçÓTÄ`ýË:WCçdÆ·q¾7žS'lÌ“ ¨Ow;ffŽ=„X”,g›=µìß¹)GæÉïa]æµ0䪆ãHÒõ°– +6 ƒ5ŸºôÙ£qB%>IŸ»bã½À7ìFÿ|ÚІäâ1ïÖ} 6q]Öï+nY=éç©(;¯Mý|÷ÁTIŠY1Ëí^Æwä®·ìo¸Z8dѦ[–«ŠŽêöeNG-ØÓµZNPc¡öÍ‹¨3–%œ6JIæV‡úJ¸”¹/ÃôŽà³q7CPÉ!®§†‘w2 Çe>RÉZl]H©Ìé§ìC~ #Ÿ¯»²>÷l3Ç÷el–@6Ĭ.s5àËò„œ7 ÷"@ûnàæS÷‹û“+|‚@#C ’̾U~HÚ»K{¼ÃêOáL·à¶6´éBI™ïŠ/zº¶&~ÙÕzD­CPx8.WßÖ˜á|.G_´sG7²ÓêÒ2•hÉÑ6«Üïÿ)‘9¶«îA5Š÷ƒ¬¶ÄãÒ–¹•Z‰«\ŽÀœ-ͧ°8¶·éйzXÞ;~œG}à¢Q áRñ·?²Â4ÆroÆ öüü1ÍÍ oM‚ëŒxÁAKö'Hã0ˆP·òq0†`'“|¡f#¦õ•™ývÔpÆÂШJbX’|a•..@éMFRq‰¥ÒŸéû }¶©Çbû–×:ÕX4VR71scW Ó|>|™ÉŒZß¡LŸjYµ=Â'j´ õˆ<ë¢}íDùxô±W7ÈSS«xª;6¯¥ÖÁë«„[¼y+À‚]´Q•TuÄ# ¶c¹š§Ò󺇚Dtœ¯®¯NE«QÏk^èŸÝcáX˜NÉ·^Ù­€-ÚEÊSâ²kÙ¾ñOÌ)ä¡(ÅÌRsY:—»@XuáªXÙÚRšcn÷GÍg´¥*heR½f+qgfïÍ`]ñü.·¼Ýi†ùˆØÖê¡€9ê&Æ“o‚ô‘•/2ƒÂí©’?3âŒXÄ-]rœV¿>qßúʾü¡Gy½Þ4ØÄ,¤\ºL¬ì;Ýè@C³õµqî ÛïôÂ……ÁZª.²[2—8”xöÀ6¹…þÓ Œ8Áù““‚áb$¸à§–úµ[Ï´Ú¥¸›÷I•Ÿ²øšºÄó ÄŽrÚ·ú¾bÙyû³ö:‰àƒ™Ñ èúpûä…qU%¿ÇžÆFz†ÃéÂ-$N# ïÉ|SIrûÔ EñoŸs~ æüðÊ‘oK:ñ…Jö„äŠáÊÕ½½>¡|†N¼\ÑØBÙìÐ{FÈGéßJ‘ N8Ò1z½úœ’û‹RûoƒçgW䃑äÐW¡ö×o|YN{õ¼I=æ!Ò©Ó/ÒÞ¸,^¯˜tmá‘åCmc¹}rì†)>lz&®rl²ù•‹"•úÚÎÓ]Ýñܼ"ŽÁ™|Âþì³+£æ×Äœ™¶^æ:<9—äYLJ{Wm^!Ú|´ùL€Ú _»GÓ¦cs¯›tJ¥&¤Kï>’„°Í¶ïÑO#+b‡»SpÃÉ‹‹—"ÀVÎ|Èmúú ‰Ž­ÉõONÛøÚ™Ýí/·hmhM' ¸Ôn—Fö0£3//ºb½"î“¥2l}Jå®´ßìÓEŠÞæTð¡ß­#èIðIö{ŽdNæ¼ñi‚ ïz8=ÌÔ~Hs0‰©ˆhûˆ!Môt̉© S!˲4F?“¼Vq16qI{)€Ý\OŠÍ+E;Îqöí «€[Ä'T³–Mç ãÇž§`ç›»ÆaÒ3 eÖì¦O™OYR¹Ùêo¡ºU+DOÿ5AZ*rSÅÃó,Rtewêvk4R®r,Õˆ<ø9ÿ2ÍD RjV¡Âr(\Ïû¥!DaZÁûÞöAÖ¸™w”þ¨S’v¢) •ÞGø`lâï¬Hç3"é3)]á, 5@®"Y¦N¿´Ø…ú½ãÌ#gëEŽÍ/•ê_`¶Û­ñì•Ýó[¨ùîQêÕÔœ¾û…Ùo·ð lÉœïbcïC×—ækkýâ{EOõî‰ÏfnsÓuPèa’ÏòBGÕiŒ”:Yidw‘½³TbØfÏgp [-Y[1åoH£öbŠ™zààࣔ¶Öu$”ÿÑÛd‹·SlåóÅ å"~Ì7p7Lޮ߹vÁl¾ÞGEõ.ê£ÀàÌù ÎeÀú¥^¦îøÖrqãë–Ïg}^úI¥ëŠÊ¦î•µ—ïMV?%‰;ñÆò¶€—v,–ê:ÉñsÁÊ!ò á~aEtæÉkÌßíj¶în}¿Àí_ðJ®x_vQA]ܲ¬•M¯r`®.=:àˆ¢Š¬¹ÐÍ×W™CHêmØÅ&PµÌª†rz0fŒ3´¿om RåfŠ8w2 !ÈrS…—.|;ƒ¬ÌùVÍþÞ9-š ž Gîòª ŒËy˜½/§¹Ú²lðÓgÇK[>™ækÔ`²Jb©7НM¥«}>‘*h*mtugÇ^™ÀH%,Ÿ­ÖÖ,Ç ï\N?C0Ø/"yùñ‚Åv {Å­³¹–ˆ¾Ü'ÒÓr}Ç"¯ïà+‡cŽûé‹]œÜk‰•ô1óšŒÇ9T`¿` ft#ödŸ}Þ$Iîy¬•_bë5¬ ’¥~HTj„‹¦l{¤2dõMy-Ä%¤&úh#%+kÝ5Çiþ1-›J}'£§`I£ŸåE;¬&Fc¦“@†/{ë¥må_TÅÄiÞÕ¯Ób•æýÊŠU¬Ò5*ˆ“Û¹œùUì±²…ñ¾¸•NlÀÜÌPrË ~&’S­:ó9ί:¿×K…Güü€›×9«LÝšžz³S¬zc|-BN¬\HgŠì­µ©ÚÂÎpÎ1åR^ž;>}Q—1Z$ÐͤNúµrØ-ŽoµÀMF?¯Lá`ôA;ÏÿÝñíÙö•¥ªH[]ù’Àw¸©fØ2Í3Áææ×”ÖýåyÔ;=ª£%d¥{(ös«| …u9Ñ £é‘7§vR¿Ûú[‘*¹´.7Rª¼çmL„¤Å"-Þ¯<²˜EHéƒ8wꤺCßV#ÅÛýö;÷8çcyÛ¸òM§Å7Í©‹GæßœŸe01„g&ÌCÞ¸ª/¯uÛªãÜÿ*¥2žÆšÓ“@Ç×aü ßžÕÊ©Z8<«!)-•êZ¡p…ßryžïÒO÷Ý¢ÈNÅÈÐKø˜×åº,žÑž¤==ÈÙ4½R jZHfŸ–Ýkô†Í‰ãJï5HÎ_?uƒûf­‡‡Áù;Î9Ìßo7· r&XˆiÕµö™ ÖM|›Éܾª']zŒ:•í@½†¶-€$ƒ±ûÜLš[­”‰òæ©/ijß&žNÝÇ2¹šÎú9Ü®?Ë^€çóÄÖhÝz{þ¶âky†ÆÄ"7uæ])KëSl6U5âƒq¥lÉZ€·Î©h®/ .ë ÊcÇÏß~Ð^àF_~d”ŠÚÔX!蜙®[‚:åà‹¯ÌžK¿‰Ö*`úÞÑ1|«Ð¶Œ+Ü7pI–Rl\é~yþñí L°NÈPZ>fÜŸ_iÅ«úˆ±Œe8¶c£ûìÆ,’b1›q¼SçX5±û¬×3CËI·Ó=; ’WD‰t|°Në¡‘((¤vHލ£=Ï$¨éGÝô¼U\´Uѵå2´ÔÆ>Öm/ ðˆ¶›¹ñ5”3Ї{ú“îüsäöÊçÔ3tçÄ®$4ZÖö|!\jh¶QI®»è·ß'_”ë}•y‰e4ƒƒgu¹·ÓÚ“=/Ó2#ÄóÊsðúÍ^ᛥ=ØþÜÑ)c%ç9,ÛgÝö@»í¥†97á ºÅÂõ7hɨç:#–\i8O~·ZsPMW'UÍ|ãd·vtJ¥Š›´¸UëQ:á›Zm:ûÌßñ¼P¾ß+ä_ù2ÍÁûáI—Qœ¶µy¨§ w“ŠfñªXžk‚âÔH[Êg;¼~c¦Š´{4€q¸ü­º°ú…ó™Ä“›’æ¤C_S%ÿÚ‡ [+Îs35M¯¹ »¬`jËûÍgÖüªG¬²ÚÈë>îpú­|îp¤._)|¨'ø ÷}Ùz{ôXNñÕüY‡ìUM¹%½[Gpÿb­3 .¡Ò K’(øj>ÇqNðq^üóÙ©rN¯—öIO6Ÿ{ƒbMr³u,×nïMßuð_i¨aÉ‚|‡˜ >†^§|/d€(S §äÉ=[…/µðbEÔFfLÊaò“™;Ç™Ÿ.ô4æPo2¢ š¥ù×®§wÕ#¬#%‘Þí­¼Z!so‚n&µüDZ£”®¾Ï0½dO£o µéÞ¤àqùòƒW†¿%­æì8í±…µK<=ûЭ‘…nq–Ti&Ò©ž%…×GÛ©Úè…ÞYUC¹­³°™wÓ\{$‹r¥¢ùØ=ó}Onõúwÿ»8Ê0iåZ÷à»Cr]~qß-{à@#fÃXf¦$qŸDn2örŸZ¡ö Ôþxý¬­j5ø0½®5Ú€#rOžè[îH²è¹-ˆpt ¾¹ÁÃÊÚÐY¹3-¾¡õé~lÑÇoÜB/%,ãj e:èÇQ0žY2»c»üÈ•‘Þ¼…F/Ûv^%¾„¾›MoZ·tîѪ¿n'E‚Ð_R² ðÀNÞ`1HvÇŸä[yOæ7&‚¤Çº¨À¤]ÿZ”þ˜¤£>ø¬ßvÖ±ھḡ›b¢”¡-§³|ÖPç8ø ѪiíÅIV|Ì÷¸Îʾ¸"‰#ð5[1äD‚A{ê1|N‹£p{«¸Zƒ%L$æ1¡"·ÈœEÞfz yû‰ÀÚ[èjrRnÁÚ¤‘»hoæíE «@F–ú‰:Ýg çúàRö_%m½ìk³sšt]ré—¤9Ä:ú(¢eæ( °‡ýV ®AÜò9ñŒ7–¶Tq™×–îÂVùFºÄi¨…e:í)£Ùx¯j‡†Ä“lŽÑð)@/›&~ù$» R¢ó¶jøfP‡ÒùýÆú^HÁð[xUVZ7MÄlƒ†ø¦f„z‡p“ÀQUôçÆO×D·Ùs”\ø>ÿ¶6›h ­{oÄZ‹‚]÷ø"NñFI÷jYsÌ%Z÷²rαòqã=CÍb”–!`Àp$í³Þ Å—ÑÙõ›v×ÙchxÇx\s•xô¿+Ý6zå>ŒFl}-×c`j;Ûwƒ)¦Ðìô0cHÆÊhçYxÑÔ=·,ó÷~D§¢òìÙræ6gþŠOãþ§æƒ ³^磖ÜXOâ'—]j÷®™uŽÀíL×&ÎŒ;n#Œ']äS/Ex7 ¯‡L†ÿEƽÁ endstream endobj 172 0 obj << /Type /ObjStm /N 100 /First 892 /Length 3516 /Filter /FlateDecode >> stream xÚíZéoܶÿ¾?¶x°(ÞäCPÀGœ£q’:v.¿ X¯[Íîj+iã¤ý›!µºöò:i_ñPÀKQÒp8ó›ƒC‹F“˜Ø˜Hh%1ŽXKƒŸ†Ÿ‚Ÿ1„뮂çà*‰xUD; WbÔ@1Âb%ˆãpµŽà+Æ.†±LcGÆc ¯¸ÖV&„ –0=³p£%ÐXŽOÅ€¡8終p4Š.¸Ÿ:(!Ã'~>M¸È=†ŽA~’pÅ ãhÁq*G¸‘|¢r zƒ$„;†ƒ€ŸîL?°±€Ž‹¡c°£ˆ`ÐQ’®aÀ&D ƒ$<Â@è!I¯$ ê Êw€F+šÉH (ICÿT€¦R)?ÐÑbÀ@© Ò(¢bŽÇš( ÈóØå vÑxpÆÀ<øŠ b˜ÆŽ"F 3ÄX4+ÓÅ8sF,bʹ Väœ+pàÁ3#4`K§ÀXpo@ WC¤Fƒähatœ‹jfÀ´B«ã=bë­ ƒÎâšÄ`è 1ŠW?àd=í+°¯ï¡ñÐLI6``B GÿBaZ£`83`S&‘Îrt1ƒ=t-#R£g|è’8!ÚZøq”‚žkz ¼ èP.½ü8B¡D1ŽPà*h`‡Zqƒ0"¹E„‘õD'çN€P’XŠÁƒzD.0:brJèÛwïl/aXLçãñ‡ÁO?­£“BEà@ÛÈ„Ø`@IÖ›õ8›–äÁB•"ý1:n\õ!–MÕõI‚-hœw¼Vôež^%%¹ ôåÑ1¡gÉ—’Ô³œ}%ðbx è!̘LËxY> §I‘ÍóQRøÌá$Wéð ûB.P cÿÓ sëýÆÓíO§°ºðÙ eA WU]ƒR=Qü¸}5¿,ýý³túi@²ü*ÉÜñl1Å"&…ÄAœB~`="¥‰ ÆlßøŠÐGÙYFúö¯&é4-Ê|X¦Ÿ“ÿÄ2~™§ŸÓqrüˆp­’eõä\™óè)˜\1¡/Zû¡§id9?}šnÊrVü›Òë´¼™_F£lB/'Ãòdj“éÞ¼ ãô2æ_éå¥QÚq ‹Ù—Ý£@C"á˜X´„¬& ÔNÔB…Ò‘ÅZÔ9XÝD2öý]Bõöö»JfyöðõBîçe:cÊ3N[z2ü”N¯÷Þ?ííÏfãti;›îïîícH²°Vh(¨]‡Eœó÷Áï¶ðòÊ`‰®Ùª¤ÈWòÌELÈ•+êÇôzžƒ\¸ìªÛ¤Ÿô¬Úžôz4JëHo§‚T†%ä6:aaaÝJÅam€ÍÄýk&Ü<-WL1òÔ7eBÇ—2¡‹ï ÝΙŠôÈXÜèˆHA¹ ²·bJ)ÜN™}öµ¼É¦Q–_Ó¾·8¶Ý[îA£ ²cz+™"²r;±bý}œÅú Ô7ùÇòJév[)ÛªÞ!^ïA# •÷Òq¾ëít1‡‚ýµ&¸PâàO1ð'ß±ŽLëY¸ožb• aÃh" yG¼¢k8HÎR/DÒî ­…ý‡«Z.,¶ù*Ø(÷Ú¿‘"ŠÁæ4g3ÆÏ VãŒÎ4OO´Œ àþ¢Õ3Xi…õ´¾EŠŠCxç©y=Ó]¼ÍÃK¸J/chƒ^ÖK´SÎ`«qlxkâF抃CL”D”-,rÂx„+^¡/Êïí¥=‚VUñuÙŽÞ‚¼F¤Õkél¡Xcv_Ä8›ÇÃ?m[Yz~á‰qÍȆ:´Âk&,Ú@èà[Áû Åq¿ö§ý`£Àþ…£Ê‹Û  Ú-ú½–ÃxÐ+xZý<þiå*á)oxTŽ«ºÔB8°rßÖÛʰŠxnþ 9ò‚ůþù8þóûk~hIÛr—Ÿ½ÙVk¹^]¹*Þõ²¬ƒuÉâ¿1i·“dãíKi¶ÿä4Úå4žøÈ é1¨¥Q‹**TÌX‰I試Ñÿ¯à|êñ|³°îaió€Wüÿ/GÕ6>‰Ý ÿ×BþiïÕ~Zi0z•÷,‹qhãØJ‹ ÆþºÖJ‡}4-lV°¤òOÍâ=ªÅ ^áù‚7GI`f Ô¡ßPI/[-uo³„wi+Ž-ɼø§ªÅû «½¼]è £±Ô±XZÅX*Yˆ_¤v*Ìy -Ä(D*ÞøáGãn9Xðhnm=Ø·Âa¥æ0–S«¥§sCØê†nhCùTaó´Ñhk¤`7å¡OéÏô=¡Ïé ú’žÒWôŒžÓ×ô ÒK:¢W4¡éGüK©ÿûœÐkzCSúýDÇtB§4£Ù4¡3úû<+“«Ëñ8ùXÖ79ŠAsZÐ"ùœLi‘~¡%ÓÏô–~¡_é?4ŽSÐǶ½É܆îáùÓÇÏÝ“',^®àˆ.&Zi· +6¡»Çä_Ã[ð Ö†w–äivÕшŻhôèåþó³·A£5þ"ØB#®¿“FZí¤ßE£ÓãOF§ëL$ã…B±û…êÐn­:w÷ÿw>.óáèSRz®úÁ¡Gt”³)´“ÉЇ‰Ÿ&“«aqC“©¿,…ÎÇlžûø¹ù:»hh‡Ñ4…(ZÄÒ ÿëâ§õ½0i0ý}S¤ù»æy;ü&i¹ ÄbŒR–´¼É“„–·Y;0éIžu-/w±üÃó§Þ‚å_=[gz½ˆNÆÅ7ù²«ƒs½íÏÁª)à\€Â_ºzé]ôz¿ÿþèå¾×ëìlfZ@M ž˜i)ÆXG1¼­㜯SlƒS}’N+7šµC‚í)¹Sj}vüüÑÁϨ䫵ƫÔ1Ê­·ÞÞ!l]»laÈž´Bô5è\/Niµ -£™w÷²vç%7æ;¥äý_ΎωwkíÀPøI#£(À§ï—’e¼ÖÜ—sˆ{È@i>'£lö5/»ê픟ÏÏžž>Ã5ôlýªê(•ßkűëÕ«ìš¡»Ší”~ŽÎ¿8xŠ­ Rb8}CŒÞmÝiVǰî¬[uÞúugXŒÒ´LÇW –¸ ÁÂRõÖõ¨µý>Žiòe4N|˜øÊí:O†°*,¯@ã¤(v[†fãyÑZ‹B§H“œùô*É‹Q–'›Ö¾SŽ~wúè—÷GÁøkê(Ì^OJ<3÷íÆWŒÿÌ~âMy ½û€oêç°æ]…×äëÖ'4|3 ‹ÄÏXÚntðñçý§žã4/J” rφ‹TîMzUÞþp¡§=ËΧ)~s&lwyúzOÆúò(Û’ojqî1{¿˜îÏ.î>;ß}ö^áÛŸ\m1…lÍ®¾ƒ)úÕX_ӗǪŽ> endobj 232 0 obj << /Type /ObjStm /N 14 /First 110 /Length 836 /Filter /FlateDecode >> stream xÚVÛNã0}ïWø ú€ˆ[#!¤Rè AÔ/»H˜Æi½›Äȹpùú;“’¶Ðe÷%Û3gΜ‰ã„.qH‘’À'Ôc$ „9ñCâR‡0×%.ì3×#^hæ> Yc@(õÍBaí1w@hÛÌÂ0¶<<À¤íõod™ zwÚ;šÌÖºæZä¥IßLµ¨ 1;ù.^Jˆfr|Ü…qZ˜ ÜãwaÜm˜ XÁ¸ÂØHd³ÉÚH?Z‹dn—vp¨ƒ®c©‹rÅî’Ã$Âü#UÈA°žÍ¬²ùgkˆÒ.Ñï<ù±@ûijadߘƒÆd`Féö‰ï4¦&mLL[å=p”™,[0عßL€³ÛÄ…`z9ŒUE™ÓŸŽç$J›áT&‰Ð¸v'‹Š§Æš•U,•±Îó¢äiÊK©ò¢Oƒ,“¹,J µ0Ž×ZÖ2 Ñ'a€NU©2p˜›ýÛ§˜— hSÙ?K^ˆ‡J,ÆðÛÙ<èV©PÒ§þ[õŸT2e¾0.<;eàb•jŸ¨óHå‰\Twç8…J,wTiiþj% ”nõx¯Kk—µÎÔ-ß®\ŠM!A"ô=ËE¼âjžËD¶!2ïÈ ÑZ-4Ï §ƒÍ=Ëk©UÞv÷ŽkÉSQtZ½Ù]h¦³)óW•û¯|[}ËÜVv¨ ü„ÿuSa*CéÏç(4òö‡E¡æå¤ u87á©|³ÆïY–ËŽŠJÛåÙR¤)H°Šû@\æ¬m"Çë×risºøšO.ff=îž³*I䋱¦Ujß{lʽK€/Ân‰ŠaØ(ÊPÆ«ZèZŠgx§±dø&&|™ü ]Pµüô]c[P“F…±Î©¡:M«<_?ï§Åó6ÕXg¾#x«æŽkÛî¨+¶€˜h•urT–ae—Ð%C•|xÀ“¸·×y]€q´õÕúW^Ÿb¯*¾1›ÃÅü4£c€cˆãàÃ;ã¯iN¡é…ý‰è^¶¯O‚Ž8ª…¹õÂøàíU•pBìJ{ Úî0ÏioÉ…˜¨ n Ñzì?<ŒŠ/ endstream endobj 243 0 obj << /Type /XRef /Index [0 244] /Size 244 /W [1 3 1] /Root 241 0 R /Info 242 0 R /ID [<0D085397F2081DE3F860C15D06556D78> <0D085397F2081DE3F860C15D06556D78>] /Length 592 /Filter /FlateDecode >> stream xÚ%”ÉRQE3KZÄ'‚àl ¢ˆó„@C3ª Ú`£84-‚­†ŸàÊpéÊ• Ã/pŒ»wkKõ ØõÚ'ÙœÈû^ Y7ï+3³nÖanÙ·& UËÌ’ƒ¦lýŽÔ5°fAÅmðUl,rÝ6¹µ½Œµ[ÈØZÁÐv‚vv°t€N°tn°ìûÁp‡ÁPGA/hqK=ñ1=tu\G>OÀ ÖhH‹—§a0‚ÄvÑd*Q$SPø2ÊHÌÖ*rL ñ^‘“` É(„iÌ ™Œ0,Ÿ„÷b2ÂØÄ [^ ... ] goto end ) @rem protect parens, e.g., 'Program Files (x86)' set args=%args:(=^(% set args=%args:)=^)% @rem separate directory pathnames into components for %%i in (%args% ) do ( @rem strip quotes call :mkdirs %%~i ) goto end :mkdirs set installdir=%* if not defined installdir goto end_mkdirs if "%installdir:~0,1%"==":" ( echo %ProgName%: pathname '%*': cannot begin with ':' goto end_mkdirs ) @rem tag leading '\' so it can be preserved if "%installdir:~0,1%"=="\" set installdir=:#%installdir% @rem tag spaces so we can restore them later set installdir=%installdir: =:@:% @rem split pathname into components set installdir=%installdir:\= % @rem restore leading '\' set installdir=%installdir::#=\% call :mkpathcomp %installdir% :end_mkdirs goto :eof :mkpathcomp set drive=%1 set drive=%drive:~0,2% @rem protect silly stuff like '()' set drive=%drive:(=^^(% set drive=%drive:)=^^)% if "%drive:~1,1%"==":" ( if not exist "%drive%" ( echo %ProgName%: drive '%drive%' does not exist set Errors=1 goto end_mkpathcomp ) ) set pathcomp= set pathargs=%* set pathargs=%pathargs:(=^^(% set pathargs=%pathargs:)=^^)% for %%j in (%pathargs%) do ( set pathcomp=!pathcomp!%%j @rem restore spaces set pathcomp=!pathcomp::@:= ! if "!pathcomp!"=="\" set pathcomp= if not exist !pathcomp!\ ( mkdir "!pathcomp!" if errorlevel 1 ( echo %ProgName%: cannot create directory '!pathcomp!' set Errors=1 goto end_mkpathcomp ) else ( echo %ProgName%: created directory '!pathcomp!' ) ) set pathcomp=!pathcomp!\ ) :end_mkpathcomp goto :eof :end if %Errors% NEQ 0 ( echo. echo %ProgName%: one or more directories could not be created ) @rem needed to handle invocation with command extension disabled :eof EndLocal units-2.16/UnitsWin.pdf0000664000175000017500000040133313176227177014360 0ustar adrianadrian%PDF-1.5 %ÐÔÅØ 1 0 obj << /Length 587 /Filter /FlateDecode >> stream xÚmTM¢@½ó+z&ÎÁ±?tBL$ñ°ãd4›½*´.‰<øï·_•èÌf’W¯_wÕ«îrðãc;Šòê`GæUŠOÛV×&³£øç¾öƒ¤Ê®[vïÖæ6ïWÛ7ñÑTÙÖvb¯“uYt/N¼.³ó5·½êÿ¢¥=åS‚> stream xÚmTM¢@½ó+z&ÎÁ±?tBL0ñ°ãd4›½*´.‰<Ì¿ß~U¢Îf’W¯_u½ªîvðãc;ZäÕÁŽÌ«Ÿ¶­®MfGñÏ}í I•]/¶ìÞ­ÍmÞ¯¶o⣩²­íÄ0^'ë²è^œx]fçkn{ÕÿEK{*ʇuÄpg6;µÞ$4»¢;»µgZ8, ’ü²M[Tå›P¯RJG¤eWxm½ñ­ž÷ŽE™7·¢â žÒ"/²îÑ7»¸¦‘¼ýj;{Y—ÇÊ‹"1þt‹m×|‘£o¼irÛåI É‘c¶×º>[TÒ›ÏEnn#×ÛûþbÅø¹‘ûÒî«¶BS¬ØEVå¶­÷™möåÉz‘”s…«¹gËüŸµ)gŽÏR©ð133wÄ xAÄbêí;¬ÒaGL6K& 0+‡}&ö"?‘á°(Ò¦Òa/ ¡cì,•!£½¥‰î-fö3¤Ù*IÃx {aªùð”sIC%ÒðhSô¢¨7å£Å}­HÏ=ŤIYƒ¹(îƒêjŧ ÿZóéàü4{ÖØSOØá5˜‡áZ ä®ekxvKº·Ǭü÷…Ü@2aÂ> stream xÚmSÁnâ0½ç+¼$z Ø¨"¤€ÄaKU¢Õ^C<ÐHàDN8ð÷õÌŠV{Hôüæç=üúØS`¾Jñ m}u%ŒÒßE Y]^/`»w¦¶oâÃÕå:1L·ÙÖVÝ‹omy¾èUÿ­àTÙ ÖÃþŽv¹Êó‘DM^ug{¦…Ç‚° ÉpmUÛ7¡^¥”žX[“ÖôÚã{=1î+kܽ¨8 …@iaª²»¯è_^|Ó˜¼¿µ\¶öXq,ÆŸ>ØvîFŽ^‚ñÎp•=‰!9òÌþÚ4gÀêBË¥0pôùÞÞ‹ ˆñs#P~k@hZ+vQÖÚ¦(ÁöA,åRÄÑf€5ÿĦœq8>K¥Â_¸—žX NˆHæžÐÔ3$¤Çž˜{<Ý0Š*¢5cÕ~ÿP÷õʯÂùÝ5WÂ42^!ž0^#žrq‰xƘœE„3xÎü ñ ªz“)cÒgl1BÌîÒ°õ•?ŸXqû!òŠNA‡¨Wš»A*dý1ùÔ)iȧΰÅç“Оó â9ç’†NVf¤¡–kô¯VäaŠžUJü†ôì?%Íš5Ø»bÿTW£=ј«±®–¾Œ¿É5ëñ2éfè&p2pj³V^ócH£Mc†VYxLS7˜E=›þ1âj· ¾gÈÈ endstream endobj 6 0 obj << /Length 356 /Filter /FlateDecode >> stream xÚ…‘ËNÃ0E÷ù /“EŒÇãG¼-*•@JY‹¨iŠ¥ˆ<ÔßÇŽCi« ”…¹sïÌ1æ> †HÈÈæ3bãm»#aó¸ˆ`Ò änýS’zMÊÀ?J—šj`”¡öÊÙ*ººÑŠpF•Ì$Y•¾/™)*;ä5ž ¶*l½KRÔ2Îë"lnë®Ï«êðcqÿœ¼¯–ÎÍ»!Cªü£×PÛ¾›d'¡é¤K¹¢™1AÝÔÁúÎnÚ¦kÊ>_l]4 B¼ïÂÅÞöÞÔ¥œÔŸÕ­m7äUØ?õCa_ÍWÑמ šqýÃÑ£u`]›í–”ÑC@&%q 30©Õ®DR®THŸ¶·ãˆ1÷‹ˆË⦠¤:¶PÂ9d8%qÊõç:É0Þ¶Ýo uÀ ‚¢pLG¼ÇSÁ==írûÆ‘ë¦nóâ"po€ÇD€ƒ?D¾¦ƒ¨ endstream endobj 15 0 obj << /Length 342 /Filter /FlateDecode >> stream xÚ}QËNÃ0¼ç+|t$b¼~%¾‚hh(Ê!$ik©QTˆŸÇŽ$„"%»ãñÎìu MQÊ9Ñ"Cå1¢#ÚîP(—œy‚3÷ý—’HÆP2›v•G— )P¢©”o½¸V@y…^p¾7]œ¡ð±hb–á¡8ø^â ßÚ6oƒ‰*Óì°|xŠ_ó;'¡æ 4áZ:K£ÂИ¾;ó~Yq>…N'Ú†Júá Ômglå 8:™~ð{S¶¶³Û>´kÓýØ^õCelÀݧ‹FÉ´Ë8ôf#8çøÙ4•õò§ŽŒ—¨c+2Åtmßýágkv{_ô#G ÂRŽ(áL^Ub¾h åî÷Ìx ò¯L@)Ô” £ ¾Ü+ qÆq[ס[yïÞpÌR\´õŒc‡¦*z—âEo›r\*ºÉ£oî ˜À endstream endobj 29 0 obj << /Length 832 /Filter /FlateDecode >> stream xÚí—K›0…÷ù,“E\l_cÜÝÌt¦jW£QªY´UE ™AJ â¡vþ}ml^ «ªó¨²¢rÏÇå;®ü`G¸§ ðp7s«o³;GŸÜ¼Ÿa£[Já²£<_ÍÞ\1æ` W`gµqö‘àÍr«µóy/¾®>Î.WÍ:ŒKC¥’x]&ËÄ;ò‰Ä{µ'c‰[Z׉O[«Ä#á™÷ÌE™eQ>è„ßE_\ I¬Ò5|ÚW‘¯ƒ"Ê'˜"Â5ðGÏv,TS ÛP[ùT¨ÝòއjgÝ„z`Ý ° òerF`ˆažå$/‚íV·KJç×Å}ýÌz´ûsŸ!`ôIøwþÅí! š á)$ÁpÑʸ8\tI[[©„„ÐCÜS%⥿¹Lr¶¶ò)»8À S¶¿‡¢«[ endstream endobj 81 0 obj << /Length 2695 /Filter /FlateDecode >> stream xÚYëܶÿî¿â¾Ñ!·²(’¢”~©í8NR89Äç´E]Ú]í-m­tÕÃwäï.Mƒ÷•}X•öÓd©ïli;[ ~T$Üql†“Áf8a›!Ò n£#ð¡ל ø ïȧ6øÿÞ±Ø;®m~( Ã%'”UEƒêÉ‚¼å_r“²šê¶ãÙxOƒãRûØva•=% œ!š}~ç˜Ý[;³çvÅ=϶ªýÉÛ}ÛœIZ€º‚S~»L[WŽYŠ˜î¹[ð%ØSÀäEÞ”¯ƒ“{²Hƒn€CÃÛ²ãNZ”ÜG\œø¶šDY¿zþj1Î(ª,óNóÍ7K®"’P¤ž$ #…Ngì‡(ã×wMѶ<ɈxEeD˜˜lnE8ØÆ'JD eÁÛ¿½ãÁ …å'Ûñ*c™´ÌfaÂ;}µ%]Âp R¨´–ÿq ¯xòîZb„2rj6fVsÉ$3\Fpw3kºÛøÄÍ­„ï‡@[C q Í#v eü# ¼>N¯«³ëãê’Yø•£Ì,äwOQ§[ÈZ‰P%Ù…Ç„’ ì¨ðð¤•÷˜Äð2GG %Î<)OcJ˜D&ó“w観€¾-ºÜ–-ÇΕÄdñ7ý&ihbã©)‰fûtJ?ʵÉôc®AÑ8WØ‚ñï>¤`íÂLB˜†Ù’¡ø IÙ¡»-åPåë>ÊB*8PÁQSlœòx>ä8…f3¬4˜ ê–¥¡´3çÔØi<”vs'æ’Pk™¢M:K8¢M:–Ùô1F†K–†ñ\|=?«Ù©ÌUž€$×M½‚T¾:S{&"ãß_6]íìç|„0O×.¿3ÑOÎPÈòU]5ù–×?D::‰#© £HC“†©0_Š%Žz5!çx2·ÖSîc±ÛýgCâüõÐV!¼GÂÄ™ûÅg ã©O…™aâ˜) ªS]«A×Æéš ndó~h|°4a”ˆ£Vµ+úqÄœO¤`À«úÀÕ>N®©Úÿ£žÊLêS£&Õ%$ß=U—C}jæ 6“ÞÑL@ ëk*¿ ËÕ×nˆ]Ê ¿ãz¾Ö»è ‰TÐîëžܨÀ©•'ÑO‹9ß=ø¸àŠ2„¯}âB¦Á,ñy½÷Ðå8ãLSsÑÔO7ƒ}¤ïƦ-úRa¥afþT4‚Õ·K AcI(S1¯Õ8Cî‹uð|Ç¿ÇgW_ú„Væzž7~18Ï<Øp—z4™†(ÿßÞB®ÅY2$@íÛÿGžq"øl›º¢âߎŒ³~c#­c>¦/Fð­FéxµE‡¹^oK`Ÿ·JÇ’kOß{ÁMcL^ГëQô›0}Œ•Xhn’hª‘8JýïŠÏE9ˆÉà=Ðó´§ ™@‘? ™º¼ØGepbXœÆ»º¤’iêãÞaªÎ›Žg®Ùê¯\¾ÐV$s ‹ÌUC^ݺ^{Úê/%kÈM±’òE¬­ûfãØˆ C½Åš«7>ÛqÚ­+±G1öʸƒZÄ_nŒ`w[ìòž:BX-'o¹+G!œéÈx–_3#à[0ùC‡tÞht5pÀ’ ·ï€Sc?ƒ{Ý-*k¯­års­2hÙc`®zÒ 9ÃVø×S8ôvOeÖjSZ²Û'Þ¨«%ìb)£GS^T=àŸ„qÍaL2óëŽ$ØL±—Û ÍµÒ³ä0\JW#iüʇíà´3€ùi÷FCvºù_{W„åî)ßl… KÞQ;Ø,ÝòÛ}‡ØX'a¬åÕüÛP”@.æ±–g®3‚œÆ&CÑ­_¸§ÇhÈF0|ËåmÏ3N-Qä<‘œý_:y²\Ëd¨å åë7?,Ù"Æd¦<Õq ï4lf5<ú€eW4ˆ|N!å£{@–"žÚ+À&ÎB“ýQaî’3ƒ |²é6}wZ–ÒöÝ4”­fE×Yú?9U¶ØùUcÿ[Ùñ~Çøý Æÿ‡ÊL endstream endobj 87 0 obj << /Length 2309 /Filter /FlateDecode >> stream xÚ¥YYoÜÈ~÷¯Ð#дØ/y°õÆl‰v÷a,(’£iì 9áyþ}ªºªyŒ(YB ‡é£XÕUõÕÑ-yŸ¼Ê«Dk‘™ôª8¾ Ýj{EƒüüF2Ý·3Ê·on>EÑ• Efòêv7gu[^ý|ì¡´õýæß·ÚxNkŒÀQH”CmûŽÉ,µ*Qž¬©7[­uð›­Ëf£Òà¡Ã Šq{_lÑ6]³ëiú«í†ü@Tÿì‡Ò6›­Ô: …òÞüt;j)õBS å#[$ _"”Œ Û"NÚÐÑ?M‡M¢ ¯K|²‡ŠFï»Î¥ePؼ· æŠ)Àü:‘TÄðvߪ8 lÝõùá@ßÁJœZ`Ö)ª®#šÜñÇ%à_uk‘±©É~ì)¢8õdeÞç$â_¡4‡ª£<Ø~OË=sEZšˆÈDžKÝôÕ)/×Ä-B¥=aUÚ¾ißë, Êf¸;TÛâ` ÄŸŒ40“ŠE–FWàh!#9ÃN¹ÁÀðiÑ´m‚æäìT9g=E¾kZày@¬Øl£,%—8võFÀ@= &çàÞÒ9¸rÌÿÄó¯»EGh©xá–àFÀ‘×ìµõ,”'-” Êj—‡ž&¬µ Y!XÂŽIÙ¡ ›12xÏ”y‰*7µ‹©O½¦„Š¥µZ(v¸J‰ÄaÄä×È_¶#9Õq£’àŒ˜€ý˪äƒÔ£Œ “zC0~¾WÅÐçwèH•êÑ©8Î;ú=åm#4;ZqÖÃÁ&4¦rnL‚½ ®t˜D¸[fC†qŒ|<Ž>33M†®Ú kY쉛&¶Ûói˜YÑVËN×pémŒÈ,º}Óö .Î"ú VŸ H%â4}Iô§ñ˜¶Ñ‡m~Dˆh|h\ÐgN‰ËÛŠEs²è«œEBâ cõÊÃ\äASÚ¶* _œ7`.A–Y@ fëÀÂ(ù8´mUgÊÍ­%µC=gð_N.YCò«ÚçRµž¥j,@]ÑÚS¿¦r¤Dª–æÿ£Zq:¯Æ‡:N@TIËhmW$)µ•˜’z>Q1© ³òBUi/ ÈòŒ€”AËúœ»ÂÑ÷¶¤ XT‘ÙEþB Žø½‡‹B®ÑSé6©7Œ3Àüá@«¥íN‡)x° ­'S`õä‘×lÉy5%ÂXe\XAÆt”4h«ÿ €¦Žv¾û=Ewê äNößMµÝ\vqvP†p<Ï@»¶9^6RF"à‹ÂTŸï=<ñv¢¦Vli‰%K'zß÷§îíÍÍÃÃà 5M{sye €Hó²ÓxâG§YØú‚åÌâcL¡ ˜ cRFÌbH† ŸÏÝÔæA² ÖƒOfB*nB?#xe:eS-“à‘ aK=m» Á•?\ØóC _a¢Çºî2þ™©9¤0\û:äJû(ÈÇE¬Y–èêüBóCù2zyæ]bS•.¹fÔXIûuEµ0ãˆggQ´×´3Ôê?`tÑ\Ýu¶göH@…‡m‡Â÷K°å¬uH¾Ÿ)ùЇ¹`µ©—ÝôǦƊs?´ãól’ÍéÓ ½´Öl™üQã­25{ÆÈXÿ±ñÆmz ЮèÑ‚»ÁÀßM·³.›vÆ›Œ©\#‡éCJU4ñÚI·EðœšÆ¼¾÷O‡+æ5aBœqÀ4Yv*¸²xp¸Æëä¬BB+Ž­Ž9 ñÁîΫ©#Œ…~EjLÏ´^ƽõÒ«Å)$&•Ë‹ê@…bý‹)Íš‡š_úÓÀÐøH:ZHM Üq¹…·¢×LãðÂdí¬/𙊻—Er^QâûæÿL_CÌÌ;/è*³líYê k¯*šxóR¥ I&ÙÅy?!}“5ºjzýî@>sáóϬÑÖzüoKN»±ÙÞYþ–~Æ+™åÇ¢ uW õôÂù¼…£ç-üñíÍ7u¸†ÿ4éüv~Oc¼vÞüüõ—g§'̆/ÿ`û endstream endobj 91 0 obj << /Length 2172 /Filter /FlateDecode >> stream xÚ½YëÛ6ÿž¿Â_Šh˜+>$J-ú¡ ¶½Ü!í¢ÝôîкZK¶…Ú’!JÙø¿¿©×j·ÀÄ|Œ†Ãyüf†ËW!üã«4\i)Yª’Õæø"´«ÍnEƒŸxÁÝ×#Ê×w/®¿¢Y¦|u·³ºËW¿¯»ò—Õîê?wÚxL«ÃQH”]U¶Æ‘MXJÁ„ž¬®®ÖRÊàŸe•×W"  .¨ 3xŒÝ{WnšÚÔÛ–¦¿–¦ËDõKÛåe}µæR&a ñ¼7wý #!.TR~Yq¢—ŠD¿Û$ɶ…iI ìtjêlƒ7ÙÓné.ÔÖ4oºjI{"aÉjÍ#–€$–uÌþ€"×[ú}+ÛòP0P­˜}ý˜ãé š^?åi…Ð"Ø(¯æAk/+Ȥ¬²¶´¼lŠM[7ç«D N‹Òàµ#6]S¸ïÃθ…mÝ<âí³&w´‡Ìì C“²š{ÊÚ}•gÜ2äðÿ«Ë¯F3Ñ56uµ9Èí¹Ý×Ȩ” îÀ@÷<(HïW ‡ÀH^` cm¿ÈËíyÑPàç0žøùï›®a§ó’´`2–žÚ Jr¾SV¦Í«wfoº–!|"¼á$}ø<@¦Ip¶Jéh’åù’„‘b‰ò'>#–à ]>¹0D³,0„°ˆDãÛïîþvó¯»%® %{(*kƲ©«#[:æãUƒ”ÙáxVãjz¯MVÑÀ”ÇÓáŒc ß œO @,J)8g©'*!BVí¹S₪!êžQ§T,ï€Ï)LDL¦ñ(ô8q®¬.‰8Á"ÝI~#E²|—C´Å*+w[Ù êíŒö—³i Ç /³C½ûcO›CiõóÇìƒû›…· ƹb:ާšûÍäâÞ¼ÓI¾ÒÖ¢@”B®ªELC~‘ˆ/à„÷Ȇ GALàR»x¤%f¡*ð÷½!"Öœ¬ŽÈm¹ïÅÂ÷Nƒ¤‚(eP–L fÂõ Ñ‘r¥çŽë÷7y ÑѾtyÌ+Êæ¨Áµ1È}%28±£C´X:äþ§¼d¤= zV ðG öBÏ"Ò$ïͧ ¸XÒ3FEÊ8ä…Q‚c ‡ÞøÚ–@ÝKh –ò>ý¼ùúú¶©wMv¤;_ZK¢6>„Qø)‰á‡_ÿðãûëg‹Õµç96¢¯Y3b«õCé ×Xû¿šYÀÙ¢ÎÏç¡íGÒÔ!÷¨½ö•VœM±•äÅqH•øìœâS±éZô­y"°egõ|á®’hZo|©ø\ÒÕ„W8qßÔwsœ‰<®hknî¿xÿaýƒ>NŒNCÃ̘“vŸY í–N@ê}ç%¦D$éÍn9’6ˆ‘&ðBî45݃«L}en—-öĉ? è 5æX/$¯™vUª°b§Áà>†0L|±¹l+ðjž5À3—Cè}€6é‚è[Ò8š‰P;D&£m86._á¸n–ä‚bš3è6Çáû¬p ²¤’é$™4«Ij~¤pc¯„©,ôÈ›$žøk¬©aÝ;°±+?âVáx£Smiè ",n§µëi(Ñ8!'v®j‡HÅ'HR¶5Š‚·»ªo<úœ1'ï\Tnioslm‡žÅ&z—ïÁ¬kЇÀc õ6Â}*ª)? ræó%‹çá+|¼uU`¨É牗ôkÔ¢yü×ú5S{meí,×Ö]{꜒Ú<èúvÒÚ5!»¶ä£\A3–ªéÍ=‚Ô·ôÇDÄ’õˆC 9*M‡’g€ÔßÏY¬2£ñ‡× •¦¨6gf•4œ6GD®™Ng øÚá³ÍÞ‡ö•×–Iœè!Q‡/8‡ó4ñ}¾?‘ŸWË8Ù㚃Ú^Hö—Þu)§(èYF#_0ÿŸÌål}±è‘ý¦¢'%ùö‚PZ³D÷‘0Õ×Ò Tüƒb €.M‰ýTs-xà¸n “ÊØu ”ßDÔ\ÐóÊ7- ò5–M„*f©ž¡uÔ=‚Faum}.) ‘ò­jJ„6â‚©í«,5Ef,ô#YKk9Ut…cØfJj qéDnÝKc@rCßCÛ‰ ðît æ¤Ï;êàþÝrØ8©dhd‰?-R.W¾ò€ûÞu‚Ž£-hg×ÔÝÉÐæÓO§ÝbN — 꿉»#Û·Í3ï÷D3ävl/ ŸóH9ì`ÐJÉ„tOÊ?»°XKíŸ;`ð®'¹{qYîSdÂRå`a ïY¹7M/4ðóÆ½žØÉ-½—\Ø×„ã¾&{ÿ@©mÁ+Gò‡¼Äð·¡oi`àƒgÝ‘WäÖ¸c6Mißm¼¦_Ÿ9fL¶ÅšpòhÚfhJØg&»Ì´Þ³Õ/‡wÈxÒ7Wèí‰iEÇîáEOžËhÁ™5%Œ{l„ñg°‘딥âϼ·&bö ‚'Pܹãüóͨ›D¯„<*gPÒçû'¡Øôþ»ôþÆü þ Êãž endstream endobj 94 0 obj << /Length 804 /Filter /FlateDecode >> stream xÚUÛŽÓ0}߯¨xJ$jâ8žXHH X„²I¶µ6MŠ/”þ=37Û.aA•j}â93sÆæ‹~|Q%‹RVerÑl/¿ª× š|x}Án Àå òruñäUž/xª¤â‹ÕÍéQ«vñ5ºtªoÕ°Ž¿­Þ¶8ÅfÃYBH7(kììH‘²´L°qˆ—Bˆè‹Ú1Ne´7¸EΠ¿÷V5z4ã%ó³2®î õѺVñ’ !“(C/WS„yšþg*ùG.Jˆ/c"+Ò‹BfŒ‹Œ¨?wvÜÖV5@¥Ì£O;yÔÖ¶›rÍ+ÆÓÉÕ¦‹—iVF]mTg,{LAZ°#ŽEt§ívd5NënhægœQÝ;ðëm·;ÿ)ÑŠ ˆëïî§Ï¶ÿjó(àϪ‚ «XЍ6·tðÇYmºÖõƘ}‚ñœbÔn˜ ¤!—Å™P¾CDlw˜Ë[ÉYÅ«S½¤pÀ!t·v}­ií2iX¼Ì  ”^@œ02–cð9­gÌ!~ cÎ’mé0ÀŒ*NßÁünc_VœåI2À‰oÝX5I¹û¢Œ‘¹E.ÎY£O‰‰G£Hßݯ®q¶¾îÃúU³¾{v4àAV±j½ñ ´ÛÌ-™fÜvv3õV¯ncïv¦N©d¢)Šñô ÔïE±78Ý0Œ¡{òèí¾×ãZ×[Z{¥z%N¯’<ù% 8Â^¿û„ƒ/þ4 *x4'ƒåQucËRyJˆíýÁ‹5‚f_»!Ô[k;j^—‡«);Jí,Ú9JE~z“ÕC{Ži´ÚÙSÏâožyŽósÏS&±N”I/3‘¥,ËïéìôÎQ—èOýAÏp.CÓäeí¦"‚q'S´Œ­u˜B,~ ðGP2e2)ÿý d¬Ê§wC à¡ïkl:¾Uºkì¨ û2áwý&ÁŠ¢8»r<½IÝÓ§¤ýÎìÈj¶X×¢ò, RYî•Ýàõ0Ün“(~¸žv|—~λô; endstream endobj 108 0 obj << /Length1 1999 /Length2 14018 /Length3 0 /Length 15220 /Filter /FlateDecode >> stream xÚõtœk÷À Ù˜ÍĶÑmcbm›ÆFcÛjl›oÎyÐóü¿o­÷]³ÖÌü¶÷uí}ߤ„rŠ´F6@QkGZF:.€´ #€™Ž –”TÉÌÑø9,© ÐÞÁÌÆšëBö@}Ç™°¾ã‡¡´5@ÂÉÀÈ `dãbdçb`010pþÇÐÆž ¬ïlf¦HØX`I…llÝìÍLL?òüç/€ÂÀÈÉÉNó·;@À hof¨o Öw4Z}d4Ô·(ÚšÝþ'©££-=½‹‹ ¾•½ /% ÀÅÌÑ tÚ;µ Ñ·þ»5:XR€’©™Ã¿Š6ÆŽ.úö@À‡ÀÒÌhíðáâdm´|d(ŠKdmÖÿ2–ú— à߇`¤cüo¸{ÿÈÌúog}CC+[}k73k€±™% +*EçèêHз6úËPßÒÁæÃ_ßYßÌRßàÃàïÒõ¢òýÿÝŸƒ¡½™­£ƒ™å_=Òÿæã˜E¬„l¬¬€ÖްÕ'lf4ü8w7ú_®…µ‹µÇÈØÌÚÈø¯6Œœlé•­Í윀âÂÿ¶ùÁþ‘™¬ ìlœ èjhJÿW%7[àßJÆ¿Ä=xzØÚØŒ?Úzš?~`=ôG{' §Ç?ÿK°ŒŒ#3CG€ÐÄÌöOô1Ðø_üqÿöf®M†ñc0üõùï?í 3²±¶tûcþ÷Ó« È)È Qÿ»åÿ*m\´¬ÌZ&VF##3'€•àù¿qäôÍþ]Ã_qkcç¿Êý8§ÿ”ìüï ø÷‚Pþ7–ŒÍÇä]‹•Áðã‹ñÿó¸ÿíòÿoÊÿŠòÿ:èÿ·"Q'KË¿õÿ2øÿÑë[™YºýÛâcr?¶@Úæc¬ÿ¯©*ð_«+hciôuâŽú» `mbùßc4s5sÉ™9šþk\þ%WþkÑ,ͬr6f=Z´Œ ÿG÷±]†‡™ü[üXžÿM)bmhcô×–1±²ôííõÝ`>F‰‰•àÁø±ŽF@׿§@OgmãøáøhÎ`lcûײ±èþý‹Øô‚ˆ@/ô‡8ôˆ@/ò_bgЋþ!F½ØbЋÿ!½ÄúÈ ý‡>2Èü—8>bÊý!&½Âúˆ©ø‡>b*ý¡Ž”ÿÐGG*è#Ÿê‰óƒôÿÐGvƒ?ôÑŸá鯛¡7ú~tü~gü?”ÆÿÀ¿”fÿ0þ¨ÝäøQ¼é?ð£úeùü¨Êê‰>ª²þ~$¶ù/²|Ø~¼zþ¡þ(Äöø‘Øþø‘ØáøqnŽÿŽ¥w4µþ‰ö1ôŽ.6ÿpø8L§àGv—œÁ‡¹ë?ð#žÛßø?ÃlèdoÿñHÿûqó1éÿá¿ß@ +ÐviÞÆ;Àüg@ÛCµ® íîø×Ò]ÕJZ%ûv§'D¨Dʪ ¿ û;Ä¡äÕmŠ[þe‚Wãæ:¨à–xùÖçï/º± S»­°‹“ýùǵ}ø0x´Jü{ß_í¾«øZ€7ƒvJæØ9q Êå¢>¸ôйÖö•®ŒÍïÊïU±I½”NÓF*GhùÍ’þ0ÈœÃ"‚t¤Å‡¦B¹pEš½½›AÉžx'ˆ¥†õ<‰d.ðÐØdŠzœs_+WbrèÂ&ÁÖÀ¿E"ó‡;LšZëâÛâ36</Í7¯J²APeÞ*¯Ï(ë^”Ÿ81“IJiÑt¨'fƒ!“™Úb¬ÒÌöÇ3AìkKNnúx5ÊÎF×ù&¢Æ8¶ä4@­b ‰­€Âr7SiÅ!l-¸± œ…Î_MEºtÕ(úÝb‚dR (8qŠö1Xçyr×ÕXJ!ZYQ £/àÕ„Ò!«E¾HÜE•u4"k-Îj«ý@ÃjIúRW™þ²dIÕ4;ŠË¥ŽWOË‹g;Ä~—Ø$Õò\7°¨‘5 äU;`yûx[†Òj”ʘ?ÆEïû0!¤A€m_õŒü(?N}ÅɬâèH”´œ?«¬oØB`!ä&u³£þ½Wv‰0-Q—è-p  ³ç|oNo?9·œá¯/‡LÉRmŠ$"T°=MöÝA`!ùÄX²Ÿú¦‚‘з"²(^Ñú1¿oÛ‹8Ò[÷3U6~V½–Ù!ú£Ä˜YưÝHŠ•@²`ÜžâF¥øŠèyj&¦Âæ¢ßŠù›Äêg3²»†<®ŽÔÜ>ƒÌ‘‚]Úá û“”lÛøWï1¯³Ý5 ˜W!?q>ÖË8%xw‡¢ºSO')½$éEŸÒ"ö,ÉŽ8ð³ûýÖ« 57Y@¸ÇÕULþ÷g=Ê/=tÂAxxÌ?–ö%I±Ñò`RÛ4ÌÞ?Ó’¦×~e c¶nÎ(¼‡Æô(!4øŒÖ@•1Äú“ú¾¸ kI×}Väü¶x!Ù6—io|#V¤ó¢ÅÊœH¼½äŒ®¨>QG‰¾!¹£X ƒWçeÝœZ!£öLÃA–Ç®ÐoDò–¼–§ãH¯Šâ»è6ÑéÝÙ‹U}]ÎÒ$/éA¹ôu $PU¸Íˆ·Õx´¬‘n»”ˆc@ Dâ—‹“z7ˆþ^~Gl AÄÖ)‰(E §6²án€X˜­d8}ïùî{JIŠ)µ(i,Ë„´V黵  ™­SŽ©¢­¾·Û{gG\9Á+”5»E(YXbð¶oþüv:¿Î9åG›@ùØùìTÛåDfYgt»ÃRØä^b(åñ $©ÉQî<Žó¸Á§*ó.NÕ‚P-av~&e|m,:K_Ä—2š`ƒ<>ª«?F˜³Š°%xä¨}ëî§ÕŽ™Q¾ž @ŸjÏ’|pŒ!ýTœ„1’¾ êâ=xd%Ò¾ò®Óè’ûb;µ°ÐPh_Å7(£0„4.ON ŽÛ;aˆþ¹4|õžY̳@ {ŸSK>ßêêªG`Îî¶Xö|4ÿO®þ–åO}ú{Kb-Ó*aÆ­7ŸÛ~¬vŒŠƒòè5ŸEÑòÝjsÓ^c@Šy*’|ÑÿÿÛ~¡Á‰üÜ%ùµ*ÙÍDô(%`ÝöWÓ´æø^Oqªõ:LA¡ ^7¾4YÝ!Pˆ6–d”®­Ä‘ýíÆ†i•‹G¢`IQ#ƒ}œ–ì÷Ñìuc1Ñr‹8 ý_c\«°Ð©õoëÚ´@‰ÆEœÄCß9>ôšì—QÓ¡{j”ñ\ï°§~Ýz‡ô¬~ÅŸ˜™ø4úŽÅnf 5—S£öoͤuW¢ÌØ/&ÈÙëád¹Òž‹+ŃÌÙƒ¦z‘ZÙöNF¼—Ü÷f͸ºg¡è°6¢ºS©†·2é³áÖz¹OÎ ès”Li‰+©q;$ħlSoçÐ/eû[• Z¢Î·Ê'ªøp>–g°¤®š&u³È§æl^(Bp³è«Dqq:–B?ÏÝZVIñÞ('I­TçD3déAФ‘SÝ*¼‡Ðf÷½®5ìÚOK– ÌÄs}I ³…F”Ò©\ýKû´ŸK÷“(o̲AAY4Ò“T@fµ­vC}Uf@b—eŸã}}*oÛ(M@ÌÞša¯HiÁ$”ûs4«•ÔØgéép ƒ1Â}¡•?…ÐÜ›²ŸsHç²LáÁ¸prmÖþ6³²w¾M—»‰"FàË6ðq½jÝÖ½o-‘úÕÔ› çVTï_}3ÁŠ4¥ÀOïa|,/téYf4Ü=¸p絸m_{HXÎÒúš=sÛa,—gÓxêÓ)=C­CN“‚xƦK¿¢êaº86t>D:•v4j¾_«è9ýv*ì7å6×°ö{Þ¦x½ÖË=]ÊÃN@ DaÚ”„2œË]FQBjÍ Ï\'«7a ¿4¦ï å´Ò¤×¤¤¸ú“D´¤„†¯çÙ¯‚uçî-w"hˆÊö`5Ö}ܯ¦à2Ó~ú2È‹?KH#!¶æ!WMœùö}XØjÙ}¿ÝÅb¾]×Ëܼv›çnɲà·£-u¬½ïæ7G‚:þ½r»Ú«Ý½½$;÷¸v‘פÖ“ˆËµk‚¥nþÍw¾meM³a.m-b,oW¬ †_¥ü©¢N±Š£'íA&³8ï=S9Œ W»7_°´S†ÏG=ì|Ÿ|A€î΢˃Gn°'™o—„Þ w›ÔP¡Î7è·uá'*ÿí«´œhha«2HNºJ™GiŒ ðdgTÀ|²"'ñï·Ôïó %õDp\p 1F˜ŠPe=l•Ê.·²D" ÏÞø“WÇ_E£ñôä Miº2 |Þ~…K½Õððð‹üu³N@€Ê12@Þ S×=¦«Ojb„àÕêc°} ©:[v¬œãtz—>,“”{G#˜ž™ÁìƒYò6¼ìWü6ÜÎ ê‚ ¦·Ì™òBw¼§ÝËëÈPEGU5lµžD= ÅŒàóîQ¡1òÕ"á.,wÄSRè"E“æè>ñnš”ÊvP÷®#f{ðöÐ/Ñ2çn$±.@6Î&“O"·ß…ןùr·ª+ô”qÞñeøE_Dq•…¨³Góh¨Ü‚݇t±%ußÇ‚žI¼Á"”¼¢ÈÜ€gT0åîû·úV,\e§e—¨Çb) ú]Æ^',*9 ¯¿å1^ž†µF(šPxõ "öò÷+e샟šL%M£»{7ºµxaÃm™Ù¦ÙEq›²*R¾“AV'IHÇàxHY^ƒl|q;7{Íže9e&í²«Æ“÷}¡óáGÓź që0×÷‘É6¶õ ,ß« f-ì/½Ä@D¢ ¬nf/Óœ+B« hz4Ó\Ký|"«ò7¦lÚãIa6v‘?0pé° E{©Qëî¥t(‹í¨ô:j‡ ¯!tÔÂÌ3ølQù:m@¬¸ßì`Vû¥Tã—Ù«Oþ” «În ½žÂ6¹ÄQV#3 a‹Y”íØ¿~ÚœUgªÑYÆzˆEt«:}˜ÉäL—½¾º·ë*¾-ñ>Ó™èÝᲉíþ &~y4R;‹©G»jVñ©É8 ܪ¢´êd[ZÊ— ²½BšÙøÆ‰òÔÆà0Ϧ¾h€¿­mÉb¬ËC긌c­ù‡ÿòH'©ˆàʵø @ =ĽLÃ,®iÿ^›í5·œ^e,YbfáZˆ>sﶪoÀÍ0?-ÕzYZÀ*äÑx7nÛ·~«9vHZ]~Ñ(Ú-/¥û¤ýÖ­™ËCØ€nJ9 øõ=ÝXóz©åjóŠï°æF°{?b=²èÜ_ýµ¨5‰æÀh*X뺓Í&2å´jv±ë G¤‡DlNyѸ®È߇]M39êÐE•œ­UB øYìV‚þŽÄK?аnË3aÛç“´d-œ@£×]vG7Bl¬'Úh¥¨üu®pÅŒøF9SE(Œñ½eçæ×4å<³ZPŽ2¬åó:6mû„ ñÑ_måñþNHTi <ÝW[ Dç\tàÇ^ã©ÐdÏAKõJ0 R¸2œµb^_©õÇÛõÐ?-µRÔÁ¾Ãv‚ϼÛs–š6M îáoåY·O“ÂIzñ¬Ž¸¦l9¹éË_ÊbrLZ?’$iêúõT´¼¹…*kvKíŸËw¤¾­×…BMÖ»p­­ ’iH·p§S5²ÅÞ¾léH÷L»=‹5ßJá±þ$ý"¹n»K“¶mmÛñEÊKU˜ú»Ã°‘ª[åO7F(ƒ24(5I±‚ŸÄ½gìSûÌs´öÈȱ,DÖãI×K(¸‰¿ йé¼@£…%ç@GVmü4 '¹ó\ \¯ÛŽ1ü _zTé­{†;ûq“E6ÛÏ1Є0µa™Ã¥ç.¨uØî'îM³ú:ë½Å7¥”š 1ýž˜ÜühM¡Q¡Jg«èj?…hT:Ûs·ÿf ½©ÙjqŽÁm9”Ýɨo¶Bn› »ïÇ2~Ï6Ó1Yê‰ÆwøŠ ê ­×É&~g’}¡Ë훲‹Î.ŽJ³dª"ƒ—©è:ñÍàúsƒ[…jµ£&zÕ˺ù|»Ä“<vŒg—óÅ=pÕ:*è1‡ßIi‰YYn®<"µÞl¸y¾šGÈä»¶-‚œ]xTmbäM è3CIÖìœO§µ³;tPà £4éµÇe+LóËneì$ÒêL ä;‘rãµwµà–Cr£~öé‡ß;éí×+:}ÑZÒæíK! æýœ"¡ŠîÔ'µáu–ìŠsŠê~:Í™uQµ¦¬R)8'ûÞeui ÛÝ(ªŽ7}ß{YÏr$ì'¦|\IóÅçÎ_àö²ÞË,ú.dWAEópp· LªålƒŽø€‰1]ÞCÞ$Yù§Ù–±1‡Fš¹2fWaAny§zùÜ;¹hMz 'NCýZ™<}ôˆù¢ý¤^N|‘b•_Ó3šÏvmóc p¾YEŒÎÛ¶êE–íO¦qŠîf¡rLå—4Yo$5,0«'µÈÎÐe|ñ3ɾ#éæ+ ¸›á—NÜQ´!Cþ²ˆÚ—¼“,û@o Në­üIîc°TÇÑ!Ôô—µÒ-Qß/Oé—èUüBzÑÎùèe/3Côëš@ÜÕ" "`móîÌï»Ô’çÃ$0?,>5I÷k¼Çy@¦’b†ÒEÂ6¼ÜãAw<~’SñïO9™g &&T áÑ¢v®–>øÞŸ¹‡û·lnÀhІÆ|†kh®\g!UÞ'©‰" ‚Hðq@Rt°ÆŒn‹Ô5ÇÍæÎï@µg«½À“Å$£Aøw49ºΠY¶&ÞÀ¼¤ÌnÙ¯ áA_Sb.‘vÌ¢Ò´”"°zP}š¨Õb‚¢LíÚäHkÏp,8æZlßôý Êíã˜QwxÈŠ"½53´!èÖÜ˼à{ˆ7^©ž¾qo}3PˆXà\ØìcÕ£ÿbY$‹ï'n\r;Q"€)eÍQ¤Ÿy™[ô}n·ì€ãÌIÏ£¤Øcä¸OTP? ž®"` ÷äÁ¹ù¡r¶{% ß™„74šD°Êæhï»Ðj“K@©<ÌII8Ÿ\¸¡`»êrdùý—¤÷IÓéJÙ¤k ÿ5Ý´™`qùãEÀK‹íD;Í%gLšO¼F–Ñ‘o$`îaÇÃmì§Ëùƒñ‚lÉÆÃOÀðB?Ï6õ.cäY7ŠÂZ¬«-ùQYµÞ;¬‹<Ö6¨o¨¦UYA¶BSËè¼ ’´u·BlMAïÐì…œR{ž÷7á²VL~e:Ô¯Š[&T‹ø€áÔþ½õ›6¦¢§]£¨ÏØmI’Ók?‡8‰^¹Á¡æµ9@+,ÃOî-"+LYèK3F»Ò7>CÊþL cGKYÎo4þ¢CûÐפ‹V’Üû]§a®˜±ø”ë!ÔcjãÄÊM”Çbçýn"‰BY&õ­:–;Ȧ±\õÍ©m%“È2Á¹úÛËrIß(úã æÂȃF}Wˆ¿üµ¦|Ýÿ—Cßî¢í~9Â¥+µ™Æ \›˜üœ£:…ru|÷<¿^1¶ ÛZñôLsŠ^Ê8 m%± âš5¢¦ ij`àØ³á¤öÝà8Më‡O²í~¹)S§½uš5¯ÏÚMŽM>q&ʼÁ¶o–Äb1‹Z×|ràþH¡¡%T3Z¨ˆ†|ŒD(tQ™?U8 rJ"_ð-Ï»Ðí÷ÐbÍmPÁ¹RÏïƒU$OGrRðì&py¢²EÂ]E3+{I Èy[y!(xPñF¬if(¨ßAŒ˜PVr² Y}ºZÑUxx`ô˜*·^ã2èTEϼjN‹ßïó±;‰+$å=4iÔ~,HNs<-X©'ë,²LŒSï¶&U=ò$±^Ïž¬”¬×)pZí0­ÔlñªQêÅ_3:³·†Ôp *Þ;ÂMdñµA™0yÙè­´þ„?©üE-H”1ÛWò%'É7É¿&œÛ )bt Ûw­û{Z€vGvZ;|Ï$øB™ÿ¦¨`õ´’Xò+6 ç®Ðwº¶6³0 3hZ\ªAÉŒ¤èà4ƒðÎí»Oü ”okåZ¸+ïÎsïyS6»º'nå%ŒÎü5ÜðªŠdaÎÏ1Aæ3i#Có“¸xžÅrQÏyO¬ö*(6ŽCê “îã¡E8Ò‹fUEãàfá9´ƒ óml($Ÿ ‡mº”Zý¨Z.$âö'löqåx£ýÞðhOgFÁ–ù?é·k9EÛÆ|ÓYR¨áµU¶ͼä±Ë½´Øèl°bu Ó³ojÓ?á½ë˜YtŒ¿ÄVbšÏo;‘ôïat”S9©®è/ d¬}“_Qž:a¤¥Bç9 x¢¹ -‰[‚¼kž eõl7N$ý5bg¦´ÏVU#{FÅm-BJ› cÈÅõk¯wé¼ôàŽ@²IçœÐSÄéb`°eþü…†%DyK’6®Q¬ºGꇊÁhå…Ü k¿µþñšVCüÕLR€ÜW ×“Ì 1Ÿ•:g±+ôê=éR $UN¿Ã>ì,W<Æšq±XYÝ4´¿p‡Äs7 •xS$¬*Ò}–\ÎÎÌy¼ ÎjaE)ÍzÇK¹ö˜z&÷¦ì¾ù9b·ØdàëÀûrT—Œ"/õ‹¯/¦Ò<ÐvB ]ìÀ{e¶ž¥ˆQðP¨ ­5L§Ò² ÑOÎÔÉ”̉”Æ‘D¬ä0ºÃ+þ)µ6F­oºSåU‘e«*[ZE=§PWCñ õ—²T“2±ÎU‡•²Ø›ÿAƒœNcKo tjM­ÕeßíYM(ø€¥ŸSêÕ7WÀÛªŠžby_×»¤m=w¸7|¬°'×ïT¨AVÆ`Dì|WÙ÷7Tþ˜³+ß>jµ/ÂÔ¢˜ L¸ ç¨a·Úõ÷eXQ+p_-Ç¡âEóq„&³À¾#ÜEÕ ¤» Õ)¨ {¾)F±j7‡™ƒ˜y*±†©È]´5âæÁЯ\œ¥ ¥c©Ž ŽÉÌ¢æpãC1à>Iƒ)WæfŠë›¼Í˜JZ*^VE‘²9Hn0õw6ɲ •gîbÂðbóEhýAz×Ì»ŠµMÍëTh_5]DñÐÎîZ c ™ÂCL]a¶÷Z®¤§gr0t ûùó+Jõãv4uH™ 5"'°ŽÏ€[{6XdÙCÍŠA&á(ò›0GYnA€¡B¶ŸÛP3í×ãÉ€x¬?!øxÇ“i]ë­äOÝ€_kã~ UZ˜ÊýÕK› Ó©ë9üpb¸Ÿ7}í¥ òrÞ=C 0Ú¸Áç0 åE½ æõÚ@×J/´ÿtÎ1иÚm5öµq.é…DÏÓ”¾”I`»s‰µ)Ÿ]*×Ç;KdiîͯŸ‘•Î?]Â|«H˜;N`qeMUž2ûuc„ë©IR›ÖµZú~A hï¨áM©¥ð»nx+é0æhFâæé<’ƒe ÏÂÓ4%˜\Ùì°.Èœ"Âô™ŽðA£«:`‰%>ß–ÿZ†6YXôÐ ®jÀ/v~F†,س?Ïó;§´eºEXv£»ìÝ#}®a¸é¹[DEÖ~û}ž–mAi¦|QÔ™[1tñ…ØcšÕŽ€Ûu-Põõ&- ¦.a»eפ\8`zí˜N¨!6Ô'í–^±$D ¯Â„Øa›ÊSSâà±J…GëBÝÎDÊXÆ2Ñ¥§4¹]Ãë›ú­X—X)7 €ò–5aøZ…í(é·í6ŒÖ±8•ÍM¾dþ7†Okg¾·¢œÏÄôÎáTžÉ LY‡ßówœywÜÜŒº+«ClWˆF°nò0.Hš‡Û'‹²®0~—¸Á^ÍY4ß!š±_¢É‚‚ý$…j.´õ0ŠǦùµÏ·òc ýÆìå\X‘â“¢å€Þ•èyS½tņRŒôœhÌ©¨-òºßª¥jY••úN<ƒÿ>—ûs`@yîÍx§¤f,kOf򯆬.zÉ:2G\¡j/Å"H—‚3Këüt˜"s¯l§ÈƒÌ¥Q‰¼àKŸWÜÆ¢Ÿ#Y£xærÌðÊÖß3ì…G”SI⿞;¬A¼7„ÆŠÚAô:³ºòÒ0sáëܧZ´RΦ¦7Nî&ÆúuæÁ¤Kº%x±‰·³Ò$º²²°¡ ¦8 Ðfèüé#†‹…²Ã<Ù$à~î3àuçË$ÙšSËmafxU ¢”÷Z =µí×>l0è°tóŠÎÖï¿ÞšJÙ4€½ƒøÙ›^ø´ˆräšp4å‚'Y/éž’mhtiì,é7­ËN;Ü÷˜ýÒ鉠²ÒUÉ‘në¾ð'—0¿ˆj´v}úEŸ4²(jOþB@a€ŒYëÌcy´ŸR Ï l‘kd-3PÎõônÍÇ¢¼Œ vX~5ŒGB›íˆwc5*ÍKuÞ"Jm{4šj«úy¹̅®¾¶úÀä„“œÖÒ³ÈPNÛX2î7¤Ó-“©häîX{/û èl¦¯ç„Ú¶ãô¶Ú°è¯ÉèÂaSÖž2üª 3£(Î=Ľ}nÿiš¹B³9x¸ÄIL¢0×ûí¡šŽGÃ[v:“æçù”/wÕnwÞWï×çâzÃkvÎ#ŠBûì»ï}¿!:¨0 0–Ò±¾[àãPņÉÒâ@¨o ÿ,Ó,òzëäá¸i ý¾rú] S½…ì÷â ÅO=ö•<¼}i§ãÁÔvFñÔÞ0ŠÉùõ^òÓ¨ÄÅø,ÜÈn^ˆKħ 6˜ÄëAKԣŠiìÏoÔøÅÅ„¤U ­+Fò xÌ£¨Ä1‰bX21³Š68{}ñ \¿N×Vh¿ž$*×zRo½­äð‘ù)’ÍÖí?¿Î#ì›Rì>tÇH¥…ïöÍ]v]L±üàˆ  ž)'Òß,KJ" Y}Q½SŒëcÇÐg’ß~{Ò«Éîß[WÉh…ä mm…†0£œê¼ÿœ{}V½c«[ “ÐK×Vóì[çFts@efŸ€Ã3ëŒ"]m)6›1œ`zXÇcmÕÔ;XËvvÙ:W4,NÞ3×ÈÙúŒ3¾Ö˜bVÎIèd©bï*ì‡.Ü»æ·ûi¯AFçÖµœ­yuà8 ÿ›ld8ƽWñÉœÒËŸýý)UçjÞë»ÏPx!Òû µm¼×¥ÉjÁX.Ô.ß;%L€¯€ÐbQógðûswI¯-ÒNýÏÍÇÜŠâé!Χـ,•ádÒþ|[8Õe8"•|˜§tcï¶‹þ–ú3!¤˜>y; ÌKë/ °=PÚîß[ô'r½Jì¦Ùô;¸ëE?ñÞ×Ù‘TÌ÷º‘ËÔç×ðys˜¿lyq†Qí1ër ñ…»~jö¡7xtø´–_·à+pvÌ¥\×Ô¼Efi_)\4¢FTJ­÷àŽ w Y{0‚¼‘"š½ð(ž3š!ª]\3™Àð†ƒü!9_Yt Ù¾ÝBH*}{ÛЭñ;MAÌ†Ø îË­Á¢µ»cœ]*M¯çÅ{3µ5ÈÛÊI >egàÓÞ‹’þ&ŽëPqÀîÉ-c¾w¢@À‚ï<ò…Qö'į“@òÃèºe%’s×*ø0)e/F½¼€å,©Ð»U¶6@6L[t=6«ø Põ Z¾KÉ—Z1íI³ / så±ä(ÏËÙÂÆ¯JêäÂ)𡨰7¼Ñ[ýhè.:ÂÅiágJÞµóžù£qÐŒú‘Ž7ûêÝ¡©å˜r);ð‹ÉûF†À Ôà¾-!,ædXÇ>§†zþ«ø'TNù:×¼ ZXæÁ¾èÜH¦¸»Vè'eR¨bâ÷Š-L’||O¤‹gf|€E‰¢4÷®OÜv/Z8« 6 W°èú ¦¶9–št GûÙI±ÈÕ¬%6tUÝbÿÒÏbÕˆ®Æ'Ý1”Iâä=n·Có«7·ÔÚÞ\afG‡O‹y_ªš6e*ûæ ð@wiiØÕÕáw8×C|ÕíZä?ë——2w€bæ­B=ЭæßÊ‘ª ö0$®ºÝb fŽ^1i;ñ-œ² ˜ÀÜÒ£ø¾ÝÂKØþ¿„§¦ªðÇxMúæ;a|=(ª­Pq1„ƒ&^=îqœ.Äïu»²’eºëެ~;нS—M^ø <õS8¨òÿµ¿sÓÕZÌú{r…!d ·rá'ÒV¤ŠGr;?&VÐL›ºüœÖ‡,4ð‰¥Öè[tú:„Ô‡å5€¯¢á„ÂVºØ€whÆe :~euW /Ç ßNµ~á3Dùê{}eiD¸1vè’Œ™·Ûüà®&’œe™™Dr.—·T ½žb_”™7DµË’Q2&ø{ð‘ˆ:Ûô:½]Åxö&[¶ˆœ `QÍÍePXµ’¬ý¦yû4(ÇëÀüW$!v…Š€ÊÄ ‰Ì9ÕBðDÙ™×êöx˜Äv#Š2A=û$1¾Å½„`ï'e°Ç¦‚´Ãg¯1BIà+îÁ3®ÝaâòÀ5p`ê|÷¹·ˆq†jeéÌ…b¨?@ü™ˆòØnDò^-¹4 ˜9IÈrì1«| _ê{6pëCÒðÆáùÍAàsRµ{‚²H¤ºûàÍ tOL÷hR‚ZzAUϵûðlšs³iý¨Õ2Èg¬ÔXâñ+(Áׇâ=,sÁOzØüPŽ‡È ¢ç ²ðÄò Išýé?k„XŒ|D… Ÿ¹üà  r²¦CÔ¡Í(tüpGq(ÓÛ⑵ÏÞ¸~ÆóØgX%Ó?E*9J³U~%” År‚æÞW~ÊdãnÒì;66wY¦=áŽCžG_>*\´áìž[YdœŒíЬúu¦œ³³ôå½üàï?¢ lòÜ×[Ó½óO¨ieÐIÕ’ùo[c çˬfiÔ^Ú% Ö!ï^ÉX—É5jX—›÷&/ëŒD‡\ëÒ.db¶£S$˨d¿¢6¦ MDÏPÔ ?q>l܈ˆÀ3Y§öó‰ Ã)¨ŽOæTÚ‰£W};¼Øî_îä„ÞbêÚ»éÚ;øZQ®-RÚg¬Âï3@p±InØEÊ>‰C¾ùÍý!Qê{²¿P*¾¡ø'òá÷b÷u• î¯ô`{þwœ§ÔÉj#U=s.Me<ø°f aùpÆ»@ÎÀcY—-<ÌVª<èÍ™nH‚QN,GÊ<›š]1_û0<[m ðÞ(õn!Â@ô„—¶ÅÓŠnceàb TŸËXf!¸žúSÛñHÄè«hqL¢bÃ}ÕQƒÓLæ{­4w¦\ØšK1#âñlÊãO'B…Ût?§ba± NK“à7ùR+ᲂu†7ŽÕK[5!å²"mYVÁ+líÙ‚–f¢;Jœäjm1Y|Ûù  QŽšï269%ƺ´~¡8‡Å ϸCäвìO"£V†ë!fwyaî ÌmRd{2n|^r Äúf’žËÊ'ñâ­+ÉÐïšg"?ÿøê̶\u×Ë`ŽLÉ$uHåQUƒ¸j™3p{«l³]M5‰ñ}ɤ( XÀÞ¶iwöÒ¼£ªsyúÊDƒÆE7²NÁ$J•¨Þ­:—Óå^IöàhÌé ’eðÙG¡&ƒ_ÅC¿VduÍŒú…uÜ&u\4º‡PÏúËTO¼fŒQíyØl­jî­ÏßNɬÉ5´k ¢éàQàÛ˳â~Œ… &“<~3’"ÜK´ø•‘‡åfk¢BVÜV §„t¤±  þ|ê“üNêOŸœ«ƒ3¯çl.ϲJ’£ nËI¾¨çËý"ÕœQUjVÞêhaÈ8¨ËÖ^³4$GÔSJ²Lþ…Tî»oH¦’`‚æ¶ðå¨ôÁŽçâR%†þÝr2ÏNî59.Nf(eÙo÷¸3 ÷WEÛÎÚ•Âjƶê‰d1„)å1ëýéYiUmº‰³Ä¬s'<ž~í¥h5Üx&J©ï"„£xäö-·W"ÓcÙ£€,2"©uaˆ€‹<ØôZz­LÇ61À}h^n·´j¯ÊN|Á‹)bÏÓ üYJZ—¥×XÕ0,B›Dš]àÆËí²LÑMÌ9 ÞÛ’BïT~Íó€<ç=­ B"WözÛL$£sâkOßíøÆ‘æ"r¶YSýH4/.Møp]á­ÕU¯ˆÂ›…—-š»@{¢OÞýeó2$£²÷.€}{ô[ý>¯¾ï \•´óͳÃü®û±Épš¬(¹(ïq>*hϰ٨7ÀyUáh> Lë¦C¼ôµƒšþœïJŠñÐkõ…‘ÒK^ ôZÕ|ß•©‹C+þ@xqTn\ ¯gÖ9á‚‚"Fd¾XHo5Ýzbk¡o9JøSêÎNüä¹ï­+"´;¡ÿþcñÔú2VûE'F»Ýl,îàÃ!}"_ Æ.•…häHëÓÃFç[–p2xeü@×Ùæm=®˜ Ño\úîLμ ò½iô¨<ÅWvðl5÷9ãPœM+z·¦— ›4q§ õ‰GZh¨SPÍDžà¸xí¨}¼¦Ü2ˆ ìjÇž\r¦ï||xlþ6_,h¡x8‚3`s¶§I÷Ý¥Íw .Âx˜bŒÞL@/‘.·EúïÇÌýÞ¤{›Rìàs-tWíã+;ØfdýD’QìD2̪Á ¿Sf¤¥ùa°Ž~ûÚnO«%tVˆªYê¼qçÿå|ßêÕƒƒ™,úõ&ËìHXä‰tÅEæ•kgAñ³L¥Ëh™3\± ˜/i4bÔT¼ôLbB‹ÜñµKµi‘6?žvk‚·cçnßhFÁGQ…ÌÍ\gÓ»G:E㈎†y4Lùžo0 6«Ä³ÅDÔÕ ÈáóoHGm­cRÇèP¯çŠ$,XÜîóï{™,ÝäO÷Çqḭ́÷Ü®¦†™-|UdÍ&bÅÚã/ÙO°±_)Îx#xÁ•éÄoµ+~>üP‘Ç­íßp*f±ÀÕ¾;ÊaÊÑÌàJEHÜÚ”Z@ºjÙ°úÏÇR4EêL"0]n‘fÐ^ÜÉÁV$-&îÈ¡Ô}nh´‰Uê’ïuk"x 9R!€ tV—q0H˜ò²s5ýö àú¯u\_ªß! *·pO{¤›FÔ.¸TûÛÖ_ý€‡n>3ŽqÈMÔÿöyõ¤ÃÜî4õ*äc6'}ü‘>b´½¨É¡”3€dÁ5Ý¡Fó !+öh@Ï'ìÎñ‡7ÛñÜ•g:mg Ðoež}Dž_á-]">>€îŒ¥5ç¨oÚB ¿QG)Tèw¨ZL³¢€‰|-+eE2H-@C(Š!U,à!uŽŽ…¾ùh$÷ ÈjnÆ-Úž˜nˆÓòÖöY1ÐÇ´ï™ßÑGp!X ª.€ÝüØ Wù+ƒzª*íèá'nt6‰•Å4Ø}W87Öþ} Ç7 wð5àtê§_üáÂ16ê TÓœå¹+ÿ4(6œâ;ŸPö #0Ø«B…Å…Õö¶Þ¡!n£BýÉþ/]L}ØÍÔ“Œ‡åÞ3¸p£ Ö¥ä" ÷õ­UÄgbÁ.o8˜Š.ål¿ù¥^»Ÿ˜]ÙVÇ… kÔf;¾d´`#¾$ –ßí*Óúø½èÚýÒ[û“äÎt ”z€µ>ôÊ“‹bT9§ }Šg0¨U¡ÐŽã¯ÔEK4ç‡a´ÙaÜÒÕóD±CÞö–Ʋ.þ]Û-ÔRjÐp×^¯8‡¥c¦ÐšìHHcd#϶45aÚ-}QÔM È‚ço/)6aªg!à8Áó öÕ nA/ “ýUæ=/’1ŽßyB¾nÒã‹F‡ôÜ‚ý?™è7 VLF¶:Y)qúžß’ì/ 6#]b“-ÊVv«½"J`ý9X(w²¹õ7#ºÃes—lZ4Ϧ:v®cœy’|`¹m°õ„½¯CSØtídt d<—·ÅØÐ.èª4¾uÛ ßä¼Ư9]£{»EBዦpù„"Dý9W³·@òÈÃ]£`ï:EŽËF¦ …ÎŽÀÇ–Þai6ÞŸ.2ý2qba:‘3CùÙ•µvDÆ’¤˜zž¡Óˆ»>—½Ÿr'_?óQ´Fò¸€rr¶‰Ÿ’ß}¦9ˇëÄísmÅDˆùÒ4õìšBus¢ ëáEüÆÉXØhêùNgã+CNQ:`Õ{GÅkf_ÄøÃ¸¯všÕ!ïƒ9`|YÄ6»Žq¸¸'ÔÌ7‚pÝéоRN¥ö¸bRh(]gœ¥¨|¿ k "¦7Rx±y–H!jOe,>3¬|~ýh1û~M§¤µ7–0rŠûë7H.Ç~ÂÉì¬ÍÌO¿ŒDòÃG6í…Š.êåä×ìõT1(\;ø¸eápö¢6\Æj‘Ç~vR6¼þÚ‡X%(ï=Ÿ{x*‰%xVPFs­f¬îÛ“ _+3TðW¶-Å<¹’m ß”\òÛU|UNºÑïÓî[üZ‘ܨÊĪ05ˆ$|ç_ 2“)}ƒúà ÜRQj«Z¡‘©–—uiª˜im²7òV˜ T3¾ P½³©ÑÎtLL!wµBe% &ˆm)¨¹o ÅmçÿºE­Ë endstream endobj 110 0 obj << /Length1 1398 /Length2 5888 /Length3 0 /Length 6843 /Filter /FlateDecode >> stream xÚwT“ë²6‚´ RD¤JD`ÓIh"½÷^U@I€P’„Š ½)½7é*½ƒ(U@”ªt"EEéEàuŸsöùÿµî]Y+ygæ™öÎ3ßúÂ}ÃÐDH †²ƒ«£8!°0H¨¢§§A 1aHÀÍmŠÀ¹ÀÿÖ¸Íá,…”þ„ Átª¨‡BµÝ]€`1 XR|KŠ‚@·ÿ¢0Ò@UˆÔj£p,€[…öÆ q„<¼P> øöí[‚¿ÜJ®p  Aõ 8G¸+!#â4AApœ÷?BðÊ:âphiOOOaˆ+V…qçz"pŽ@c8Žñ€Ã€ç-õ!®ð?­ ¸¦Žìoƒ Êç ÁÀ…  Gb .îH$dšhé Ðpäo°îo€ ðÏåÁÂà…ûã}üå BQ®hÒtÚ#\à@u]aœNAÂÎ,Šàñ€ \ vÀ¯Ò!@u%# „ÐáŸþ°P à c.ç=Šœ‡!\³¦‚ru…#qXÀy}ª J¸wo‘?ÃuF¢<‘>Kö$Ìþ¼ ˜;ZÄ ‰ps‡k©þÁT€ëà8 Hê–˜”î„{AEΘz£á¿Œàs5¡?4 ´'´÷CØÃ ?,ÄÄaÜá~>ÿiø§ƒ0´ƒ; €G'¨áö¿eÂü1/ %ˆ@?0tþù×ÉšÀ0 éâýoø¯‹¨˜ikê« üiù_Fee”ÐGHL($*‚AâRÀ[„ƒß?ãBêø_-¤= xì¼^ÂEý]³ÇðþÙ>à?ƒé£Ô…yÿÍt+JøÿŸùþËåÿGóó(ÿ+Óÿ»"uw—_vÞ߀ÿÇqE¸xÿA¨ëŽ#¬а Èÿ†ZÀﮆpwýo«BX%¤ÒB`qaøo=«Žð‚à 8¨ãoÚüÖ›/œ  7Daç‚ô_6–A ,›¿M,aåp¿y.à KõÏ:ÔPì|ûD%$ â Ÿ I}À„5…Á½~±("ŒDá.@BÏ~@{p>h ) š0ì\øGl¨;CHþ‹„ÄË¿Ö÷‚Cã(¨L°SupËA¥«§Ðò ,éfêÁQ¡Á‚û¸.µa›…x“¬ÌIgê`õûNmúÊnÙ³¶}–j8j½Å÷„8ÔW8ìbÇÏö.Œ&øì³qŽÓ4=±HV¾.]Œé"2d¢m§T€9t™pÓøþUÝñ1Á“‡¡Dý–vH‹~k{eI¦.#Ûmó/ŸŒqMv½¦Ë;Lå|r}´m‘¢ŸÎ©#Ûzˆ÷¬ ïéë¦ëd¨íñpù;W(ŽNM¦—MUœ¼Â|:ïòÏœbtz;+а®çs|ÉÕú[ŽK[Ö7xÛo9Ú&ÚGƒ¿àÙéÐÓ Ê©˜Üü•HØTvIC|Â>Ö¼# ¡ùz¶ì»³vXˆŽ÷ähÇÐüOw-ËwÝÁ¼‚zñr§¥K_üê¸_Æx؇7ÿU™L·¤&À˜É·îg”×Íå’5½Ç2j!j)•êØb*_4};¸9à˜µ"µÜì²HÝçò»{>xñÓ¼íÖVežI·Š(d }4~¾fÚ7½àÉÑ&XäM-4­*Zï麰ç[áµ`­ÛãŠ*ô+÷¸J|ÿ@÷(% äÈ~ºÞÃ$ÜÁY6µØ¾{½”8FT¢Ÿûüh'ñm7ª…H àQ}´?Ù NêеxÒg†WėÛ${òº¨ˆå'Ï~È7§h‹»*NŒÅêÇ›øz}Zò›—èoÓ-„ Ü—ßé%.(Ò8ú ]™â}DýÁ¨7h-þqt‹ÒüNSNßHëè×K-%r·Ÿ~ÎÜØs`eÙΔ»ÌaÙjÃqfw†²¹ú]™Í¼`î¨ûa?yý–'ÇWfâ¥ú¬Œ×ó­5Ô=u¬A_pb÷&Lt«É3ZÿEÙˆ¦ü®ªßîwŠ©¬¸®»I—[¾ÖVî•9”\&kÛµ6ej?ƒøÚ¶:ÆÛ=à{åy7hjÉrJü^}‡è–÷àJª#³ICHé?zô©Ððºýø} äxÜÐÅê"Ž7_Û^EoÏ·±ÛÄÀ+jø‰ñ¾ÉqIá†Û|zÒ2”CMÍaÅÞ=~ìœ+x?Ú.>ý;¾¿‰BÕ"n£L¶¸~…”~ú¸{ð¼)04I7ræ‹E]µh•©zœù<‚¤ÕK¾ÏþƒfÍ‘%‡µ©ÚÞ+§tãÞHcª¥%Æu`z*팋ÔþÎt<ºz''#Kó†ùþt ¬þF}€ Lécgúr Åž,ôÓ×Ü2ŸÝá žðöv@߬ۋ}EóGûßêæä¯L.Õšæ~ìE}3öLY„]Ï€7mD¶(#šWÙÙ^11zm¼ìœ†[™¼“ÔÌy+`Ë 8ƒšk1W’HòÚ`ô8"p!°€€ ™gú¡¢ÖPdaO|ûLn“ý-&í…‡÷T…ã}þWš:U¾V;ïFx^©cÑÛÈä¯ëŒôð~Vx»èZe§$¤¥–î2üîZº_,‰äSQ? Ð7óJÆÁÑäS"Å’íþý -gåøðîS—oòžñ³wÖe?iÞ©ì¾èåAÿòŠ_À’ºWg†à Þ:¼³ª‘±N¦¦çòšSAcg–3Õ’>óžxÙ™øaÚÎ\Íô™“†­Ãp˜Ñ³ªjJÞ¢Ï2ý•FÔfÁ*h»Õ·Š2*D·ák<ê–¼Q€¼Ÿ!‡±‡E ƒL1¢È¯©-Í6;å!ätÃö³ï‰KrJÜA3ûq1Î"ñå<»—Þ —Ö}¤ ¬šÓ½k~ï™Ýñ;Ù– ÷'FyµQçê€êwºÚuc[ëžôÄ™¥Tîe,õÂ\ŽL5Ùz‘çÞp³îØ¥‹Ó™‘¨1ŽA_k`…uÚÒ +¾)pF¿œ'‰%QcÌ ¬X*,r›X¦gHëÂú;u|"WQk€ÙGb—ö’^nó¹ì”Þ€jO¿ª‡šš"5üÜGSvIÎ ?ïVy£¼Þ×;•Kñʯ6y™Jbå]LJ¼¦Ðœm¾úP»žùú!™G/«3$$×’?=`ŸZ@ŸòÁ^‹ÆÒžYŽXžQl„»åÇÓrÚ·gåõ¼¤mVB÷nD3_ÏÞÐîhò±aŒöbëØ$öò˜2Ùéú‰ÈJ8ÓaÚ—3òÌ38½Å(ñ3ü&«tÒÁ<3F]C…¸ºž¾kú*å+&z{cˆÍ1êIù¤ËtÝïö×/-ÿãÿàtÓ¢#Ku]j5ŠkkÄw+ûFƒzä\ß@dã)ËÚ¤n‚ŒÍÌ(Y[‹«¾9¹ãn/ïG&FWc·Õ+ûùÚ–Lñþöã´$·“ŸKÖ|ºf>Êñ÷R½ØxÊf"Hª~¬DAµ=®4Ú5çíÂûpQ÷BÓ;Ü‹\’M³Xúo_V)Û™Ÿ»*ó3Çš2ÜŽRk".´0pšLMS©¹†^aº Ñ$»ÎIa…/8yM+2Z¹@Á¨*•a+s^©­‡ÙmF ª”»mwð„žÜ¹²¡•ŸÑ=šzóÒjªþõÃ7gŸŽá([ø…f ìZáË»ÑòŠLû1•Á«dUOÇ›,H÷С£ÛÎdyAƒ½J¹´¼ÖzKÌèh(iö¦cï– $U¹Ì¼{ï-ǶSr/¡ÈŒç:}Øý: êw6‰D?~©ôرƒ¥ ynKªý6áÔ9ª¥i@CÍq”gUájP0ÿÊ|9«mRÖ¢âí¨©(+E݈iе1Žê ¾­â/þWûf2¡BjC,Ë! ¨¦vŸfÚ$–*Ú~¾Ml•þEÇËM¬£pþ ®˜½,c-ö½ïÅîpPþ€ÜŠZœbEs¢ð¦èýyLM¡t/»¦|)|uÒp`¦fT¦bÿcχ'Á~®™kB?êô”ñX[¬_lvôÄI¶Q‘Á&Û"Bœ’½¨ÞLc¯öúyŠË·¨YG+ [» {ëRé \¼³[½÷ÍÄ®T¸¥×Žîn.n«r>?óh‹jÜu:¥#ŠQHÍ9šîWbiX‘.ÁJ·Z÷°ÊhŠ–‡¼¬Vpi«­†2Ð/îïÜ€SäO­ áÀ>аˆôÄÙɆ&%LŸ8‹,ûÌ‘­ %¢2s¯?~ÛM²ø¥PJƒ›.=Øòf£»Aï‡ôHÒòä5Ô$`ƒUâÆ³øìfPRä§IÅÉõþKª”#7¥d.=x²U{¶½Èžs½RÎAå{^\màŒÂáêÆ<¹LŒuB ÆŸðO3¡"B÷“ªc{URåé- ‡GM©‡oX¥i•ånsí’ÿèÙ`âÊàoŒÛ=êuÄÐìޢ䀗ʬö_¶è.ùïkœ‚ÔR)‰ fÁKõ…1^ˆÊHógn—â+ž'–ÑŽ£?;è_ðô¶ž·ÊœÆŠº¹~;UÈþX¨S´'ã³»kÚ$þ6´=çõãbý¼ÍQÚy²VçùNؼ×+-G5¹ž âðBëxk Ð4¾Ýºù›ÖÃ㯢3Ìå7© Ã.¦®wYRV¦Æâ¡î'ÞMfÆÎó$±„7’º¾ÖçoÛBƒ}[îŽæš¿ìâ]ÃÏ­»úx¼|Ô¡ãÏø‘¥%RM«`‰§²‘Á9Î ed­‹³sדª—n¦1_:˜ùZÍrDÉ ‡·<ûÆ¾Š›wú=¨:¥É)ÊCš*„ޤÒÙô¯Œ°[Ü»!ç®¶m´–˜BÁ»¡*+SãTÙÙ×p47¡µ|(Še`Ï«Ÿ;VªuÕHx«oÒ íýÙüC/:³xkLåÑ}åÜ…¨ÕJ¹LìmòC¦‹[¯¨õL[š>œ5Kg5TÃþE¡x NÞÿAu?&uë2ÃU:[C“39™3µÃÖŒ žíˆ|Œ—(%—å‡h¯q´X+ÑÆ§»fOJÝ‚Hëø‰ms1À§ûJTe fRÝ=]¨X~4öÛ!µZáž‹s±"ÒH`{@Æ8.™!êý.´‚1x¢Þïú‹Uµ:æ¦A7ŸK±,Dg'¡Õ¤[=û²²‡Õ ôT 9¥rZ»kÅÚ=¶ßß$Þá3öÚœ_‹%éô¢”žt,¹IѬªÉ¼ž3ê%†Öù¿jbÔ.¼´Ú¸X(ív‘±»×Ñ[g¦öT]FöîYÎûŸþ¾[Ïæ(Gé®ì˜Š`ÚNŠ8*6•:íÖ[zòk—\J¹]ð; tˆ?ös‚ª¡Š¾¸ŽUýÌÖŠ‚ÚÍÆÈáý$Îõç›39;ñŠ&¹G¾ÚT|g;šVYÉü‡=ÌTeùú“7­ 2N ¾%½ø_úivMã}Ý«R¢†tS®U-½½ï(¢t)Fq=vßʆ¶›9r¶’,ݤĤq8ê+ƒRÎ}×y«d²v‡I™9M‹9Lá×eä¨3.jL=x€—¢½e‚Aó„VsE8ï.½U\¤¨+J‚è„¿N¾Æp³¯î{œºcWñézÕ%œn˜ÔP(¥/Ü÷ÝÈz«Áu¾9·÷Ë´êI8Êdƒâ|9¯êÂæ.Ò¨IêE6+]rg ´')÷—C•ü˜žXQ-xß§”ó²‰~õÜŒôÅãö¹'’aNÊ“‹R ! ÁŸ—UI_ÄűY>ÚñVMœh#wµ(²¹o9Köõä£Ó²§)ë@@ ¾nìK!aí,S4§X¯’"ÏŠ·â˯ŒŸFŠ‘…·'£Döã†X¨¼¨’¶wùoÕoj¾³90’Ýa{` š‚L/ÔL9I¤Àî`’5UÁœ-з–ݼ‡e{®/xQÉíez„_ü©ñŽÁ¯ònÓ7<4mt§â‚ø‡«ùøo©nzò¢…CÔÓ §˜A9‘*š6°º©Ÿšõ±'sÅ&ÜlxE•ê+T Õ¥½¼Skz‘.çÞ¿—ŽŽ8óŒU÷ˆ%ôÖha™†À½öþå誹ȶu¹F ~ž@Ó[Ï¥ü„ÅÞLžïnsIz-Åqµž£ºëe££öqCÑ«\¶<^§˜3»e~F9_\4« t8Dßriج¬}‹•5oö$*í'î?áàçx¬Î´•"TÒ1UsH÷’ê-œ~^+%¡U{pÜÇÓÁðð#YwqÁÁÝ&aPíŒÐØâ¤‰­Ê%¢‡·Üà¦éŒÅ²v…Th4®ºav¸gja`Ê6ü]\ØÀ‹Ë+Þë3ÝGw™sKû¤t4l¾jnŽ£vðEAßúÒ=d-[StjZÚ~Ž›^ôüüëfZÚêøP3¹¾¥›À#mq7²³%-¸èð¬ N&F¬CžA­x,6fõÍD_ZêI>ã_׊æ(Ìfù–Fí¸‡Ž'QÑ ©«ò‘’Ô‹=þ|©”ñ€çO{îxJ¼áì_ðuN+á…3s‰0Íj?oÕ jœO¸Þ³û*› ¤·‹ºéˆ2]ãîÜZ¾ dœË+_È?xD9\ò¥WT"ܱeu³ÙWKXÂý•­‘aþþøC>ÛOSŒŒzê×x’ï‹'H0%ÕÜ/š ~È 7W g§Ðà·Uxk¬®WB=ßp:6à°øhÝn?9GŒ$9%j•èÓÀJ šâ¾êtnÐ[ê¼Ý(k•Ûë¹:ÿbï“\»a±1Œ=R»Zß­Õ´)y x¬eúŠ+,ætÐ;c"ì[ÂÍd4¢iåÌê˜mÍäÂ35÷D½cFºé5­AÁ×ÍÞHŠªÒ%DQtD!Ü|Ää ¦Å =¯„“ÞNÝ”#¶×0zþ#é°qЦ¨õ-/Þ/ÍâhªrC©~6á‹ìÙØ~;ÙÝG5ÖºF¡ Mþƒz¯IåáÂB“¨g#WOU˜Ë™i.&?épé£Ýì²òg6¸ÊåÑJV-L›t£8õ<\Ï]…p„_ú¬ªÄ¬òoì•ãsË‚&,yŠºxÂÚÏVFº —Gõ°·Í¼/ »Ö9X¸Ñã’hî%¶kšõìÒ·®ž…ÌÎ?R+‹’Ž3y‰ô¾†ðô5Ö;ŽºªÂ)Ëày‹¨û0\æA®ïã³Á=)d½˜-”*ÓD/ŒRd›L×}T1è¯Î6‚þŠãSÊIÞ"w¯¯ËÉV$Aí²–v–¬3ô/äQQ‹…§¼‹âº |æ½ • §åšŸ\£û8ÒŠ¢AöÁ+}÷h³¤Å®ôPnÕ¹ç[²|2}u^c(hÅà>¡Hý\ÄI-u¯fïf[`¸9–Ç£x«úãUCαwÅ6z5tz0#KÞÅiÖ²¹–Ñ÷x̯õ0¸×H’“ä3·ú…æÑ8M¤xmL}³ù±Gv endstream endobj 112 0 obj << /Length1 1398 /Length2 5888 /Length3 0 /Length 6843 /Filter /FlateDecode >> stream xÚuTÓýû6("LAB¥a”Ò0º¤$¤[’±ml£AºD@º;%¤„$DAB:Dº‘þ3žßó~ï{Îûž³}?÷}Ýõ¹¯ë;NV=C~E(Ú¦ŠFáøABÒÀûÚÚê a ˆ€0€“Ó‰³‡ýmp>„a°H4Jú!îc``Þ¦ ÆáÚhPÃÙ‚Ä¥AÒBB@a!!©¿hŒ4Pì‚„µ€h à¼vtÇ á¾Îß@.7$%%Á÷+¨èà !`PŒCÀð!`{ !‚„áÜÿ•‚KÃ9J ººº €°h \Ž›èŠÄ!€0, ノ Ô;ÀþŒ&à!ØßC´-ÎŒñ{$†ÂâCœQPˆ¯4T×ê:ÂP¿ÁZ¿|À?— €þ“îOôÏDHÔ¯`0‚vp£Ü‘(8Ðiêªj àÜp|@0 ú¶Ç¢ññ`0Òlƒüj TUÔ‚ñþ™ Á qX,Òþ猂?Óà¯Y½vp€¡pXÀÏþ”‘ïî‚–û…vEyþ}²E¢ ¶?Ç€:; £NÎ0uå?¼ ð ÃÅ„$%D$Å0' Ì ‚üYÀÈÝöË úiÆÏàíéˆvÚâÇ€y#maø€'ìâ0Î0oÏÿíø÷ ¡Hhƒ#Q€²ãÍ0Ûßgüþ1H7 ¹ž~  ÐÏÏž,ñ ƒ¢QöîÿÀ­XPMOQÇÈ”÷ÏÈÿq*)¡Ý€žü" ¿°˜$$,”À?xÿ;ù§¡bÕQ¶h|Äï~ñõwÏ.HÀõG!ÜÀ'ÓAã© rýÃt !1!þ ôÿÍ÷_!ÿ7šÿÌòÿdúw¤êloÿËÏõðøÁH{÷?í›x,"Ö ™˜ù™-þÌ*;­jàÛ\?Ò3Hs4~e¶gÁþZkÿ®4v/DiÑžÏÓІávI¯ fü&Y°êìwT<®¡kGõj DY·ŒŽ¼½¤æ icäàx¬ Gë_í + €Æ¦êmý1ð–Çg‹êjà 0•ý“®DÜxQÁé™t_‰Ä¬TÜÕ¸ø8š¹­(/A«ZùØ(iFÚ5’,]è÷¥µ= 'Åu%÷å/ Ë&5 ƒýd¶³ ·®UyôãŸ6÷·÷Fš¯O–l 2:T µ-_ò£®ÏÈë¤ë¡ÍÜ›Ô 7¿Ç"ªBªÕPpgítž<¼xGBüÖ¹½óše®RïI¦GЕn¾l“³x%lÎ_lò¨q© Õ‡_ëYoõ›Öz.±ZÁ½Ê\f@žþn"1”åïb+;²4I—jæ!#Ó] .¥te& Ú<°Ž°…€Ù2š?Ä‹B¬\éI¤Tj°À#•Æëý$ã>å—š 7 4U[¿Ü\ݦRO”iƒÍŒ%ÈæZžz‰¿ZT9uŽçª+è^®Br«4)ŠO†=•_ôñ?Ÿ¤•LfÔ¢æ›]ôªc¿#U˜F ˜ÝÙfˆ™è}ž‹d€ó?ãì÷–ôñfµ|ª/s/Žs¬ÕU{@RØcsË+aÆU:¹•hû;®’¼®‰\•,iX ŒÐRìR’l%ªux1dûä"í%q‘Mê’†ý|á“KYfØfÊ$£eí“7ºQÉk.a+;zËÊ ñêTLù‰ý;„ÆÓã’ß®Q±ðV·z<ŽàìDô,2¶NÙ|¸ÉNóÕèŠs=¼:l4ö`Pxo-W™©übÂ.—;œhøæi÷+»>ú ?ɅŶÕÎSp.—‚wn•CÒe`aßP³èÀJÉ^!M$´ŽS£Í|{º¿Ø1‡§K‘ ‡‘šügã ÝÇwY2³\ Ð=ù¦ïÌ€|…Ç0³Be›¬éý˜µ©€= £~BFǤY œ0GF·¤¾BÌÑŸÇÞÖÅ–LUTÁ}N^4š\aAT|ÕÈìå~ÌüÊ“4¥0í¨l©3ôЗñN©eì‘ Íníï¦]/a& ,Åå^/+“z`[,ï;©®ˆ–Þ_`Dyé²…]søôp¥'µJùú„⻌“žUf²ÝÜÃÔ‚)©Æ±¿‰ü'»oíP•ñ^&!®–Ã`#ÞqÙNOMUyI‘+PNqÅÉúÇa­hNî23µAšÔÙg÷cß­Û]ë£'õ>)ÁÒ§:¬MúñžsÍ£c`ØD%³LuŒˆ%KàÚ:ƒZŽ$nþ‰þDð ‰N³Ø=ó¡^Ç$céUßEƒ× ^q›ºí6ÆŽŠ]ŸÞ÷½æ¥üï9k-ï!ú ›>i²V´@‹ÂÛ’ ¿˜ôUŸ9](Wõ‰„ÄRÓ(o’|@"Δ¿‘ïèùíŠ9KË̼kî7×¾ìLƒË8Õ>×ða<“Pb9^{ÞÔT³s®çé^Å  VWs[í1ÍM£‹MöÝÜØ½|‡¨:ìšÇä`Î @n]êz”(¤Î8¯"u¡ÝɃî:˜L7HkÛÐ1WÎ^V¡¥÷™aó’X ¼BÖ¼eÙØ3ňè¿Ð’Sº(âT:U‡§O™>y“²ŠÈçi0Bê†Ú OEg½K×ÉTÍSÑ$ù<î« .Žá~‘ºuséè©%UcíñƒœÀÝ…1UѵÎú½âï_ˆ® tâ JŽ,j‹ Û]Íðä⃒µ·ópÿ»ƒ7–j]¨@ªöb©pTÖEÍFN_çtà$ß`Ð øÞgëa‚•ýI¹´òÖ ÷ã7r×0—oˆÜ¸eÁaÑA›5ÒÓYyP£±Aä}) ~ÃiîªÂÃw6ésÏÔÑÜ|_+Ôç3„<’||/Zý.Ïô ‰!3ÆÉÁºt‡d#Ìd=Î?ÜpKTXXã-¿¶ìG5ªLº7vÊp©*rPéÙ©™˜èNž«¶Yñ² ┪ůªjvONF)ž÷Ò_çpù!*&|UÓûÍïa\à¢[QV oÏ„âEú\ñØÁxAœ‘ÎGrUvƒöúšB=t+bÅ­ƒ…·ÁHÜv¢ÄDýfýhc_,!B©ï¢«ÍÿÕíß=»eê>Ðd«j?ó…ñ¹žnW˜É»\¢–ZéýñKk¨’"žˆ¬°gÊ%±w õf[0Ûõ^ň®|µSu_? (Â51ÿzkEƒÏôW×÷ùêa|f ´m-‹8Rè JÚ´¥„ÍÆR3áüÃàìDØö€òÉøb¥[.êÓØÊ–£E?h‹ŠkoA€Xc\²òfVÅò¢Ë^ð,ÆæîZtm^q¥MY´‘{¬ç±¨|#—òÜÞ $ëÇø ƒâ*ˆœß­½SR3èa¹Ý20šOûšÆh£ã{n7°}ØñéѨç†ÙD$ÁŠq$‹ŸôÝ)âÔ‚£²ñ;G/òï9 ŒÆìRÚ»^Êóèì ½ÿ*öá„}<¿9Þë[f¿sL«Â^`-iw§mf—Ù,'<@ÞàÑ{ŠÔ ñô+ì‘»ßVùvåòÔFÉ,(Å*Cd¬gÝ),¨¥V¤cŠWÛö¶ 8>öòSö) ïGÆp`V¶O*ç>&%Oímotí g_ra:#¶2µÏ"Æ—òê 9æžß7øòc¼¸K‚µT¿“Ü£Á»qaé÷ ^à<­kè%ˆu“mߤ5ÃzëŒCvè ÕMNŸ êa€úèá¿À ny@‘ŠçÂêØ ±í>—=³{¸ð†râžÃ›Á ¡­ i¸P·½èJ«6F[ëüÂZöºÕ«b&ÛWU=ÑÔ“§BÍ}k--_»=ä .úHÖF´ÉüŒ,`ZzWM<€Y¿wöܵuØDxè†Ù=@5Ì3’6S”Sèqvd S“K…°¾éOèÅ3#|íè’VH^ñ–«.­kk]PêwG“ÁÌ@ëjêàˆ@I Ùï«Öü:Åörg½áù /®,ßOx˜ˆÖÊ×éÓM«ìøx™ó1A@лó8Õœ§3GvcÑ‹V;:4{‹ÀfÛ×yÄHœpúQ=ÈVÅ©ºÛ\ñmÄY„ peMÑÐ2Ø48#ò¸¢d6­°c-6RÌõ˜*þ¾Çû‘RŸ%i§sÕ‰G«<,ÏLÁ/ìjƒòQšê ñ–&Õ°.šÃÌB?vFÖ5‰¼l± ¾ö>‰WKÁä'ÛbV[¬ù„Ó÷ëIK_ic‹aÃ9 ºÚ,Jh¥~±û$Æã×ëÚ3^Õë¡ÈÜßhÖ§’}ÐáÖ¦¿»À¬¼·R§Y(ª÷3qüâ]LaÕ¢Ø0:äw²“‘R]@g —Dº‰Å­37AZ‡hx*ëlÝ?¿TÊÏ ì"Q\]”|!¢hΖ·‹kAøÒÃßM$æÍ÷ºå€C$Qä>”ùÓAâ%ö~¯bv®sñ#¿>¦„bR_ººçùÅ7TÌ¿xùEǾ§6 tk@Ôˆ½1:cèm$i¤9M”ýªU}íÖ-„ëù@Ù3·§ò?ØôÔnꦨx¹{¼ÐìWÊ8M ÒßäHŒ4›õ,ØØë ¾CY<V('®^—uÄ}±ªgw2™±¾Ml¦TÏí¯Ä>Æ8Ñÿ–=zÏêǦô]0ˆlûFÚ’ZR)…þÝ-òég”ÈB(V½6‰nóŠþe›-ã1¥ÜNþ›¸LØ{c#‚°lcþñ^®Ëö ŸoÓg„e¼Õ®~ÄЙ;Ødº<Ü©þfép/#°œy=Î܇Krþɤe¾#âc¤MZ€_Ò)Gb‰NrZâxÅYÒr@zNMÆ_“„LØõ€Ò*»o\¾/i‘Pa T+L,¯ióªN—Uuz6‘~ ‚ì,×›X_·*ÛYU÷-\&,ÚøX9u{Ջ䘌½YtÍað)¶­L|“‰@!ÚÖv3Ã~¿4¦Y];Ó-²=×TLÖÚ¿ È­~)×&{%Äm}Ü„4d³¢Tsµ Œ®¼„´ð*ò®Ë¶‘A·’§ç[‚B=ǯ$£Ú AOÚÉNŒ›wew\r¾m_v?ÙÂ=ÌØðyyUà?3oÒ$çÏjâHî¬ÍIö 6°#Úd°4d–]+Ö$˜„Ù?R}O°¼óе`;åÍë  ñÔ“NïÐp)},ƒì¸…šÊÁóÓUãŽG—ö߃N£i£¤ßN3õêT–—­WŒ$è]5˜Yjçc¥¶ÃiójØ|ahZ—蟅«Â9 l핯ô¿ÞH&n&Hó }ó âMx“ÀõHzÿòRk•Ú^i>çp?³Œ¨þšqÿu ÒÆy*~=‹£ó/íýUØåÑ»ÃÊ2_‡öRÁ•ÎÅ˘a‚üGì쬶MûijßF‹6/OnKÌ?}" Q ô·§|NÇeiG4í”OÙ¾AòS¡UxtI^¶5fhÙ"ªs7ž’à‚“—*=«|öfJ AȸJ(ì/BOrg h ³©5ñžàÊ5ÉŒ®jÞ„áá‰ÙÂÚîµI>Óí…ëeõÍ,¾ôåÞ<¼60å)_¡¯aUì›.ŸK/èÅv=ßPÉŒ›Xõ1,4§Â¸2zß3>o«…¥Š©$@‡*~°ÖKù7}2¡SxœPé8êý‘´Ä5÷”Émh1Œ>mÇ«ÛÜ–›_ÌgòºyÁ$îŠYÄ_ªóo(öhJ/ÂÚöȼÀ=«Ê¢€ð S ^¥»Y(×N6oY~ßqZ¤ßZñâ+"·à׊ ;"]PnÅ)µÜÖlÈÆP“÷Ö’I‹6ÿd‹ÆjŠg¹¥âǼ`×ÌœYß’Ä9ÈeÊñг!¥å­1‘˜«‹¥7  ªÙ “xóõA?öPÅüU¥+øÙ‰§ùD˜vì/Gù¬¼ˆ?ß°?ƒ_¤jƒ_šìœ¨µ×u++<§3¹ Ï•-'æ›2ᡟE/µÊŒªTDõ‰‘3mc* Ÿ&|T²-Hyt(uý³1½‘ ”6ö×븽Ñ~L©nY!Oí$ÁqÄ×¹ÁZñÉöû}nãôgyá˜dùÕôjÓÍDLK~â«dâKô$ߘ¬œÝÝ™P×Ì +˜sX¾ÌIÓ·LÉæ®|þØöó9¯û*Óëº_øµ‘¡t’¸tV5æ<êIç™l vÚ­‹ç „^3Ç}<5ï˲ïÂ¦Ï  m! +*Ú|i#y4Ì´Ü~›RP×y'щË$ðìÙ1 ƒ€”-O÷À„‹·Ô.:5ßÛº%lMá’'Ä¥ŽÇ9E' —ÏúBJW%ej¾ä;™Í C/‚(__‚‘xÕìîŸÈtEÐo­¦«i´õm’j¿z(ЉÊR·½°r‰}2×ò“éêùÀ&md›‚Eè/½dÃÿÃQ <Öê/=ä&|ˆÂ¾kï xpímTëýX²ORcÑòÕ"Ô|°è$“øÜ§kåÚë{‹´/¹:âÍuÖÖŠ›»n]^{¦›Â ¥=ÃTd~@Ý $1Ë™jRÅ)\u›.·8¶Qëk —kÉóÆÎÜË'¥*ESÛÝ#È\®W› Á”Ï{îôb™ê¸ ‡‡.Ž4+ &±›ï6wójóë> stream xÚŒöPœ[Ö ãÁIp§qîîînÁ¥qw—àœàî®Á nÁÝÝ=¸sûÌ™™œùþ¿êÞêªî÷Y¾žµö~›œXQ…NÈÄÎ(ngëLÇDÏÈ ‘Sfb02²Ð322Ó“«Z8[ÿ-†'W::YØÙrÿÃ@Ähè ’‰:ƒìäìlÒ.Ö&;77##€™‘‘ë?†vŽÜQCW €=@ÚÎèO.bgïáhafî JóŸG•15€‰‹‹ƒö_î! £…±¡-@ÎÐÙhÊhlh P±3¶:{üO*^sgg{n777zC'z;G3~jZ€›…³9@èttšþj ohü»3zxr€ª¹…Óßr;Sg7CG $°¶0Ú:<\lM€ŽPr€Š”,@Áhû·±ìß´€s`¢gúo¸{ÿÈÂö_Î†ÆÆv6ö†¶¶fS k @A\–ÞÙÝ™`hkò—¡¡µ“ÈßÐÕÐÂÚÐdð¯Ê âBJCPƒÿnÏÉØÑÂÞÙ‰ÞÉÂú¯þ bYÌÖDÄÎÆhëìÿW}¢Ž@cí OÖÊÖÎÍÖëßÀÔÂÖÄô¯&L\ìÔl-\€R¢ÿ6‰àÿÈÌ€Î6FFF.Ðt76gø+¼ª‡=ð_J¦¿Ä |¼ìí즠&€>¦@м—“¡+àìèôñú§â<ÀÄÂØ`4³°…ÿ$šþAÃw´ph3‚v Àø×ç¿Oº õ2±³µöøcþ¯ù2HHkhH‹ÐüÝñuÂÂvî/:VF3#€é¯%ã=øüoEC‹—ñ_)[S;×ßÕ‚húOÅ®ÿ^ªjÀÿÆ’·m-@õgÉuÙA_LÿŸWý_.ÿÿ6ü¯(ÿoKþ w±¶þ—šê_úÿµ¡…µÇ¿ @Këâ :rv c`ûM5€Z9 ‰…‹ÍÿÕJ9‚‚­™õi´p·pš(Z8›ÿ½-ËÕþ:eÖ¶@E;'‹¿®h4ÿG:ZÆV «Ã ´’ÿRA'çSŠÙÛ™üuÄ˜ÙØ†ŽŽ†ð !ƒÀ‹ tM€îÿZb½­3ÈjÏ`jçÿ×DÙÙ B‰þFìá?ˆÀ òqDÿ .ƒØ#€AübíâÄ`úƒX Ò(»ÌÊ'÷òÉÿA | ÿEœ |Š3€AùåSùƒ@ùTÿ P>µ?Ô­úÊ®ñ²kþA ìZÿE\ KÃ?diô,ÿ‹Ø@:c;kÐpÿ#aeýKbcóÇÿ¯©3˜ü‚ØþÌ  ‰¡“ù?d A›ð?2F ¦ (ˆé?à_J‹?e±ü]ÿdaûKoçâøp ³@P’±‚h4÷°7ÚþÃ$³øqkù¢ÌêÄ‹õ? ˆ4›Ô"äOd6«-è,üCjÎîO1 g»ÿQƒš±ÿ£³½âl­¦Î¤Lÿ–þ}=ýW ªÚt)Ùýc <ƒÃŸù‚,\ìœÿŽ…ëßÒÿ ÇÄ¢í¤28rúÓÈÉ hcñ¿ Âö— ÐõÔ²‚8^ÿ-Dˆ“õÿ Ÿ TÕŸ´ [–ÁÙÜøù‚Hpv³û‡(†Ë? h®ÿ€ ÊÜþ±< o÷@Px?Õ€\=ŽÇþŸ«ÉØÅD°ó¿^ mýþ×_ Ðh ¿4ogÌdYÔþP#„çF·7Î7C¾§‘BMçµäØáò„ü!‰º:ãë†ãPÒpÏÇÕ1ª[Áe¢W¯“–†¡­ JmÏÞ/úqÊS{mð‹“˜'Bõýpøtª‚ûÞ¯ÞêV-à?¥És\8‘óÐÜú$ÜëûËVFCæ÷”ö«Ùe^ʦé¢Õ¢tŠgÉs2ç°I`œé`?£^º£ÌÞÞÍ fO¼IÇÑÀûœF³z}Ùdþö8ç¹V¡ÊìÔ…C†ó›òutŠÂKø0YkÁ«¤pu`ѽ…·(‰öû*ÝGúCæôj åHÛ¦ÞZ×Ñ¥N¦Ýœ$@%ÞÚnBmiº¾#‰Fu›~$šs-‹à°ÓTx­ýN½ÛÔò;þ2×tý;`IËüÄ¿¹Ûë¹Áamxd€î>ä{ëÃpÓÈN·F±@¿¾™Óg1síˆÕît‚ïÐeÎc]@)ô´Ë®Iœ/ІÁ¼^_ ?á2m02~á„îÅ?gËñþýͧ²ñR¾ssöÓ‚µªnà{ »ü»ÑÏï——8æ,b!T¹ébÝá¹ë1”JŸe¹í™)øDÓÌWå¤S·Ž~Ë\ΧӥN¶!*¦v 7¹ÿž”=í.‘«d;XŽ—³kQM>Ÿ˜E¼0/Ë †U«•öéf§Ðš8Ê4Xó+¬ñá§HX°Þ9Jô¡º˜äßÊhŠ,b¹ÄAtܵŸ(?m¾M !K£TÓC/õÕ‰HƒI;—QôzqÀIJד¨OöNvÌÍKÎá%\G2”Ž ‹/˜¹‘ˆ³%ƸýV #ó®~°Sâ?ÿŽ€0eàûƒ7“‰±Ô6õ·íÈæ¢¡éq1c}Øür='h£òȶ±±¦&]`Ç@àš#ùA4Z;©óšÓ]‘—•iŽàšÏyâAl‰‡=µ¥ÙÇQÆ…éˆå9MM Ú" ³AÒ¹²njÆçΛpþÍט\gÃáÂ_§µuŸUÕ•X;]ÿ^ª5¯æ¢¾úc`ß8—qƒ üJNúQ.[‹±b4ÆÕ‹};q^ç¡á˜í0œF‚Ãw™˜©:­%C¿*ƒ}5't–ýsZÛç"¤þ¤ò©w®Ÿã%}ù2‰˜ÆÔØ¿&î·t.Ͳ+)Jw¾MôÝ<Û¨ž¸u$ì·“å˜Èëˆ4§Œ/+ÜÍOj0»r:ËšLWíàÙøî2©3D ó ÖÞ<3ÆwkåÚy>’=NÞú“÷UþœÆpÛZßbÖµ+ëÝTé¿ H™ÿBq9̶9‡ÁândB†]L6-ò`¿ÿÚµ¼ G* –µeS¹r£(¥;™©©Î’ð|(á:Ææ¢Œß¥}m—z1—j˜÷ÚU@ §0AʺÏÙ`@[4uQ ‘ÈÛô 6iÌ…TbTÚ¬‘3.¥@~2H;ùЗ›°‘À`zÛ›iÝA®(ÆœËM¨.D­",˰Ï[†yΆV&’%”¿qŸiÍSåõ« Š´uQÚV&ž6,,ˆÓKyÑ.þSwŸ*Õ®¾Æ%„‘ЛŸŒ·‚>ÚüÌwOoøqH»r‡ïìþå9µz÷†ÎYD°‚ L'¹ ™`⿉°x’¦î£ÈÉ-LJôy]Ó†´©xoõœˆ÷ƒCµ.{,'鑿¯B-ª Çhãû¨SÇB­ª ­XàÐæ^¬_(£b6cv´‰GB–u(fÒvÈBMù»?@aëkkª‡}¼¾QÊ©FRU|¿u Ìy„ŽÐÆÛ¿-ã:ú™'<5'¸`þŽ Š2 ±öÂ…½*ÝÏÇê šb±³àJn(ºNyâ¨aè×d¡|)g"ü\¶;Z#G3hdïÂãµV6 P©Ä‚y¨®Î³˜Û>6ƒŒ„Z¥@¯µiAÛÎÉY>OxÚl–ͧ÷)H"¾ù$#þ škôœשðÍšÊÚ¬ª;sÙhº2z¸ù°l.yî—ÎÖë£!«Vͨ/ œkÛA½°¹x´ï¤gu–çdò-ÝÙ3®öCeþA÷<¾l–'Žî·O—eŽ…ye®ò¢‘r\dR²o B‹fx[¶Öìà¡Òp1â W¼2p{'Šc ß„„°G\CüÖ§­ó(´ö(—ÆÁ4–'÷)ºòdo8i pKÓ.pFY¸="ðœƒ}žB’…sÙ,àðôWÚ9î-ÛkÎLB.•e™ˆöBôÚ¬ù*‹ÌFn‰4ÆçÒ‚sy .¶9¾èhÝB?I*1¡ïn9 ‡½N›;ªÖ¶¼Þ›XÕØêa*~¶þjK²DãýÖå‘?¡¢uÚÔ9“Á*§ ýµ ÍùÎÉÓ5?Ï%­ŸçpÃ9¼][õFŽ;äcŠÓ×OóC8¨Lâî糇ß7fo6qÑîê·ËŸ¦2ItI=}±¿Û»^u#e„Ä¥Þ-ö—Ð; s…“aØ6k‰TŠ0=õ9—™’Þ—p‚MZɇÎFÊÔ€çÌðäwÏ&Xˆ?QÁ ,FÉ_Gólnš¼Uô<ŸÇW~|ÙøÜÁ;P”›´Ó„VéÔUÄÅÛ(ƒ$"f¬~”g¾Ù1ÜGŽ¡”0.^h§ØÑ·=õ)Ь,¶ƒdŠ…¥ý^‘këôK´W(8¥ÁN%!Ò©ã²Æ#·|báéÓÌí`b‘ Œi b†ÆZ03«j©µ'Â>Ù,³ÆZÛZðÀ©—Ñ{þ‰BQ6ÚȘFïgqTÝ5†"²(¥Z¸°áD¥¤<ñÏe«ª˜¿£õäw&úùr!*äªõò­21Õ°4Ê©ó§ÚŽ…é/CZ·ýhgZ@ŸöÚE|ÄÂÈûE­Pŧøqqp5±¼Ó뷨˙À®9É(ʺF~ð/J‚ã(RK›Îäù»ïÉ]Ú%Ô}/9æã¶™ˆµ8GZ”³+†=?T{Sj:úÍn¤2ØêÛ&AJËæb"ÀR% Â×äüšLƒ¯l”'ð’oÜX¹Ô³J7Zï±=öÅ<3­Î×…]1,PËoé÷z CuݾÝXmÝÏcM¸aJ!óCs´z?wJB︾²ý²ù9µ¯ô~ÄéöÒ.ÝHÐ+Îc–XD„(Ò Ë–^ÃïËÓ Â}F,[„M#û`3'Å2º)»êñÙt Y^ûŸP¨Í(ÖhˆÞ-¾é œ‡OôÃ}É?hLÇ==J\‰¶ôë„=«FB³Cn˜\gÛaa ޝÛoB{5Á ó‰9qæ là“WB±ÍÜ–ˆ?ÀÃ>pì‰Ãi z¨èúþΆH­|´¶ž?ªH€#JÎt%f| }k«DiÄó+yf°,Þì_Ê%öY7H@u–*¨l‡óš£_ÒÂÿ-¸h‹Qî˜üQÿæÔv5 ©SáeÇYHšNÉ69ò»´þ:¦ž~ðŠz|£oæ@ O´aÍäY‰Œpèú%;°ïG÷*Qu\3<â¡õO%û¸Üò<¿ê®™…W Ñ<Tp(õZn¹w¡¤k-ÑÝËëŨ%FxÆ[1V” ¾•&Z©R¶\f}äÉâuÀ³]Üu p¶–aJÐì°á~‡wˆ[ès˜. ØœôdQ¡éÂÏWdêõ%C¨0!°”K'Ë-%YSýži$ƒ%l+í1ØØË³Ép€k¼#¼©{W× #$“+7¿´ÌT³ºD«ùüìï;è½)AWLÿJÖJ:={$ž—‚ÕÚ+™ÉÆ‘!?4.«n>%|Nç^•ÒÅóWaº^Ï´~2GÕV ‘5/Ó¢Ûûê«âøæaÈSÔ’(›ä!䂊Æ×…*ÂÒÃŒ dó_Û˜¢Â…ȈãGÈì l•´ Íû¸ã„áˆñÕ}5~Ÿ¾‡yr¾º:wÂê{Õ²uEr5)ïÁrZÍ0–ÚtjWÜ3Ý i°I oGÊLPE’"™÷º=þ èj Ɖ)þ_gG½¶Œ¥ÿÚ°RˆØÃ£}‡û÷ z–1q¾û%tòW£ ¹·ùð-S–äô“_Eƒ;$¥ÉŸ*(M圦>Ìij¨½ú¼Ü565kõ5Fë!øÏ.[Ž Kv^D*H¾Ã}#ÒüÉsZ7~å·-Ýìš‹\ »J O¶ô¡ e…RÄ\ €-•7Hû• íìWM÷oÁ„JìL¸4Ê:ôT!?ãˆ#k; ð9ª«G°¦bÒƒ…I[-/ËokW‚*ƒVJ)ëœW¿ÍZ⽆—ÜÛÅž‘S¯Ä<±ê” ¾q{ÃC=„€Eó+HƒÌ¦óôû‡'ÄJNU2Ç«äµë$xSc‡^¶n_â×5ݹÌ'¼‡®Sd5ÚJðNçê} nÉ«œN…ྪ*} BÀ¸zç›Ã$ &…ËáfwØÖï>ÏÀ¬àtÉ/:ä1jg®‹]`„H“ž;zØ›¿„£=ÈýåU·›°ðaWižl ´Û KÇ?`ÒͰÝXì,H ®Æ˜N¾Z5+ÓŸ¤ß¾ºRúÚУRŽ©ìôˆ¶.Y{¼as$`æ!jÝ΋ÔWöÛ5êý¨–paÓ—HÿðиÄTôŒâÌ5‹ð¶=º} ¿É^ËTi¦ÿ,ÊïcC³oZfÆeNFðTÒ®+x!÷h°¨7Ý"!sÇÃVSà6xÒµ+åèp!TÂb*ôuCë“…K…ÏÚnïUÇÔÅé4ª–ãÇ#ÑÛ;î˜èeÂÊ…k€!çOˆ'te±´èÔÛ­†eíæÛ\Ú³Å.ï°*Ø\2ñ8AŸúTeJ 5ÉvÝ̆~(joC¸Gâ9 æ{@IQ%¿·[~d“-.“ê2nôñ6'ì"‹óÝFS›è‰ukÓŠ¦éx­øÂ=~qÐ7QПÁôóªÑÚo Ø…7nàò ë UqJ„1¿vØ6 ·ÌŽwÎå1õl`x™‹Z4„¡]=ñÑ`ºsT,+¿Ç ·úÔ1×sßâJÖ0 ÕÇr¤æ`Xð9?bϧßÏeÿBãô‡Ô=ÛP§o)Œ¶Ÿ‘½«­¾”z^G& Fò7pžÙÓÉNQ å?C^Èð JÈ{ ’óÎ×~;• ´ºþjÐÓy ÿ1ÿª4²U"odL³ÒÞ¹”eG½T¬×î9umvl6f¸û-Ö¥A~’ƒÿ”z à:UÒ66 ¢µ¤RˆƒäÈK4D™—ÙùU®ðæÑi¯ÈÿÙŠKJó&Þ4¿4c rû}âõ™m©HSì´8ùãýñq×d/Égéä®e-ÂjXüCè Ë$Šé%¡CiDšòý°Ÿ-m°¨Ë¨|·Éò¹{dì®u*¸ªZŸÂIW°«d¿¿³ŽŸ¤ƒMPÞÞ÷>ú‰c™¨KÈÎÓÒ`:aTH¼lê14—:4ôB ß›Gõ£T<>~!¬ð -uDd¹¢¦¥gÊ- ò[Rój˜ìʵ‡ñ¿/ä ¿ûn7ÏÔE¥ç¼¿·¶j¢øL‹8F a ¨ "˜b¿B¤äÇ'*úð@GÌ´ËÜÍŽÇ©æ4!‹ß?éà¾ÞëÍ&@àB"ð¤Âuy+Duú¾"IºÌ²¿+õ¿N¦Pf*± ñ¸“6#b¹&Rå.³4út¶BÞì,÷$Wáý<ƒÀQ}= Ç]·¦¦Ÿzû"»»Q×ß:ó’Í®ó£öAî¤8ÏGZyŠJ4‹ÒZy¥n©+ÉÙ±›I¢.Uî3ÁEñ ¬ùw„*šÝkŒµ¼Ômæ›ó0¬¦-â¢Mæ1+ô‹õªÔz*ÐSt„Á¶n>¯´a_ä›Å0&EÀoªï´¢•¡ž=³w—,íÓ:ð?ÏÞÞ´¶Ø b°Ä}õÓÝ»£!Õ²¼#)5ãCƒ$QÔæ?²K!襬Þñ¿p«ë?C óÏq}–bôÁœiÔ!ñZÄ€½`Q[öø=ì²+ža 9ºT|«¸Q2B-ƉòõE­0ãɺêÒ -â†Ã,÷¦‰%iaKõ*F˜ù‡A„ÂŒv';$ºÁxxH Ž˜’Jo¥ÉPˆý²§=À—+O'ïà¯>ù}²s *h…Üþ¦es6íÅ=B,1ó—*Ì}|8qóÚõ&M‹ /Ò:«õ˜„•øW˜Æ§ËØþ/(Þ0¿œ;-™¦Ò…ß"0ªº¦ªÞpF¥]{heˆ¼Áᮂ'’Ô×cc3àS^Ò•‚´W×yÕº5¹ñ¡¾.¯ÓÜ‘oÖÂÉ·­ «°q…<v׃G—e‘ôÎ÷eÔ›ªµ¯íê•jôìPÕ}&D¹ÁT<RcDD%ìë¡Ë;Vöjyò†P`9~ç2‘Á3` ð§³€³{êü²¾B}ÈaÅý< C‡³°¦Q¨²§9V%T&A؇ٷú„U?9=*vÁ¼8)©ÈÑUMx¦µ«1LW'>Œ*&· ›6$¾M† ¦û›™œW©eÛwÒ\o‹pçhô´Æ/tyÐˤÈÞm*ˆÌâÉâ˜È–Ë1aLÍËÖ󗻊î5Ÿ¢þÎf@x£* ]IÕ^©P^Y»8â^Á®àUC½ŒÞd`«Wø`áû¡nÖ BÕªH¹óêè|pô¾ M³F7’v3Z.éÑj\R˜Ôh†žÈWâAŒç[áP*”ü÷iñvŒ®›]»‡Gó~ÑEp‘&I%Ûí=øQÿ]ÚQdsmL $¸ýÙ`ÙÞoo×À£'>6 \‘¾ 'ž8¦Ð¡[­¦QÂ=G¡Ù§ëÄ)IÇî'ñðGE¼¥äæ5Ô'‚À‘’LãWÊí2¶²<1É‹ á©ý¤v®5œÕ. wúWuŸÏ5¨ŽÌ”`½ÀÁj9“R"¦§nV`sFØI <€rU7öžßܧ†S’æg¾Ú³wžqšC½ÚîнRdpxXrÛ‘«Ý?ó-ùffp6¨%VšŸ‹¯¡5Wm0ZOPRŽôåòH°dqè3††sjšÔýbܰ5ºéf›ÁRï9™æV*A¬eãnÌ(Ì{](ºOãÁþ€D¶Ñy…»Ó-0ÒÆ ¼¥ÄÓÔ½í&<šB@í‹øÅ)ÿ0Ï=7xÜ6½I ¶&Y?¢Žçõ=&'ì kƒMh_>x‰ ?h@#¡ê1:O+ùä¸û‹îÂW¢Í&Ü—Îi\ä²|çJmæ|Úñ‘êÏ.£ÕØ'ãDwó>jjä¶ÞzÝøÝ+æ¬9ú«}§˜QÑüóÊRÕ·-åæûð§ÌáàH«x‡Û è6#,¶ßÈsŽcãD”ì'Øó´ÄP]³tÁ3¸‘R+0H¼}R ƒ4¼R‡ °`/«ýC-†Bb4çÈ^ŸY¨§È¼R=(3VLšÜ$ª[ýâO‘6·¬‹H; nâH8«’lRŽ«ˆO·î7c»ÚºüÒÛf6g”"/!´Ð>êlINÕ«´ñä€þè½ÆËòÜïLŒy$ŠIižà™s_Ãak¾}ýJ¨só›t€”Æ€ú850²Ð.ÜÓoŠfºÒN°;ÆÇ½Ê“?õg}¾ŒRP|‘ëÝ.ÿ,‰g'=Gd1'Š0f"œ+¬q½Ÿ€¢ø W@ÂâþUù¶EOó‘‹éÕ»¶ÊÚœŽl½¦ˆâI˦BÐâûöWR´^ߊݒkÕa“ÕìúͱÂi i³¼Ì¶LÂVdvÛif«I ÅÚ6Ê‹ñ>Ü\ÏÑ9¦{ÄV±KIé‘DNˆÇ¼÷;‹l1‰AÕw¡<ç3¡*ø㌫!FÒÍÄWµGÔKi>XòÃpb‚²ZŒÚ‡Ü%‰¿Oª*°µa£}3`€ETû‰ñÙç*ë?kɃå[y+D»d5Œƒr#ìÌ(0 %Ï Ö[O‰øFßîî¦`³˜©¤_Q§uâE É4‡|uÐ0­¹O/-kasx †' ˜ÙøÁ¶—â¢3 b€ÀyÍ3ɪuàÕýAñôƒeF2D!ct¸'4mî]n´·ÁÉ 1¾)Z£Ó893î:¾.„ÚƒÍüsÍuº0.Kw ã÷®”Úc{m¥:Yí×@©·Ä=ï æÔß·ýÛ¶Æïت U– NØÊjÅóÞíf"lžˆ?fËoOè¸PÂC’ðš<Ák@‹’•rÃm ÅÃ#6M ü:tÙûØ‘i¥Cuüu“nqŽV~0Î1õ n«¿¯ƒ„Çý©lX•]©âTÅÀ{јgê~>K@dnÒ¥YÜÍ/О„ò@slÎ=wý ’Q(¦”Ñ·ï-œ²Xu­_W­)‡¼SQ)<½™QDXä×”éÞÚ3ÞfW…TÇåô7µIZd†Ñ¯iøe°žè}ªgKêÚ>YPk}0a}Ìü‚å4ïÀ»I¨ŠÔÙé¢ó¾Í}¬75‘°ŠMÎx Þ±Fð&š(&"¥»¸ªÚfùQjÊ$>¶~£-h5€÷e£‹)°ÅR¼€YÈŠ;0MA+vw?‘qÆRÕc«Y:Ñ2ƒ>@ÆŽ$2ì‘à:Oâuá>¸^Õ{ÁvI®ç5C÷ '”ŒÜR„ Œub‚ý{ܨÒKAÒ½·K܇ì»5J£ec¹ö«æoiçÂS?¹²øß ©¿#lºnëH¤Î#Ò² P"~ḧšf©pbzv]âzê²U¤¶Zã¥b kÀÊ•ÛN«¼¬Èî¿•ªå™F¿YpÏÞ…ç’f3ñf³’4ó{þ%í¨$º˜ˆ›ìëo0JF¹³¨×ÆcÙÖ÷Ã@~鎎÷\gº=á±ì™.'ý˜V¹³Í¬¬M.Ø|@Sƒ„µ ’âÂ`¹½æƒ*òý„?”0’Úæãf:£qwã´_[yqºÕ|mÚ½0gdGsê´{ú"𓇛y·Bûz3cg°Ö³¶9\Ô*ÙM[ÀdçKÌopý{(.ó|>;‡Ó7(^²·®W®¤ †´ ê@e½ž•·+;º$Ù­”¨©ÐÅ#­ûSÎôRФÚLåÛ tü=;ÞÃÚMŸ® "¹2CÀy5,ë)iS[pZÉšëNü kæQŒ£DE8éÍœÏl×à9£Y—Ê“Ä'¤ 1î ™aìz^~}ujcšôL‘Bñüà(æ…+þ¸D#¨B9 ¥êJ+0²KZG°Ã÷»Ü)ÓÞD’?«sª,O(¿fë—¦>²ë°«\j¥&{C‘ëQ³6Nƒ¹mLŒTê_„ï9ÒîNkKÅz¦ó73åDÎ/Æþ>Î,SÕgìÉ+™ëòÒ´ÿY5aéʲAkì+âP¤‹]ÛY—h†QS‚`eDÙYH3í50#Ú¤ùÄ,½3ÓõH4G»^üäëÄE·ñŠêšF<óóÝ&&0Ö5ø,\$Eëßâ-HàÜþ°É•¹6cZ»‚xöôå3¯ÀÑ(Ù©óèXsó®=Í@}2},¸Æ«og:Hi®JW¡ävàZSÃÿq¼ ö(¼L…#4øCÒ“”ÁÅÀÍ*ê]}.÷ ·Pw¬ð²­ 꺛!üûïè±Í×£U2ÖljC (vûý»5W®˜ ®Êv¨wo=„Ò.ôebÑçíg㫌çÊ Úwð!ôÛ.Í/ú ìÆ5ôé$X0áýx~†å1̨Y)‹]B8ßü-1,÷- 'ó1ÛÃdIærp–¹Zpc5•bŒÉ¿‹—M>Ê®½¾|¾ˆ¾ü´ûOR ‰TqT­‡Vƒš©ÁðÕSb˜η¢°aFäLú£KÆ’8B²- †f*IsÔ[Õ¼Îmä\1ÍjêsT_ÑÄî`ïeoCãÇŽ5½–éâK[ÌðÝåg¿iÓZ+f[n%jÕb: €Cý[h¿[E5qŽ®Ö%ZTH¯Uø1fÕGÌÐ8î&<)ŠD jÍNc"%Æ•ûx¹É@«áÝ[}ÒŒÉg‰8º’œ¿|áÃ7`‡hNß¶`ºý2CÅiÖÁÂ÷êmnS8ÚIzU?s›™Ä3>¹„Ö¯þ×¢8/«e!=É7A]ð©èеµ¥›e!@•U“p·ÄË÷µŒã:¯ÙÏ»1 Û$èÆ"•¥b->Ý}{’ ¾R®kSۈǣè£îƒ¼ìnSÔ¾¶Þœ3«l/ãm"_ÁZçxd8T<õ¶@ÿf7J޹—YÚM|x©Ù"&¨àݔ1ÑÖcL[™Ü,]‘ÜSŠž3A‡/—ͬìÝòë±gÞOjFÍÂxI¶›ØC ™êš2ìž6ós›¹“v¦oqfM_É0 {žZ óI1á?%Qp  Ëÿr_Têr8¸":9WŽ1k$ £q"‹î|Þܼŗª5 Ù´tŵ€ohÞ F X(½ž~Rx„s‡ŒO³ÐÊ}g1˜·Eºà?T…é†[NxÞïà:,¥¶]÷ëÂÑ\—Š]&èŸÃO§ ‡)eg› DÒ>[ÚM‚4ûŽÕ˜^}ªß?W°cV> ¾+B³ÏöÆÆ3Ù€ é§]KéÌ:¥×íTÿh*¢»×B– ÿƒÈX¥ÿdí Ÿ¯¦†#ÞÌðÁÕo¶& ¿Êê«Ì!w{rv‘äkƮݰñ>–Œ¸¶’†\+®PúéÌ´_^~–S¬Ÿ84Z ÂÏl‰Ž¦yJ$½J¿€-}cU½ hõÕ¢PÝf¥¨Ð‰j(kÔ!4ç‹Y<³tøjÇa‚†yˆ|B‚EkO77Ú,¯“7ô¡ý—žòeÝ1 ƒ¥€}BÆY[cSÙ´ó"7±‘ÐÔ¸þ~æUÃÕô/òoU£¦Ò¯¨GÏf/Æ{Ä¥Æ}ªM¹=A"êŒÄÕ5]ù‹5ËÎÈœ3äªDÏCÄÓ·ŒÔ'þ5#áK矜>¥Êkå±òåˆw'Å`¯Õ7õÔVóà8T63OA0äò¹M$Âä#8V;P.U¶U¦µªc‚º*¦-+•?ʨyÀÉÐPêÆî ±$à ¸Q[:ÓûìÂŒHu+1X tcÚ™ôÖp_‹'Ð(OF¢þ¦Ô¡1DUAzV'm/¨aáÜs.»Ýì¶ Ñš zA$s¨LWºp|kI’ˆ¬«RRÂ匦‹ƒgSƒ§ b¬?”ßrçÒ´ Kê°Jæ7׫ugïšÂ« š>Fñ=\g±p™<ÆCêèY |Ž G8icª’ÔOWÌËR*ìÆä|’Àþ²8Ù;u6ôÏÇzn€yFˆ$Ñ%:ÐýT6HZü„ŽV÷aZù¥ø0£‘˜ðð%Þ“ÙÃ"r»K–Úð@\·¬ÛñöjËcgkg–‘ÀV  ‚Ø·}ñfZ,RÀÎDÍþ¸Æ?I¤³¤^»‘Ö·N03oãYŸD@Šïx^1ÿÑw§Á±ÒÖ®€N¸Fd†²_~µ¡5œ7ƒüv¸^‚ÃþkŠYKuýùÒ²OÇé¾ÕÏ]—“Ü2¥·û¾°§“HyJ3T<=Èô pû‘:RH®j÷1ù´Qã9Ê Œ[ÓmL}<…6`êÚg –7 C3Ûš ä>Ý@…„tÏolXíýõ!{U§ M›ÍSMäòN sÅåØM'[¿{2–ÂvÜX¯?y÷]zán ÓÛ‡Äï¡!º¹c-”«žœ!\éÍå¹ÑÍó³æW­VP Šñ0õx`WÃÑnó$%¤×eóïè(MY[a ¿ º(ããë鱄ÓF©¸mÚ¼•¯+O<"Ý÷¹|Y¤ SÝ{ìïïÎä!¦²ßCd²ÊªÐðˆÄÝj.3±uDK§\:¶Á_KÅePgÇëjôô ßâÜÒHÅSfB!Ôô«SéòipÌÖiŽTî×Ð3 !a7º^ïQ¬MÕi ÀG?âï¢úó~<ã¡=j£qÝG{P¤s9ôÆüœ».öò=H³lô•#@É_¸öóÆ-*}Z%qwqütX‹?èbk=Ì}N ÂÚä+¼Ô®Xµ¨ËGG'"AÈØDÔž¹É„d¹« ŵîö7VŸò" Óc鬼̧Œa³¡àþ]ÍpØjYQíÝ}„RØzäÙÕYCžìM.î[`DzÞË;I0Ùâr\€€²Ï(€˜+Ÿß³¦7båŸê·‚†|ÈCª/ýê·ç)zÜ0ñï>}­P ¥©qÏf#KL_»ñ1¸|¾}-ùŠ_‚ÙͼÊ*±ÜìAvôN9]LàÐþÍC!ê“åÓþ9I#´yØô„0Apÿ–Úå×k¨Œ_Þ·nÁáîN+WØg5Àý¥ƒüE< ç5GÈÁá£ëæ°¶ÓCÜ”pø‹ìg/ß5z=T§ÓÅ\‹GBþd<ò ÍIÇ$ü૵_}»øš­ÝÕ³"lå\p¥³q«ñÓk{y™|ÁÑ<¤Í?Õ±·3÷û–6¸ÏÔíº¯ÇsÊ‘äE´VXŸHqàOÄb¾HŽŸdErùqðÆ’‰ðÙ‡½8ð+ùî¯ÃW"C‰æ*¨/XAУÁdjì’ûRS>DÔ•òÑ;Oáó”¦FˆÞmHm]?8…q¿µêŠî@¹Úùk?\<œÇ-±"úÉ¢¦”%¯Ïé¤Ù$™ýóg]ègRLjßóCøØÇφ¬5zjHz_—,1;Ì£­i}­Æ%‚LJ¹(‰¬Úª‹‹gýx4t î\”u p†¿éáµöLÀ Hí ƒ©·NÔEª16ÞG—¬JŽÏ[u\¨ËSàÞG È@¦Ñä†fCA¿p<“ .d5^xÌ€>âFèÎ’§mý5†I¦ Ÿ……™ ]>SGЂ ™õsQº$QŒâcn”ò÷ÎÁ¤âã„_ å6ÆQô×ÜŒö¾³ uÊá|SqòI€ø9î¤n…"|¡’:1>¸¥ÆÐ“ìÌíÁQvœ)ø¼lè…¡iy~û [ÞœŸä/֗ꀔRÖÉZ¶RO,o8´ŒžO,v‡=qº*Vâá'Œ a¥(=ŠÂÛïòîë­ÎÀ=Ã,„Á©ÉdÓ•òܨ@H6±);¸K<+½ˆr-WC3@ÔÜL‹ŠÄ¯ˆ„mON)ˆ&¡cPëÒÌ–{F<?â¤+œè×\…ÓêàµÅyîõV‰®+9º³g°éBš Ñ?FÍ· —`c^ßéûB7àêqk!ý*ëh'Z‘nÈ~P¶ˆ[%¥7×Èk: 8pÞÍÀ'Ò†xznQ,v<þéÓ‡z@ûyýWR ÑüÁÿŠìÁJØhʈ¤¬>®xúùR­P$¸õІZ1eW…ô[üXæe™@Åg€0O=ëž©è7Ü­Œ .j…/É `²ŠÀøü°lß´#°É¾zéR³| nhúóÚŸèXÏö§zhÉ…%ÝN)Có½L~wÞÇÀ`Úö!ÄYîÆÚÆÀ¤¤$…õƒ™U–™Ã{iäøyˆbÒï’g–©˜ÀB柷úM) U¡ê«‡4£(Ò-×åyOœ59TÝÉRÞ'ÞuÄìá/M¿æK“M¯¾EtùÑZ0òG`ݛ͢RÚ(ÎᘉÊYÔÏḎ{-#2Æ][\3úJð½ÂÓcsôž©¿ïq¬„MkL4õ_Àêñ¦Ü°¼×{•SL†¥=vTI\ñ·—;AîM3ÖŠq¶@µ2ƒC‡UèojR}ôèå$?^¶‰)sh+Eû¢ reÞÖ¯d™0ñ]i¿“†”?ñÌÿ|ø½§J¾ïô›*ÆWìûXÈm¥õ@»! em÷W&ÄÏ”Ñîâ+àáÝ.äåqm¹ËæÖÒ½—âÊáäSÈWï!!†*º ®çL:¢³éÇzlÐ×@ Pºm(‚Ýö>¯6ë7t“þVv‘2   ý!OEÙ¨‡¨‚BqxFn¿š% «#y”‘E!Vº=Kåî]ªœ¶©)7Œ%ð³û†ZJa)BDè¨EÜ»É9)ÈZý¦è×õZA!ó«â‡ûR´¢ }µ#„ÎN)š-0™üsÏíÈB(³L6vËñz‘›É i|ÀGr_\âŠþgãñvÄoÅÌú"µòÌû/ñ¿[#•# ¸zÌ1wðŸé×J„qÉq2ç‡hÚˆ¿ööõÛ,fã¾ð³O"°þpvk,Ÿ¾@ªZòú2Ý£D2mDô¹âû’Lw{÷XÁóoKͽgéþÌ}eŽ‚ƒ7rþDò03qÔÓ2³mVƒH¿9g)—GEFçĩnú§›ý¢ç×ëgZã ?Àî~éÉ·ÃeÃù‰i¼69F)®6Àʯ۳& CuQV0t©m¹ ¸ÌtoÜûy¢öö·Ã‡ :Ýäç²ÔÿXzS¼/²Šux<¼Êªæ+ÁaõIŸ¶³ßÕöC8tR4¿½™ÃnÌÁ”zå½Iáþ—BùýõïùFÇL›³¯²ê¢SPàˆL×^ö o|Dañ`,QÜè7oÒXÒçÜpÇAéøŸàeQ ÑÌå[·2ìX®©ë/ÞÓÀÂÚlr0V&êÁ¬ÌÍ–Tµ‡:ó’« BÏr™ ü.ð¢rcª}Cë»\ÉÇXM!À¨0=â9 ÂÑÆq <[~qšÊ´Z±Z i} N,l«ðTis/ꀇvK¹½K&”B⊖MÌk)Úȼ8M"àñ2‡œsr=Žþ’‘ðÞ@x{šI(=ZxûÅéZŒíjþœÅ¨:¾~9æc\³Ð½_“€ÅUvT`§t4Ë[ì]Ç´*hðí¸Î¼bø(-ÌͲ,_Ž•&zÝ\ö¨?²%¤öŠƒæKÚÄù…]wÆ¥rG'Çì×}½*FÁò`˜ÞîF9–´„i†—‹V’ׯ»²VSÑ3©:ëGô9®a…GjŽÅ«Îåxeç¦ô™Ÿ{!-Ü>›‘·°ñG„ûq„½œ Þ•jß}Ã懖XØñ#iZs2^^ù²xs†_˜²8Yâ8O­w‡™ ÆúÔUPê\D"eûÿ笻Í|O!º¡ |ci±.% szP'„¸\øD°G«³Ÿ”$mÑ–:ˆèç(#­Òå°QOÉýw™öy%æR®}%Æ:î›*‚Øw^<†$³]¹³5÷QtK<Ÿ*Ã<â÷øh<šöýÎrŒñ?”~îFk×Úã@bñeÃ2†KL_7!oˆ~:ß“¾Xüß¶”Ä–u5tÈ2cÞ[‡"BØnÏ®œ3Vs¸ÒdÞXÿ¥¬÷§‡)âGož ÑMídÏçÞc—Y¡†€¾'dxVy2mf¸ÆrsåFØÛ~>ém‚:Öí—pa_8س^’_~¶Âƒ³!”VN\nY¹0W…îàŸS–릠zÞדaÐ!Ì]ÚÜ|wW Ä%‘´w‡ùÐRéž_^ú¥Ã*V(µŒ*c)‰§ÀO92¦:›»ŽÏVäÀtTž÷‹Dª¨š·²Š–~cºc2ÀbO>”Áca12çu´U²=àäÓI¦Îó|Ó§ÃóëbœßèoMã%Ð^pü–à1ê_3Ï3G®,CâE¶Ž}N*ü*e™-–ø¡Ýöƒl¯“iÁ JÑ{("¿Ü}ìÞ`Ô$!›Ât·¶–qQP!_#â”>GqŸ,i,«–éƒ(²eØ·öóiwè2Ö[/ÏÓâÚ.úâƒoÙtÅ[ dq …—ÖvÇýQQë±q^np4r‘[(¬)É=㣠ʔ²ù RJåLK¦æŽw½Yy|¦Ï›<£BnX¡*ŽàVR±-M,¯Ö;+B±'“͈ =:8v(T[,– ¬6æM·Á(î±t»ØpõÊÑA Y~J‚Ùè5ιDUçØù–3:{øN¿Xù&s’ à:d‹o'iØ(~˜ZoÜÌ{uã·0†¸g_E¤’*¯ˆZŽìÃÞ]Ä]mX@Ê•.·ˆbBfHòÍïthIr¿–E÷ ¢;óÎë)uÐrtŸU§Â™ëFMth]úî¨ïGШ³‘Ẉ°®N®ÕkpSŠÍ2¨¾eû'üŽ/dg¨çA4u‡éŽm'çìSA'Šâ\Ï*ÊW£;|ý@(n&zÌÍrôœxhO†Ž&AÆ…–/eå ØÔüj“›3$¨àÑJùIÒØ-èLˆ€ÔÚ‡ÀuGñº5AòÇð„9Ð+j»©e ~º½"Ìö¤ ZõWOÓÿešé%©¹¸Èû`äÒŽ_¡SRšS"!÷þØpJÑ+ÛSÝUVrv!$ès8Z {ÛþÓÐoâ¡áæ’))xnJfRâTgdÏ*&Ù£s§ú.–xî.,=ùX 5Bmápºù ·kåDL¥Ik£míÉël6°®ƒ#ßnñÍþTŠ:´n3ú‰ßÊw1_aa\0°!–¾þÞ7Ãc`¾…ÏSôëõ4ì¹ÇŽ0›ÈlÝÑÞuœ‡ÛûKÁ ßcw6Ê^X.yà0Ëá=[3'p4L;nž— „·YvlèÓ‡$+ðÃ\m¬O[fÂñSy¬²ú¦xuÚTP2L6©£†¤Ê'_íž§Aز ÷@eÆÂ™cMûJÈ©ªA©—Ö# ]›×PTwl)´a•ïŸì žéÔo `gÄèÖ­¤¸k”ÐVGxvµ(I+*ªìZ› ·‹&îCše[¤BgÝwD­“šƒO -¶@$lé«ì­© {ظ˖;ôO/¶Ë{ÅPÌ’¥ÌÏÁ.Ô7zðÉÍð¹Å›?¦#ÎvË/™!å®Ð5Þm 1X’aw÷u¸](äBUñc×Þên'¾ý×bh—£ümd øÓfÅLâvíZéøLUÙZ=v8îÞ  VÎ:å©?>Eû )0'†ùðt@5½—Máþ`-\/yW6k K6VIűò‰4Üß&‰ý©”C®Àíò:ÜÈX¨lòË‹f¬þ1­?u[LãÔpñØ©­g54Ä !ŽDðXzÇ$“–C…8ÐuBHÞŽi]][Þ÷!`|®CÔæ1™?OFÎkD D„(z¥H•bÿÌÅ·¡[ã;]Bº¸Û09ß^Cüv³ÞøBwÈÀ$g¨b»|±)gB+¸ð…®žYA/C ÇD ´aV„e|åJˆG¡5ËÕÉíÓQ$ÄÍ¿sØ_ƒšôÍìEç|~Cyr1‡º9uë †yÎ&ñâ *«Qü¡x’rÉ–¤{rGÄ|Ô´v²èuƒíëQ1èî,@øy—…׺! 9ÊÃ7–'^¥«y»Ž¸i«‰3% X¬Cm›¡0•# ò‹hànœ^§ëxiD,¦8gN6#©sÎår#å8ªåmüŒ‚€š²ßN&bCÅ8Ÿw²#Mà@«íã¿ÉÃT$$X¾â` Ýà9^„FGn¡Êš¨ëyÜA/]ž·ˆG¦—Îs¦ÓXcÛ8ŒXï¼T Î_¤[Æ]3¸ZäÒ,[E„ÒõC=ð#pƒî(Gò¶îµ%¹“©¶ýà*YÙîFó3b»¨ÕÍ ÆÛŠÚÂ!^Ÿgš.ÂBöÑ€¸ƒ‡…ßû>ê™<ò¶¤´9 Ûo2Ç Žu7ˆßZååç 8?„xÙ&AQïmÔ¦Þ}âxÒ®ÔWCãðÔy­>:î[b*‡—:šÚÀ X0P´*š]’Ú´9­£is!|‘ÄhmL”#ƒŒ4ü&“[ °9ZÙÍl$%UŽ+ë=¿Æ°’¶ æ&œ<ûeã2²,(Nò4 JyMìU¥¡Ÿô+¬ˆ±/ù¨Ú¦UqÖsNÜÕN”óEØe± ~·Ú?ý´bš$Ç çA Z[,&co±8b_öŠŽâHh`?M½ qŒ¬·!ö{W÷±züèÒ KZKŒ¢<ýð[¬Ûˆ´Á¬b„Àt_,‹ÀJÄüé9Ãê´çú7Þ¡€XÐjJP Þ\ìN6Wl¨.ó-Cž«3hUIŠ”=¶Îè@½wÍþœø°1!©ã†UÒ·ð79àQ9U &)ˆU–xi$c Ýávyù-k ‚?M³v©ž´Õíb+›.³QyŸOK 'ý=£?«ì(¿´sÜ aȧLÂ-]N ø›0ù.Ÿy3[èCÔ‚]™¦<ÎâDècB@ÑG õ®žíBŠV*ô²ÀvûY¤ÐVJÐó[¹‹•ÞÓv’¦Ò´tj´oÜR%Àqu²“Å~N¦‚—b´Ò¦õ(fÓ6Ñ•ƒ}ŽõHœ[ëÁÖ ƒeh Á)@-AìʯԚ+Æ›4Ú]Xôò ˆÃhu‘›Ð{§æÚyx'Þ“\Á]mY@ E!#˜õô–olŠ °³pÐ `* Pš^Ú!ëXIuDû‰4ȨèÙ'ìÓµà•¼?gµ²z0Öî,0†=HÍ ©É”Â?ÈPeåfŒÑ—]rnd,Ï>‘,"ãΗӚSÅåé…þ­¡Àûl×WÖãçÖC34õBlj¿Â‡ai“#̶Ð)£Ù9Jêóé—Ot.Àÿ º…0¼j,‘ý7ô–û£g¥0ïPÞ{Ár o§›†_-tÔôÌÓqãbñ Ñ6U@ÇO1gGV¦|jÓâÆ2ÆáÁZ¨k‡U~µ2•ÑZ³‹êc¶n›€Gª¼]žô4ÂŽÚ 2H‹Ãr@kw•'oÔYþ¤­O@Ùs@”\xÑ—”ÿZ'*ºNŽyFñV"ÛV.>:EW§}M|·/†Ä.Ö^LŸ>H¥Êqέã-üy¸ñ©¼H€ÌMêã8Í~ o¢1™Cüdw›#JǸ²ô>Æ×þ;æ%N/Ç‘¿¤›ü…RDÓÍ&ËÖ°Ô Ä¶y€aÎjëU5„8ûĆ7ÑD N!¦µ6›µÀÖŸ¤Á„}-z¤Tlf›Á"ÁDLæÈ\ø5ä…:ü´FhASZ:¡²ò6­m¾ä£O1ÞRÔ÷.•FuƒË«Í‚818¡æÒßVà4ÂÍOŒ8Až–€>)›@_ªÐ‹\âžáЪt×2<)¡ù+”¾½“INmŠPaó™š%áƒ:÷É/O³@fÏKšjIŸ»ÇÒþŠèØ?ëÖX˜À"M<ˆ¨¹M"»$ƒP™%fìÂÏ_0Ð*Á?];~%eséU}nó£Vl\®*EðÿÖ-Švå…@")Çsäªrð®Kkýàe7èíÙ8ñ£5>å·™hsã!)–Š4´éÍqOiî¢qc¶ 䇻ù–Vj…J Ìº¬³_(WbQÙ´U ²CÀ¥å¼î÷§¦ëCÀh«:â&"'<™<:Èï~Iïþ€vܽ”’ «Ÿ‘€"­‡¶u›ÕùCJ‘Òÿ«W§5‡€2VhNÚ¤ç4,òevT=©~¥RŸáüÖ¼ï‰y®‡›·˜Eÿ\~czËz~ijW\íäÔ®Q ?©DGgù&oILdï“3åG;°ßÿ\6ìL‘kmÑzƒí9?}°-yF ‰ý05+F¶ûm§P¶iêqÖX¿Ð‘k÷mÕšîCj>¿?Ž<5h8Y´Ä• ^{Î3 ëÖÔøƒ%f™S0gT-ÔE‡øˆ@zãÕ›RUŽ=ãÐ â¾­›°ôämÖ¥±ò á­te³Ùì¨üå }m¯v«Š*”§ŒSÝ®†ò x(Ä¿2¤ÙæêBòâèŽ á%ù¬ÄM#!Ûû/•¤Àyê0ΨôÂòHs/eÆÅá]„£ Þ|â=ö3@ç}hóccÆiFcO’m­²|´öDu"êäUz<|l`•Yžmÿ˜I,±(ëÊÒšze Rvü_êÓZ$»võ͉’Û”YtÕã/ÁX-!)Lçµ+Á6 ΀¦? Ÿüæ\£ì/%£{ô_N!Ú”s»JøÀjü ™Ý}¼ø”Å) ¸ê¤å³ûN¨£8Ä÷³ö¯«Z…‹9½pcª’kÞÂ$ ùÚßpåÿLÅtÅäeJùšbW+6!ÞÃ{ô ýã¼´ ýñ&ëKk‹®l¬~@ÛÜ~hW*kšQxÜ7þñ‚upF§ð ÈdÆÙ5@‘É/ÊÓ=bÎbó? Y&?àBÉ;ª³’\ÛCg4~zxjHº³U[­Ï+˜Ë3“óÝh$¤@"¦D8?ë.öo¯/mâ¡ÜÚL»éØC¢ÀX,,3ã¬,3ŠUHt3Â'©~! ,Wé±ðH›ÞÁ’–)PdƵÓ>÷u4TH)Pa¼U¹5»H¨ÀË€¨e±‘ˆC¥Ä2¤ ¹m4Ñ>‘¿P0ˆŸ OÓÏØ¾š !\Ju#TÏU0,ŸD±Ä¬~5Å|èÕ6¯ze+ÏÔÅ`~çÒv·ýËërÁmà>’2kÇG‘/žÂr}>Ò݉ìÙu¼Â»4Ò:>‚€„fˆ/¹½šÐÓÄ Î>ž‘»½FnÙ{éïû gʨÍVãkFÆLù*ÍT¿¶ÛQæÑåy ¾âYær_EãXß­†S­„š&“má‘`v¼šÏ;î!ënºpø1µ‰Už¤æd¤C…ßÊá€ÇVÉjBŒûfÃɼƒ+yZCE|tÂ1lùtiåSž—0Íoº:ãXç S;Jšaµ§ý6â}k8ˆm×(&  Ú˼wˆ‘Áþ»²oˆ¹¹Þ EcÄzuÊQ¨+6:û÷BœqïKž…PJ£úW£H1ÛŠXs±/èT¾Dè-ÉÛ„Å8Óø ”ÓRï“Ñ ï¢øN(gHëTø<³¶ÇªÁ7:EOQJbÄj¥•úN»o Q4)Þ3¥_Øi9<#cäKXy˜ÜV¿³3vö^§L°© b<+äxŠE!+®ãü±L—Eµþ;…8SÕåBf‡Éoó*¬Ù'ThLdr–¶D[ö;|33ˆËd[áPÕ&º/Møµ«Ý<³ÜB%—Gºe¢y-ÏR^§ñ´w@àŠªVº@POÌ~P’›þ)¢K4¶#lŸ‰šùøŸø¬›þR? *´¹4Ñã!Z7óî…©¬¥ÅZ’Oú4#ܘYzaBÏ´@Š-Í•ÿp XfÎ÷•ò ™íɽ¯×ûòi²»¶P­¢u|i]s†¸E’š¸¬¨ÊôÙ”Yl­¦0t½"Gyy`\ïÙ§-@¡¬¥_Þvs‘¿¼˜k½m¿þe‡Z×ÇÅhxÖM‹×M×ˆÞ ò4´ü…p6¢ñ|Õ¯} ÙuÂw½ŸËÉÇ=N7èÚ©\@µ2}“°×^ÖOpm„öγ1úO%þÏDþg£&¦B™o «tsbV‘X”\ˆ€3¶É'ÇÏ•ÿÌ´£å;6Sæ¨(,_c;à‹Ë!ò—L¼©m3¾æ_ÎHJà’¯i`ùÖÚGH(¿5½Ëê ú‘Âö£OÉáP(­9ö6ÊøZs­u æäf0¡ÓÍ. \ríÅî“…Ÿ¡l‡Â[¡nƒŸ¤C´*»„[«@ÄK•7ÒÇpÄB‘“eµ-*ÀÝ‚L|*߸˜É¯gÓBLKo¿¼æÙØzƒY÷¨-«·þYU¿æi0ZFGú|¡€ÀôI‚àdNÿ‚j¨Í׆öÚ@ÅšàžÒª7Ãòüš’TPªÏ ÄÌ%¤7_ Ƨ&WÉÕ=Å„ªøüghÏ$/ œÀ/íß½Õ±•r쬛ô  ÛtÃt|Œ¦¤hô¤{¼Â*S¿âλ„ êP‹‚»ÈÍ º§xgk<ÏÚ´#²: êòÝ`B ¤·b¨Ä5·•Û~Ó0¶+¥éÄòêÕG4ïÐqÀ¤¢CŒ$EÕÍljq9¤zHKª endstream endobj 116 0 obj << /Length1 1477 /Length2 7695 /Length3 0 /Length 8682 /Filter /FlateDecode >> stream xÚ·PÜ6. 4Ò ²€ ÝÝ-Ý-µ° ,± Ë"K‰Ò Ò" -!%ÝRÒÝÝ©(Rú¾ï¯þÿ™ï›Ù½Ï9Ï9÷œ{Ÿsg–‰^[S³+Á N^.1€¼†ž:/€‡‡Ÿ‹‡‡›‰I‚pÿcÇf2ÃÝ 0¨Ø0äá` âÞ¦DÜ5`P€ª»€—À+$Æ+,ÆÃàãáý‡ƒ‹€/! €@»a3ÉÃ\<á;{Äý>ÿ,,6¬^QQaŽ?áYg0b„4€{°óýŽ6@'€ÌFxþW  {ÂEŒ›ÛÃà èìÆƒÛI±r< {€.Ø  ~· Ð:ƒÿn ›  oqûË¡³Exá`À½Á b†ºÝ‡¸CA`8à~w€žŠ:@Ë ý‹¬þð÷áx¹xÿ•îïè߉ Ð?Á@˜³ ê Úl!N`€–’:‰à¡ ßD “ì>øqZßþ”(Éê€÷þÝŸ› â‚pãrƒ8ýî‘ûwšûcV„‚äaÎÎ`( ûw} 8ØæþÜ=¹ÿ¾\G(Ìêý²…@A¶¿Û¹»p@!®î`…¿9÷&ìÛìÀ€ °¨ì #mì¹o ïéþãäým¾ïÁ×Ûæ°½oì ±ßÿ`{»_‚¸;Ø×û?ÿ°yy ˆ ` ¶ƒ@±ÿýÞ ¶ý ßß?‚¼à¹—/€ç÷ç_+ó{…`P'ÏÓÿ\1·’±©¼‰)ûß-ÿË)'C¼9…øœ|‚<^^>~€ðýÂ÷¿óh!×ñ±*P[@ô¯rïÏ韒_þ­–¿„ðß¹4a÷ÊXþ-t3A›û/Þÿg¹ÿ ùÿSùï,ÿW¡ÿoEJîNNü,þ?~ 3ÄÉóoƽrÝ÷S »ŸèÿRÀ®qwþ_¯ x? ²P»{EsŠr ýe†¸)A`6acÿ—hþ²ü7'¬ sƒü~`œ¼<<ÿ㻟1ÇûGÄí^™\àûúïm¡60ÐïYãáp 'öýUß#A€7ïýP‚ÀÈ?ZpsAaˆûÀ}‹¾[û÷½ ¸Õ~›þBÂn!~·Þ¿Ñ=Óà_ˆ—çBþ ïuÇ ýxïuû(àFüÿU¼;~?ÈDvßÙ?øÏ«#Á6سS0ñ@‡ªÀ¦Ÿe©=87‡ùðzοam(R¾ÜÖñ——¸<çÏ‹˜‘m›ØŠ¸\!ÚçûpWçhLÆãh±ì“!F6[ÓôÈÖzÃg„Hò×¾›º;ß–Zk«©?dGv\¯ÛçñMfœ•œÃõts2c÷¹s}ù2ûcŒgµ\¸¨ÃQ""ü¸¨Í²Íår•²ã-*OÝÎd†ãi•v/S»ø×zæŠ9P «©Ô{{x.jß2ö¤Rv:„¨Ô¬FãLŠW±,þßšß°X» êI3ŠgªlŒœ)Ÿe×ÜÆ„\ªsàÔˆ>³€N}6ÖR#iãßÐè~«áqüƒ´WY ÁY×jò!¦Ö…Ic¤Ì¢˜Ãnè9¼͇ÿ Îqc—4¹©A@ï3#ÿÚ±ùRíá±aY²äpî)n*4¼ BÞ™ ‰²/Efû Ð^Xlù…' ¹ò©È ­¥9í]»S˜!¦¤–ê=-^j¡fmb0!?êS›H¥žo¶¬ÊAôípýàÉé^ÏÚjóV\Îål;ð¨YQM#:C(¨«çÕg˺QøT‚;ÌÕ‰»G¶ Reý±åÝʼƒî]þÞ‡õ°»™X‡‰û«Ž JÝ:;d´ûÏ£ÖÂõsà »C°l®íf¾\GF®Öâmuáð4]mŠ7Nüû:%Ö~2c.x‚o„]òAoÄô>¹eùú‰IÜÀeÇŽ©XUè~ƣɔ9V¥¥`÷¾[}¸L_—Õ|-…ºðã×sP$9SÑö¹¯þw©ÍêzŒþÐÉþ…ù%Üm}Õ3^ÄËtï²ín6ŒsiÚ(±q¯Åò»'7 jï Ïn²q¥Èk3¸tzÆwp€å,òü-þªÄå)é‹EÖŽ ¦ôœtîñäè]û½í–"M€)K˜uò(!Ú#2$öèà£üޱµUgQŠcRÌ6ÖjM4ߣ“»…`©ÆEjÑ«˜,,MD,¶‚Zð]ºj ÕÆ›¬MÝ;çW™^J$82Ÿzï,fÓ,ãeç¶šŠT©"B4)d9WÃ$ù®,(šM<…¬³4U{d°õC-„nôrDrÞD‘ÅèG”Œ`I¹¹DbsÆïÄŠœg»‘…_LK÷’Gv)šÇxhÞ8ô¸Õq¿ox8y„s‰½‘­@“Å!m«Ë¿<´U((ÈÄd‡1õ_÷‡–Ñ‹„¥~’î[4Mdž°§Â'õ3g@“‰½©J™GÚhï÷C?(ÍAk³(Ìâ&¢Ú:Ê»Mkƒ˜¸K‚·,Š {¡©tu­ë‘Ÿ@ùà¹À‚“YFX»JÈQXÚÖ[œœ¼bÔ'­ZÛÒÙ8KlcÓ_Wè^ÛŠs‰­ø«¥·\ÞVËÙ¤§‹á.žR6D o¯MŒ­úM8Ïü$vªñÅo^»³ŽtÔÔ7ùA –KŹ®»Âß:aà»n9–z€Ô:x6;w Äa\ÓW}†ªÕ‹òùè'ÚFi‘Dz⋩ÎôüqªjMž!ØoÌñ9÷~Yí´þ Ç q}ïÜi’D ²‹NœJ\[¨»Å¤÷‹=0JAm[‹EZ°t<—®s³üø}8¬&¦T ¨‹ñ€áX’}gb7+§%ÿùÐS¾[œ7^†3M„õÇ;­Òjrüum¤ÜwÏnqžýˆyº¬wÂëüÝ}ü%* Ü®Ïeù„¨(»û¬H$ÙRn£ÏŒJ0òÒ,´Ðó«áÀ9Ñææý¢1^Fbt¦:üŠÕ ×½ñ‹Dõ½ç¶ð æ#ö·û´yŸiÆ«‰OmʉۯKÂT,Bþº¡(ˆÕ*ñÚ>±•Î <÷s`¡˜XS}ô²·QßGÕ¼¦©Úh\(þrPø“é:²úQ(u“¯N7¡›šGõÛä+7`¤åÖΉÆóHY$ ýé1E¿zªuG·¬ö5±á G—ò]¼DkúC7è ^š©5×éé3oôC“h+SºsV!²ŽY¨ååØWÖÎg£~Uñ^¢#ŽiW£fW£”ü&ïKpèGðTÑ$ß Ü¶aXpÊpÏ¥y¶Ø& †K{r©“OÌ'h¦‡‹²£Vºcb‰›G³ö§åœVÓœ£G^F‡–å/ÌI´FžÔ-HÜ¡½ª$C-‰¢VÊ'8 çG½ ÷(¥biä„ó>ž+µ®|fóã2aúÈCk|rÁ1~Úí->]<:f V ks¡ÉhÅÕð/eÏÓ-",Ù×DKBc‹3öC3ù »½ñ=çÅ"Ë6)ûõÙ­M~‚Z©¹yuk?Y—saÛN-Š ©¾TRN"Y ãc¹Ê奫ĸ½&œbî™Çm 1‡7çUôúÒzÈÞÃ=N<ì|9S 5S\7Ó>µOß\Ÿ’¢¦ PÏH4jÕ¸|5ˆÂ›L ³^/¼Üu›f½OOâÅ÷ÁV9qÒïåz¬ëܵ`ž0äÝ­PBiÆÊ望ñ¾ç$2Ý óófkt #IXaËCŸä>ÝÌ l±œm¨a™¥›L™Ç¦–­-®^%’¡6>]Ÿ¹ÉVÕÇ£Ýñ~v²`õ%Å&÷™6Ž9•Ìg}š¨`äC‚5å7kSI.„ÃЋm¤ö é*,Ëоì7[§Ï,ïÝèXF´Qÿ3€õ{µL˜$R³S”ž)™’óË"àŽ*‘y%â#í¯3‹¤<²êKx¢Ñ{(mÔ“`“úbwπ¼M h—¦Y )/𳄊˹ξä²Þƒ—u¤[ÁNå1Ž®yÂ^Þ z˜%¶v»R$-ß©súsN"€ÝðµõŠ…7Cég½è3½ìœå´¹¶á©Ó4›ºÚãÚntx$+˜`ºÁ0}÷R‚¥1PÆG4!ot9%”i Þ†VÝ5nÑ ì¢íµ›")ߤlhÂ2éb³:XúÚZŸüôg߈(nŬýødS ãËÊVá²Ãƒ‹¬­@!v‡¦ªúi…¢þ›¤¡Ÿ§¯ªdGWi¢Mzü6iç ,ƒtÌ•MMYg†ÚNúÆÓøjV|´;¡ç=€¨­Þ„ á|.‡ì¢|¹-¿rû@x2òÕk«$oJ@ö)‰d i¡gó^¹h)—gr—yòëa ÛÂ鱊±ÃŠ Ý´6×eë~›ë@ÊÚÂ…@r>ê¼VÏbËêà ÃëjíY¿þ—çïW|)K([Eº´Å¤ÁÑ+Ú’ç»q%Èp¦í`ÄùdBäF¿{\ñ´Ð¶àÙ,vË‹ŒƒS`Ý~KIª„ø•u!xë$ñ0"|6â”ÌÄGÕW×Õ“"bÃÝ»ÉãÀpö ©¤ÞKuÂêhçf·[‰‰·3ÄDkwÅw»ŸGuz®(Ê!Ì¡®L•·éd«9Ks„þÎtS.9mn–ÿíEÎÜÿÇÅ5€ŠQ–P2&§€!ô0%ïT ŽíZÚÑv„¯]éñXWrÓ, Äã}_ú¡ßâl-~t´-kh<_4Ø@Ì(Z'.½ÝÂ,\íÉ7#ûü¥CÂÆo{0Ü­¥?,ð(°¯åÑnKÒÕ€^½æuëcûq! D¦ÒµUú#õ&†­’ª½ÅsÅ\AÊ|N…@º,ý•Tíeæª6ÿòt¬¡»k?æžÕ“Eá©+Yp·.Ó Ô6I:VÚD8W¾dE±lƒae"¤H 1ÕX»Á™=FÜPãV¶pñ:Ä!Çþõcegqÿ’ëk € 5éDJÆ¥1;'¢ØÞ¶…ø¼‰&îµñ%7VcîJ€ýË›-ŸÂ˜”x*®ªœ”®Ý·;ÞN&î`¬/UÜò¢o`â%àÝa>÷od@#5LE(‹Ä¨2‰~…ɳҗ[…/šüÛN7½œËñ@™rÐ/U¯ý„U4†ö'Òó$âÛüOÜH„dgÝS¤,Aâöu+||f'(Þº×nûóÅ5¥MýŒçÞ s¼>j?û3¼Û.j1‰•—H‘»½6|à‰ÃóºG-CyÁlã$øåþñ~§u¹(: •`Xðäøo=æ}é*~Ž:"^3"+rjV"ÛŹñ$õ!ªIÊ’ãÖCd±Âô#ê6Yb6SFïIØs-ïG¥øÏÇ*z,¢"­sÔôžOŒ÷ár¾ŠèæÕôª°Ñ®³åôA4¾“ëBÿ0$÷Ncäq 9ËVoË00Â+"rÑ‹f{jV uàMË›h͂٠Š`«b.6ºÜÓžòÄD†·IèñYLxÊ,w^ƒ¶ÀÔwîç™Ã¤CÈo=TÅÍt'¯àLÏ~¹n±Z7­)ªw…l‡~K"úÕ'0<„ûœ®QÑ)ï§mé›*Yføfr XÏkùáÈô8e~Mf|[Ešúã΃ì*»·g1—Й°¢y<ÒˆN9 µ™!.BÅŸ1æÀ Õú!t=Eq·Ÿ²ýlƒYF}9à¤¿Š½]TË™ŸìÀµMæ{^î sœËZ=?Ù{ú²C‚2µê_F{“ÞŸ¨ÉçÛ+xýq Ó¥*ox(êÁÅ™²¢àÅÆ21#½É9Sÿ 7­YÆXŒ§ÃÊ^Üâ,bëÆÈôû?£ÉÏÈ‹×_}âÆ…ò†^ætJ•ÇäÏÆ8XW¹Ò9Ê>°åó˜Æn@Ô^Ǿà ¿9ñH ß—ô3=¦î\p–Q1¹ÊàÕÍñiÏ¢ßÿ„Ú  ÌT?ºáÌøe~6õ0O­&výðP…‘|]rì[ä‚äYTÅ,ø³Úî/ž¬)&†›ü´ ®ŠJLt²øÌ«ë¾?Í;ÒŸR(àãFzúö“ Æê×äL'î#¿ZvÓQñwŠ8Ã`[¾IÎwÉßøýa•y~ÉðR!Ç%dà]Å|󊧗µÆÉ´'é:î×ÎŒoPÁÇ™*(¡7†ÉÈ$f‰²s¬c 8{6;Žyç¶~ºLÒ5sv$Äü3Ç%KÃz~­¹Töç&×r¾\ÜW*ô峜n=¬DÕCiƒMÛñ“jÑ>ùæ¼*õÐÛölï¹ÙÇ}…¼¯K!x2SŽ!·¶ÇÚ½fc—ûqåçr>0rÑÔ ª#΋𣖠a‰`<™dW Õ/ ˆDlÜõùË´‹õ=§c3°‘“ˆ´¡Tzî'Ç®c"–MïDVJ¹b"êuüMµÌ³Þ–É%Ÿ'Ok_Ã;ú±aø^üQfX‘Øk :OaQAŸµ(Æ*8Ëè㟲f[C9»Vz~ʆEľÆòò2`÷ªU; z" þ„—ùÃÒ5QÝ<ýB{üÙ½`ºxÜ+…QÅ;{ë_Em8áïîÕ("rAI—L˜†¾}ßëLó~äÃk ÷wÃIK›ß»»œ3N9ñ?|„4üRZ.Û.Ü4œÐm 7ÿw"N?";BÅSàü~X*ïY†ÞÏ®ƒ ¿rº–o¾^ß$-Rê:EùF¤Ä~e5Ë·oê“DHSý,åGdÕáÉPÚŒBZÊI‡Ðµ-ûÁ6’çÍjYv&9ðÐ °Ñ`©¦&8"r"Ë'FéOÛO™O†O%2Bx‰V$(™;­j²GÂŒ1s&:_Z|\zäõT,ô†y›…¿µ“S›ÛxdŽ¬Ñ•XjF }©‰ëˆiÀ"‚^gÆ•û²ösüâQßž·‡ ETÄ*jWn7‘ã[g8v¢O¾ ‘;»U¿!Žò–æ8—E‚ï6 ›F}Š»d”ü¦Ïy Ÿæ=^ltd[µ+|ãBÒֺÔ•y7(«h¥»Þ€«ÜLá\r´m¢»9¨sg"€/ Û÷~ž+¢HNÛQ v.`*OÐ¥7œôV»ªNÍ?oœU¶ì\?9ܳ-›¢È–Ás ⇠ÐÒás9Øâ&öF[Qf¡©RQÌžY¶†·”ÿ%Ð+Çÿíh‰¿M‚•€&»4Ã|ÇóåÀ£Æ1Ï8·Ä‹î̫͹òø$ìñëæðÝS=¤ að‡­n¬ýu,µ”¶ªï! âÇ\Ç,ÕWõ‚?÷$ýw8×GÒ$`0ÔFÚ§4¸ZŠçïž%7šª‰7; txÝ)¥ •œ-¢ uˆì†à–Á/3AB“a˜æ¢K$QäÖ‡æ|(ßÞz£wL?ªñAßá&4gaØŸ˜¿ãT±(DÏm!GJjãy8]ÌD.ù`Ýjä‚w?azÄ«]…à*ð»tõ‘%QàÐÃ!‰>^{úá‹Êç"„¶/ŒN$׿ºk8@ÆÈÍQ³Ðg@àŸä¦†åöZÓ)7iù;‰0w…¶‘i~”W1{JV_+ÈŒ=*:aÒtù‚3æú@)ÖX6yuD;:ëÕgC±ÿÁÞ¤L­œé¤ÒU#ôq·eìJ?ßñ“^¤[¼ŒÇã¦=y7Uü±ed*S«‘Hëã˜4ÄÁ§ûl³ù‰õVßF:õCJ×7¢«)‘W¨ÑÝô½Tß#ÉÇl\79i÷­x[<Çjq¾(—¦ìUi°fAùµ¼oòq&{§ê]´ct )KÛø:•ºH½½äÙ[Š9k}ä?]ÊHÍ _8=íçm>/­˜™&/Eºy´G* ýBÕŠdôõÜŽþRÉç°ÌQú TÍÄ´Ýt+¤ô‹Á…‚N'ùWêj<ç¾ÀwÒËA™\Û^Ólêë £_RÁWEÆ‹Û ú‚ƒ‚Ç‹ÃÝy¬UO9겿”á(P1 × {/Uß²è4ebî€,P½hV•SÍ9Ü­ *U„õ†Ä«P&xæXI ÆëHkï*¥Ô _c°!âE÷6®ÇN]ëù'ö,‚" [oƃLž†¬ÅëûO•žøNâ’1Qz¦ac32Fø•&ƒv›œÅ|Zw%#n"˸9,ô1·Ò)Ò¨ç1ô{óåæcl–Yà3¡¿1\I´R˹± C8¨ò|5Ü?Šú}áÝ”˜™„º~Þø‡^…î!®ú­žKF³€ -íQŸ^±LcwÝ,‰¥¨¼Õ1þ8íS¾½²ÀÇzÙR¡˜\úK9໯4¬¬§„Z¶’îÝÖ_9¥®fôô}ÅY«½9׳Ui Óœ”Ö—¢èÓN–Á—î–Ÿ–/Ь1—Ξ]ûS ô½Q«WÀ‹Ø« ž×Ñ_[dW1 ?ïÇñU­ôÎv‘­r;·,!^7ãc(5Sýt3-i·‹:+êé–ùº¾¨Ør8@h¯Ì£\¼l„–õ]tcEû3\§mVšyÕ<ÝŽO‚¯è!q(Rªlr‘²[媠 Çìýü6~“§ØÜŽJ؉9ÉjŒ—ˆÏÒ¼< ˜¨ }Eœñ™Šúäæ‹€ Ÿíu”/{_€å¡úì•(×àµ3ºò—Fôƒ³M^éøÙQ'Á­méóZ˜”VÞþÕ•'Äí¹«{i0ᳪïú&ë^ÓøaÑeWhæš8î“X ë7²±U…—çîš]ÕFH)Õ$¹N»ÃÚD¿`¶Ó:q;Ž7ŸÉ¶u)ƒ#>ÍÉÞ%±}L”]‡‘âSl@z²Ò·ý¯ R3=3ÖiVï˜Mú“f6BYŸÂ‹÷…»4¯Ù½a¡O{̶‚†yBh¬äØbi™-E³'åÍRÉd}åè¿ZzcÛýy -ç‚C„ ÷$½² ‚ÆÓì’z"uK§¨Á§.‘§é W˜Ïõ²ÍI‰ßèdÿšÛ¥72ûf⾕gpÃ*(ûô ú³ÂzŒ¤R¢èY(ñù‘‰ãöÛOëOOÅšc—™›˜-jí=EÕ—¶˜PB?‡7@ø‰ëCyé“.«ÝaÜSŒÏ“$¥k<7·o‡Ô'ýh&‡ÌýtQ­ÐL0jê2Õ …‰m~ ™àï¡e¹ór"}&ÇV[dÀz“jŒV`\¦%ÛsÊù—ÏT£u^Åí©c?þúž•[þ¨@jü0äEÀÈ> stream xÚVuT”Ý·¦DZ@@šDšº»‘ia„bè”îP¤én ‘néNéRâ¢ß÷ûâwïwÍZï¼ÏÞÏÞgïsž}ÖËD¯©Ã)m‰°€* àHNn.@VMGUW—x¹@ &&]Òú·‡éÔɆ€‹üƒ#ë#ïlr`äU ¨¸Ø¸yÜ"Ü‚" €þá$»Â,j\êŒÃ$‹pðp‚YÛ ïVúÏ+€ àäø¶‡:Á `8@ Œ´Úß­Ûtéñ¯,b6H¤ƒèææÆ¶wæB8YK°rÜ`H€6Ôêä µüj ¶‡þÕ@׿ü‡Ka…t;Aw; w¾ r[Bwët”UPødÕ?€?·ÀÍÅýWº?£%‚Áƒ!„½îƒ[¬`vP€†‚*ÒÉÃ-ÁvΈ»x°+f¶¸#ü. PÖ€ïzü³CgˆÌéÌå ³ûÕ%ðWš»–‡[Ê"ìí¡p¤3ίúä`NPÈÝÎ{ÿ:âp„Üëolƒ[ZýjÅÒŨ‡9º@•åþdÝ™pþ¶YC‘~$tw°PGÔbüµˆ®‡ô·“û—ù®/„Àê®¨Ì z÷‡ãå v…N.P¯:þp¸¹–0`µ†ÁqþÎ~g†ZýïTàsƒîDÈ ýúýõfz§3KÜÎãoúïƒJÈÉè˳ÿÕô_n„;À‹“àäáåp „>ÿN¤ †ýYÈ?B•áV€ðõÞmÔjvýS,Î +àß¹Ôw†XþÖ» ˆ¹{pÿ¿Uÿ;äÿû¯,ÿ½ÿwM .vv¿,ÿ¡ü/Øfçñ'çNÂ.È»qPCÜ ü¿©úÐ?¦X j s±ÿo¯2|7Òpë;is sñ üa†9+ÀÜ¡–š0$Äæ·Lþ0ëý;;ª‰p†ýºjœÜ Ðùîf òâî:q¾Sçoôn”þ½ª<‚°ü5s<ü°“Øt'*~~€÷ÝpZBÝëä‚#w!€»}V'œ_G+,‚™þ@ ä/ô« å? 7ýäaÿ€B ÝßðNŠ@ø?à],âtú¼Kåü("ÿ.êÎùû’r† œþ±>Ï]Jßð_;qqrº»%~‹÷n»þƒ_IP¨;‚3=‰€ˆ¾²­|Õ|Q.M对6ÈÛ! wvëBLJi‡ºÂ…öIüE!_Ö©Pâ[9Í>‰Rct5tÔà*ùHA·Â2-\÷‰£)…QîrU‰©‹à`± ‚:(c#È“ßmÉzt+íÓ2IÈë#Hýh.Œ6650©h‹rJ°56'Y…É~|×P²óÕÁÿÒ*² IÆUi«¹dV1­Ý=XÒBl>1Ù)ƒÏï7¬ˆƒ¬<° 2,ihãùaÓòTªõ#G^x&óÆ1GÞ—óiUô8_ÆÇâN‚ZdMá—O ùr “{<§Ê‘¦nCãl¯D&ñRl±­Üüwòl”¾Gyfî|y)0¦Ä²ÿŽx´ 6Úoθ†ñNýµYp–òãÙ)ýð!ë-¥ 醺]г[»Ø5ØçfÕ؆W Ÿ‘‹8=/uUžmíA9pï9¡kȵ™?çPïy³³¤õm>]š$ñ•WÐ5jæn»'¬0OçLˆ@:G]MÚ‹×K=‚«†ÔF¸Ùc êMÇÆ{¸(˜Èu¸,Çíœ?«>NimMã#Ýì ÒÓõ±†žæs¯-zZ?táåßof°æ£tÓ‹£rêx 9«<ö[K.Å,ðBç'Ç.­Û½B*v%Š1ëþÐ2•Uã!ÈôÂ|“œ‡¡‘þFЖóÁ¹‹¥‘óE½4%-«éE{•¶áó±'¶ î¥Äç¦I?ÇÕeÏI]Wš;¤eœ :¾vÔˆVž»`ÇfÏݲ㠓IStw^& tÀ®‰#ž\Ò±Jï-+P#ÃôÉ[\+i(‚¡²f» è³¢³¬œ¼ôjØEð¦ŠOQ‡„9âFÁ²Ó`ï!-¦çU”û[þ=Y™ÖW¡£UZŸ[¸`Ѹ©:þûëµ¶{…·Çê- ÍÔo$ko>´ócå‡F83¦8‰³PM¬Zìûm^8ŒYÎ}…_=è}x\YU­ Š|%ÌÁ¶DG¥¢ vØ)ž<“EŽæÌdÀiµÿrçLëÕÑÈj>%¢. ëpãÅ’6eÆ}ÏèvžÔmnß=™ÓÕÊðju­ @z¢â«¨ãMKeîQ›ÖnFèfÓšÒZ ¦¸Ò©Ïx­Z¶RK>Ç3^(F,€•KêÉzˆ‡V¬¾Ãó.Oi6Ê ´,4¿˜îS®ƒÍèKMâgzQC\´®ºÆ×÷?D.*kf.°äDjZÓIÎ\¿_ž³QQàÛ­¬~†á胷“¬uJôV]¦N$ýëOwÚÚ›Ÿ5kž|˜×çÂj2َω%ľ`.ôyÊ&]/±›žññ¿u2fÞ+ûT4æ÷£äŒwüé»·C+uh¹‡zÀ·$ßö4O¢ÄW9‚›>ˆ­°¯òr6KáÊØ8€ÙÄÓñym 71“Eþõ€™\RŶ,ƒ«”ñišGYþÙl s¯2=a.²~ÿðIÍ}m"-Ùb¥5·Ä࣬ºÆ[”fBËX]H„U@ÔËÚwž\EÙÊRÊÏG*[ÍšÞ#k(ù*[xœéš¯–Uod Çoïðqí”|ß„äJ·?y§ë;'ßÒn‰Õ£IìØLö.§®™ÀfL@Œ¦×¼ r°5 ¢¨‘¸¼Bëò&sæ g¢4§j+0oèóÅð7iB˜IÉOPÞÑþ |£6°NºÅõ­Ì×K¥dÚ°à(”¬'ˆ§íð['•`Àçý€Ç š©ÿÒ«=uÙ0–1ûܱË~”Oi Ï#ÿýÜû¤ð‘vcXÅŽn.We}“©Yžäf¤[ú¥R+Ý–¼ÚÁˆúã ¦êý‰n»u®äö ö:¾VŒ'n[\y>NˆáÔPc´è»ÒL¾Ð­ÚªÃWý¢þÈÇT>Ù;a;·ß;%MþªAW³ï9Ï$[êð®Ùúa¶l³i¹Eîø†¼û1s•«ûµö%/~É=!3=ºU¸TÈ/tâÊ.G|Té1â°èÞ®ÌÏÀ™oa:ãÑ.¾Å–ë`:k5õ}†ÈSMÃÂÄþ!yhEà¬*„Ë6èŒ÷r<-K· I+åLDÿîø.J×Pbȯë|aÁdŒâ•Fñpÿf‰2óÇ’å)Ë^yg*Ö5siö0ùÓJ½°£v«< Ýíú ãŒäB¼Égy³aGù<5XÖ¨ô—µDO¼Ù_»_úË÷ µ—„ã|$­R)È>ö/åNÌÔt:j™®ÔxŽx¾ÉBÒ&O¡ëbËh}ó6êX‚!aAIN¼”§mÓBXcJÞŸ~é£F¦öásjáÙ͸‡uͬ=ù~GôΊ™ÞÆ …+ö$`°³xEØô¶üRíƒ,B¢÷/ûh³ã­æÂªÐÞ„o1NeHFè ¤óŽ=™µ§Ö å,Ä€E’p˜’ë0PlÆ} lÃ’àâ­fF;¦šÇ\z°/åݰOd¾Ð+ZkNY'#1–jy4>Ú× ÉÇõ¹6‰Þ½n½û¦Qh\ºrÂ5WAgк-VqÕO® ó˜ê^ 픬J-^˜"ª|ñËçvœŸ7)¾­šê 9,[§bf]WdcÒz\U¬­{Ol}2ôWT2¶hrEu†x/;jMXî×½´Œ ñ+6‘Y%}5~½áEhZb²t?òçñæ@§UÜmg]n$Sš‘p/ÜÐÃýÈÇUãmÄÿØØ&|M'iÇEŠ»poÔëÑ÷Jm‰Ú—¸û}¬‘»¾ÃœoOqìýìW· Øã”ÌøŠZÐ?WrØL‘Sõ¹ËƒÉn_Û<73qd¶(ÊmKjPH8™£ŠYý2ÄC¤r_‘Æ©pµH3Õ¢P›ç4@tçmQ{ý[vl>ºŒé¬ð‰9c"î` ¹íy‘&ü{ÎòÑ)-ˆ79]2ÖšŠGWGŸ7-d½Ö»Q°‹qf9&.oV”*Ö06(àoÔ¢8QÚ $N³« ¯fv)âÊÕRè_8[|åâŸW¤ h2Û`Õã\@?n&Õµ©³åhìªØé><¿÷ñæa¨é.È—‹³$MC8.^ge 8èé<{ŒÈ2…íÝYê8ÔUa[)Í1“×i¬5 ùÁ# oŸµSšex ¡:Ñ>åM4"ü=½uQ–À¬Œ`¨—·œF¡¶c˜–›öF]ô£Uàn‰ÓÏ–¥&gûŒ+}–k*R¢ ‰ß¡|M’¸ÂñJô½ò3paÖ“è{¤³’+¶*žC‹ƒ¡ dÚ <϶nÙ,x¸È[ÅŽ ÀÇÖ¿åÎÿD¸*â‹Êè¾A’³ô c8Àâ=VÏœ|ê¹#Ôy)MÑ/9rŸÐ¶hÙëÊ4þi¥¡rÞ‰Yãû ™] ˜æF}èÍÏ­M¯Å±¶Æ+ª”û£¬ÔÄ9ZòÊx\Á¼Þo8øV$u‹Wõ}áÛ¹¥ú1…î5§GsZêôô@¯Ç&+Ñ×ý:~`h_"Þ˜à+¥ÇÓ{ öøÚ©þoÒ‡™<ÈÜ¢k4_7¤R¥Q¨6zŽVãõâ‰Ü c¿!¯ÌRÛÝ[”×p„â{^濌ÅÕytè–Š!Øì²Z±-ÙäŸùDyevUy!Ók—iŒýägë-ºPÜ‚’?2,öú‹3Z8.âMÖ=ØÀn/…Þ÷ÜËü ×l¥ø¦WøÛæÑD”—·d'WDƒ/DvM ¹S7íÏÛŽâUm. êîexzõCWîä”è`¤÷ìE<³¾=”Àn,Ã7Á7ênÆu!Ä=åíÉ ÑÏЛØ5:ý ÇÔÝaÌP÷e#ò1Χ®?t˜î¼¶ydª‹Ï‡¾•TÞø±TúضU°¾h‹œÌfèý>ž8êÏÜÛ”÷$Ãýªf¦â•‡¾vnÌùë|y<–ÈÀ´N—¤y˜PL•2pmt„8%å™cG`ÙÚ`Õ—|XÈÓó¬eÑ细ÇT¤ŽˆŸÓ¤p±@Réö˜$„óá8Uh*ïObÛ•dð5†¡mìÞZN.@Æœ6󙋿”Õdi0ŒÐrÀ¯·b‰ã¬Ý:˜‡WÖŸ·[¶ëc3y é¤ݳoJåAçµs«€ÐÊHv“Ó!ñÀÜq]NÜñ“:Dã… lfh³¬ŽD7}¡¥hB Üð{-êZ//”ú^gK0mQõ¢qÞ)vÀ\ý| êä!š!ä2‚뤈ӄÇrépl¹À-e‘•Ó%v&óŠÂXÛì¦VÔ}2ã¸rø1öøgÆ2“{brö ¹²Ÿ»ègÜ‚z—þŽÙËœæƒhæãÝ›Ðh >=ëh¯˜îMæ£ñj»›AÙÂMÙ  ¶V£kIß®üñYgžøK4ïÈ\•¶¾9\bÆåúl¸Ë) ÃÎ ÝÌ4ŽËâù÷Vx_DËl ¡[yQ_\×|µ£’ê¥P´v÷‚_훿¡EN:#±Ä-´¡ûÏ>ñÌùJ…²N¸’éeÂfp(ìx¢ÉÞEê¶Íè(ý•Æä͔ǩ}Ù-Û$ƒiÖNû3 Ì=vh£?Ø“í©\•Ðc , A”j §Ûªª,+Ç bRù“{$έq»‹Ó½^&ŽãƒqN²œF®B›‡ñìTjgh®O#/ì%¥í\R?,ÄÑVÔD:9²¨iµ¢ôlVÅ3D0–‘£_±CØ8•£Ô ßãÄ¥¾À(~iޱÆ8gvô¹£á¶Œœzâk` §ÜÔȘ†b¿xª#ÆÔ Fè±¥p}U´X‡¹Òh)?¼®Í0b‹¢rýF0é2¥'½Ž·e/hH'þ£ê±æj;Rôå«á_MgþŒazš$„éõeï«®킊 ðìéÝ-kïr“¤*É×Ò¹%Öûº! ¤°™F/Ž‹Œ6záé)¬{˜Åo·$ܼdIë¦)öÓî½ß4q°tù5 ’Us©lû‹jSc()tódzñ/Â[NwÏ‘Œ¤_¸¹©ÇŠŸt šœP¥>â^0øÑÅQvàî´á8X9W—¼îá¾JÓc“îPy¬®^ð²å×ûšrC{ÖáëL5&øCÕ„ý© ˆR‚ g9¯,+ÿÔ>M1-¬U¡Ó0àüóÑ«IW¡Ñ ÷„©^‘[q‹6ì¹2hœå¢Jl(Œªó7êÞ ½Äšåz¿Ìwí{#”21FÓÞù‰}^¥®2$rkúöÅ4§¥:Ù;ΖA/ieñ²¾lQ5¥&caN »C×1¥šwåy’Ò @ ”u ÍÏúÆ ûÞ`âëÚr!tæðú<á·±úÁY¾Ó†Z–êüíÜió·a¸Ó¶X¡Hßš ÍäükÿwÎùOnáx¯–9JZùk÷Ô²T0F§èë?ìÄ/lSÂËGFä×&/PI·*¥[v¨ž@å¢ë“âçgã°f±Ê”À-Gê†c¯– ¯ì >W#x³‚‚¯p2èÈŽo+¨–N]†DKn©~ò1<}¹ \„ÆZœVüikfÓ3TP¾òÅ‘9üî%9UXFñ¯.¥w’#|!„!ù‡.…S>žÝV†^ùŒ’ÿC¿ÔGšî­Á\èvµðö’Ìù#ÑL7¨;ø•­Ž”–]ýq3Ö6]ʰ6`ÉþâÛ¾þ"¯$k7Á¢ÔNϵ!E„²¿BÅàs¶¡8.\¾iœÉžgóëaôìteéÝÆ£däJ•kå[ížó]BÜIaIhÉ´!ª%7&ôÑ‚N.à÷æ×gȨg!„ÒÞr¤ÿx2h`›Ï{ð`Ý#Nõ`×Á%fÂIø=¶¸whºt\æìÇ,ÖSGw­~¿ïcœ†»˜£5±0Û7ÃùÐw%5Ó²z‚$š·”"{[w¾¨n½?ÒN‡7ó¥ûàþâ–dñÐ@B?•Ú ͱ;eUᵯYŽ ¯g§ØÍù›)’€Ghn}1:¹¸%ù„:yiÖu’Ýî!ÑXôgn¸EQe˜ô¼&q@ÿÖö°Äõ™’a/!…LŸ]³Ñs‚LxÜüÏ¿„¹vû/«š;êõgÜ}]j­ˆ¿¥v;ÐB}¹PʹÑö<ì~+Ò\°Æ×]ˆõúÉ.#¿AÈ#K2Zɳ"7ÒEiôó2劓™g«Ô Ú#è4÷¬“/ƒ´Ôdp­×Vk’O°ó/.DUMýJ¸5Mé~MöãÛÚ3½À®Ä1OsX‚U©Iʈ¨Õ¶|§K*äÙ›Êp[Fñ' B݉ˆºø˜³ºL"O«YÏ¡ë«øå›œdVŒQΜ°K‰£?M?Ó[®]“|vɈÃ46ñµæÏc,»®ïžª Ç•aí@¿©*Q¾æ.³âUîˆbÚ¬ˆ`vÄŵ$2ðá%ý5Îý#+¬\~~lœÏÒž_ò>b_=˜˜Ã?ÖYÅŠ CÛgç­ÒŠã °¶¨ðB‹.Ò™<äÆqîþñ ïg¡ìyñÌÑ0:ºúå7¹u‘°Þçs…Yjõ™Ò+‡m{Ò„ô½û¦ßÃzêËš#Òcøv<fDì‡EGùº 6¯âå"†+wZ¹ÉDßkKÁšz.»ÖŸ^ ë+k+Án æžxºø”4™Ü*w™ysãï÷/·7¤G_LBiŽMS°ÛÓl£÷v½¸¦ÑeG%Pà},œ*6ëƒÏßÃJÚlvÄñÕÂìUx/Bˆ‚ÞÊ?té}-¯\rW…þ8,]ÿ:u\ûöž¾,}…·{Ñú aÇyº«_E ÍÆ e8ª ‡AnÙÛEŒØ1.êi±d†Ž´Ð¾ÚJ·y„™Ñ÷U'üD‹v™§7HØ;Ðÿª³#ŸÁ_¿{Qlq?W¡Nšüµ!®y"k­˜ã„2*]Ày™Ò7ölT‹õº+ÈܨÆtú¶-©Ý’ÅâYšýB4MùWàgé¯ìùÎQ½Öˆf<úVVªã¨wßl©ÓÇö/àòioϸ=“JçÁztıðús…E‰{ê>mÊjå É'ýÉ„uÓhAÕ.º>Òg±úÆ›±¯›Ðöpk”Oiìáùî›órx›aéCš‹˜M’´_"¾^*jŠ"Œ¤”…’b#“S«¿=q‹U,§gßC6ÝSç¿ÌãM™ˆðPÓ.J+i5¯Î¡åöNáuß`u±hpÊgzÓû˜äøÁãáíŸ:³õYŽTbœ Ÿ‘ã»§€m4Öx»3rP’¯ŒÇ? ý)’=LÚf›×%ÚØCHÏ ìТY›4\͈NxönoÜItàühÕj›8Ò1jž· H޼ü–¥.d„hç#|×@µªÎ¹ÍŒýS1 ê¢Í¨¯oMY®Ÿ7Eõ +Žˆ\úž&©è{e7uöwÏôô{æÌÀû ©HVg€]T?J {Aes&YêzÅ` ¥tMXkoþçˆ3–°:ã•Ç<³%Ù‚«…9Õe2ÁM]5"Ê泌 ײ_P§n,”ó<­(¯•Üô÷\áÆÚÐ0ÐjõI;1¢TÆð~žÔ`Ó Ìˆ-*Qöj4oµ×ùÑá1r¿rgze¯ ÷SgÈD—ÚÙÆqQ°J=æí“ÒÛ™8.²@ :h"D- ß[Óua¨#ÛYþN³sƒ4vÐ>Ô:èÀË:.ï{9®Á Á:ÁnÖƒ–Ê("-6Švh ëÞy¿Cìî5-FÅËÙ°¬÷‡Ü!:ÏCëóX‘Ž'b3A]È~—®@rÊÁ‡-9vŠt› ?/ÞYS-œÜ|ðÁµ.>'´ /+ùæ]F»{Ž÷øÔŸJGï]Ûbï1úµé16c¿ú*æ )ìVS‰J›Ù>YòôÁi,ËSß‚e|£Ÿì›Ó5^­v Ž„Þ7jT3÷§ô4µxô­Iœ•²J@¦§‡|Ï™ðYíBÅÞAÊ~{bvöø’æm‡¾IË>5U"ůÆeûMî™|Ù¤–:bYÊi”x›,~˜6–ô6ÊY{mÝ|VFû@¥§?aÓ@„ì}1XSɰ­êôóo†9?kÍܧRžÓ$ø:‚â»ØR «„±jNæ"íˆèúm»ûÒò*;ýu5U]ýÄ>‡AP#ðÎÛÌÑ}Ày’„VS‹í›ò™U-B¸ÅÕ—£¶:GwTvËÙQ£ç|¸áŒÎÂÌÓó{HÅy쥉<Ÿ$ÂÚ·/ÄѦô˜Þý¨"³ÊW!ý ¥"Q^pêÀ”!Æ«”ì̆¯^,˜hK÷H󠦄š,æN®»Ì" . J5 ¬Fyl.ÍìYW&”ÔÉ]à`‘ +Ô¬}?®?~Öœ†¿éúññSùùâÚ5ÿž%…/+N»^Þåà|½!âû.šD؈{d‰œBõ¶”XÀ<{\7§{ðÂ2pïysiPÂô,æS!ê®îFÙPÌì&ø`os¨¼ª£Òµtã,ÉÍ5‡K’•rM1þÈ#Mþn7u¶“U< ™ÂóÝnÓ5S Y"œ¤|¯¿©5c+Ý ºðQ¶n9.Éi‡kÞ™pL0’pWwRj|¶Æ®ŸÒé ý0j¡ Î®@ÃÚ(A~“A5áTu$pBâÝ3•ÑÔj7Í}¼‡Aß!ÆéÖ”|"ªí,Gýþ˜*pÜøƒÊ3"Ѹûí¶öT*1Ó¸uÇåNû—|J• ‡Ý¹Í­¦Í¥±<¨z%‡Ô&¬@÷¦r/Hã¯Û² þǃAIàÕ6ÅFx(ÏNýB|è…Ljo®PbÓ­¿·G¤ßH¿ã†züf=6ê4I)³[ºEøèFÉ!ñrƒX9¡ÖÍAšãíIi òz?móÏoLåeUžá§„KFÅE+Q't{mɘqóî§™EG’°b#‘‡ò†à’#×£BÛÊu±{äýÒ×Q;aøÃ¸çyøz?­†> stream xÚ·P”í6ŽHIHJÇÒ K³€ )Ò¹ÀKì»””„¤”t§„RÒ¡4R‚4ÒÒé‡oúþþÿ™ï›yö¹NŸs_çžy˜é5u¸¥­á–8 ÉÍÇȪéèð@ ÈÍÌü Št„ü-ÇfÖƒ¸" p˜Øo²®0òN&FÞªÁae7GŸ€OXŒOD ð ¿ á®b9°;Ô ÆP†Ã lfY¸³—+ÔÖy—çïW›;€áúà íq…Za50Òât—Ñ ìÐ[A!H¯ÿ„`“°C"Åxy=<¾Âýåý+ö‡3ØÊ îä †yAa¶¨# ¡ ÊƒôDrÀ0ë_†`GüÎì†:‚-ï þ( PÖ€ï:ü«?„•+Ô‰àA@õÈû+ÌݘåaÖ²p'' ‰ÀþUŸÔbu7w/Þ¿×÷€yÿl 0k›_mX»9óê .n%¹¿lîDØÿÊl!H€ .ˆ§•ï¯ϼœ!(ù~‰ïzðõv†;lîÚ€øBm wØÞ°;€tuƒøzÿ®ø/ÂæãXC­Kˆ-†ýoô;1ÄæO|wþ®PO€1ðŽ~|à¯ß?o¦w ³†Ã½þ5ÿãˆyUuuT8ÿjù¥Œ ÜàÍ-Ìàæ@ @DðýoM0ô¯2~sU‚ÙÀ ?«½Óß»ÿE¶¿öƒðßXêð;âBlÿòÜ(´º{ðý?³ý—ÿ?’ÿŠòåùÿV¤àæèø‡žíOƒÿìuôúË⎸nÈ»%Pƒß­ìMõ!n®Äêæô¿Z%$øn¤a¶Žÿ ŠP€zB¬5¡H+»?ùò§\÷צ9BaM8úënpóÿ£»[/+‡»ûqGÊ?T»íùoJy˜Üúךñ À®®`/là—ø…„Þ|wûh ñüƒÆ^yç¸kÏ`wÅþu¦Â"^Ù_¢?‘(€Wî$ ðjþ‹ø¼Úÿ Ðøô«r^ëß €òðBƒwYƒ ¯Ó¿ð޼¼°ßà](øoð® çß  €×õ7x—ñð"ƒw5»ýïÊpÿþg¢Vn®®wˬ¿÷ßø[ ñ„XaOOÀ­Äƒí«‚?œWJSyp¯b,|o 5ìB²LæxÛ©b¦=u‘±°.#ïOÖœ* ™ð¡âØ;ò4iϘORÌF¢Èw/Ëpçö]µÛBh­á”¶Ã"ÉáË„ûqZ4øÆhƬñú×/E:ÖË× nZëF m€ ð”€>‰ %Õ²iHÏôùÙЄ šÈÕ8Åí™’îð j$4úLæÃ+Š ¯eãèÔÏss½=ÝÉ?òT:+„ËBˆ)Hž+Ógõ¿þDñ(.C¹Â"#t*[/°?Ö‰’Óÿct××R«óX+3Ùý~ø}ÌF+ƒû”Ûzu {tª ¯°(EÅà ì-ynñíÍhÅ=ÓMÑUI„â‚S´¬-:Å–D>¯ÆÎzøçÑŒPó‰€6ßÖãBÐ8V…Ê’^á{ÅÀé“?[ÌOöù>ÀòœÀ[Äžx¥µîóê:%†lA’ì S[>-Sap`òIyÐô'Yýu5– þ'ùð YÀf]lú=¡k­{œ:iTà‘þŽÁ+XðÌ“ºç4¤P@8…¦*—šLŽz£Uto«$×4æ/Ÿ{Œ¼ï½íæƒé,FÃ×4oUwþ6[}S¥ï©îjåd»÷S¨KRªëkRàÒÌö使gª+žÔ2Œ_Bˆ­~Ó<ÿ©r]Î1âAÒZHëÅ7ʺq¨ÍÇx s‘oÀ#ihù¶eÑluJê›:ŰélHRó%yJ–ukÅ(Å»™~e‡´I®›?cÆï¨Ò$ç‹°ÝK’ó“Ì€‰Ý«w^t†÷t~žm‰ñ2‚Çö×&DY$>®JRlUÂOª”É|øICQ·Ñw®¡¶’t9KÅ,ÒÖýœiç«%I ]Z;e½î¡;Öˆ¤õ[<ϪîV'>ž>Ý÷3=¾ð<"óu,XzGÓVI_«´o-ºí‚½ºô “jø^†5^æåB9 Ü“¾#’³”«‚ygkÓ©'‰AÝ’f'œîOböçÇ@q|¤ß~ÇY´4Nè£8A»aÎ¶ÑÆÉ¡wU* íqÉÛ£³ùÐ(Œ±´‰êm.*¥Ñˆ0{. q×£1¹H‰2ž™‹ "·km‚ õ«1Nø›ë—Éq„ê^Ÿ¦“ë w„ÒcBËÐv¶bOψ&¼|÷æ‘k_´ŒÞ $ÂÉÂUò͉(•žÎÀ‹#QoêwC¾÷õv¸r˜»äºÓÄîä2‰Fï‘{Å !t4Ÿèm÷øç);qhï-n¥.X›ÐÞ[Úí2ˆBß_ ‹EPɾūù*]¹ÙÏÔ]õ¹`o*r¯m¾^ð˜£sùœ;ä{¼¹úƧÞE V{ùØV|õŒ-ŒÔB“¼¥x_ò7½cEÏÚãÊ=‚¦-¬¿P¸Uy£”ºVè'5ãã”æ`ûBÀ˾¨ë6±œR• >"röQ˜³¾É~eÛg×ÿ›åÛ×5Õw?òƒ ¯ºîqp «t;ÛÆJ}U‹Î$ªÏ!Ì+|ÅfñŠ?u3ˆjÖ´b}D¾ù>4ßì]fæ˜l[ÿMÑ›¡á¥£ éj…ô4Ù¼tç¨o“âãûæló<zãÀAztõNó» ˆ¯ZŸ0Í×Ô wšñ«®¦ô3Æv²˜hýµ¡?K²•¾råNH²íXžñ“±¢v¥Ö˜—®ûîRÖŠ‹(+`牟œ!„fÞÝ|³tw±Z¥ÍT×z£½aWðáuu $Ã!èe:×f鸿£Ž×WHO_WRûfÑœ®ÃŒÞ±5CíÁ¹Aø©ØDã²Á÷ümB 7]ì‡äË|ű-*ºeDH||àóø­TïäX&p Œè"?£4ª=ðõ}TY¦>/|˜çë`t‹Ö26Û¼Hî¦ûHR|JS‡,Ä©ájéí'3Hü¢•˜§4“i‘a_GFZ ™]ýœð¨Ä®•¤¡@vãüÅõÆž&tá”n–é[¶„gÒ dËXûL ’ÄÌWãe­,5¹hÿ‚gsÛºà†|1ËUw- Îˬö=Dôø¦Èìw4—Xyk¼M?»Ç¦¤e8·K›Èm7ãQ?FÎ}§Æ ¸¤C<2<&Çí)ôQö/~XVo'ûñIí³c¤\fÐ3©›iyz S»¦Œ¶UL´í4ü¯±Ý{Ážè'ýŒÑ>Ùdí.=1Ͼ¶c1é´Ìýnõt¿,‰ÿÇÙ×^-·x%ç…™Ñr‡:Õx”EÙi–¶Vä]*£mÞà œjªÁÁ«iäú–Aÿ¥ï¼‰N—Wl`‚“Ž)ÌŽ=^ nzD_Yú³G‹¼UÚ(ÀîC$¢ØO£!io;ž@ù@ô¶¹Xôe½Ð=?Žð›@OÂÂÆØ[¼ÈURûg–±Í‹Þ}¦§-þWµÓK ÛÕ™}É:ÆýQª™-§¦hÇlò¨­ï²“åÍLëè'ÎGx—²,̈qh…MXn™¾óv=O–¢|õ8µžÜQm"’ºcr¨mrãôüݱE™óe)ìY\Áy+Óì^íº^“dIrKܤQ4ú^n$Ä»ƒÏZduã»>žž$íYj\[äø— [¬ïߣȩ̈ªŸÐ]œ| G«IhßVŒÂ0þR'&-¥Ô7MPý” f™âƒ\WÓ4`¸i`ŸêȾ%ßþr  Ï´XÒ1­’ÕKü”Ð+¿ö +H@jIü¢ ÁÀ{ŒOÙw$DwÈoÔ‹—¡d!a÷Þ ÑAÛºÌYÉAMîÚýUo0ÊÒRíÊÁ dp ªT[aÎ^/ý=í¹Í­$?Ф ¸K°cëNÓ}ú!eQ‡¢B¥/L½´?š—liÖzÖÊì8YXHrlähîÍF®_yÍÕÀ•úÞ@md¸šÒ'/)#7n*Õ· JäŸWµ­N6&"ÆûîÂÖ'J¡µ+I©šå$µgPHy§u}#Ù’¸£NóXλV+.KdL˜З¬‰•./âmŠ5÷²:ûÜE­çœãhõzŒ~ý±8ª•.@ÞÍ«à½ÇÆN¡²½–ÚëÌØAÒz„€…z(9q;£Ö „z$(‹â_µÚ¹†²j-RêU¨Pkªm<Ö¢ °Æâ®ñpo¥¿Zy‰+D¹¨«o+¾ß1üãŠkÖxž§c¼Yr;¹4Ã6S‰+ñ•B=/‡^ÿ$ä–NÜÞea|Uv…ÙSâTIlŠÄýK-)¡ö ­Û¡ìI‡ö¹Í H¦²›F‹5ÞŽa×ö!ÚÒ;‡Ž¥ò¨å\ïæw„a¡µ"<ùe·”ŸðæÞ>mO؈{Ø*ÈŒJK çèG–®yК77Qh¦­ýÄñÒ}%ƒfçWrÆ”Ž.ž€E“ó\­¯ÏĘnûÁ˜5þ ûQ:³}Õ«¦ ¶gïA"Ч$ÍÔ‚\$M,^‡¼Õ­•JâbÇÉ^Ã1)“ íøHéAuÁ¸žo‘Áçü¡×Â#=³÷ÍmK¹‡Hâv¸§å4N†TÇ3™Òæ’ÒFÄO»„ÅÌ#da&|a¦ù¥@Y¨ü\¿°‰ûq~®¤öHü¥àx <ŠèüŠ0ØãÜoSÑG934í²kñ‘Ƥÿr–q†«Ÿ¯€ÿ¨ËÓeÒž¯–”T¬$²öêò.ýÄv .yŽ´:v§¶ð3}í뇳3¥ôr غ { Ùg¹×kkSWœx6feA.t¼ÛéQ<Ô Â1TpáK”´M¯>cÑ­(¦É Ñrþm£r¥ñž«˜l`9RûOv ?’€}©Éã ƒ™eépæŸÇÕêÌÅyÍ µe"‘÷X¬qk±_Í..L•ð‹g›$å\‹ùâÖˆœ”CÕP€ï_±]ŽÈusoð}!¶ÒîlW뜮c¾ùI;®Èªª,®‚mHšÆŸÉ0)L8^¶j•éh²òeEv^†!:Ãê¥XVï½,g[[³gÝa"Á*–áâA+ Îlàx 5/› QÕýŽ&ºà?_£@Ü›)-Ë»ž¸U½}Ž_@TkÒµÜ ŽÓ]#D;8~Áõüøµ­¾è'Œ@%‚|_õ,½3æô¾ [dX…@i>ºx.ëZUëЫédRó‹“9ú;Ç¡ô·Ž£ý·4(Ñd“ctö{ˆNƾ&æ²ô‡41‰ÄnCÌõ,‡XVý*WÑ´n«„ãX]C…¢x?â*ßD¼ ‰S7ë]Ê3S¤.Éé œTA%JÅê5ŠêµJc¸ WÆ 22NJÇ FhßÛk.«;tü¦Nò©z¢elb X͹ÐpXÔÅü@MßgX¨Î¦pèõ1äæ0ªñ­ª´Â‹qÀ§Ò»ÀÇjÜ-}/‹@Bn‘EûõI¸«—µ_àQ½åkúmaS:ßUv„;Ú<ÄÒ«Z­Šq®Fîâ:®lÇ}¡SYZ˜˜R;´¬3\® 2ZRVMåì­À›*‹ãØã•Y´¦˜ÉŸ™‡ öÑj3(.’âÔ…Mè”ß̘EåZlÉúîp3V;òÙF cd9TN‹=e¹d¡>ÏÏÓÝUÝŸÛf¿’Ê ÓÖ”ÙÉF_ûz|÷…mšfD?mëèù¼SúUÕ´åÎwÊÚ’-ùãÌ!8€\Ÿß_̺ºÞ‰ŸhÔÁ1¼Àª÷Ó¸Qc–¸8—I ån]Zî¹Ä 1 n{fjbé*»zþýûˆ§ó¶ä©슛Lú9õϪ›^eÇTDq~_£ºT €¬SÅÓËví1©­Î@ð{ÁTó”'¼þ1¹Þ$v&éï:ürW<Æójìξ–ù¶ùu ”^u›So4ëÜšVˆPµMm\šõ+±<|:+xô•`3ÌÁ¡Að(â;“%#-²@uÆÁÃÝ  ©§|<årßväP­G5nX6¯ŶåiÉ&€Ù€ù‘èt)1 æãSF¬¢jÎðwQô+“­´ÇãìŠýÔÂN¶öë—¦f‰ü”.|Ïüpc1¨¼ž‰Š8UVõ~lCJ¸ I36éNÄ ¨}*G|̙˔á©™ê’ûx» egœ,j3º ‰zjbþâQ¥IãÊç\7ÔØ©Ê«Âyß9YkÀ$ Ÿ@F†h+–4_Ap8,\²Ugjô%¾‚CÒV–ðÏK.Q·OáÃ…š[îDy™:Ï’¯áî¦'´æÂŽÇfF „'¯rý=ëÑ·ˆjuQC®qói˜„‰êq,hl’ Œqv›¦£žªÉ…H‹b}ÐïþA´—«ÂpbA™@Ð×Çe©x±Ú« 0mò<Ž9-˜}ô±åsS¥ËÁçä/S~¥ 'dW|÷W™›PxPWU8‰0.7NδóïM›TÏÚT’’³ËR˜dÞ¯$aîX©بPfÇ”Žü †‰øröqÌŸ}Ôèõl^EXŠ* /ë¢öè£ÓU¡BjçgìómÚUË¥ÒU/6êk¢?t¾ˆUË/a_–ÅøÕïáõ Ä|ëVÇø¡…j?só6{ÂöžNŽÊg¾ AÉ:9iâQÇrpÞ|eBÝØzp¯>¹|—­#C 5oŠïbp2ƒ®Èô…}%‘ô‰ÐÔüÔêPfQܦx2Ø£(€[ ?d¯s=Ä{é. |aŒ÷#œ¹eó¦ñùQô*q]7[<æf<õŠ¿š‹Ööd†–nrG±˜®PQx»eÿ½3.4ÛˆA”ø!KK-‘+´- E9Ø “ÑŽ›—}Y†eƒQMö&P éžôâGmùÎJT lÄ®Ñ rF•EG‰mQ¥ù¤±ôU[„úõ‡è˜•ù³‘«´¨ëODÛü8²ÊϽçˆóŒñ'çw¿ Ä¼YŠmE¶õ9é1’J6.¹3QÅ^¤‰Ô:¹À<ûÁI‚TǼö÷¶KÝ©QdFÕGíß?Ùñ¥ì«˜Ô–Èùt$Zx&•ÅUcÌ‹W>ˆ{}éJ¤èƒÃ0¼ب H^éb¯Gn¼i ï"eUÀ!,o>ôˆ%¿Y~A}¶»ï0&»›«ËÐù“þ+B)È¥i·¾!”D¨,5u:ÿK¨ý¼eeþeB,—ö³/T‰vì»o)ÍóBE*tšÖN<&iâ‚´ÎÜ[ªCO|èw® +MQ%sÊ®9{%…7b°,É_vû„ÛIâ(7¸³†µÛ-Áöºœ÷b_+~íÂÔWq¸˜iûŒ7ØÏÜù|ï¦_÷FJÉä€ËÀUu–u‚cĺ£âF·m­~(Äò®jn“‘¶kùJd ·{9³¤'—„ÕèЄƒjPoˆÎÖ};âúµªsÃyCP0–܇þJìoô€­Ô'tALC`ìîZ»7S7ÝõeläFaÎñ†UÀ´nD€õ˜£~ȉ=V豿,#ˆ#¤ `ÎT‘÷´´@ÔMÊ;ÎõîóMUÕCÉù‹jÛM;çþÞp®¢×Æ„7­©ïZqˆ»ºª”D÷’‡¡{µ¾T@JxÉE”‰é]»L¤2ék/€“Ç¡¦Æ8.]¯õàe«&Ù—Ÿ ïï«Ý'9–¶nÈ]7¬²×ÍŸ-ºØâ¸Ð¼ÚÈotëåßx ` k©Ï3È(|kþXî'^@[_«¥ùnÒ7êkä¶¶XÞ×á ÅÍĸ¯o=…ò{p6eeý6A³•‰(¨:šMR#84kC?~cK¸ÚÊKÌ7EʬsÖ-Ø]p—÷yJÛnÈ +5}ª¦’œŒôaóß—}’syСž(Ÿèó,·/‚.ù‡"ª,wÿ`X|¶õrc §«Ç ý<1†ø=)¡7=¡aCÍMþNèrh˜ìªeY’ÈÃÁs[ñ•Ëå(f¡9Ä·[8¹Je!9ÅÔÜ“C7fÓ‹"LÄÌ^h}*Ÿ„j€qbm0dñ³ç—dRÍÚu¿€Ø§@¡LWÃÔš6"£ ÛÎÓí<,ß00¾±…è ³_ŸÌkC¾~v{üÕE’H ­Ï°¬{öW´ë–¬¨ÇgߟJÕw%,†µ|d·™w¨#Åf¸øTöGÄ%ðFþ¾g›Ç0ûx^ùfø8M1 ü¢ÈÀÎ1|h_Z40åúíaɹ׺Þ>wä:Ù©bz¥X"ÁáùŠè&Ùµèø2¬"Üt“¬Å1þY€X{=»©šnÕSœ'rC"ûÉVdiq,¿ {3 ¢'„Hüþìb? endstream endobj 122 0 obj << /Length1 1387 /Length2 5972 /Length3 0 /Length 6922 /Filter /FlateDecode >> stream xÚxT”ÝÚ6Ò"’HçÒÒ-Ý Ã 3È Ò)Ò  4Ò­¤€´´‚tIH« ßèë{ÎyÏÿ¯õ}kÖšyö}_wí}]{f »¡‰2åÕ@!1B¢Â@Y€ªž‰•(Š b$\\¦p ú·„Ëꎆ£²ÿPu‡‚0X›ƒê¡€{€¨8@TRVTJˆ2Qî²5'ÐÜC!¡h.U”›;ÜÑ ƒ­ó÷#€Ì•‘‘üPv…ºÃÁ $@„q‚ºb+‚A€ ‡b|þ‘‚÷®ã&+"âåå% rE £Üø^pŒÀІº{B!€_#ôA®Ð?£ “pLàè¿&(Æ ä` 8ŠDcC<¨;[`¢­ 0pƒ"ÿëþüÙ€¨°è¿Òý‰þ•Žü ƒQ®n ¤é€ÁP€†®0Æ#!!¿€ …y‚àð»u@CÙÂNøg>4Øî†A £áˆ_3ŠüJƒÝfu$Dåê EbÐ$¿úSƒ»CÁØ}÷ùs¸.H”Òïï Ž„À~ñp1CÂz@µÕþ`°&’Û¡€PFRRB}€zƒD~0õqƒþvþ6cgðsC¹`Ø1 pûAâ‡yBwh€ß:þ¹"@à` ÀêG’ü;;Ö …ýµÆž¿;Ü` ÄÒOüõúד –aáóoøï#±P½gj¡-ðgä9UTPÞ?!1€Œ$ *** ’’ü3!þ§ÿˆÕFÂP™¿ÚÅîÓß-{þáïðþ™K…e.Àûo¢?JÁØ7Ñÿ3݇üÿXþ+ËÿJôÿîHÃøíçý ðÿøA®p„Ï–¹¬ ôPX- ÿjýKºzPÜÃõ¿½ÚV ÊHG,£…Dïïüe‡£5àÞPˆ!vú‹5ÙÍ~é GB Qhø¯þ—+2° öAc©ùÛÅjèŸuÕ‘`ä—ØÄ$$ ww ö¬±+ €Ÿ(V•¨÷o2D„‘( 6€1C¹“ü:XìM&†»ƒPð¯3Ãüò’ü£ØÃÝ+·ßTÀ–ÿ{ý[ÛP¨7L27Ë…9¿ k»¨VföZ&\ZîˆN°ê’ÀpÏ<ósÒ%ÊÔœx¨byysè©áliÄø´?3ÿþň÷ƒ7ÙÁ‹iZyõÞU•C¡ü¯Ço¡l“ã¨ÔÓèUªƒD#V {k|kžd‹éËp©.ñÍÊWèÍû2»W@Ñ%{3æ‰rnÇ.îc+vÎeÌ ÕÊ8jwëtSm³Ñ+ÜÇð¸s•¶XƯ>«Öqƒ?¾Íîë}*~T Ó]%ù2‚†‘Ö÷{îPR?#]bö½F4·ŠÄ™jijc¡k÷"ž½Ôâ÷É‚¾ÖÄ~qzG}ÕàÞ5xÔ¢$¦ås»XìÖ²L¿ŠÝlJŠv¬~Ê©ÂUÁ9L?¨GäuãÓ³k;~êM¢ŠKέtqçb‰…ŠÛnŒÝ¼°’™(*f“*îÿô\EÒÁæ6³˜¿¼›  aâ¢1ÔÆÓgw^öº-(|ú¼^ny+y²Õô¶m°+òŹÏJ7œ`Ùž¹Û³“ب-qöžÊœ_]S£3ƒê´ã‹ÏŸ 4ÎËÅ7líД»¯$3;Æo.N‘oJ5cª»‰“®ÝJ6\9h’’œÆe¿”µr¾BòÝ3ù&ùTé ࣅ±ÃkjFŸã)kVou}%°Mpp?#¶ÕÉë¸ïd_¬Ïss'Þ°›p¹¥b5|(5½˜§òÃ,ÐŽ¦äу<Ø“ïq§›'õy–ʵQ÷Ñ)«vÏß±¶ßï‹cI=ö¹»'uÓ[«þÛþ!à¦l?GX!¢¼!^¢Eõc]´™uH·í¤‰Ø½ë¬áä+©¨õ¹Üµ`7Û­zý·ïeUÔÔ<³á2â«/õ‚¸eüðI£ÌÕÈN¥©É@cõ!bÓHa'XÉBQgž¾`ךóqS Uí7M·Ã³n–4-5,"÷ú}Áçx…!Òß= Å?|±4|료ê¬Ù´»icñY-D¯™0ÊêÎRñqDUUüÔ»KCõCÝ+±U;±æ/›KQZ©~$¢ ÞŒ´;´è™8%ØÇYÇádV¬§xR»«¸œìÆ?&åI>à ¿`(ŠXÕ¤HVz¡Ÿ$a{(žmº^+ k‰0ùE†6ð…Õ‘U¥&7&¸Èï‡i’¾ø–dìûœæø¶í9fK¥æôáäîZ_FÆŠJêÐÎtÀ·×}s¹h1ê±ÏâJµ]åd¥’ ˜M:¹É$õ'”qãšNÔåy†½åJÓf€¤’Á†(õÇ‹ .¸ï3øÉ¥ˆâYϳ~>ÿÖ82»5ùÕb;ÃÙÈ»~|dC%H_kD7s‡…½IXY±åËd7]ï ‘ã.WìÏÕ.Ó·›päËÅo¥^zØâ˜D“(KeHªÈS-x"2LW‰_fÄ׌¶q„Ÿ—ÒØˆ øE÷ (åM¦ 94þÉñóž·¨%¼ÈcëIQ¯ǽ5‡—¤×·;#òòŒ•~3Žw©ÍŒ˜3T­ÛöÔßßäД -úL¶O”—kS/š¯Ìð:6EÀ³šw­Ù|êËRŒfIB*DÆlAë»èžg·'ÿ]“çìÎP„¥ ˆ·ófwjMÄ£¯È‡Ú†9ß ÝîûaþÍÑjרúîQ|]ªï¹5Ä0Ý7ùÖt¬Ü¿YAUûv™q¶Iy-¥ùM;ÑQ3¢u•ocìÑ+` 7Œæ¯{…–ÆÁŠ:p¼\æ#o²]h‰òI—ÄÃ9žŒu„pYgוw›+Â;©©£}7¥ûzý;  ?}L3Ÿw×›»öo<]f|XüÎQu1ñ8ñ`öuKæ5_‚ÖuÓ(ÕÅ@‘Ì£–ÄÞô‚b+ÿÞS™Ø>÷Ñ)íÇù(ç*³=3oçüá낄âÕÓ¯¾vkg!ÔtŒî㉟7 !Q'mGíëc$"B'áJø[†Æã±L Wò}Ù`)0ÍßÃ):ƒˆê且—¿‹qþX^@ÌŒú2”iV².ßzÝ¿ *µ0Úæò ›¼yïUó¬å ¦‚.qŒ¶°§ã¹0þäíè^ëäÛ/XCÕn«¿Irs«Òà//9­YL÷½ ŠÀ“‚ŸVisÈz¦'„„ñSÜ%ü¶q¬ý‰<—`%Š•›—Üþw—Fz_<=ï`gÚ«¦þ¹3W&&Ôp7ÿ‘ëgôÝ ³í`7v»Üb£¶ùÓ5ž"ý,ͺƒe‚trÜÞ’á×Î6uÔÈcqK…{ù¾Šsj{Aòúá×Úd¬Oü28Xñ*pÌIóo=îv)ñ¿@­Ä\à|Gk­v‘Å«y­4_ؼ"mgN Û…<óSO¢,ì~ì<ǸœA%ÌIg¾¼éÄ„É>óuátqá´¹³[E‡†5å«¢lUÅ·HS::þ.žsöÔí¨êY²ÑFF4¾Ãr ˆÛñµúãg,¦É;4Æ¥ñí~L)S%u"wiŒÞý,pÕ‰óãö•»;Õ™Kìz´j —z7J_·›ýü ?ýÕCË ÓkÈ#Ì]æ©X—#bÅR1WF¾Ü¡QØIsÕ^êòJÁ…ÏmÞÕ*{®y¿2fÊbö6#¶l 7zÉ»ù¶©R.P1åþø@}éÀ3>ïh ÃòÄè9ç7ÎWò´LŸBf²w Jâ`>Jñ2¦4ò)–).~½-–n¦ŒíÂ\9UÈóåt‚w·vÆjQZç«< *&ÊÎ(p8š“º§És¾¢ú ­Åÿ%ßál»[™T|5S¼Íß² ëoèéµÔ׆‘=ìóän¨ÊyYšoöøiƩم!G«ÎHD„@yÛ„UTŠFXΛzF ‡03gêÖÉ9ºɼ¡æµÒJˆEØWžîËÙOÑmn(kÉÖU>[¶ÒbuM®_iÕê÷kò í7¶µÏd$$yÆ©Qò>MKmîÈœIÑíˆÈgüi3­á"—†|kHWŸJ$áÙÜY¾¦Î¬¡Sí#ý:ë&|íA»¨ UâCSzßÅ ØõÍëw'ÓRb/ƒ¯ÙßÁ~+«‹Nßãi»ZþÈi`|"„h>ðAIÕŠ¾˜ ¬tŒò¸'%žH¹Swä¹¼Óy¨³`á—­7¹(®8ÿ¤TïÈæ«¬£-•ç­„pÊtË9‚0•[I×£‹-iâ… —µåóØM_D„o4¢é?ã™Ù¬U†&É[Æü¸q•$Q÷:&È=H£à#_Á¿ì Š×ñÈ–¬Óˬì^“ài¸è-J½<¾öàä|6o€E7w74ß0™[ ƒ¡À=óÐô•Óq¼3<þ„M®Ñƒc»VîÛ“Ô´.Ïö¡ÃËSÕGµŠ÷B[E’48$Í„« ›„¸'tŒ&ÀŒƒ“åãò»Á_ÐÛ‹{¡Þ¨{6Ë3eìï¼.% > <Î ÂìJP˜¯ •Ö TP6V¼|}É*Sk†ɬœ.íóÙ\ìI&2Í‹U•¸Ôtw\1#ì¡”xÇù4–Û¿:¾¾3†øQêGͲµYéܧ;dùU„zžëK¼Î ˜âÐÕ%Ù—Ñä—½,››^#Üw7à f™¢\É…cŸÇ½<¼nlÝÁ0–ŽÒ¿ë|{ƒøOÈfO›èKšYò×r·(Ãè性yeg¡ñ5Šgá«4÷3î°éD9Fâ—ön½è*ݤ QŠÍ6­HLñ€Î8¸útüít>¼]=òP‹ÈNŽ&8æºê‘–¾š.nÝt`òT ªw (’HEq#dN,› ÆŽ'×µ56e»0)³ „&f#à>rg1UWëÂOåR Á.ß\ JÛq‡,«xB_í³ÑgSÐuÝ5+~5£¿ ­‹‚8/ gÈÅ)#H3n33}IÇðX¦BèdÔ¥jõ׉3 ±Ò~½6G±®Í9"‘Œ7ú¾Pæ¶ÎÄÑB˜<[áFZ¥ý¸å…r£9ÙÎ`ÏPï1Ì‘ÒPDÝíq6¤Y9zÉ‘õÆ1Y%&'v¤wÎp?îDNÅÖ(Þ 4Yük'¿Ê ñÚPd+gã’vùÎÏ<;Bèû÷$·Ò9_/Ù‡ÉЉô®ëÕBƒrgßôìLT×_c£üì´†gSäpØyýj»u§ÜnGìîøÅpZŸ>åg KWYµõhvMã½ü¥J/¸ôµC·É0Eõ³ž„¡S˜šEVÇ»ôÌ5è?G\´×Å,d`i¥Ê±‹ž†qLdCùÏ–|粈¢nŽâº“ý„i’¼þkºIݧ<Ü8+jºZ¾Y”„” ÝÒäÛ\DZIp+¼GüOÐUhï½B­Ü»:T«k‘³Ã{NÅ7šïKŽÝ Çq\w2²¸OOŽ7rï&Ocõù |ÉÚ/ýõœZ¢L6šóÂ@bÉp-Ì«Ûn,Zî³(=6Äa»>þÕñá` L½WÎCþÇ <#œå¢‰Þ›RÚ ^¹nðõË®=õ q±[Rº_ÓR‰¶$ƒjšÎ•*žˆWuŽ+-Qù‡A“÷œ•FßÙÆUuO Ž›è½Ó½®ê(b ×hZÌ"à&{ͦž¬0áß gOÑKêùëâÖ|•©õxšÐæ ŠáùÔŒÉùÉR9a˜OÌ!ÆÓ{JÖb”HïqßÇŽö•)„#¹ì¹ƒÀ惛YD•÷'I¯£UIËWª”j:lDŒo"aY¼ŽJ^6°"óŒ¡.ëÀG»±¢_·Ùl)”Å=+®÷¯dyNT±4ˆ]ó$%ñý¶nÚ´øm8÷‘ÖáöYÖ5ë,_ŸÑ¤)N|¨hł˔ÄSˆ±òg{ÞÞp%¿y …Îè5…o‰U›>J½?›Í–¿ÿþK¡[K®ì—vx×GÅAªÁÎíßrH Tùþ •X’¿Ðî±¶ó§kwƒ#=ðœÇcПŽ]aAü;°î CwÛsÛ©Ê”›|SB~ñÍÕÓßÄ(Kºê(¼ßníߊ2ê%>ñRqK\i»2¹jÍÍâ˜)Cd9žùÊ5פkûL=PŸ!x3´íæ^â¢GÚ¨D¨Ôå~ýL<5Ñ=19ßèáb ÞãÛq3î¿Xœ{]ÆqS¬Þƒ$]š$q!Ð3W.¾ÄÃDL[Ó\|šþiÓ!ÊèÓÉaµ ‚:Ϲ÷ ÀÈäKäɈC¹´òˆK˜FÇ÷>m~LØæåê9½ú‘à*Ô\l‚J^EÃG+|Üoþé…ì“ÙœØx“€hÔÌÛdŠN#‹–g¡W§ã‰wø |¿·ƒ›ŽÁ)åVÜ—KfgGiâ?ïÈïJQ§XÝ̨;»x{¸#¨,Ô^ÒˆIÉV¼|“±LfB ×éóo¾2m©ŒË$ünP”7e›`úıåº`«p¼ö̽ìÈòQßÓ³Æë$¨¶˜“EÛeWÒµåI2ìó……f9Ý^`{ÎB…‘ *¯diàÎÅy[®œ£ÝmïBUsq‚ôñòÎbÜím“èìyR4)ô~AƒWí“ó#ýé… 5ãý¯ÛIóýDcîéMèF5õQÎÙ¤¸|Ùº‹dÜ¢H—³%žÚÕÞð×>ØiT`Í&Â;S-V<»RDÇINÆ~i¹¨Z70l¼Ú÷TÊQŠÇ™ ¢ ¦5Ï rS†)w¸{EžZ•[¾çÖú:žwÕ“Å£HÒuÑ9TY!¿>ÿ8÷ù"AMðæ;èURJ´qbå«ð¸„’`Ë~a±§[($t_Y¡á\x¨†ŒÎÓö > stream xÚt4Ü[÷¶‚袆!:1Œ½÷Þ‰hƒÁ(3˜Ñkô¢%ˆ.ÑKôNô.D"ˆÞû_rsÿï½ï÷­õ}kÖúÍÙ{?{Ÿ½ÏyžÃD¯©óDÊ n‘‡ÃOx¸¸…2jºJ<Ünn^.nn“.éùÛäqA@á0á d\ `äOŒ¼ªÁaeW/€G@˜ç©077ÄÍ-ô7î" »A­j\e8 ‚Àa’;yº@ml‘wûü½°Z²x„„žrþNH9B\ –`@ Œ´…8Þíh vèÀ-¡¤ç¿J°ŠÚ"‘NÂ@ »»;ØÁw±gã¸C‘¶mââ±ü v„ü ‡  k EüÐ[#ÝÁ.ÀÃj !îR\aVÀÝî%U€†öXõ/'àÏáx¸xþ·ÜŸì_… °ßÉ`KK¸£æ …Ù¬¡€†¼*ÒÉ Ã¬~Áø]>Ø u[Ü~·ÈKiÀwþ™aéuB"¸P‡_3•¹;f9˜• ÜÑC"p~õ' uXÞ»'ðÏåÚÃàî0ï¿-k(ÌÊú×V®N@=ÔÙ¢$ûsçÂùÏ‚ðsss ‚gÄÃÒøk]O'Èï Ï/÷Ý ¾ÞNp'€õÝ_¨5äîÇvƒ.®_ïþmáð𬠖H€Ä ÃùOõ;7Äú/ûîþ] €çÜwôãpÿúýïÊäŽaVp˜ƒç࿯¨¢®/'­Êñgäÿ JKÃ=ÞOxùO@üÜàéÝÂ÷ßu4ÁÐ?}ü#W f ýÕîÝ9ýݲÛ°þàßµÔáwÌ…XÿCtcn~nË»Ïÿ7ݧüßXþ«Êÿ“èÿÝ‘¼«ƒÃï8ë_€ÿ#v„:xþAÜ1×y§5ø`ÿ 5€ü%]5ˆÔÕñ¿£JHð¤`6wŒ~ÂÃÇÅÍ÷—Їz@¬4¡HKÛ¿Xó—_ï—Þ 0ˆ&ýõÂÜeqsÿWìNd–öw¯⎚¿C; ý{_9˜%Üê—Ø@ü°‹ Øçî®ï,~€7Ï*­ ¿É rÁàÈ»ÀÝŒ¾k¸ ί‹å¹ëhûË÷Çä¡ÿ1ï( „ÿÑÿ0Ÿ€®ÿ0…@÷ßæ¿Z´tuq¹Óëo.Ýõÿ·ýûq€@< –83SpK‘`»ŠàƳ2)j÷'kC ¾Ý‘GØ«r”nëZ2¢ç‡¼ï£¦¥Z'¾G/o nkí rÛ›.ú¤D ?œ©jÄ´¶Xáô!»ØB¨º‚¾«´´™ó¬lî~Òþì~$9ÎFÎ鼿6™¶¡ Êü©äô£í.KÍO.<´¡è(, AA^<´à&©´¦ér©ñ‰f%FÄäÐvÂ#ùó”®~ÿ·î¯Eœ¨ÐåêÍÍN*Gi›âo~´ P©˜Æ™VÛå(.cYƒ_°Z t$‹¤+­Ž(¬F+iÛ|RìYBïJF—YŠeØ[º/õÎÂ囩{‹lA}äL¢n®/?KQ{q±‰˜ü}ÜÎéûò£?ƒ+¸Þ©ø¨–÷ŽÆ›ê"ÓÇSr9ûSIj4u½¿ðŒZÞï r‰rJ7=Zñ×BɈƲûâ`68Œ,×Ëiì PÄe¢'ˆÜ¿¤Ýz¨ŸCã#0¼3  Í"K¸6²ë>Ç·PÊw({:¬.2áS<‡ÝýQf áS8íå`<7U'0ºÎEÒ“‚|Šl›õš0_äAò¤7%sbáȳñãtó%œ ŸÙlÑ(Ôzüºn…¦?Ìä6¸R-œÂëªü'ô65É!}Ï ù6ä‘^ù€u\$n±ïp–s´©%gˆä‡DïðÊ~v¿ÝE‰He–Š¢ÎJ·cÆ×•GÐJÆý —8ÙoéÞéÏhÅIl¡ÌÿÀ¡à(rÍA-è2÷%®põ{_шòöãÊû$¡ã–µŽòǃjbXÖ\Ä㟋W¨ü(ÐŽãÕnþ\}‘5Á B÷žšøëÅ»¢X)ÅX½’½ùÇžVæì6;:©H§Õ=BRbJn#VÆ¡IC7*vƒ—ˆè-MŒ›XÉ}[Ã=ª\®.0ÝSÞ1~4o?,µ¯uÅnÜÝe‚Äc»¼D‰òÎËGËoï™âLªÚ~,É»TB>ô%|ÅZ!en^ç”Ò¬9#Ð>Þû©î) R[^Yÿ!cM©åÁ`)ú2á뢟ºíÇH&î]ó¯a²×–8Âbœwö¿ÂðDâ€û'†Õ™ij(õ(xîFVePÞÝvý¨”ï Œ¬ü“ø>\¯µOwb̧ž“y OÓ¨ !˜kzžR83a³‹}©9bJ¸~G€íÿ^™W^ŠiK2Ö>3fŒnépÌ €Vl’asØù"ÔÒ“'j|Á´˜6` "åwUz¸È<¶`õ^é~޵AY#²Ø$ùܳy“DwŒfq°Q˜©V=ªã q\XRýàókóë Û%C„‚Cå Ó:A\÷`2èíNƒèmuŒþÓ§Ä%¶3S§`éGf!ñ0TePimÒ'êµµ¯y³g}Õ,}ÍÛ’âr®_¤(–mGa.&S•BQÓ¡äv¾q#]ŒçïV;qô´œXŽè/›”Ô¾V ¾Çžÿ2žo(­ßÖ\؆ZËæmÎ: ©¾”ôYˆ¡îq.ª,û>cOQcñ7OOã,@JŽ¡·'Clº–”ûp4šIÅ9•\ÿö=J€¿pŒ„N¡ËcPí1 jÈ}¢ŽC“íæ®>·‡B+^.nMw¶Ýè‹™àéá“ ú ­.G“fÎøÂ0ø×E>l©±›^Qºá8›®ƒ§ÓG­å³yÆs™Š’`n¾»0µQwÐÞß VÄ»`Í!½ µcäŠ=#‘™%ï;³rY%j}–åÕÎûzP–Ê”Žõr¾È3¾P¢¨töQŒŠ ¦@–ðÑòÓ`©ÐœM\9[æfçë義Ýò]èéÔœíWb¹Ñ–³«ïA¿¤¥i@…Ñ;í¼÷…6´¼tpVdɉD]ã'µ`W|•ÒvHJs'\ÜÃ{Þ@ÝÿÑJÏÆ»R)‹<¸Ü¯ª< òOö!lªÍ˜Xo7Ü3œq°>xÿäB~ÈgÐñ €+Ås@ªÕHPÝtÈ6Þ®5nM“Ç­ô¥ñ°Ÿƒ{‰r”½*?)¾æ~åš¾JP>¢S;  |fŽÅbÃÆOÚW´!l\hKðîÙk…&úÄ:O€Pù¤K‡-ªeú*pµWQÉ"œrø £d¸‰ nö‡wÚë5rGšGUû¶U(ÓƒM^&ò„dJÓY-^³•?¾«ù0ÈÈ•¹ûJOëjÊÝ(á.áev:t áÓvíQyãÞtÄ“™ðsk9™BÂQ2*…“Á•œ<錱(ŸQî4©km{ÃÃ¥ýÈ­ú[I‚ãÚòÄ`}÷dY÷ñâVÅÄ[ý7F#Pg¼²Ôù¯ÂïSåàárö3‚€ Û(¤‡Öþùï²è˜Ø´™ú,ægì 3ƒ°âéwÉR«±ûå´žÈÐ=D$©ÔNÜʾøxPmü!PL›—¼—ìÂJœþÙìPÌ–PƒZ¸VŽ¡D þ¤Uår *ö|;ÇôúYé¹%sÒþnàÒ±SºÔq>‰-{]! ƒÓ³¬ãõÁ‰AN‘ž}hJy-iŸÇa«/ÊXh¦k“¯º5]ãzqdé%$±kZ5îyUÎ*ò! T>·½y4ðdúÌïéGò.Âホ.󙵿p?oN•R3ɰž4ü.QãaB­;Kù¾Ó¿Ø}‘=ÇÔ÷éšu´UW"Ž2(e‹ô˜Gƒ«Ê½f  YPüX|³qúX&ú‰¹9V‰õ<ŽnB…œB¨ÿe9$UÉUŽ4.!Omƒ;Ο҆*Š{U…Op4¢ðÌ¥#q*ë;`÷Ý¡êjk×i“`‚­ð–Ý#èý4Ù5Kš0A{®³‡íÒv"¢8¼ÂJ`ñÙÜ[–V¦‰èýeØéxùÄŽƒq§ÌÕtÀ’ðûÄå—i,>OÆž!dSü¨•~Ùü×t¢K¹ˆáÁ Þ¯Éø¹yÙ4‰gÜÙü‰0ºúÂ·â¯Øé­î¡^9Õp€Ðü–v‡[\zÙD”EêÞŽ†/)ƒª7Çჟç™m­‡þ¤ù&&¶FD}ÿ0%×-u".ì0šð°¸wqvPðLÿyÙ8þ&nÛ(ÛÆ䞘cßòE_ ðíõ'ž‰hB‹Z´²yB×ä¾ýòæaèS-¹O-×kWaÙÚsA­J'áNUžP‰/~gHB¥Ž•óÁ-äyû@+]Y_ f9'E޼âgíïoe?l¬52f¼iQÓÖnh5ÞirÏ;iºIÚ}º]2SM” Í=-rïPût/ØW~ÎÊP».®/rÇ=ªçûîS=X­À²#Ó ˜½C³oaAë¯ÂA–š r^(¶¶&Ò Œ &l3ÇÄ`Àý U%øF†²¸G¯ãb0e7 É~ ®(ÈM €×ì_F.?ÂO|Mà°¢d«b†\qLW…œ6ÛܼO ǽ¾ Þl¦¯°©zÀbÝ!á\éÞü’¦’m4y‰<=fÆEËä}ŒrÍöíÙN¯7ç]^Q#-јXßóJ™xèsPz2kÊ*C œ\‡¯¯ÀÚ.<‹+.WWe$’2a¬¸¦éµ5Ë·Ú¦Üy¡Qƒ*Hâ]ïÉéÊK†ÉÅüÓ]Yë3ú¥E1Ÿ¨øB­/8è+ÂWû ¬-÷ŸGvø(E#ÜhíüSúì‹5qmhV€{•b÷¦ObÍLôPh3kÚ½6éðtw9õ G…ˆìwf«^Ý>ºõ'áÿÖ¼X› žì×r(ÙžIS°·:YÞñÎI¿ï“¯]Žv­ŠJˆûƒ¼Û„ÔMFÊöc7+–§¸à–”  |“€§ÿ,¿¬èsDD–NŸÆg<)7 ‰¨ä×™‹ “h+uqúö17‹…á÷¨h‚½>Ÿ;Œ›Ì˜¼÷Æ *Å™™½h”°ÈÒŽËð .ô›t. zRÑ»úï9æQÆã?ËúÆã5+_ýH‡ˆY«út8¶Ù–à„Qé¦ræ'µEµsJnñÄ«Ô;Ow¬‰T+9 Y²^™ Ä~fÁMÍ&GÛ†ssÄš°¸ÌßéB85ó‰Ùð6f¢7w>kV7†SR7(DĽ÷æ´p‚òÝNY‘×çÆñü¥‡Ã›^ÉSlôyûxK1¯ž½cðê¹¢ù¤9#yÒ _'ÑÎpԱ⌂i‰mpkp=Úwµ>äJÃÏnÑ…ŽE!t¥þ­=ºŠy¢Ô÷kíãtvì9œ©§¡bëa@Ÿ‹j™\CPZÀD¿ÁÃVzw©äŸÔöŸ{YtÕD%uFƒ£Kšì5­)‹ëÄ%Š~ ¬é¢€T€ÕËë-*-ÆÄE3&OÌôF~™Þ.WÕQÀß./¶ÀÑMÿø‹ *ħwz0a¦<ñž™zÉ”Ú'’ã9aª¬‚ô|Ì´„Yc=©«–L+QI3ò¾ªù’=œeý`µÌ…!~/ä ššãnR5´û¦I9üËt¹É–;Ô±íG‡j~ÖɲežZíh¦½x¼¢ÒGz>‚Ƭ´ÜìróÙ 0‡tNqIqÛ:"ÁÄߌ!duŠ?–CHndŒ¤Û‰5ðéów™ª½ºç¡•“$%ãgÆPlÎÅÂD÷$—*Aª|ݦ-èÍ“ù04ÓhÁ%RÞÖ½â7ßNòD=k=¶¬Ö®tkòX=®.u»OVË1g,ó–÷¾ø„Mf|iLÜ„h´} Lj“_Y¢O~Š£}“‹bê·tqƒµÓx ÑÒR}ºµK2Óp pšEÉ2É%ˆ‹Ÿj>Sìøyé/Å´ñóò%Ÿ%Q›„¡\àr™ügJ‡ûxæPwô–6üG­àyté•!ôTÕþu±"d›µajï²|6?@›“ûàªØ­¸«Ú=lu‹ù Û‡tÀëw\ýëÍ96àFðvŠ{( ¾¼^ŒÃ_ã¢ÊßÊé^,¨{ÝR¤˜~–À|nÃ(>ç‚E(µu&â¥S‹ ÝœKñ<ÂÔÓ¸oÔ™© ‘îˆ>úAµgçvýËþ=MÇÒD5÷vg‹œ$aœžþí4|Sù¨}Â]ê©ÕéäA*†`Ðã ìtW¤;kÍÕ4 åiXIEÕÊ@î/ßðź¿†’œqÊ/À=M¬Í®MEÔñ=õâ1óØh'o‘Ÿîírö¶Ò§BÝ#<2^S>òößÄó”9šÇ“±ð‰i¦øˆKXÛ"R¾’ø”ľ-áuÎjú­Ê–ÏAÓ›Ue°Pµ×¼A+â}ÿëa+Ù2LlCÅ â4c«Ùôx»f6^9&Ø5‹¥™Ì_E#ÿ¢ÔQ›Ôx^‰ß J¦áÇ/>b#ùl–5‘ƒj´]èúÛ§/µ ܽU•ö‚’øW¥½x!'eœøÎIR½í sh²[u|êÒE®Ø­+žH‚/§uŸó_3äÆ$qI´Ä–Nçæž;Ì3§­“RGhû½2p—¦z 3éäPâwf¢èF2WÑ$¢ÇÐó†î(hé¥:%EÛ&qÝßAjèð<ûü½Îc1o£ôŸz¯àªLƒób×eg€ æ†J·Þ "WßbgDY`k§Ö·2ùR ífGpfËÙt‰j-CÂÏójË"ÈcÄZ\5ö•‘ÖiŽ$A¨ÞÜÈìÆL]=‡ÒÃÊîDä½5¥{÷N­£”ú@c€êòÑJúµÑä³QÕYý¼œSOåZ l4­š¨è FQÞF[™û´e#”øi;t·•¥`Ïï† ·Æ½z ØÍ±O´!}‡9Ón%c†ãØJ ìVšÚÕm|¥ñx9.n!X¡ô!^#„Ž·pôMC¹`ï4ç¤òf=Ú%yb\=B8´GÖ¾î$F¡›‚±Ãy¡•÷lý¾RÝåFp¥´Ü¦r3³K£‘Åý‡}e:Ý"~ÎòB–ŸŸå[Z&SÖO¥4[©öäXpw'õ·E½]°í2ú²W¡DªœßgŸP(•5C¹â-"ÃqP²4tq¦M‡ dO¥0Ë–sL>„QbDsi+¬ÜJ…B*Š‚Qzºr6@)|pTD’˱ G%ÄÑ=b«.éÏɲczðઠJ§Lˆ”žN÷Dúâ[Ü®ð>h΂f_…#ØØLI æ0N '…I QivwµÒEÔ ‹%dò*5­åÉóOÞöߟão'±ÊÐO/¢ÊZ´cÓ ¤Þ“+ô š±cÚþ4úl»«}WÅà:žç 5z!i= øÌ)ÙœÉ%äÏpî.Ú¡@Á}b©ƒîïs“è ÂC)uÕ3{5`YÐÙñ‘ò1–bÛ¡ÈáÍ]GÅÊšj^Ù†ÙÔíŽ ·øÃ¬—˜²Þ_Ë)_P˜Ž¢¬fø‰ã+ŽoÊ7[v~U—%“Ù[˜BƒÒm F÷V‚k)*ÂцKˆ¥^¿V1R³¥Nr”;Up2̘ȌµßY•â)§æ ]ÉïPï÷j#±µ=Ê•Ý3ÙÅ;É!ßñ3P er;ÞT2ÓZ®,0ÝÅ¥t Þ }©ÆÀn¼ç “;m.³“s2A´¾%í²EÌ­"¥ªH’ñgTûÜ}ÆËüã¶?è½e `ÃV›v˜«ŠŸ¼È˳­043¿g bØó.ßs²2´Ùä“?º ‡“R»^h¤ë*¼êДܢY¼®C=ÅP «L,…Šz©î¯yQüÌjõ—îã-03!×a&¨ç7Lý°PtÓ½tHaÁ'ŸÙbf,h)Ä{®§]ë¼ðám”¡u©çï*~SŒ;±¶-”«ŒQNQJè&\¡Ù¶PÁà®_Œ;d÷®.³vé›\BŒâó<}vS fhXbƧòªÌûåª>ÿJ[}…Þ)²’üƒÈLÄuƒ«XÅGüeºwEE¿’¢ƒ¡tQ®dŠÏ?d–D®¶ö"Ü¢N‘ÞH²ÀçN“íª†ÑüP$#IÃÆ¢é  gˆ°.ƒ¶ÔCòÝTÊž°ü2«ÀsÒ²é©U¹ALDÏ Ièÿ˜W}ýœe`Ýw³y«)@/¿X„˜”‚ËWÄÃå9p,%‹¢¤÷ Ø&Ä›¬¼²Û2ƒ¤Ô5*™”ü¥§Z:ìt9{F¦Íf^õ†Cñ‰J®!eäl‡2‰éåxœ ^)ý¥x b8št ª6å¼Ï€ªÎÜMÚ› êjPŸüåY½:ºP ‰y•Äùf*cÞ&/%3ë ôúc…‡ó:Qíu$šä‡·¾äo0sØ÷žÔº¬ùn-á­ž')Ìóú™SÙ9T»½/¶J‰”ûÄ$oÓŸ_“`1øidá8”þé¬ßzÙQ'=ŠG.£ò>ré%·Ûá#CóÀ¢lÙRÏ‘$»QD#w°µïlèúV¥kǧnK²S ¯Qïm4g’¾´‚”ø6hT1Y,ž¼ŽÀÏê~Í£#€úq"%ŠiÙfPLÄÂ4ÁâQòýûsjþgËé±Y%ƒ¼ä«™A#æ5œ¦kè‹÷¥mÀ)f“ÔÙc¥.=Êc½ A!]ž8ëý¬2‘·«-gƒ6,¡¼r'DÏH¾0«±cV·±)(WàL1¾NН¨*¹~•ï5í•õ¹‡]’¼XçU1 Á+-›JË·®½õå¥pŸÇF±ˆ E¤ÃøøÍŒ€TµO¤]^/£š`ç7ÞåÑ ˆ”´< ®$Æ»L”§tæ‹j»#Œï—‘oE§˜ÞäGT‚ÍU Hô44jZ/7ó³t¶»hÅTÇ))Þ+¸ ˆE|¯”q! =ê»Ö[Ÿh2USÎÞ°~㙼Šêìñ#ƒ™5"ˆxÁ£×c ¢È‚ “&Eß‚gƒNz쿵·sꞆq= #u¦Žy@cFê–jÏÒ«<÷Ũø½ º4/ =•1KnIê 5# ®H+&EŽJüóœEOçû´|·[¼¦áƒÆy­ú6ö9³Ï.±oÞ y¾(¦RP K0±ƒûÑYzÞÃÐiGƒ|{Kk§_†W %mÉŸj‰Iš&ËpjâÕŸØ dŸ?QÙ!sWê ¶®œ³YÀÓµJÌ´â2‰âz¡¦ì¯u„A3ùëôBÎjŽÎDź²#‚¢ #›K˜&òªº!jÇ¡Ne•-$œ‹Ê#á*l쓇,>Ç´u5pc¹XœMñ‹ŒÛ³ƒñ-b«7X£m`•YåÞVQÝê<¾WžŽgë³JÛjàø6´æcNÊ[OÚR¦*dª¦å1à„!ö%ÿѧ͢ˆ±Z¶VáIõ:…Xœ"tµôƒ¾ËÀˆ×ò1§1 ÊŒžý󕊱Ctö2ì52Á7¥ëžìœÝ‘å#ô«^+ñób½P´·ºªÄ„,€´1ÑÅÓæ"œx¹±ú¥XòÛØGœ¯Õ˜Œ%UáÀ—Faªdæñé:[Æ‚«V›ÉlÚ™†Uíä+ß …Uyj Š„7¦j¤^/1æxáææi¦+ÝúSŒœr3| ¶ûŸ¾º.úF÷·k·]™Ð·æšÙÝùÒÞ÷¼©;ÖÎÁ¯ßL¬tmíz« ñtŒÀ³Ž¯è=‘Ï6‰<Ê7XÍ“úL Š™H!ÙcÛátKÆã…Tïû’~® endstream endobj 126 0 obj << /Length1 2195 /Length2 14977 /Length3 0 /Length 16289 /Filter /FlateDecode >> stream xÚõPÚÒ ãÜ 6¸»»»K‚gpw'Xp÷àîîÁÝÝàN° s®äÜïÿ«Þ«©š™Õ¾zwïMA¢¬Æ bbk”´91°02óÄÔÕY˜ÌÌlŒÌ̬êNÖÀÿÈ(>-lA¼ÿ°s:½ËÄ Þ lAYgk €…“—…‹—™ÀÊÌÌóC[^€¸¡‹… @ k :"PˆÙÚ¹;X˜™;½çùÏ_µ1 €…‡‡‹þow€ˆ ÐÁÂØP0t2Ú¼g46´¨Ù[Üÿ'5¿¹““/“««+£¡#£­ƒ™ =ÀÕÂÉ  t:¸MQ(ÚÿM nnáø/…š­©“«¡ð.°¶0‚ß]œA&@À{v€šŒ<@Éú—±ü¿ èÿn€…‘å¿áþíýW ÐßÎ†ÆÆ¶6v† w ÀÔÂP’”gtrs¢‚Lþ24´v´}÷7t1´°64z7ø»tC€¤ˆ Àðá¿ù9;XØ992:ZXÿÅ‘é¯0ïm–™ˆÙÚØANŽÕ'ná4~ï»;Ó¿× dë òü2µ™˜þEÃÄÙŽéÈÂÞ(#þo›w™РÀÁÌÌÌÍÆ Ú€nÆæL%Pw·þ­dùKüÎÁÛÓÎÖ`úNèma |ÿAðt4tœœÞžÿTü/B`a˜X;Œ€f „?ÑßÅ@Óá÷ów°pè0¿ €ù¯Ïÿé¾O˜‰-ÈÚýùßGÌ$'"®"ªM÷oÊÿUŠŠÚº<Ø ¬ll6.''Àû£(Zü»ŠxÊ€Lm<ÿ*ö½Kÿ)Øåß@ýïõ üo,EÛ÷¹¨ÿŒùffã÷/–ÿÏÃþ·Ëÿ¿ÿ+Êÿë˜ÿߊ$­­ÿÖSÿËàÿGohcaíþo‹÷¹uvzßÛ÷Mý_S à¿Whbálóµ2N†ï» 2³þo#-%-Ü€&ÊNÆæÏÆ¿ÄŸþÚ3k PÙÖÑ⯛ÀÀÂÌütïËelõ~{8¾äß*àûîüoF ±­É_KÆÊÁ 0tp0tG`~Ÿ$V€'Ëû6šÝþb#ÈÖéÝðÎÎ`jë€ðבrr˜Dþý q˜Äþ “Ä3€Iòb0IýA¬&é?è=ŠÂÄ `Rü/â~¢ü±˜Ôÿ ÷Z>ýAïQ4þ ÷(šÿE<ï:Ã?u¾G1tú£|/ÆÈÐØÊÑÚÐÑüôŒñÇ{8c[ë÷®ÿGòWó™Lþß ÿØs¾£¿þ¿IÿÒÛ;¿Oì—÷Ħÿ€l&³À÷*ÍÿßÉZü¾'°ü|'hõø^î?½s±ùß—éDÞ¯&ÛÀ÷ªìþ ÙßmíÞï|5Ðôv–Kþ‡ãûUÁdtx¿ÛÿaÊù·ÌÂöO¯Øß‰ÚY;;þ#ç»ÄþO˜wæöζN@£`û·ÐÑâïmùãûníðøÞ§?‘9Þ™;m,þ÷ì8Þ]߯Ëÿô^÷ÿž> Ë{ÙNÿ€ïÎfã=Çß±­Ã?KyÏæú²¾÷Îíð½iîÃÿÙHcg‡÷F:ý}i¾¯ëðßo è4FX^°5æ ´¬ l¨ÁweØ›˜¥ØÓH¡að\vøáüˆ ›HS•°ép'’8܃º¶+A}+¼BüâyÒRÒ¯Òöäõ¬«:½×†°4…=0™"R×OOÀ .¼ïõbïõÙß ²¼S–"ÛÞ™Y9ãÁµOÊ­®¿tu,xaOe¿ŠSîÃsé C䧈/þEs9FßçqIaœáhÑ/ÝPænïfѳ&߈ecé¼O#Ù <µ·X£~Ï{¬—«³:vá‘ãiãBÞ¢MSzŠ&Éâ,zFl ,f2Ó0‚mŽõ{v’œñêÈË ã0[;,óH‘{·Õ1ùkö"Âgì©ØÑÖÚ /âÒ™ººJJå*5öéí…À߇:Й(¸DÃ*º{îo/CÝjÜÊœÕNêxŒè˜îÀ#ì`­5‰®‹¿„Ø{c*ÀÜìswyå[¦—×xöZNžÚ꼒ȩý(“8wFF€ÍOLEAÅÈOkä¢޽­Á`ÿ_ÅÓfÿ¥›FgoEòÓ*£ýÕþ+ûYΘv ·Ü“‡«+Aƒ»uÂd¡ ‡z±¥qì™6V9rj}¹e>u˜-FRÎG;¸€K[KdMáII9Œ‘/j=&Bz„Î"X³&“Ï»6î!sß²_KóVbѹŒ¸=c°Ín5FT¦½p;'L €ý\’Íe§ò#’Ù\:unžýÒYçÉUëGoRZæÞwÖv§©™á‘¤•¼ˆú !ó›Ô°f£ŒíWÚeBr?“ƒ0r€rbPú7^TҀ쫚¨¯OÓ%'¦80¿Ë0ÄòPçL’{вÊÓ38ƵûÒá7æŸ[ruSœX¿%cï` ¡ÑàO‡Žª3MÙ‡~ü´6%yTsÓÂ’à$10Ó´ž+Œ4ë‡Ã‚×›W+©§*”Äð=ñûuO¡=v ¬^ÉS-‹™ëýkW;SavV3[§pÙΗj.UCãi‚#šoMŒ[©—¿üÃ%Ü´¨Z‡Jï9B%}@–¬;?æaŒ1c\Y#ŸÆÙüŒ²dtC2ºݛky£Æ~"™.䔬‡Çï_>›šRtÚå<ñ[\+QSy–DÏ׎"»–½ªí«Ó©¸Åß®F§ñwêX''ºö½‰î%+üDç‹mg#[cÏ0ô ¾v'ŸkfÁ|8Y~£JŒ©FWòœ–LùÖk¸®1äÿô0ÉDZž‘¯l#27D—ýyqÄc}$/.Ý›8×€MO!KÙòcuõn÷qy¬î½ªjz©X”^Ç ÙÈÙ6Рè ùÁÚ Í±p\-oµÕ>=dØ«h¿T)"ƒCܘzNpâ<¶–…J (½ÕwÈâJT߉2 Òtç«¶e­­Çƒ A´i="°zêÄŠY*›ÔGÂrT(r;³HT‚Yh[ÊŠô¼ ‡žajlR¬ªÈœ_²¶„.çõ°5#©üVo}%±íÍSz¡ïµð³®Ÿ¬ K‹]Ç–+?ÙTTÜì¤)ðÔÀüÔÇ”5›1r%ÙIFkwìóQŸI«ï‚4 æÕ°'ÑõµÈqm‹7x;Ì/‚ Úë1Ø2׃éATW–)IZÿlÌEû1wuß›m€¾~·°ëŸâw·¸ *&² ÝD¦€*ÓbiÙ¿+û–ý©sº¼˜éTéZ€ò”À3W®Ÿ—QìÔb\Ž'·ÓMºŸÃeGâyŽÝMŸƒ(t/:{¹õ9,­þ&³ÈdÇšƒÊhÔhÝž>IúŽ _}ÈÝ¿ ¯¨º×††µw'j¬YPH€è¸é6{:š3a‚„`„µ=ó¡íû‘„¾ÝÚ2Ò Ä´{m@`9¯õ¶Eñ“;¥Nºðù8娰Kh @CÌlõÆCõB¿Î@C/Ö›Y)¢~ZaétÉR×|^±Œ!ù õ뫇ÀñeºVΩѲë¯àQ/œbÜïÁ.bUáÊ@]I¨šÈ#ɯ;²°J$]e¯9ƒ½yŒ4Üy"NtɶÇËÇ p•H~_=0 öI¼^}+ i+ÇM>}ˆ‚¥at’!0·]| %¢e†Ì¶?÷k­ñ«<TÄüßÏ6@<½Å…ÒçÇ£äÔ¨ÃæyÉáÀ ù«Ån`éõi‰v3Q#…À^\¾ÿG{”çÚ™A-fü‰k¾×b ’”ì›SSÆ¡4U‡6yà·e°Ô%…‰|îÈü­¨èmÔ±Ð(ð|8~®MÏ*y» ´ÞûÏ4èÛ‡V#kl_OSÕmóŸÅ@Þì‚MÚoCÕžm8ÝŸ´ßx$J³æ¤*·cÙyV· lñì;Æ™ò·}ŽÝv’¢Õ‚¼2LyˆË…º4¯‡DÝL¥Œ$ž]5øž‚Rmé»àq Då­¬äòïm„-£j‚À 5+¢L¥N°D¤jl ”½Â/¿}^C,IQt†¡ãy[AaçB w—B¡žîyÝÜD*öGêé #­ðÙA¶UêÑOð*7Ö~%ðÍßÿ*ܤí'B¼Þñ{KØ0è–´‡o$s H:•þ6 «Õtqž±€óíH½ÐL´Þ c9’çÓ‹ä±l•)ºŽnχè» óˆ¥î쉮¸â«àOÜ~“óñ9òÁBu~ñ8ϼDrá|•·9ocš ·PäK!¼8FØtH(ý{¼ÿÝ®‘hÖäÄÐó"·×ÚªÔdæÆúžViDÐÀ6Œ1kèf•±æ f6 ‰ïÖ6ZKÒ*¶Qï¶EËô}¢Y`˜Z'PÇ#- 8ä Ù4§I~?E„´dx ‚ ì;U ät¹õpÎ6ú ÞoáVo<°nà°ŠNéÐu@€„,sz ƒ½Ò¢/ˆçÄ¢v¬f}†»§E~d@“ßSq;݇»È †}Þ™ˆ¦ûáA]wJR¦RÝÊí2ÝÒÌ(S:ÞŽ‘š¡{ç¢,ƒ€1b "™"ßξ³ôFÛ·\PïÈÃ~ÅS/nÜX×!}‡Ó¶²)¸¡å6gh£ÜI:^}Mìer¨Ä7e¿ã¯Ëý›Ó½¹I4ÔVÞÉÏSÀ´«±œœ ùÐïM{û•â7m82úc飓‰c.vº¸¢‡qc[ZÑS‡”ϸïROs&pÌN8gRF€¶«käèAÕ9Ä»7i¨!R_š*ÈŽK‡ðQÈá¼) K¤~ýX/ŠÎ]¬µÝ„ jƘšô|®aðGix„Ëtz›ñV~>MpêÃÊ-’u«Kä^šU%XÝfÄùâ9bà¼þ¦ƒŠOÜPtCqÔÂÖýÄÕóeÞ¬(KÜpü>yú’-YaU^û¡úºCɲ3ùÇÇÊÍ•}ºzX àÇù)Ç…ùÏÉá4¥)I¿º·`Ke¯´>_¦sןv±t¿À˜Éʳ` a(Ô aö§©t#\t´˜7MÍf9Ôÿ¨úÀofíy‘Ë¡U%7)௶w¥{b‚ šï§Ë1/í¸ðt»†5pÌt½Ó>fõ™`Ýyßì§oÂKNøÂ9ª7»uâTžðïªN}%™Í.¼ôI&Ï=(w‡q\7$SüœcÄè\²›Ó W‹³]÷õjßKv©²>â{xⵜ5Ì[)Áù øƒ-!0çÔôô>Ž{àïÊÌV"©mW-%Ÿ¥/ (>eÊ>Ë?Ýñ§”Háî®K|V€wýtŸqÊž¼´ÒGŸ±eQ¢e°ÙB \ÒÕ¢‹´¿QˆÍ§múîÓŠßå±ÖÊ¿áîÿi_lJ88Y+/?K\·utÓÆù{ðç“·Òž£ºQƒ6Ú|‹Oš>[ØçÜús¼l˜z|vÕ#ÒhBìüÚ©†ãËmdd¤Û`Ùä(nÊN¬/ mêßÇSÒòðÃÂû!\&J½yû#öáÁ†±×xUk8™¼Ž8°.D´¤ üc0D)îG‹;–<Š2_ S8"Íç×Q¾Ä‡ýþ)Od4‡ÕM_e¦¢âÆ~*­¨$Áù(1LÅGøÄ‚ Ù Îñ¥Âûe¨=°> (ž-¿ãúMš3aä§>#œDª‚Ÿàj7a™Ž?o®Ér_ÇGu[<]¯WhÂ?I}ñË÷±›CªëC U?ÆpBï>±>¼I2u™:©'‘gµ¾‹Ãg¥UìÜ`8ðS˜¤ƒ¬€Ró¯›fL©nm9ÕŠÓg³ŸX…®ÍÄÎ1UüË0Éì¼µd`åt~÷‡ÒwÌÞ‹¤\¨*Ã*[Yðßk¨ƒïÅçÇ m„:M(…Æ)¤YEß©{Ò~aVÿ0ND1$º²—­˜X+Íœl‡÷vö*YŸ Y_ƒ´²ñ[<ÁPfOÐÐÝ¡}1~^ï·IGirwÂKfÄqk«OÜT•®ÉX@ÙâͱlU3–›ð5mnÊÆ&Ü/m•O¢¢Jþ¸O7CÚ«B-¾§º&¤ @v;Ô ÛYtù0JX_´wPÝÕ6€Rj}€|[‹ÿ;u0t_|¨Æ‰Œý;lÿ˜ÞÝIÂî'ª¥n†š³Sã­ž£n˜2šU6 aŠ•>g–UØ6÷z©Y¨Oç”À’ÃJ#²€ì¹Yüp±küu±:;¶¬ØC™Ve´$YmQuÏ„–øÀZñ g)ÚÃr8¤Âõ‡³~$.ó&.[~§M¯$Ó᦯ÊÕM³éÍN.• ¼"TnÛŽÐ0†½eéU* ÂHÔIÚl-]fcŽúà4á”CîN[ '¥ôT‚Ï‚´W/—C-ú/©ß¼!ײ¯üÔefRz=}õu>UnÊG0z~r;sx8Ý[ZZAâ£ñ¤Í ä˜B¦M\DÉ+i›Þh-qš£?mCØž3¨vèÔƒ€^\·>Yn<’q 0#ñ€DLg„±‹”‹]8s0E'4<¸ ž€6g ã}ÇñŸ²~®ÆÚ^ݘÐäbC:ÓDa‹À˯fHïÁžj·:ø>²y‰ÄzHnk±ßiÀ.©H¤ÈneÑø¼aRdét¢) õ^õóae©º†l¶ JTpä ‘fjìyùñÍWÊpžGB$hBP}1 ;”û}ãèÍç©"BãúQöØ Vs+ Ë‚Í9B B=Ýž#ÖÈ‹Èçä1Žÿˆõ©‹ ÏHÄ;È?+õc¼æœçÁ*„/ñäÜÕˆúÎúØb¢Vp¬+n³pò[)úÄ·1wo©ã œ!ã¸5è_Iio\ÛrH¸EG~DYƒ3®!BØÞMb7Ì;‡º È5ª 3kó—¶_+èeÚJ@l/\$ ñk†šåô|·šüèàI;¶øm¤Z\"Ý͘y‹êI‰XŽ Ï¾T'ÊeÕцEeÔ›"æç\®Ñ—‡ 9ÄðªmV.Öä^÷§Ìöv—?TÜÀ¦lw¥UBëR]<®Òû¿^C—¯Ø£ ŠÇ€%F÷)­BeŸ©ª Ý.±ˆ{h·Ç±ásÀÛ|ÂöÄÄnr¿U&Ü2Ï:¤á;¦O¨‰UîCô̸ >éÌ=Íéñ“0²WsÈ'l( ¡É0¾bÏ'Èœƒ±„˜e ËòœS¦ÊDC‘Õ&ûÍ¢6iÛDÑÀéŠ+°Ö$5@&Á Þ“ªZΩFÊM.iÆBúf VÚ¶}¶ë˜? гê¾Î˜fCúàlžIõÎ=/5œŒ‡Òg¡f—§ìšY ëBHpc4 A¦d-†*2ØÁ¡Lì±²Z@?:ÂS3éô ïzñ‰n‚é:pîÎkÞ"j4ÓC´‹…‡)aß}S9ý¦eP|` «/ZµEd^4gu„ÁHÂ7Ìx=9ˆßIÛ×)¯p_>xqnÔ™P¨ ‡—lèid+—.³šþhÛŒï:oFxÍ×=é«ÚaO(„vYFõX‚²®ö¸`+³ðùK쪮łºÙPx¤Žþ¦vƒþ©e0AeÞkG~U1•"·+ŠB(,¯KBØi dóléE‰ïv¼a¡6ߤb”A â}ÍÄ0òú⢄ÔÈqËÂ^¾ï£6h„°·8m¿'85F]Pc6°dûTˆÕ ?UýÝô–ÕðºVþ]•E¹#ËklYÊV`ÊŠ ×ÀË&&ç„:âBÊï‹=T'"Ä#Ð9b7‹;ä‰ùø¨0ÚÖxGé-¿rþ^è‹[À¾šõYgl‹Ž1W?È踘Üé®,†å˜±Ñ{xap¶Ûxú¹Êóg?ºËéýZó&ö˜ÇÂMÿã‡q°«¤¡©¼u0ž1˜ ÜÒ £§ÆÔ‘r÷£©Ò…œÏ§]$Üž…™9Á¼õ]fÈL´[_bå|Ѹ& ZBm±áô0¥Ìc5?øæº#¿yÃhœÖ€‰…®V˜=µÀމÄ{o®opsØË Ýé´8Í2b•Ñž,C-Á"a)›Úýu?a+ñ”b©¥à>|¥ sîc¶GçòXìrl¡‰¿(Þ×Q¹Ê÷ !ïÑ£×Z’&i¸Ô¹+L™º¤·äÿ& ¤Ÿ–†­ þŠ:ÝØ.¥`tÖ‡E_¢ÜåÖ\O)ƒŽ›–úv’m!@2šœ}èÁ ã H#?~\€šÖ­Ï9±v©tW¾Y~6‰˜Õ!‚ pBkõ˜výÉ7mf\À“Tu¤‰¨Æ}Šîù=yþ»V¹,»–cË%¹]ºSÚKÈ>M ͦ e¸¼Æ˜ÊÒ®|~ÀùÏ2¨óoÙx' ˜u½TÇÖaÞ,½dÏ^‰øþ&Ìiˆ1îéuÑ]'þ ²“: ÇUx¶8ïTÿ}ÝIE‘—i7’BÄ3Ó„KŠ×™Ô¾Á‡jמe$¿ÓГÞÑ:ú¥N•…݈zÞòðRðÑ,è˜2qL¢Jd|§HdÖ‹^ˆº±h3;t(JÁdt·S L ³bFk9v«²nϪµoê£2k6¦ÖÓ÷üY8¶@ÔUPÂÜn”ÑCK ˆª4’‚ÎÔ.K9’§kBnÏœ9Ëpè»]?¿ŽDT¹]ųº?$ê(J¹®³Y)õWtµ¸¯& çâ‡jtôs臚Ç|°qÃÑÄ,ú’k¬qi±Ä´™À2yKdŸ¾õ{Œ\<Zôݸˆ»û ´ S!à¥ßX"¨2 N÷€î„øûǡäûl¦5¤ L•]) S*0ï³ë:œ¢Aö¹aI£¢ôß–‘ÂI~ùB*À9VZ 'ÌñqhÉÆÁñè‹–W"ˆÄæ“Κ*Ö=ÛéÅ7èD¸®).DP­º—0²giÑÓ=of‡„'ÿV”ýÂ#ø$Â5¯ïŠçGÛuº!ÔÞ›½'´¬C]xYÔkîòUªð*j-¶h'ïtcëTBæpRôõ×qV¬+hlÃÿ’±Í§£Ó\·íÕ}ØL-ã¬ã»ÛìÖ½z®ËeΆ|®3P7"vîD4ŠŒxo(e7ÃèÆë©Yçå¡0µPþéò¹x¦?ù9ñF›DdŒ´VŸ]O[ÔÚÍ«rL™Mhœm>~Se†™gç j­ 5ÞȬSª@¤>ñ°U·9P«e_þñ YB¯Ã\é@=œÞX¾ílѽùLª 6ÈMtÌÑ)ñ>ªÝæTSHu]Gd¶“ÜþCiއr˜«ÿ0.nDê ×¨x¤&§ÁåDÀ)_òËj5Uªßª¸Ì<¼yÙ†2>0d­§ º×ï#‚Ýâ5¬t F¯Á9B“ë i#¡±Ö—,¹Ê2ƒ½uÎ2^GA†U Ðf¢ézúð½Áñ’.s.pp]䱋%› I£¼rªX®GNIu{²a‹Hjö%Ñ­öu¥ìKMì‡nŸ.ÿ¾Y¬·Jz·Ù _«/”mª#‘ óU®í2šìáú©lnÌtÖÈzi‘p|o}fë¦M%¡½¬ÌcÒsË ň-«ÝÃP9 œ÷ÅÃA§g¥ˆ'é'†ãË•0n,+÷{ß…l‡rðÚõuiXÊ*×?¬”¨ª]\ãOÝÔG4c¯ÖÀýúfaVx3°˜–²ÒfòÜìon4];•²Üq PZ[{ŸéEº3-·Auäþ"Þƒ¢t‘îuÇŸúa§Yæ“ UY%¤Ênþæ0ÇÖ1VxXÁŽ~ÃÇ¿?G{’þäÔCþ<§—ULY¶&†”³j1ç:¾¡G?„"§Ä‰ÉeœÕ5 &ûŒÒâ΄@L5¤»6ë 6™HgSÐ¥rú"Í-r~ÃmÂÝ ñá N'Ɔ öîZ2ÁCÜÆ0ÚòâÿŽ¸Ë¿<zàÛ§œÈÆJàú]{Ù‡FÛC– ¢Ù´¾ø—]ÈÿÄãŠÉ§KÔßhR3÷Ã|ÈuPø>IP…Åùì7ê—êòjGIû5lÒø€R]†·­Ïô;VÉPôP–ª. Y¿3vf7/S(ﵪYš :Ùž¼$~åÊ0Àé{~—3ö!\§  yî•«Oó‘R¶/kÞ¼XAŸÿ¾W¼“[µÀÇâ¼[¯@‹+^–¤ãY ¹øº0ê7XL¸þ½SÈ„Î>“nßylÝ[—ô—f¨ê•_9?|Ã¥A‹ÅœXX µ¡¶\ǹtÌ4_çìœiÈF¾¢ù´:ƒ í°!$m”*0w %kðÚ$E¡g¢=JmWë@í¡$Óƒ;oV=#pÍ‹ªlD^^DÉ^ƒ;2 LåúIñH/ c²ë£îYDRšd-TžMz4ŒBÍW‹˜õ7ziê _m&ßëmj‚™-ñ¡ð­ Äp!äzGp¨Ã‘ìß_ä`·v_׎‚|Ó:°¥s©ÅLÀ ¬€Dîä̧ìD8dlÚbK2äÜY¶ƒîÞ{iSÛ4Qßë0ÆqhÝsüêä3D0NŽá7uiS?Òå\|"¾jUÕÛù êG¯„îÅŽí*4[yYÊS‚— Þ#"lÿ^Ê|Ã%%â üü1/1Äxvµì‹ú·ÙEŸ?‡#we›ÌÅœ”‚YQŸS”\G"óͲÙ_zSFÞàß\í8œ›e±ÌS’\ ¶(ëˆj†u:Õ‘³8´ýÒl·gªGDé`BAƇ%3 hX•\‰ß÷\¹}OuB¿öú€¼!ç\îvA¯‡¬(ç ß:ðÆ|•sYÂÓõ²GX[UqÈ¡¹Ç°æönD)¯¯”4u]õ£FåKP´$—)A°£O-ÔB°§gØ6º½¾TñZd£‘º£æNj@† ¬ëGgP€,»P¾ú¡e í*îôh“‰iÚùÒCûÀbOÊV¬•‚©‹b'Gõ ){¨À´¹ÙÌ9„ŠFYEµK÷‘ËËïsø|÷ËÆÙ®~aØBÝómûy÷Œ:«¤‹aúSˆ¿R.ïå~jÉ)H‰ Ø  ´’¶!‘H)Cƒ× AæyÐæ¸ÖæÌË4íIZ[æƒêX{2§†‡Öþ²P™…–bGåB›3 ID¦e(òÞ¥"Q&/ïÂÈç&Îqc^¨À²ýæ}ЊÄ?Ø9žµY)G¾™ï“ÕbEO¶ïFë\2±³ó Z£Ë¶Àp©‚Ùh¦l¦ŽÇ;Œ¹œc¤Õ7ìž,zÓøŒ¤Á-1Çä.ì`«¶D š XAºáé·‘£m¶ž'ÆD44uÒ·¢ïBšDO ¾ ‰MÄ­Œjx{QËŒ†’†qk´Ô©7MCaº­uÜãl‰u W<„ÎЪïéH|®{R–ž†ù1qh‰°»å M¨o`\yˆUu[SùF·œá ñíP1€~ê­OvY´Ï›ÕÊùôÝw \‚]åŸ8®z#Òm&É3 C׌l‹ïnÖbṙΠ\ô_~eU7fú,Šˆ`ÑP¤!þEZxÎ$™v93<­šR©նžâãäÅNËD=¯ËDåùåìãúmr5”ÍÀ6É6ºÊ³–o]ÇTBãî€ÅÅÔTjnŒû·}Å¥OyôñÖ¡¢Ì_î˜ òcÙŒ3­ò £+x·êwØXéy~RäþÞIŽY9;Õ”AûõÜEÁ¸±ó N4É‘C"& ‹W2=uù.v§$½m™ùbk½Ã1®¤hSoØð±À^ c/e'w˜ê´¿có4FLµ9ŸðÔ–‘Kf"……Ùpp.”!Ç¿©Hñ¥C!> Ü >Á¤ƒo‰äǃ&pN˜ÏûGÓÉŒX/úF(´4|F–ã¼åsÜa¡1tB_ aù–&"øø>„=ÒBê‚d‹¼®våM¯Dq³¶ZDN¤Ö*NØtѪÎÇÝ8 ǘ¦q‘‰Š@R“i¨x¡Z °fÞÚÂî…Î10Õ£6¬BB¨?©6?FúÖN–…¯åm‰¥Y¯isåé.˜kT[‘ЃåŒÞ¤‰Wz z÷uTì:»qg·&‰wxó¶–“ÍL°u…Ý<|% º·PI!ªÔýÕ÷ÉÌÄ ¢¯¨,ÐÓ€v„÷ËWæä”ÏíoÁ3Yq¸•˜¨™Lêú÷q,aË=¸jý »µ„JSÌòâÎÖÝø× X7/îÛÅqm«Ø] ©”­ºhÆq{úÔƒ9‡xæÏ|RÚ‹ÒëFÇ^Õã‘RFÕDˆ¯AiA’Ÿc© Ý*¤{‹yæT7Ùéà4̳'‹e¾öŽÔt`ýäÚ·Ód”Ýme¢VÈŽ'ì…︚R+%¿É*fÉ)€Ù}˜§¯S2,¦|龪T8¢$6ƕ9.(Ýï$…€Ùš~ýâ]| , ãý’ÿÑ ìƒrò~j‚öÄî®ßb`JD؋Ăü Áƒ s³y؈€OëÆè îÒ’‹ìJl8p;³H¯bˆb­œÂœV ìcšF»ù-Û£ïó§óKWtÝ{¤E* <§/+O„yÿXž›ËÛ}Œ‰ûqV'@V©ðÆg¶A5­Ûå `:`ßi89Öo³1Oñ[¨v3áã–Q]½ø½ØRv·›¹ª2nC„0J rÆ¿Ÿ~ËÏ´Ôß»ì8#WegU * ž/:«ñ—¦ä©° u F1“fâ}MjÈZsnÖæi´wGÝØ¾ôPíB˜ÅÛÃ:¸|ö¹Q® ÀÆæåhê÷tpûl²üÖ¾|ªTÒ󙽫/¶ƒÕ?‚Ýîn*ûã`B(S'v¦PuK«#å÷ߪ^ÎÄpg¶¥£·)Ô±‚9p „£"ò<Ä$F èãÞy]ÚÊHÛNÕ¢X2>€j±N“À &1WRžrq/Ö#Þ!_[]½†øb¨½Ä…¢¾!ømé… ¾tØkïv`,õ½¤[‘„:n’«)ŽQ§¦çew*ML½=™J+Â$åÁ~›ƒëxÿü’lvæsô­Ž=#‚oëq‡Ö£ÈéY^Ê«c WéT­Ql!Ý­’¾/ ÿÌç1K_˜“Т‘)Oïšø-ÂW’éØ v¾C6¶±v¾ðz×2îArÑ£7ÌÖÜ5h¦… ïú¨_Ý2¥LöÂv±]‰ sŒ0+½Ê4õÉ+“Gößú4–ÝŸ’VÄ–\V»Ü+WR\ n f»:º·Ö`³}rYõθ±»ß=×àðc·BeõªfÁ}![j‰è3¤“è9¿§²e7þ|0Šo 8ÌTŽ@ÅõG Çõ‚w”–dÄ' _„¸_(Ðþ,…îîµè[ªís>ZÚ?Ñ+"v€#yÐ*ÏlGT1ú¬ÑO\ßí³Zé/µ¦TýyûÙ÷Çð¾ßºûØÕ*?¯MáOãCàã&š *£¦<ùõ›í¬/é°ß9ö¡:/œTqOlÚi¢$¡î6Ki²§÷èwƒ^ä²í ‰§ ܦO‚ŠÊXO9žpófW·™R6ÁEØUÍò—p¬yié¼:£­eÜ9n~mÿþq[lÛ†ôå÷‚Ñe}¸6hÁ[[Â8ë ú³d®-u̹‡‡Ðwý¼óë"\ËŸ¢ t‹šÂQ¼Ó>x:ÑôÛŒ_ JdÚâZõbr[…}"Ü¢| ;ôoÁc ‹½íëBKû !Jгñ+ÝBÇ·8§‘éí„󹨗ÔÊJL, „ñ- ߺñû|{ˆÑã3Ï,Ú!"¡Ä¥ÿ eÏ–„˜«Ÿ5QIV1%m«‡#$ÌI)?Ÿ H‚| jnÃ0t¼ó\ ø„q•e?‚yôÊ`èåËE3„G°ÈÖ̧_¼Øc#5êf˜Îü2Z,RÃ1C›¥öv¶’ ˆX,cŽkÏS$ÀaÄÒoŒÃ®5Õ¯t”I$1òxv_À·M§b»ºÞCŸQ‹Ù©:u‘S2ÔÛàäÍüI]Ÿ}wc°÷"æ»^äú(ð³´9Nñ—œàsÆ­É|gC‹ Ôc!=ÉJU„q2˘EækºQ0çcjØXœý‘Í”òh‚Ck¦]û«s#‚T°‚Öª N©j•ÏWèµ|¯qKÃ.8T\Ën Ou G{}íäX+ ÑÞM!zÃWòæ2n„Ò¸âbRuõî„)ï·}RZ®B‰‰2\ÉÕQµ‰ìëMùƒ)O 9{ù*3®áÅ•Fïôë›êJ< ùJøÈ¯ Š¿s/ƒJ“æ -»ªƒ ‡Çm·-”çç¸Õïõrçéª>¿]~uBÄÅ#~îüÒˆ®IšbàI¤ìdy=žC“µ£WU3Xk9R*Ú©?LKáJ†Éì⦴v¾¦ÜKU$òrJ¦µÍ\+“Vf>½2¦•¬P׌â+ÞÎ6‘&¶J4WÖ¨t=Ö ®&g0JÛWJÌ3c&¯)?{ÝýRå;þ9{zèy'Ž’z⮬/ˆ0n#œvÈì§h§/̦8ô8Q+|>ÄI™á%DT¿N«½Ô‰w²Öä7û¾ÐLsë ˆ©³  ™órÆWwÞ–ÑóÕOd☘CÍöñê6Ï*”aÚ¼BÍ1ì÷ ÏÝZJ²…x?‰[Ùy¹šÝàÁ¾‘N:]žBu8e\Šý^!DZùŒ‚Él—öR…Fï»Û~G´ä_º ÞûŸ<”1ÄÊC´O^‘Ü–ZæÏ£\$ï‚6ÄxŽÙ캯 çóý•šÝI*)Uìýf³JBÅ.™v—1J×;ÍÅë·Ç =4™dOÖ"Ò%”ØQ™X9xxœ©žY9ì,9 Þ’ÏÖ=Û`\’L#5´'Æñ"@ „è`à·í2þ0£¹îhCûtáëÁRc.R«<ŽI‰IÕ[) ^}:Pö&‚ÜÞØª¡-cÿàKrcÙ%⟎’+¼<ÁxæçlY(t"Bä ¸çÀ”EŒHypÇÞA' ƒ)UÜnv“)ùÒ¤¦îøyoVßHé‚b»Ý¨ÆØck99[3Òþº'¦b)Ÿ޽”8žm‡ƒbm_EufHmŸ:zMeá ±¡çûµI#»äÃb†¦À'¢Š’Nl¤ŸúIîŽ2ÖÐQ3ÙÐ[аzü;0ò}Áù›;Aò˜Ä•g¶ø »8æ3_^ó4›TÓ„¹¾ð‹ò™ Ø§˜žœŸñ˜»ÃøÉæ%ýt ç8 oZnv¨RC3W踚òI÷¬×δvwâí}ÈgÐ ¹BYõ\0¿º·›?û"`æ¦j÷ßHŠœiP¾ZYB`ÞÖ–è Â2¼S¹±©a&”,[’ú.ÅJ›sWç<ó…¦~Ùð—ºCH;¸÷VGýÝ…2©„p™þÏ>)5Ajº8qv ž=±­ÀƒÎê]­%CëBíocëu¦&<””.7·çþâ-Ÿ×Ë>–Wÿ®Êï8ýcé0rÞ/sû¯ é´Fœ¥õCtšT?Û:[·j‚´4PšügQLØ(ÙÉgöN„$Ñé6‚¬V«õ + ÞÉ“8EË=zGt-Î;}º³—ÖÒîëÄ ‡® 'ek,i˹ƃ”Ïj±9%~-”Õ4l×>wlŒ¦¯þÒTÞò®‰¨ù0©í©åGrTÍ¢|ƒE—ì ô–ñ¼ôÞŒ¥¬éYa›… bpŒºÉmç>’e( ß<†o[‘ßø8®#·H`ϹnKçßF%cðý¸ñSŒï’ÑYV-£ô®s:]4R=xÚÑ9ˆå% —–¢T˼‡üÓ­årËÌ¥{Ü ?„¬%Öìî_·Hk—Ÿ‚¶¹4éjˆõ¯« 6ræŠÇæ!-:1ŸÒôLÊÃT‹·ÙÔR_nÊ-}YŒÚ!¬¥Ü7nq ¿èaZ?ìóãµÍ¡„ÄÚVbìKM~ナ°C;Ñ¢»SŽa¼,ƈ§¾‡Eœ3s´sœ¬$%»äíÜ£kˆk3®ý€“?ûy˜ÁjuQã4$Ý&‘’ã_©/%\ÏšÇ ðÌ‘-A5àI“_Vð_Í ö%Óz€žÒM{½R,þ"t%†°ºªZ€F~I†þû'èfÖ+ánÅŠèÛ™ð) OGÓq-šypóíØ•7߃ʄ¼—È7¨=|“{l©zn‚ÕMÓ Ñ|»­æœ©$C*„ïÏ®‚ ¤}Fa[¡ü@g93èO á“›Åèì>h¹'•ÊsR®hhÄd¹Cç{“´VÛ™¿ƒ!Ñlï.^‹N4ˆ7$ÙèíÚŦwî®ø]>x+QµAì„YEk´·5­ &±X‹>~E3=¨HÌ9êcõ@1`1©€§ú|ùqì¾ÜýÑ:Nî:¿cyÁ­EY¿‘UN¬%(%¡û‰'ª=“È«# ¤å³°]·EÛe˜{ÅÒ_戠Êmøølá#Y¤6šì¤nJ,Ö ñËd‰yéq[‘<®àó˜QnÏ»£Ánýn}ß5]–(Èü&ØÒ¤­OL„C¡ÚŽÉB?¶´e”\°¼#ÀÇ*ä­FréF•s<•=x4º‡\HÕ­c:ÿ9e3 ¦©rqa“ /{¤îÊZ–6ws .Ë ±ÿJ&nðE÷W—ËH5Ÿb1ñZÇ^Ö ò뚸ã–%)Ø…Ãy­ç¯fóÃí¥)y„Ãý/¦®»D„˜`'U?å²jLl…Ʊ–þ ŽÉcæÛÅŠ’¿å ¬±‡ŠdéjÒ×XUî¼vÍK”Ÿ=V‹ÎV´ L²‚÷ÈNŽ(k!¥ÎÀÛ½#AñyY¥U[Žøvó‰ªHmÞDµÖ{ë†äåzs¯ÈÌÉ‘ž^ í8¥åšrl¯2Zñº7¤h|öVÊÓ }¬‘CyþdŽJ£‘óî€*碈g[ôŵv= Ú^}è’%—ù&¸²xPÈ_30½ãYñäH˜ýÐùÈ…Dß%¼‹¹Çœ;^Àk!.³.šG¿ëŒwÛ%AUáüm žP%+¥þ.› <¬iß‚[ °ªU\ÁÓœúÒã3‚ >§>v!E¸O—$Ècþ1økÔþLF+®Ø¥§XëÂÞäyq½w ±6Eâk~꫟zgé+Gàƒ $Ôkâ¹O>OIž÷QC¤ÖÀµ¤ÌEb%A0µ77ÓóÏ¡^¡ü½¬sç1‰Ó´Ê\eÙ -˜L˜éIošAš¯M¶&6° >Õ@(÷xN¶ 1` nÀ •í‡îr6¿D0¾§€0²$@©}ˆ—QN2*@é€?|·W¦Ãa‡W+0/ ˆYýÚ÷°Í'>°‡c—…3À ç†Î×ñh$‰æ³{G™ÆšwzngŸçËѱ"¤êéÁŠ v¹ÿ-ª…Sëañ ˆÄ&à Ùw-OˆôVC?ÕiUI—eúO}!~ mï¥ÙYV[tEDÅ%ƒ1 ž,oK«OÃÚ{iNDæ¹ñ— ”^84õÐq™¶ò´:Ò _&™õÏ·RËæìq±Úœ”eÆ÷}vRüÅ_"%3Ôó©ê0Ó®IÝUê$QÕ­{¬2==ö7ùê Ú[r€šR™½ûnõæ•Þr…*’•çã—P{kv±£Kø¸Uª¢ÞÙÏøÿZjÇŒ endstream endobj 128 0 obj << /Length1 1530 /Length2 2664 /Length3 0 /Length 3637 /Filter /FlateDecode >> stream xÚT 8”û÷·U n‰ÊRzS¶ 3cmDYGö%*ª[cæ™7cfÌ‚ÁT$¹¹—BˆH¹Ê^–"R(*‰,¡²¯ÃJ¿—´Ýÿÿy~¿gžgf>ç|Îùžs¾ŸóUÞâ´WÓ”H÷qt[£…6Ìí]]1Ú­£…Fk#”•]!6üfG(ï™,ˆN3ü‰aÎñlØfgÃD{: °áPŒ€Ñ7Ģр6ýF¤3  ¼/Dìµ: d!”Íé ."SØð9ßþjuƒÅ —ÂSo ð4ÀϦ€Þð‰<ØK'@ ›ûK 5# ›Í0D¡üüü´ðÞ,-:“¼K øAl à²@¦/H[ðÞàrkZeÀ•±¾:öÒIl?<`"€4¡A&Ÿìµ¶ í+Ùî+ ,Àha¾§[Ž^LÑ–‚ñÝ›§q! ATpÄÙi±ýÙHO#.ñTŽÇûâ!*Þ&,•Žp¦Îîp¹? 1Ø,-D]쵘³%hN÷öilb±> ˆ à¹sQË—ëE£ûÑ¿!D#’Û r(7äí-–9° ñÃFÙ€Þ¡£€>èO  på2À%'fÑ ÷À dÐ näA$þA²ð¾ Àfr@^àÏŽ_ƒˆ x‚dˆ†ø‘6ƒ¤¯¾&äDÃòÃèÅÏ÷‡a…é4*÷}éŠQ¦Ž¶–Nû4–[þî43£ûš@S[GÐÓÖô±zï×,Nxh¹ ôHk‰`¿ Oé[Á¾Ë P[^uà×\tX·  öCæ‡Ðzhü…ùŸÅ¾òÿi|1Ë•ù¿+Âq¨Ô%¿ÚWÂÿñã½!*w™ë–ÆwÀžoíßÔýà×ŵ‰Çûß^k6ÞS™ú} ùƒD'ˆM ,iã«ÙmqϨ t¢³ Å—ÐÄ ÑÿòÁËEð‚_,É%ïί'ZÒtââ’iëéx&ÏE a%iëéx‰ ÿ’ˆ”ΆC¸;@¢3‹WŠÅ(¢i aÐz ú1hEû j(Æw¨«#ø éÄŸºŠù„Ó±~‚pû'h 8ß!¬IÔÒãÃ"Ðá7é;K ¸Kð—Æ &Þþ%mÂSù†—žô ˆ¶f:agè±üÐÒ¹¦ ~š}ϵu%«§ÎòE÷÷ZÊù¾w17š›ÖI‹h5­hê˜ëZ;¬ñ¥ÈëÀz´×ïoƒâ# ×·Ý.]Aò|‡ z±Öx~˜eÇÑî·-/÷8ªC#’×»<öã›4ªo@úLö½J´2R)Îþ'‹2¾JµpDKBèù_«dwìБ -3M,Ë6Ë3mlºo½5eò|ôâ&Üà\|U¶^OõëL¤ Ô¯04$ɰå'튨ԗ·=úhTî­´”ýxN-„_¬æÉzêt.]Wžä:U4œÎqT fæ÷î©¿yKûÝËÝ|W—ƒÐíäƒçû´V¿¶3;ÛÃÔ.=ç¤Vjä®iþâ¸9ûÙlúî­î,“ëÀ哪ŠÏ›[Ü^¨©ëð0ÁÒz^£.¯›Ã¡´ “ü±ÔÜávOÍ·Í_e˜$ÙX¾«]= oßÔÌÔÖŠÚî”oÔ^ú÷¬ðtC“Æ7Gø'5µã*Êc{îÈõ·5Î6’:ë/‹{¾qD…“ÔâcÁTÚçègü磳9.2˜Gâ{&ü*»Ìb✷OwnÿHŸn”´Ê”þ£âr’ŸîùöÉW¼›|fÝ‘Îâ°ßo5*gI–tÄð… Øµb´ÈYçãH㊪}[øåZ¯åóJl†økî‡ o±“*œOêÉM8£p¦^¶]ÌçÌ%J€Ç±téäCæœl!džÔw‘ƒ™êC]Rt4êñ'Irû¡\%O“8Õþ±Øæ…†]¹[M·ÙbœÙ×™Ó§CI—C}ÄO¶ÂS÷¾Á¬6ô˜UM(¹Ñø[á­ŒØûûöSýw>óoìcÎtôqD›åí’±ƒ9<…[jb*‘Ì¢“vQÁüÛ¾;?w_+æá5‚i~Á®{© cê¨+í{>©´XÞÆÉ-œÄ=¥“‘q©í9;ý}ªcgæmÒ¤ÂÏkä^´†¦U¯R¡Ñºì¹pÇXÔ\5£ª'%øÐæš>Óª˜ã±òêî'Ý#©¼5´Ó»–WÕ?Zf‡+28TyU9Ö…%ó9¤â®ñöÄÄ>T'ªsuˆÑÕò¤êÌñÖþQ£<˺œ4Fp‹Kr´õ}ߨ2ÓY§òUŸÍpk÷GÛ(å³Þätà å’Mô+;·²,úbV­[&•;Ì/MQlù—v?ˆ´0ÞãQr:ØåÝüÚÍ "ECgòÓdÚ KíDµK»ÌóË{Qˆ˜‚3´HÁ7”ºÛD®\~Õ–¦õxcÀÅ‘ä‡÷¾Ö—Ù/–c}¤õXmPÜPoŸCUdQÑ5=F~Sâ:·ü›r'©núØ ‚.íñG5+þP.»k;•¦9 FÇšïPɹ얄È=z '§œT:ÿU3û% )ʼ‘²9©Ž›Ñt#ñä“°… OGl|DQAËu&Ò7„©mÕ±Í}ÏûT§í¶Gª¨²¡© ܇z’"÷,ãÖ…ÄRXÝ™>…rT­â¹ýéSò}Ɉm+“®>ÂG$ÞAtn Ø{-­8CþÐtç#*/½lñ@¸—ƒkb€ºªà[Ã~å•ý›çón F70'‘x³m;øÇä”bnUwD#s¨×G‚GnÿS7†mPIœ‰‘2c\ðªT_Ý•!ø^¿R ÷%/ÖømÁ¡³¿LÐHkl¤Ww\߈¯+%©mÅ‘›Þ¿ Èû£ ȱy MiÌçi›G¬«Bd†Ç ÇÛæ]AøfïYÕ5¬°Ÿ?¨(zÜï€ ‡·ö×W8‡éœ.‘²jÌüÛÜpÁie#Eà%êP“е íýZ öx=Ÿ4³æà€Ö›Á׉›ª,)/¥æÁ.NërTŸüU[VXomõ‚üùáô,µÞN£ÒR™@6N¤U8ÜÑ´‰óÌ»iAß ÿ$åL‰¡Š{¸‚C®ÄÃùξ¨'£!å¸Z†ÄåÒî“þ‡[R ‹ t•†;«*NJÿ¦«l ôßZ¯(JT‰;Áu}òö葆ºœAq ÔV?ïDu—ß0˜µ­©|ÃÍÁÓýë)·<ÅE¬;Ç$Ž­Çþu mÝk´Ò;ÛÒ>‚êW êH1z_’'0üZSPTèM AۦМsfÁˆ¢=ÃöàŒ÷‘ðOÐAYÜK•@Íîž=ÁáN1nq k/te^Ê‹ ËT@ ç1rªv ë”ÝÞÝäj×No+Ϭî?RcæeZ#[f_–ä{kÙä¤P%‚ZŒm¨u ±Æ,sµ2„“->_&›Fè›ÈÙÜä²fòÔã½+Ä'B¼ß™59+…—®ñd¬l>¶ïH³ q†OßÃË4p|Ž9ëv÷N}Å›FÓèðÊÈÆj²k SäÚ¡ŽíaZŒ8YÃ}ô×þ!^7ùJœMIŠ4öüŒðê©6¤LûÌ’Ó;X‘{gV£ÚŒëG>¯—R{CöËÔŒnã׸»ÜÕÓKº(¦tEœ!ù»ü7ÈÿÅwST°eja-"–úBâøctø ÇÀ“( »¤ñJteè«Bƒ­[Xì–«æ'(ŸÜŽ#}šOÊJJ¶TE”÷›:…î–È*ôê`DªÚúÒ_>>¿Îrº~,î±§ëÜ…sYõ×#/G-ôÖÑ‘çƒpk¦Ðœsäº×ÉÓÃÉ ƒ¡ÛäW(Åø‹l·µCçO:µkH\—áüá û>nxØVq5aƒu’Ì&ÆšŠuŸ«¤×†NÁU‘=²ªvOZU9οUðÌ5¸•wãŠmý™+Ö“§E[»Æc•ǯöHEdVžç]«§I:6~ª˜x˜Þ%ô.µœíöÔ+!á½›5ëÊóÂ_$¢,®ü_éNvêh1¢¤:­«ìJÆé¬ô„ÉQUÇ"JdÈcšž¼Á< ëY|"V£`$³û°¿ž¢ìhrh¯YÂx±Vî|AJwgb¤í\ò;² endstream endobj 11 0 obj << /Type /ObjStm /N 100 /First 819 /Length 3183 /Filter /FlateDecode >> stream xÚí[ûsÛ6þ]~lç&ñ:™Îù7‰“Եة/ÓQd:æEU=âäþúû ,вüNgî¦31‹ÝoX,HŰœir&4Î1¡˜´IÏ”¶xŒĘgV&sc9óV3)Xp¾#%¹ÇSÅ„Ìs&ÁG Á$èµ´àÆ„QŽ)°±Ú3 Ö+†GÂyÍ4±’iVÊŽÆ|ï=Ó$hJžcœƒØH´Á0 BIf B8ÅŒC,³€ ÁÄ‚tºCHæ[ƒr,ø)…²·ÌŸs°:hæÀÏ@Y>t°‰´xè0Ï窣@4ðãú3-¡¬æZ€K%¨ÕLI :´: ª(­,39Z'˜Ás#òD(ùÞ …Þp…²ö½S þα˜ï¡´Ã¸àyAÁ &„gÀZ !:&Ȥž|ˆP6ª‚QB`šä øJ;+œÉs¬™ ø+‡9óèXMÐ9 ®-\–“…= 9˜”œ—Ãvè á;@I&ÂÀlž:Žy…˜‚¥ÀBôx¸¿#7!§CÀ©hȱ  JB b›CEb%èÁ‡õX ˆðPd)0I gudÀFúr bD¨Gx"`ÌC„ íE«p°½ Y1@ÉT»¼óôi‡~Œïu?¾U §Åp:aki¿Ã÷‹I5÷Š V|ðº8-»›ÕWv’ã%^A~è`úóH<‘ýüsä¼nìéSÆw(èh„º0[Ý50Ó¼K®Š}Ìå{ãªwPLÙ pmï0~X|²s¶W†Zˆáº‡@¾ßÁö!@eh•î.@ùÆpXÏ e4Â!’9EB+PÄdldjTjtjLj’-´‘{‡Ì>Nãý«rø¹Ã7«ñi1NÀò¾¥µ–™†k-Úœ©É3ƒdg îÝF´åã¿T‡ãÛìñ#îá"s“é"…Ϭÿž3™Ò %Ç}~µ’ò‘DªÑ*¿iDÔ÷‘¨“©2G‰®2ñ½¬Åå! Ø=¢8ûßSœ.£dÅå6óùÕâÔã¸ù8£Ì>wŸvpg®¾ÈZCå£HˆÏ3éüw§\¦U-Nøòjqº)n›Èz8~ÿ; Ik8ë÷?\›…{mïJÌ3²¢Ýô®ÛÈ2À½qqÖíæåÍ Õæ¬ìŸ–ÃOÿBñvQNϫٔºo‡å×'¯ÊÏE¼™–ýrZ“Ä«9ål\ ¨žGÊ£rxZ]L¨»U Ýá)uy0š®Ê~Ñ«†‘¶¦Û)û‘ËÆdRõÊî´¬†IâmW¸oÍÆØcz߈p»8+‡%ÑE6oG§Ýi1NÌoA·Š|8™vûýÚ{ß`·9Ô«FV±UóòÓl\“Í sòGo6ÎFßjP׬p{öµ;õkOÏoV¨ögÃaÍ®öÖ’Ö¯pŠ­è^íóÈúô+²6fÓj€Ù½¢: ¯Y_£xÑ®Q\¸_âÒ’uþ¡µÒ„Ñ"Ó(ÿ…¦#GÈr½Øœv`iòûë݃ltzöã¥aö£e«ÑÚŒwµ<áU–㨠µEmƒªMd8Ò!ÓÙ,„ð¡…š-’ÞÛýéòà[ö§ÕOÿ.ÎÎþÀ¢wOÿ9˜ ³^5h¥CŸ_ŸïE¢¥Ã~êo‘X›åm#Éš@g‘:Çâ8¢Rõz׎(oîQ^_Jk|)L†Ãö|É.38‡gæâVÎ<ŸNG“Ÿ8¿¸¸@^¡L•UãO¼íI{³›îLb¼Œ•ç d:H„¨¿‰LJ›á´ÿ¸hàp¨ôþ!aV÷8µmÇüp“Y[$FÈÌ:™@Õæœ»‘LùLJy³>Ü–ºmË oeË`Û¶T7ÛRÝ£‚[—h<½Ð¸Yó#D&˜Båîê«¶ñÕVf±e¹ +ÜÊL²D—®D¡¥ ÚÜg))Ô|¶µ:Ã)àÄH:ýü%faq2bÁ©„Þý…ŒÞŒ.¤ŠIGiG46eÜR©©)´¬æ•úÚ¢E¬Ï㹮派”Q_£¤'†Þx.zQz!r¢l ›EÍ>Á4šçõSñÈÈ_G~é‰ ‹™ êtUQ3…=żMÞKBör‡¥÷jñ¹Ã£~±¥~²AÒ>Ù6Òz³'#A}[«'-”m«AFfµÒ~Céø4ͨŸÊ¯H¥D³ N*D¥£Y ŠÆY±Å=yžÿµ±ù÷ߣ­qã®O9*Cº. FëÏÅ#u ;ºKÑ|–!Ç^O¯»-¬FÌ."·Ž¼Ë^“*F[}ì›c xW[÷'WP¸FK×z™Ò*L ,©eI‹:]RÌy]/òy2Xèùÿž–Fë"öÓuóä tLÎ_ÿ§¯Tàl©b|ÇW´q§«B©jè›m˜–úë®çb“‚Ìi„·3©dHãHž^éùœ·$$ô‘-JLÔ©¿ Òñ^7(.{×#¼ÍµæØ@5P‚–Q¼Ò}ÒÕ…@K,é‰ÙTy,—SYå‘Iˆ:Т!jè‘-3ƒô©Í‘™"ÇÚBš±>’úžÞÀGw8Â4},Žt!ÚJöØM×TjÕ6 o|âjŒ¶”ïdòSlE,|þµ²åõ@×ô$y%λ¤MãÚ¾öÒb,Y(õãõCã(Aåúv1éËÑ´§òýMw€‘ã½ýß¶þ±õzóXH ô»Ÿ&L'ŠÍx¦xb{"é#§P2+½”™ôèd²”îèyQ~:Ç­·8<i쉠ÁÓn¿ìm ?õ –ã>-ïèkg‡דðÀã¼;¦CÁ|ƒoò-¾ÍŸñþ Á_ò×ü ßãûü€ò·ü?â]þ‘÷ø)/ø?ÿ’âç¼ä}>àC^ñjXðó Ÿòéù¸(øô¢â3~Á¿òo?&Ýèµ)ý y4ºÉV[o_>³ [½~!ò«m¥$ÙŠ’·ö7ØJ]g«'BÏ­ådÃXJ45*Æeuº¤Q:€ÝV£_ö6Þ'Öx_‰¹FÒ>’FÖÜI#y'^½¤xÞ_ç"ÏÊÃCº gÖª³Í»1žmEô1_Gu¯êWC\ƒnŒðbpÚœób›y¼Ÿ•_üÕl#ÿüÛè¼bü›®Á°Ä˜¯„½ègÓÔÒÚÒüOþ笚q4öÒ(-žI1(œIñü'åW>éŒåeõ%-,þŸb\-{NßÅs;Ç¿o½ÿž;xµÎuv¾ºè§‰Åp¹¸ÖûŽ6ƒTö,²~uM²'¤ó¤?êÏ&óÌú±Ÿ:“’ ·3#çÏšbµ–’wˉ¿î>Û{—\±¦ò $¡p†m0wÅúª£“ühnžyfX›åš„ØøÐD!c³;)â»ò•B{É2ñ§‰ñ]þN9žL #µ^uç7wGåéô|Ïi«·Cøéˆîާ]̶ðÑÆc|Ý\¹‡ôváÙ–®n/]ÞCúr‘Ønnp…nH7àŠvåÓÆãÚxœiâ¶'<«õJÑJ°³&XƒoRwÔ.)ZpäJ¬Z·d E¸„ðöiïúm8+Á+TŽj¸ë>ÆhíÍmé«Ñ›ë%k„…5VÉ=S{Smãq×[c)±éG–öÎÒÆ³»Ú®Åco‡>ÓNè;íŒö¦ÅlU/ÅÝòtÂNÒPQÿB7}®ÑQÀOœ?\Ã\¬cž¾Ö^7ÕÍIÓiºþ&ÜšñëlÚǹqR‡©ÚTd,©t“ø™Ë™å;¢« µAÿ7!öj óY{ãâ s—kí¿Kgˆ endstream endobj 139 0 obj << /Producer (pdfTeX-1.40.18) /Creator (TeX) /CreationDate (D:20171031221631-04'00') /ModDate (D:20171031221631-04'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) kpathsea version 6.2.3) >> endobj 132 0 obj << /Type /ObjStm /N 15 /First 112 /Length 593 /Filter /FlateDecode >> stream xÚSMoÛ0 ½çWðزX–dÇ@Q KW X×E{ÚŠAp”T˜?[Þ’?êÃnºƒR!ŸÈ˜@Q |ÂðBç.(p”`10Ë0š`B)DœNe'!ú!æ Æz¾D¾Ïä"_á>õ¡¢Ø˜Ÿ;•Y2˺.S% ÒñÂܵYæÙ¬ØþËÂ|°Ûq܆81[‘"wêjŠÂçè7Ùë7òŒí…ÙVen;5ǪÌsßòï÷88øœŽ÷WµAâÇŽø™#nàsô?neÄÍm·8ǽ„ùJ ¢åÎìËNš¿Hß:Û›v¬¼ä}¿vò[¹Aˆ—Z¶ÑûÜÌ©· endstream endobj 140 0 obj << /Type /XRef /Index [0 141] /Size 141 /W [1 3 1] /Root 138 0 R /Info 139 0 R /ID [ ] /Length 348 /Filter /FlateDecode >> stream xÚÒ·NQ…áL069L49gLÎ09ƒéüЬh(yJ(©¨à!x$J$j$ÙšOçž«½»{5"") ˆŠçÑ%#&‘\wé}²åœÁ>œª~¿ÛÆ9¤G%ûÔºcÈ€LðBdCä‚òÀù®îqvJö`Z  a  Õű㠡Úèì½ÅPÝtöA¥P=tö¥åP½té¤J¨‚>:ûË TÇT!¦³««…:¡³?ª‡‡+h„04C;4©øïí‰8‚N臕ФíÂ( ¨Ô¿Y7•ö;[žÀLB¦`f`æ``–TºRvʲJòËÒŠÊmÈÒªÊCÜÒšÊϧ¥uÕà‚¥˜jt×Ò†jâÅÒ¦êuÄÒ–êƒÏR\õ#li.!¡ú÷Jç0/óâ0/óâ0/Ž_õ÷YÜ‹¾‘È6Ü endstream endobj startxref 131199 %%EOF units-2.16/NEWS0000664000175000017500000002742113176043377012604 0ustar adrianadrianGNU units NEWS - User visible changes. Copyright (C) 1996, 1997, 1999-2007, 2010-2017 Free Software Foundation, Inc. Version 2.16 - 30 October 2017 * Fixed missing USD currency code (update to units_cur and definitions.units only). Version 2.15 - 16 October 2017 * The old timegenie service has vanished. A new units_cur script uses yahoo.com server. The new script works directly in Python 2 or Python 3 and no longer depends on unidecode. * Some currency definitions (e.g. currencies pegged to the euro) have moved out of definitions.units into currency.units. * Added bitcoin to currency.units * Fixed a memory leak bug for invalid exponent operations Version 2.14 - 7 March 2017 * Eliminated parser memory management limitation affecting long input expressions (e.g. a sum of more than 100 units) * Control characters are treated as white space rather than producing an error about invalid UTF-8. * The Makefile's "clean" target didn't remove *.o or the units binary Version 2.13 - 21 June 2016 (bug fix release) * Corrected error in heat of vaporization of water * Fixed bug where single character unicode prefixes couldn't be combined with the second "s", so microsecond couldn't be abbreviated. * Fixed bug where -H '' option would write history to ~/.history. * Added -fpic compile option so that it is possible to compile to a library * Improved support for building on Windows with Microsoft Visual Studio - Added script to set environment variables for VS in MKS Korn shell - Expanded guides UnitsMKS and UnitsWin for building with and without Unix-like utilities. Version 2.12 - 14 October 2015 * Updated and revised units database, with constants now based on 2014 CODATA. * Readline history is persistent and is saved to ~/.units_history, or to the file specified with --history (-H) option. * Fixed bug where '_' didn't give last result after conversion to function. * Fixed sporadic segmentation fault with --log. * Comments allowed on interactive input with '#', most useful with logging. * Added configure test for rl_completion_suppress_append, which helps compilation under MacOS. * Comment processing happens before checking UTF-8 validity---comments are allowed to contain bogus UTF-8. * Changed units_cur to skip bogus precious metals data from timegenie and to skip currencies with no rate. Version 2.11 - 2 April 2014 (bug fix release) * Many long options didn't work. * units_cur wouldn't print to stdout Version 2.10 - 19 March 2014 * Added '_' to represent the previous result. * Added support for rational exponents with numerators larger than 1 so you can do calculations like liter^2|3. * Added logging with --log (-L) option. * Fixed some unit definitions (R_infinity, planckmass), and added R_K90 and K_J90 for the conventional values of the von Klitzing and Josephson constants. * Don't use readline unless reading from a tty. This makes it much faster to run units through a pipe and also gives consistent behavior between versions compiled with and without readline. * Display of nonlinear unit definitions shows the range over which the unit is defined and the required dimensions of the argument. * Unit completion with readline will now complete nonlinear units, functions (e.g. cuberoot), prefixes, and unit list aliases. It will no longer insert a space after the completion. * Running "units --version" returns success. * Combining "--version" with "--terse" gives a terse version output. * Combining "--version" with "--verbose" or running with "--info" gives a detailed output of how units was compiled and where its supporting files are found. * A nonlinear unit can be defined equal to another nonlinear unit using the syntax: "newfunc() oldfunc". * Domain and range specified with nonlinear units can be open intervals, indicated by parentheses instead of brackets. * The "noerror" keyword on a nonlinear unit supresses error checking with "units --check" for that unit. * Changes to units_cur to work with timegenie changes and to support Python 3. The Python module unidecode is now required for units_cur. * The method for finding supporting files has changed when units is compiled to be relocatable. See the manual for details. The --enable-path-search configure option is replaced by --enable-relocation. * Fix to compile with Bison 3.0. * Improved error messages for various cases. * Units can be compiled and installed under Windows with Microsoft Visual C++ using Makefile.Win. A Windows binary distribution is available. * Some simple icons are included. Version 2.02 - 11 July 2013 * Added support for %a and %A output formats (hexadecimal floating point), and eliminated the restriction on the number of displayed digits when specifying an output format with the --output-format (-o) option. Improved error handling for formats specified with --output-format. * Added --digits (-d) to specify the number of digits to display. Giving '--digits max' (-dmax) will use the full available precision. * Added support for various Unicode minus sign symbols. Units now treats the figure dash (U+2012), the en dash (U+2013), and the minus (U+2212) as identical to the ASCII hyphen/minus symbol (U+002D). * The !message command in units data files has been fixed so it does not produce output when the --quiet option is given. * Improved error handling when unit names end with numbers without a '_'. * Removed six unicode entries from definition.units that were flagged as invalid under MacOS. * Modified units_cur to work with XML format as the txt format disappeared. * Corrected error in definition of the nat. * Improved manual. Version 2.01 - 24 October 2012 (bug fix release) * Fixed error in electronmass * New definition for au * Fixed DESTDIR support for installation * Changed configure script for success with Solaris * Small changes to manual Version 2.00 - 6 June 2012 General changes: * Unit lists provide conversion to sums of units (e.g. feet and inches). * Added --round (-r) and --show-factor (-S) options for use with unit lists. * Added unit lists aliases (e.g. time, usvol). * A python script, units_cur, can update currency data. * Units now flushes its output so you can talk to it with a pipe. * Units now works in UTF-8 if the system supports it. * Added --locale (-l) option to set the locale. * English units such as the gallon are defined in all locales, with US definitions by default except in the en_BG locale. You can force the desired definition (Great Britain or US) by setting the environment variable UNITS_ENGLISH to GB or US. * Revised and extended the documentation, with more examples. * Added locale mapping to address Windows locale names. * Updated and revised units database, including UTF-8 definitions and the 2010 CODATA. * Fixed parsing bug for "1..2" or "1.2.3". These now give an error. * Unit names can end with a number in the form of a subscript that starts with a '_', as in 'X_3'. * Units now performs error checking on the printf format specified with the --output-format (-o) option. Changes for units definition files: * Changed location and names of unit database, splitting off currency Files are /usr/local/share/units/{definitions,currency}.units and the personal units file is $HOME/.units instead of $HOME/units.dat. (Under windows personal unit file is unitdef.units.) * Personal units filename can be changed with MYUNITSFILE environment variable. * Prefixes can be defined in any order: it is no longer necessary to define longer ones before shorter ones. * New definitions replace previous ones. Personal units file is read after the system file rather than before. * Changed syntax for function definitions. Instead of [in-unit,out-unit] you must now write units=[in-unit,out-unit]. Use 'units -c' to find places in your personal data files that need to be updated. * Add optional domain and range to function definitions with syntax domain=[min,max] and range=[min,max]. Either min or max can be omitted to signal infinity. * Unit list aliases can be defined with !unitlist command. * Added !var and !varnot and !endvar to include definitions based on environment variable settings. * Added !set to set environment variables (if they aren't already set). * Added !message to display a message * Data files are in UTF-8, with !utf8 and !endutf8 commands to mark definitions that require UTF-8 support. * Improved error handling when reading units.dat. Version 1.88 - 15 Feb 2010 * Updated units.dat * Fixed bug involving readline version 4.2 Version 1.87 - 25 Sep 2007 * Units reads ~/.units.dat if it exists before reading the standard units database. * Added support for ** as an exponent operator. * Type 'search text' to list units that contain 'text' in their name. * Precedence of '*' changed to match precedence of '/'. (Multiplication by juxtaposition retains a higher precedence than '/'.) The --oldstar option selects the old precedence and --newstar forces the new precedence. Version 1.86 - 10 Nov 2006 * Added --one-line (-1) option which causes the program to print only one line of output. * Added --compact option which causes the program to print only the conversion factors and a newline on output. * Added build support for DESTDIR. * Made minor changes that allow the program to be compiled into a library and linked with other programs. * Fixed bug that caused bus error on Intel Mac. Version 1.85 - 20 May 2005 * The '-' character by default indicates subtraction. Multiplication can be obtained by '*' or ' '. The --product (-p) option selects the old behavior where '-' acts as a multiplication operator. The --minus (-m) option forces the default behavior where '-' indicates subtraction. * Handing of radian and steradian changed. These units are now treated as conformable with 1 for units conversions. This is indicated by the "!dimensionless" tag in units.dat. * Unit files can be included using !include. * Multiple -f (--file) options can appear on the command line; giving a null filename (-f '') causes the default units database to be loaded. * Added -t (--terse) option. * Improved error checking for units.dat. * Corrected and extended units.dat. Version 1.81 - October 28, 2002 * Fixed missing definition of "au" in units.dat. Version 1.80 - June 16, 2002 * Rewritten parser supports - () for grouping - noninteger powers of numbers (e.g. 3^0.25) - functions with dimensionless arguments (log, ln, log2, sin, cos, tan, exp) - roots of units: sqrt(unit), cuberoot(unit), and higher roots as unit^(1|4) * Functions can be defined in units.dat, and conversion to a function performed by specifying the function name alone as the "want" item. * Unit conversions can be specified as tables with linear interpolation. * The "help" command summarizes operations, and "help unit" browses the units database at the definition of the specified unit. * Specifying "?" for the want unit gets a list of all conformable units. * Support for locales added. * Units file extended and corrected. Version 1.55 - July 30, 1999 * Added over 600 new units and corrected errors in the units data file. * Minor bug fix affecting unit name completion. Version 1.54 - July 15, 1997 * Switched order of prefix and plural handling (plurals are now done first) * Added reciprocal unit conversion and --strict (-s) option * Fixed some erroneous unit definitions, added currency codes and other units * Improved Makefile (exec-prefix, program-transform-name supported) * Bug fixes Version 1.53 - Jan 13, 1997 * Added units containing ISO 8859-1 characters * Bug fixes Version 1.52 - Dec 18, 1996 * Sums of conformable units * Printing of unit definitions * Unitname completion with readline * Added --verbose (-v) option and moved --version to -V * Improved portability, old style C support, improved Makefile units-2.16/definitions.units0000664000175000017500000103232113175736736015507 0ustar adrianadrian# # This file is the units database for use with GNU units, a units conversion # program by Adrian Mariano adrianm@gnu.org # # October 2017 Version 2.19 # # Copyright (C) 1996-2002, 2004-2017 # Free Software Foundation, Inc # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, # Boston, MA 02110-1301 USA # ############################################################################ # # Improvements and corrections are welcome. # # Fundamental constants in this file are the 2014 CODATA recommended values. # # Most units data was drawn from # 1. NIST Special Publication 811, Guide for the # Use of the International System of Units (SI). # Barry N. Taylor. 1995 # 2. CRC Handbook of Chemistry and Physics 70th edition # 3. Oxford English Dictionary # 4. Websters New Universal Unabridged Dictionary # 5. Units of Measure by Stephen Dresner # 6. A Dictionary of English Weights and Measures by Ronald Zupko # 7. British Weights and Measures by Ronald Zupko # 8. Realm of Measure by Isaac Asimov # 9. United States standards of weights and measures, their # creation and creators by Arthur H. Frazier. # 10. French weights and measures before the Revolution: a # dictionary of provincial and local units by Ronald Zupko # 11. Weights and Measures: their ancient origins and their # development in Great Britain up to AD 1855 by FG Skinner # 12. The World of Measurements by H. Arthur Klein # 13. For Good Measure by William Johnstone # 14. NTC's Encyclopedia of International Weights and Measures # by William Johnstone # 15. Sizes by John Lord # 16. Sizesaurus by Stephen Strauss # 17. CODATA Recommended Values of Physical Constants available at # http://physics.nist.gov/cuu/Constants/index.html # 18. How Many? A Dictionary of Units of Measurement. Available at # http://www.unc.edu/~rowlett/units/index.html # 19. Numericana. http://www.numericana.com # 20. UK history of measurement # http://www.ukmetrication.com/history.htm # 21. NIST Handbook 44, Specifications, Tolerances, and # Other Technical Requirements for Weighing and Measuring # Devices. 2011 # 22. NIST Special Publication 447, Weights and Measures Standards # of the the United States: a brief history. Lewis V. Judson. # 1963; rev. 1976 # 23. CRC Handbook of Chemistry and Physics, 96th edition # 24. Dictionary of Scientific Units, 6th ed. H.G. Jerrard and D.B. # McNeill. 1992 # # Thanks to Jeff Conrad for assistance in ferreting out unit definitions. # ########################################################################### # # If units you use are missing or defined incorrectly, please contact me. # If your country's local units are missing and you are willing to supply # them, please send me a list. # # I added shoe size information but I'm not convinced that it's correct. # If you know anything about shoe sizes please contact me. # ########################################################################### ########################################################################### # # Brief Philosophy of this file # # Most unit definitions are made in terms of integers or simple fractions of # other definitions. The typical exceptions are when converting between two # different unit systems, or the values of measured physical constants. In # this file definitions are given in the most natural and revealing way in # terms of integer factors. # # If you make changes be sure to run 'units --check' to check your work. # # The file is USA-centric, but there is some modest effort to support other # countries. This file is now coded in UTF-8. To support environments where # UTF-8 is not available, definitions that require this character set are # wrapped in !utf8 directives. # # When a unit name is used in different countries with the different meanings # the system should be as follows: # # Suppose countries ABC and XYZ both use the "foo". Then globally define # # ABCfoo # XYZfoo # # Then, using the !locale directive, define the "foo" appropriately for each of # the two countries with a definition like # # !locale ABC # foo ABCfoo # !endlocale # ########################################################################### !locale en_US ! set UNITS_ENGLISH US !endlocale !locale en_GB ! set UNITS_ENGLISH GB !endlocale !set UNITS_ENGLISH US # Default setting for English units ########################################################################### # # # Primitive units. Any unit defined to contain a '!' character is a # # primitive unit which will not be reduced any further. All units should # # reduce to primitive units. # # # ########################################################################### # # SI units # kg ! # Mass of the international prototype kilogram kg s ! # Duration of 9192631770 periods of the radiation second s # corresponding to the transition between the two hyperfine # levels of the ground state of the cesium-133 atom m ! # Length of the path traveled by light in a vacuum meter m # during 1|299792458 seconds. Originally meant to be # 1e-7 of the length along a meridian from the equator # to a pole. A ! # The current which produces a force of 2e-7 N/m between two ampere A # infinitely long wires that are 1 meter apart amp ampere cd ! # Luminous intensity in a given direction of a source which candela cd # emits monochromatic radiation at 540e12 Hz with radiant # intensity 1|683 W/steradian. (This differs from radiant # intensity (W/sr) in that it is adjusted for human # perceptual dependence on wavelength. The frequency of # 540e12 Hz (yellow) is where human perception is most # efficient.) mol ! # The amount of substance of a system which contains as many mole mol # elementary entities as there are atoms in 0.012 kg of # carbon 12. The elementary entities must be specified and # may be atoms, molecules, ions, electrons, or other # particles or groups of particles. It is understood that # unbound atoms of carbon 12, at rest and in the ground # state, are referred to. K ! # 1|273.16 of the thermodynamic temperature of the triple kelvin K # point of water # # The radian and steradian are defined as dimensionless primitive units. # The radian is equal to m/m and the steradian to m^2/m^2 so these units are # dimensionless. Retaining them as named units is useful because it allows # clarity in expressions and makes the meaning of unit definitions more clear. # These units will reduce to 1 in conversions but not for sums of units or for # arguments to functions. # radian !dimensionless # The angle subtended at the center of a circle by # an arc equal in length to the radius of the # circle sr !dimensionless # Solid angle which cuts off an area of the surface steradian sr # of the sphere equal to that of a square with # sides of length equal to the radius of the # sphere # # Some primitive non-SI units # US$ ! # The US dollar is chosen arbitrarily to be the primitive # unit of money. bit ! # Basic unit of information (entropy). The entropy in bits # of a random variable over a finite alphabet is defined # to be the sum of -p(i)*log2(p(i)) over the alphabet where # p(i) is the probability that the random variable takes # on the value i. ########################################################################### # # # Prefixes (longer names must come first) # # # ########################################################################### yotta- 1e24 # Greek or Latin octo, "eight" zetta- 1e21 # Latin septem, "seven" exa- 1e18 # Greek hex, "six" peta- 1e15 # Greek pente, "five" tera- 1e12 # Greek teras, "monster" giga- 1e9 # Greek gigas, "giant" mega- 1e6 # Greek megas, "large" myria- 1e4 # Not an official SI prefix kilo- 1e3 # Greek chilioi, "thousand" hecto- 1e2 # Greek hekaton, "hundred" deca- 1e1 # Greek deka, "ten" deka- deca deci- 1e-1 # Latin decimus, "tenth" centi- 1e-2 # Latin centum, "hundred" milli- 1e-3 # Latin mille, "thousand" micro- 1e-6 # Latin micro or Greek mikros, "small" nano- 1e-9 # Latin nanus or Greek nanos, "dwarf" pico- 1e-12 # Spanish pico, "a bit" femto- 1e-15 # Danish-Norwegian femten, "fifteen" atto- 1e-18 # Danish-Norwegian atten, "eighteen" zepto- 1e-21 # Latin septem, "seven" yocto- 1e-24 # Greek or Latin octo, "eight" quarter- 1|4 semi- 0.5 demi- 0.5 hemi- 0.5 half- 0.5 double- 2 triple- 3 treble- 3 kibi- 2^10 # In response to the convention of illegally mebi- 2^20 # and confusingly using metric prefixes for gibi- 2^30 # powers of two, the International tebi- 2^40 # Electrotechnical Commission aproved these pebi- 2^50 # binary prefixes for use in 1998. If you exbi- 2^60 # want to refer to "megabytes" using the Ki- kibi # binary definition, use these prefixes. Mi- mebi Gi- gibi Ti- tebi Pi- pebi Ei- exbi Y- yotta Z- zetta E- exa P- peta T- tera G- giga M- mega k- kilo h- hecto da- deka d- deci c- centi m- milli u- micro # it should be a mu but u is easy to type n- nano p- pico f- femto a- atto z- zepto y- yocto # # Names of some numbers # one 1 two 2 double 2 couple 2 three 3 triple 3 four 4 quadruple 4 five 5 quintuple 5 six 6 seven 7 eight 8 nine 9 ten 10 eleven 11 twelve 12 thirteen 13 fourteen 14 fifteen 15 sixteen 16 seventeen 17 eighteen 18 nineteen 19 twenty 20 thirty 30 forty 40 fifty 50 sixty 60 seventy 70 eighty 80 ninety 90 hundred 100 thousand 1000 million 1e6 twoscore two score threescore three score fourscore four score fivescore five score sixscore six score sevenscore seven score eightscore eight score ninescore nine score tenscore ten score twelvescore twelve score # These number terms were described by N. Chuquet and De la Roche in the 16th # century as being successive powers of a million. These definitions are still # used in most European countries. The current US definitions for these # numbers arose in the 17th century and don't make nearly as much sense. These # numbers are listed in the CRC Concise Encyclopedia of Mathematics by Eric # W. Weisstein. shortbillion 1e9 shorttrillion 1e12 shortquadrillion 1e15 shortquintillion 1e18 shortsextillion 1e21 shortseptillion 1e24 shortoctillion 1e27 shortnonillion 1e30 shortnoventillion shortnonillion shortdecillion 1e33 shortundecillion 1e36 shortduodecillion 1e39 shorttredecillion 1e42 shortquattuordecillion 1e45 shortquindecillion 1e48 shortsexdecillion 1e51 shortseptendecillion 1e54 shortoctodecillion 1e57 shortnovemdecillion 1e60 shortvigintillion 1e63 centillion 1e303 googol 1e100 longbillion million^2 longtrillion million^3 longquadrillion million^4 longquintillion million^5 longsextillion million^6 longseptillion million^7 longoctillion million^8 longnonillion million^9 longnoventillion longnonillion longdecillion million^10 longundecillion million^11 longduodecillion million^12 longtredecillion million^13 longquattuordecillion million^14 longquindecillion million^15 longsexdecillion million^16 longseptdecillion million^17 longoctodecillion million^18 longnovemdecillion million^19 longvigintillion million^20 # These numbers fill the gaps left by the long system above. milliard 1000 million billiard 1000 million^2 trilliard 1000 million^3 quadrilliard 1000 million^4 quintilliard 1000 million^5 sextilliard 1000 million^6 septilliard 1000 million^7 octilliard 1000 million^8 nonilliard 1000 million^9 noventilliard nonilliard decilliard 1000 million^10 # For consistency longmilliard milliard longbilliard billiard longtrilliard trilliard longquadrilliard quadrilliard longquintilliard quintilliard longsextilliard sextilliard longseptilliard septilliard longoctilliard octilliard longnonilliard nonilliard longnoventilliard noventilliard longdecilliard decilliard # The long centillion would be 1e600. The googolplex is another # familiar large number equal to 10^googol. These numbers give overflows. # # The short system prevails in English speaking countries # billion shortbillion trillion shorttrillion quadrillion shortquadrillion quintillion shortquintillion sextillion shortsextillion septillion shortseptillion octillion shortoctillion nonillion shortnonillion noventillion shortnoventillion decillion shortdecillion undecillion shortundecillion duodecillion shortduodecillion tredecillion shorttredecillion quattuordecillion shortquattuordecillion quindecillion shortquindecillion sexdecillion shortsexdecillion septendecillion shortseptendecillion octodecillion shortoctodecillion novemdecillion shortnovemdecillion vigintillion shortvigintillion # # Numbers used in India # lakh 1e5 crore 1e7 arab 1e9 kharab 1e11 neel 1e13 padm 1e15 shankh 1e17 ############################################################################# # # # Derived units which can be reduced to the primitive units # # # ############################################################################# # # Named SI derived units (officially accepted) # newton kg m / s^2 # force N newton pascal N/m^2 # pressure or stress Pa pascal joule N m # energy J joule watt J/s # power W watt coulomb A s # charge C coulomb volt W/A # potential difference V volt ohm V/A # electrical resistance siemens A/V # electrical conductance S siemens farad C/V # capacitance F farad weber V s # magnetic flux Wb weber henry Wb/A # inductance H henry tesla Wb/m^2 # magnetic flux density T tesla hertz /s # frequency Hz hertz # # Dimensions. These are here to help with dimensional analysis and # because they will appear in the list produced by hitting '?' at the # "You want:" prompt to tell the user the dimension of the unit. # LENGTH meter AREA LENGTH^2 VOLUME LENGTH^3 MASS kilogram CURRENT ampere AMOUNT mole ANGLE radian SOLID_ANGLE steradian MONEY US$ FORCE newton PRESSURE FORCE / AREA STRESS FORCE / AREA CHARGE coulomb CAPACITANCE farad RESISTANCE ohm CONDUCTANCE siemens INDUCTANCE henry FREQUENCY hertz VELOCITY LENGTH / TIME ACCELERATION VELOCITY / TIME DENSITY MASS / VOLUME LINEAR_DENSITY MASS / LENGTH VISCOSITY FORCE TIME / AREA KINEMATIC_VISCOSITY VISCOSITY / DENSITY # # units derived easily from SI units # gram millikg gm gram g gram tonne 1000 kg t tonne metricton tonne sthene tonne m / s^2 funal sthene pieze sthene / m^2 quintal 100 kg bar 1e5 Pa # About 1 atm b bar vac millibar micron micrometer # One millionth of a meter bicron picometer # One brbillionth of a meter cc cm^3 are 100 m^2 a are liter 1000 cc # The liter was defined in 1901 as the oldliter 1.000028 dm^3 # space occupied by 1 kg of pure water at L liter # the temperature of its maximum density l liter # under a pressure of 1 atm. This was # supposed to be 1000 cubic cm, but it # was discovered that the original # measurement was off. In 1964, the # liter was redefined to be exactly 1000 # cubic centimeters. mho siemens # Inverse of ohm, hence ohm spelled backward galvat ampere # Named after Luigi Galvani angstrom 1e-10 m # Convenient for describing molecular sizes xunit xunit_cu # Used for measuring x-ray wavelengths. siegbahn xunit # Originally defined to be 1|3029.45 of xunit_cu 1.00207697e-13 m # the spacing of calcite planes at 18 xunit_mo 1.00209952e-13 m # degC. It was intended to be exactly # 1e-13 m, but was later found to be # slightly off. Current usage is with # reference to common x-ray lines, either # the K-alpha 1 line of copper or the # same line of molybdenum. angstromstar 1.00001495 angstrom # Defined by JA Bearden in 1965 fermi 1e-15 m # Convenient for describing nuclear sizes # Nuclear radius is from 1 to 10 fermis barn 1e-28 m^2 # Used to measure cross section for # particle physics collision, said to # have originated in the phrase "big as # a barn". shed 1e-24 barn # Defined to be a smaller companion to the # barn, but it's too small to be of # much use. brewster micron^2/N # measures stress-optical coef diopter /m # measures reciprocal of lens focal length fresnel 1e12 Hz # occasionally used in spectroscopy shake 1e-8 sec svedberg 1e-13 s # Used for measuring the sedimentation # coefficient for centrifuging. gamma microgram # Also used for 1e-9 tesla lambda microliter spat 1e12 m # Rarely used for astronomical measurements preece 1e13 ohm m # resistivity planck J s # action of one joule over one second sturgeon /henry # magnetic reluctance daraf 1/farad # elastance (farad spelled backwards) leo 10 m/s^2 poiseuille N s / m^2 # viscosity mayer J/g K # specific heat mired / microK # reciprocal color temperature. The name # abbreviates micro reciprocal degree. crocodile megavolt # used informally in UK physics labs metricounce 25 g mounce metricounce finsenunit 1e5 W/m^2 # Measures intensity of ultraviolet light # with wavelength 296.7 nm. fluxunit 1e-26 W/m^2 Hz # Used in radio astronomy to measure # the energy incident on the receiving # body across a specified frequency # bandwidth. [12] jansky fluxunit # K. G. Jansky identified radio waves coming Jy jansky # from outer space in 1931. flick W / cm^2 sr micrometer # Spectral radiance or irradiance pfu / cm^2 sr s # particle flux unit -- Used to measure # rate at which particles are received by # a spacecraft as particles per solid # angle per detector area per second. [18] pyron cal_IT / cm^2 min # Measures heat flow from solar radiation, # from Greek work "pyr" for fire. katal mol/sec # Measure of the amount of a catalyst. One kat katal # katal of catalyst enables the reaction # to consume or produce on mol/sec. solarluminosity 382.8e24 W # A common yardstick for comparing the # output of different stars. # http://nssdc.gsfc.nasa.gov/planetary/factsheet/sunfact.html # at mean earth-sun distance solarirradiance solarluminosity / (4 pi sundist^2) solarconstant solarirradiance TSI solarirradiance # total solar irradiance # # time # sec s minute 60 s min minute hour 60 min hr hour day 24 hr d day da day week 7 day wk week sennight 7 day fortnight 14 day blink 1e-5 day # Actual human blink takes 1|3 second ce 1e-2 day cron 1e6 years watch 4 hours # time a sentry stands watch or a ship's # crew is on duty. bell 1|8 watch # Bell would be sounded every 30 minutes. # French Revolutionary Time or Decimal Time. It was Proposed during # the French Revolution. A few clocks were made, but it never caught # on. In 1998 Swatch defined a time measurement called ".beat" and # sold some watches that displayed time in this unit. decimalhour 1|10 day decimalminute 1|100 decimalhour decimalsecond 1|100 decimalminute beat decimalminute # Swatch Internet Time # # angular measure # circle 2 pi radian degree 1|360 circle deg degree arcdeg degree arcmin 1|60 degree arcminute arcmin ' arcmin arcsec 1|60 arcmin arcsecond arcsec " arcsec '' " rightangle 90 degrees quadrant 1|4 circle quintant 1|5 circle sextant 1|6 circle sign 1|12 circle # Angular extent of one sign of the zodiac turn circle revolution turn rev turn pulsatance radian / sec gon 1|100 rightangle # measure of grade grade gon centesimalminute 1|100 grade centesimalsecond 1|100 centesimalminute milangle 1|6400 circle # Official NIST definition. # Another choice is 1e-3 radian. pointangle 1|32 circle # Used for reporting compass readings centrad 0.01 radian # Used for angular deviation of light # through a prism. mas milli arcsec # Used by astronomers seclongitude circle (seconds/day) # Astronomers measure longitude # (which they call right ascension) in # time units by dividing the equator into # 24 hours instead of 360 degrees. # # Some geometric formulas # circlearea(r) units=[m;m^2] range=[0,) pi r^2 ; sqrt(circlearea/pi) spherevolume(r) units=[m;m^3] range=[0,) 4|3 pi r^3 ; \ cuberoot(spherevolume/4|3 pi) spherevol() spherevolume square(x) range=[0,) x^2 ; sqrt(square) # # Solid angle measure # sphere 4 pi sr squaredegree 1|180^2 pi^2 sr squareminute 1|60^2 squaredegree squaresecond 1|60^2 squareminute squarearcmin squareminute squarearcsec squaresecond sphericalrightangle 0.5 pi sr octant 0.5 pi sr # # Concentration measures # percent 0.01 % percent mill 0.001 # Originally established by Congress in 1791 # as a unit of money equal to 0.001 dollars, # it has come to refer to 0.001 in general. # Used by some towns to set their property # tax rate, and written with a symbol similar # to the % symbol but with two 0's in the # denominator. [18] proof 1|200 # Alcohol content measured by volume at # 60 degrees Fahrenheit. This is a USA # measure. In Europe proof=percent. ppm 1e-6 partspermillion ppm ppb 1e-9 partsperbillion ppb # USA billion ppt 1e-12 partspertrillion ppt # USA trillion karat 1|24 # measure of gold purity caratgold karat gammil mg/l basispoint 0.01 % # Used in finance fine 1|1000 # Measure of gold purity # The pH scale is used to measure the concentration of hydronium (H3O+) ions in # a solution. A neutral solution has a pH of 7 as a result of dissociated # water molecules. pH(x) units=[1;mol/liter] range=(0,) 10^(-x) mol/liter ; (-log(pH liters/mol)) # # Temperature # # Two types of units are defined: units for converting temperature differences # and functions for converting absolute temperatures. Conversions for # differences start with "deg" and conversions for absolute temperature start # with "temp". # TEMPERATURE kelvin TEMPERATURE_DIFFERENCE kelvin # In 1741 Anders Celsius introduced a temperature scale with water boiling at # 0 degrees and freezing at 100 degrees at standard pressure. After his death # the fixed points were reversed and the scale was called the centigrade # scale. Due to the difficulty of accurately measuring the temperature of # melting ice at standard pressure, the centigrade scale was replaced in 1954 # by the Celsius scale which is defined by subtracting 273.15 from the # temperature in Kelvins. This definition differed slightly from the old # centigrade definition, but the Kelvin scale depends on the triple point of # water rather than a melting point, so it can be measured accurately. tempC(x) units=[1;K] domain=[-273.15,) range=[0,) \ x K + stdtemp ; (tempC +(-stdtemp))/K tempcelsius() tempC degcelsius K degC K # Fahrenheit defined his temperature scale by setting 0 to the coldest # temperature he could produce in his lab with a salt water solution and by # setting 96 degrees to body heat. In Fahrenheit's words: # # Placing the thermometer in a mixture of sal ammoniac or sea # salt, ice, and water a point on the scale will be found which # is denoted as zero. A second point is obtained if the same # mixture is used without salt. Denote this position as 30. A # third point, designated as 96, is obtained if the thermometer # is placed in the mouth so as to acquire the heat of a healthy # man." (D. G. Fahrenheit, Phil. Trans. (London) 33, 78, 1724) tempF(x) units=[1;K] domain=[-459.67,) range=[0,) \ (x+(-32)) degF + stdtemp ; (tempF+(-stdtemp))/degF + 32 tempfahrenheit() tempF degfahrenheit 5|9 degC degF 5|9 degC degreesrankine degF # The Rankine scale has the degrankine degreesrankine # Fahrenheit degree, but its zero degreerankine degF # is at absolute zero. degR degrankine tempR degrankine temprankine degrankine tempreaumur(x) units=[1;K] domain=[-218.52,) range=[0,) \ x degreaumur+stdtemp ; (tempreaumur+(-stdtemp))/degreaumur degreaumur 10|8 degC # The Reaumur scale was used in Europe and # particularly in France. It is defined # to be 0 at the freezing point of water # and 80 at the boiling point. Reaumur # apparently selected 80 because it is # divisible by many numbers. degK K # "Degrees Kelvin" is forbidden usage. tempK K # For consistency # Gas mark is implemented below but in a terribly ugly way. There is # a simple formula, but it requires a conditional which is not # presently supported. # # The formula to convert to degrees Fahrenheit is: # # 25 log2(gasmark) + k_f gasmark<=1 # 25 (gasmark-1) + k_f gasmark>=1 # # k_f = 275 # gasmark[degR] \ .0625 634.67 \ .125 659.67 \ .25 684.67 \ .5 709.67 \ 1 734.67 \ 2 759.67 \ 3 784.67 \ 4 809.67 \ 5 834.67 \ 6 859.67 \ 7 884.67 \ 8 909.67 \ 9 934.67 \ 10 959.67 # Units cannot handle wind chill or heat index because they are two variable # functions, but they are included here for your edification. Clearly these # equations are the result of a model fitting operation. # # wind chill index (WCI) a measurement of the combined cooling effect of low # air temperature and wind on the human body. The index was first defined # by the American Antarctic explorer Paul Siple in 1939. As currently used # by U.S. meteorologists, the wind chill index is computed from the # temperature T (in °F) and wind speed V (in mi/hr) using the formula: # WCI = 0.0817(3.71 sqrt(V) + 5.81 - 0.25V)(T - 91.4) + 91.4. # For very low wind speeds, below 4 mi/hr, the WCI is actually higher than # the air temperature, but for higher wind speeds it is lower than the air # temperature. # # heat index (HI or HX) a measure of the combined effect of heat and # humidity on the human body. U.S. meteorologists compute the index # from the temperature T (in °F) and the relative humidity H (as a # value from 0 to 1). # HI = -42.379 + 2.04901523 T + 1014.333127 H - 22.475541 TH # - .00683783 T^2 - 548.1717 H^2 + 0.122874 T^2 H + 8.5282 T H^2 # - 0.0199 T^2 H^2. # # Physical constants # # Basic constants pi 3.14159265358979323846 c 2.99792458e8 m/s # speed of light in vacuum (exact) light c mu0 4 pi 1e-7 H/m # permeability of vacuum (exact) epsilon0 1/mu0 c^2 # permittivity of vacuum (exact) energy c^2 # convert mass to energy e 1.6021766208e-19 C # electron charge h 4.135667662e-15 eV s # Planck constant hbar h / 2 pi spin hbar G 6.67408e-11 N m^2 / kg^2 # Newtonian gravitational constant # This is the NIST 2006 value. # The relative uncertainty on this # is 1e-4. coulombconst 1/4 pi epsilon0 # listed as "k" sometimes # Physico-chemical constants atomicmassunit 1.660539040e-27 kg # atomic mass unit (defined to be u atomicmassunit # 1|12 of the mass of carbon 12) amu atomicmassunit amu_chem 1.66026e-27 kg # 1|16 of the weighted average mass of # the 3 naturally occuring neutral # isotopes of oxygen amu_phys 1.65981e-27 kg # 1|16 of the mass of a neutral # oxygen 16 atom dalton u # Maybe this should be amu_chem? avogadro grams/amu mol # size of a mole N_A avogadro gasconstant k N_A # molar gas constant R gasconstant boltzmann 1.38064852e-23 J/K # Boltzmann constant k boltzmann kboltzmann boltzmann molarvolume mol R stdtemp / atm # Volume occupied by one mole of an # ideal gas at STP. loschmidt avogadro mol / molarvolume # Molecules per cubic meter of an # ideal gas at STP. Loschmidt did # work similar to Avogadro. stefanboltzmann pi^2 k^4 / 60 hbar^3 c^2 # The power per area radiated by a sigma stefanboltzmann # blackbody at temperature T is # given by sigma T^4. wiendisplacement 2.8977729e-3 m K # Wien's Displacement Law gives the # frequency at which the the Planck # spectrum has maximum intensity. # The relation is lambda T = b where # lambda is wavelength, T is # temperature and b is the Wien # displacement. This relation is # used to determine the temperature # of stars. K_J90 483597.9 GHz/V # Direct measurement of the volt is difficult. Until K_J 483597.8525 GHz/V # recently, laboratories kept Weston cadmium cells as # a reference, but they could drift. In 1987 the # CGPM officially recommended the use of the # Josephson effect as a laboratory representation of # the volt. The Josephson effect occurs when two # superconductors are separated by a thin insulating # layer. A "supercurrent" flows across the insulator # with a frequency that depends on the potential # applied across the superconductors. This frequency # can be very accurately measured. The Josephson # constant K_J, which is equal to 2e/h, relates the # measured frequency to the potential. Two values # given, the conventional (exact) value from 1990 and # the current CODATA measured value. R_K90 25812.807 ohm # Measurement of the ohm also presents difficulties. R_K 25812.8074555 ohm # The old approach involved maintaining resistances # that were subject to drift. The new standard is # based on the Hall effect. When a current carrying # ribbon is placed in a magnetic field, a potential # difference develops across the ribbon. The ratio # of the potential difference to the current is # called the Hall resistance. Klaus von Klitzing # discovered in 1980 that the Hall resistance varies # in discrete jumps when the magnetic field is very # large and the temperature very low. This enables # accurate realization of the resistance h/e^2 in the # lab. Two values given, the conventional (exact) # value from 1990 and the current CODATA measured # value. # Various conventional values gravity 9.80665 m/s^2 # std acceleration of gravity (exact) force gravity # use to turn masses into forces atm 101325 Pa # Standard atmospheric pressure atmosphere atm Hg 13.5951 gram force / cm^3 # Standard weight of mercury (exact) water gram force/cm^3 # Standard weight of water (exact) waterdensity gram / cm^3 # Density of water H2O water wc water # water column mach 331.46 m/s # speed of sound in dry air at STP standardtemp 273.15 K # standard temperature stdtemp standardtemp normaltemp tempF(70) # for gas density, from NIST normtemp normaltemp # Handbook 44 # Weight of mercury and water at different temperatures using the standard # force of gravity. Hg10C 13.5708 force gram / cm^3 # These units, when used to form Hg20C 13.5462 force gram / cm^3 # pressure measures, are not accurate Hg23C 13.5386 force gram / cm^3 # because of considerations of the Hg30C 13.5217 force gram / cm^3 # revised practical temperature scale. Hg40C 13.4973 force gram / cm^3 Hg60F 13.5574 force gram / cm^3 H2O0C 0.99987 force gram / cm^3 H2O5C 0.99999 force gram / cm^3 H2O10C 0.99973 force gram / cm^3 H2O15C 0.99913 force gram / cm^3 H2O18C 0.99862 force gram / cm^3 H2O20C 0.99823 force gram / cm^3 H2O25C 0.99707 force gram / cm^3 H2O50C 0.98807 force gram / cm^3 H2O100C 0.95838 force gram / cm^3 # Atomic constants Rinfinity 10973731.568539 /m # The wavelengths of a spectral series R_H 10967760 /m # can be expressed as # 1/lambda = R (1/m^2 - 1/n^2). # where R is a number that various # slightly from element to element. # For hydrogen, R_H is the value, # and for heavy elements, the value # approaches Rinfinity, which can be # computed from # m_e c alpha^2 / 2 h # with a loss of 4 digits # of precision. alpha 7.2973525664e-3 # The fine structure constant was # introduced to explain fine # structure visible in spectral # lines. It can be computed from # mu0 c e^2 / 2 h # with a loss of 3 digits precision # and loss of precision in derived # values which use alpha. bohrradius alpha / 4 pi Rinfinity prout 185.5 keV # nuclear binding energy equal to 1|12 # binding energy of the deuteron # Planck constants planckmass 2.17651e-8 kg # sqrt(hbar c / G) m_P planckmass plancktime hbar / planckmass c^2 t_P plancktime plancklength plancktime c l_P plancklength # Particle radius electronradius (1/4 pi epsilon0) e^2 / electronmass c^2 # Classical deuteronchargeradius 2.1413e-15 m protonchargeradius 0.8751e-15 m # Masses of elementary particles electronmass 5.48579909070e-4 u m_e electronmass protonmass 1.007276466879 u m_p protonmass neutronmass 1.00866491588 u m_n neutronmass muonmass 0.1134289257 u m_mu muonmass deuteronmass 2.013553212745 u m_d deuteronmass alphaparticlemass 4.001506179127 u m_alpha alphaparticlemass taumass 1.90749 u m_tau taumass tritonmass 3.01550071632 u m_t tritonmass helionmass 3.01493224673 u m_h helionmass # particle wavelengths: the compton wavelength of a particle is # defined as h / m c where m is the mass of the particle. electronwavelength h / m_e c lambda_C electronwavelength protonwavelength h / m_p c lambda_C,p protonwavelength neutronwavelength h / m_n c lambda_C,n neutronwavelength # Magnetic moments bohrmagneton e hbar / 2 electronmass mu_B bohrmagneton nuclearmagneton e hbar / 2 protonmass mu_N nuclearmagneton mu_mu -4.49044826e-26 J/T # Muon magnetic moment mu_p 1.4106067873e-26 J/T # Proton magnetic moment mu_e -928.4764620e-26 J/T # Electron magnetic moment mu_n -0.96623650e-26 J/T # Neutron magnetic moment mu_d 0.4330735040e-26 J/T # Deuteron magnetic moment mu_t 1.504609503e-26 J/T # Triton magnetic moment mu_h -1.074617522e-26 J/T # Helion magnetic moment # # Units derived from physical constants # kgf kg force technicalatmosphere kgf / cm^2 at technicalatmosphere hyl kgf s^2 / m # Also gram-force s^2/m according to [15] mmHg mm Hg torr atm / 760 # The torr, named after Evangelista # Torricelli, and is very close to the mm Hg tor Pa # Suggested in 1913 but seldom used [24]. # Eventually renamed the Pascal. Don't # confuse the tor with the torr. inHg inch Hg inH2O inch water mmH2O mm water eV e V # Energy acquired by a particle with charge e electronvolt eV # when it is accelerated through 1 V lightyear c julianyear # The 365.25 day year is specified in ly lightyear # NIST publication 811 lightsecond c s lightminute c min parsec au / tan(arcsec) # Unit of length equal to distance pc parsec # from the sun to a point having # heliocentric parallax of 1 # arcsec (derived from parallax # second). A distant object with # paralax theta will be about # (arcsec/theta) parsecs from the # sun (using the approximation # that tan(theta) = theta). rydberg h c Rinfinity # Rydberg energy crith 0.089885 gram # The crith is the mass of one # liter of hydrogen at standard # temperature and pressure. amagatvolume molarvolume amagat mol/amagatvolume # Used to measure gas densities lorentz bohrmagneton / h c # Used to measure the extent # that the frequency of light # is shifted by a magnetic field. cminv h c / cm # Unit of energy used in infrared invcm cminv # spectroscopy. wavenumber cminv kcal_mol kcal_th / mol N_A # kcal/mol is used as a unit of # energy by physical chemists. # # CGS system based on centimeter, gram and second # dyne cm gram / s^2 # force dyn dyne erg cm dyne # energy poise gram / cm s # viscosity, honors Jean Poiseuille P poise rhe /poise # reciprocal viscosity stokes cm^2 / s # kinematic viscosity St stokes stoke stokes lentor stokes # old name Gal cm / s^2 # acceleration, used in geophysics galileo Gal # for earth's gravitational field # (note that "gal" is for gallon # but "Gal" is the standard symbol # for the gal which is evidently a # shortened form of "galileo".) barye dyne/cm^2 # pressure barad barye # old name kayser 1/cm # Proposed as a unit for wavenumber balmer kayser # Even less common name than "kayser" kine cm/s # velocity bole g cm / s # momentum pond gram force glug gram force s^2 / cm # Mass which is accelerated at # 1 cm/s^2 by 1 gram force darcy centipoise cm^2 / s atm # Measures permeability to fluid flow. # One darcy is the permeability of a # medium that allows a flow of cc/s # of a liquid of centipoise viscosity # under a pressure gradient of # atm/cm. Named for H. Darcy. mobileohm cm / dyn s # mobile ohm, measure of mechanical # mobility mechanicalohm dyn s / cm # mechanical resistance acousticalohm dyn s / cm^5 # ratio of the sound pressure of # 1 dyn/cm^2 to a source of strength # 1 cm^3/s ray acousticalohm rayl dyn s / cm^3 # Specific acoustical resistance eotvos 1e-9 Gal/cm # Change in gravitational acceleration # over horizontal distance # Electromagnetic units derived from the abampere abampere 10 A # Current which produces a force of abamp abampere # 2 dyne/cm between two infinitely aA abampere # long wires that are 1 cm apart biot aA # alternative name for abamp Bi biot abcoulomb abamp sec abcoul abcoulomb abfarad abampere sec / abvolt abhenry abvolt sec / abamp abvolt dyne cm / abamp sec abohm abvolt / abamp abmho /abohm gauss abvolt sec / cm^2 Gs gauss maxwell abvolt sec # Also called the "line" Mx maxwell oersted gauss / mu0 Oe oersted gilbert gauss cm / mu0 Gb gilbert Gi gilbert unitpole 4 pi maxwell emu erg/gauss # "electro-magnetic unit", a measure of # magnetic moment, often used as emu/cm^3 # to specify magnetic moment density. # Gaussian system: electromagnetic units derived from statampere. # # Note that the Gaussian units are often used in such a way that Coulomb's law # has the form F= q1 * q2 / r^2. The constant 1|4*pi*epsilon0 is incorporated # into the units. From this, we can get the relation force=charge^2/dist^2. # This means that the simplification esu^2 = dyne cm^2 can be used to simplify # units in the Gaussian system, with the curious result that capacitance can be # measured in cm, resistance in sec/cm, and inductance in sec^2/cm. These # units are given the names statfarad, statohm and stathenry below. statampere 10 A cm / s c statamp statampere statvolt dyne cm / statamp sec statcoulomb statamp s esu statcoulomb statcoul statcoulomb statfarad statamp sec / statvolt cmcapacitance statfarad stathenry statvolt sec / statamp statohm statvolt / statamp statmho /statohm statmaxwell statvolt sec franklin statcoulomb debye 1e-18 statcoul cm # unit of electrical dipole moment helmholtz debye/angstrom^2 # Dipole moment per area jar 1000 statfarad # approx capacitance of Leyden jar # # Some historical electromagnetic units # intampere 0.999835 A # Defined as the current which in one intamp intampere # second deposits .001118 gram of # silver from an aqueous solution of # silver nitrate. intfarad 0.999505 F intvolt 1.00033 V intohm 1.000495 ohm # Defined as the resistance of a # uniform column of mercury containing # 14.4521 gram in a column 1.063 m # long and maintained at 0 degC. daniell 1.042 V # Meant to be electromotive force of a # Daniell cell, but in error by .04 V faraday N_A e mol # Charge that must flow to deposit or faraday_phys 96521.9 C # liberate one gram equivalent of any faraday_chem 96495.7 C # element. (The chemical and physical # values are off slightly from what is # obtained by multiplying by amu_chem # or amu_phys. These values are from # a 1991 NIST publication.) Note that # there is a Faraday constant which is # equal to N_A e and hence has units of # C/mol. kappline 6000 maxwell # Named by and for Gisbert Kapp siemensunit 0.9534 ohm # Resistance of a meter long column of # mercury with a 1 mm cross section. # # Printed circuit board units. # # http://www.ndt-ed.org/GeneralResources/IACS/IACS.htm. # # Conductivity is often expressed as a percentage of IACS. A copper wire a # meter long with a 1 mm^2 cross section has a resistance of 1|58 ohm at # 20 deg C. Copper density is also standarized at that temperature. # copperconductivity 58 siemens m / mm^2 # A wire a meter long with IACS copperconductivity # a 1 mm^2 cross section copperdensity 8.89 g/cm^3 # The "ounce" measures the ouncecopper oz / ft^2 copperdensity # thickness of copper used ozcu ouncecopper # in circuitboard fabrication # # Photometric units # LUMINOUS_INTENSITY candela LUMINOUS_FLUX lumen LUMINOUS_ENERGY talbot ILLUMINANCE lux EXITANCE lux candle 1.02 candela # Standard unit for luminous intensity hefnerunit 0.9 candle # in use before candela hefnercandle hefnerunit # violle 20.17 cd # luminous intensity of 1 cm^2 of # platinum at its temperature of # solidification (2045 K) lumen cd sr # Luminous flux (luminous energy per lm lumen # time unit) talbot lumen s # Luminous energy lumberg talbot # References give these values for lumerg talbot # lumerg and lumberg both. Note that # a paper from 1948 suggests that # lumerg should be 1e-7 talbots so # that lumergs/erg = talbots/joule. # lumerg = luminous erg lux lm/m^2 # Illuminance or exitance (luminous lx lux # flux incident on or coming from phot lumen / cm^2 # a surface) ph phot # footcandle lumen/ft^2 # Illuminance from a 1 candela source # at a distance of one foot metercandle lumen/m^2 # Illuminance from a 1 candela source # at a distance of one meter mcs metercandle s # luminous energy per area, used to # measure photographic exposure nox 1e-3 lux # These two units were proposed for skot 1e-3 apostilb # measurements relating to dark adapted # eyes. # Luminance measures LUMINANCE nit nit cd/m^2 # Luminance: the intensity per projected stilb cd / cm^2 # area of an extended luminous source. sb stilb # (nit is from latin nitere = to shine.) apostilb cd/pi m^2 asb apostilb blondel apostilb # Named after a French scientist. # Equivalent luminance measures. These units are units which measure # the luminance of a surface with a specified exitance which obeys # Lambert's law. (Lambert's law specifies that luminous intensity of # a perfectly diffuse luminous surface is proportional to the cosine # of the angle at which you view the luminous surface.) equivalentlux cd / pi m^2 # luminance of a 1 lux surface equivalentphot cd / pi cm^2 # luminance of a 1 phot surface lambert cd / pi cm^2 footlambert cd / pi ft^2 # The bril is used to express "brilliance" of a source of light on a # logarithmic scale to correspond to subjective perception. An increase of 1 # bril means doubling the luminance. A luminance of 1 lambert is defined to # have a brilliance of 1 bril. bril(x) units=[1;lambert] 2^(x+-100) lamberts ;log2(bril/lambert)+100 # Some luminance data from the IES Lighting Handbook, 8th ed, 1993 sunlum 1.6e9 cd/m^2 # at zenith sunillum 100e3 lux # clear sky sunillum_o 10e3 lux # overcast sky sunlum_h 6e6 cd/m^2 # value at horizon skylum 8000 cd/m^2 # average, clear sky skylum_o 2000 cd/m^2 # average, overcast sky moonlum 2500 cd/m^2 # # Photographic Exposure Value # This section by Jeff Conrad (jeff_conrad@msn.com) # # The Additive system of Photographic EXposure (APEX) proposed in ASA # PH2.5-1960 was an attempt to simplify exposure determination for people who # relied on exposure tables rather than exposure meters. Shortly thereafter, # nearly all cameras incorporated exposure meters, so the APEX system never # caught on, but the concept of exposure value remains in use. Though given as # 'Ev' in ASA PH2.5-1960, it is now more commonly indicated by 'EV'. EV is # related to exposure parameters by # # A^2 LS ES # 2^EV = --- = -- = -- # t K C # # Where # A = Relative aperture (f-number) # t = Exposure time in seconds # L = Scene luminance in cd/m2 # E = Scene illuminance in lux # S = Arithmetic ISO speed # K = Reflected-light meter calibration constant # C = Incident-light meter calibration constant # # Strictly, an exposure value is a combination of aperture and exposure time, # but it's also commonly used to indicate luminance (or illuminance). # Conversion to luminance or illuminance units depends on the ISO speed and the # meter calibration constant. Common practice is to use an ISO speed of 100. # Calibration constants vary among camera and meter manufacturers: Canon, # Nikon, and Sekonic use a value of 12.5 for reflected-light meters, while # Kenko (formerly Minolta) and Pentax use a value of 14. Kenko and Sekonic use # a value of 250 for incident-light meters with flat receptors. # # The values for in-camera meters apply only averaging, weighted-averaging, or # spot metering--the multi-segment metering incorporated in most current # cameras uses proprietary algorithms that evaluate many factors related to the # luminance distribution of what is being metered; they are not amenable to # simple conversions, and are usually not disclosed by the manufacturers. s100 100 / lx s # ISO 100 speed iso100 s100 # Reflected-light meter calibration constant with ISO 100 speed k1250 12.5 (cd/m2) / lx s # For Canon, Nikon, and Sekonic k1400 14 (cd/m2) / lx s # For Kenko (Minolta) and Pentax # Incident-light meter calibration constant with ISO 100 film c250 250 lx / lx s # flat-disc receptor # Exposure value to scene luminance with ISO 100 imaging media # For Kenko (Minolta) or Pentax #ev100(x) units=[;cd/m^2] range=(0,) 2^x k1400 / s100; log2(ev100 s100/k1400) # For Canon, Nikon, or Sekonic ev100(x) units=[1;cd/m^2] range=(0,) 2^x k1250 / s100; log2(ev100 s100/k1250) EV100() ev100 # Exposure value to scene illuminance with ISO 100 imaging media iv100(x) units=[1;lx] range=(0,) 2^x c250 / s100; log2(iv100 s100 / c250) # Other Photographic Exposure Conversions # # As part of APEX, ASA PH2.5-1960 proposed several logarithmic quantities # related by # # Ev = Av + Tv = Bv + Sv # # where # Av = log2(A^2) Aperture value # Tv = log2(1/t) Time value # Sv = log2(N Sx) Speed value # Bv = log2(B S / K) Luminance ("brightness") value # Iv = log2(I S / C) Illuminance value # # and # A = Relative aperture (f-number) # t = Exposure time in seconds # Sx = Arithmetic ISO speed in 1/lux s # B = luminance in cd/m2 # I = luminance in lux # The constant N derives from the arcane relationship between arithmetic # and logarithmic speed given in ASA PH2.5-1960. That relationship # apparently was not obvious--so much so that it was thought necessary # to explain it in PH2.12-1961. The constant has had several values # over the years, usually without explanation for the changes. Although # APEX had little impact on consumer cameras, it has seen a partial # resurrection in the Exif standards published by the Camera & Imaging # Products Association of Japan. #N_apex 2^-1.75 lx s # precise value implied in ASA PH2.12-1961, # derived from ASA PH2.5-1960. #N_apex 0.30 lx s # rounded value in ASA PH2.5-1960, # ASA PH2.12-1961, and ANSI PH2.7-1986 #N_apex 0.3162 lx s # value in ANSI PH2.7-1973 N_exif 1|3.125 lx s # value in Exif 2.3 (2010), making Sv(5) = 100 K_apex1961 11.4 (cd/m2) / lx s # value in ASA PH2.12-1961 K_apex1971 12.5 (cd/m2) / lx s # value in ANSI PH3.49-1971; more common C_apex1961 224 lx / lx s # value in PH2.12-1961 (20.83 for I in # footcandles; flat sensor?) C_apex1971 322 lx / lx s # mean value in PH3.49-1971 (30 +/- 5 for I in # footcandles; hemispherical sensor?) N_speed N_exif K_lum K_apex1971 C_illum C_apex1961 # Units for Photographic Exposure Variables # # Practical photography sometimes pays scant attention to units for exposure # variables. In particular, the "speed" of the imaging medium is treated as if # it were dimensionless when it should have units of reciprocal lux seconds; # this practice works only because "speed" is almost invariably given in # accordance with international standards (or similar ones used by camera # manufacturers)--so the assumed units are invariant. In calculating # logarithmic quantities--especially the time value Tv and the exposure value # EV--the units for exposure time ("shutter speed") are often ignored; this # practice works only because the units of exposure time are assumed to be in # seconds, and the missing units that make the argument to the logarithmic # function dimensionless are silently provided. # # In keeping with common practice, the definitions that follow treat "speeds" # as dimensionless, so ISO 100 speed is given simply as '100'. When # calculating the logarithmic APEX quantities Av and Tv, the definitions # provide the missing units, so the times can be given with any appropriate # units. For example, giving an exposure time of 1 minute as either '1 min' or # '60 s' will result in Tv of -5.9068906. # # Exposure Value from f-number and Exposure Time # # Because nonlinear unit conversions only accept a single quantity, # there is no direct conversion from f-number and exposure time to # exposure value EV. But the EV can be obtained from a combination of # Av and Tv. For example, the "sunny 16" rule states that correct # exposure for a sunlit scene can achieved by using f/16 and an exposure # time equal to the reciprocal of the ISO speed in seconds; this can be # calculated as # # ~Av(16) + ~Tv(1|100 s), # # which gives 14.643856. These conversions may be combined with the # ev100 conversion: # # ev100(~Av(16) + ~Tv(1|100 s)) # # to yield the assumed average scene luminance of 3200 cd/m^2. # convert relative aperture (f-number) to aperture value Av(A) units=[1;1] domain=[-2,) range=[0.5,) 2^(A/2); 2 log2(Av) # convert exposure time to time value Tv(t) units=[1;s] range=(0,) 2^(-t) s; log2(s / Tv) # convert logarithmic speed Sv in ASA PH2.5-1960 to ASA/ISO arithmetic speed; # make arithmetic speed dimensionless # 'Sv' conflicts with the symbol for sievert; you can uncomment this function # definition if you don't need that symbol #Sv(S) units=[1;1] range=(0,) 2^S / (N_speed/lx s); log2((N_speed/lx s) Sv) Sval(S) units=[1;1] range=(0,) 2^S / (N_speed/lx s); log2((N_speed/lx s) Sval) # convert luminance value Bv in ASA PH2.12-1961 to luminance Bv(x) units=[1;cd/m^2] range=(0,) \ 2^x K_lum N_speed ; log2(Bv / (K_lum N_speed)) # convert illuminance value Iv in ASA PH2.12-1961 to illuminance Iv(x) units=[1;lx] range=(0,) \ 2^x C_illum N_speed ; log2(Iv / (C_illum N_speed)) # convert ASA/ISO arithmetic speed Sx to ASA logarithmic speed in # ASA PH2.5-1960; make arithmetic speed dimensionless Sx(S) units=[1;1] domain=(0,) \ log2((N_speed/lx s) S); 2^Sx / (N_speed/lx s) # convert DIN speed/ISO logarithmic speed in ISO 6:1993 to arithmetic speed # for convenience, speed is treated here as if it were dimensionless Sdeg(S) units=[1;1] range=(0,) 10^((S - 1) / 10) ; (1 + 10 log(Sdeg)) Sdin() Sdeg # Numerical Aperture and f-Number of a Lens # # The numerical aperture (NA) is given by # # NA = n sin(theta) # # where n is the index of refraction of the medium and theta is half # of the angle subtended by the aperture stop from a point in the image # or object plane. For a lens in air, n = 1, and # # NA = 0.5 / f-number # # convert NA to f-number numericalaperture(x) units=[1;1] domain=(0,1] range=[0.5,) \ 0.5 / x ; 0.5 / numericalaperture NA() numericalaperture # # convert f-number to itself; restrict values to those possible fnumber(x) units=[1;1] domain=[0.5,) range=[0.5,) x ; fnumber # Referenced Photographic Standards # # ASA PH-2.5-1960. USA Standard, Method for Determining (Monochrome, # Continuous-Tone) Speed of Photographic Negative Materials. # ASA PH2.12-1961. American Standard, General-Purpose Photographic # Exposure Meters (photoelectric type). # ANSI PH3.49-1971. American National Standard for general-purpose # photographic exposure meters (photoelectric type). # ANSI PH2.7-1973. American National Standard Photographic Exposure Guide. # ANSI PH2.7-1986. American National Standard for Photography -- # Photographic Exposure Guide. # CIPA DC-008-2010. Exchangeable image file format for digital still # cameras: Exif Version 2.3 # ISO 6:1993. International Standard, Photography -- Black-and-white # pictorial still camera negative film/process systems -- # Determination of ISO Speed. # # Astronomical time measurements # # Astronomical time measurement is a complicated matter. The length of the # true day at a given place can be 21 seconds less than 24 hours or 30 seconds # over 24 hours. The two main reasons for this are the varying speed of the # earth in its elliptical orbit and the fact that the sun moves on the ecliptic # instead of along the celestial equator. To devise a workable system for time # measurement, Simon Newcomb (1835-1909) used a fictitious "mean sun". # Consider a first fictitious sun traveling along the ecliptic at a constant # speed and coinciding with the true sun at perigee and apogee. Then # considering a second fictitious sun traveling along the celestial equator at # a constant speed and coinciding with the first fictitious sun at the # equinoxes. The second fictitious sun is the "mean sun". From this equations # can be written out to determine the length of the mean day, and the tropical # year. The length of the second was determined based on the tropical year # from such a calculation and was officially used from 1960-1967 until atomic # clocks replaced astronomical measurements for a standard of time. All of the # values below give the mean time for the specified interval. # # See "Mathematical Astronomy Morsels" by Jean Meeus for more details # and a description of how to compute the correction to mean time. # TIME second anomalisticyear 365.2596 days # The time between successive # perihelion passages of the # earth. siderealyear 365.256360417 day # The time for the earth to make # one revolution around the sun # relative to the stars. tropicalyear 365.242198781 day # The time needed for the mean sun # as defined above to increase # its longitude by 360 degrees. # Most references defined the # tropical year as the interval # between vernal equinoxes, but # this is misleading. The length # of the season changes over time # because of the eccentricity of # the earth's orbit. The time # between vernal equinoxes is # approximately 365.24237 days # around the year 2000. See # "Mathematical Astronomy # Morsels" for more details. eclipseyear 346.62 days # The line of nodes is the # intersection of the plane of # Earth's orbit around the sun # with the plane of the moon's # orbit around earth. Eclipses # can only occur when the moon # and sun are close to this # line. The line rotates and # appearances of the sun on the # line of nodes occur every # eclipse year. saros 223 synodicmonth # The earth, moon and sun appear in # the same arrangement every # saros, so if an eclipse occurs, # then one saros later, a similar # eclipse will occur. (The saros # is close to 19 eclipse years.) # The eclipse will occur about # 120 degrees west of the # preceeding one because the # saros is not an even number of # days. After 3 saros, an # eclipse will occur at # approximately the same place. siderealday 86164.09054 s # The sidereal day is the interval siderealhour 1|24 siderealday # between two successive transits siderealminute 1|60 siderealhour # of a star over the meridian, siderealsecond 1|60 siderealminute # or the time required for the # earth to make one rotation # relative to the stars. The # more usual solar day is the # time required to make a # rotation relative to the sun. # Because the earth moves in its # orbit, it has to turn a bit # extra to face the sun again, # hence the solar day is slightly # longer. anomalisticmonth 27.55454977 day # Time for the moon to travel from # perigee to perigee nodicalmonth 27.2122199 day # The nodes are the points where draconicmonth nodicalmonth # an orbit crosses the ecliptic. draconiticmonth nodicalmonth # This is the time required to # travel from the ascending node # to the next ascending node. siderealmonth 27.321661 day # Time required for the moon to # orbit the earth lunarmonth 29 days + 12 hours + 44 minutes + 2.8 seconds # Mean time between full moons. synodicmonth lunarmonth # Full moons occur when the sun lunation synodicmonth # and moon are on opposite sides lune 1|30 lunation # of the earth. Since the earth lunour 1|24 lune # moves around the sun, the moon # has to revolve a bit extra to # get into the full moon # configuration. year tropicalyear yr year month 1|12 year mo month lustrum 5 years # The Lustrum was a Roman # purification ceremony that took # place every five years. # Classically educated Englishmen # used this term. decade 10 years century 100 years millennium 1000 years millennia millennium solaryear year lunaryear 12 lunarmonth calendaryear 365 day commonyear 365 day leapyear 366 day julianyear 365.25 day gregorianyear 365.2425 day islamicyear 354 day # A year of 12 lunar months. They islamicleapyear 355 day # began counting on July 16, AD 622 # when Muhammad emigrated to Medina # (the year of the Hegira). They need # 11 leap days in 30 years to stay in # sync with the lunar year which is a # bit longer than the 29.5 days of the # average month. The months do not # keep to the same seasons, but # regress through the seasons every # 32.5 years. islamicmonth 1|12 islamicyear # They have 29 day and 30 day months. # The Hewbrew year is also based on lunar months, but synchronized to the solar # calendar. The months vary irregularly between 29 and 30 days in length, and # the years likewise vary. The regular year is 353, 354, or 355 days long. To # keep up with the solar calendar, a leap month of 30 days is inserted every # 3rd, 6th, 8th, 11th, 14th, 17th, and 19th years of a 19 year cycle. This # gives leap years that last 383, 384, or 385 days. # Sidereal days mercuryday 58.6462 day venusday 243.01 day # retrograde earthday siderealday marsday 1.02595675 day jupiterday 0.41354 day saturnday 0.4375 day uranusday 0.65 day # retrograde neptuneday 0.768 day plutoday 6.3867 day # Sidereal years from http://ssd.jpl.nasa.gov/phys_props_planets.html. Data # was updated in May 2001 based on the 1992 Explanatory Supplement to the # Astronomical Almanac and the mean longitude rates. Apparently the table of # years in that reference is incorrect. mercuryyear 0.2408467 julianyear venusyear 0.61519726 julianyear earthyear siderealyear marsyear 1.8808476 julianyear jupiteryear 11.862615 julianyear saturnyear 29.447498 julianyear uranusyear 84.016846 julianyear neptuneyear 164.79132 julianyear plutoyear 247.92065 julianyear # Objects on the earth are charted relative to a perfect ellipsoid whose # dimensions are specified by different organizations. The ellipsoid is # specified by an equatorial radius and a flattening value which defines the # polar radius. These values are the 1996 values given by the International # Earth Rotation Service (IERS) whose reference documents can be found at # http://maia.usno.navy.mil/ earthflattening 1|298.25642 earthradius_equatorial 6378136.49 m earthradius_polar (-earthflattening+1) earthradius_equatorial landarea 148.847e6 km^2 oceanarea 361.254e6 km^2 moonradius 1738 km # mean value sunradius 6.96e8 m # Many astronomical values can be measured most accurately in a system of units # using the astronomical unit and the mass of the sun as base units. The # uncertainty in the gravitational constant makes conversion to SI units # significantly less accurate. # The astronomical unit was defined to be the length of the of the semimajor # axis of a massless object with the same year as the earth. With such a # definition in force, and with the mass of the sun set equal to one, Kepler's # third law can be used to solve for the value of the gravitational constant. # Kepler's third law says that (2 pi / T)^2 a^3 = G M where T is the orbital # period, a is the size of the semimajor axis, G is the gravitational constant # and M is the mass. With M = 1 and T and a chosen for the earth's orbit, we # find sqrt(G) = (2 pi / T) sqrt(AU^3). This constant is called the Gaussian # gravitational constant, apparently because Gauss originally did the # calculations. However, when the original calculation was done, the value # for the length of the earth's year was inaccurate. The value used is called # the Gaussian year. Changing the astronomical unit to bring it into # agreement with more accurate values for the year would have invalidated a # lot of previous work, so instead the astronomical unit has been kept equal # to this original value. This is accomplished by using a standard value for # the Gaussian gravitational constant. This constant is called k. # Many values below are from http://ssd.jpl.nasa.gov/?constants gauss_k 0.01720209895 # This beast has dimensions of # au^(3|2) / day and is exact. gaussianyear (2 pi / gauss_k) days # Year that corresponds to the Gaussian # gravitational constant. This is a # fictional year, and doesn't # correspond to any celestial event. astronomicalunit 149597870700 m # IAU definition from 2012, exact au astronomicalunit # ephemeris for the above described # astronomical unit. (See the NASA # site listed above.) solarmass 1.9891e30 kg sunmass solarmass sundist 1.0000010178 au # mean earth-sun distance moondist 3.844e8 m # mean earth-moon distance sundist_near 1.471e11 m # earth-sun distance at perihelion sundist_far 1.521e11 m # earth-sun distance at aphelion moondist_min 3.564e8 m # approximate least distance at # perigee 1901-2300 moondist_max 4.067e8 m # approximate greatest distance at # apogee 1901-2300 # The following are masses for planetary systems, not just the planet itself. # The comments give the uncertainty in the denominators. As noted above, # masses are given relative to the solarmass because this is more accurate. # The conversion to SI is uncertain because of uncertainty in G, the # gravitational constant. # # Values are from http://ssd.jpl.nasa.gov/astro_constants.html mercurymass solarmass / 6023600 # 250 venusmass solarmass / 408523.71 # 0.06 earthmoonmass solarmass / 328900.56 # 0.02 marsmass solarmass / 3098708 # 9 jupitermass solarmass / 1047.3486 # 0.0008 saturnmass solarmass / 3497.898 # 0.018 uranusmass solarmass / 22902.98 # 0.03 neptunemass solarmass / 19412.24 # 0.04 plutomass solarmass / 1.35e8 # 0.07e8 moonearthmassratio 0.012300034 # uncertainty 3e-9 earthmass earthmoonmass / ( 1 + moonearthmassratio) moonmass moonearthmassratio earthmass # These are the old values for the planetary masses. They may give # the masses of the planets alone. oldmercurymass 0.33022e24 kg oldvenusmass 4.8690e24 kg oldmarsmass 0.64191e24 kg oldjupitermass 1898.8e24 kg oldsaturnmass 568.5e24 kg olduranusmass 86.625e24 kg oldneptunemass 102.78e24 kg oldplutomass 0.015e24 kg # Mean radius from http://ssd.jpl.nsaa.gov/phys_props_planets.html which in # turn cites Global Earth Physics by CF Yoder, 1995. mercuryradius 2440 km venusradius 6051.84 km earthradius 6371.01 km marsradius 3389.92 km jupiterradius 69911 km saturnradius 58232 km uranusradius 25362 km neptuneradius 24624 km plutoradius 1151 km moongravity 1.62 m/s^2 # The Hubble constant gives the speed at which distance galaxies are moving # away from the earth according to v = H0*d, where H0 is the hubble constant # and d is the distance to the galaxy. hubble 70 km/s/Mpc # approximate H0 hubble # Parallax is the angular difference between the topocentric (on Earth's # surface) and geocentric (at Earth's center) direction toward a celestial body # when the body is at a given altitude. When the body is on the horizon, the # parallax is the horizontal parallax; when the body is on the horizon and the # observer is on the equator, the parallax is the equatorial horizontal # parallax. When the body is at zenith, the parallax is zero. lunarparallax asin(earthradius_equatorial / moondist) # Moon equatorial moonhp lunarparallax # horizontal parallax # at mean distance # Light from celestial objects is attenuated by passage through Earth's # atmosphere. A body near the horizon passes through much more air than an # object at zenith, and is consequently less bright. Air mass is the ratio of # the length of the optical path at a given altitude (angle above the horizon) # to the length at zenith. Air mass at zenith is by definition unity; at the # horizon, air mass is approximately 38, though the latter value can vary # considerably with atmospheric conditions. The general formula is # E = E0 # exp(-c X), where E0 is the value outside Earth's atmosphere, E is the value # seen by an observer, X is the air mass and c is the extinction coefficient. # A common value for c in reasonably clear air is 0.21, but values can be # considerably greater in urban areas. Apparent altitude is that perceived by # an observer; it includes the effect of atmospheric refraction. There is no # shortage of formulas for air mass # (https://en.wikipedia.org/wiki/Air_mass_(astronomy)); all are subject to # variations in local atmospheric conditions. The formula used here is simple # and is in good agreement with rigorously calculated values under standard # conditions. # # Extraterrestrial illuminance or luminance of an object at a given altitude # determined with vmag() or SB_xxx() below can be multiplied by # atm_transmission() or atm_transmissionz() to estimate the terrestrial value. # # Kasten and Young (1989) air mass formula. alt is apparent altitude # Reference: # Kasten, F., and A.T. Young. 1989. "Revised Optical Air Mass Tables # and Approximation Formula." Applied Optics. Vol. 28, 4735–4738. # Bibcode:1989ApOpt..28.4735K. doi:10.1364/AO.28.004735. airmass(alt) units=[degree;1] domain=[0,90] noerror \ 1 / (sin(alt) + 0.50572 (alt / degree + 6.07995)^-1.6364) # zenith is apparent zenith angle (zenith = 90 deg - alt) airmassz(zenith) units=[degree;1] domain=[0,90] noerror \ 1 / (cos(zenith) + 0.50572 (96.07995 - zenith / degree)^-1.6364) # For reasonably clear air at sea level; values may need adjustment for # elevation and local atmospheric conditions # for scotopic vision (510 nm), appropriate for the dark-adapted eye # extinction_coeff 0.26 # for photopic vision, appropriate for observing brighter objects such # as the full moon extinction_coeff 0.21 atm_transmission(alt) units=[degree;1] domain=[0,90] noerror \ exp(-extinction_coeff airmass(alt)) # in terms of zenith angle (zenith = 90 deg - alt) atm_transmissionz(zenith) units=[degree;1] domain=[0,90] noerror \ exp(-extinction_coeff airmassz(zenith)) # Moon and Sun data at mean distances moonvmag -12.74 # Moon apparent visual magnitude at mean distance sunvmag -26.74 # Sun apparent visual magnitude at mean distance moonsd asin(moonradius / moondist) # Moon angular semidiameter at mean distance sunsd asin(sunradius / sundist) # Sun angular semidiameter at mean distance # Visual magnitude of star or other celestial object. The system of stellar # magnitudes, developed in ancient Greece, assigned magnitudes from 1 # (brightest) to 6 (faintest visible to the naked eye). In 1856, British # astronomer Norman Pogson made the system precise, with a magnitude 1 object # 100 times as bright as a magnitude 6 object, and each magnitude differing # from the next by a constant ratio; the ratio, sometimes known as Pogson's # ratio, is thus 100^0.2, or approximately 2.5119. The logarithm of 100^0.2 is # 0.4, hence the common use of powers of 10 and base-10 logarithms. # # Reference: # Allen, C.W. 1976. Astrophysical Quantities, 3rd ed. 1973, reprinted # with corrections, 1976. London: Athlone. # # The function argument is the (dimensionless) visual magnitude; reference # illuminance of 2.54e-6 lx is from Allen (2000, 21), and is for outside # Earth's atmosphere. Illuminance values can be adjusted to terrestrial values # by multiplying by one of the atm_transmission functions above. # Illuminance from apparent visual magnitude vmag(mag) units=[1;lx] domain=[,] range=(0,] \ 2.54e-6 lx 10^(-0.4 mag); -2.5 log(vmag / (2.54e-6 lx)) # Surface brightness of a celestial object of a given visual magnitude # is a logarithmic measure of the luminance the object would have if its # light were emitted by an object of specified solid angle; it is # expressed in magnitudes per solid angle. Surface brightness can be # obtained from the visual magnitude by # S = m + 2.5 log(pi pi k a b), # where k is the phase (fraction illuminated), a is the equatorial # radius, and b is the polar radius. For 100% illumination (e.g., full # moon), this is often simplified to # S = m + 2.5 log(pi k s^2), # where s is the object's angular semidiameter; the units of s determine # the units of solid angle. The visual magnitude and semidiameter must # be appropriate for the object's distance; for other than 100% # illumination, the visual magnitude must be appropriate for the phase. # Luminance values are for outside Earth's atmosphere; they can be # adjusted to terrestrial values by multiplying by one of the atm_transmission # functions above. # luminance from surface brightness in magnitudes per square degree SB_degree(sb) units=[1;cd/m^2] domain=[,] range=(0,] \ vmag(sb) / squaredegree ; \ ~vmag(SB_degree squaredegree) # luminance from surface brightness in magnitudes per square minute SB_minute(sb) units=[1;cd/m^2] domain=[,] range=(0,] \ vmag(sb) / squareminute ; \ ~vmag(SB_minute squareminute) # luminance from surface brightness in magnitudes per square second SB_second(sb) units=[1;cd/m^2] domain=[,] range=(0,] \ vmag(sb) / squaresecond ; \ ~vmag(SB_second squaresecond) # luminance from surface brightness in magnitudes per steradian SB_sr(sb) units=[1;cd/m^2] domain=[,] range=(0,] \ vmag(sb) / sr ; \ ~vmag(SB_sr sr) SB() SB_second SB_sec() SB_second SB_min() SB_minute SB_deg() SB_degree # The brightness of one tenth-magnitude star per square degree outside # Earth's atmosphere; often used for night sky brightness. S10 SB_degree(10) # Examples for magnitude and surface brightness functions # Sun illuminance from visual magnitude # You have: sunvmag # You want: # Definition: -26.74 = -26.74 # You have: vmag(sunvmag) # You want: lx # * 126134.45 # / 7.9280482e-06 # # Moon surface brightness from visual magnitude and semidiameter at 100% # illumination (full moon): # You have: moonvmag # You want: # Definition: -12.74 = -12.74 # You have: moonsd # You want: arcsec # * 932.59484 # / 0.001072277 # You have: moonvmag + 2.5 log(pi 932.59484^2) # You want: # Definition: 3.3513397 # # Similar example with specific data obtained from another source (JPL # Horizons, https://ssd.jpl.nasa.gov/horizons.cgi); semidiameter is in # arcseconds # # You have: -12.9 + 2.5 log(pi 2023.201|2^2) # You want: # Definition: 3.3679199 # You have: SB_second(-12.9 + 2.5 log(pi 2023.201|2^2)) # You want: # Definition: 4858.6547 cd / m^2 # # If surface brightness is provided by another source (e.g., Horizons), # it can simply be used directly: # You have: SB_second(3.3679199) # You want: cd/m^2 # * 4858.6546 # / 0.0002058183 # The illuminance and luminance values are extraterrestrial (outside # Earth's atmosphere). The values at Earth's surface are less than these # because of atmospheric extinction. For example, in the last example # above, if the Moon were at an altitude of 55 degrees, the terrestrial # luminance could be calculated with # You have: SB_second(3.3679199) # You want: cd/m^2 # * 4858.6546 # / 0.0002058183 # You have: _ atm_transmission(55 deg) # You want: cd/m^2 # * 3760.6356 # / 0.0002659125 # If desired, photographic exposure can be determined with EV100(), # leading to acceptable combinations of aperture and exposure time. # For the example above, but with the Moon at 10 degrees, # You have: SB_second(3.3679199) atm_transmission(10 deg) # You want: EV100 # 13.553962 # # The Hartree system of atomic units, derived from fundamental units # of mass (of electron), action (planck's constant), charge, and # the coulomb constant. # Fundamental units atomicmass electronmass atomiccharge e atomicaction hbar # derived units (Warning: accuracy is lost from deriving them this way) atomiclength bohrradius atomictime hbar^3/coulombconst^2 atomicmass e^4 # Period of first # bohr orbit atomicvelocity atomiclength / atomictime atomicenergy hbar / atomictime hartree atomicenergy # # These thermal units treat entropy as charge, from [5] # thermalcoulomb J/K # entropy thermalampere W/K # entropy flow thermalfarad J/K^2 thermalohm K^2/W # thermal resistance fourier thermalohm thermalhenry J K^2/W^2 # thermal inductance thermalvolt K # thermal potential difference # # United States units # # linear measure # The US Metric Law of 1866 legalized the metric system in the USA and # defined the meter in terms of the British system with the exact # 1 meter = 39.37 inches. On April 5, 1893 Thomas Corwin Mendenhall, # Superintendent of Weights and Measures, decided, in what has become # known as the "Mendenhall Order" that the meter and kilogram would be the # fundamental standards in the USA. The definition from 1866 was turned # around to give an exact definition of the yard as 3600|3937 meters This # definition was used until July of 1959 when the definition was changed # to bring the US and other English-speaking countries into agreement; the # Canadian value of 1 yard = 0.9144 meter (exactly) was chosen because it # was approximately halfway between the British and US values; it had the # added advantage of making 1 inch = 25.4 mm (exactly). Since 1959, the # "international" foot has been exactly 0.3048 meters. At the same time, # it was decided that any data expressed in feet derived from geodetic # surveys within the US would continue to use the old definition and call # the old unit the "survey foot." The US continues to define the statute # mile, furlong, chain, rod, link, and fathom in terms of the US survey # foot. # Sources: # NIST Special Publication 447, Sects. 5, 7, and 8. # NIST Handbook 44, 2011 ed., Appendix C. # Canadian Journal of Physics, 1959, 37:(1) 84, 10.1139/p59-014. US 1200|3937 m/ft # These four values will convert US- US # international measures to survey- US # US Survey measures geodetic- US int 3937|1200 ft/m # Convert US Survey measures to int- int # international measures inch 2.54 cm in inch foot 12 inch feet foot ft foot yard 3 ft yd yard mile 5280 ft # The mile was enlarged from 5000 ft # to this number in order to make # it an even number of furlongs. # (The Roman mile is 5000 romanfeet.) line 1|12 inch # Also defined as '.1 in' or as '1e-8 Wb' rod 5.5 yard perch rod furlong 40 rod # From "furrow long" statutemile mile league 3 mile # Intended to be an an hour's walk # surveyor's measure surveyorschain 66 surveyft surveychain surveyorschain surveyorspole 1|4 surveyorschain surveyorslink 1|100 surveyorschain chain 66 ft link 1|100 chain ch chain USacre 10 surveychain^2 intacre 10 chain^2 # Acre based on international ft intacrefoot acre foot USacrefoot USacre surveyfoot acrefoot intacrefoot acre intacre section mile^2 township 36 section homestead 160 acre # Area of land granted by the 1862 Homestead # Act of the United States Congress gunterschain surveyorschain engineerschain 100 ft engineerslink 1|100 engineerschain ramsdenschain engineerschain ramsdenslink engineerslink gurleychain 33 feet # Andrew Ellicott chain is the gurleylink 1|50 gurleychain # same length wingchain 66 feet # Chain from 1664, introduced by winglink 1|80 wingchain # Vincent Wing, also found in a # 33 foot length with 40 links. # early US length standards # The US has had four standards for the yard: one by Troughton of London # (1815); bronze yard #11 (1856); the Mendhall yard (1893), consistent # with the definition of the meter in the metric joint resolution of # Congress in 1866, but defining the yard in terms of the meter; and the # international yard (1959), which standardized definitions for Australia, # Canada, New Zealand, South Africa, the UK, and the US. # Sources: Pat Naughtin (2009), Which Inch?, www.metricationmatters.com; # Lewis E. Barbrow and Lewis V. Judson (1976). NBS Special Publication # 447, Weights and Measures Standards of the United States: A Brief # History. troughtonyard 914.42190 mm bronzeyard11 914.39980 mm mendenhallyard surveyyard internationalyard yard # nautical measure fathom 6 ft # Originally defined as the distance from # fingertip to fingertip with arms fully # extended. nauticalmile 1852 m # Supposed to be one minute of latitude at # the equator. That value is about 1855 m. # Early estimates of the earth's circumference # were a bit off. The value of 1852 m was # made the international standard in 1929. # The US did not accept this value until # 1954. The UK switched in 1970. cable 1|10 nauticalmile intcable cable # international cable cablelength cable UScable 100 USfathom navycablelength 720 USft # used for depth in water marineleague 3 nauticalmile geographicalmile brnauticalmile knot nauticalmile / hr click km # US military slang klick click # Avoirdupois weight pound 0.45359237 kg # The one normally used lb pound # From the latin libra grain 1|7000 pound # The grain is the same in all three # weight systems. It was originally # defined as the weight of a barley # corn taken from the middle of the # ear. ounce 1|16 pound oz ounce dram 1|16 ounce dr dram ushundredweight 100 pounds cwt hundredweight shorthundredweight ushundredweight uston shortton shortton 2000 lb quarterweight 1|4 uston shortquarterweight 1|4 shortton shortquarter shortquarterweight # Troy Weight. In 1828 the troy pound was made the first United States # standard weight. It was to be used to regulate coinage. troypound 5760 grain troyounce 1|12 troypound ozt troyounce pennyweight 1|20 troyounce # Abbreviated "d" in reference to a dwt pennyweight # Frankish coin called the "denier" # minted in the late 700's. There # were 240 deniers to the pound. assayton mg ton / troyounce # mg / assayton = troyounce / ton usassayton mg uston / troyounce brassayton mg brton / troyounce fineounce troyounce # A troy ounce of 99.5% pure gold # Some other jewelers units metriccarat 0.2 gram # Defined in 1907 metricgrain 50 mg carat metriccarat ct carat jewelerspoint 1|100 carat silversmithpoint 1|4000 inch momme 3.75 grams # Traditional Japanese unit based # on the chinese mace. It is used for # pearls in modern times and also for # silk density. The definition here # was adopted in 1891. # Apothecaries' weight appound troypound apounce troyounce apdram 1|8 apounce apscruple 1|3 apdram # Liquid measure usgallon 231 in^3 # US liquid measure is derived from gal gallon # the British wine gallon of 1707. quart 1|4 gallon # See the "winegallon" entry below pint 1|2 quart # more historical information. gill 1|4 pint usquart 1|4 usgallon uspint 1|2 usquart usgill 1|4 uspint usfluidounce 1|16 uspint fluiddram 1|8 usfloz minimvolume 1|60 fluiddram qt quart pt pint floz fluidounce usfloz usfluidounce fldr fluiddram liquidbarrel 31.5 usgallon usbeerbarrel 2 beerkegs beerkeg 15.5 usgallon # Various among brewers ponykeg 1|2 beerkeg winekeg 12 usgallon petroleumbarrel 42 usgallon # Originated in Pennsylvania oil barrel petroleumbarrel # fields, from the winetierce bbl barrel ushogshead 2 liquidbarrel usfirkin 9 usgallon # Dry measures: The Winchester Bushel was defined by William III in 1702 and # legally adopted in the US in 1836. usbushel 2150.42 in^3 # Volume of 8 inch cylinder with 18.5 bu bushel # inch diameter (rounded) peck 1|4 bushel uspeck 1|4 usbushel brpeck 1|4 brbushel pk peck drygallon 1|2 uspeck dryquart 1|4 drygallon drypint 1|2 dryquart drybarrel 7056 in^3 # Used in US for fruits, vegetables, # and other dry commodities except for # cranberries. cranberrybarrel 5826 in^3 # US cranberry barrel heapedbushel 1.278 usbushel# The following explanation for this # value was provided by Wendy Krieger # based on # guesswork. The cylindrical vessel is # 18.5 inches in diameter and 1|2 inch # thick. A heaped bushel includes the # contents of this cylinder plus a heap # on top. The heap is a cone 19.5 # inches in diameter and 6 inches # high. With these values, the volume # of the bushel is 684.5 pi in^3 and # the heap occupies 190.125 pi in^3. # Therefore, the heaped bushel is # 874.625|684.5 bushels. This value is # approximately 1.2777575 and it rounds # to the value listed for the size of # the heaped bushel. Sometimes the # heaped bushel is reported as 1.25 # bushels. This same explanation gives # that value if the heap is taken to # have an 18.5 inch diameter. # Grain measures. The bushel as it is used by farmers in the USA is actually # a measure of mass which varies for different commodities. Canada uses the # same bushel masses for most commodities, but not for oats. wheatbushel 60 lb soybeanbushel 60 lb cornbushel 56 lb ryebushel 56 lb barleybushel 48 lb oatbushel 32 lb ricebushel 45 lb canada_oatbushel 34 lb # Wine and Spirits measure ponyvolume 1 usfloz jigger 1.5 usfloz # Can vary between 1 and 2 usfloz shot jigger # Sometimes 1 usfloz eushot 25 ml # EU standard spirits measure fifth 1|5 usgallon winebottle 750 ml # US industry standard, 1979 winesplit 1|4 winebottle magnum 1.5 liter # Standardized in 1979, but given # as 2 qt in some references metrictenth 375 ml metricfifth 750 ml metricquart 1 liter # Old British bottle size reputedquart 1|6 brgallon reputedpint 1|2 reputedquart brwinebottle reputedquart # Very close to 1|5 winegallon # French champagne bottle sizes split 200 ml jeroboam 2 magnum rehoboam 3 magnum methuselah 4 magnum salmanazar 6 magnum balthazar 8 magnum nebuchadnezzar 10 magnum # The wine glass doesn't seem to have an official standard, but the same value # is suggested by several organization. # https://www.rethinkingdrinking.niaaa.nih.gov/ # http://www.rethinkyourdrinking.ca/what-is-a-standard-drink/ # https://www.drinkaware.co.uk/ # https://www.gov.uk/government/uploads/system/uploads/attachment_data/file/545937/UK_CMOs__report.pdf # http://www.alcohol.gov.au/internet/alcohol/publishing.nsf/content/drinksguide-cnt wineglass 150 mL # the size of a "typical" serving # A unit of alcohol is a specified mass of pure ethyl alcohol. # The term is used officially in the UK, but other countries use the same # concept but with different values. For example, the UK value of 8 g is # nominally the amount of alcohol that a typical adult can metabolize in # one hour. Values for several countries, converted to a volumetric basis: alcoholunitus 14 g / ethanoldensity alcoholunitca 13.6 g / ethanoldensity alcoholunituk 8 g / ethanoldensity alcoholunitau 10 g / ethanoldensity # Example: for 12% ABV (alcohol by volume) # alcoholunitus / 12% = 147.8 mL, close to the “standard†serving of 150 mL. # Coffee # # The recommended ratio of coffee to water. Values vary considerably; # one is from the Specialty Coffee Association of America # http://scaa.org/?page=resources&d=brewing-best-practices coffeeratio 55 g/L # ± 10% # other recommendations are more loose, e.g., # http://www.ncausa.org/About-Coffee/How-to-Brew-Coffee # # Water is "hard" if it contains various minerals, expecially calcium # carbonate. # clarkdegree grains/brgallon # Content by weigh of calcium carbonate gpg grains/usgallon # Divide by water's density to convert to # a dimensionless concentration measure # # Shoe measures # shoeiron 1|48 inch # Used to measure leather in soles shoeounce 1|64 inch # Used to measure non-sole shoe leather # USA shoe sizes. These express the length of the shoe or the length # of the "last", the form that the shoe is made on. But note that # this only captures the length. It appears that widths change 1/4 # inch for each letter within the same size, and if you change the # length by half a size then the width changes between 1/8 inch and # 1/4 inch. But this may not be standard. If you know better, please # contact me. shoesize_delta 1|3 inch # USA shoe sizes differ by this amount shoe_men0 8.25 inch shoe_women0 (7+11|12) inch shoe_boys0 (3+11|12) inch shoe_girls0 (3+7|12) inch shoesize_men(n) units=[1;inch] shoe_men0 + n shoesize_delta ; \ (shoesize_men+(-shoe_men0))/shoesize_delta shoesize_women(n) units=[1;inch] shoe_women0 + n shoesize_delta ; \ (shoesize_women+(-shoe_women0))/shoesize_delta shoesize_boys(n) units=[1;inch] shoe_boys0 + n shoesize_delta ; \ (shoesize_boys+(-shoe_boys0))/shoesize_delta shoesize_girls(n) units=[1;inch] shoe_girls0 + n shoesize_delta ; \ (shoesize_girls+(-shoe_girls0))/shoesize_delta # European shoe size. According to # http://www.shoeline.com/footnotes/shoeterm.shtml # shoe sizes in Europe are measured with Paris points which simply measure # the length of the shoe. europeshoesize 2|3 cm # # USA slang units # buck US$ fin 5 US$ sawbuck 10 US$ usgrand 1000 US$ greenback US$ key kg # usually of marijuana, 60's lid 1 oz # Another 60's weed unit footballfield usfootballfield usfootballfield 100 yards canadafootballfield 110 yards # And 65 yards wide marathon 26 miles + 385 yards # # British # # The length measure in the UK was defined by a bronze bar manufactured in # 1844. Various conversions were sanctioned for convenience at different # times, which makes conversions before 1963 a confusing matter. Apparently # previous conversions were never explicitly revoked. Four different # conversion factors appear below. Multiply them times an imperial length # units as desired. The Weights and Measures Act of 1963 switched the UK away # from their bronze standard and onto a definition of the yard in terms of the # meter. This happened after an international agreement in 1959 to align the # world's measurement systems. UK UKlength_SJJ UK- UK british- UK UKlength_B 0.9143992 meter / yard # Benoit found the yard to be # 0.9143992 m at a weights and # measures conference around # 1896. Legally sanctioned # in 1898. UKlength_SJJ 0.91439841 meter / yard # In 1922, Seers, Jolly and # Johnson found the yard to be # 0.91439841 meters. # Used starting in the 1930's. UKlength_K meter / 39.37079 inch # In 1816 Kater found this ratio # for the meter and inch. This # value was used as the legal # conversion ratio when the # metric system was legalized # for contract in 1864. UKlength_C meter / 1.09362311 yard # In 1866 Clarke found the meter # to be 1.09362311 yards. This # conversion was legalized # around 1878. brnauticalmile 6080 ft # Used until 1970 when the UK brknot brnauticalmile / hr # switched to the international brcable 1|10 brnauticalmile # nautical mile. admiraltymile brnauticalmile admiraltyknot brknot admiraltycable brcable seamile 6000 ft shackle 15 fathoms # Adopted 1949 by British navy # British Imperial weight is mostly the same as US weight. A few extra # units are added here. clove 7 lb stone 14 lb tod 28 lb brquarterweight 1|4 brhundredweight brhundredweight 8 stone longhundredweight brhundredweight longton 20 brhundredweight brton longton # British Imperial volume measures brminim 1|60 brdram brscruple 1|3 brdram fluidscruple brscruple brdram 1|8 brfloz brfluidounce 1|20 brpint brfloz brfluidounce brgill 1|4 brpint brpint 1|2 brquart brquart 1|4 brgallon brgallon 4.54609 l # The British Imperial gallon was # defined in 1824 to be the volume of # water which weighed 10 pounds at 62 # deg F with a pressure of 30 inHg. # It was also defined as 277.274 in^3, # Which is slightly in error. In # 1963 it was defined to be the volume # occupied by 10 pounds of distilled # water of density 0.998859 g/ml weighed # in air of density 0.001217 g/ml # against weights of density 8.136 g/ml. # This gives a value of approximately # 4.5459645 liters, but the old liter # was in force at this time. In 1976 # the definition was changed to exactly # 4.54609 liters using the new # definition of the liter (1 dm^3). brbarrel 36 brgallon # Used for beer brbushel 8 brgallon brheapedbushel 1.278 brbushel brquarter 8 brbushel brchaldron 36 brbushel # Obscure British volume measures. These units are generally traditional # measures whose definitions have fluctuated over the years. Often they # depended on the quantity being measured. They are given here in terms of # British Imperial measures. For example, the puncheon may have historically # been defined relative to the wine gallon or beer gallon or ale gallon # rather than the British Imperial gallon. bag 4 brbushel bucket 4 brgallon kilderkin 2 brfirkin last 40 brbushel noggin brgill pottle 0.5 brgallon pin 4.5 brgallon puncheon 72 brgallon seam 8 brbushel coomb 4 brbushel boll 6 brbushel firlot 1|4 boll brfirkin 9 brgallon # Used for ale and beer cran 37.5 brgallon # measures herring, about 750 fish brwinehogshead 52.5 brgallon # This value is approximately equal brhogshead brwinehogshead # to the old wine hogshead of 63 # wine gallons. This adjustment # is listed in the OED and in # "The Weights and Measures of # England" by R. D. Connor brbeerhogshead 54 brgallon brbeerbutt 2 brbeerhogshead registerton 100 ft^3 # Used for internal capacity of ships shippington 40 ft^3 # Used for ship's cargo freight or timber brshippington 42 ft^3 # freightton shippington # Both register ton and shipping ton derive # from the "tun cask" of wine. displacementton 35 ft^3 # Approximate volume of a longton weight of # sea water. Measures water displaced by # ships. waterton 224 brgallon strike 70.5 l # 16th century unit, sometimes # defined as .5, 2, or 4 bushels # depending on the location. It # probably doesn't make a lot of # sense to define in terms of imperial # bushels. Zupko gives a value of # 2 Winchester grain bushels or about # 70.5 liters. amber 4 brbushel# Used for dry and liquid capacity [18] # British volume measures with "imperial" imperialminim brminim imperialscruple brscruple imperialdram brdram imperialfluidounce brfluidounce imperialfloz brfloz imperialgill brgill imperialpint brpint imperialquart brquart imperialgallon brgallon imperialbarrel brbarrel imperialbushel brbushel imperialheapedbushel brheapedbushel imperialquarter brquarter imperialchaldron brchaldron imperialwinehogshead brwinehogshead imperialhogshead brhogshead imperialbeerhogshead brbeerhogshead imperialbeerbutt brbeerbutt imperialfirkin brfirkin # obscure British lengths barleycorn 1|3 UKinch # Given in Realm of Measure as the # difference between successive shoe sizes nail 1|16 UKyard # Originally the width of the thumbnail, # or 1|16 ft. This took on the general # meaning of 1|16 and settled on the # nail of a yard or 1|16 yards as its # final value. [12] pole 16.5 UKft # This was 15 Saxon feet, the Saxon rope 20 UKft # foot (aka northern foot) being longer englishell 45 UKinch flemishell 27 UKinch ell englishell # supposed to be measure from elbow to # fingertips span 9 UKinch # supposed to be distance from thumb # to pinky with full hand extension goad 4.5 UKft # used for cloth, possibly named after the # stick used for prodding animals. # misc obscure British units hide 120 acre # English unit of land area dating to the 7th # century, originally the amount of land # that a single plowman could cultivate, # which varied from 60-180 acres regionally. # Standardized at Normon conquest. virgate 1|4 hide nook 1|2 virgate rood furlong rod # Area of a strip a rod by a furlong englishcarat troyounce/151.5 # Originally intended to be 4 grain # but this value ended up being # used in the London diamond market mancus 2 oz mast 2.5 lb nailkeg 100 lbs basebox 31360 in^2 # Used in metal plating # alternate spellings metre meter gramme gram litre liter dioptre diopter aluminium aluminum sulphur sulfur # # Units derived the human body (may not be very accurate) # geometricpace 5 ft # distance between points where the same # foot hits the ground pace 2.5 ft # distance between points where alternate # feet touch the ground USmilitarypace 30 in # United States official military pace USdoubletimepace 36 in # United States official doubletime pace fingerbreadth 7|8 in # The finger is defined as either the width fingerlength 4.5 in # or length of the finger finger fingerbreadth palmwidth hand # The palm is a unit defined as either the width palmlength 8 in # or the length of the hand hand 4 inch # width of hand shaftment 6 inch # Distance from tip of outstretched thumb to the # opposite side of the palm of the hand. The # ending -ment is from the old English word # for hand. [18] smoot 5 ft + 7 in # Created as part of an MIT fraternity prank. # In 1958 Oliver Smoot was used to measure # the length of the Harvard Bridge, which was # marked off in Smoot lengths. These # markings have been maintained on the bridge # since then and repainted by subsequent # incoming fraternity members. During a # bridge renovation the new sidewalk was # scored every Smoot rather than at the # customary 6 ft spacing. # # Cooking measures # # Common abbreviations tbl tablespoon tbsp tablespoon tblsp tablespoon Tb tablespoon tsp teaspoon saltspoon 1|4 tsp # US measures uscup 8 usfloz ustablespoon 1|16 uscup usteaspoon 1|3 ustablespoon ustbl ustablespoon ustbsp ustablespoon ustblsp ustablespoon ustsp usteaspoon metriccup 250 ml stickbutter 1|4 lb # Butter in the USA is sold in one # pound packages that contain four # individually wrapped pieces. The # pieces are marked into tablespoons, # making it possible to measure out # butter by volume by slicing the # butter. legalcup 240 ml # The cup used on nutrition labeling legaltablespoon 1|16 legalcup legaltbsp legaltablespoon # Scoop size. Ice cream scoops in the US are marked with numbers # indicating the number of scoops requird to fill a US quart. scoop(n) units=[1;cup] domain=[4,100] range=[0.04,1] \ 32 usfloz / n ; 32 usfloz / scoop # US can sizes. number1can 10 usfloz number2can 19 usfloz number2.5can 3.5 uscups number3can 4 uscups number5can 7 uscups number10can 105 usfloz # British measures brcup 1|2 brpint brteacup 1|3 brpint brtablespoon 15 ml # Also 5|8 brfloz, approx 17.7 ml brteaspoon 1|3 brtablespoon # Also 1|4 brtablespoon brdessertspoon 2 brteaspoon dessertspoon brdessertspoon dsp dessertspoon brtsp brteaspoon brtbl brtablespoon brtbsp brtablespoon brtblsp brtablespoon # Australian australiatablespoon 20 ml austbl australiatablespoon austbsp australiatablespoon austblsp australiatablespoon australiateaspoon 1|4 australiatablespoon austsp australiateaspoon # Italian etto 100 g # Used for buying items like meat and etti etto # cheese. # Chinese catty 0.5 kg oldcatty 4|3 lbs # Before metric conversion. tael 1|16 oldcatty # Should the tael be defined both ways? mace 0.1 tael oldpicul 100 oldcatty picul 100 catty # Chinese usage # Indian seer 14400 grain # British Colonial standard ser seer maund 40 seer pakistanseer 1 kg pakistanmaund 40 pakistanseer chittak 1|16 seer tola 1|5 chittak ollock 1|4 liter # Is this right? # Japanese japancup 200 ml # densities of cooking ingredients from The Cake Bible by Rose Levy Beranbaum # so you can convert '2 cups sugar' to grams, for example, or in the other # direction grams could be converted to 'cup flour_scooped'. butter 8 oz/uscup butter_clarified 6.8 oz/uscup cocoa_butter 9 oz/uscup shortening 6.75 oz/uscup # vegetable shortening oil 7.5 oz/uscup cakeflour_sifted 3.5 oz/uscup # The density of flour depends on the cakeflour_spooned 4 oz/uscup # measuring method. "Scooped", or cakeflour_scooped 4.5 oz/uscup # "dip and sweep" refers to dipping a flour_sifted 4 oz/uscup # measure into a bin, and then sweeping flour_spooned 4.25 oz/uscup # the excess off the top. "Spooned" flour_scooped 5 oz/uscup # means to lightly spoon into a measure breadflour_sifted 4.25 oz/uscup # and then sweep the top. Sifted means breadflour_spooned 4.5 oz/uscup # sifting the flour directly into a breadflour_scooped 5.5 oz/uscup # measure and then sweeping the top. cornstarch 120 grams/uscup dutchcocoa_sifted 75 g/uscup # These are for Dutch processed cocoa dutchcocoa_spooned 92 g/uscup dutchcocoa_scooped 95 g/uscup cocoa_sifted 75 g/uscup # These are for nonalkalized cocoa cocoa_spooned 82 g/uscup cocoa_scooped 95 g/uscup heavycream 232 g/uscup milk 242 g/uscup sourcream 242 g/uscup molasses 11.25 oz/uscup cornsyrup 11.5 oz/uscup honey 11.75 oz/uscup sugar 200 g/uscup powdered_sugar 4 oz/uscup brownsugar_light 217 g/uscup # packed brownsugar_dark 239 g/uscup baking_powder 4.6 grams / ustsp salt 6 g / ustsp koshersalt 2.8 g / ustsp # Diamond Crystal kosher salt koshersalt_morton 4.8 g / ustsp # Morton kosher salt # Values are from the nutrition info # on the packages # Egg weights and volumes for a USA large egg egg 50 grams # without shell eggwhite 30 grams eggyolk 18.6 grams eggvolume 3 ustablespoons + 1|2 ustsp eggwhitevolume 2 ustablespoons eggyolkvolume 3.5 ustsp # Alcohol density ethanoldensity 0.7893 g/cm^3 # From CRC Handbook, 91st Edition alcoholdensity ethanoldensity # # Density measures. Density has traditionally been measured on a variety of # bizarre nonlinear scales. # # Density of a sugar syrup is frequently measured in candy making procedures. # In the USA the boiling point of the syrup is measured. Some recipes instead # specify the density using degrees Baume. Conversion between degrees Baume # and the boiling point measure has proved elusive. This table appeared in one # text, and provides a fragmentary relationship to the concentration. # # temp(C) conc (%) # 100 30 # 101 40 # 102 50 # 103 60 # 106 70 # 112 80 # 123 90 # 140 95 # 151 97 # 160 98.2 # 166 99.5 # 171 99.6 # # The best source identified to date came from "Boiling point elevation of # technical sugarcane solutions and its use in automatic pan boiling" by # Michael Saska. International Sugar Journal, 2002, 104, 1247, pp 500-507. # # But I'm using equation (3) which is credited to Starzak and Peacock, # "Water activity coefficient in aqueous solutions of sucrose--A comprehensive # data analyzis. Zuckerindustrie, 122, 380-387. (I couldn't find this # document.) # # Note that the range of validity is uncertain, but answers are in agreement # with the above table all the way to 99.6. # # The original equation has a parameter for the boiling point of water, which # of course varies with altitude. It also includes various other model # parameters. The input is the molar concentration of sucrose in the solution, # (moles sucrose) / (total moles). # # Bsp 3797.06 degC # Csp 226.28 degC # QQ -17638 J/mol # asp -1.0038 # bsp -0.24653 # tbw 100 degC # boiling point of water # sugar_bpe_orig(x) ((1-QQ/R Bsp * x^2 (1+asp x + bsp x^2) (tbw + Csp) \ # /(tbw+stdtemp)) / (1+(tbw + Csp)/Bsp *ln(1-x))-1) * (tbw + Csp) # # To convert mass concentration (brix) to molar concentration # # sc(x) (x / 342.3) / (( x/342.3) + (100-x)/18.02); \ # 100 sc 342.3|18.02 / (sc (342.3|18.02-1)+1) # # Here is a simplfied version of this equation where the temperature of boiling # water has been fixed at 100 degrees Celcius and the argument is now the # concentration (brix). # # sugar_bpe(x) ((1+ 0.48851085 * sc(x)^2 (1+ -1.0038 sc(x) + -0.24653 sc(x)^2)) \ # / (1+0.08592964 ln(1-sc(x)))-1) 326.28 K # # # The formula is not invertible, so to implement it in units we unfortunately # must turn it into a table. # This table gives the boiling point elevation as a function of the sugar syrup # concentration expressed as a percentage. sugar_conc_bpe[K] \ 0 0.0000 5 0.0788 10 0.1690 15 0.2729 20 0.3936 25 0.5351 \ 30 0.7027 35 0.9036 40 1.1475 42 1.2599 44 1.3825 46 1.5165 \ 48 1.6634 50 1.8249 52 2.0031 54 2.2005 56 2.4200 58 2.6651 \ 60 2.9400 61 3.0902 62 3.2499 63 3.4198 64 3.6010 65 3.7944 \ 66 4.0012 67 4.2227 68 4.4603 69 4.7156 70 4.9905 71 5.2870 \ 72 5.6075 73 5.9546 74 6.3316 75 6.7417 76 7.1892 77 7.6786 \ 78.0 8.2155 79.0 8.8061 80.0 9.4578 80.5 9.8092 81.0 10.1793 \ 81.5 10.5693 82.0 10.9807 82.5 11.4152 83.0 11.8743 83.5 12.3601 \ 84.0 12.8744 84.5 13.4197 85.0 13.9982 85.5 14.6128 86.0 15.2663 \ 86.5 15.9620 87.0 16.7033 87.5 17.4943 88.0 18.3391 88.5 19.2424 \ 89.0 20.2092 89.5 21.2452 90.0 22.3564 90.5 23.5493 91.0 24.8309 \ 91.5 26.2086 92.0 27.6903 92.5 29.2839 93.0 30.9972 93.5 32.8374 \ 94.0 34.8104 94.5 36.9195 95.0 39.1636 95.5 41.5348 96.0 44.0142 \ 96.5 46.5668 97.0 49.1350 97.5 51.6347 98.0 53.9681 98.1 54.4091 \ 98.2 54.8423 98.3 55.2692 98.4 55.6928 98.5 56.1174 98.6 56.5497 \ 98.7 56.9999 98.8 57.4828 98.9 58.0206 99.0 58.6455 99.1 59.4062 \ 99.2 60.3763 99.3 61.6706 99.4 63.4751 99.5 66.1062 99.6 70.1448 \ 99.7 76.7867 # Using the brix table we can use this to produce a mapping from boiling point # to density which makes all of the units interconvertible. Because the brix # table stops at 95 this approach works up to a boiling point elevation of 39 K # or a boiling point of 139 C / 282 F, which is the "soft crack" stage in candy # making. The "hard crack" stage continues up to 310 F. # Boiling point elevation sugar_bpe(T) units=[K;g/cm^3] domain=[0,39.1636] range=[0.99717,1.5144619] \ brix(~sugar_conc_bpe(T)); sugar_conc_bpe(~brix(sugar_bpe)) # Absolute boiling point (produces an absolute temperature) sugar_bp(T) units=[K;g/cm^3] domain=[373.15,412.3136] \ range=[0.99717,1.5144619] \ brix(~sugar_conc_bpe(T-tempC(100))) ;\ sugar_conc_bpe(~brix(sugar_bp))+tempC(100) # In practice dealing with the absolute temperature is annoying because it is # not possible to convert to a nested function, so you're stuck retyping the # absolute temperature in Kelvins to convert to celsius or Fahrenheit. To # prevent this we supply definitions that build in the temperature conversion # and produce results in the Fahrenheit and Celcius scales. So using these # measures, to convert 46 degrees Baume to a Fahrenheit boiling point: # # You have: baume(45) # You want: sugar_bpF # 239.05647 # sugar_bpF(T) units=[1;g/cm^3] domain=[212,282.49448] range=[0.99717,1.5144619]\ brix(~sugar_conc_bpe(tempF(T)+-tempC(100))) ;\ ~tempF(sugar_conc_bpe(~brix(sugar_bpF))+tempC(100)) sugar_bpC(T) units=[1;g/cm^3] domain=[100,139.1636] range=[0.99717,1.5144619]\ brix(~sugar_conc_bpe(tempC(T)+-tempC(100))) ;\ ~tempC(sugar_conc_bpe(~brix(sugar_bpC))+tempC(100)) # Degrees Baume is used in European recipes to specify the density of a sugar # syrup. An entirely different definition is used for densities below # 1 g/cm^3. An arbitrary constant appears in the definition. This value is # equal to 145 in the US, but was according to [], the old scale used in # Holland had a value of 144, and the new scale or Gerlach scale used 146.78. baumeconst 145 # US value baume(d) units=[1;g/cm^3] domain=[0,145) range=[1,) \ (baumeconst/(baumeconst+-d)) g/cm^3 ; \ (baume+((-g)/cm^3)) baumeconst / baume # It's not clear if this value was ever used with negative degrees. twaddell(x) units=[1;g/cm^3] domain=[-200,) range=[0,) \ (1 + 0.005 x) g / cm^3 ; \ 200 (twaddell / (g/cm^3) +- 1) # The degree quevenne is a unit for measuring the density of milk. # Similarly it's unclear if negative values were allowed here. quevenne(x) units=[1;g/cm^3] domain=[-1000,) range=[0,) \ (1 + 0.001 x) g / cm^3 ; \ 1000 (quevenne / (g/cm^3) +- 1) # Degrees brix measures sugar concentration by weigh as a percentage, so a # solution that is 3 degrees brix is 3% sugar by weight. This unit was named # after Adolf Brix who invented a hydrometer that read this percentage # directly. This data is from Table 114 of NIST Circular 440, "Polarimetry, # Saccharimetry and the Sugars". It gives apparent specific gravity at 20 # degrees Celsius of various sugar concentrations. As rendered below this # data is converted to apparent density at 20 degrees Celsius using the # density figure for water given in the same NIST reference. They use the # word "apparent" to refer to measurements being made in air with brass # weights rather than vacuum. brix[0.99717g/cm^3]\ 0 1.00000 1 1.00390 2 1.00780 3 1.01173 4 1.01569 5 1.01968 \ 6 1.02369 7 1.02773 8 1.03180 9 1.03590 10 1.04003 11 1.04418 \ 12 1.04837 13 1.05259 14 1.05683 15 1.06111 16 1.06542 17 1.06976 \ 18 1.07413 19 1.07853 20 1.08297 21 1.08744 22 1.09194 23 1.09647 \ 24 1.10104 25 1.10564 26 1.11027 27 1.11493 28 1.11963 29 1.12436 \ 30 1.12913 31 1.13394 32 1.13877 33 1.14364 34 1.14855 35 1.15350 \ 36 1.15847 37 1.16349 38 1.16853 39 1.17362 40 1.17874 41 1.18390 \ 42 1.18910 43 1.19434 44 1.19961 45 1.20491 46 1.21026 47 1.21564 \ 48 1.22106 49 1.22652 50 1.23202 51 1.23756 52 1.24313 53 1.24874 \ 54 1.25439 55 1.26007 56 1.26580 57 1.27156 58 1.27736 59 1.28320 \ 60 1.28909 61 1.29498 62 1.30093 63 1.30694 64 1.31297 65 1.31905 \ 66 1.32516 67 1.33129 68 1.33748 69 1.34371 70 1.34997 71 1.35627 \ 72 1.36261 73 1.36900 74 1.37541 75 1.38187 76 1.38835 77 1.39489 \ 78 1.40146 79 1.40806 80 1.41471 81 1.42138 82 1.42810 83 1.43486 \ 84 1.44165 85 1.44848 86 1.45535 87 1.46225 88 1.46919 89 1.47616 \ 90 1.48317 91 1.49022 92 1.49730 93 1.50442 94 1.51157 95 1.51876 # Density measure invented by the American Petroleum Institute. Lighter # petroleum products are more valuable, and they get a higher API degree. # # The intervals of range and domain should be open rather than closed. # apidegree(x) units=[1;g/cm^3] domain=[-131.5,) range=[0,) \ 141.5 g/cm^3 / (x+131.5) ; \ 141.5 (g/cm^3) / apidegree + (-131.5) # # Units derived from imperial system # ouncedal oz ft / s^2 # force which accelerates an ounce # at 1 ft/s^2 poundal lb ft / s^2 # same thing for a pound tondal longton ft / s^2 # and for a ton pdl poundal osi ounce force / inch^2 # used in aviation psi pound force / inch^2 psia psi # absolute pressure # Note that gauge pressure can be given # using the gaugepressure() and # psig() nonlinear unit definitions tsi ton force / inch^2 reyn psi sec slug lbf s^2 / ft slugf slug force slinch lbf s^2 / inch # Mass unit derived from inch second slinchf slinch force # pound-force system. Used in space # applications where in/sec^2 was a # natural acceleration measure. geepound slug lbf lb force tonf ton force lbm lb kip 1000 lbf # from kilopound ksi kip / in^2 mil 0.001 inch thou 0.001 inch tenth 0.0001 inch # one tenth of one thousandth of an inch millionth 1e-6 inch # one millionth of an inch circularinch 1|4 pi in^2 # area of a one-inch diameter circle circleinch circularinch # A circle with diameter d inches has # an area of d^2 circularinches cylinderinch circleinch inch # Cylinder h inch tall, d inches diameter # has volume d^2 h cylinder inches circularmil 1|4 pi mil^2 # area of one-mil diameter circle cmil circularmil cental 100 pound centner cental caliber 0.01 inch # for measuring bullets duty ft lbf celo ft / s^2 jerk ft / s^3 australiapoint 0.01 inch # The "point" is used to measure rainfall # in Australia sabin ft^2 # Measure of sound absorption equal to the # absorbing power of one square foot of # a perfectly absorbing material. The # sound absorptivity of an object is the # area times a dimensionless # absorptivity coefficient. standardgauge 4 ft + 8.5 in # Standard width between railroad track flag 5 ft^2 # Construction term referring to sidewalk. rollwallpaper 30 ft^2 # Area of roll of wall paper fillpower in^3 / ounce # Density of down at standard pressure. # The best down has 750-800 fillpower. pinlength 1|16 inch # A #17 pin is 17/16 in long in the USA. buttonline 1|40 inch # The line was used in 19th century USA # to measure width of buttons. beespace 1|4 inch # Bees will fill any space that is smaller # than the bee space and leave open # spaces that are larger. The size of # the space varies with species. diamond 8|5 ft # Marking on US tape measures that is # useful to carpenters who wish to place # five studs in an 8 ft distance. Note # that the numbers appear in red every # 16 inches as well, giving six # divisions in 8 feet. retmaunit 1.75 in # Height of rack mountable equipment. U retmaunit # Equipment should be 1|32 inch narrower RU U # than its U measurement indicates to # allow for clearance, so 4U=(6+31|32)in # RETMA stands for the former name of # the standardizing organization, Radio # Electronics Television Manufacturers # Association. This organization is now # called the Electronic Industries # Alliance (EIA) and the rack standard # is specified in EIA RS-310-D. count per pound # For measuring the size of shrimp # # Other units of work, energy, power, etc # ENERGY joule WORK joule # Calorie: approximate energy to raise a gram of water one degree celsius calorie cal_th # Default is the thermochemical calorie cal calorie calorie_th 4.184 J # Thermochemical calorie, defined in 1930 thermcalorie calorie_th # by Frederick Rossini as 4.1833 J to cal_th calorie_th # avoid difficulties associated with the # uncertainty in the heat capacity of # water. In 1948 the value of the joule # was changed, so the thermochemical # calorie was redefined to 4.184 J. # This kept the energy measured by this # unit the same. calorie_IT 4.1868 J # International (Steam) Table calorie, cal_IT calorie_IT # defined in 1929 as watt-hour/860 or # equivalently 180|43 joules. At this # time the international joule had a # different value than the modern joule, # and the values were different in the # USA and in Europe. In 1956 at the # Fifth International Conference on # Properties of Steam the exact # definition given here was adopted. calorie_15 4.18580 J # Energy to go from 14.5 to 15.5 degC cal_15 calorie_15 calorie_fifteen cal_15 calorie_20 4.18190 J # Energy to go from 19.5 to 20.5 degC cal_20 calorie_20 calorie_twenty calorie_20 cal_mean 4.19002 J # 1|100 energy to go from 0 to 100 degC Calorie kilocalorie # the food Calorie thermie 1e6 cal_15 # Heat required to raise the # temperature of a tonne of # water from 14.5 to 15.5 degC. # btu definitions: energy to raise a pound of water 1 degF btu btu_IT # International Table BTU is the default britishthermalunit btu btu_IT cal_IT lb degF / gram K btu_th cal_th lb degF / gram K btu_mean cal_mean lb degF / gram K quad quadrillion btu ECtherm 1.05506e8 J # Exact definition, close to 1e5 btu UStherm 1.054804e8 J # Exact definition therm UStherm # Water latent heat from [23] water_fusion_heat 6.01 kJ/mol / (18.015 g/mol) # At 0 deg C water_vaporization_heat 2256.4 J/g # At saturation, 100 deg C, 101.42 kPa # Specific heat capacities of various substances specificheat_water calorie / g K water_specificheat specificheat_water # Values from www.engineeringtoolbox.com/specific-heat-metals-d_152.html specificheat_aluminum 0.91 J/g K specificheat_antimony 0.21 J/g K specificheat_barium 0.20 J/g K specificheat_beryllium 1.83 J/g K specificheat_bismuth 0.13 J/g K specificheat_cadmium 0.23 J/g K specificheat_cesium 0.24 J/g K specificheat_chromium 0.46 J/g K specificheat_cobalt 0.42 J/g K specificheat_copper 0.39 J/g K specificheat_gallium 0.37 J/g K specificheat_germanium 0.32 J/g K specificheat_gold 0.13 J/g K specificheat_hafnium 0.14 J/g K specificheat_indium 0.24 J/g K specificheat_iridium 0.13 J/g K specificheat_iron 0.45 J/g K specificheat_lanthanum 0.195 J/g K specificheat_lead 0.13 J/g K specificheat_lithium 3.57 J/g K specificheat_lutetium 0.15 J/g K specificheat_magnesium 1.05 J/g K specificheat_manganese 0.48 J/g K specificheat_mercury 0.14 J/g K specificheat_molybdenum 0.25 J/g K specificheat_nickel 0.44 J/g K specificheat_osmium 0.13 J/g K specificheat_palladium 0.24 J/g K specificheat_platinum 0.13 J/g K specificheat_plutonum 0.13 J/g K specificheat_potassium 0.75 J/g K specificheat_rhenium 0.14 J/g K specificheat_rhodium 0.24 J/g K specificheat_rubidium 0.36 J/g K specificheat_ruthenium 0.24 J/g K specificheat_scandium 0.57 J/g K specificheat_selenium 0.32 J/g K specificheat_silicon 0.71 J/g K specificheat_silver 0.23 J/g K specificheat_sodium 1.21 J/g K specificheat_strontium 0.30 J/g K specificheat_tantalum 0.14 J/g K specificheat_thallium 0.13 J/g K specificheat_thorium 0.13 J/g K specificheat_tin 0.21 J/g K specificheat_titanium 0.54 J/g K specificheat_tungsten 0.13 J/g K specificheat_uranium 0.12 J/g K specificheat_vanadium 0.39 J/g K specificheat_yttrium 0.30 J/g K specificheat_zinc 0.39 J/g K specificheat_zirconium 0.27 J/g K specificheat_ethanol 2.3 J/g K specificheat_ammonia 4.6 J/g K specificheat_freon 0.91 J/g K # R-12 at 0 degrees Fahrenheit specificheat_gasoline 2.22 J/g K specificheat_iodine 2.15 J/g K specificheat_oliveoil 1.97 J/g K # en.wikipedia.org/wiki/Heat_capacity#Table_of_specific_heat_capacities specificheat_hydrogen 14.3 J/g K specificheat_helium 5.1932 J/g K specificheat_argon 0.5203 J/g K specificheat_tissue 3.5 J/g K specificheat_diamond 0.5091 J/g K specificheat_granite 0.79 J/g K specificheat_graphite 0.71 J/g K specificheat_ice 2.11 J/g K specificheat_asphalt 0.92 J/g K specificheat_brick 0.84 J/g K specificheat_concrete 0.88 J/g K specificheat_glass_silica 0.84 J/g K specificheat_glass_flint 0.503 J/g K specificheat_glass_pyrex 0.753 J/g K specificheat_gypsum 1.09 J/g K specificheat_marble 0.88 J/g K specificheat_sand 0.835 J/g K specificheat_soil 0.835 J/g K specificheat_wood 1.7 J/g K specificheat_sucrose 1.244 J/g K #www.sugartech.co.za/heatcapacity/index.php # Energy densities of various fuels # # Most of these fuels have varying compositions or qualities and hence their # actual energy densities vary. These numbers are hence only approximate. # # E1. http://bioenergy.ornl.gov/papers/misc/energy_conv.html # E2. http://www.aps.org/policy/reports/popa-reports/energy/units.cfm # E3. http://www.ior.com.au/ecflist.html tonoil 1e10 cal_IT # Ton oil equivalent. A conventional # value for the energy released by toe tonoil # burning one metric ton of oil. [18,E2] # Note that energy per mass of petroleum # products is fairly constant. # Variations in volumetric energy # density result from variations in the # density (kg/m^3) of different fuels. # This definition is given by the # IEA/OECD. toncoal 7e9 cal_IT # Energy in metric ton coal from [18]. # This is a nominal value which # is close to the heat content # of coal used in the 1950's barreloil 5.8 Mbtu # Conventional value for barrel of crude # oil [E2]. Actual range is 5.6 - 6.3. naturalgas_HHV 1027 btu/ft3 # Energy content of natural gas. HHV naturalgas_LHV 930 btu/ft3 # is for Higher Heating Value and naturalgas naturalgas_HHV # includes energy from condensation # combustion products. LHV is for Lower # Heating Value and excludes these. # American publications typically report # HHV whereas European ones report LHV. charcoal 30 GJ/tonne woodenergy_dry 20 GJ/tonne # HHV, a cord weights about a tonne woodenergy_airdry 15 GJ/tonne # 20% moisture content coal_bituminous 27 GJ / tonne coal_lignite 15 GJ / tonne coal_US 22 GJ / uston # Average for US coal (short ton), 1995 ethanol_HHV 84000 btu/usgallon ethanol_LHV 75700 btu/usgallon diesel 130500 btu/usgallon gasoline_LHV 115000 btu/usgallon gasoline_HHV 125000 btu/usgallon gasoline gasoline_HHV heating 37.3 MJ/liter fueloil 39.7 MJ/liter # low sulphur propane 93.3 MJ/m^3 butane 124 MJ/m^3 # These values give total energy from uranium fission. Actual efficiency # of nuclear power plants is around 30%-40%. Note also that some reactors # use enriched uranium around 3% U-235. Uranium during processing or use # may be in a compound of uranium oxide or uranium hexafluoride, in which # case the energy density would be lower depending on how much uranium is # in the compound. uranium_pure 200 MeV avogadro / (235.0439299 g/mol) # Pure U-235 uranium_natural 0.7% uranium_pure # Natural uranium: 0.7% U-235 # Celsius heat unit: energy to raise a pound of water 1 degC celsiusheatunit cal lb degC / gram K chu celsiusheatunit POWER watt # "Apparent" average power in an AC circuit, the product of rms voltage # and rms current, equal to the true power in watts when voltage and # current are in phase. In a DC circuit, always equal to the true power. VA volt ampere kWh kilowatt hour # The horsepower is supposedly the power of one horse pulling. Obviously # different people had different horses. horsepower 550 foot pound force / sec # Invented by James Watt mechanicalhorsepower horsepower hp horsepower metrichorsepower 75 kilogram force meter / sec # PS=Pferdestaerke in electrichorsepower 746 W # Germany boilerhorsepower 9809.50 W waterhorsepower 746.043 W brhorsepower 745.70 W donkeypower 250 W chevalvapeur metrichorsepower # # Heat Transfer # # Thermal conductivity, K, measures the rate of heat transfer across # a material. The heat transfered is # Q = K dT A t / L # where dT is the temperature difference across the material, A is the # cross sectional area, t is the time, and L is the length (thickness). # Thermal conductivity is a material property. THERMAL_CONDUCTIVITY POWER / AREA (TEMPERATURE_DIFFERENCE/LENGTH) THERMAL_RESISTIVITY 1/THERMAL_CONDUCTIVITY # Thermal conductance is the rate at which heat flows across a given # object, so the area and thickness have been fixed. It depends on # the size of the object and is hence not a material property. THERMAL_CONDUCTANCE POWER / TEMPERATURE_DIFFERENCE THERMAL_RESISTANCE 1/THERMAL_CONDUCTANCE # Thermal admittance is the rate of heat flow per area across an # object whose thickness has been fixed. Its reciprocal, thermal # insulation, is used to for measuring the heat transfer per area # of sheets of insulation or cloth that are of specified thickness. THERMAL_ADMITTANCE THERMAL_CONDUCTIVITY / LENGTH THERMAL_INSULANCE THERMAL_RESISTIVITY LENGTH THERMAL_INSULATION THERMAL_RESISTIVITY LENGTH Rvalue degF ft^2 hr / btu Uvalue 1/Rvalue europeanUvalue watt / m^2 K RSI degC m^2 / W clo 0.155 degC m^2 / W # Supposed to be the insulance # required to keep a resting person # comfortable indoors. The value # given is from NIST and the CRC, # but [5] gives a slightly different # value of 0.875 ft^2 degF hr / btu. tog 0.1 degC m^2 / W # Also used for clothing. # The bel was defined by engineers of Bell Laboratories to describe the # reduction in audio level over a length of one mile. It was originally # called the transmission unit (TU) but was renamed around 1923 to honor # Alexander Graham Bell. The bel proved inconveniently large so the decibel # has become more common. The decibel is dimensionless since it reports a # ratio, but it is used in various contexts to report a signal's power # relative to some reference level. bel(x) units=[1;1] range=(0,) 10^(x); log(bel) # Basic bel definition decibel(x) units=[1;1] range=(0,) 10^(x/10); 10 log(decibel) # Basic decibel dB() decibel # Abbreviation dBW(x) units=[1;W] range=(0,) dB(x) W ; ~dB(dBW/W) # Reference = 1 W dBk(x) units=[1;W] range=(0,) dB(x) kW ; ~dB(dBk/kW) # Reference = 1 kW dBf(x) units=[1;W] range=(0,) dB(x) fW ; ~dB(dBf/fW) # Reference = 1 fW dBm(x) units=[1;W] range=(0,) dB(x) mW ; ~dB(dBm/mW) # Reference = 1 mW dBmW(x) units=[1;W] range=(0,) dBm(x) ; ~dBm(dBmW) # Reference = 1 mW dBJ(x) units=[1;J] range=(0,) dB(x) J; ~dB(dBJ/J) # Energy relative # to 1 joule. Used for power spectral # density since W/Hz = J # When used to measure amplitude, voltage, or current the signal is squared # because power is proportional to the square of these measures. The root # mean square (RMS) voltage is typically used with these units. dBV(x) units=[1;V] range=(0,) dB(0.5 x) V;~dB(dBV^2 / V^2) # Reference = 1 V dBmV(x) units=[1;V] range=(0,) dB(0.5 x) mV;~dB(dBmV^2/mV^2)# Reference = 1 mV dBuV(x) units=[1;V] range=(0,) dB(0.5 x) microV ; ~dB(dBuV^2 / microV^2) # Reference = 1 microvolt # Referenced to the voltage that causes 1 mW dissipation in a 600 ohm load. # Originally defined as dBv but changed to prevent confusion with dBV. # The "u" is for unloaded. dBu(x) units=[1;V] range=(0,) dB(0.5 x) sqrt(mW 600 ohm) ; \ ~dB(dBu^2 / mW 600 ohm) dBv(x) units=[1;V] range=(0,) dBu(x) ; ~dBu(dBv) # Synonym for dBu # Measurements for sound in air, referenced to the threshold of human hearing # Note that sound in other media typically uses 1 micropascal as a reference # for sound pressure. Units dBA, dBB, dBC, refer to different frequency # weightings meant to approximate the human ear's response. dBSPL(x) units=[1;Pa] range=(0,) dB(0.5 x) 20 microPa ; \ ~dB(dBSPL^2 / (20 microPa)^2) # pressure dBSIL(x) units=[1;W/m^2] range=(0,) dB(x) 1e-12 W/m^2; \ ~dB(dBSIL / (1e-12 W/m^2)) # intensity dBSWL(x) units=[1;W] range=(0,) dB(x) 1e-12 W; ~dB(dBSWL/1e-12 W) # Misc other measures ENTROPY ENERGY / TEMPERATURE clausius 1e3 cal/K # A unit of physical entropy langley thermcalorie/cm^2 # Used in radiation theory poncelet 100 kg force m / s tonrefrigeration uston 144 btu / lb day # One ton refrigeration is # the rate of heat extraction required # turn one ton of water to ice in # a day. Ice is defined to have a # latent heat of 144 btu/lb. tonref tonrefrigeration refrigeration tonref / ton frigorie 1000 cal_15 # Used in refrigeration engineering. tnt 1e9 cal_th / ton# So you can write tons tnt. This # is a defined, not measured, value. airwatt 8.5 (ft^3/min) inH2O # Measure of vacuum power as # pressure times air flow. # Nuclear weapon yields davycrocket 10 ton tnt # lightest US tactical nuclear weapon hiroshima 15.5 kiloton tnt # Uranium-235 fission bomb nagasaki 21 kiloton tnt # Plutonium-239 fission bomb fatman nagasaki littleboy hiroshima ivyking 500 kiloton tnt # most powerful fission bomb castlebravo 15 megaton tnt # most powerful US test b53bomb 9 megaton tnt # http://rarehistoricalphotos.com/gadget-first-atomic-bomb/ trinity 18 kiloton tnt # July 16, 1945 gadget trinity # # Permeability: The permeability or permeance, n, of a substance determines # how fast vapor flows through the substance. The formula W = n A dP # holds where W is the rate of flow (in mass/time), n is the permeability, # A is the area of the flow path, and dP is the vapor pressure difference. # perm_0C grain / hr ft^2 inHg perm_zero perm_0C perm_0 perm_0C perm perm_0C perm_23C grain / hr ft^2 in Hg23C perm_twentythree perm_23C # # Counting measures # pair 2 brace 2 nest 3 # often used for items like bowls that # nest together hattrick 3 # Used in sports, especially cricket and ice # hockey to report the number of goals. dicker 10 dozen 12 bakersdozen 13 score 20 flock 40 timer 40 shock 60 toncount 100 # Used in sports in the UK longhundred 120 # From a germanic counting system gross 144 greatgross 12 gross tithe 1|10 # From Anglo-Saxon word for tenth # Paper counting measure shortquire 24 quire 25 shortream 480 ream 500 perfectream 516 bundle 2 reams bale 5 bundles # # Paper measures # # USA paper sizes lettersize 8.5 inch 11 inch legalsize 8.5 inch 14 inch ledgersize 11 inch 17 inch executivesize 7.25 inch 10.5 inch Apaper 8.5 inch 11 inch Bpaper 11 inch 17 inch Cpaper 17 inch 22 inch Dpaper 22 inch 34 inch Epaper 34 inch 44 inch # Correspondence envelope sizes. #10 is the standard business # envelope in the USA. envelope6_25size 3.5 inch 6 inch envelope6_75size 3.625 inch 6.5 inch envelope7size 3.75 inch 6.75 inch envelope7_75size 3.875 inch 7.5 inch envelope8_625size 3.625 inch 8.625 inch envelope9size 3.875 inch 8.875 inch envelope10size 4.125 inch 9.5 inch envelope11size 4.5 inch 10.375 inch envelope12size 4.75 inch 11 inch envelope14size 5 inch 11.5 inch envelope16size 6 inch 12 inch # Announcement envelope sizes (no relation to metric paper sizes like A4) envelopeA1size 3.625 inch 5.125 inch # same as 4bar envelopeA2size 4.375 inch 5.75 inch envelopeA6size 4.75 inch 6.5 inch envelopeA7size 5.25 inch 7.25 inch envelopeA8size 5.5 inch 8.125 inch envelopeA9size 5.75 inch 8.75 inch envelopeA10size 6 inch 9.5 inch # Baronial envelopes envelope4bar 3.625 inch 5.125 inch # same as A1 envelope5_5bar 4.375 inch 5.75 inch envelope6bar 4.75 inch 6.5 inch # Coin envelopes envelope1baby 2.25 inch 3.5 inch # same as #1 coin envelope00coin 1.6875 inch 2.75 inch envelope1coin 2.25 inch 3.5 inch envelope3coin 2.5 inch 4.25 inch envelope4coin 3 inch 4.5 inch envelope4_5coin 3 inch 4.875 inch envelope5coin 2.875 inch 5.25 inch envelope5_5coin 3.125 inch 5.5 inch envelope6coin 3.375 inch 6 inch envelope7coin 3.5 inch 6.5 inch # The metric paper sizes are defined so that if a sheet is cut in half # along the short direction, the result is two sheets which are # similar to the original sheet. This means that for any metric size, # the long side is close to sqrt(2) times the length of the short # side. Each series of sizes is generated by repeated cuts in half, # with the values rounded down to the nearest millimeter. A0paper 841 mm 1189 mm # The basic size in the A series A1paper 594 mm 841 mm # is defined to have an area of A2paper 420 mm 594 mm # one square meter. A3paper 297 mm 420 mm A4paper 210 mm 297 mm A5paper 148 mm 210 mm A6paper 105 mm 148 mm A7paper 74 mm 105 mm A8paper 52 mm 74 mm A9paper 37 mm 52 mm A10paper 26 mm 37 mm B0paper 1000 mm 1414 mm # The basic B size has an area B1paper 707 mm 1000 mm # of sqrt(2) square meters. B2paper 500 mm 707 mm B3paper 353 mm 500 mm B4paper 250 mm 353 mm B5paper 176 mm 250 mm B6paper 125 mm 176 mm B7paper 88 mm 125 mm B8paper 62 mm 88 mm B9paper 44 mm 62 mm B10paper 31 mm 44 mm C0paper 917 mm 1297 mm # The basic C size has an area C1paper 648 mm 917 mm # of sqrt(sqrt(2)) square meters. C2paper 458 mm 648 mm C3paper 324 mm 458 mm # Intended for envelope sizes C4paper 229 mm 324 mm C5paper 162 mm 229 mm C6paper 114 mm 162 mm C7paper 81 mm 114 mm C8paper 57 mm 81 mm C9paper 40 mm 57 mm C10paper 28 mm 40 mm # gsm (Grams per Square Meter), a sane, metric paper weight measure gsm grams / meter^2 # In the USA, a collection of crazy historical paper measures are used. Paper # is measured as a weight of a ream of that particular type of paper. This is # sometimes called the "substance" or "basis" (as in "substance 20" paper). # The standard sheet size or "basis size" varies depending on the type of # paper. As a result, 20 pound bond paper and 50 pound text paper are actually # about the same weight. The different sheet sizes were historically the most # convenient for printing or folding in the different applications. These # different basis weights are standards maintained by American Society for # Testing Materials (ASTM) and the American Forest and Paper Association # (AF&PA). poundbookpaper lb / 25 inch 38 inch ream lbbook poundbookpaper poundtextpaper poundbookpaper lbtext poundtextpaper poundoffsetpaper poundbookpaper # For offset printing lboffset poundoffsetpaper poundbiblepaper poundbookpaper # Designed to be lightweight, thin, lbbible poundbiblepaper # strong and opaque. poundtagpaper lb / 24 inch 36 inch ream lbtag poundtagpaper poundbagpaper poundtagpaper lbbag poundbagpaper poundnewsprintpaper poundtagpaper lbnewsprint poundnewsprintpaper poundposterpaper poundtagpaper lbposter poundposterpaper poundtissuepaper poundtagpaper lbtissue poundtissuepaper poundwrappingpaper poundtagpaper lbwrapping poundwrappingpaper poundwaxingpaper poundtagpaper lbwaxing poundwaxingpaper poundglassinepaper poundtagpaper lbglassine poundglassinepaper poundcoverpaper lb / 20 inch 26 inch ream lbcover poundcoverpaper poundindexpaper lb / 25.5 inch 30.5 inch ream lbindex poundindexpaper poundindexbristolpaper poundindexpaper lbindexbristol poundindexpaper poundbondpaper lb / 17 inch 22 inch ream # Bond paper is stiff and lbbond poundbondpaper # durable for repeated poundwritingpaper poundbondpaper # filing, and it resists lbwriting poundwritingpaper # ink penetration. poundledgerpaper poundbondpaper lbledger poundledgerpaper poundcopypaper poundbondpaper lbcopy poundcopypaper poundblottingpaper lb / 19 inch 24 inch ream lbblotting poundblottingpaper poundblankspaper lb / 22 inch 28 inch ream lbblanks poundblankspaper poundpostcardpaper lb / 22.5 inch 28.5 inch ream lbpostcard poundpostcardpaper poundweddingbristol poundpostcardpaper lbweddingbristol poundweddingbristol poundbristolpaper poundweddingbristol lbbristol poundbristolpaper poundboxboard lb / 1000 ft^2 lbboxboard poundboxboard poundpaperboard poundboxboard lbpaperboard poundpaperboard # When paper is marked in units of M, it means the weight of 1000 sheets of the # given size of paper. To convert this to paper weight, divide by the size of # the paper in question. paperM lb / 1000 # In addition paper weight is reported in "caliper" which is simply the # thickness of one sheet, typically in inches. Thickness is also reported in # "points" where a point is 1|1000 inch. These conversions are supplied to # convert these units roughly (using an approximate density) into the standard # paper weight values. pointthickness 0.001 in paperdensity 0.8 g/cm^3 # approximate--paper densities vary! papercaliper in paperdensity paperpoint pointthickness paperdensity # # Printing # fournierpoint 0.1648 inch / 12 # First definition of the printers # point made by Pierre Fournier who # defined it in 1737 as 1|12 of a # cicero which was 0.1648 inches. olddidotpoint 1|72 frenchinch # François Ambroise Didot, one of # a family of printers, changed # Fournier's definition around 1770 # to fit to the French units then in # use. bertholdpoint 1|2660 m # H. Berthold tried to create a # metric version of the didot point # in 1878. INpoint 0.4 mm # This point was created by a # group directed by Fermin Didot in # 1881 and is associated with the # imprimerie nationale. It doesn't # seem to have been used much. germandidotpoint 0.376065 mm # Exact definition appears in DIN # 16507, a German standards document # of 1954. Adopted more broadly in # 1966 by ??? metricpoint 3|8 mm # Proposed in 1977 by Eurograf oldpoint 1|72.27 inch # The American point was invented printerspoint oldpoint # by Nelson Hawks in 1879 and texpoint oldpoint # dominates USA publishing. # It was standardized by the American # Typefounders Association at the # value of 0.013837 inches exactly. # Knuth uses the approximation given # here (which is very close). The # comp.fonts FAQ claims that this # value is supposed to be 1|12 of a # pica where 83 picas is equal to 35 # cm. But this value differs from # the standard. texscaledpoint 1|65536 texpoint # The TeX typesetting system uses texsp texscaledpoint # this for all computations. computerpoint 1|72 inch # The American point was rounded point computerpoint computerpica 12 computerpoint # to an even 1|72 inch by computer postscriptpoint computerpoint # people at some point. pspoint postscriptpoint twip 1|20 point # TWentieth of an Imperial Point Q 1|4 mm # Used in Japanese phototypesetting # Q is for quarter frenchprinterspoint olddidotpoint didotpoint germandidotpoint # This seems to be the dominant value europeanpoint didotpoint # for the point used in Europe cicero 12 didotpoint stick 2 inches # Type sizes excelsior 3 oldpoint brilliant 3.5 oldpoint diamondtype 4 oldpoint pearl 5 oldpoint agate 5.5 oldpoint # Originally agate type was 14 lines per # inch, giving a value of 1|14 in. ruby agate # British nonpareil 6 oldpoint mignonette 6.5 oldpoint emerald mignonette # British minion 7 oldpoint brevier 8 oldpoint bourgeois 9 oldpoint longprimer 10 oldpoint smallpica 11 oldpoint pica 12 oldpoint english 14 oldpoint columbian 16 oldpoint greatprimer 18 oldpoint paragon 20 oldpoint meridian 44 oldpoint canon 48 oldpoint # German type sizes nonplusultra 2 didotpoint brillant 3 didotpoint diamant 4 didotpoint perl 5 didotpoint nonpareille 6 didotpoint kolonel 7 didotpoint petit 8 didotpoint borgis 9 didotpoint korpus 10 didotpoint corpus korpus garamond korpus mittel 14 didotpoint tertia 16 didotpoint text 18 didotpoint kleine_kanon 32 didotpoint kanon 36 didotpoint grobe_kanon 42 didotpoint missal 48 didotpoint kleine_sabon 72 didotpoint grobe_sabon 84 didotpoint # # Information theory units. Note that the name "entropy" is used both # to measure information and as a physical quantity. # INFORMATION bit nat (1/ln(2)) bits # Entropy measured base e hartley log2(10) bits # Entropy of a uniformly ban hartley # distributed random variable # over 10 symbols. dit hartley # from Decimal digIT # # Computer # bps bit/sec # Sometimes the term "baud" is # incorrectly used to refer to # bits per second. Baud refers # to symbols per second. Modern # modems transmit several bits # per symbol. byte 8 bit # Not all machines had 8 bit B byte # bytes, but these days most of # them do. But beware: for # transmission over modems, a # few extra bits are used so # there are actually 10 bits per # byte. octet 8 bits # The octet is always 8 bits nybble 4 bits # Half of a byte. Sometimes # equal to different lengths # such as 3 bits. nibble nybble nyp 2 bits # Donald Knuth asks in an exercise # for a name for a 2 bit # quantity and gives the "nyp" # as a solution due to Gregor # Purdy. Not in common use. meg megabyte # Some people consider these # units along with the kilobyte gig gigabyte # to be defined according to # powers of 2 with the kilobyte # equal to 2^10 bytes, the # megabyte equal to 2^20 bytes and # the gigabyte equal to 2^30 bytes # but these usages are forbidden # by SI. Binary prefixes have # been defined by IEC to replace # the SI prefixes. Use them to # get the binary values: KiB, MiB, # and GiB. jiffy 0.01 sec # This is defined in the Jargon File jiffies jiffy # (http://www.jargon.org) as being the # duration of a clock tick for measuring # wall-clock time. Supposedly the value # used to be 1|60 sec or 1|50 sec # depending on the frequency of AC power, # but then 1|100 sec became more common. # On linux systems, this term is used and # for the Intel based chips, it does have # the value of .01 sec. The Jargon File # also lists two other definitions: # millisecond, and the time taken for # light to travel one foot. cdaudiospeed 44.1 kHz 2*16 bits # CD audio data rate at 44.1 kHz with 2 # samples of sixteen bits each. cdromspeed 75 2048 bytes / sec # For data CDs (mode1) 75 sectors are read # each second with 2048 bytes per sector. # Audio CDs do not have sectors, but # people sometimes divide the bit rate by # 75 and claim a sector length of 2352. # Data CDs have a lower rate due to # increased error correction overhead. # There is a rarely used mode (mode2) with # 2336 bytes per sector that has fewer # error correction bits than mode1. dvdspeed 1385 kB/s # This is the "1x" speed of a DVD using # constant linear velocity (CLV) mode. # Modern DVDs may vary the linear velocity # as they go from the inside to the # outside of the disc. # See http://www.osta.org/technology/dvdqa/dvdqa4.htm # # The IP address space is divided into subnets. The number of hosts # in a subnet depends on the length of the subnet prefix. This is # often written as /N where N is the number of bits in the prefix. # # https://en.wikipedia.org/wiki/Subnetwork # # These definitions gives the number of hosts for a subnet whose # prefix has the specified length in bits. # ipv4subnetsize(prefix_len) units=[1;1] domain=[0,32] range=[1,4294967296] \ 2^(32-prefix_len) ; 32-log2(ipv4subnetsize) ipv4classA ipv4subnetsize(8) ipv4classB ipv4subnetsize(16) ipv4classC ipv4subnetsize(24) ipv6subnetsize(prefix_len) units=[1;1] domain=[0,128] \ range=[1,340282366920938463463374607431768211456] \ 2^(128-prefix_len) ; 128-log2(ipv6subnetsize) # # Musical measures. Musical intervals expressed as ratios. Multiply # two intervals together to get the sum of the interval. The function # musicalcent can be used to convert ratios to cents. # # Perfect intervals octave 2 majorsecond musicalfifth^2 / octave majorthird 5|4 minorthird 6|5 musicalfourth 4|3 musicalfifth 3|2 majorsixth musicalfourth majorthird minorsixth musicalfourth minorthird majorseventh musicalfifth majorthird minorseventh musicalfifth minorthird pythagoreanthird majorsecond musicalfifth^2 / octave syntoniccomma pythagoreanthird / majorthird pythagoreancomma musicalfifth^12 / octave^7 # Equal tempered definitions semitone octave^(1|12) musicalcent(x) units=[1;1] range=(0,) semitone^(x/100) ; \ 100 log(musicalcent)/log(semitone) # # Musical note lengths. # wholenote ! MUSICAL_NOTE_LENGTH wholenote halfnote 1|2 wholenote quarternote 1|4 wholenote eighthnote 1|8 wholenote sixteenthnote 1|16 wholenote thirtysecondnote 1|32 wholenote sixtyfourthnote 1|64 wholenote dotted 3|2 doubledotted 7|4 breve doublewholenote semibreve wholenote minimnote halfnote crotchet quarternote quaver eighthnote semiquaver sixteenthnote demisemiquaver thirtysecondnote hemidemisemiquaver sixtyfourthnote semidemisemiquaver hemidemisemiquaver # # yarn and cloth measures # # yarn linear density woolyarnrun 1600 yard/pound # 1600 yds of "number 1 yarn" weighs # a pound. yarncut 300 yard/pound # Less common system used in # Pennsylvania for wool yarn cottonyarncount 840 yard/pound linenyarncount 300 yard/pound # Also used for hemp and ramie worstedyarncount 1680 ft/pound metricyarncount meter/gram denier 1|9 tex # used for silk and rayon manchesteryarnnumber drams/1000 yards # old system used for silk pli lb/in typp 1000 yd/lb # abbreviation for Thousand Yard Per Pound asbestoscut 100 yd/lb # used for glass and asbestos yarn tex gram / km # rational metric yarn measure, meant drex 0.1 tex # to be used for any kind of yarn poumar lb / 1e6 yard # yarn and cloth length skeincotton 80*54 inch # 80 turns of thread on a reel with a # 54 in circumference (varies for other # kinds of thread) cottonbolt 120 ft # cloth measurement woolbolt 210 ft bolt cottonbolt heer 600 yards cut 300 yards # used for wet-spun linen yarn lea 300 yards sailmakersyard 28.5 in sailmakersounce oz / sailmakersyard 36 inch silkmomme momme / 25 yards 1.49 inch # Traditional silk weight silkmm silkmomme # But it is also defined as # lb/100 yd 45 inch. The two # definitions are slightly different # and neither one seems likely to be # the true source definition. # # drug dosage # mcg microgram # Frequently used for vitamins iudiptheria 62.8 microgram # IU is for international unit iupenicillin 0.6 microgram iuinsulin 41.67 microgram drop 1|20 ml # The drop was an old "unit" that was # replaced by the minim. But I was # told by a pharmacist that in his # profession, the conversion of 20 # drops per ml is actually used. bloodunit 450 ml # For whole blood. For blood # components, a blood unit is the # quanity of the component found in a # blood unit of whole blood. The # human body contains about 12 blood # units of whole blood. # # misc medical measure # frenchcathetersize 1|3 mm # measure used for the outer diameter # of a catheter charriere frenchcathetersize # # fixup units for times when prefix handling doesn't do the job # hectare hectoare megohm megaohm kilohm kiloohm microhm microohm megalerg megaerg # 'L' added to make it pronounceable [18]. # # Money # # Note that US$ is the primitive unit so other currencies are # generally given in US$. # usdollar US$ $ dollar mark germanymark bolivar venezuelabolivar venezuelanbolivarfuerte venezuelabolivar bolivarfuerte bolivar # The currency was revalued by oldbolivar 1|1000 bolivar # a factor of 1000. peseta spainpeseta rand southafricarand escudo portugalescudo guilder netherlandsguilder hollandguilder netherlandsguilder peso mexicopeso yen japanyen lira italylira rupee indiarupee drachma greecedrachma franc francefranc markka finlandmarkka britainpound unitedkingdompound greatbritainpound unitedkingdompound unitedkingdompound ukpound poundsterling britainpound yuan chinayuan # Unicode Currency Names !utf8 icelandkróna icelandkrona polandzÅ‚oty polandzloty tongapa’anga tongapa'anga venezuelabolívar venezuelabolivar vietnamđồng vietnamdong mongoliatögrög mongoliatugrik sãotomé&príncipedobra saotome&principedobra !endutf8 UKP GBP # Not an ISO code, but looks like one, and # sometimes used on usenet. !include currency.units # Money on the gold standard, used in the late 19th century and early # 20th century. olddollargold 23.22 grains goldprice # Used until 1934 newdollargold 96|7 grains goldprice # After Jan 31, 1934 dollargold newdollargold poundgold 113 grains goldprice # British pound # Precious metals goldounce goldprice troyounce silverounce silverprice troyounce platinumounce platinumprice troyounce XAU goldounce XPT platinumounce XAG silverounce # Nominal masses of US coins. Note that dimes, quarters and half dollars # have weight proportional to value. Before 1965 it was $40 / kg. USpennyweight 2.5 grams # Since 1982, 48 grains before USnickelweight 5 grams USdimeweight US$ 0.10 / (20 US$ / lb) # Since 1965 USquarterweight US$ 0.25 / (20 US$ / lb) # Since 1965 UShalfdollarweight US$ 0.50 / (20 US$ / lb) # Since 1971 USdollarweight 8.1 grams # Weight of Susan B. Anthony and # Sacagawea dollar coins # British currency quid britainpound # Slang names fiver 5 quid tenner 10 quid monkey 500 quid brgrand 1000 quid bob shilling shilling 1|20 britainpound # Before decimalisation, there oldpence 1|12 shilling # were 20 shillings to a pound, farthing 1|4 oldpence # each of twelve old pence guinea 21 shilling # Still used in horse racing crown 5 shilling florin 2 shilling groat 4 oldpence tanner 6 oldpence brpenny 0.01 britainpound pence brpenny tuppence 2 pence tuppenny tuppence ha'penny halfbrpenny hapenny ha'penny oldpenny oldpence oldtuppence 2 oldpence oldtuppenny oldtuppence threepence 3 oldpence # threepence never refers to new money threepenny threepence oldthreepence threepence oldthreepenny threepence oldhalfpenny halfoldpenny oldha'penny oldhalfpenny oldhapenny oldha'penny brpony 25 britainpound # Canadian currency loony 1 canadadollar # This coin depicts a loon toony 2 canadadollar # Cryptocurrency satoshi 1e-8 bitcoin XBT bitcoin # nonstandard code # # Units used for measuring volume of wood # cord 4*4*8 ft^3 # 4 ft by 4 ft by 8 ft bundle of wood facecord 1|2 cord cordfoot 1|8 cord # One foot long section of a cord cordfeet cordfoot housecord 1|3 cord # Used to sell firewood for residences, # often confusingly called a "cord" boardfoot ft^2 inch # Usually 1 inch thick wood boardfeet boardfoot fbm boardfoot # feet board measure stack 4 yard^3 # British, used for firewood and coal [18] rick 4 ft 8 ft 16 inches # Stack of firewood, supposedly # sometimes called a face cord, but this # value is equal to 1|3 cord. Name # comes from an old Norse word for a # stack of wood. stere m^3 timberfoot ft^3 # Used for measuring solid blocks of wood standard 120 12 ft 11 in 1.5 in # This is the St Petersburg or # Pittsburg standard. Apparently the # term is short for "standard hundred" # which was meant to refer to 100 pieces # of wood (deals). However, this # particular standard is equal to 120 # deals which are 12 ft by 11 in by 1.5 # inches (not the standard deal). hoppusfoot (4/pi) ft^3 # Volume calculation suggested in 1736 hoppusboardfoot 1|12 hoppusfoot # forestry manual by Edward Hoppus, for hoppuston 50 hoppusfoot # estimating the usable volume of a log. # It results from computing the volume # of a cylindrical log of length, L, and # girth (circumference), G, by V=L(G/4)^2. # The hoppus ton is apparently still in # use for shipments from Southeast Asia. # In Britain, the deal is apparently any piece of wood over 6 feet long, over # 7 wide and 2.5 inches thick. The OED doesn't give a standard size. A piece # of wood less than 7 inches wide is called a "batten". This unit is now used # exclusively for fir and pine. deal 12 ft 11 in 2.5 in # The standard North American deal [OED] wholedeal 12 ft 11 in 1.25 in # If it's half as thick as the standard # deal it's called a "whole deal"! splitdeal 12 ft 11 in 5|8 in # And half again as thick is a split deal. # Used for shellac mixing rate poundcut pound / gallon lbcut poundcut # # Gas and Liquid flow units # FLUID_FLOW VOLUME / TIME # Some obvious volumetric gas flow units (cu is short for cubic) cumec m^3/s cusec ft^3/s # Conventional abbreviations for fluid flow units gph gal/hr gpm gal/min mgd megagal/day cfs ft^3/s cfh ft^3/hour cfm ft^3/min lpm liter/min lfm ft/min # Used to report air flow produced by fans. # Multiply by cross sectional area to get a # flow in cfm. pru mmHg / (ml/min) # peripheral resistance unit, used in # medicine to assess blood flow in # the capillaries. # Miner's inch: This is an old historic unit used in the Western United # States. It is generally defined as the rate of flow through a one square # inch hole at a specified depth such as 4 inches. In the late 19th century, # volume of water was sometimes measured in the "24 hour inch". Values for the # miner's inch were fixed by state statues. (This information is from a web # site operated by the Nevada Division of Water Planning: The Water Words # Dictionary at http://www.state.nv.us/cnr/ndwp/dict-1/waterwds.htm.) minersinchAZ 1.5 ft^3/min minersinchCA 1.5 ft^3/min minersinchMT 1.5 ft^3/min minersinchNV 1.5 ft^3/min minersinchOR 1.5 ft^3/min minersinchID 1.2 ft^3/min minersinchKS 1.2 ft^3/min minersinchNE 1.2 ft^3/min minersinchNM 1.2 ft^3/min minersinchND 1.2 ft^3/min minersinchSD 1.2 ft^3/min minersinchUT 1.2 ft^3/min minersinchCO 1 ft^3/sec / 38.4 # 38.4 miner's inches = 1 ft^3/sec minersinchBC 1.68 ft^3/min # British Columbia # Oceanographic flow sverdrup 1e6 m^3 / sec # Used to express flow of ocean # currents. Named after Norwegian # oceanographer H. Sverdrup. # In vacuum science and some other applications, gas flow is measured # as the product of volumetric flow and pressure. This is useful # because it makes it easy to compare with the flow at standard # pressure (one atmosphere). It also directly relates to the number # of gas molecules per unit time, and hence to the mass flow if the # molecular mass is known. GAS_FLOW PRESSURE FLUID_FLOW sccm atm cc/min # 's' is for "standard" to indicate sccs atm cc/sec # flow at standard pressure scfh atm ft^3/hour # scfm atm ft^3/min slpm atm liter/min slph atm liter/hour lusec liter micron Hg / s # Used in vacuum science # US Standard Atmosphere (1976) # Atmospheric temperature and pressure vs. geometric height above sea level # This definition covers only the troposphere (the lowest atmospheric # layer, up to 11 km), and assumes the layer is polytropic. # A polytropic process is one for which PV^k = const, where P is the # pressure, V is the volume, and k is the polytropic exponent. The # polytropic index is n = 1 / (k - 1). As noted in the Wikipedia article # https://en.wikipedia.org/wiki/Polytropic_process, some authors reverse # the definitions of "exponent" and "index." The functions below assume # the following parameters: # temperature lapse rate, -dT/dz, in troposphere lapserate 6.5 K/km # US Std Atm (1976) # air molecular weight, including constituent mol wt, given # in Table 3, p. 3 air_1976 78.084 % 28.0134 \ + 20.9476 % 31.9988 \ + 9340 ppm 39.948 \ + 314 ppm 44.00995 \ + 18.18 ppm 20.183 \ + 5.24 ppm 4.0026 \ + 2 ppm 16.04303 \ + 1.14 ppm 83.80 \ + 0.55 ppm 2.01594 \ + 0.087 ppm 131.30 # universal gas constant R_1976 8.31432e3 N m/(kmol K) # polytropic index n polyndx_1976 air_1976 (kg/kmol) gravity/(R_1976 lapserate) - 1 # If desired, redefine using current values for air mol wt and R polyndx polyndx_1976 # polyndx air (kg/kmol) gravity/(R lapserate) - 1 # for comparison with various references polyexpnt (polyndx + 1) / polyndx # The model assumes the following reference values: # sea-level temperature and pressure stdatmT0 288.15 K stdatmP0 atm # "effective radius" for relation of geometric to geopotential height, # at a latitude at which g = 9.80665 m/s (approximately 45.543 deg); no # relation to actual radius earthradUSAtm 6356766 m # Temperature vs. geopotential height h # Assumes 15 degC at sea level # Based on approx 45 deg latitude # Lower limits of domain and upper limits of range are those of the # tables in US Standard Atmosphere (NASA 1976) stdatmTH(h) units=[m;K] domain=[-5000,11e3] range=[217,321] \ stdatmT0+(-lapserate h) ; (stdatmT0+(-stdatmTH))/lapserate # Temperature vs. geometric height z; based on approx 45 deg latitude stdatmT(z) units=[m;K] domain=[-5000,11e3] range=[217,321] \ stdatmTH(geop_ht(z)) ; ~geop_ht(~stdatmTH(stdatmT)) # Pressure vs. geopotential height h # Assumes 15 degC and 101325 Pa at sea level # Based on approx 45 deg latitude # Lower limits of domain and upper limits of range are those of the # tables in US Standard Atmosphere (NASA 1976) stdatmPH(h) units=[m;Pa] domain=[-5000,11e3] range=[22877,177764] \ atm (1 - (lapserate/stdatmT0) h)^(polyndx + 1) ; \ (stdatmT0/lapserate) (1+(-(stdatmPH/stdatmP0)^(1/(polyndx + 1)))) # Pressure vs. geometric height z; based on approx 45 deg latitude stdatmP(z) units=[m;Pa] domain=[-5000,11e3] range=[22877,177764] \ stdatmPH(geop_ht(z)); ~geop_ht(~stdatmPH(stdatmP)) # Geopotential height from geometric height # Based on approx 45 deg latitude # Lower limits of domain and range are somewhat arbitrary; they # correspond to the limits in the US Std Atm tables geop_ht(z) units=[m;m] domain=[-5000,) range=[-5004,) \ (earthradUSAtm z) / (earthradUSAtm + z) ; \ (earthradUSAtm geop_ht) / (earthradUSAtm + (-geop_ht)) # The standard value for the sea-level acceleration due to gravity is # 9.80665 m/s^2, but the actual value varies with latitude (Harrison 1949) # R_eff = 2 g_phi / denom # g_phi = 978.0356e-2 (1+0.0052885 sin(lat)^2+(-0.0000059) sin(2 lat)^2) # or # g_phi = 980.6160e-2 (1+(-0.0026373) cos(2 lat)+0.0000059 cos(2 lat)^2) # denom = 3.085462e-6+2.27e-9 cos(2 lat)+(-2e-12) cos(4 lat) (minutes?) # There is no inverse function; the standard value applies at a latitude # of about 45.543 deg g_phi(lat) units=[deg;m/s2] domain=[0,90] noerror \ 980.6160e-2 (1+(-0.0026373) cos(2 lat)+0.0000059 cos(2 lat)^2) m/s2 # effective Earth radius for relation of geometric height to # geopotential height, as function of latitude (Harrison 1949) earthradius_eff(lat) units=[deg;m] domain=[0,90] noerror \ m 2 9.780356 (1+0.0052885 sin(lat)^2+(-0.0000059) sin(2 lat)^2) / \ (3.085462e-6 + 2.27e-9 cos(2 lat) + (-2e-12) cos(4 lat)) # References # Harrison, L.P. 1949. Relation Between Geopotential and Geometric # Height. In Smithsonian Meteorological Tables. List, Robert J., ed. # 6th ed., 4th reprint, 1968. Washington, DC: Smithsonian Institution. # NASA. US National Aeronautics and Space Administration. 1976. # US Standard Atmosphere 1976. Washington, DC: US Government Printing Office. # Gauge pressure functions # # Gauge pressure is measured relative to atmospheric pressure. In the English # system, where pressure is often given in pounds per square inch, gauge # pressure is often indicated by 'psig' to distinguish it from absolute # pressure, often indicated by 'psia'. At the standard atmospheric pressure # of 14.696 psia, a gauge pressure of 0 psig is an absolute pressure of 14.696 # psia; an automobile tire inflated to 31 psig has an absolute pressure of # 45.696 psia. # # With gaugepressure(), the units must be specified (e.g., gaugepressure(1.5 # bar)); with psig(), the units are taken as psi, so the example above of tire # pressure could be given as psig(31). # # If the normal elevation is significantly different from sea level, change # Patm appropriately, and adjust the lower domain limit on the gaugepressure # definition. Patm atm gaugepressure(x) units=[Pa;Pa] domain=[-101325,) range=[0,) \ x + Patm ; gaugepressure+(-Patm) psig(x) units=[1;Pa] domain=[-14.6959487755135,) range=[0,) \ gaugepressure(x psi) ; ~gaugepressure(psig) / psi # Pressure for underwater diving seawater 0.1 bar / meter msw meter seawater fsw foot seawater # # Wire Gauge # # This area is a nightmare with huge charts of wire gauge diameters # that usually have no clear origin. There are at least 5 competing wire gauge # systems to add to the confusion. The use of wire gauge is related to the # manufacturing method: a metal rod is heated and drawn through a hole. The # size change can't be too big. To get smaller wires, the process is repeated # with a series of smaller holes. Generally larger gauges mean smaller wires. # The gauges often have values such as "00" and "000" which are larger sizes # than simply "0" gauge. In the tables that appear below, these gauges must be # specified as negative numbers (e.g. "00" is -1, "000" is -2, etc). # Alternatively, you can use the following units: # g00 (-1) g000 (-2) g0000 (-3) g00000 (-4) g000000 (-5) g0000000 (-6) # American Wire Gauge (AWG) or Brown & Sharpe Gauge appears to be the most # important gauge. ASTM B-258 specifies that this gauge is based on geometric # interpolation between gauge 0000, which is 0.46 inches exactly, and gauge 36 # which is 0.005 inches exactly. Therefore, the diameter in inches of a wire # is given by the formula 1|200 92^((36-g)/39). Note that 92^(1/39) is close # to 2^(1/6), so diameter is approximately halved for every 6 gauges. For the # repeated zero values, use negative numbers in the formula. The same document # also specifies rounding rules which seem to be ignored by makers of tables. # Gauges up to 44 are to be specified with up to 4 significant figures, but no # closer than 0.0001 inch. Gauges from 44 to 56 are to be rounded to the # nearest 0.00001 inch. # # In addition to being used to measure wire thickness, this gauge is used to # measure the thickness of sheets of aluminum, copper, and most metals other # than steel, iron and zinc. wiregauge(g) units=[1;m] range=(0,) \ 1|200 92^((36+(-g))/39) in; 36+(-39)ln(200 wiregauge/in)/ln(92) awg() wiregauge # Next we have the SWG, the Imperial or British Standard Wire Gauge. This one # is piecewise linear. It was used for aluminum sheets. brwiregauge[in] \ -6 0.5 \ -5 0.464 \ -3 0.4 \ -2 0.372 \ 3 0.252 \ 6 0.192 \ 10 0.128 \ 14 0.08 \ 19 0.04 \ 23 0.024 \ 26 0.018 \ 28 0.0148 \ 30 0.0124 \ 39 0.0052 \ 49 0.0012 \ 50 0.001 # The following is from the Appendix to ASTM B 258 # # For example, in U.S. gage, the standard for sheet metal is based on the # weight of the metal, not on the thickness. 16-gage is listed as # approximately .0625 inch thick and 40 ounces per square foot (the original # standard was based on wrought iron at .2778 pounds per cubic inch; steel # has almost entirely superseded wrought iron for sheet use, at .2833 pounds # per cubic inch). Smaller numbers refer to greater thickness. There is no # formula for converting gage to thickness or weight. # # It's rather unclear from the passage above whether the plate gauge values are # therefore wrong if steel is being used. Reference [15] states that steel is # in fact measured using this gauge (under the name Manufacturers' Standard # Gauge) with a density of 501.84 lb/ft3 = 0.2904 lb/in3 used for steel. # But this doesn't seem to be the correct density of steel (.2833 lb/in3 is # closer). # # This gauge was established in 1893 for purposes of taxation. # Old plate gauge for iron plategauge[(oz/ft^2)/(480*lb/ft^3)] \ -5 300 \ 1 180 \ 14 50 \ 16 40 \ 17 36 \ 20 24 \ 26 12 \ 31 7 \ 36 4.5 \ 38 4 # Manufacturers Standard Gage stdgauge[(oz/ft^2)/(501.84*lb/ft^3)] \ -5 300 \ 1 180 \ 14 50 \ 16 40 \ 17 36 \ 20 24 \ 26 12 \ 31 7 \ 36 4.5 \ 38 4 # A special gauge is used for zinc sheet metal. Notice that larger gauges # indicate thicker sheets. zincgauge[in] \ 1 0.002 \ 10 0.02 \ 15 0.04 \ 19 0.06 \ 23 0.1 \ 24 0.125 \ 27 0.5 \ 28 1 # # Imperial drill bit sizes are reported in inches or in a numerical or # letter gauge. # drillgauge[in] \ 1 0.2280 \ 2 0.2210 \ 3 0.2130 \ 4 0.2090 \ 5 0.2055 \ 6 0.2040 \ 7 0.2010 \ 8 0.1990 \ 9 0.1960 \ 10 0.1935 \ 11 0.1910 \ 12 0.1890 \ 13 0.1850 \ 14 0.1820 \ 15 0.1800 \ 16 0.1770 \ 17 0.1730 \ 18 0.1695 \ 19 0.1660 \ 20 0.1610 \ 22 0.1570 \ 23 0.1540 \ 24 0.1520 \ 25 0.1495 \ 26 0.1470 \ 27 0.1440 \ 28 0.1405 \ 29 0.1360 \ 30 0.1285 \ 31 0.1200 \ 32 0.1160 \ 33 0.1130 \ 34 0.1110 \ 35 0.1100 \ 36 0.1065 \ 38 0.1015 \ 39 0.0995 \ 40 0.0980 \ 41 0.0960 \ 42 0.0935 \ 43 0.0890 \ 44 0.0860 \ 45 0.0820 \ 46 0.0810 \ 48 0.0760 \ 51 0.0670 \ 52 0.0635 \ 53 0.0595 \ 54 0.0550 \ 55 0.0520 \ 56 0.0465 \ 57 0.0430 \ 65 0.0350 \ 66 0.0330 \ 68 0.0310 \ 69 0.0292 \ 70 0.0280 \ 71 0.0260 \ 73 0.0240 \ 74 0.0225 \ 75 0.0210 \ 76 0.0200 \ 78 0.0160 \ 79 0.0145 \ 80 0.0135 \ 88 0.0095 \ 104 0.0031 drillA 0.234 in drillB 0.238 in drillC 0.242 in drillD 0.246 in drillE 0.250 in drillF 0.257 in drillG 0.261 in drillH 0.266 in drillI 0.272 in drillJ 0.277 in drillK 0.281 in drillL 0.290 in drillM 0.295 in drillN 0.302 in drillO 0.316 in drillP 0.323 in drillQ 0.332 in drillR 0.339 in drillS 0.348 in drillT 0.358 in drillU 0.368 in drillV 0.377 in drillW 0.386 in drillX 0.397 in drillY 0.404 in drillZ 0.413 in # # Screw sizes # # In the USA, screw diameters for both wood screws and machine screws # are reported using a gauge number. Metric machine screws are # reported as Mxx where xx is the diameter in mm. # screwgauge(g) units=[1;m] range=[0,) \ (.06 + .013 g) in ; (screwgauge/in + (-.06)) / .013 # # Abrasive grit size # # Standards governing abrasive grit sizes are complicated, specifying # fractions of particles that are passed or retained by different mesh # sizes. As a result, it is not possible to make precise comparisons # of different grit standards. The tables below allow the # determination of rough equivlants by using median particle size. # # Standards in the USA are determined by the Unified Abrasives # Manufacturers' Association (UAMA), which resulted from the merger of # several previous organizations. One of the old organizations was # CAMI (Coated Abrasives Manufacturers' Institute). # # UAMA has a web page with plots showing abrasive particle ranges for # various different grits and comparisons between standards. # # http://www.uama.org/Abrasives101/101Standards.html # # Abrasives are grouped into "bonded" abrasives for use with grinding # wheels and "coated" abrasives for sandpapers and abrasive films. # The industry uses different grit standards for these two # categories. # # Another division is between "macrogrits", grits below 240 and # "microgrits", which are above 240. Standards differ, as do methods # for determining particle size. In the USA, ANSI B74.12 is the # standard governing macrogrits. ANSI B74.10 covers bonded microgrit # abrasives, and ANSI B74.18 covers coated microgrit abrasives. It # appears that the coated standard is identical to the bonded standard # for grits up through 600 but then diverges significantly. # # European grit sizes are determined by the Federation of European # Producers of Abrasives. http://www.fepa-abrasives.org # # They give two standards, the "F" grit for bonded abrasives and the # "P" grit for coated abrasives. This data is taken directly from # their web page. # FEPA P grit for coated abrasives is commonly seen on sandpaper in # the USA where the paper will be marked P600, for example. FEPA P # grits are said to be more tightly constrained than comparable ANSI # grits so that the particles are more uniform in size and hence give # a better finish. grit_P[micron] \ 12 1815 \ 16 1324 \ 20 1000 \ 24 764 \ 30 642 \ 36 538 \ 40 425 \ 50 336 \ 60 269 \ 80 201 \ 100 162 \ 120 125 \ 150 100 \ 180 82 \ 220 68 \ 240 58.5 \ 280 52.2 \ 320 46.2 \ 360 40.5 \ 400 35 \ 500 30.2 \ 600 25.8 \ 800 21.8 \ 1000 18.3 \ 1200 15.3 \ 1500 12.6 \ 2000 10.3 \ 2500 8.4 # The F grit is the European standard for bonded abrasives such as # grinding wheels grit_F[micron] \ 4 4890 \ 5 4125 \ 6 3460 \ 7 2900 \ 8 2460 \ 10 2085 \ 12 1765 \ 14 1470 \ 16 1230 \ 20 1040 \ 22 885 \ 24 745 \ 30 625 \ 36 525 \ 40 438 \ 46 370 \ 54 310 \ 60 260 \ 70 218 \ 80 185 \ 90 154 \ 100 129 \ 120 109 \ 150 82 \ 180 69 \ 220 58 \ 230 53 \ 240 44.5 \ 280 36.5 \ 320 29.2 \ 360 22.8 \ 400 17.3 \ 500 12.8 \ 600 9.3 \ 800 6.5 \ 1000 4.5 \ 1200 3 \ 1500 2.0 \ 2000 1.2 # According to the UAMA web page, the ANSI bonded and ANSI coated standards # are identical to FEPA F in the macrogrit range (under 240 grit), so these # values are taken from the FEPA F table. The values for 240 and above are # from the UAMA web site and represent the average of the "d50" range # endpoints listed there. ansibonded[micron] \ 4 4890 \ 5 4125 \ 6 3460 \ 7 2900 \ 8 2460 \ 10 2085 \ 12 1765 \ 14 1470 \ 16 1230 \ 20 1040 \ 22 885 \ 24 745 \ 30 625 \ 36 525 \ 40 438 \ 46 370 \ 54 310 \ 60 260 \ 70 218 \ 80 185 \ 90 154 \ 100 129 \ 120 109 \ 150 82 \ 180 69 \ 220 58 \ 240 50 \ 280 39.5 \ 320 29.5 \ 360 23 \ 400 18.25 \ 500 13.9 \ 600 10.55 \ 800 7.65 \ 1000 5.8 \ 1200 3.8 grit_ansibonded() ansibonded # Like the bonded grit, the coated macrogrits below 240 are taken from the # FEPA F table. Data above this is from the UAMA site. Note that the coated # and bonded standards are evidently the same from 240 up to 600 grit, but # starting at 800 grit, the coated standard diverges. The data from UAMA show # that 800 grit coated has an average size slightly larger than the average # size of 600 grit coated/bonded. However, the 800 grit has a significantly # smaller particle size variation. # # Because of this non-monotonicity from 600 grit to 800 grit this definition # produces a warning about the lack of a unique inverse. ansicoated[micron] noerror \ 4 4890 \ 5 4125 \ 6 3460 \ 7 2900 \ 8 2460 \ 10 2085 \ 12 1765 \ 14 1470 \ 16 1230 \ 20 1040 \ 22 885 \ 24 745 \ 30 625 \ 36 525 \ 40 438 \ 46 370 \ 54 310 \ 60 260 \ 70 218 \ 80 185 \ 90 154 \ 100 129 \ 120 109 \ 150 82 \ 180 69 \ 220 58 \ 240 50 \ 280 39.5 \ 320 29.5 \ 360 23 \ 400 18.25 \ 500 13.9 \ 600 10.55 \ 800 11.5 \ 1000 9.5 \ 2000 7.2 \ 2500 5.5 \ 3000 4 \ 4000 3 \ 6000 2 \ 8000 1.2 grit_ansicoated() ansicoated # # Is this correct? This is the JIS Japanese standard used on waterstones # jisgrit[micron] \ 150 75 \ 180 63 \ 220 53 \ 280 48 \ 320 40 \ 360 35 \ 400 30 \ 600 20 \ 700 17 \ 800 14 \ 1000 11.5 \ 1200 9.5 \ 1500 8 \ 2000 6.7 \ 2500 5.5 \ 3000 4 \ 4000 3 \ 6000 2 \ 8000 1.2 # The "Finishing Scale" marked with an A (e.g. A75). This information # is from the web page of the sand paper manufacturer Klingspor # http://www.klingspor.com/gritgradingsystems.htm # # I have no information about what this scale is used for. grit_A[micron]\ 16 15.3 \ 25 21.8 \ 30 23.6 \ 35 25.75 \ 45 35 \ 60 46.2 \ 65 53.5 \ 75 58.5 \ 90 65 \ 110 78 \ 130 93 \ 160 127 \ 200 156 # # Grits for DMT brand diamond sharpening stones from # http://dmtsharp.com/products/colorcode.htm # dmtxxcoarse 120 micron # 120 mesh dmtsilver dmtxxcoarse dmtxx dmtxxcoarse dmtxcoarse 60 micron # 220 mesh dmtx dmtxcoarse dmtblack dmtxcoarse dmtcoarse 45 micron # 325 mesh dmtc dmtcoarse dmtblue dmtcoarse dmtfine 25 micron # 600 mesh dmtred dmtfine dmtf dmtfine dmtefine 9 micron # 1200 mesh dmte dmtefine dmtgreen dmtefine dmtceramic 7 micron # 2200 mesh dmtcer dmtceramic dmtwhite dmtceramic dmteefine 3 micron # 8000 mesh dmttan dmteefine dmtee dmteefine # # The following values come from a page in the Norton Stones catalog, # available at their web page, http://www.nortonstones.com. # hardtranslucentarkansas 6 micron # Natural novaculite (silicon quartz) softarkansas 22 micron # stones extrafineindia 22 micron # India stones are Norton's manufactured fineindia 35 micron # aluminum oxide product mediumindia 53.5 micron coarseindia 97 micron finecrystolon 45 micron # Crystolon stones are Norton's mediumcrystalon 78 micron # manufactured silicon carbide product coarsecrystalon 127 micron # The following are not from the Norton catalog hardblackarkansas 6 micron hardwhitearkansas 11 micron washita 35 micron # # Mesh systems for measuring particle sizes by sifting through a wire # mesh or sieve # # The Tyler system and US Sieve system are based on four steps for # each factor of 2 change in the size, so each size is 2^1|4 different # from the adjacent sizes. Unfortunately, the mesh numbers are # arbitrary, so the sizes cannot be expressed with a functional form. # Various references round the values differently. The mesh numbers # are supposed to correspond to the number of holes per inch, but this # correspondence is only approximate because it doesn't include the # wire size of the mesh. # The Tyler Mesh system was apparently introduced by the WS Tyler # company, but it appears that they no longer use it. They follow the # ASTM E11 standard. meshtyler[micron] \ 2.5 8000 \ 3 6727 \ 3.5 5657 \ 4 4757 \ 5 4000 \ 6 3364 \ 7 2828 \ 8 2378 \ 9 2000 \ 10 1682 \ 12 1414 \ 14 1189 \ 16 1000 \ 20 841 \ 24 707 \ 28 595 \ 32 500 \ 35 420 \ 42 354 \ 48 297 \ 60 250 \ 65 210 \ 80 177 \ 100 149 \ 115 125 \ 150 105 \ 170 88 \ 200 74 \ 250 63 \ 270 53 \ 325 44 \ 400 37 # US Sieve size, ASTM E11 # # The WS Tyler company prints the list from ASTM E11 in their catalog, # http://wstyler.com/wp-content/uploads/2015/11/Product-Catalog-2.pdf sieve[micron] \ 3.5 5600 \ 4 4750 \ 5 4000 \ 6 3350 \ 7 2800 \ 8 2360 \ 10 2000 \ 12 1700 \ 14 1400 \ 16 1180 \ 18 1000 \ 20 850 \ 25 710 \ 30 600 \ 35 500 \ 40 425 \ 45 355 \ 50 300 \ 60 250 \ 70 212 \ 80 180 \ 100 150 \ 120 125 \ 140 106 \ 170 90 \ 200 75 \ 230 63 \ 270 53 \ 325 45 \ 400 38 \ 450 32 \ 500 25 \ 625 20 # These last two values are not in the standard series # but were included in the ASTM standard because they meshUS() sieve # were in common usage. # British Mesh size, BS 410: 1986 # This system appears to correspond to the Tyler and US system, but # with different mesh numbers. # # http://www.panadyne.com/technical/panadyne_international_sieve_chart.pdf # meshbritish[micron] \ 3 5657 \ 3.5 4757 \ 4 4000 \ 5 3364 \ 6 2828 \ 7 2378 \ 8 2000 \ 10 1682 \ 12 1414 \ 14 1189 \ 16 1000 \ 18 841 \ 22 707 \ 25 595 \ 30 500 \ 36 420 \ 44 354 \ 52 297 \ 60 250 \ 72 210 \ 85 177 \ 100 149 \ 120 125 \ 150 105 \ 170 88 \ 200 74 \ 240 63 \ 300 53 \ 350 44 \ 400 37 # French system, AFNOR NFX11-501: 1970 # The system appears to be based on size doubling every 3 mesh # numbers, though the values have been agressively rounded. # It's not clear if the unrounded values would be considered # incorrect, so this is given as a table rather than a function. # Functional form: # meshtamis(mesh) units=[1;m] 5000 2^(1|3 (mesh-38)) micron # # http://www.panadyne.com/technical/panadyne_international_sieve_chart.pdf meshtamis[micron] \ 17 40 \ 18 50 \ 19 63 \ 20 80 \ 21 100 \ 22 125 \ 23 160 \ 24 200 \ 25 250 \ 26 315 \ 27 400 \ 28 500 \ 29 630 \ 30 800 \ 31 1000 \ 32 1250 \ 33 1600 \ 34 2000 \ 35 2500 \ 36 3150 \ 37 4000 \ 38 5000 # # Ring size. All ring sizes are given as the circumference of the ring. # # USA ring sizes. Several slightly different definitions seem to be in # circulation. According to [15], the interior diameter of size n ring in # inches is 0.32 n + 0.458 for n ranging from 3 to 13.5 by steps of 0.5. The # size 2 ring is inconsistently 0.538in and no 2.5 size is listed. # # However, other sources list 0.455 + 0.0326 n and 0.4525 + 0.0324 n as the # diameter and list no special case for size 2. (Or alternatively they are # 1.43 + .102 n and 1.4216+.1018 n for measuring circumference in inches.) One # reference claimed that the original system was that each size was 1|10 inch # circumference, but that source doesn't have an explanation for the modern # system which is somewhat different. ringsize(n) units=[1;in] domain=[2,) range=[1.6252,) \ (1.4216+.1018 n) in ; (ringsize/in + (-1.4216))/.1018 # Old practice in the UK measured rings using the "Wheatsheaf gauge" with sizes # specified alphabetically and based on the ring inside diameter in steps of # 1|64 inch. This system was replaced in 1987 by British Standard 6820 which # specifies sizes based on circumference. Each size is 1.25 mm different from # the preceding size. The baseline is size C which is 40 mm circumference. # The new sizes are close to the old ones. Sometimes it's necessary to go # beyond size Z to Z+1, Z+2, etc. sizeAring 37.50 mm sizeBring 38.75 mm sizeCring 40.00 mm sizeDring 41.25 mm sizeEring 42.50 mm sizeFring 43.75 mm sizeGring 45.00 mm sizeHring 46.25 mm sizeIring 47.50 mm sizeJring 48.75 mm sizeKring 50.00 mm sizeLring 51.25 mm sizeMring 52.50 mm sizeNring 53.75 mm sizeOring 55.00 mm sizePring 56.25 mm sizeQring 57.50 mm sizeRring 58.75 mm sizeSring 60.00 mm sizeTring 61.25 mm sizeUring 62.50 mm sizeVring 63.75 mm sizeWring 65.00 mm sizeXring 66.25 mm sizeYring 67.50 mm sizeZring 68.75 mm # Japanese sizes start with size 1 at a 13mm inside diameter and each size is # 1|3 mm larger in diameter than the previous one. They are multiplied by pi # to give circumference. jpringsize(n) units=[1;mm] domain=[1,) range=[0.040840704,) \ (38|3 + n/3) pi mm ; 3 jpringsize/ pi mm + (-38) # The European ring sizes are the length of the circumference in mm minus 40. euringsize(n) units=[1;mm] (n+40) mm ; euringsize/mm + (-40) # # Abbreviations # mph mile/hr mpg mile/gal kph km/hr fL footlambert fpm ft/min fps ft/s rpm rev/min rps rev/sec mi mile smi mile nmi nauticalmile mbh 1e3 btu/hour mcm 1e3 circularmil ipy inch/year # used for corrosion rates ccf 100 ft^3 # used for selling water [18] Mcf 1000 ft^3 # not million cubic feet [18] kp kilopond kpm kp meter Wh W hour hph hp hour plf lb / foot # pounds per linear foot # # Compatibility units with unix version # pa Pa ev eV hg Hg oe Oe mh mH rd rod pf pF gr grain nt N hz Hz hd hogshead dry drygallon/gallon nmile nauticalmile beV GeV bev beV coul C # # Radioactivity units # becquerel /s # Activity of radioactive source Bq becquerel # curie 3.7e10 Bq # Defined in 1910 as the radioactivity Ci curie # emitted by the amount of radon that is # in equilibrium with 1 gram of radium. rutherford 1e6 Bq # RADIATION_DOSE gray gray J/kg # Absorbed dose of radiation Gy gray # rad 1e-2 Gy # From Radiation Absorbed Dose rep 8.38 mGy # Roentgen Equivalent Physical, the amount # of radiation which , absorbed in the # body, would liberate the same amount # of energy as 1 roentgen of X rays # would, or 97 ergs. sievert J/kg # Dose equivalent: dosage that has the Sv sievert # same effect on human tissues as 200 rem 1e-2 Sv # keV X-rays. Different types of # radiation are weighted by the # Relative Biological Effectiveness # (RBE). # # Radiation type RBE # X-ray, gamma ray 1 # beta rays, > 1 MeV 1 # beta rays, < 1 MeV 1.08 # neutrons, < 1 MeV 4-5 # neutrons, 1-10 MeV 10 # protons, 1 MeV 8.5 # protons, .1 MeV 10 # alpha, 5 MeV 15 # alpha, 1 MeV 20 # # The energies are the kinetic energy # of the particles. Slower particles # interact more, so they are more # effective ionizers, and hence have # higher RBE values. # # rem stands for Roentgen Equivalent # Mammal banana_dose 0.1e-6 sievert # Informal measure of the dose due to # eating one average sized banana roentgen 2.58e-4 C / kg # Ionizing radiation that produces # 1 statcoulomb of charge in 1 cc of # dry air at stp. rontgen roentgen # Sometimes it appears spelled this way sievertunit 8.38 rontgen # Unit of gamma ray dose delivered in one # hour at a distance of 1 cm from a # point source of 1 mg of radium # enclosed in platinum .5 mm thick. eman 1e-7 Ci/m^3 # radioactive concentration mache 3.7e-7 Ci/m^3 # # Atomic weights. The atomic weight of an element is the ratio of the mass of # a mole of the element to 1|12 of a mole of Carbon 12. The Standard Atomic # Weights apply to the elements as they occur naturally on earth. Elements # which do not occur naturally or which occur with wide isotopic variability do # not have Standard Atomic Weights. For these elements, the atomic weight is # based on the longest lived isotope, as marked in the comments. In some # cases, the comment for these entries also gives a number which is an atomic # weight for a different isotope that may be of more interest than the longest # lived isotope. # actinium 227.0278 aluminum 26.981539 americium 243.0614 # Longest lived. 241.06 antimony 121.760 argon 39.948 arsenic 74.92159 astatine 209.9871 # Longest lived barium 137.327 berkelium 247.0703 # Longest lived. 249.08 beryllium 9.012182 bismuth 208.98037 boron 10.811 bromine 79.904 cadmium 112.411 calcium 40.078 californium 251.0796 # Longest lived. 252.08 carbon 12.011 cerium 140.115 cesium 132.90543 chlorine 35.4527 chromium 51.9961 cobalt 58.93320 copper 63.546 curium 247.0703 deuterium 2.0141017778 dysprosium 162.50 einsteinium 252.083 # Longest lived erbium 167.26 europium 151.965 fermium 257.0951 # Longest lived fluorine 18.9984032 francium 223.0197 # Longest lived gadolinium 157.25 gallium 69.723 germanium 72.61 gold 196.96654 hafnium 178.49 helium 4.002602 holmium 164.93032 hydrogen 1.00794 indium 114.818 iodine 126.90447 iridium 192.217 iron 55.845 krypton 83.80 lanthanum 138.9055 lawrencium 262.11 # Longest lived lead 207.2 lithium 6.941 lutetium 174.967 magnesium 24.3050 manganese 54.93805 mendelevium 258.10 # Longest lived mercury 200.59 molybdenum 95.94 neodymium 144.24 neon 20.1797 neptunium 237.0482 nickel 58.6934 niobium 92.90638 nitrogen 14.00674 nobelium 259.1009 # Longest lived osmium 190.23 oxygen 15.9994 palladium 106.42 phosphorus 30.973762 platinum 195.08 plutonium 244.0642 # Longest lived. 239.05 polonium 208.9824 # Longest lived. 209.98 potassium 39.0983 praseodymium 140.90765 promethium 144.9127 # Longest lived. 146.92 protactinium 231.03588 radium 226.0254 radon 222.0176 # Longest lived rhenium 186.207 rhodium 102.90550 rubidium 85.4678 ruthenium 101.07 samarium 150.36 scandium 44.955910 selenium 78.96 silicon 28.0855 silver 107.8682 sodium 22.989768 strontium 87.62 sulfur 32.066 tantalum 180.9479 technetium 97.9072 # Longest lived. 98.906 tellurium 127.60 terbium 158.92534 thallium 204.3833 thorium 232.0381 thullium 168.93421 tin 118.710 titanium 47.867 tungsten 183.84 uranium 238.0289 vanadium 50.9415 xenon 131.29 ytterbium 173.04 yttrium 88.90585 zinc 65.39 zirconium 91.224 # Average molecular weight of air # # The atmospheric composition listed is from NASA Earth Fact Sheet (accessed # 28 August 2015) # http://nssdc.gsfc.nasa.gov/planetary/factsheet/earthfact.html # Numbers do not add up to exactly 100% due to roundoff and uncertainty Water # is highly variable, typically makes up about 1% air 78.08% nitrogen 2 \ + 20.95% oxygen 2 \ + 9340 ppm argon \ + 400 ppm (carbon + oxygen 2) \ + 18.18 ppm neon \ + 5.24 ppm helium \ + 1.7 ppm (carbon + 4 hydrogen) \ + 1.14 ppm krypton \ + 0.55 ppm hydrogen 2 # # population units # people 1 person people death people capita people percapita per capita # TGM dozen based unit system listed on the "dozenal" forum # http://www.dozenalsociety.org.uk/apps/tgm.htm. These units are # proposed as an allegedly more rational alternative to the SI system. Tim 12^-4 hour # Time Grafut gravity Tim^2 # Length based on gravity Surf Grafut^2 # area Volm Grafut^3 # volume Vlos Grafut/Tim # speed Denz Maz/Volm # density Mag Maz gravity # force Maz Volm kg / oldliter # mass based on water Tm Tim # Abbreviations Gf Grafut Sf Surf Vm Volm Vl Vlos Mz Maz Dz Denz # Dozen based unit prefixes Zena- 12 Duna- 12^2 Trina- 12^3 Quedra- 12^4 Quena- 12^5 Hesa- 12^6 Seva- 12^7 Aka- 12^8 Neena- 12^9 Dexa- 12^10 Lefa- 12^11 Zennila- 12^12 Zeni- 12^-1 Duni- 12^-2 Trini- 12^-3 Quedri- 12^-4 Queni- 12^-5 Hesi- 12^-6 Sevi- 12^-7 Aki- 12^-8 Neeni- 12^-9 Dexi- 12^-10 Lefi- 12^-11 Zennili- 12^-12 # # Traditional Japanese units (shakkanhou) # # The traditional system of weights and measures is called shakkanhou from the # shaku and the ken. Japan accepted SI units in 1891 and legalized conversions # to the traditional system. In 1909 the inch-pound system was also legalized, # so Japan had three legally approved systems. A change to the metric system # started in 1921 but there was a lot of resistance. The Measurement Law of # October 1999 prohibits sales in anything but SI units. However, the old # units still live on in construction and as the basis for paper sizes of books # and tools used for handicrafts. # # Note that units below use the Hepburn romanization system. Some other # systems would render "mou", "jou", and "chou" as "mo", "jo" and "cho". # # # http://hiramatu-hifuka.com/onyak/onyindx.html # Japanese Proportions. These are still in everyday use. They also # get used as units to represent the proportion of the standard unit. wari_proportion 1|10 wari wari_proportion bu_proportion 1|100 # The character bu can also be read fun or bun # but usually "bu" is used for units. rin_proportion 1|1000 mou_proportion 1|10000 # Japanese Length Measures # # The length system is called kanejaku or # square and originated in China. It was # adopted as Japan's official measure in 701 # by the Taiho Code. This system is still in # common use in architecture and clothing. shaku 1|3.3 m mou 1|10000 shaku rin 1|1000 shaku bu_distance 1|100 shaku sun 1|10 shaku jou_distance 10 shaku jou jou_distance kanejakusun sun # Alias to emphasize architectural name kanejaku shaku kanejakujou jou # http://en.wikipedia.org/wiki/Taiwanese_units_of_measurement taichi shaku # http://zh.wikipedia.org/wiki/å°å°º taicun sun # http://zh.wikipedia.org/wiki/å°åˆ¶ !utf8 å°å°º taichi # via Hanyu Pinyin romanizations å°å¯¸ taicun !endutf8 # In context of clothing, shaku is different from architecture # http://www.scinet.co.jp/sci/sanwa/kakizaki-essay54.html kujirajaku 10|8 shaku kujirajakusun 1|10 kujirajaku kujirajakubu 1|100 kujirajaku kujirajakujou 10 kujirajaku tan_distance 3 kujirajakujou ken 6 shaku # Also sometimes 6.3, 6.5, or 6.6 # http://www.homarewood.co.jp/syakusun.htm # mostly unused chou_distance 60 ken chou chou_distance ri 36 chou # Japanese Area Measures # Tsubo is still used for land size, though the others are more # recognized by their homonyms in the other measurements. gou_area 1|10 tsubo tsubo 36 shaku^2 # Size of two tatami = ken^2 ?? se 30 tsubo tan_area 10 se chou_area 10 tan_area # http://en.wikipedia.org/wiki/Taiwanese_units_of_measurement ping tsubo # http://zh.wikipedia.org/wiki/åª jia 2934 ping # http://zh.wikipedia.org/wiki/甲_(å•ä½) fen 1|10 jia # http://zh.wikipedia.org/wiki/分 fen_area 1|10 jia # Protection against future collisions !utf8 åª ping # via Hanyu Pinyin romanizations 甲 jia 分 fen 分地 fen_area # Protection against future collisions !endutf8 # Japanese architecture is based on a "standard" size of tatami mat. # Room sizes today are given in number of tatami, and this number # determines the spacing between colums and hence sizes of sliding # doors and paper screens. However, every region has its own slightly # different tatami size. Edoma, used in and around Tokyo and # Hokkaido, is becoming a nationwide standard. Kyouma is used around # Kyoto, Osaka and Kyuushu, and Chuukyouma is used around Nagoya. # Note that the tatami all have the aspect ratio 2:1 so that the mats # can tile the room with some of them turned 90 degrees. # # http://www.moon2.net/tatami/infotatami/structure.html edoma (5.8*2.9) shaku^2 kyouma (6.3*3.15) shaku^2 chuukyouma (6*3) shaku^2 jou_area edoma tatami jou_area # Japanese Volume Measures # The "shou" is still used for such things as alcohol and seasonings. # Large quantities of paint are still purchased in terms of "to". shaku_volume 1|10 gou_volume gou_volume 1|10 shou gou gou_volume shou (4.9*4.9*2.7) sun^3 # The character shou which is # the same as masu refers to a # rectangular wooden cup used to # measure liquids and cereal. # Sake is sometimes served in a masu # Note that it happens to be # EXACTLY 7^4/11^3 liters. to 10 shou koku 10 to # No longer used; historically a measure of rice # Japanese Weight Measures # # http://wyoming.hp.infoseek.co.jp/zatugaku/zamoney.html # Not really used anymore. rin_weight 1|10 bu_weight bu_weight 1|10 monme fun 1|10 monme monme momme kin 160 monme kan 1000 monme kwan kan # This was the old pronounciation of the unit. # The old spelling persisted a few centuries # longer and was not changed until around # 1950. # http://en.wikipedia.org/wiki/Taiwanese_units_of_measurement # says: "Volume measure in Taiwan is largely metric". taijin kin # http://zh.wikipedia.org/wiki/å°æ–¤ tailiang 10 monme # http://zh.wikipedia.org/wiki/å°æ–¤ taiqian monme # http://zh.wikipedia.org/wiki/å°åˆ¶ !utf8 å°æ–¤ taijin # via Hanyu Pinyin romanizations å°å…© tailiang å°éŒ¢ taiqian !endutf8 # # Australian unit # australiasquare (10 ft)^2 # Used for house area # # A few German units as currently in use. # zentner 50 kg doppelzentner 2 zentner pfund 500 g # # Swedish (Sweden) pre-metric units of 1739. # The metric system was adopted in 1878. # https://sv.wikipedia.org/wiki/Verkm%C3%A5tt # verklinje 2.0618125 mm verktum 12 verklinje kvarter 6 verktum fot 2 kvarter aln 2 fot famn 3 aln # # Some traditional Russian measures # # If you would like to help expand this section and understand # cyrillic transliteration, let me know. These measures are meant to # reflect common usage, e.g. in translated literature. # dessiatine 2400 sazhen^2 # Land measure dessjatine dessiatine funt 409.51718 grams # similar to pound zolotnik 1|96 funt # used for precious metal measure pood 40 funt # common in agricultural measure arshin (2 + 1|3) feet sazhen 3 arshin # analogous to fathom verst 500 sazhen # of similar use to mile versta verst borderverst 1000 sazhen russianmile 7 verst # # Old French distance measures, from French Weights and Measures # Before the Revolution by Zupko # frenchfoot 144|443.296 m # pied de roi, the standard of Paris. pied frenchfoot # Half of the hashimicubit, frenchfeet frenchfoot # instituted by Charlemagne. frenchinch 1|12 frenchfoot # This exact definition comes from frenchthumb frenchinch # a law passed on 10 Dec 1799 which pouce frenchthumb # fixed the meter at # 3 frenchfeet + 11.296 lignes. frenchline 1|12 frenchinch # This is supposed to be the size ligne frenchline # of the average barleycorn frenchpoint 1|12 frenchline toise 6 frenchfeet arpent 180^2 pied^2 # The arpent is 100 square perches, # but the perche seems to vary a lot # and can be 18 feet, 20 feet, or 22 # feet. This measure was described # as being in common use in Canada in # 1934 (Websters 2nd). The value # given here is the Paris standard # arpent. frenchgrain 1|18827.15 kg # Weight of a wheat grain, hence # smaller than the British grain. frenchpound 9216 frenchgrain # # Before the Imperial Weights and Measures Act of 1824, various different # weights and measures were in use in different places. # # Scots linear measure scotsinch 1.00540054 UKinch scotslink 1|100 scotschain scotsfoot 12 scotsinch scotsfeet scotsfoot scotsell 37 scotsinch scotsfall 6 scotsell scotschain 4 scotsfall scotsfurlong 10 scotschain scotsmile 8 scotsfurlong # Scots area measure scotsrood 40 scotsfall^2 scotsacre 4 scotsrood # Irish linear measure irishinch UKinch irishpalm 3 irishinch irishspan 3 irishpalm irishfoot 12 irishinch irishfeet irishfoot irishcubit 18 irishinch irishyard 3 irishfeet irishpace 5 irishfeet irishfathom 6 irishfeet irishpole 7 irishyard # Only these values irishperch irishpole # are different from irishchain 4 irishperch # the British Imperial irishlink 1|100 irishchain # or English values for irishfurlong 10 irishchain # these lengths. irishmile 8 irishfurlong # # Irish area measure irishrood 40 irishpole^2 irishacre 4 irishrood # English wine capacity measures (Winchester measures) winepint 1|2 winequart winequart 1|4 winegallon winegallon 231 UKinch^3 # Sometimes called the Winchester Wine Gallon, # it was legalized in 1707 by Queen Anne, and # given the definition of 231 cubic inches. It # had been in use for a while as 8 pounds of wine # using a merchant's pound, but the definition of # the merchant's pound had become uncertain. A # pound of 15 tower ounces (6750 grains) had been # common, but then a pound of 15 troy ounces # (7200 grains) gained popularity. Because of # the switch in the value of the merchants pound, # the size of the wine gallon was uncertain in # the market, hence the official act in 1707. # The act allowed that a six inch tall cylinder # with a 7 inch diameter was a lawful wine # gallon. (This comes out to 230.9 in^3.) # Note also that in Britain a legal conversion # was established to the 1824 Imperial gallon # then taken as 277.274 in^3 so that the wine # gallon was 0.8331 imperial gallons. This is # 231.1 cubic inches (using the international # inch). winerundlet 18 winegallon winebarrel 31.5 winegallon winetierce 42 winegallon winehogshead 2 winebarrel winepuncheon 2 winetierce winebutt 2 winehogshead winepipe winebutt winetun 2 winebutt # English beer and ale measures used 1803-1824 and used for beer before 1688 beerpint 1|2 beerquart beerquart 1|4 beergallon beergallon 282 UKinch^3 beerbarrel 36 beergallon beerhogshead 1.5 beerbarrel # English ale measures used from 1688-1803 for both ale and beer alepint 1|2 alequart alequart 1|4 alegallon alegallon beergallon alebarrel 34 alegallon alehogshead 1.5 alebarrel # Scots capacity measure scotsgill 1|4 mutchkin mutchkin 1|2 choppin choppin 1|2 scotspint scotspint 1|2 scotsquart scotsquart 1|4 scotsgallon scotsgallon 827.232 UKinch^3 scotsbarrel 8 scotsgallon jug scotspint # Scots dry capacity measure scotswheatlippy 137.333 UKinch^3 # Also used for peas, beans, rye, salt scotswheatlippies scotswheatlippy scotswheatpeck 4 scotswheatlippy scotswheatfirlot 4 scotswheatpeck scotswheatboll 4 scotswheatfirlot scotswheatchalder 16 scotswheatboll scotsoatlippy 200.345 UKinch^3 # Also used for barley and malt scotsoatlippies scotsoatlippy scotsoatpeck 4 scotsoatlippy scotsoatfirlot 4 scotsoatpeck scotsoatboll 4 scotsoatfirlot scotsoatchalder 16 scotsoatboll # Scots Tron weight trondrop 1|16 tronounce tronounce 1|20 tronpound tronpound 9520 grain tronstone 16 tronpound # Irish liquid capacity measure irishnoggin 1|4 irishpint irishpint 1|2 irishquart irishquart 1|2 irishpottle irishpottle 1|2 irishgallon irishgallon 217.6 UKinch^3 irishrundlet 18 irishgallon irishbarrel 31.5 irishgallon irishtierce 42 irishgallon irishhogshead 2 irishbarrel irishpuncheon 2 irishtierce irishpipe 2 irishhogshead irishtun 2 irishpipe # Irish dry capacity measure irishpeck 2 irishgallon irishbushel 4 irishpeck irishstrike 2 irishbushel irishdrybarrel 2 irishstrike irishquarter 2 irishbarrel # English Tower weights, abolished in 1528 towerpound 5400 grain towerounce 1|12 towerpound towerpennyweight 1|20 towerounce towergrain 1|32 towerpennyweight # English Mercantile weights, used since the late 12th century mercpound 6750 grain mercounce 1|15 mercpound mercpennyweight 1|20 mercounce # English weights for lead leadstone 12.5 lb fotmal 70 lb leadwey 14 leadstone fothers 12 leadwey # English Hay measure newhaytruss 60 lb # New and old here seem to refer to "new" newhayload 36 newhaytruss # hay and "old" hay rather than a new unit oldhaytruss 56 lb # and an old unit. oldhayload 36 oldhaytruss # English wool measure woolclove 7 lb woolstone 2 woolclove wooltod 2 woolstone woolwey 13 woolstone woolsack 2 woolwey woolsarpler 2 woolsack woollast 6 woolsarpler # # Ancient history units: There tends to be uncertainty in the definitions # of the units in this section # These units are from [11] # Roman measure. The Romans had a well defined distance measure, but their # measures of weight were poor. They adopted local weights in different # regions without distinguishing among them so that there are half a dozen # different Roman "standard" weight systems. romanfoot 296 mm # There is some uncertainty in this definition romanfeet romanfoot # from which all the other units are derived. pes romanfoot # This value appears in numerous sources. In "The pedes romanfoot # Roman Land Surveyors", Dilke gives 295.7 mm. romaninch 1|12 romanfoot # The subdivisions of the Roman foot have the romandigit 1|16 romanfoot # same names as the subdivisions of the pound, romanpalm 1|4 romanfoot # but we can't have the names for different romancubit 18 romaninch # units. romanpace 5 romanfeet # Roman double pace (basic military unit) passus romanpace romanperch 10 romanfeet stade 125 romanpaces stadia stade stadium stade romanmile 8 stadia # 1000 paces romanleague 1.5 romanmile schoenus 4 romanmile # Other values for the Roman foot (from Dilke) earlyromanfoot 29.73 cm pesdrusianus 33.3 cm # or 33.35 cm, used in Gaul & Germany in 1st c BC lateromanfoot 29.42 cm # Roman areas actuslength 120 romanfeet # length of a Roman furrow actus 120*4 romanfeet^2 # area of the furrow squareactus 120^2 romanfeet^2 # actus quadratus acnua squareactus iugerum 2 squareactus iugera iugerum jugerum iugerum jugera iugerum heredium 2 iugera # heritable plot heredia heredium centuria 100 heredia centurium centuria # Roman volumes sextarius 35.4 in^3 # Basic unit of Roman volume. As always, sextarii sextarius # there is uncertainty. Six large Roman # measures survive with volumes ranging from # 34.4 in^3 to 39.55 in^3. Three of them # cluster around the size given here. # # But the values for this unit vary wildly # in other sources. One reference gives 0.547 # liters, but then says the amphora is a # cubic Roman foot. This gives a value for the # sextarius of 0.540 liters. And the # encyclopedia Brittanica lists 0.53 liters for # this unit. Both [7] and [11], which were # written by scholars of weights and measures, # give the value of 35.4 cubic inches. cochlearia 1|48 sextarius cyathi 1|12 sextarius acetabula 1|8 sextarius quartaria 1|4 sextarius quartarius quartaria heminae 1|2 sextarius hemina heminae cheonix 1.5 sextarii # Dry volume measures (usually) semodius 8 sextarius semodii semodius modius 16 sextarius modii modius # Liquid volume measures (usually) congius 12 heminae congii congius amphora 8 congii amphorae amphora # Also a dry volume measure culleus 20 amphorae quadrantal amphora # Roman weights libra 5052 grain # The Roman pound varied significantly librae libra # from 4210 grains to 5232 grains. Most of romanpound libra # the standards were obtained from the weight uncia 1|12 libra # of particular coins. The one given here is unciae uncia # based on the Gold Aureus of Augustus which romanounce uncia # was in use from BC 27 to AD 296. deunx 11 uncia dextans 10 uncia dodrans 9 uncia bes 8 uncia seprunx 7 uncia semis 6 uncia quincunx 5 uncia triens 4 uncia quadrans 3 uncia sextans 2 uncia sescuncia 1.5 uncia semuncia 1|2 uncia siscilius 1|4 uncia sextula 1|6 uncia semisextula 1|12 uncia scriptulum 1|24 uncia scrupula scriptulum romanobol 1|2 scrupula romanaspound 4210 grain # Old pound based on bronze coinage, the # earliest money of Rome BC 338 to BC 268. # Egyptian length measure egyptianroyalcubit 20.63 in # plus or minus .2 in egyptianpalm 1|7 egyptianroyalcubit egyptiandigit 1|4 egyptianpalm egyptianshortcubit 6 egyptianpalm doubleremen 29.16 in # Length of the diagonal of a square with remendigit 1|40 doubleremen # side length of 1 royal egyptian cubit. # This is divided into 40 digits which are # not the same size as the digits based on # the royal cubit. # Greek length measures greekfoot 12.45 in # Listed as being derived from the greekfeet greekfoot # Egyptian Royal cubit in [11]. It is greekcubit 1.5 greekfoot # said to be 3|5 of a 20.75 in cubit. pous greekfoot podes greekfoot orguia 6 greekfoot greekfathom orguia stadion 100 orguia akaina 10 greekfeet plethron 10 akaina greekfinger 1|16 greekfoot homericcubit 20 greekfingers # Elbow to end of knuckles. shortgreekcubit 18 greekfingers # Elbow to start of fingers. ionicfoot 296 mm doricfoot 326 mm olympiccubit 25 remendigit # These olympic measures were not as olympicfoot 2|3 olympiccubit # common as the other greek measures. olympicfinger 1|16 olympicfoot # They were used in agriculture. olympicfeet olympicfoot olympicdakylos olympicfinger olympicpalm 1|4 olympicfoot olympicpalestra olympicpalm olympicspithame 3|4 foot olympicspan olympicspithame olympicbema 2.5 olympicfeet olympicpace olympicbema olympicorguia 6 olympicfeet olympicfathom olympicorguia olympiccord 60 olympicfeet olympicamma olympiccord olympicplethron 100 olympicfeet olympicstadion 600 olympicfeet # Greek capacity measure greekkotyle 270 ml # This approximate value is obtained xestes 2 greekkotyle # from two earthenware vessels that khous 12 greekkotyle # were reconstructed from fragments. metretes 12 khous # The kotyle is a day's corn ration choinix 4 greekkotyle # for one man. hekteos 8 choinix medimnos 6 hekteos # Greek weight. Two weight standards were used, an Aegina standard based # on the Beqa shekel and an Athens (attic) standard. aeginastater 192 grain # Varies up to 199 grain aeginadrachmae 1|2 aeginastater aeginaobol 1|6 aeginadrachmae aeginamina 50 aeginastaters aeginatalent 60 aeginamina # Supposedly the mass of a cubic foot # of water (whichever foot was in use) atticstater 135 grain # Varies 134-138 grain atticdrachmae 1|2 atticstater atticobol 1|6 atticdrachmae atticmina 50 atticstaters attictalent 60 atticmina # Supposedly the mass of a cubic foot # of water (whichever foot was in use) # "Northern" cubit and foot. This was used by the pre-Aryan civilization in # the Indus valley. It was used in Mesopotamia, Egypt, North Africa, China, # central and Western Europe until modern times when it was displaced by # the metric system. northerncubit 26.6 in # plus/minus .2 in northernfoot 1|2 northerncubit sumeriancubit 495 mm kus sumeriancubit sumerianfoot 2|3 sumeriancubit assyriancubit 21.6 in assyrianfoot 1|2 assyriancubit assyrianpalm 1|3 assyrianfoot assyriansusi 1|20 assyrianpalm susi assyriansusi persianroyalcubit 7 assyrianpalm # Arabic measures. The arabic standards were meticulously kept. Glass weights # accurate to .2 grains were made during AD 714-900. hashimicubit 25.56 in # Standard of linear measure used # in Persian dominions of the Arabic # empire 7-8th cent. Is equal to two # French feet. blackcubit 21.28 in arabicfeet 1|2 blackcubit arabicfoot arabicfeet arabicinch 1|12 arabicfoot arabicmile 4000 blackcubit silverdirhem 45 grain # The weights were derived from these two tradedirhem 48 grain # units with two identically named systems # used for silver and used for trade purposes silverkirat 1|16 silverdirhem silverwukiyeh 10 silverdirhem silverrotl 12 silverwukiyeh arabicsilverpound silverrotl tradekirat 1|16 tradedirhem tradewukiyeh 10 tradedirhem traderotl 12 tradewukiyeh arabictradepound traderotl # Miscellaneous ancient units parasang 3.5 mile # Persian unit of length usually thought # to be between 3 and 3.5 miles biblicalcubit 21.8 in hebrewcubit 17.58 in li 10|27.8 mile # Chinese unit of length # 100 li is considered a day's march liang 11|3 oz # Chinese weight unit # Medieval time units. According to the OED, these appear in Du Cange # by Papias. timepoint 1|5 hour # also given as 1|4 timeminute 1|10 hour timeostent 1|60 hour timeounce 1|8 timeostent timeatom 1|47 timeounce # Given in [15], these subdivisions of the grain were supposedly used # by jewelers. The mite may have been used but the blanc could not # have been accurately measured. mite 1|20 grain droit 1|24 mite periot 1|20 droit blanc 1|24 periot # # Localization # !var UNITS_ENGLISH US hundredweight ushundredweight ton uston scruple apscruple fluidounce usfluidounce gallon usgallon bushel usbushel quarter quarterweight cup uscup tablespoon ustablespoon teaspoon usteaspoon dollar US$ cent $ 0.01 penny cent minim minimvolume pony ponyvolume grand usgrand firkin usfirkin hogshead ushogshead !endvar !var UNITS_ENGLISH GB hundredweight brhundredweight ton brton scruple brscruple fluidounce brfluidounce gallon brgallon bushel brbushel quarter brquarter chaldron brchaldron cup brcup teacup brteacup tablespoon brtablespoon teaspoon brteaspoon dollar US$ cent $ 0.01 penny brpenny minim minimnote pony brpony grand brgrand firkin brfirkin hogshead brhogshead !endvar !varnot UNITS_ENGLISH GB US !message Unknown value for environment variable UNITS_ENGLISH. Should be GB or US. !endvar !utf8 â…›- 1|8 ¼- 1|4 â…œ- 3|8 ½- 1|2 â…- 5|8 ¾- 3|4 â…ž- 7|8 â…™- 1|6 â…“- 1|3 â…”- 2|3 â…š- 5|6 â…•- 1|5 â…–- 2|5 â…—- 3|5 â…˜- 4|5 # U+2150- 1|7 For some reason these characters are getting # U+2151- 1|9 flagged as invalid UTF8. # U+2152- 1|10 ℯ exp(1) # U+212F, base of natural log µ- micro # micro sign U+00B5 μ- micro # small mu U+03BC Ã¥ngström angstrom â„« angstrom # angstrom symbol U+212B Ã… angstrom # A with ring U+00C5 röntgen roentgen °C degC °F degF °K K # °K is incorrect notation °R degR ° degree ℃ degC ℉ degF K K # Kelvin symbol, U+212A â„“ liter # unofficial abbreviation used in some places Ω ohm # Ohm symbol U+2126 Ω ohm # Greek capital omega U+03A9 â„§ mho Ê’ dram # U+0292 ℈ scruple â„¥ ounce â„” lb ℎ h â„ hbar ‰ 1|1000 ‱ 1|10000 ′ ' # U+2032 ″ " # U+2033 # # Unicode currency symbols # ¢ cent £ britainpound Â¥ japanyen € euro â‚© southkoreawon ₪ israelnewshekel ₤ lira ₺ turkeylira ₨ rupee # unofficial legacy rupee sign ₹ indiarupee # official rupee sign Ø‹ afghanafghani ฿ thailandbaht â‚¡ elsalvadorcolon # Also costaricacolon â‚£ francefranc ₦ nigerianaira â‚§ spainpeseta â‚« vietnamdong â‚­ laokip â‚® mongoliatugrik ₯ greecedrachma ₱ philippinepeso ₲ paraguayguarani â‚´ ukrainehryvnia ₵ ghanacedi ₸ kazakhstantenge ₼ azerbaijanmanat ₽ russiaruble ₾ georgialari ï·¼ iranrial ﹩ $ ï¿  ¢ ï¿¡ £ ï¿¥ Â¥ ₩ â‚© # # Square unicode symbols starting at U+3371 # ã± hPa ã² da ã³ au ã´ bar # ãµ oV??? ã¶ pc #ã· dm invalid on Mac #㸠dm^2 invalid on Mac #ã¹ dm^3 invalid on Mac ㎀ pA ㎠nA ㎂ µA ㎃ mA ㎄ kA ㎅ kB ㎆ MB ㎇ GB ㎈ cal ㎉ kcal ㎊ pF ㎋ nF ㎌ µF ㎠µg ㎎ mg ㎠kg ㎠Hz ㎑ kHz ㎒ MHz ㎓ GHz ㎔ THz ㎕ µL ㎖ mL ㎗ dL ㎘ kL ㎙ fm ㎚ nm ㎛ µm ㎜ mm ㎠cm ㎞ km ㎟ mm^2 ㎠ cm^2 ㎡ m^2 ㎢ km^2 ㎣ mm^3 ㎤ cm^3 ㎥ m^3 ㎦ km^3 ㎧ m/s ㎨ m/s^2 ㎩ Pa ㎪ kPa ㎫ MPa ㎬ GPa ㎭ rad ㎮ rad/s ㎯ rad/s^2 ㎰ ps ㎱ ns ㎲ µs ㎳ ms ㎴ pV ㎵ nV ㎶ µV ㎷ mV ㎸ kV ㎹ MV ㎺ pW ㎻ nW ㎼ µW ㎽ mW ㎾ kW ㎿ MW 〠kΩ ã MΩ ムBq ã„ cc ã… cd ㆠC/kg ãˆ() dB ㉠Gy ㊠ha # ã‹ HP?? ㌠in # ã KK?? # ㎠KM??? ã kt ã lm # ã‘ ln # ã’ log ã“ lx ã” mb ã• mil ã– mol ã—() pH ã™ ppm # ãš PR??? ã› sr 㜠Sv ã Wb #ãž V/m Invalid on Mac #㟠A/m Invalid on Mac #ã¿ gal Invalid on Mac !endutf8 ############################################################################ # # Unit list aliases # # These provide a shorthand for conversions to unit lists. # ############################################################################ !unitlist hms hr;min;sec !unitlist time year;day;hr;min;sec !unitlist dms deg;arcmin;arcsec !unitlist ftin ft;in;1|8 in !unitlist inchfine in;1|8 in;1|16 in;1|32 in;1|64 in !unitlist usvol cup;3|4 cup;2|3 cup;1|2 cup;1|3 cup;1|4 cup;\ tbsp;tsp;1|2 tsp;1|4 tsp;1|8 tsp ############################################################################ # # The following units were in the unix units database but do not appear in # this file: # # wey used for cheese, salt and other goods. Measured mass or # waymass volume depending on what was measured and where the measuring # took place. A wey of cheese ranged from 200 to 324 pounds. # # sack No precise definition # # spindle The length depends on the type of yarn # # block Defined variously on different computer systems # # erlang A unit of telephone traffic defined variously. # Omitted because there are no other units for this # dimension. Is this true? What about CCS = 1/36 erlang? # Erlang is supposed to be dimensionless. One erlang means # a single channel occupied for one hour. # ############################################################################ units-2.16/getopt.c0000664000175000017500000005316212301221016013525 0ustar adrianadrian/* Getopt for GNU. NOTE: getopt is now part of the C library, so if you don't know what "Keep this file name-space clean" means, talk to roland@gnu.org before changing it! Copyright (C) 1987, 88, 89, 90, 91, 92, 93, 94 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02111 USA. */ /* This tells Alpha OSF/1 not to define a getopt prototype in . Ditto for AIX 3.2 and . */ #ifndef _NO_PROTO #define _NO_PROTO #endif #ifdef HAVE_CONFIG_H #include #endif #if !defined (__STDC__) && !defined (_MSC_VER) || !__STDC__ /* This is a separate conditional since some stdc systems reject `defined (const)'. */ #ifndef const #define const #endif #endif #include /* Comment out all this code if we are using the GNU C Library, and are not actually compiling the library itself. This code is part of the GNU C Library, but also included in many other GNU distributions. Compiling and linking in this code is a waste when using the GNU C library (especially if it is a shared library). Rather than having every GNU program understand `configure --with-gnu-libc' and omit the object files, it is simpler to just do this in the source for each such file. */ #if defined (_LIBC) || !defined (__GNU_LIBRARY__) /* This needs to come after some library #include to get __GNU_LIBRARY__ defined. */ #ifdef __GNU_LIBRARY__ /* Don't include stdlib.h for non-GNU C libraries because some of them contain conflicting prototypes for getopt. */ #include #endif /* GNU C library. */ /* This is for other GNU distributions with internationalized messages. The GNU C Library itself does not yet support such messages. */ #if HAVE_LIBINTL_H # include #else # define gettext(msgid) (msgid) #endif /* This version of `getopt' appears to the caller like standard Unix `getopt' but it behaves differently for the user, since it allows the user to intersperse the options with the other arguments. As `getopt' works, it permutes the elements of ARGV so that, when it is done, all the options precede everything else. Thus all application programs are extended to handle flexible argument order. Setting the environment variable POSIXLY_CORRECT disables permutation. Then the behavior is completely standard. GNU application programs can use a third alternative mode in which they can distinguish the relative order of options and other arguments. */ #include "getopt.h" /* For communication from `getopt' to the caller. When `getopt' finds an option that takes an argument, the argument value is returned here. Also, when `ordering' is RETURN_IN_ORDER, each non-option ARGV-element is returned here. */ char *optarg = NULL; /* Index in ARGV of the next element to be scanned. This is used for communication to and from the caller and for communication between successive calls to `getopt'. On entry to `getopt', zero means this is the first call; initialize. When `getopt' returns EOF, this is the index of the first of the non-option elements that the caller should itself scan. Otherwise, `optind' communicates from one call to the next how much of ARGV has been scanned so far. */ /* XXX 1003.2 says this must be 1 before any call. */ int optind = 0; /* The next char to be scanned in the option-element in which the last option character we returned was found. This allows us to pick up the scan where we left off. If this is zero, or a null string, it means resume the scan by advancing to the next ARGV-element. */ static char *nextchar; /* Callers store zero here to inhibit the error message for unrecognized options. */ int opterr = 1; /* Set to an option character which was unrecognized. This must be initialized on some systems to avoid linking in the system's own getopt implementation. */ int optopt = '?'; /* Describe how to deal with options that follow non-option ARGV-elements. If the caller did not specify anything, the default is REQUIRE_ORDER if the environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise. REQUIRE_ORDER means don't recognize them as options; stop option processing when the first non-option is seen. This is what Unix does. This mode of operation is selected by either setting the environment variable POSIXLY_CORRECT, or using `+' as the first character of the list of option characters. PERMUTE is the default. We permute the contents of ARGV as we scan, so that eventually all the non-options are at the end. This allows options to be given in any order, even with programs that were not written to expect this. RETURN_IN_ORDER is an option available to programs that were written to expect options and other ARGV-elements in any order and that care about the ordering of the two. We describe each non-option ARGV-element as if it were the argument of an option with character code 1. Using `-' as the first character of the list of option characters selects this mode of operation. The special argument `--' forces an end of option-scanning regardless of the value of `ordering'. In the case of RETURN_IN_ORDER, only `--' can cause `getopt' to return EOF with `optind' != ARGC. */ static enum { REQUIRE_ORDER, PERMUTE, RETURN_IN_ORDER } ordering; /* Value of POSIXLY_CORRECT environment variable. */ static char *posixly_correct; #ifdef __GNU_LIBRARY__ /* We want to avoid inclusion of string.h with non-GNU libraries because there are many ways it can cause trouble. On some systems, it contains special magic macros that don't work in GCC. */ #include #define my_index strchr #else /* Avoid depending on library functions or files whose names are inconsistent. */ char *getenv (); static char * my_index (str, chr) const char *str; int chr; { while (*str) { if (*str == chr) return (char *) str; str++; } return 0; } /* If using GCC, we can safely declare strlen this way. If not using GCC, it is ok not to declare it. */ #ifdef __GNUC__ /* Note that Motorola Delta 68k R3V7 comes with GCC but not stddef.h. That was relevant to code that was here before. */ #if !defined (__STDC__) || !__STDC__ /* gcc with -traditional declares the built-in strlen to return int, and has done so at least since version 2.4.5. -- rms. */ extern int strlen (const char *); #endif /* not __STDC__ */ #endif /* __GNUC__ */ #endif /* not __GNU_LIBRARY__ */ /* Handle permutation of arguments. */ /* Describe the part of ARGV that contains non-options that have been skipped. `first_nonopt' is the index in ARGV of the first of them; `last_nonopt' is the index after the last of them. */ static int first_nonopt; static int last_nonopt; /* Exchange two adjacent subsequences of ARGV. One subsequence is elements [first_nonopt,last_nonopt) which contains all the non-options that have been skipped so far. The other is elements [last_nonopt,optind), which contains all the options processed since those non-options were skipped. `first_nonopt' and `last_nonopt' are relocated so that they describe the new indices of the non-options in ARGV after they are moved. */ static void exchange (argv) char **argv; { int bottom = first_nonopt; int middle = last_nonopt; int top = optind; char *tem; /* Exchange the shorter segment with the far end of the longer segment. That puts the shorter segment into the right place. It leaves the longer segment in the right place overall, but it consists of two parts that need to be swapped next. */ while (top > middle && middle > bottom) { if (top - middle > middle - bottom) { /* Bottom segment is the short one. */ int len = middle - bottom; register int i; /* Swap it with the top part of the top segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[top - (middle - bottom) + i]; argv[top - (middle - bottom) + i] = tem; } /* Exclude the moved bottom segment from further swapping. */ top -= len; } else { /* Top segment is the short one. */ int len = top - middle; register int i; /* Swap it with the bottom part of the bottom segment. */ for (i = 0; i < len; i++) { tem = argv[bottom + i]; argv[bottom + i] = argv[middle + i]; argv[middle + i] = tem; } /* Exclude the moved top segment from further swapping. */ bottom += len; } } /* Update records for the slots the non-options now occupy. */ first_nonopt += (optind - last_nonopt); last_nonopt = optind; } /* Initialize the internal data when the first call is made. */ static const char * _getopt_initialize (optstring) const char *optstring; { /* Start processing options with ARGV-element 1 (since ARGV-element 0 is the program name); the sequence of previously skipped non-option ARGV-elements is empty. */ first_nonopt = last_nonopt = optind = 1; nextchar = NULL; posixly_correct = getenv ("POSIXLY_CORRECT"); /* Determine how to handle the ordering of options and nonoptions. */ if (optstring[0] == '-') { ordering = RETURN_IN_ORDER; ++optstring; } else if (optstring[0] == '+') { ordering = REQUIRE_ORDER; ++optstring; } else if (posixly_correct != NULL) ordering = REQUIRE_ORDER; else ordering = PERMUTE; return optstring; } /* Scan elements of ARGV (whose length is ARGC) for option characters given in OPTSTRING. If an element of ARGV starts with '-', and is not exactly "-" or "--", then it is an option element. The characters of this element (aside from the initial '-') are option characters. If `getopt' is called repeatedly, it returns successively each of the option characters from each of the option elements. If `getopt' finds another option character, it returns that character, updating `optind' and `nextchar' so that the next call to `getopt' can resume the scan with the following option character or ARGV-element. If there are no more option characters, `getopt' returns `EOF'. Then `optind' is the index in ARGV of the first ARGV-element that is not an option. (The ARGV-elements have been permuted so that those that are not options now come last.) OPTSTRING is a string containing the legitimate option characters. If an option character is seen that is not listed in OPTSTRING, return '?' after printing an error message. If you set `opterr' to zero, the error message is suppressed but we still return '?'. If a char in OPTSTRING is followed by a colon, that means it wants an arg, so the following text in the same ARGV-element, or the text of the following ARGV-element, is returned in `optarg'. Two colons mean an option that wants an optional arg; if there is text in the current ARGV-element, it is returned in `optarg', otherwise `optarg' is set to zero. If OPTSTRING starts with `-' or `+', it requests different methods of handling the non-option ARGV-elements. See the comments about RETURN_IN_ORDER and REQUIRE_ORDER, above. Long-named options begin with `--' instead of `-'. Their names may be abbreviated as long as the abbreviation is unique or is an exact match for some defined option. If they have an argument, it follows the option name in the same ARGV-element, separated from the option name by a `=', or else the in next ARGV-element. When `getopt' finds a long-named option, it returns 0 if that option's `flag' field is nonzero, the value of the option's `val' field if the `flag' field is zero. The elements of ARGV aren't really const, because we permute them. But we pretend they're const in the prototype to be compatible with other systems. LONGOPTS is a vector of `struct option' terminated by an element containing a name which is zero. LONGIND returns the index in LONGOPT of the long-named option found. It is only valid when a long-named option has been found by the most recent call. If LONG_ONLY is nonzero, '-' as well as '--' can introduce long-named options. */ int _getopt_internal (argc, argv, optstring, longopts, longind, long_only) int argc; char *const *argv; const char *optstring; const struct option *longopts; int *longind; int long_only; { optarg = NULL; if (optind == 0) optstring = _getopt_initialize (optstring); if (nextchar == NULL || *nextchar == '\0') { /* Advance to the next ARGV-element. */ if (ordering == PERMUTE) { /* If we have just processed some options following some non-options, exchange them so that the options come first. */ if (first_nonopt != last_nonopt && last_nonopt != optind) exchange ((char **) argv); else if (last_nonopt != optind) first_nonopt = optind; /* Skip any additional non-options and extend the range of non-options previously skipped. */ while (optind < argc && (argv[optind][0] != '-' || argv[optind][1] == '\0')) optind++; last_nonopt = optind; } /* The special ARGV-element `--' means premature end of options. Skip it like a null option, then exchange with previous non-options as if it were an option, then skip everything else like a non-option. */ if (optind != argc && !strcmp (argv[optind], "--")) { optind++; if (first_nonopt != last_nonopt && last_nonopt != optind) exchange ((char **) argv); else if (first_nonopt == last_nonopt) first_nonopt = optind; last_nonopt = argc; optind = argc; } /* If we have done all the ARGV-elements, stop the scan and back over any non-options that we skipped and permuted. */ if (optind == argc) { /* Set the next-arg-index to point at the non-options that we previously skipped, so the caller will digest them. */ if (first_nonopt != last_nonopt) optind = first_nonopt; return EOF; } /* If we have come to a non-option and did not permute it, either stop the scan or describe it to the caller and pass it by. */ if ((argv[optind][0] != '-' || argv[optind][1] == '\0')) { if (ordering == REQUIRE_ORDER) return EOF; optarg = argv[optind++]; return 1; } /* We have found another option-ARGV-element. Skip the initial punctuation. */ nextchar = (argv[optind] + 1 + (longopts != NULL && argv[optind][1] == '-')); } /* Decode the current option-ARGV-element. */ /* Check whether the ARGV-element is a long option. If long_only and the ARGV-element has the form "-f", where f is a valid short option, don't consider it an abbreviated form of a long option that starts with f. Otherwise there would be no way to give the -f short option. On the other hand, if there's a long option "fubar" and the ARGV-element is "-fu", do consider that an abbreviation of the long option, just like "--fu", and not "-f" with arg "u". This distinction seems to be the most useful approach. */ if (longopts != NULL && (argv[optind][1] == '-' || (long_only && (argv[optind][2] || !my_index (optstring, argv[optind][1]))))) { char *nameend; const struct option *p; const struct option *pfound = NULL; int exact = 0; int ambig = 0; int indfound; int option_index; for (nameend = nextchar; *nameend && *nameend != '='; nameend++) /* Do nothing. */ ; /* Test all long options for either exact match or abbreviated matches. */ for (p = longopts, option_index = 0; p->name; p++, option_index++) if (!strncmp (p->name, nextchar, nameend - nextchar)) { if (nameend - nextchar == strlen (p->name)) { /* Exact match found. */ pfound = p; indfound = option_index; exact = 1; break; } else if (pfound == NULL) { /* First nonexact match found. */ pfound = p; indfound = option_index; } else /* Second or later nonexact match found. */ ambig = 1; } if (ambig && !exact) { if (opterr) fprintf (stderr, gettext ("%s: option `%s' is ambiguous\n"), argv[0], argv[optind]); nextchar += strlen (nextchar); optind++; return '?'; } if (pfound != NULL) { option_index = indfound; optind++; if (*nameend) { /* Don't test has_arg with >, because some C compilers don't allow it to be used on enums. */ if (pfound->has_arg) optarg = nameend + 1; else { if (opterr) if (argv[optind - 1][1] == '-') /* --option */ fprintf (stderr, gettext ("%s: option `--%s' doesn't allow an argument\n"), argv[0], pfound->name); else /* +option or -option */ fprintf (stderr, gettext ("%s: option `%c%s' doesn't allow an argument\n"), argv[0], argv[optind - 1][0], pfound->name); nextchar += strlen (nextchar); return '?'; } } else if (pfound->has_arg == 1) { if (optind < argc) optarg = argv[optind++]; else { if (opterr) fprintf (stderr, gettext ("%s: option `%s' requires an argument\n"), argv[0], argv[optind - 1]); nextchar += strlen (nextchar); return optstring[0] == ':' ? ':' : '?'; } } nextchar += strlen (nextchar); if (longind != NULL) *longind = option_index; if (pfound->flag) { *(pfound->flag) = pfound->val; return 0; } return pfound->val; } /* Can't find it as a long option. If this is not getopt_long_only, or the option starts with '--' or is not a valid short option, then it's an error. Otherwise interpret it as a short option. */ if (!long_only || argv[optind][1] == '-' || my_index (optstring, *nextchar) == NULL) { if (opterr) { if (argv[optind][1] == '-') /* --option */ fprintf (stderr, gettext ("%s: unrecognized option `--%s'\n"), argv[0], nextchar); else /* +option or -option */ fprintf (stderr, gettext ("%s: unrecognized option `%c%s'\n"), argv[0], argv[optind][0], nextchar); } nextchar = (char *) ""; optind++; return '?'; } } /* Look at and handle the next short option-character. */ { char c = *nextchar++; char *temp = my_index (optstring, c); /* Increment `optind' when we start to process its last character. */ if (*nextchar == '\0') ++optind; if (temp == NULL || c == ':') { if (opterr) { if (posixly_correct) /* 1003.2 specifies the format of this message. */ fprintf (stderr, gettext ("%s: illegal option -- %c\n"), argv[0], c); else fprintf (stderr, gettext ("%s: invalid option -- %c\n"), argv[0], c); } optopt = c; return '?'; } if (temp[1] == ':') { if (temp[2] == ':') { /* This is an option that accepts an argument optionally. */ if (*nextchar != '\0') { optarg = nextchar; optind++; } else optarg = NULL; nextchar = NULL; } else { /* This is an option that requires an argument. */ if (*nextchar != '\0') { optarg = nextchar; /* If we end this ARGV-element by taking the rest as an arg, we must advance to the next element now. */ optind++; } else if (optind == argc) { if (opterr) { /* 1003.2 specifies the format of this message. */ fprintf (stderr, gettext ("%s: option requires an argument -- %c\n"), argv[0], c); } optopt = c; if (optstring[0] == ':') c = ':'; else c = '?'; } else /* We already incremented `optind' once; increment it again when taking next ARGV-elt as argument. */ optarg = argv[optind++]; nextchar = NULL; } } return c; } } int getopt (argc, argv, optstring) int argc; char *const *argv; const char *optstring; { return _getopt_internal (argc, argv, optstring, (const struct option *) 0, (int *) 0, 0); } #endif /* _LIBC or not __GNU_LIBRARY__. */ #ifdef TEST /* Compile with -DTEST to make an executable for use in testing the above definition of `getopt'. */ int main (argc, argv) int argc; char **argv; { int c; int digit_optind = 0; while (1) { int this_option_optind = optind ? optind : 1; c = getopt (argc, argv, "abc:d:0123456789"); if (c == EOF) break; switch (c) { case '0': case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': if (digit_optind != 0 && digit_optind != this_option_optind) printf ("digits occur in two different argv-elements.\n"); digit_optind = this_option_optind; printf ("option %c\n", c); break; case 'a': printf ("option a\n"); break; case 'b': printf ("option b\n"); break; case 'c': printf ("option c with value `%s'\n", optarg); break; case '?': break; default: printf ("?? getopt returned character code 0%o ??\n", c); } } if (optind < argc) { printf ("non-option ARGV-elements: "); while (optind < argc) printf ("%s ", argv[optind++]); printf ("\n"); } exit (0); } #endif /* TEST */ units-2.16/units.info0000664000175000017500000047257713176227174014143 0ustar adrianadrianThis is units.info, produced by makeinfo version 6.4.90 from units.texinfo. This manual is for GNU Units (version 2.16), which performs units conversions and units calculations. Copyright (C) 1996, 1997, 1999, 2000, 2001, 2002, 2004, 2005, 2007, 2011-2017 Free Software Foundation, Inc. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover Texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License". INFO-DIR-SECTION Science START-INFO-DIR-ENTRY * Units: (units). Units conversion and scientific calculation. END-INFO-DIR-ENTRY  File: units.info, Node: Top, Next: Overview, Up: (dir) Units Conversion **************** This manual describes the 'units' command for units conversion and how you can use it as a powerful scientific calculator that keeps track of units. This is Edition 2.14 of 'The Units Conversion Manual' for 'units' Version 2.16. * Menu: * Overview:: What does 'units' do? * Interactive Use:: How to use 'units'. * Command Line Use:: How to use 'units' non-interactively. * Unit Definitions:: What units are defined? * Unit Expressions:: Forming compound units. * Nonlinear Conversions:: Nonlinear unit conversions (e.g., temperature). * Unit Lists:: Conversion to sums of units (e.g., feet and inches). * Logging Calculations:: Logging conversions and calculations in a file. * Invoking Units:: Command line options. * Defining Your Own Units:: Adding your own unit definitions * Numeric Output Format:: How to change the output format * Localization:: How to define and use regional unit names. * Environment Vars:: Environment variables used by 'units'. * Data Files:: Descriptions and locations of units data files. * Unicode Support:: Support for Unicode (UTF-8). * Readline Support:: Unit name completion and editing. * Currency:: Updating currency exchange rates. * Database Syntax:: Summary of database command syntax. * GNU Free Documentation License:: License. * Index:: General index.  File: units.info, Node: Overview, Next: Interactive Use, Prev: Top, Up: Top 1 Overview of 'units' ********************* The 'units' program converts quantities expressed in various systems of measurement to their equivalents in other systems of measurement. Like many similar programs, it can handle multiplicative scale changes. It can also handle nonlinear conversions such as Fahrenheit to Celsius;(1) *note Temperature Conversions::. The program can also perform conversions from and to sums of units, such as converting between meters and feet plus inches. Basic operation is simple: you enter the units that you want to convert _from_ and the units that you want to convert _to_. You can use the program interactively with prompts, or you can use it from the command line. Beyond simple unit conversions, 'units' can be used as a general-purpose scientific calculator that keeps track of units in its calculations. You can form arbitrary complex mathematical expressions of dimensions including sums, products, quotients, powers, and even roots of dimensions. Thus you can ensure accuracy and dimensional consistency when working with long expressions that involve many different units that may combine in complex ways; for an illustration, *note Complicated Unit Expressions::. The units are defined in an external data file. You can use the extensive data file that comes with this program, or you can provide your own data file to suit your needs. You can also use your own data file to supplement the standard data file. You can change the default behavior of 'units' with various options given on the command line. *Note Invoking Units::, for a description of the available options. ---------- Footnotes ---------- (1) But Fahrenheit to Celsius is linear, you insist. Not so. A transformation T is linear if T(x+y)=T(x)+T(y) and this fails for T(x)=ax+b. This transformation is affine, but not linear.  File: units.info, Node: Interactive Use, Next: Command Line Use, Prev: Overview, Up: Top 2 Interacting with 'units' ************************** To invoke units for interactive use, type 'units' at your shell prompt. The program will print something like this: Currency exchange rates from www.timegenie.com on 2014-03-05 2860 units, 109 prefixes, 85 nonlinear units You have: At the 'You have:' prompt, type the quantity and units that you are converting _from_. For example, if you want to convert ten meters to feet, type '10 meters'. Next, 'units' will print 'You want:'. You should type the units you want to convert _to_. To convert to feet, you would type 'feet'. If the 'readline' library was compiled in then will complete unit names. *Note Readline Support::, for more information about 'readline'. To quit the program under Unix, press or . Under Windows, press or ; with the latter, you may also need to press . The result will be displayed in two ways. The first line of output, which is marked with a '*' to indicate multiplication, gives the result of the conversion you have asked for. The second line of output, which is marked with a '/' to indicate division, gives the inverse of the conversion factor. If you convert 10 meters to feet, 'units' will print * 32.808399 / 0.03048 which tells you that 10 meters equals about 32.8 feet. The second number gives the conversion in the opposite direction. In this case, it tells you that 1 foot is equal to about 0.03 dekameters since the dekameter is 10 meters. It also tells you that 1/32.8 is about 0.03. The 'units' program prints the inverse because sometimes it is a more convenient number. In the example above, for example, the inverse value is an exact conversion: a foot is exactly 0.03048 dekameters. But the number given the other direction is inexact. If you convert grains to pounds, you will see the following: You have: grains You want: pounds * 0.00014285714 / 7000 From the second line of the output you can immediately see that a grain is equal to a seven thousandth of a pound. This is not so obvious from the first line of the output. If you find the output format confusing, try using the '--verbose' option: You have: grain You want: aeginamina grain = 0.00010416667 aeginamina grain = (1 / 9600) aeginamina If you request a conversion between units that measure reciprocal dimensions, then 'units' will display the conversion results with an extra note indicating that reciprocal conversion has been done: You have: 6 ohms You want: siemens reciprocal conversion * 0.16666667 / 6 Reciprocal conversion can be suppressed by using the '--strict' option. As usual, use the '--verbose' option to get more comprehensible output: You have: tex You want: typp reciprocal conversion 1 / tex = 496.05465 typp 1 / tex = (1 / 0.0020159069) typp You have: 20 mph You want: sec/mile reciprocal conversion 1 / 20 mph = 180 sec/mile 1 / 20 mph = (1 / 0.0055555556) sec/mile If you enter incompatible unit types, the 'units' program will print a message indicating that the units are not conformable and it will display the reduced form for each unit: You have: ergs/hour You want: fathoms kg^2 / day conformability error 2.7777778e-11 kg m^2 / sec^3 2.1166667e-05 kg^2 m / sec If you only want to find the reduced form or definition of a unit, simply press at the 'You want:' prompt. Here is an example: You have: jansky You want: Definition: fluxunit = 1e-26 W/m^2 Hz = 1e-26 kg / s^2 The output from 'units' indicates that the jansky is defined to be equal to a fluxunit which in turn is defined to be a certain combination of watts, meters, and hertz. The fully reduced (and in this case somewhat more cryptic) form appears on the far right. Some named units are treated as dimensionless in some situations. These units include the radian and steradian. These units will be treated as equal to 1 in units conversions. Power is equal to torque times angular velocity. This conversion can only be performed if the radian is dimensionless. You have: (14 ft lbf) (12 radians/sec) You want: watts * 227.77742 / 0.0043902509 It is also possible to compute roots and other non-integer powers of dimensionless units; this allows computations such as the altitude of geosynchronous orbit: You have: cuberoot(G earthmass / (circle/siderealday)^2) - earthradius You want: miles * 22243.267 / 4.4957425e-05 Named dimensionless units are not treated as dimensionless in other contexts. They cannot be used as exponents so for example, 'meter^radian' is forbidden. If you want a list of options you can type '?' at the 'You want:' prompt. The program will display a list of named units that are conformable with the unit that you entered at the 'You have:' prompt above. Conformable unit _combinations_ will not appear on this list. Typing 'help' at either prompt displays a short help message. You can also type 'help' followed by a unit name. This will invoke a pager on the units data base at the point where that unit is defined. You can read the definition and comments that may give more details or historical information about the unit. (You can generally quit out of the page by pressing 'q'.) Typing 'search' TEXT will display a list of all of the units whose names contain TEXT as a substring along with their definitions. This may help in the case where you aren't sure of the right unit name.  File: units.info, Node: Command Line Use, Next: Unit Definitions, Prev: Interactive Use, Up: Top 3 Using 'units' Non-Interactively ********************************* The 'units' program can perform units conversions non-interactively from the command line. To do this, type the command, type the original unit expression, and type the new units you want. If a units expression contains non-alphanumeric characters, you may need to protect it from interpretation by the shell using single or double quote characters. If you type units "2 liters" quarts then 'units' will print * 2.1133764 / 0.47317647 and then exit. The output tells you that 2 liters is about 2.1 quarts, or alternatively that a quart is about 0.47 times 2 liters. If the conversion is successful, then 'units' will return success (zero) to the calling environment. If you enter non-conformable units then 'units' will print a message giving the reduced form of each unit and it will return failure (nonzero) to the calling environment. When you invoke 'units' with only one argument, it will print out the definition of the specified unit. It will return failure if the unit is not defined and success if the unit is defined.  File: units.info, Node: Unit Definitions, Next: Unit Expressions, Prev: Command Line Use, Up: Top 4 Unit Definitions ****************** The conversion information is read from a units data file that is called 'definitions.units' and is usually located in the '/usr/share/units' directory. If you invoke 'units' with the '-V' option, it will print the location of this file. The default file includes definitions for all familiar units, abbreviations and metric prefixes. It also includes many obscure or archaic units. Many common spelled-out numbers (e.g., 'seventeen') are recognized. Many constants of nature are defined, including these: pi ratio of circumference to diameter c speed of light e charge on an electron force acceleration of gravity mole Avogadro's number water pressure per unit height of water Hg pressure per unit height of mercury au astronomical unit k Boltzman's constant mu0 permeability of vacuum epsilon0 permittivity of vacuum G Gravitational constant mach speed of sound The standard data file includes atomic masses for all of the elements and numerous other constants. Also included are the densities of various ingredients used in baking so that '2 cups flour_sifted' can be converted to 'grams'. This is not an exhaustive list. Consult the units data file to see the complete list, or to see the definitions that are used. The 'pound' is a unit of mass. To get force, multiply by the force conversion unit 'force' or use the shorthand 'lbf'. (Note that 'g' is already taken as the standard abbreviation for the gram.) The unit 'ounce' is also a unit of mass. The fluid ounce is 'fluidounce' or 'floz'. When British capacity units differ from their US counterparts, such as the British Imperial gallon, the unit is defined both ways with 'br' and 'us' prefixes. Your locale settings will determine the value of the unprefixed unit. Currency is prefixed with its country name: 'belgiumfranc', 'britainpound'. When searching for a unit, if the specified string does not appear exactly as a unit name, then the 'units' program will try to remove a trailing 's', 'es'. Next units will replace a trailing 'ies' with 'y'. If that fails, 'units' will check for a prefix. The database includes all of the standard metric prefixes. Only one prefix is permitted per unit, so 'micromicrofarad' will fail. However, prefixes can appear alone with no unit following them, so 'micro*microfarad' will work, as will 'micro microfarad'. To find out which units and prefixes are available, read the standard units data file, which is extensively annotated. 4.1 English Customary Units =========================== English customary units differ in various ways in different regions. In Britain a complex system of volume measurements featured different gallons for different materials such as a wine gallon and ale gallon that different by twenty percent. This complexity was swept away in 1824 by a reform that created an entirely new gallon, the British Imperial gallon defined as the volume occupied by ten pounds of water. Meanwhile in the USA the gallon is derived from the 1707 Winchester wine gallon, which is 231 cubic inches. These gallons differ by about twenty percent. By default if 'units' runs in the 'en_GB' locale you will get the British volume measures. If it runs in the 'en_US' locale you will get the US volume measures. In other locales the default values are the US definitions. If you wish to force different definitions then set the environment variable 'UNITS_ENGLISH' to either 'US' or 'GB' to set the desired definitions independent of the locale. Before 1959, the value of a yard (and other units of measure defined in terms of it) differed slightly among English-speaking countries. In 1959, Australia, Canada, New Zealand, the United Kingdom, the United States, and South Africa adopted the Canadian value of 1 yard = 0.9144 m (exactly), which was approximately halfway between the values used by the UK and the US; it had the additional advantage of making 1 inch = 2.54 cm (exactly). This new standard was termed the "International Yard". Australia, Canada, and the UK then defined all customary lengths in terms of the International Yard (Australia did not define the furlong or rod); because many US land surveys were in terms of the pre-1959 units, the US continued to define customary surveyors' units (furlong, chain, rod, and link) in terms of the previous value for the foot, which was termed the "US survey foot". The US defined a "US survey mile" as 5280 US survey feet, and defined a "statute mile" as a US survey mile. The US values for these units differ from the international values by about 2 ppm. The 'units' program uses the international values for these units; the US values can be obtained by using either the 'US' or the 'survey' prefix. In either case, the simple familiar relationships among the units are maintained, e.g., 1 'furlong' = 660 'ft', and 1 'USfurlong' = 660 'USft', though the metric equivalents differ slightly between the two cases. The 'US' prefix or the 'survey' prefix can also be used to obtain the US survey mile and the value of the US yard prior to 1959, e.g., 'USmile' or 'surveymile' (but _not_ 'USsurveymile'). To get the US value of the statute mile, use either 'USstatutemile' or 'USmile'. Except for distances that extend over hundreds of miles (such as in the US State Plane Coordinate System), the differences in the miles are usually insignificant: You have: 100 surveymile - 100 mile You want: inch * 12.672025 / 0.078913984 The pre-1959 UK values for these units can be obtained with the prefix 'UK'. In the US, the acre is officially defined in terms of the US survey foot, but 'units' uses a definition based on the international foot. If you want the official US acre use 'USacre' and similarly use 'USacrefoot' for the official US version of that unit. The difference between these units is about 4 parts per million.  File: units.info, Node: Unit Expressions, Next: Nonlinear Conversions, Prev: Unit Definitions, Up: Top 5 Unit Expressions ****************** * Menu: * Operators:: The usual arithmetic operators, with a few extras * Sums and Differences of Units:: Adding and subtracting units * Numbers as Units:: A number is a dimensionless unit * Built-in Functions:: Trigonometric functions, logarithms, roots * Previous Result:: Inserting the result of the previous conversion * Complicated Unit Expressions:: A complicated example * Backwards Compatibility:: Alternate behavior for '*' and '-'  File: units.info, Node: Operators, Next: Sums and Differences of Units, Up: Unit Expressions 5.1 Operators ============= You can enter more complicated units by combining units with operations such as multiplication, division, powers, addition, subtraction, and parentheses for grouping. You can use the customary symbols for these operators when 'units' is invoked with its default options. Additionally, 'units' supports some extensions, including high priority multiplication using a space, and a high priority numerical division operator ('|') that can simplify some expressions. You multiply units using a space or an asterisk ('*'). The next example shows both forms: You have: arabicfoot * arabictradepound * force You want: ft lbf * 0.7296 / 1.370614 You can divide units using the slash ('/') or with 'per': You have: furlongs per fortnight You want: m/s * 0.00016630986 / 6012.8727 You can use parentheses for grouping: You have: (1/2) kg / (kg/meter) You want: league * 0.00010356166 / 9656.0833 White space surrounding operators is optional, so the previous example could have used '(1/2)kg/(kg/meter)'. As a consequence, however, hyphenated spelled-out numbers (e.g., 'forty-two') cannot be used; 'forty-two' is interpreted as '40 - 2'. Multiplication using a space has a higher precedence than division using a slash and is evaluated left to right; in effect, the first '/' character marks the beginning of the denominator of a unit expression. This makes it simple to enter a quotient with several terms in the denominator: 'J / mol K'. The '*' and '/' operators have the same precedence, and are evaluated left to right; if you multiply with '*', you must group the terms in the denominator with parentheses: 'J / (mol * K)'. The higher precedence of the space operator may not always be advantageous. For example, 'm/s s/day' is equivalent to 'm / s s day' and has dimensions of length per time cubed. Similarly, '1/2 meter' refers to a unit of reciprocal length equivalent to 0.5/meter, perhaps not what you would intend if you entered that expression. The get a half meter you would need to use parentheses: '(1/2) meter'. The '*' operator is convenient for multiplying a sequence of quotients. For example, 'm/s * s/day' is equivalent to 'm/day'. Similarly, you could write '1/2 * meter' to get half a meter. The 'units' program supports another option for numerical fractions: you can indicate division of _numbers_ with the vertical bar ('|'), so if you wanted half a meter you could write '1|2 meter'. You cannot use the vertical bar to indicate division of non-numerical units (e.g., 'm|s' results in an error message). Powers of units can be specified using the '^' character, as shown in the following example, or by simple concatenation of a unit and its exponent: 'cm3' is equivalent to 'cm^3'; if the exponent is more than one digit, the '^' is required. You can also use '**' as an exponent operator. You have: cm^3 You want: gallons * 0.00026417205 / 3785.4118 Concatenation only works with a single unit name: if you write '(m/s)2', 'units' will treat it as multiplication by 2. When a unit includes a prefix, exponent operators apply to the combination, so 'centimeter3' gives cubic centimeters. If you separate the prefix from the unit with any multiplication operator (e.g., 'centi meter^3'), the prefix is treated as a separate unit, so the exponent applies only to the unit without the prefix. The second example is equivalent to 'centi * (meter^3)', and gives a hundredth of a cubic meter, not a cubic centimeter. The 'units' program is limited internally to products of 99 units; accordingly, expressions like 'meter^100' or 'joule^34' (represented internally as 'kg^34 m^68 / s^68') will fail. The '|' operator has the highest precedence, so you can write the square root of two thirds as '2|3^1|2'. The '^' operator has the second highest precedence, and is evaluated right to left, as usual: You have: 5 * 2^3^2 You want: Definition: 2560 With a dimensionless base unit, any dimensionless exponent is meaningful (e.g., 'pi^exp(2.371)'). Even though angle is sometimes treated as dimensionless, exponents cannot have dimensions of angle: You have: 2^radian ^ Exponent not dimensionless If the base unit is not dimensionless, the exponent must be a rational number P/Q, and the dimension of the unit must be a power of Q, so 'gallon^2|3' works but 'acre^2|3' fails. An exponent using the slash ('/') operator (e.g., 'gallon^(2/3)') is also acceptable; the parentheses are needed because the precedence of '^' is higher than that of '/'. Since 'units' cannot represent dimensions with exponents greater than 99, a fully reduced exponent must have Q < 100. When raising a non-dimensionless unit to a power, 'units' attempts to convert a decimal exponent to a rational number with Q < 100. If this is not possible 'units' displays an error message: You have: ft^1.234 Base unit not dimensionless; rational exponent required A decimal exponent must match its rational representation to machine precision, so 'acre^1.5' works but 'gallon^0.666' does not.  File: units.info, Node: Sums and Differences of Units, Next: Numbers as Units, Prev: Operators, Up: Unit Expressions 5.2 Sums and Differences of Units ================================= You may sometimes want to add values of different units that are outside the SI. You may also wish to use 'units' as a calculator that keeps track of units. Sums of conformable units are written with the '+' character, and differences with the '-' character. You have: 2 hours + 23 minutes + 32 seconds You want: seconds * 8612 / 0.00011611705 You have: 12 ft + 3 in You want: cm * 373.38 / 0.0026782366 You have: 2 btu + 450 ft lbf You want: btu * 2.5782804 / 0.38785542 The expressions that are added or subtracted must reduce to identical expressions in primitive units, or an error message will be displayed: You have: 12 printerspoint - 4 heredium ^ Illegal sum of non-conformable units As usual, the precedence for '+' and '-' is lower than that of the other operators. A fractional quantity such as 2 1/2 cups can be given as '(2+1|2) cups'; the parentheses are necessary because multiplication has higher precedence than addition. If you omit the parentheses, 'units' attempts to add '2' and '1|2 cups', and you get an error message: You have: 2+1|2 cups ^ Illegal sum or difference of non-conformable units The expression could also be correctly written as '(2+1/2) cups'. If you write '2 1|2 cups' the space is interpreted as _multiplication_ so the result is the same as '1 cup'. The '+' and '-' characters sometimes appears in exponents like '3.43e+8'. This leads to an ambiguity in an expression like '3e+2 yC'. The unit 'e' is a small unit of charge, so this can be regarded as equivalent to '(3e+2) yC' or '(3 e)+(2 yC)'. This ambiguity is resolved by always interpreting '+' and '-' as part of an exponent if possible.  File: units.info, Node: Numbers as Units, Next: Built-in Functions, Prev: Sums and Differences of Units, Up: Unit Expressions 5.3 Numbers as Units ==================== For 'units', numbers are just another kind of unit. They can appear as many times as you like and in any order in a unit expression. For example, to find the volume of a box that is 2 ft by 3 ft by 12 ft in steres, you could do the following: You have: 2 ft 3 ft 12 ft You want: stere * 2.038813 / 0.49048148 You have: $ 5 / yard You want: cents / inch * 13.888889 / 0.072 And the second example shows how the dollar sign in the units conversion can precede the five. Be careful: 'units' will interpret '$5' with no space as equivalent to 'dollar^5'.  File: units.info, Node: Built-in Functions, Next: Previous Result, Prev: Numbers as Units, Up: Unit Expressions 5.4 Built-in Functions ====================== Several built-in functions are provided: 'sin', 'cos', 'tan', 'ln', 'log', 'log2', 'exp', 'acos', 'atan' and 'asin'. The 'sin', 'cos', and 'tan' functions require either a dimensionless argument or an argument with dimensions of angle. You have: sin(30 degrees) You want: Definition: 0.5 You have: sin(pi/2) You want: Definition: 1 You have: sin(3 kg) ^ Unit not dimensionless The other functions on the list require dimensionless arguments. The inverse trigonometric functions return arguments with dimensions of angle. If you wish to take roots of units, you may use the 'sqrt' or 'cuberoot' functions. These functions require that the argument have the appropriate root. You can obtain higher roots by using fractional exponents: You have: sqrt(acre) You want: feet * 208.71074 / 0.0047913202 You have: (400 W/m^2 / stefanboltzmann)^(1/4) You have: Definition: 289.80882 K You have: cuberoot(hectare) ^ Unit not a root  File: units.info, Node: Previous Result, Next: Complicated Unit Expressions, Prev: Built-in Functions, Up: Unit Expressions 5.5 Previous Result =================== You can insert the result of the previous conversion using the underscore ('_'). It is useful when you want to convert the same input to several different units, for example You have: 2.3 tonrefrigeration You want: btu/hr * 27600 / 3.6231884e-005 You have: _ You want: kW * 8.0887615 / 0.12362832 Suppose you want to do some deep frying that requires an oil depth of 2 inches. You have 1/2 gallon of oil, and want to know the largest-diameter pan that will maintain the required depth. The nonlinear unit 'circlearea' gives the _radius_ of the circle (*note Other Nonlinear Units::, for a more detailed description) in SI units; you want the _diameter_ in _inches_: You have: 1|2 gallon / 2 in You want: circlearea 0.10890173 m You have: 2 _ You want: in * 8.5749393 / 0.1166189 In most cases, surrounding white space is optional, so the previous example could have used '2_'. If '_' follows a non-numerical unit symbol, however, the space is required: You have: m_ ^ Parse error When '_' is followed by a digit, the operation is multiplication rather than exponentiation, so that '_2', is equivalent to '_ * 2' rather than '_^2'. You can use the '_' symbol any number of times; for example, You have: m You want: Definition: 1 m You have: _ _ You want: Definition: 1 m^2 Using '_' before a conversion has been performed (e.g., immediately after invocation) generates an error: You have: _ ^ No previous result; '_' not set Accordingly, '_' serves no purpose when 'units' is invoked non-interactively. If 'units' is invoked with the '--verbose' option (*note Invoking Units::), the value of '_' is not expanded: You have: mile You want: ft mile = 5280 ft mile = (1 / 0.00018939394) ft You have: _ You want: m _ = 1609.344 m _ = (1 / 0.00062137119) m You can give '_' at the 'You want:' prompt, but it usually is not very useful.  File: units.info, Node: Complicated Unit Expressions, Next: Backwards Compatibility, Prev: Previous Result, Up: Unit Expressions 5.6 Complicated Unit Expressions ================================ The 'units' program is especially helpful in ensuring accuracy and dimensional consistency when converting lengthy unit expressions. For example, one form of the Darcy-Weisbach fluid-flow equation is Delta P = (8/pi^2) rho f L (Q^2 / d^5) where \Delta P is the pressure drop, \rho is the mass density, f is the (dimensionless) friction factor, L is the length of the pipe, Q is the volumetric flow rate, and d is the pipe diameter. It might be desired to have the equation in the form Delta P = A1 rho f L (Q^2 / d^5) that accepted the user's normal units; for typical units used in the US, the required conversion could be something like You have: (8/pi^2)(lbm/ft^3)ft(ft^3/s)^2(1/in^5) You want: psi * 43.533969 / 0.022970568 The parentheses allow individual terms in the expression to be entered naturally, as they might be read from the formula. Alternatively, the multiplication could be done with the '*' rather than a space; then parentheses are needed only around 'ft^3/s' because of its exponent: You have: 8/pi^2 * lbm/ft^3 * ft * (ft^3/s)^2 /in^5 You want: psi * 43.533969 / 0.022970568 Without parentheses, and using spaces for multiplication, the previous conversion would need to be entered as You have: 8 lb ft ft^3 ft^3 / pi^2 ft^3 s^2 in^5 You want: psi * 43.533969 / 0.022970568  File: units.info, Node: Backwards Compatibility, Prev: Complicated Unit Expressions, Up: Unit Expressions 5.7 Backwards Compatibility: '*' and '-' ======================================== The original 'units' assigned multiplication a higher precedence than division using the slash. This differs from the usual precedence rules, which give multiplication and division equal precedence, and can be confusing for people who think of units as a calculator. The star operator ('*') included in this 'units' program has, by default, the same precedence as division, and hence follows the usual precedence rules. For backwards compatibility you can invoke 'units' with the '--oldstar' option. Then '*' has a higher precedence than division, and the same precedence as multiplication using the space. Historically, the hyphen ('-') has been used in technical publications to indicate products of units, and the original 'units' program treated it as a multiplication operator. Because 'units' provides several other ways to obtain unit products, and because '-' is a subtraction operator in general algebraic expressions, 'units' treats the binary '-' as a subtraction operator by default. For backwards compatibility use the '--product' option, which causes 'units' to treat the binary '-' operator as a product operator. When '-' is a multiplication operator it has the same precedence as multiplication with a space, giving it a higher precedence than division. When '-' is used as a unary operator it negates its operand. Regardless of the 'units' options, if '-' appears after '(' or after '+' then it will act as a negation operator. So you can always compute 20 degrees minus 12 minutes by entering '20 degrees + -12 arcmin'. You must use this construction when you define new units because you cannot know what options will be in force when your definition is processed.  File: units.info, Node: Nonlinear Conversions, Next: Unit Lists, Prev: Unit Expressions, Up: Top 6 Nonlinear Unit Conversions **************************** Nonlinear units are represented using functional notation. They make possible nonlinear unit conversions such as temperature. * Menu: * Temperature Conversions:: Conversion between temperature scales * Other Nonlinear Units:: Ring size, wire gauge, abrasive grit size  File: units.info, Node: Temperature Conversions, Next: Other Nonlinear Units, Up: Nonlinear Conversions 6.1 Temperature Conversions =========================== Conversions between temperatures are different from linear conversions between temperature _increments_--see the example below. The absolute temperature conversions are handled by units starting with 'temp', and you must use functional notation. The temperature-increment conversions are done using units starting with 'deg' and they do not require functional notation. You have: tempF(45) You want: tempC 7.2222222 You have: 45 degF You want: degC * 25 / 0.04 Think of 'tempF(X)' not as a function but as a notation that indicates that X should have units of 'tempF' attached to it. *Note Defining Nonlinear Units::. The first conversion shows that if it's 45 degrees Fahrenheit outside, it's 7.2 degrees Celsius. The second conversion indicates that a change of 45 degrees Fahrenheit corresponds to a change of 25 degrees Celsius. The conversion from 'tempF(X)' is to absolute temperature, so that You have: tempF(45) You want: degR * 504.67 / 0.0019814929 gives the same result as You have: tempF(45) You want: tempR * 504.67 / 0.0019814929 But if you convert 'tempF(X)' to 'degC', the output is probably not what you expect: You have: tempF(45) You want: degC * 280.37222 / 0.0035666871 The result is the temperature in K, because 'degC' is defined as 'K', the Kelvin. For consistent results, use the 'tempX' units when converting to a temperature rather than converting a temperature increment. The 'tempC()' and 'tempF()' definitions are limited to positive absolute temperatures, and giving a value that would result in a negative absolute temperature generates an error message: You have: tempC(-275) ^ Argument of function outside domain ^  File: units.info, Node: Other Nonlinear Units, Prev: Temperature Conversions, Up: Nonlinear Conversions 6.2 Other Nonlinear Units ========================= Some other examples of nonlinear units are numerous different ring sizes and wire gauges, the grit sizes used for abrasives, the decibel scale, shoe size, scales for the density of sugar (e.g., baume). The standard data file also supplies units for computing the area of a circle and the volume of a sphere. See the standard units data file for more details. Wire gauges with multiple zeroes are signified using negative numbers where two zeroes is '-1'. Alternatively, you can use the synonyms 'g00', 'g000', and so on that are defined in the standard units data file. You have: wiregauge(11) You want: inches * 0.090742002 / 11.020255 You have: brwiregauge(g00) You want: inches * 0.348 / 2.8735632 You have: 1 mm You want: wiregauge 18.201919 You have: grit_P(600) You want: grit_ansicoated 342.76923 The last example shows the conversion from P graded sand paper, which is the European standard and may be marked "P600" on the back, to the USA standard. You can compute the area of a circle using the nonlinear unit, 'circlearea'. You can also do this using the circularinch or circleinch. The next example shows two ways to compute the area of a circle with a five inch radius and one way to compute the volume of a sphere with a radius of one meter. You have: circlearea(5 in) You want: in2 * 78.539816 / 0.012732395 You have: 10^2 circleinch You want: in2 * 78.539816 / 0.012732395 You have: spherevol(meter) You want: ft3 * 147.92573 / 0.0067601492 The inverse of a nonlinear conversion is indicated by prefixing a tilde ('~') to the nonlinear unit name: You have: ~wiregauge(0.090742002 inches) You want: Definition: 11 You can give a nonlinear unit definition without an argument or parentheses, and press at the 'You want:' prompt to get the definition of a nonlinear unit; if the definition is not valid for all real numbers, the range of validity is also given. If the definition requires specific units this information is also displayed: You have: tempC Definition: tempC(x) = x K + stdtemp defined for x >= -273.15 You have: ~tempC Definition: ~tempC(tempC) = (tempC +(-stdtemp))/K defined for tempC >= 0 K You have: circlearea Definition: circlearea(r) = pi r^2 r has units m To see the definition of the inverse use the '~' notation. In this case the parameter in the functional definition will usually be the name of the unit. Note that the inverse for 'tempC' shows that it requires units of 'K' in the specification of the allowed range of values. Nonlinear unit conversions are described in more detail in *note Defining Nonlinear Units::.  File: units.info, Node: Unit Lists, Next: Logging Calculations, Prev: Nonlinear Conversions, Up: Top 7 Unit Lists: Conversion to Sums of Units ***************************************** Outside of the SI, it is sometimes desirable to convert a single unit to a sum of units--for example, feet to feet plus inches. The conversion _from_ sums of units was described in *note Sums and Differences of Units::, and is a simple matter of adding the units with the '+' sign: You have: 12 ft + 3 in + 3|8 in You want: ft * 12.28125 / 0.081424936 Although you can similarly write a sum of units to convert _to_, the result will not be the conversion to the units in the sum, but rather the conversion to the particular sum that you have entered: You have: 12.28125 ft You want: ft + in + 1|8 in * 11.228571 / 0.089058524 The unit expression given at the 'You want:' prompt is equivalent to asking for conversion to multiples of '1 ft + 1 in + 1|8 in', which is 1.09375 ft, so the conversion in the previous example is equivalent to You have: 12.28125 ft You want: 1.09375 ft * 11.228571 / 0.089058524 In converting to a sum of units like miles, feet and inches, you typically want the largest integral value for the first unit, followed by the largest integral value for the next, and the remainder converted to the last unit. You can do this conversion easily with 'units' using a special syntax for lists of units. You must list the desired units in order from largest to smallest, separated by the semicolon (';') character: You have: 12.28125 ft You want: ft;in;1|8 in 12 ft + 3 in + 3|8 in The conversion always gives integer coefficients on the units in the list, except possibly the last unit when the conversion is not exact: You have: 12.28126 ft You want: ft;in;1|8 in 12 ft + 3 in + 3.00096 * 1|8 in The order in which you list the units is important: You have: 3 kg You want: oz;lb 105 oz + 0.051367866 lb You have: 3 kg You want: lb;oz 6 lb + 9.8218858 oz Listing ounces before pounds produces a technically correct result, but not a very useful one. You must list the units in descending order of size in order to get the most useful result. Ending a unit list with the separator ';' has the same effect as repeating the last unit on the list, so 'ft;in;1|8 in;' is equivalent to 'ft;in;1|8 in;1|8 in'. With the example above, this gives You have: 12.28126 ft You want: ft;in;1|8 in; 12 ft + 3 in + 3|8 in + 0.00096 * 1|8 in in effect separating the integer and fractional parts of the coefficient for the last unit. If you instead prefer to round the last coefficient to an integer you can do this with the '--round' ('-r') option. With the previous example, the result is You have: 12.28126 ft You want: ft;in;1|8 in 12 ft + 3 in + 3|8 in (rounded down to nearest 1|8 in) When you use the '-r' option, repeating the last unit on the list has no effect (e.g., 'ft;in;1|8 in;1|8 in' is equivalent to 'ft;in;1|8 in'), and hence neither does ending a list with a ';'. With a single unit and the '-r' option, a terminal ';' _does_ have an effect: it causes 'units' to treat the single unit as a list and produce a rounded value for the single unit. Without the extra ';', the '-r' option has no effect on single unit conversions. This example shows the output using the '-r' option: You have: 12.28126 ft You want: in * 147.37512 / 0.0067854058 You have: 12.28126 ft You want: in; 147 in (rounded down to nearest in) Each unit that appears in the list must be conformable with the first unit on the list, and of course the listed units must also be conformable with the unit that you enter at the 'You have:' prompt. You have: meter You want: ft;kg ^ conformability error ft = 0.3048 m kg = 1 kg You have: meter You want: lb;oz conformability error 1 m 0.45359237 kg In the first case, 'units' reports the disagreement between units appearing on the list. In the second case, 'units' reports disagreement between the unit you entered and the desired conversion. This conformability error is based on the first unit on the unit list. Other common candidates for conversion to sums of units are angles and time: You have: 23.437754 deg You want; deg;arcmin;arcsec 23 deg + 26 arcmin + 15.9144 arcsec You have: 7.2319 hr You want: hr;min;sec 7 hr + 13 min + 54.84 sec In North America, recipes for cooking typically measure ingredients by volume, and use units that are not always convenient multiples of each other. Suppose that you have a recipe for 6 and you wish to make a portion for 1. If the recipe calls for 2 1/2 cups of an ingredient, you might wish to know the measurements in terms of measuring devices you have available, you could use 'units' and enter You have: (2+1|2) cup / 6 You want: cup;1|2 cup;1|3 cup;1|4 cup;tbsp;tsp;1|2 tsp;1|4 tsp 1|3 cup + 1 tbsp + 1 tsp By default, if a unit in a list begins with fraction of the form 1|X and its multiplier is an integer, the fraction is given as the product of the multiplier and the numerator; for example, You have: 12.28125 ft You want: ft;in;1|8 in; 12 ft + 3 in + 3|8 in In many cases, such as the example above, this is what is wanted, but sometimes it is not. For example, a cooking recipe for 6 might call for 5 1/4 cup of an ingredient, but you want a portion for 2, and your 1-cup measure is not available; you might try You have: (5+1|4) cup / 3 You want: 1|2 cup;1|3 cup;1|4 cup 3|2 cup + 1|4 cup This result might be fine for a baker who has a 1 1/2-cup measure (and recognizes the equivalence), but it may not be as useful to someone with more limited set of measures, who does want to do additional calculations, and only wants to know "How many 1/2-cup measures to I need to add?" After all, that's what was actually asked. With the '--show-factor' option, the factor will not be combined with a unity numerator, so that you get You have: (5+1|4) cup / 3 You want: 1|2 cup;1|3 cup;1|4 cup 3 * 1|2 cup + 1|4 cup A user-specified fractional unit with a numerator other than 1 is never overridden, however--if a unit list specifies '3|4 cup;1|2 cup', a result equivalent to 1 1/2 cups will always be shown as '2 * 3|4 cup' whether or not the '--show-factor' option is given. Some applications for unit lists may be less obvious. Suppose that you have a postal scale and wish to ensure that it's accurate at 1 oz, but have only metric calibration weights. You might try You have: 1 oz You want: 100 g;50 g; 20 g;10 g;5 g;2 g;1 g; 20 g + 5 g + 2 g + 1 g + 0.34952312 * 1 g You might then place one each of the 20 g, 5 g, 2 g, and 1 g weights on the scale and hope that it indicates close to You have: 20 g + 5 g + 2 g + 1 g You want: oz; 0.98767093 oz Appending ';' to 'oz' forces a one-line display that includes the unit; here the integer part of the result is zero, so it is not displayed. A unit list such as cup;1|2 cup;1|3 cup;1|4 cup;tbsp;tsp;1|2 tsp;1|4 tsp can be tedious to enter. The 'units' program provides shorthand names for some common combinations: hms hours, minutes, seconds dms angle: degrees, minutes, seconds time years, days, hours, minutes and seconds usvol US cooking volume: cups and smaller Using these shorthands, or "unit list aliases", you can do the following conversions: You have: anomalisticyear You want: time 1 year + 25 min + 3.4653216 sec You have: 1|6 cup You want: usvol 2 tbsp + 2 tsp You cannot combine a unit list alias with other units: it must appear alone at the 'You want:' prompt. You can display the definition of a unit list alias by entering it at the 'You have:' prompt: You have: dms Definition: unit list, deg;arcmin;arcsec When you specify compact output with '--compact', '--terse' or '-t' and perform conversion to a unit list, 'units' lists the conversion factors for each unit in the list, separated by semicolons. You have: year You want: day;min;sec 365;348;45.974678 Unlike the case of regular output, zeros _are_ included in this output list: You have: liter You want: cup;1|2 cup;1|4 cup;tbsp 4;0;0;3.6280454  File: units.info, Node: Logging Calculations, Next: Invoking Units, Prev: Unit Lists, Up: Top 8 Logging Calculations ********************** The '--log' option allows you to save the results of calculations in a file; this can be useful if you need a permanent record of your work. For example, the fluid-flow conversion in *note Complicated Unit Expressions::, is lengthy, and if you were to use it in designing a piping system, you might want a record of it for the project file. If the interactive session # Conversion factor A1 for pressure drop # dP = A1 rho f L Q^2/d^5 You have: (8/pi^2) (lbm/ft^3)ft(ft^3/s)^2(1/in^5) # Input units You want: psi * 43.533969 / 0.022970568 were logged, the log file would contain ### Log started Fri Oct 02 15:55:35 2015 # Conversion factor A1 for pressure drop # dP = A1 rho f L Q^2/d^5 From: (8/pi^2) (lbm/ft^3)ft(ft^3/s)^2(1/in^5) # Input units To: psi * 43.533969 / 0.022970568 The time is written to the log file when the file is opened. The use of comments can help clarify the meaning of calculations for the log. The log includes conformability errors between the units at the 'You have:' and 'You want:' prompts, but not other errors, including lack of conformability of items in sums or differences or among items in a unit list. For example, a conversion between zenith angle and elevation angle could involve You have: 90 deg - (5 deg + 22 min + 9 sec) ^ Illegal sum or difference of non-conformable units You have: 90 deg - (5 deg + 22 arcmin + 9 arcsec) You want: dms 84 deg + 37 arcmin + 51 arcsec You have: _ You want: deg * 84.630833 / 0.011816024 You have: The log file would contain From: 90 deg - (5 deg + 22 arcmin + 9 arcsec) To: deg;arcmin;arcsec 84 deg + 37 arcmin + 51 arcsec From: _ To: deg * 84.630833 / 0.011816024 The initial entry error (forgetting that minutes have dimension of time, and that arcminutes must be used for dimensions of angle) does not appear in the output. When converting to a unit list alias, 'units' expands the alias in the log file. The 'From:' and 'To:' tags are written to the log file even if the '--quiet' option is given. If the log file exists when 'units' is invoked, the new results are appended to the log file. The time is written to the log file each time the file is opened. The '--log' option is ignored when 'units' is used non-interactively.  File: units.info, Node: Invoking Units, Next: Defining Your Own Units, Prev: Logging Calculations, Up: Top 9 Invoking 'units' ****************** You invoke 'units' like this: units [OPTIONS] [FROM-UNIT [TO-UNIT]] If the FROM-UNIT and TO-UNIT are omitted, the program will use interactive prompts to determine which conversions to perform. *Note Interactive Use::. If both FROM-UNIT and TO-UNIT are given, 'units' will print the result of that single conversion and then exit. If only FROM-UNIT appears on the command line, 'units' will display the definition of that unit and exit. Units specified on the command line may need to be quoted to protect them from shell interpretation and to group them into two arguments. *Note Command Line Use::. The default behavior of 'units' can be changed by various options given on the command line. In most cases, the options may be given in either short form (a single '-' followed by a single character) or long form ('--' followed by a word or hyphen-separated words). Short-form options are cryptic but require less typing; long-form options require more typing but are more explanatory and may be more mnemonic. With long-form options you need only enter sufficient characters to uniquely identify the option to the program. For example, '--out %f' works, but '--o %f' fails because 'units' has other long options beginning with 'o'. However, '--q' works because '--quiet' is the only long option beginning with 'q'. Some options require arguments to specify a value (e.g., '-d 12' or '--digits 12'). Short-form options that do not take arguments may be concatenated (e.g., '-erS' is equivalent to '-e -r -S'); the last option in such a list may be one that takes an argument (e.g., '-ed 12'). With short-form options, the space between an option and its argument is optional (e.g., '-d12' is equivalent to '-d 12'). Long-form options may not be concatenated, and the space between a long-form option and its argument is required. Short-form and long-form options may be intermixed on the command line. Options may be given in any order, but when incompatible options (e.g., '--output-format' and '--exponential') are given in combination, behavior is controlled by the last option given. For example, '-o%.12f -e' gives exponential format with the default eight significant digits). The following options are available: '-c' '--check' Check that all units and prefixes defined in the units data file reduce to primitive units. Print a list of all units that cannot be reduced. Also display some other diagnostics about suspicious definitions in the units data file. Only definitions active in the current locale are checked. You should always run 'units' with this option after modifying a units data file. '--check-verbose' '--verbose-check' Like the '--check' option, this option prints a list of units that cannot be reduced. But to help find unit definitions that cause endless loops, it lists the units as they are checked. If 'units' hangs, then the last unit to be printed has a bad definition. Only definitions active in the current locale are checked. '-d NDIGITS' '--digits NDIGITS' Set the number of significant digits in the output to the value specified (which must be greater than zero). For example, '-d 12' sets the number of significant digits to 12. With exponential output 'units' displays one digit to the left of the decimal point(1) and eleven digits to the right of the decimal point. On most systems, the maximum number of internally meaningful digits is 15; if you specify a greater number than your system's maximum, 'units' will print a warning and set the number to the largest meaningful value. To directly set the maximum value, give an argument of 'max' (e.g., '-d max'). Be aware, of course, that "significant" here refers only to the _display_ of numbers; if results depend on physical constants not known to this precision, the physically meaningful precision may be less than that shown. The '--digits' option conflicts with the '--output-format' option. '-e' '--exponential' Set the numeric output format to exponential (i.e., scientific notation), like that used in the Unix 'units' program. The default precision is eight significant digits (seven digits to the right of the decimal point); this can be changed with the '--digits' option. The '--exponential' option conflicts with the '--output-format' option. '-o FORMAT' '--output-format FORMAT' This option affords complete control over the numeric output format using the specified FORMAT. The format is a single floating point numeric format for the 'printf()' function in the C programming language. All compilers support the format types 'g' and 'G' to specify significant digits, 'e' and 'E' for scientific notation, and 'f' for fixed-point decimal. The ISO C99 standard introduced the 'F' type for fixed-point decimal and the 'a' and 'A' types for hexadecimal floating point; these types are allowed with compilers that support them. The default format is '%.8g'; for greater precision, you could specify '-o %.15g'. *Note Numeric Output Format::, and the documentation for 'printf()' for more detailed descriptions of the format specification. The '--output-format' option affords the greatest control of the output appearance, but requires at least rudimentary knowledge of the 'printf()' format syntax. If you don't want to bother with the 'printf()' syntax, you can specify greater precision more simply with the '--digits' option or select exponential format with '--exponential'. The '--output-format' option is incompatible with the '--exponential' and '--digits' options. '-f FILENAME' '--file FILENAME' Instruct 'units' to load the units file FILENAME. You can specify up to 25 units files on the command line. When you use this option, 'units' will load _only_ the files you list on the command line; it will not load the standard file or your personal units file unless you explicitly list them. If FILENAME is the empty string ('-f ""'), the default units file (or that specified by 'UNITSFILE') will be loaded in addition to any others specified with '-f'. '-L LOGFILE' '--log LOGFILE' Save the results of calculations in the file LOGFILE; this can be useful if it is important to have a record of unit conversions or other calculations that are to be used extensively or in a critical activity such as a program or design project. If LOGFILE exits, the new results are appended to the file. This option is ignored when 'units' is used non-interactively. *Note Logging Calculations::, for a more detailed description and some examples. '-H FILENAME' '--history FILENAME' Instruct 'units' to save history to FILENAME, so that a record of your commands is available for retrieval across different 'units' invocations. To prevent the history from being saved set FILENAME to the empty string ('-H ""'). This option has no effect if readline is not available. '-h' '--help' Print out a summary of the options for 'units'. '-m' '--minus' Causes '-' to be interpreted as a subtraction operator. This is the default behavior. '-p' '--product' Causes '-' to be interpreted as a multiplication operator when it has two operands. It will act as a negation operator when it has only one operand: '(-3)'. By default '-' is treated as a subtraction operator. '--oldstar' Causes '*' to have the old-style precedence, higher than the precedence of division so that '1/2*3' will equal '1/6'. '--newstar' Forces '*' to have the new (default) precedence that follows the usual rules of algebra: the precedence of '*' is the same as the precedence of '/', so that '1/2*3' will equal '3/2'. '--compact' Give compact output featuring only the conversion factor. This turns off the '--verbose' option. '-q' '--quiet' '--silent' Suppress prompting of the user for units and the display of statistics about the number of units loaded. '-n' '--nolists' Disable conversion to unit lists. '-r' '--round' When converting to a combination of units given by a unit list, round the value of the last unit in the list to the nearest integer. '-S' '--show-factor' When converting to a combination of units specified in a list, always show a non-unity factor before a unit that begins with a fraction with a unity denominator. By default, if the unit in a list begins with fraction of the form 1|X and its multiplier is an integer other than 1, the fraction is given as the product of the multiplier and the numerator (e.g., '3|8 in' rather than '3 * 1|8 in'). In some cases, this is not what is wanted; for example, the results for a cooking recipe might show '3 * 1|2 cup' as '3|2 cup'. With the '--show-factor' option, a result equivalent to 1.5 cups will display as '3 * 1|2 cup' rather than '3|2 cup'. A user-specified fractional unit with a numerator other than 1 is never overridden, however--if a unit list specifies '3|4 cup;1|2 cup', a result equivalent to 1 1/2 cups will always be shown as '2 * 3|4 cup' whether or not the '--show-factor' option is given. '-s' '--strict' Suppress conversion of units to their reciprocal units. For example, 'units' will normally convert hertz to seconds because these units are reciprocals of each other. The strict option requires that units be strictly conformable to perform a conversion, and will give an error if you attempt to convert hertz to seconds. '-1' '--one-line' Give only one line of output (the forward conversion). Do not print the reverse conversion. If a reciprocal conversion is performed then 'units' will still print the "reciprocal conversion" line. '-t' '--terse' Give terse output when converting units. This option can be used when calling 'units' from another program so that the output is easy to parse. This option has the combined effect of these options: '--strict' '--quiet' '--one-line' '--compact'. When combined with '--version' it produces a display showing only the program name and version number. '-v' '--verbose' Give slightly more verbose output when converting units. When combined with the '-c' option this gives the same effect as '--check-verbose'. When combined with '--version' produces a more detailed output, equivalent to the '--info' option. '-V' '--version' Print the program version number, tell whether the 'readline' library has been included, tell whether UTF-8 support has been included; give the locale, the location of the default units data file, and the location of the personal units data file; indicate if the personal units data file does not exist. When given in combination with the '--terse' option, the program prints only the version number and exits. When given in combination with the '--verbose' option, the program, the '--version' option has the same effect as the '--info' option below. '-I' '--info' Print the information given with the '--version' option, show the pathname of the units program, show the status of the 'UNITSFILE' and 'MYUNITSFILE' environment variables, and additional information about how 'units' locates the related files. On systems running Microsoft Windows, the status of the 'UNITSLOCALE' environment variable and information about the related locale map are also given. This option is usually of interest only to developers and administrators, but it can sometimes be useful for troubleshooting. Combining the '--version' and '--verbose' options has the same effect as giving '--info'. '-U' '--unitsfile' Print the location of the default units data file and exit; if the file cannot be found, print "Units data file not found". '-l LOCALE' '--locale LOCALE' Print the information given with the '--version' option, show the Force a specified locale such as 'en_GB' to get British definitions by default. This overrides the locale determined from system settings or environment variables. *Note Locale::, for a description of locale format. ---------- Footnotes ---------- (1) This document refers to "decimal point," but strictly, the "radix" separates the integer and fractional parts of a floating-point number; in English-speaking countries, the radix is a point ('.'), but in most other countries it is a comma (',').  File: units.info, Node: Defining Your Own Units, Next: Numeric Output Format, Prev: Invoking Units, Up: Top 10 Adding Your Own Definitions ****************************** * Menu: * Units Data Files:: Where are units defined? * Defining New Units:: Writing your own unit and prefix definitions * Defining Nonlinear Units:: Writing your own nonlinear unit definitions * Piecewise Linear Units:: Writing your own piecewise linear definitions * Defining Unit List Aliases:: Writing your own unit list aliases  File: units.info, Node: Units Data Files, Next: Defining New Units, Up: Defining Your Own Units 10.1 Units Data Files ===================== The units and prefixes that 'units' can convert are defined in the units data file, typically '/usr/share/units/definitions.units'. If you can't find this file, run 'units --version' to get information on the file locations for your installation. Although you can extend or modify this data file if you have appropriate user privileges, it's usually better to put extensions in separate files so that the definitions will be preserved if you update 'units'. You can include additional data files in the units database using the '!include' command in the standard units data file. For example !include /usr/local/share/units/local.units might be appropriate for a site-wide supplemental data file. The location of the '!include' statement in the standard units data file is important; later definitions replace earlier ones, so any definitions in an included file will override definitions before the '!include' statement in the standard units data file. With normal invocation, no warning is given about redefinitions; to ensure that you don't have an unintended redefinition, run 'units -c' after making changes to any units data file. If you want to add your own units in addition to or in place of standard or site-wide supplemental units data files, you can include them in the '.units' file in your home directory. If this file exists it is read after the standard units data file, so that any definitions in this file will replace definitions of the same units in the standard data file or in files included from the standard data file. This file will not be read if any units files are specified on the command line. (Under Windows the personal units file is named 'unitdef.units'.) Running 'units -V' will display the location and name of your personal units file. The 'units' program first tries to determine your home directory from the 'HOME' environment variable. On systems running Microsoft Windows, if 'HOME' does not exist, 'units' attempts to find your home directory from 'HOMEDRIVE', 'HOMEPATH' and 'USERPROFILE'. You can specify an arbitrary file as your personal units data file with the 'MYUNITSFILE' environment variable; if this variable exists, its value is used without searching your home directory. The default units data files are described in more detail in *note Data Files::.  File: units.info, Node: Defining New Units, Next: Defining Nonlinear Units, Prev: Units Data Files, Up: Defining Your Own Units 10.2 Defining New Units and Prefixes ==================================== A unit is specified on a single line by giving its name and an equivalence. Comments start with a '#' character, which can appear anywhere in a line. The backslash character ('\') acts as a continuation character if it appears as the last character on a line, making it possible to spread definitions out over several lines if desired. A file can be included by giving the command '!include' followed by the file's name. The '!' must be the first character on the line. The file will be sought in the same directory as the parent file unless you give a full path. The name of the file to be included cannot contain the comment character '#'. Unit names must not contain any of the operator characters '+', '-', '*', '/', '|', '^', ';', '~', the comment character '#', or parentheses. They cannot begin or end with an underscore ('_'), a comma (',') or a decimal point ('.'). The figure dash (U+2012), typographical minus ('-'; U+2212), and en dash ('-'; U+2013) are converted to the operator '-', so none of these characters can appear in unit names. Names cannot begin with a digit, and if a name ends in a digit other than zero, the digit must be preceded by a string beginning with an underscore, and afterwards consisting only of digits, decimal points, or commas. For example, 'foo_2', 'foo_2,1', or 'foo_3.14' are valid names but 'foo2' or 'foo_a2' are invalid. You could define nitrous oxide as N2O nitrogen 2 + oxygen but would need to define nitrogen dioxide as NO_2 nitrogen + oxygen 2 Be careful to define new units in terms of old ones so that a reduction leads to the primitive units, which are marked with '!' characters. Dimensionless units are indicated by using the string '!dimensionless' for the unit definition. When adding new units, be sure to use the '-c' option to check that the new units reduce properly. If you create a loop in the units definitions, then 'units' will hang when invoked with the '-c' option. You will need to use the '--check-verbose' option, which prints out each unit as it is checked. The program will still hang, but the last unit printed will be the unit that caused the infinite loop. If you define any units that contain '+' characters, carefully check them because the '-c' option will not catch non-conformable sums. Be careful with the '-' operator as well. When used as a binary operator, the '-' character can perform addition or multiplication depending on the options used to invoke 'units'. To ensure consistent behavior use '-' only as a unary negation operator when writing units definitions. To multiply two units leave a space or use the '*' operator with care, recalling that it has two possible precedence values and may require parentheses to ensure consistent behavior. To compute the difference of 'foo' and 'bar' write 'foo+(-bar)' or even 'foo+-bar'. Here is an example of a short data file that defines some basic units: m ! # The meter is a primitive unit sec ! # The second is a primitive unit rad !dimensionless # A dimensionless primitive unit micro- 1e-6 # Define a prefix minute 60 sec # A minute is 60 seconds hour 60 min # An hour is 60 minutes inch 0.0254 m # Inch defined in terms of meters ft 12 inches # The foot defined in terms of inches mile 5280 ft # And the mile A unit that ends with a '-' character is a prefix. If a prefix definition contains any '/' characters, be sure they are protected by parentheses. If you define 'half- 1/2' then 'halfmeter' would be equivalent to '1 / (2 meter)'.  File: units.info, Node: Defining Nonlinear Units, Next: Piecewise Linear Units, Prev: Defining New Units, Up: Defining Your Own Units 10.3 Defining Nonlinear Units ============================= Some unit conversions of interest are nonlinear; for example, temperature conversions between the Fahrenheit and Celsius scales cannot be done by simply multiplying by conversion factors. When you give a linear unit definition such as 'inch 2.54 cm' you are providing information that 'units' uses to convert values in inches into primitive units of meters. For nonlinear units, you give a functional definition that provides the same information. Nonlinear units are represented using a functional notation. It is best to regard this notation not as a function call but as a way of adding units to a number, much the same way that writing a linear unit name after a number adds units to that number. Internally, nonlinear units are defined by a pair of functions that convert to and from linear units in the database, so that an eventual conversion to primitive units is possible. Here is an example nonlinear unit definition: tempF(x) units=[1;K] domain=[-459.67,) range=[0,) \ (x+(-32)) degF + stdtemp ; (tempF+(-stdtemp))/degF + 32 A nonlinear unit definition comprises a unit name, a formal parameter name, two functions, and optional specifications for units, the domain, and the range (the domain of the inverse function). The functions tell 'units' how to convert to and from the new unit. To produce valid results, the arguments of these functions need to have the correct dimensions and be within the domains for which the functions are defined. The definition begins with the unit name followed immediately (with no spaces) by a '(' character. In the parentheses is the name of the formal parameter. Next is an optional specification of the units required by the functions in the definition. In the example above, the 'units=[1;K]' specification indicates that the 'tempF' function requires an input argument conformable with '1' (i.e., the argument is dimensionless), and that the inverse function requires an input argument conformable with 'K'. For normal nonlinear units definition, the forward function will always take a dimensionless argument; in general, the inverse function will need units that match the quantity measured by your nonlinear unit. Specifying the units enables 'units' to perform error checking on function arguments, and also to assign units to domain and range specifications, which are described later. Next the function definitions appear. In the example above, the 'tempF' function is defined by tempF(x) = (x+(-32)) degF + stdtemp This gives a rule for converting 'x' in the units 'tempF' to linear units of absolute temperature, which makes it possible to convert from tempF to other units. To enable conversions to Fahrenheit, you must give a rule for the inverse conversions. The inverse will be 'x(tempF)' and its definition appears after a ';' character. In our example, the inverse is x(tempF) = (tempF+(-stdtemp))/degF + 32 This inverse definition takes an absolute temperature as its argument and converts it to the Fahrenheit temperature. The inverse can be omitted by leaving out the ';' character and the inverse definition, but then conversions _to_ the unit will not be possible. If the inverse definition is omitted, the '--check' option will display a warning. It is up to you to calculate and enter the correct inverse function to obtain proper conversions; the '--check' option tests the inverse at one point and prints an error if it is not valid there, but this is not a guarantee that your inverse is correct. With some definitions, the units may vary. For example, the definition square(x) x^2 can have any arbitrary units, and can also take dimensionless arguments. In such a case, you should _not_ specify units. If a definition takes a root of its arguments, the definition is valid only for units that yield such a root. For example, squirt(x) sqrt(x) is valid for a dimensionless argument, and for arguments with even powers of units. Some definitions may not be valid for all real numbers. In such cases, 'units' can handle errors better if you specify an appropriate domain and range. You specify the domain and range as shown below: baume(d) units=[1;g/cm^3] domain=[0,130.5] range=[1,10] \ (145/(145-d)) g/cm^3 ; (baume+-g/cm^3) 145 / baume In this example the domain is specified after 'domain=' with the endpoints given in brackets. In accord with mathematical convention, square brackets indicate a closed interval (one that includes its endpoints), and parentheses indicate an open interval (one that does not include its endpoints). An interval can be open or closed on one or both ends; an interval that is unbounded on either end is indicated by omitting the limit on that end. For example, a quantity to which decibel (dB) is applied may have any value greater than zero, so the range is indicated by '(0,)': decibel(x) units=[1;1] range=(0,) 10^(x/10); 10 log(decibel) If the domain or range is given, the second endpoint must be greater than the first. The domain and range specifications can appear independently and in any order along with the units specification. The values for the domain and range endpoints are attached to the units given in the units specification, and if necessary, the parameter value is adjusted for comparison with the endpoints. For example, if a definition includes 'units=[1;ft]' and 'range=[3,)', the range will be taken as 3 ft to infinity. If the function is passed a parameter of '900 mm', that value will be adjusted to 2.9527559 ft, which is outside the specified range. If you omit the units specification from the previous example, 'units' can not tell whether you intend the lower endpoint to be 3 ft or 3 microfurlongs, and can not adjust the parameter value of 900 mm for comparison. Without units, numerical values other than zero or plus or minus infinity for domain or range endpoints are meaningless, and accordingly they are not allowed. If you give other values without units then the definition will be ignored and you will get an error message. Although the units, domain, and range specifications are optional, it's best to give them when they are applicable; doing so allows 'units' to perform better error checking and give more helpful error messages. Giving the domain and range also enables the '--check' option to find a point in the domain to use for its point check of your inverse definition. You can make synonyms for nonlinear units by providing both the forward and inverse functions; inverse functions can be obtained using the '~' operator. So to create a synonym for 'tempF' you could write fahrenheit(x) units=[1;K] tempF(x); ~tempF(fahrenheit) This is useful for creating a nonlinear unit definition that differs slightly from an existing definition without having to repeat the original functions. For example, dBW(x) units=[1;W] range=[0,) dB(x) W ; ~dB(dBW/W) If you wish a synonym to refer to an existing nonlinear unit without modification, you can do so more simply by adding the synonym with appended parentheses as a new unit, with the existing nonlinear unit--without parentheses--as the definition. So to create a synonym for 'tempF' you could write fahrenheit() tempF The definition must be a nonlinear unit; for example, the synonym fahrenheit() meter will result in an error message when 'units' starts. You may occasionally wish to define a function that operates on units. This can be done using a nonlinear unit definition. For example, the definition below provides conversion between radius and the area of a circle. This definition requires a length as input and produces an area as output, as indicated by the 'units=' specification. Specifying the range as the nonnegative numbers can prevent cryptic error messages. circlearea(r) units=[m;m^2] range=[0,) pi r^2 ; sqrt(circlearea/pi)  File: units.info, Node: Piecewise Linear Units, Next: Defining Unit List Aliases, Prev: Defining Nonlinear Units, Up: Defining Your Own Units 10.4 Defining Piecewise Linear Units ==================================== Sometimes you may be interested in a piecewise linear unit such as many wire gauges. Piecewise linear units can be defined by specifying conversions to linear units on a list of points. Conversion at other points will be done by linear interpolation. A partial definition of zinc gauge is zincgauge[in] 1 0.002, 10 0.02, 15 0.04, 19 0.06, 23 0.1 In this example, 'zincgauge' is the name of the piecewise linear unit. The definition of such a unit is indicated by the embedded '[' character. After the bracket, you should indicate the units to be attached to the numbers in the table. No spaces can appear before the ']' character, so a definition like 'foo[kg meters]' is invalid; instead write 'foo[kg*meters]'. The definition of the unit consists of a list of pairs optionally separated by commas. This list defines a function for converting from the piecewise linear unit to linear units. The first item in each pair is the function argument; the second item is the value of the function at that argument (in the units specified in brackets). In this example, we define 'zincgauge' at five points. For example, we set 'zincgauge(1)' equal to '0.002 in'. Definitions like this may be more readable if written using continuation characters as zincgauge[in] \ 1 0.002 \ 10 0.02 \ 15 0.04 \ 19 0.06 \ 23 0.1 With the preceding definition, the following conversion can be performed: You have: zincgauge(10) You want: in * 0.02 / 50 You have: .01 inch You want: zincgauge 5 If you define a piecewise linear unit that is not strictly monotonic, then the inverse will not be well defined. If the inverse is requested for such a unit, 'units' will return the smallest inverse. After adding nonlinear units definitions, you should normally run 'units --check' to check for errors. If the 'units' keyword is not given, the '--check' option checks a nonlinear unit definition using a dimensionless argument, and then checks using an arbitrary combination of units, as well as the square and cube of that combination; a warning is given if any of these tests fail. For example, Warning: function 'squirt(x)' defined as 'sqrt(x)' failed for some test inputs: squirt(7(kg K)^1): Unit not a root squirt(7(kg K)^3): Unit not a root Running 'units --check' will print a warning if a non-monotonic piecewise linear unit is encountered. For example, the relationship between ANSI coated abrasive designation and mean particle size is non-monotonic in the vicinity of 800 grit: ansicoated[micron] \ . . . 600 10.55 \ 800 11.5 \ 1000 9.5 \ Running 'units --check' would give the error message Table 'ansicoated' lacks unique inverse around entry 800 Although the inverse is not well defined in this region, it's not really an error. Viewing such error messages can be tedious, and if there are enough of them, they can distract from true errors. Error checking for nonlinear unit definitions can be suppressed by giving the 'noerror' keyword; for the examples above, this could be done as squirt(x) noerror domain=[0,) range=[0,) sqrt(x); squirt^2 ansicoated[micron] noerror \ . . . Use the 'noerror' keyword with caution. The safest approach after adding a nonlinear unit definition is to run 'units --check' and confirm that there are no actual errors before adding the 'noerror' keyword.  File: units.info, Node: Defining Unit List Aliases, Prev: Piecewise Linear Units, Up: Defining Your Own Units 10.5 Defining Unit List Aliases =============================== Unit list aliases are treated differently from unit definitions, because they are a data entry shorthand rather than a true definition for a new unit. A unit list alias definition begins with '!unitlist' and includes the alias and the definition; for example, the aliases included in the standard units data file are !unitlist hms hr;min;sec !unitlist time year;day;hr;min;sec !unitlist dms deg;arcmin;arcsec !unitlist ftin ft;in;1|8 in !unitlist usvol cup;3|4 cup;2|3 cup;1|2 cup;1|3 cup;1|4 cup;\ tbsp;tsp;1|2 tsp;1|4 tsp;1|8 tsp Unit list aliases are only for unit lists, so the definition must include a ';'. Unit list aliases can never be combined with units or other unit list aliases, so the definition of 'time' shown above could _not_ have been shortened to 'year;day;hms'. As usual, be sure to run 'units --check' to ensure that the units listed in unit list aliases are conformable.  File: units.info, Node: Numeric Output Format, Next: Localization, Prev: Defining Your Own Units, Up: Top 11 Numeric Output Format ************************ * Menu: * Format Specification:: The output format specification * Flags:: Optional format flags * Field Width:: Specifying output field width * Precision:: Specifying output precision By default, 'units' shows results to eight significant digits. You can change this with the '--exponential', '--digits', and '--output-format' options. The first sets an exponential format (i.e., scientific notation) like that used in the original Unix 'units' program, the second allows you to specify a different number of significant digits, and the last allows you to control the output appearance using the format for the 'printf()' function in the C programming language. If you only want to change the number of significant digits or specify exponential format type, use the '--digits' and '--exponential' options. The '--output-format' option affords the greatest control of the output appearance, but requires at least rudimentary knowledge of the 'printf()' format syntax. *Note Invoking Units::, for descriptions of these options.  File: units.info, Node: Format Specification, Next: Flags, Up: Numeric Output Format 11.1 Format Specification ========================= The format specification recognized with the '--output-format' option is a subset of that for 'printf()'. The format specification has the form '%'[flags][width]['.'precision]type; it must begin with '%', and must end with a floating-point type specifier: 'g' or 'G' to specify the number of significant digits, 'e' or 'E' for scientific notation, and 'f' for fixed-point decimal. The ISO C99 standard added the 'F' type for fixed-point decimal and the 'a' and 'A' types for hexadecimal floating point; these types are allowed with compilers that support them. Type length modifiers (e.g., 'L' to indicate a long double) are inapplicable and are not allowed. The default format for 'units' is '%.8g'; for greater precision, you could specify '-o %.15g'. The 'g' and 'G' format types use exponential format whenever the exponent would be less than -4, so the value 0.000013 displays as '1.3e-005'. These types also use exponential notation when the exponent is greater than or equal to the precision, so with the default format, the value 5e7 displays as '50000000' and the value 5e8 displays as '5e+008'. If you prefer fixed-point display, you might specify '-o %.8f'; however, small numbers will display very few significant digits, and values less than 0.5e-8 will show nothing but zeros. The format specification may include one or more optional flags: '+', ' ' (space), '#', '-', or '0' (the digit zero). The digit-grouping flag ''' (apostrophe) is allowed with compilers that support it. Flags are followed by an optional value for the minimum field width, and an optional precision specification that begins with a period (e.g., '.6'). The field width includes the digits, decimal point, the exponent, thousands separators (with the digit-grouping flag), and the sign if any of these are shown.  File: units.info, Node: Flags, Next: Field Width, Prev: Format Specification, Up: Numeric Output Format 11.2 Flags ========== The '+' flag causes the output to have a sign ('+' or '-'). The space flag ' ' is similar to the '+' flag, except that when the value is positive, it is prefixed with a space rather than a plus sign; this flag is ignored if the '+' flag is also given. The '+' or ' ' flag could be useful if conversions might include positive and negative results, and you wanted to align the decimal points in exponential notation. The '#' flag causes the output value to contain a decimal point in all cases; by default, the output contains a decimal point only if there are digits (which can be trailing zeros) to the right of the point. With the 'g' or 'G' types, the '#' flag also prevents the suppression of trailing zeros. The digit-grouping flag ''' shows a thousands separator in digits to the left of the decimal point. This can be useful when displaying large numbers in fixed-point decimal; for example, with the format '%f', You have: mile You want: microfurlong * 8000000.000000 / 0.000000 the magnitude of the first result may not be immediately obvious without counting the digits to the left of the decimal point. If the thousands separator is the comma (','), the output with the format '%'f' might be You have: mile You want: microfurlong * 8,000,000.000000 / 0.000000 making the magnitude readily apparent. Unfortunately, few compilers support the digit-grouping flag. With the '-' flag, the output value is left aligned within the specified field width. If a field width greater than needed to show the output value is specified, the '0' (zero) flag causes the output value to be left padded with zeros until the specified field width is reached; for example, with the format '%011.6f', You have: troypound You want: grain * 5760.000000 / 0000.000174 The '0' flag has no effect if the '-' (left align) flag is given.  File: units.info, Node: Field Width, Next: Precision, Prev: Flags, Up: Numeric Output Format 11.3 Field Width ================ By default, the output value is left aligned and shown with the minimum width necessary for the specified (or default) precision. If a field width greater than this is specified, the value shown is right aligned, and padded on the left with enough spaces to provide the specified field width. A width specification is typically used with fixed-point decimal to have columns of numbers align at the decimal point; this arguably is less useful with 'units' than with long columnar output, but it may nonetheless assist in quickly assessing the relative magnitudes of results. For example, with the format '%12.6f', You have: km You want: in * 39370.078740 / 0.000025 You have: km You want: rod * 198.838782 / 0.005029 You have: km You want: furlong * 4.970970 / 0.201168  File: units.info, Node: Precision, Prev: Field Width, Up: Numeric Output Format 11.4 Precision ============== The meaning of "precision" depends on the format type. With 'g' or 'G', it specifies the number of significant digits (like the '--digits' option); with 'e', 'E', 'f', or 'F', it specifies the maximum number of digits to be shown after the decimal point. With the 'g' and 'G' format types, trailing zeros are suppressed, so the results may sometimes have fewer digits than the specified precision (as indicated above, the '#' flag causes trailing zeros to be displayed). The default precision is 6, so '%g' is equivalent to '%.6g', and would show the output to six significant digits. Similarly, '%e' or '%f' would show the output with six digits after the decimal point. The C 'printf()' function allows a precision of arbitrary size, whether or not all of the digits are meaningful. With most compilers, the maximum internal precision with 'units' is 15 decimal digits (or 13 hexadecimal digits). With the '--digits' option, you are limited to the maximum internal precision; with the '--output-format' option, you may specify a precision greater than this, but it may not be meaningful. In some cases, specifying excess precision can result in rounding artifacts. For example, a pound is exactly 7000 grains, but with the format '%.18g', the output might be You have: pound You want: grain * 6999.9999999999991 / 0.00014285714285714287 With the format '%.25g' you might get the following: You have: 1/3 You want: Definition: 0.333333333333333314829616256247 In this case the displayed value includes a series of digits that represent the underlying binary floating-point approximation to 1/3 but are not meaningful for the desired computation. In general, the result with excess precision is system dependent. The precision affects only the _display_ of numbers; if a result relies on physical constants that are not known to the specified precision, the number of physically meaningful digits may be less than the number of digits shown. See the documentation for 'printf()' for more detailed descriptions of the format specification. The '--output-format' option is incompatible with the '--exponential' or '--digits' options; if the former is given in combination with either of the latter, the format is controlled by the last option given.  File: units.info, Node: Localization, Next: Environment Vars, Prev: Numeric Output Format, Up: Top 12 Localization *************** * Menu: * Locale:: What is a locale? * Additional Localization:: When the locale isn't enough Some units have different values in different locations. The localization feature accommodates this by allowing a units data file to specify definitions that depend on the user's locale.  File: units.info, Node: Locale, Next: Additional Localization, Up: Localization 12.1 Locale =========== A locale is a subset of a user's environment that indicates the user's language and country, and some attendant preferences, such as the formatting of dates. The 'units' program attempts to determine the locale from the POSIX setlocale function; if this cannot be done, 'units' examines the environment variables 'LC_CTYPE' and 'LANG'. On POSIX systems, a locale is of the form LANGUAGE'_'COUNTRY, where LANGUAGE is the two-character code from ISO 639-1 and COUNTRY is the two-character code from ISO 3166-1; LANGUAGE is lower case and COUNTRY is upper case. For example, the POSIX locale for the United Kingdom is 'en_GB'. On systems running Microsoft Windows, the value returned by setlocale() is different from that on POSIX systems; 'units' attempts to map the Windows value to a POSIX value by means of a table in the file 'locale_map.txt' in the same directory as the other data files. The file includes entries for many combinations of language and country, and can be extended to include other combinations. The 'locale_map.txt' file comprises two tab-separated columns; each entry is of the form WINDOWS-LOCALE POSIX-LOCALE where POSIX-LOCALE is as described above, and WINDOWS-LOCALE typically spells out both the language and country. For example, the entry for the United States is English_United States en_US You can force 'units' to run in a desired locale by using the '-l' option. In order to create unit definitions for a particular locale you begin a block of definitions in a unit datafile with '!locale' followed by a locale name. The '!' must be the first character on the line. The 'units' program reads the following definitions only if the current locale matches. You end the block of localized units with '!endlocale'. Here is an example, which defines the British gallon. !locale en_GB gallon 4.54609 liter !endlocale  File: units.info, Node: Additional Localization, Prev: Locale, Up: Localization 12.2 Additional Localization ============================ Sometimes the locale isn't sufficient to determine unit preferences. There could be regional preferences, or a company could have specific preferences. Though probably uncommon, such differences could arise with the choice of English customary units outside of English-speaking countries. To address this, 'units' allows specifying definitions that depend on environment variable settings. The environment variables can be controled based on the current locale, or the user can set them to force a particular group of definitions. A conditional block of definitions in a units data file begins with either '!var' or '!varnot' following by an environment variable name and then a space separated list of values. The leading '!' must appear in the first column of a units data file, and the conditional block is terminated by '!endvar'. Definitions in blocks beginning with '!var' are executed only if the environment variable is exactly equal to one of the listed values. Definitions in blocks beginning with '!varnot' are executed only if the environment variable does _not_ equal any of the list values. The inch has long been a customary measure of length in many places. The word comes from the latin _uncia_ meaning "one twelfth," referring to its relationship with the foot. By the 20th century, the inch was officially defined in English-speaking countries relative to the yard, but until 1959, the yard differed slightly among those countries. In France the customary inch, which was displaced in 1799 by the meter, had a different length based on a french foot. These customary definitions could be accommodated as follows: !var INCH_UNIT usa yard 3600|3937 m !endvar !var INCH_UNIT canada yard 0.9144 meter !endvar !var INCH_UNIT uk yard 0.91439841 meter !endvar !var INCH_UNIT canada uk usa foot 1|3 yard inch 1|12 foot !endvar !var INCH_UNIT france foot 144|443.296 m inch 1|12 foot line 1|12 inch !endvar !varnot INCH_UNIT usa uk france canada !message Unknown value for INCH_UNIT !endvar When 'units' reads the above definitions it will check the environment variable 'INCH_UNIT' and load only the definitions for the appropriate section. If 'INCH_UNIT' is unset or is not set to one of the four values listed then 'units' will run the last block. In this case that block uses the '!message' command to display a warning message. Alternatively that block could set default values. In order to create default values that are overridden by user settings the data file can use the '!set' command, which sets an environment variable _only if it is not already set_; these settings are only for the current 'units' invocation and do not persist. So if the example above were preceded by '!set INCH_UNIT france' then this would make 'france' the default value for 'INCH_UNIT'. If the user had set the variable in the environment before invoking 'units', then 'units' would use the user's value. To link these settings to the user's locale you combine the '!set' command with the '!locale' command. If you wanted to combine the above example with suitable locales you could do by _preceding_ the above definition with the following: !locale en_US !set INCH_UNIT usa !endlocale !locale en_GB !set INCH_UNIT uk !endlocale !locale en_CA !set INCH_UNIT canada !endlocale !locale fr_FR !set INCH_UNIT france !endlocale !set INCH_UNIT france These definitions set the overall default for 'INCH_UNIT' to 'france' and set default values for four locales appropriately. The overall default setting comes last so that it only applies when 'INCH_UNIT' was not set by one of the other commands or by the user. If the variable given after '!var' or '!varnot' is undefined then 'units' prints an error message and ignores the definitions that follow. Use '!set' to create defaults to prevent this situation from arising. The '-c' option only checks the definitions that are active for the current environment and locale, so when adding new definitions take care to check that all cases give rise to a well defined set of definitions.  File: units.info, Node: Environment Vars, Next: Data Files, Prev: Localization, Up: Top 13 Environment Variables ************************ The 'units' program uses the following environment variables: 'HOME' Specifies the location of your home directory; it is used by 'units' to find a personal units data file '.units'. On systems running Microsoft Windows, the file is 'unitdef.units', and if 'HOME' does not exist, 'units' tries to determine your home directory from the 'HOMEDRIVE' and 'HOMEPATH' environment variables; if these variables do not exist, units finally tries 'USERPROFILE'--typically 'C:\Users\USERNAME' (Windows Vista and Windows 7) or 'C:\Documents and Settings\USERNAME' (Windows XP). 'LC_CTYPE, LANG' Checked to determine the locale if 'units' cannot obtain it from the operating system. Sections of the standard units data file are specific to certain locales. 'MYUNITSFILE' Specifies your personal units data file. If this variable exists, 'units' uses its value rather than searching your home directory for '.units'. The personal units file will not be loaded if any data files are given using the '-f' option. 'PAGER' Specifies the pager to use for help and for displaying the conformable units. The help function browses the units database and calls the pager using the '+n'N syntax for specifying a line number. The default pager is 'more'; 'PAGER' can be used to specify alternatives such as 'less', 'pg', 'emacs', or 'vi'. 'UNITS_ENGLISH' Set to either 'US' or 'GB' to choose United States or British volume definitions, overriding the default from your locale. 'UNITSFILE' Specifies the units data file to use (instead of the default). You can only specify a single units data file using this environment variable. If units data files are given using the '-f' option, the file specified by 'UNITSFILE' will be not be loaded unless the '-f' option is given with the empty string ('units -f ""'). 'UNITSLOCALEMAP' Windows only; this variable has no effect on Unix-like systems. Specifies the units locale map file to use (instead of the default). This variable seldom needs to be set, but you can use it to ensure that the locale map file will be found if you specify a location for the units data file using either the '-f' option or the 'UNITSFILE' environment variable, and that location does not also contain the locale map file.  File: units.info, Node: Data Files, Next: Unicode Support, Prev: Environment Vars, Up: Top 14 Data Files ************* The 'units' program uses two default data files: 'definitions.units' and 'currency.units'. The program can also use an optional personal units data file '.units' ('unitdef.units' under Windows) located in the user's home directory. The personal units data file is described in more detail in *note Units Data Files::. On Unix-like systems, the data files are typically located in '/usr/share/units' if 'units' is provided with the operating system, or in '/usr/local/share/units' if 'units' is compiled from the source distribution. On systems running Microsoft Windows, the files may be in the same locations if Unix-like commands are available, a Unix-like file structure is present (e.g., 'C:/usr/local'), and 'units' is compiled from the source distribution. If Unix-like commands are not available, a more common location is 'C:\Program Files (x86)\GNU\units' (for 64-bit Windows installations) or 'C:\Program Files\GNU\units' (for 32-bit installations). If 'units' is obtained from the GNU Win32 Project (), the files are commonly in 'C:\Program Files\GnuWin32\share\units'. If the default units data file is not an absolute pathname, 'units' will look for the file in the directory that contains the 'units' program; if the file is not found there, 'units' will look in a directory '../share/units' relative to the directory with the 'units' program. You can determine the location of the files by running 'units --version'. Running 'units --info' will give you additional information about the files, how 'units' will attempt to find them, and the status of the related environment variables.  File: units.info, Node: Unicode Support, Next: Readline Support, Prev: Data Files, Up: Top 15 Unicode Support ****************** The standard units data file is in Unicode, using UTF-8 encoding. Most definitions use only ASCII characters (i.e., code points U+0000 through U+007F); definitions using non-ASCII characters appear in blocks beginning with '!utf8' and ending with '!endutf8'. When 'units' starts, it checks the locale to determine the character set. If 'units' is compiled with Unicode support and definitions; otherwise these definitions are ignored. When Unicode support is active, 'units' will check every line of all of the units data files for invalid or non-printing UTF-8 sequences; if such sequences occur, 'units' ignores the entire line. In addition to checking validity, 'units' determines the display width of non-ASCII characters to ensure proper positioning of the pointer in some error messages and to align columns for the 'search' and '?' commands. At present, 'units' does not support Unicode under Microsoft Windows. The UTF-16 and UTF-32 encodings are not supported on any systems. If definitions that contain non-ASCII characters are added to a units data file, those definitions should be enclosed within '!utf8' ... '!endutf8' to ensure that they are only loaded when Unicode support is available. As usual, the '!' must appear as the first character on the line. As discussed in *note Units Data Files::, it's usually best to put such definitions in supplemental data files linked by an '!include' command or in a personal units data file. When Unicode support is not active, 'units' makes no assumptions about character encoding, except that characters in the range 00-7F hexadecimal correspond to ASCII encoding. Non-ASCII characters are simply sequences of bytes, and have no special meanings; for definitions in supplementary units data files, you can use any encoding consistent with this assumption. For example, if you wish to use non-ASCII characters in definitions when running 'units' under Windows, you can use a character set such as Windows "ANSI" (code page 1252 in the US and Western Europe). You can even use UTF-8, though some messages may be improperly aligned, and 'units' will not detect invalid UTF-8 sequences. If you use UTF-8 encoding when Unicode support is not active, you should place any definitions with non-ASCII characters _outside_ '!utf8' ... '!endutf8' blocks--otherwise, they will be ignored. Typeset material other than code examples usually uses the Unicode minus (U+2212) rather than the ASCII hyphen-minus operator (U+002D) used in 'units'; the figure dash (U+2012) and en dash (U+2013) are also occasionally used. To allow such material to be copied and pasted for interactive use or in units data files, 'units' converts these characters to U+002D before further processing. Because of this, none of these characters can appear in unit names.  File: units.info, Node: Readline Support, Next: Currency, Prev: Unicode Support, Up: Top 16 Readline Support ******************* If the 'readline' package has been compiled in, then when 'units' is used interactively, numerous command line editing features are available. To check if your version of 'units' includes 'readline', invoke the program with the '--version' option. For complete information about 'readline', consult the documentation for the 'readline' package. Without any configuration, 'units' will allow editing in the style of emacs. Of particular use with 'units' are the completion commands. If you type a few characters and then hit followed by '?' then 'units' will display a list of all the units that start with the characters typed. For example, if you type 'metr' and then request completion, you will see something like this: You have: metr metre metriccup metrichorsepower metrictenth metretes metricfifth metricounce metricton metriccarat metricgrain metricquart metricyarncount You have: metr If there is a unique way to complete a unitname, you can hit the key and 'units' will provide the rest of the unit name. If 'units' beeps, it means that there is no unique completion. Pressing the key a second time will print the list of all completions. The readline library also keeps a history of the values you enter. You can move through this history using the up and down arrows. The history is saved to the file '.units_history' in your home directory so that it will persist across multiple 'units' invocations. If you wish to keep work for a certain project separate you can change the history filename using the '--history' option. You could, for example, make an alias for 'units' to 'units --history .units_history' so that 'units' would save separate history in the current directory. The length of each history file is limited to 5000 lines. Note also that if you run several concurrent copies of 'units' each one will save its new history to the history file upon exit.  File: units.info, Node: Currency, Next: Database Syntax, Prev: Readline Support, Up: Top 17 Updating Currency Exchange Rates *********************************** The units program includes currency exchange rates and prices for some precious metals in the database. Of course, these values change over time, sometimes very rapidly, and 'units' cannot provide real time values. To update the exchange rates run the 'units_cur', which rewrites the files containing the currency rates, typically '/usr/share/units/currency.units'. This program requires 'python', and must be run with suitable permissions to write the file. To keep the rates updated automatically, run it using a cron job on a Unix-like system, or a similar scheduling program on a different system. Currency exchange rates are taken from Yahoo () and precious metals pricing from Packetizer (). These sites update once per day, so there is no benefit in running the update script more often than daily. You can run 'units_cur' with a filename specified on the command line and it will write the data to that file. If you give '-' for the file it will write to standard output.  File: units.info, Node: Database Syntax, Next: GNU Free Documentation License, Prev: Currency, Up: Top 18 Database Command Syntax ************************** UNIT DEFINITION Define a regular unit. PREFIX- DEFINITION Define a prefix. FUNCNAME(VAR) noerror units=[IN-UNITS,OUT-UNITS] domain=[X1,X2] range=[Y1,Y2] DEFINITION(VAR) ; INVERSE(FUNCNAME) Define a nonlinear unit or unit function. The four optional keywords 'noerror', 'units=', 'range=' and 'domain=' can appear in any order. The definition of the inverse is optional. TABNAME[OUT-UNITS] noerror PAIR-LIST Define a piecewise linear unit. The pair list gives the points on the table listed in ascending order. The 'noerror' keyword is optional. !endlocale End a block of definitions beginning with '!locale' !endutf8 End a block of definitions begun with '!utf8' !endvar End a block of definitions begun with '!var' or '!varnot' !include FILE Include the specified file. !locale VALUE Load the following definitions only of the locale is set to VALUE. !message TEXT Display TEXT when the database is read unless the quiet option ('-q') is enabled. !set VARIABLE VALUE Sets the environment variable, VARIABLE, to the specified value _only if_ it is not already set. !unitlist ALIAS DEFINITION Define a unit list alias. !utf8 Load the following definitions only if 'units' is running with UTF-8 enabled. !var ENVAR VALUE-LIST Load the block of definitions that follows only if the environment variable ENVAR is set to one of the values listed in the space-separated value list. If ENVAR is not set, 'units' prints an error message and ignores the block of definitions. !varnot ENVAR VALUE-LIST Load the block of definitions that follows only if the environment variable ENVAR is set to value that is _not_ listed in the space-separated value list. If ENVAR is not set, 'units' prints an error message and ignores the block of definitions.  File: units.info, Node: GNU Free Documentation License, Next: Index, Prev: Database Syntax, Up: Top 19 GNU Free Documentation License ********************************* Version 1.3, 3 November 2008 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. 0. PREAMBLE The purpose of this License is to make a manual, textbook, or other functional and useful document "free" in the sense of freedom: to assure everyone the effective freedom to copy and redistribute it, with or without modifying it, either commercially or noncommercially. Secondarily, this License preserves for the author and publisher a way to get credit for their work, while not being considered responsible for modifications made by others. This License is a kind of "copyleft", which means that derivative works of the document must themselves be free in the same sense. It complements the GNU General Public License, which is a copyleft license designed for free software. We have designed this License in order to use it for manuals for free software, because free software needs free documentation: a free program should come with manuals providing the same freedoms that the software does. But this License is not limited to software manuals; it can be used for any textual work, regardless of subject matter or whether it is published as a printed book. We recommend this License principally for works whose purpose is instruction or reference. 1. APPLICABILITY AND DEFINITIONS This License applies to any manual or other work, in any medium, that contains a notice placed by the copyright holder saying it can be distributed under the terms of this License. Such a notice grants a world-wide, royalty-free license, unlimited in duration, to use that work under the conditions stated herein. The "Document", below, refers to any such manual or work. Any member of the public is a licensee, and is addressed as "you". You accept the license if you copy, modify or distribute the work in a way requiring permission under copyright law. A "Modified Version" of the Document means any work containing the Document or a portion of it, either copied verbatim, or with modifications and/or translated into another language. A "Secondary Section" is a named appendix or a front-matter section of the Document that deals exclusively with the relationship of the publishers or authors of the Document to the Document's overall subject (or to related matters) and contains nothing that could fall directly within that overall subject. (Thus, if the Document is in part a textbook of mathematics, a Secondary Section may not explain any mathematics.) The relationship could be a matter of historical connection with the subject or with related matters, or of legal, commercial, philosophical, ethical or political position regarding them. The "Invariant Sections" are certain Secondary Sections whose titles are designated, as being those of Invariant Sections, in the notice that says that the Document is released under this License. If a section does not fit the above definition of Secondary then it is not allowed to be designated as Invariant. The Document may contain zero Invariant Sections. If the Document does not identify any Invariant Sections then there are none. The "Cover Texts" are certain short passages of text that are listed, as Front-Cover Texts or Back-Cover Texts, in the notice that says that the Document is released under this License. A Front-Cover Text may be at most 5 words, and a Back-Cover Text may be at most 25 words. A "Transparent" copy of the Document means a machine-readable copy, represented in a format whose specification is available to the general public, that is suitable for revising the document straightforwardly with generic text editors or (for images composed of pixels) generic paint programs or (for drawings) some widely available drawing editor, and that is suitable for input to text formatters or for automatic translation to a variety of formats suitable for input to text formatters. A copy made in an otherwise Transparent file format whose markup, or absence of markup, has been arranged to thwart or discourage subsequent modification by readers is not Transparent. An image format is not Transparent if used for any substantial amount of text. A copy that is not "Transparent" is called "Opaque". Examples of suitable formats for Transparent copies include plain ASCII without markup, Texinfo input format, LaTeX input format, SGML or XML using a publicly available DTD, and standard-conforming simple HTML, PostScript or PDF designed for human modification. Examples of transparent image formats include PNG, XCF and JPG. Opaque formats include proprietary formats that can be read and edited only by proprietary word processors, SGML or XML for which the DTD and/or processing tools are not generally available, and the machine-generated HTML, PostScript or PDF produced by some word processors for output purposes only. The "Title Page" means, for a printed book, the title page itself, plus such following pages as are needed to hold, legibly, the material this License requires to appear in the title page. For works in formats which do not have any title page as such, "Title Page" means the text near the most prominent appearance of the work's title, preceding the beginning of the body of the text. The "publisher" means any person or entity that distributes copies of the Document to the public. A section "Entitled XYZ" means a named subunit of the Document whose title either is precisely XYZ or contains XYZ in parentheses following text that translates XYZ in another language. (Here XYZ stands for a specific section name mentioned below, such as "Acknowledgements", "Dedications", "Endorsements", or "History".) To "Preserve the Title" of such a section when you modify the Document means that it remains a section "Entitled XYZ" according to this definition. The Document may include Warranty Disclaimers next to the notice which states that this License applies to the Document. These Warranty Disclaimers are considered to be included by reference in this License, but only as regards disclaiming warranties: any other implication that these Warranty Disclaimers may have is void and has no effect on the meaning of this License. 2. VERBATIM COPYING You may copy and distribute the Document in any medium, either commercially or noncommercially, provided that this License, the copyright notices, and the license notice saying this License applies to the Document are reproduced in all copies, and that you add no other conditions whatsoever to those of this License. You may not use technical measures to obstruct or control the reading or further copying of the copies you make or distribute. However, you may accept compensation in exchange for copies. If you distribute a large enough number of copies you must also follow the conditions in section 3. You may also lend copies, under the same conditions stated above, and you may publicly display copies. 3. COPYING IN QUANTITY If you publish printed copies (or copies in media that commonly have printed covers) of the Document, numbering more than 100, and the Document's license notice requires Cover Texts, you must enclose the copies in covers that carry, clearly and legibly, all these Cover Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on the back cover. Both covers must also clearly and legibly identify you as the publisher of these copies. The front cover must present the full title with all words of the title equally prominent and visible. You may add other material on the covers in addition. Copying with changes limited to the covers, as long as they preserve the title of the Document and satisfy these conditions, can be treated as verbatim copying in other respects. If the required texts for either cover are too voluminous to fit legibly, you should put the first ones listed (as many as fit reasonably) on the actual cover, and continue the rest onto adjacent pages. If you publish or distribute Opaque copies of the Document numbering more than 100, you must either include a machine-readable Transparent copy along with each Opaque copy, or state in or with each Opaque copy a computer-network location from which the general network-using public has access to download using public-standard network protocols a complete Transparent copy of the Document, free of added material. If you use the latter option, you must take reasonably prudent steps, when you begin distribution of Opaque copies in quantity, to ensure that this Transparent copy will remain thus accessible at the stated location until at least one year after the last time you distribute an Opaque copy (directly or through your agents or retailers) of that edition to the public. It is requested, but not required, that you contact the authors of the Document well before redistributing any large number of copies, to give them a chance to provide you with an updated version of the Document. 4. MODIFICATIONS You may copy and distribute a Modified Version of the Document under the conditions of sections 2 and 3 above, provided that you release the Modified Version under precisely this License, with the Modified Version filling the role of the Document, thus licensing distribution and modification of the Modified Version to whoever possesses a copy of it. In addition, you must do these things in the Modified Version: A. Use in the Title Page (and on the covers, if any) a title distinct from that of the Document, and from those of previous versions (which should, if there were any, be listed in the History section of the Document). You may use the same title as a previous version if the original publisher of that version gives permission. B. List on the Title Page, as authors, one or more persons or entities responsible for authorship of the modifications in the Modified Version, together with at least five of the principal authors of the Document (all of its principal authors, if it has fewer than five), unless they release you from this requirement. C. State on the Title page the name of the publisher of the Modified Version, as the publisher. D. Preserve all the copyright notices of the Document. E. Add an appropriate copyright notice for your modifications adjacent to the other copyright notices. F. Include, immediately after the copyright notices, a license notice giving the public permission to use the Modified Version under the terms of this License, in the form shown in the Addendum below. G. Preserve in that license notice the full lists of Invariant Sections and required Cover Texts given in the Document's license notice. H. Include an unaltered copy of this License. I. Preserve the section Entitled "History", Preserve its Title, and add to it an item stating at least the title, year, new authors, and publisher of the Modified Version as given on the Title Page. If there is no section Entitled "History" in the Document, create one stating the title, year, authors, and publisher of the Document as given on its Title Page, then add an item describing the Modified Version as stated in the previous sentence. J. Preserve the network location, if any, given in the Document for public access to a Transparent copy of the Document, and likewise the network locations given in the Document for previous versions it was based on. These may be placed in the "History" section. You may omit a network location for a work that was published at least four years before the Document itself, or if the original publisher of the version it refers to gives permission. K. For any section Entitled "Acknowledgements" or "Dedications", Preserve the Title of the section, and preserve in the section all the substance and tone of each of the contributor acknowledgements and/or dedications given therein. L. Preserve all the Invariant Sections of the Document, unaltered in their text and in their titles. Section numbers or the equivalent are not considered part of the section titles. M. Delete any section Entitled "Endorsements". Such a section may not be included in the Modified Version. N. Do not retitle any existing section to be Entitled "Endorsements" or to conflict in title with any Invariant Section. O. Preserve any Warranty Disclaimers. If the Modified Version includes new front-matter sections or appendices that qualify as Secondary Sections and contain no material copied from the Document, you may at your option designate some or all of these sections as invariant. To do this, add their titles to the list of Invariant Sections in the Modified Version's license notice. These titles must be distinct from any other section titles. You may add a section Entitled "Endorsements", provided it contains nothing but endorsements of your Modified Version by various parties--for example, statements of peer review or that the text has been approved by an organization as the authoritative definition of a standard. You may add a passage of up to five words as a Front-Cover Text, and a passage of up to 25 words as a Back-Cover Text, to the end of the list of Cover Texts in the Modified Version. Only one passage of Front-Cover Text and one of Back-Cover Text may be added by (or through arrangements made by) any one entity. If the Document already includes a cover text for the same cover, previously added by you or by arrangement made by the same entity you are acting on behalf of, you may not add another; but you may replace the old one, on explicit permission from the previous publisher that added the old one. The author(s) and publisher(s) of the Document do not by this License give permission to use their names for publicity for or to assert or imply endorsement of any Modified Version. 5. COMBINING DOCUMENTS You may combine the Document with other documents released under this License, under the terms defined in section 4 above for modified versions, provided that you include in the combination all of the Invariant Sections of all of the original documents, unmodified, and list them all as Invariant Sections of your combined work in its license notice, and that you preserve all their Warranty Disclaimers. The combined work need only contain one copy of this License, and multiple identical Invariant Sections may be replaced with a single copy. If there are multiple Invariant Sections with the same name but different contents, make the title of each such section unique by adding at the end of it, in parentheses, the name of the original author or publisher of that section if known, or else a unique number. Make the same adjustment to the section titles in the list of Invariant Sections in the license notice of the combined work. In the combination, you must combine any sections Entitled "History" in the various original documents, forming one section Entitled "History"; likewise combine any sections Entitled "Acknowledgements", and any sections Entitled "Dedications". You must delete all sections Entitled "Endorsements." 6. COLLECTIONS OF DOCUMENTS You may make a collection consisting of the Document and other documents released under this License, and replace the individual copies of this License in the various documents with a single copy that is included in the collection, provided that you follow the rules of this License for verbatim copying of each of the documents in all other respects. You may extract a single document from such a collection, and distribute it individually under this License, provided you insert a copy of this License into the extracted document, and follow this License in all other respects regarding verbatim copying of that document. 7. AGGREGATION WITH INDEPENDENT WORKS A compilation of the Document or its derivatives with other separate and independent documents or works, in or on a volume of a storage or distribution medium, is called an "aggregate" if the copyright resulting from the compilation is not used to limit the legal rights of the compilation's users beyond what the individual works permit. When the Document is included in an aggregate, this License does not apply to the other works in the aggregate which are not themselves derivative works of the Document. If the Cover Text requirement of section 3 is applicable to these copies of the Document, then if the Document is less than one half of the entire aggregate, the Document's Cover Texts may be placed on covers that bracket the Document within the aggregate, or the electronic equivalent of covers if the Document is in electronic form. Otherwise they must appear on printed covers that bracket the whole aggregate. 8. TRANSLATION Translation is considered a kind of modification, so you may distribute translations of the Document under the terms of section 4. Replacing Invariant Sections with translations requires special permission from their copyright holders, but you may include translations of some or all Invariant Sections in addition to the original versions of these Invariant Sections. You may include a translation of this License, and all the license notices in the Document, and any Warranty Disclaimers, provided that you also include the original English version of this License and the original versions of those notices and disclaimers. In case of a disagreement between the translation and the original version of this License or a notice or disclaimer, the original version will prevail. If a section in the Document is Entitled "Acknowledgements", "Dedications", or "History", the requirement (section 4) to Preserve its Title (section 1) will typically require changing the actual title. 9. TERMINATION You may not copy, modify, sublicense, or distribute the Document except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense, or distribute it is void, and will automatically terminate your rights under this License. However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, receipt of a copy of some or all of the same material does not give you any rights to use it. 10. FUTURE REVISIONS OF THIS LICENSE The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See . Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this License "or any later version" applies to it, you have the option of following the terms and conditions either of that specified version or of any later version that has been published (not as a draft) by the Free Software Foundation. If the Document does not specify a version number of this License, you may choose any version ever published (not as a draft) by the Free Software Foundation. If the Document specifies that a proxy can decide which future versions of this License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Document. 11. RELICENSING "Massive Multiauthor Collaboration Site" (or "MMC Site") means any World Wide Web server that publishes copyrightable works and also provides prominent facilities for anybody to edit those works. A public wiki that anybody can edit is an example of such a server. A "Massive Multiauthor Collaboration" (or "MMC") contained in the site means any set of copyrightable works thus published on the MMC site. "CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0 license published by Creative Commons Corporation, a not-for-profit corporation with a principal place of business in San Francisco, California, as well as future copyleft versions of that license published by that same organization. "Incorporate" means to publish or republish a Document, in whole or in part, as part of another Document. An MMC is "eligible for relicensing" if it is licensed under this License, and if all works that were first published under this License somewhere other than this MMC, and subsequently incorporated in whole or in part into the MMC, (1) had no cover texts or invariant sections, and (2) were thus incorporated prior to November 1, 2008. The operator of an MMC Site may republish an MMC contained in the site under CC-BY-SA on the same site at any time before August 1, 2009, provided the MMC is eligible for relicensing. ADDENDUM: How to use this License for your documents ==================================================== To use this License in a document you have written, include a copy of the License in the document and put the following copyright and license notices just after the title page: Copyright (C) YEAR YOUR NAME. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled ``GNU Free Documentation License''. If you have Invariant Sections, Front-Cover Texts and Back-Cover Texts, replace the "with...Texts." line with this: with the Invariant Sections being LIST THEIR TITLES, with the Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST. If you have Invariant Sections without Cover Texts, or some other combination of the three, merge those two alternatives to suit the situation. If your document contains nontrivial examples of program code, we recommend releasing these examples in parallel under your choice of free software license, such as the GNU General Public License, to permit their use in free software.  File: units.info, Node: Index, Prev: GNU Free Documentation License, Up: Top Index ***** [index] * Menu: * ! to indicate primitive units: Defining New Units. (line 6) * !endlocale: Localization. (line 6) * !endutf8: Unicode Support. (line 6) * !include: Units Data Files. (line 6) * !locale: Localization. (line 6) * !unitlist: Defining Unit List Aliases. (line 6) * !utf8: Unicode Support. (line 6) * * operator: Operators. (line 14) * ** operator: Operators. (line 70) * + operator: Sums and Differences of Units. (line 6) * - as multiplication operator: Backwards Compatibility. (line 17) * - as subtraction operator: Sums and Differences of Units. (line 6) * --check (option for units): Invoking Units. (line 50) * --check-verbose (option for units): Invoking Units. (line 59) * --compact (option for units): Invoking Units. (line 170) * --digits (option for units): Invoking Units. (line 67) * --exponential (option for units): Invoking Units. (line 84) * --file (option for units): Invoking Units. (line 115) * --file (option for units) <1>: Invoking Units. (line 137) * --help (option for units): Invoking Units. (line 146) * --info (option for units): Invoking Units. (line 256) * --locale (option for units): Invoking Units. (line 275) * --log (option for units): Invoking Units. (line 127) * --minus (option for units): Invoking Units. (line 150) * --newstar (option for units): Invoking Units. (line 165) * --oldstar (option for units): Invoking Units. (line 161) * --one-line (option for units): Invoking Units. (line 218) * --output-format (option for units): Invoking Units. (line 93) * --product (option for units): Invoking Units. (line 155) * --quiet (option for units): Invoking Units. (line 176) * --silent (option for units): Invoking Units. (line 176) * --strict (option for units): Invoking Units. (line 209) * --terse (option for units): Invoking Units. (line 225) * --unitsfile (option for units): Invoking Units. (line 270) * --verbose (option for units): Invoking Units. (line 234) * --verbose-check (option for units): Invoking Units. (line 59) * --version (option for units): Invoking Units. (line 241) * -1 (option for units): Invoking Units. (line 218) * -c (option for units): Invoking Units. (line 50) * -d (option for units): Invoking Units. (line 67) * -e (option for units): Invoking Units. (line 84) * -f (option for units): Invoking Units. (line 115) * -f (option for units) <1>: Invoking Units. (line 137) * -h (option for units): Invoking Units. (line 146) * -I (option for units): Invoking Units. (line 256) * -L (option for units): Invoking Units. (line 127) * -l (option for units): Invoking Units. (line 275) * -m (option for units): Invoking Units. (line 150) * -o (option for units): Invoking Units. (line 93) * -p (option for units): Invoking Units. (line 155) * -q (option for units): Invoking Units. (line 176) * -s (option for units): Invoking Units. (line 209) * -t (option for units): Invoking Units. (line 225) * -U (option for units): Invoking Units. (line 270) * -v (option for units): Invoking Units. (line 234) * -V (option for units): Invoking Units. (line 241) * ? for unit completion with readline: Readline Support. (line 16) * ? to show conformable units: Interactive Use. (line 131) * _ to use result of previous conversion: Previous Result. (line 6) * | operator: Operators. (line 51) * abrasive grit size: Other Nonlinear Units. (line 36) * addition of units: Sums and Differences of Units. (line 9) * additional units data files: Units Data Files. (line 6) * backwards compatibility: Backwards Compatibility. (line 6) * British Imperial measure: Unit Definitions. (line 37) * circle, area of: Other Nonlinear Units. (line 42) * command, ! to indicate primitive units: Defining New Units. (line 6) * command, !endlocale: Localization. (line 6) * command, !endutf8: Unicode Support. (line 6) * command, !endvar: Localization. (line 6) * command, !include: Units Data Files. (line 6) * command, !locale: Localization. (line 6) * command, !message: Localization. (line 6) * command, !set: Localization. (line 6) * command, !unitlist: Defining Unit List Aliases. (line 6) * command, !utf8: Unicode Support. (line 6) * command, !var: Localization. (line 6) * command, !varnot: Localization. (line 6) * command-line options: Invoking Units. (line 6) * command-line unit conversion: Command Line Use. (line 6) * commands in units database: Database Syntax. (line 6) * compatibility: Backwards Compatibility. (line 6) * compatibility with earlier versions: Backwards Compatibility. (line 6) * completion, unit, using ? (readline only): Readline Support. (line 16) * conformable units, ? to show: Interactive Use. (line 131) * currency, updating: Currency. (line 6) * Darcy-Weisbach equation: Complicated Unit Expressions. (line 7) * data files: Data Files. (line 6) * data files, additional: Units Data Files. (line 6) * database syntax summary: Database Syntax. (line 6) * defining nonlinear units: Defining Nonlinear Units. (line 6) * defining piecewise linear units: Piecewise Linear Units. (line 6) * defining prefixes: Defining New Units. (line 6) * defining unit list aliases: Defining Unit List Aliases. (line 6) * defining units: Defining New Units. (line 6) * defining units with '-': Backwards Compatibility. (line 33) * differences of units: Sums and Differences of Units. (line 9) * dimensionless units: Interactive Use. (line 129) * dimensionless units, defining: Defining New Units. (line 38) * division of numbers: Operators. (line 51) * division of units: Operators. (line 14) * domain, nonlinear unit definitions: Defining Nonlinear Units. (line 90) * environment dependent definitions: Localization. (line 6) * environment variable, HOME: Environment Vars. (line 9) * environment variable, LANG: Environment Vars. (line 20) * environment variable, LC_CTYPE: Environment Vars. (line 20) * environment variable, MYUNITSFILE: Units Data Files. (line 43) * environment variable, MYUNITSFILE <1>: Environment Vars. (line 25) * environment variable, PAGER: Environment Vars. (line 31) * environment variable, UNITSFILE: Environment Vars. (line 42) * environment variable, UNITSLOCALEMAP: Environment Vars. (line 49) * environment variable, UNITS_ENGLISH: Environment Vars. (line 38) * environment variables: Environment Vars. (line 6) * exchange rates, updating: Currency. (line 6) * exponent operator: Operators. (line 70) * files, data: Data Files. (line 6) * flags, output format: Flags. (line 6) * format specification, output: Format Specification. (line 6) * fractions, numerical: Operators. (line 51) * functions of units: Defining Nonlinear Units. (line 162) * functions, built in: Built-in Functions. (line 6) * help: Interactive Use. (line 137) * help <1>: Environment Vars. (line 31) * HOME environment variable: Environment Vars. (line 9) * hyphen as multiplication operator: Backwards Compatibility. (line 17) * Imperial measure: Unit Definitions. (line 37) * include files: Defining New Units. (line 15) * including additional units data files: Units Data Files. (line 6) * incompatible units: Interactive Use. (line 87) * interactive use: Interactive Use. (line 6) * international mile: Unit Definitions. (line 77) * international yard: Unit Definitions. (line 77) * invoking units: Invoking Units. (line 6) * LANG environment variable: Environment Vars. (line 20) * LC_CTYPE environment variable: Environment Vars. (line 20) * length measure, English customary: Unit Definitions. (line 77) * length measure, UK: Unit Definitions. (line 77) * linear interpolation: Piecewise Linear Units. (line 6) * locale: Locale. (line 6) * locale_map.txt: Locale. (line 17) * localization: Localization. (line 6) * log file: Logging Calculations. (line 6) * logging calculations: Logging Calculations. (line 6) * measure, Imperial: Unit Definitions. (line 37) * mile, international: Unit Definitions. (line 77) * minus (-) operator, subtraction: Sums and Differences of Units. (line 6) * multiplication of units: Operators. (line 14) * multiplication, hyphen: Backwards Compatibility. (line 17) * MYUNITSFILE environment variable: Units Data Files. (line 43) * MYUNITSFILE environment variable <1>: Environment Vars. (line 25) * non-conformable units: Interactive Use. (line 87) * non-interactive unit conversion: Command Line Use. (line 6) * nonlinear unit conversions: Nonlinear Conversions. (line 6) * nonlinear unit conversions <1>: Defining Nonlinear Units. (line 6) * nonlinear units, defining: Defining Nonlinear Units. (line 6) * nonlinear units, other: Other Nonlinear Units. (line 6) * numbers as units: Numbers as Units. (line 6) * numeric output format: Numeric Output Format. (line 6) * numerical fractions: Operators. (line 51) * operator precedence: Operators. (line 36) * operator, (**): Operators. (line 70) * operator, caret (^): Operators. (line 70) * operator, hyphen (-) as multiplication: Backwards Compatibility. (line 17) * operator, hyphen (-) as subtraction: Sums and Differences of Units. (line 6) * operator, minus (-): Sums and Differences of Units. (line 6) * operator, per: Operators. (line 14) * operator, plus (+): Sums and Differences of Units. (line 6) * operator, slash (/): Operators. (line 14) * operator, solidus (/): Operators. (line 14) * operator, space: Operators. (line 14) * operator, star (*): Operators. (line 14) * operator, vertical bar (|): Operators. (line 51) * operators: Operators. (line 6) * output field width: Field Width. (line 6) * output format: Numeric Output Format. (line 6) * output format flags: Flags. (line 6) * output format specification: Format Specification. (line 6) * output precision: Precision. (line 6) * PAGER environment variable: Environment Vars. (line 31) * parentheses: Operators. (line 29) * parentheses <1>: Operators. (line 36) * parentheses <2>: Operators. (line 70) * parentheses <3>: Sums and Differences of Units. (line 33) * parentheses <4>: Complicated Unit Expressions. (line 27) * parentheses <5>: Defining New Units. (line 47) * parentheses <6>: Defining New Units. (line 71) * parentheses <7>: Defining Nonlinear Units. (line 36) * per operator: Operators. (line 14) * personal units data file: Units Data Files. (line 28) * piecewise linear units: Piecewise Linear Units. (line 6) * plus (+) operator: Sums and Differences of Units. (line 6) * powers: Operators. (line 70) * precision, output: Precision. (line 6) * prefixes: Unit Definitions. (line 56) * prefixes and exponents: Operators. (line 82) * prefixes, definition of: Defining New Units. (line 6) * previous result: Previous Result. (line 6) * primitive units: Defining New Units. (line 6) * products of units: Operators. (line 14) * quotients of units: Operators. (line 14) * range, nonlinear unit definitions: Defining Nonlinear Units. (line 90) * readline, use with units: Readline Support. (line 6) * reciprocal conversion: Interactive Use. (line 62) * roots: Built-in Functions. (line 27) * setlocale function: Locale. (line 17) * slash (/) operator: Operators. (line 14) * solidus (/) operator: Operators. (line 14) * sphere, volume of: Other Nonlinear Units. (line 42) * square roots: Built-in Functions. (line 27) * star (*) operator: Operators. (line 14) * State Plane Coordinate System, US: Unit Definitions. (line 77) * strict conversion: Interactive Use. (line 71) * subtraction of units: Sums and Differences of Units. (line 9) * sums and differences of units: Sums and Differences of Units. (line 6) * sums of units: Sums and Differences of Units. (line 9) * sums of units <1>: Unit Lists. (line 6) * survey foot, US: Unit Definitions. (line 77) * survey measure, US: Unit Definitions. (line 77) * survey mile, US: Unit Definitions. (line 77) * syntax of units database: Database Syntax. (line 6) * temperature conversions: Temperature Conversions. (line 6) * Unicode support: Unicode Support. (line 6) * unit completion using ? (readline only): Readline Support. (line 16) * unit definitions: Unit Definitions. (line 6) * unit expressions: Unit Expressions. (line 6) * unit expressions, complicated: Complicated Unit Expressions. (line 6) * unit list aliases, defining: Defining Unit List Aliases. (line 6) * unit lists: Unit Lists. (line 6) * unit name completion: Readline Support. (line 19) * units data file, personal: Units Data Files. (line 28) * units data files, additional: Units Data Files. (line 6) * units definitions, adding: Defining New Units. (line 6) * units definitions, changing: Defining New Units. (line 6) * units functions: Defining Nonlinear Units. (line 162) * units quotients: Operators. (line 14) * units, definition of: Defining New Units. (line 6) * units, lookup method: Unit Definitions. (line 47) * units, piecewise linear: Piecewise Linear Units. (line 6) * units, primitive: Defining New Units. (line 6) * units, sums and differences: Sums and Differences of Units. (line 6) * units, sums of: Unit Lists. (line 6) * UNITSFILE environment variable: Environment Vars. (line 42) * UNITSLOCALEMAP environment variable: Environment Vars. (line 49) * UNITS_ENGLISH environment variable: Environment Vars. (line 38) * US State Plane Coordinate System: Unit Definitions. (line 77) * US survey foot: Unit Definitions. (line 77) * US survey measure: Unit Definitions. (line 77) * US survey mile: Unit Definitions. (line 77) * UTF-8: Unicode Support. (line 6) * verbose output: Interactive Use. (line 53) * verbose output <1>: Interactive Use. (line 71) * vertical bar (|) operator: Operators. (line 51) * volume measure, English customary: Unit Definitions. (line 62) * white space: Operators. (line 36) * white space <1>: Previous Result. (line 34) * wire gauge: Other Nonlinear Units. (line 14) * yard, international: Unit Definitions. (line 77)  Tag Table: Node: Top845 Node: Overview2327 Ref: Overview-Footnote-14091 Node: Interactive Use4285 Node: Command Line Use10181 Node: Unit Definitions11427 Node: Unit Expressions17637 Node: Operators18250 Node: Sums and Differences of Units23617 Node: Numbers as Units25659 Node: Built-in Functions26464 Node: Previous Result27747 Node: Complicated Unit Expressions30073 Node: Backwards Compatibility31708 Node: Nonlinear Conversions33609 Node: Temperature Conversions34048 Node: Other Nonlinear Units36113 Node: Unit Lists39250 Node: Logging Calculations48022 Node: Invoking Units50682 Ref: Invoking Units-Footnote-163408 Node: Defining Your Own Units63662 Node: Units Data Files64200 Node: Defining New Units66688 Node: Defining Nonlinear Units70591 Node: Piecewise Linear Units78768 Node: Defining Unit List Aliases82525 Node: Numeric Output Format83685 Node: Format Specification84958 Node: Flags86920 Node: Field Width89003 Node: Precision90038 Node: Localization92495 Node: Locale92938 Node: Additional Localization94951 Node: Environment Vars99404 Node: Data Files101963 Node: Unicode Support103750 Node: Readline Support106710 Node: Currency108854 Node: Database Syntax110057 Node: GNU Free Documentation License112120 Node: Index137252  End Tag Table units-2.16/texi2man0000775000175000017500000003225012270035511013537 0ustar adrianadrian#!/usr/bin/perl # $Id: $ # Written by Adrian Mariano, additional features by Eric Backus and # Jeff Conrad. # Script to translate a texinfo file into an nroff/troff manual page. # last revision: 20 January 2014 Jeff Conrad $version="1.01s"; $html=0; $example=0; $ignore=0; $tex=0; $doman=0; $title=0; $diditem=0; $justdidlp=1; $noman=0; $manprefix=""; $args=($#ARGV < 0) ? "stdin" : "@ARGV"; printf(".\\\"Do not edit this file. It was created from %s\n", $args); printf(".\\\"using texi2man version %s on %s", $version, `date`); while(<>) { # use font CW in tables if (/\@c man\s+l\s/) { s/\@c man //; s/l/lfCWp-1/; print; next; } if (s/\@c man //) { print; if (/\.TH/) { add_extensions(); } next; } if (/\@c noman/) { $noman=1; next; } if (/\@c end noman/) { $noman=0; next; } if ($noman) { next; } if (/\@c ifman\s*(.*)/) { $doman=1; $manprefix = $1; next; } if (/\@c end ifman/) { $doman=0; $manprefix = ""; next; } if (/^\\input/) { next; } if (/^\*/) { next; } if (/^START-INFO-DIR-ENTRY/) { next; } if (/^END-INFO-DIR-ENTRY/) { next; } if (/\@titlepage/) { $title=1; next; } if (/\@end titlepage/) { $title=0; next; } if (/\@tex/) { $tex=1; next; } if (/\@end tex/) { $tex=0; next; } if (/\@ignore/) { $ignore=1; next; } if (/\@end ignore/) { $ignore=0; next; } if (/\@ifhtml/) { $html=1; next; } if (/\@end ifhtml/) { $html=0; next; } if (!$doman && ($ignore || $html || $title || $tex)) { next; } if (/\@codequoteundirected/) { next; } s/\@\*$/\n\.br/g; s/^\@\*/.br/g; s/\@\*$/\n.br/g; s/\@ / /g; s/\@dmn\{([^}]*)}/\\|$1/g; s/\@tie\{}/\@no_break_space\{}/g; s/\@w\{}/\@no_break_space\{}/g; s/\@backslashchar\{}/\\e/g; # ellipsis, defined in extensions s/\@dots\{}/\\*(El/g; s/\@cite\{([^}]*)}/\@in_sgl_quotes\{$1}/g; s/\@url\{([^}]*)}/\@in_sgl_quotes\{$1}/g; s/\@email\{([^}]*)}/\@in_sgl_quotes\{$1}/g; s/\@dfn\{([^}]*)}/\@in_italics\{$1}/g; s/\@emph\{([^}]*)}/\@in_italics\{$1}/g; s/\@i\{([^}]*)}/\@in_italics\{$1}/g; s/\@r\{([^}]*)}/\@in_roman\{$1}/g; s/\@var\{([^}]*)}/\@in_italics\{$1}/g; s/\@b\{([^}]*)}/\@in_bold\{$1}/g; s/\@strong\{([^}]*)}/\@in_bold\{$1}/g; # remove trailing comma from xref because man won't include the page number s/\@xref\{([^}]*)},/\@xref\{$1}/g; s/\@xref\{([^}]*)}/See \@in_italics\{$1}/g; s/\@ref\{([^}]*)}/\@ref\{$1}/g; s/\@ref\{([^}]*)}/\@in_italics\{$1}/g; s/\@pxref\{([^}]*)}/see \@in_italics\{$1}/g; s/\@uref\{([^}]*)}/\@in_roman\{$1}/g; if (/\@chapter.*\@command/) { s/\@command\{([^}]*)}/\@in_italics\{$1}/g; } # show in constant-width font s/\@code\{([^}]*)}/\@constwid\{$1}/g; s/\@command\{([^}]*)}/\@constwid\{$1}/g; s/\@env\{([^}]*)}/\@constwid\{$1}/g; # show in constant-width oblique font s/\@kbd\{([^}]*)}/\@constwidI\{$1}/g; # show in constant-width font with single quotes s/\@file\{([^}]*)}/\@constwidQ\{$1}/g; s/\@option\{([^}]*)}/\@constwidQ\{$1}/g; # Pass ASCII double quotes to .CQ encoded as two double quotes # disallow single quotes here because groff converts them to # typographical closing quotes. # This substitution works only in very limited circumstances, and # needs extension to handle the general case of ASCII quotes in # sample text s/\@samp\{([^}]*)["']{2,2}}/\@samp\{$1""""}/g; s/\@samp\{(.*\@(tie|no_break_space)\{})["']{2,2}}/\@samp\{$1""""}/g; s/\@samp\{([^}]*)}/\@constwidQ\{$1}/g; s/\@sc\{([^}]*)}/\@to_upper\{$1}/g; s/\@key\{([^}]*)}/\@in_italics\{$1}/g; s/\@footnote\{([^}]*)}/\@in_square_br\{$1}/g; s/\@math\{([^}]*)}/\@no_decoration\{$1}/g; if (/\@w\{([^}]*)}/) { s/\@w\{([^}]*)}/\@no_break_word\{$1}/g; } s/\@minus\{}/\\-/g; s/\@copyright\{}/\\(co/g; s/\@noindent//; s/\@\{/{/g; s/\@}/}/g; s/\@\@/@/g; s/---/\\(em/g; s/\@in_sgl_quotes\{([^}]+)}/`$1'/g; s/\@in_dbl_quotes\{([^}]+)}/\"$1\"/g; s/\@in_italics\{([^}]+)}/\\fI$1\\fP/g; s/\@in_roman\{([^}]+)}/\\fR$1\\fP/g; s/\@in_bold\{([^}]+)}/\\fB$1\\fP/g; s/\@to_upper\{([^}]*)}/\U$1\E/g; s/\@no_decoration\{([^}]*)}/$1/g; if (/\@no_break_word\{([^}]+)}(\S*)/) { $_ = no_break_word("$_", '@no_break_word'); } s/\@no_break_space\{}/\\ /g; s/\@[ ]/ /g; s/\@in_angle_br\{([^}]*)}/<$1>/g; s/\@in_square_br\{([^}]*)}/[$1]/g; # set up to use CW, CI, and CQ macros # put every instance on a new line # ensure that prepended and appended macros go on separate lines # separate concatenated commands with spaces s/([}])(\@constwid[IQ]*)/$1 $2/g; s/(\@constwid[IQ]*\{[^}]+})(\@)/$1 $2/g; # space before -> newline s/\s+(\S*\@constwid[IQ]*\{[^}]+}\S*)/\n$1/g; # space after -> newline s/(\S*\@constwid[IQ]*\{[^}]+}\S*)\s+/$1\n/g; if (/(\S*)\@constwidI\{([^}]+)}(\S*)/) { $_ = CW_macro("$_", '@constwidI', ".CI"); } if (/(\S*)\@constwidQ\{([^}]+)}(\S*)/) { $_ = CW_macro("$_", '@constwidQ', ".CQ"); } if (/(\S*)\@constwid\{([^}]+)}(\S*)/) { $_ = CW_macro("$_", '@constwid', ".CW"); } # handle backslash character in sample s/(\.C[IQW]\s+\S+\s+)"\\"/$1"\\e"/g; s/(\.C[IQW]\s+)"\\"/$1"\\e"/g; # handle backslash character in Windows pathname # starts with a drive specifier ... if (/(\.C[IQW]\s+"[[:alpha:]]:)/) { # don't change font switches or escaped spaces s/(\S)\\(?!(\s|f[RIBP]|f\([A-Z]{2}))/$1\\e/g; } # some versions of n/troff don't have \(en, so use \- # don't replace double hyphens in C[IQW] macros; assume true en # dashes will be closed up to previous word s/([^" ]+)--/$1\\-/g; s/\@value\{([^\s]+)}/$value{$1}/eg; if (/\@set\s+([^\s]+)\s+(.*)$/) { $value{$1} = $2; next; } if (/\@clear\s+([^\s]+)\s+(.*)$/) { delete $value{$1}; next; } # works only for @item and @itemx as used in units(1) if (/\@itemx (.*)/) { $samp = $1; # add hair space to visually separate the hyphens in roman type $samp =~ s/--/-\\^-/; $samp =~ s/-([[:alnum:]])/-\\^$1/; if (!$diditem) { printf(".TP\n.BR \"$samp\""); } else { printf(" \", \" \"$samp\""); } $diditem=1; next; } elsif ($diditem) { printf("\n"); $diditem=0; } if (/\@item (.*)/) { $samp = $1; # add hair space to visually separate the hyphens in roman type $samp =~ s/--/-\\^-/; $samp =~ s/-([[:alnum:]])/-\\^$1/; printf("%s.TP\n%s.BR \"$samp\"", $manprefix, $manprefix); $diditem=1; next; } if (s/\@chapter (.*)/.SH \U$1\E/) { # restore proper case on font switches s/\\FR/\\fR/g; s/\\FI/\\f(BI/g; # chapter headings (SH in man) are bold s/\\FP/\\fP/g; printf("%s%s", $manprefix, $_); $justdidlp=1; next; } if (s/\@section (.*)/$1/) { printf("%s.SS %s", $manprefix, $_); next; } # FIXME? why do we need $manprefix for these? # input/output example macros if (/\@example/) { printf("%s.ES\n", $manprefix); $example=1; next; } if (/\@end example/) { printf("%s.EE\n", $manprefix); $example=0; $justdidlp=0; next; } if (/\@smallexample/) { printf("%s.ES S\n", $manprefix); $example=1; next; } if (/\@end smallexample/) { printf("%s.EE\n", $manprefix); $example=0; $justdidlp=0; next; } # no CW font if (/\@display/) { printf("%s.DS\n", $manprefix, $manprefix); $example=1; next; } if (/\@end display/) { printf("%s.DE\n", $manprefix, $manprefix); $example=0; next; } # no CW font, no indent if (/\@format/) { printf("%s.nf\n", $manprefix); $example=1; next; } if (/\@end format/) { printf("%s.fi\n", $manprefix); $example=0; next; } if ($example) { s/\\\s*$/\\e\n/ }; if (!$example && /^\s*$/ && !$doman) { if ($justdidlp) { next; } printf(".PP\n"); $justdidlp=1; next; } if (/^\@/) { next; } printf("%s%s", $manprefix, $_); if (!$doman) { $justdidlp=0; } } # Extensions to legacy man macro package. groff loads the man macro file # after the call of TH, so these definitions must likewise follow that # call of TH if they are overwrite any groff extensions with the same # names that might be added in the future. sub add_extensions { # ensure that ASCII circumflex U+005E (^) is not remapped with groff printf(".\\\"\n"); printf(".\\\" ensure that ASCII circumflex U+005E (^) is not remapped with groff\n"); printf(".if \\n(.g .tr ^\\(ha\n"); # ellipsis: space periods with troff but not with nroff printf(".\\\" ellipsis: space periods with troff but not with nroff\n"); printf(".if n .ds El \\&...\n"); printf(".if t .ds El \\&.\\ .\\ .\n"); # constant-width font printf(".\\\"\n"); printf(".\\\" Extensions to man macros\n"); printf(".\\\"\n"); printf(".\\\" Constant-width font\n"); printf(".de CW\n"); printf(".hy 0\n"); # just single quotes with nroff printf(".if n \\{\\\n"); printf(".ie \\\\n(.\$>2 \\&\\\\\$1'\\\\\$2'\\\\\$3\n"); printf(".el \\&'\\\\\$1'\\\\\$2\n"); printf(".\\}\n"); # constant-width font with troff printf(".if t \\{\\\n"); printf(".ie \\\\n(.\$>2 \\&\\\\\$1\\f(CW\\\\\$2\\fR\\\\\$3\n"); printf(".el \\&\\f(CW\\\\\$1\\fR\\\\\$2\n"); printf(".\\}\n"); printf(".hy 14\n"); printf("..\n"); # constant-width oblique font printf(".\\\" Constant-width oblique font\n"); printf(".de CI\n"); printf(".hy 0\n"); # single quotes with nroff printf(".if n \\{\\\n"); printf(".ie \\\\n(.\$>2 \\&\\\\\$1'\\fI\\\\\$2\\fR'\\\\\$3\n"); printf(".el \\&'\\fI\\\\\$1\\fR'\\\\\$2\n"); printf(".\\}\n"); # constant-width oblique font with troff printf(".if t \\{\\\n"); printf(".ie \\\\n(.\$>2 \\&\\\\\$1\\f(CI\\\\\$2\\fR\\\\\$3\n"); printf(".el \\&\\f(CI\\\\\$1\\fR\\\\\$2\n"); printf(".\\}\n"); printf(".hy 14\n"); printf("..\n"); # constant-width font with quotes with troff printf(".\\\" Constant-width font with quotes\n"); printf(".de CQ\n"); printf(".hy 0\n"); # just single quotes with nroff printf(".if n \\{\\\n"); printf(".ie \\\\n(.\$>2 \\&\\\\\$1'\\\\\$2'\\\\\$3\n"); printf(".el \\&'\\\\\$1'\\\\\$2\n"); printf(".\\}\n"); # constant-width font with troff printf(".if t \\{\\\n"); # quotes passed as literal text encoded as \(fm # make it a double quote because groff converts ` and ' to opening and # closing quotes printf(".ie \\\\n(.\$>2 \\&\\\\\$1`\\f(CW\\\\\$2\\fR'\\\\\$3\n"); printf(".el \\&`\\f(CW\\\\\$1\\fR'\\\\\$2\n"); printf(".\\}\n"); printf(".hy 14\n"); printf("..\n"); # Display Start--indent, no fill printf(".\\\" Display start\n"); printf(".de DS\n"); printf(".hy 0\n"); printf(".if t .in +4n\n"); printf(".if n .in +3n\n"); printf(".nf\n"); printf("..\n"); # Display End printf(".\\\" Display end\n"); printf(".de DE\n"); printf(".fi\n"); printf(".in\n"); printf(".hy 14\n"); printf("..\n"); # Example Start--like display, but with font CW printf(".\\\" Example start\n"); printf(".de ES\n"); # call before size or font change to get consistent indent printf(".DS\n"); # CW font with troff; optionally reduce size printf(".if t \\{\\\n"); printf(".if '\\\\\$1'S' \\{\\\n"); printf(".nr Ex 1\n"); printf(".ps -1\n"); printf(".\\}\n"); printf(".el .nr Ex 0\n"); printf(".nr mE \\\\n(.f\n"); printf(".ft CW\n"); printf(".\\}\n"); printf("..\n"); # Example End printf(".\\\" Example end\n"); printf(".de EE\n"); # restore font and size with troff printf(".if t \\{\\\n"); printf(".ft \\\\n(mE\n"); printf(".if \\\\n(Ex=1 .ps\n"); printf(".\\}\n"); printf(".DE\n"); printf("..\n"); } # convert texinfo commands to .C[IQW] macros sub CW_macro { my $line = shift; my $from = shift; my $to = shift; # prepended and appended punctuation $line =~ s/(\S+)$from\{([^}]+)}(\S+)/$to $1 "$2" $3/g; # prepended punctuation $line =~ s/(\S+)$from\{([^}]+)}/$to $1 "$2" ""/g; # appended punctuation $line =~ s/$from\{([^}]+)}(\S+)/$to "$1" $2/g; # just the argument $line =~ s/$from\{([^}]+)}/$to "$1"/g; return $line; } # convert all spaces within @w{...} to unbreakable sub no_break_word { my $line = shift; my $pattern = (shift) . "\{"; my $len = length($pattern); my $ndx = -1; my $bracelevel = 0; my $char; while (($ndx = index($line, $pattern, $ndx)) > -1) { # get rid of the @ command and opening brace substr($line, $ndx, $len, ''); $bracelevel = 1; while ($bracelevel > 0) { $char = substr($line, $ndx, 1); # end of line and braces not closed if ($char eq "") { last; } elsif ($char eq '{') { $bracelevel++; } elsif ($char eq '}') { $bracelevel--; } # make spaces nonbreaking if ($char eq ' ') { substr($line, $ndx++, 1, '\ '); $ndx++; # assume multiple spaces are not wanted while (substr($line, $ndx, 1) eq ' ') { substr($line, $ndx, 1, ''); } } $ndx++; } # get rid of the closing brace for the @ command. This should # always be true unless there’s an internal brace mismatch ... if (substr($line, $ndx - 1, 1) eq '}' ) { substr($line, $ndx - 1, 1, ''); } else { die "Missing closing '}'"; } } return $line; } units-2.16/makeobjs.cmd0000664000175000017500000000330110641165333014343 0ustar adrianadrian/* * Make a program object for the OS/2 version of units * Peter Weilbacher (os2@Weilbacher.org), 25Jan2003 * * Copyright (C) 1996, 1997, 1999 Free Software Foundation, Inc * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA * */ call RxFuncAdd SysLoadFuncs, REXXUtil, SysLoadFuncs call SysLoadFuncs workdir = Directory() classname='WPProgram' title = 'units' location = '' setup = 'OBJECTID=;'||, 'EXENAME=CMD.EXE;'||, 'PARAMETERS=/c mode co50,5 & units.exe [from-unit] [to-unit] & pause;'||, 'STARTUPDIR='workdir if SysCreateObject(classname, title, location, setup, 'U') then say 'Object created.' else say 'Could NOT create the object!!' title = 'units Shell' location = '' setup = 'OBJECTID=;'||, 'EXENAME=CMD.EXE;'||, 'PARAMETERS=/c mode co80,25 & units.exe;'||, 'STARTUPDIR='workdir if SysCreateObject(classname, title, location, setup, 'U') then say 'Object created.' else say 'Could NOT create the object!!' units-2.16/currency.units0000664000175000017500000003337713176227177015034 0ustar adrianadrian# ISO Currency Codes ATS austriaschilling BEF belgiumfranc CYP cypruspound EEK estoniakroon FIM finlandmarkka FRF francefranc DEM germanymark GRD greecedrachma IEP irelandpunt ITL italylira LVL latvialat LTL lithuanialita LUF luxembourgfranc MTL maltalira SKK slovakiakornua SIT sloveniatolar ESP spainpeseta NLG netherlandsguilder PTE portugalescudo CVE capeverdeescudo BGN bulgarialev BAM bosniaconvertiblemark KMF comorosfranc XOF westafricanfranc XPF cfpfranc XAF centralafricancfafranc AED uaedirham AFN afghanafghani ALL albanialek AMD armeniadram AOA angolakwanza ARS argentinapeso AUD australiadollar AWG arubaflorin AZN azerbaijanmanat BBD barbadosdollar BDT bangladeshtaka BHD bahraindinar BIF burundifranc BMD bermudadollar BND bruneidollar BOB boliviaboliviano BRL brazilreal BSD bahamasdollar BTN bhutanngultrum BWP botswanapula BYN belarusruble BYR oldbelarusruble BZD belizedollar CAD canadadollar CDF drcfranccongolais CHF swissfranc CLP chilepeso CNY chinayuan COP colombiapeso CRC costaricacolon CUP cubapeso CZK czechkoruna DJF djiboutifranc DKK denmarkkrona DOP dominicanrepublicpeso DZD algeriadinar EGP egyptpound ERN eritreanakfa ETB ethiopianbirr EUR euro FJD fijidollar FKP falklandislandspound GBP ukpound GEL georgialari GHS ghanacedi GIP gibraltarpound GMD gambiadalasi GNF guineafranc GTQ guatemalaquetzal GYD guyanadollar HKD hongkongdollar HNL honduraslempira HRK croatiakuna HTG haitigourde HUF hungariaforint IDR indonesiarupiah ILS israelnewshekel INR indiarupee IQD iraqdinar IRR iranrial ISK icelandkrona JMD jamaicadollar JOD jordandinar JPY japanyen KES kenyaschilling KGS kyrgyzstansom KHR cambodiariel KPW northkoreawon KRW southkoreawon KWD kuwaitdinar KYD caymanislandsdollar KZT kazakhstantenge LAK laokip LBP lebanonpound LKR srilankanrupee LRD liberiadollar LYD libyadinar MAD moroccodirham MDL moldovaleu MGA madagascarariary MKD macedoniadenar MMK myanmarkyat MNT mongoliatugrik MOP macaupataca MRO mauritaniaouguiya MUR mauritiusrupee MVR maldiverufiyaa MWK malawikwacha MXN mexicopeso MYR malaysiaringgit MZN mozambicanmetical NAD namibiadollar NGN nigerianaira NIO nicaraguacordobaoro NOK norwaykrone NPR nepalrupee NZD newzealanddollar OMR omanrial PAB panamabalboa PEN perunuevosol PGK papuanewguineakina PHP philippinepeso PKR pakistanrupee PLN polandzloty PYG paraguayguarani QAR qatarrial RON romanianewlei RSD serbiadinar RUB russiaruble RWF rwandafranc SAR saudiarabiariyal SBD solomonislandsdollar SCR seychellesrupee SDG sudanpound SEK swedenkrona SGD singaporedollar SHP sainthelenapound SLL sierraleoneleone SOS somaliaschilling SRD surinamedollar STD saotome&principedobra SVC elsalvadorcolon SYP syriapound SZL swazilandlilangeni THB thailandbaht TJS tajikistansomoni TMT turkmenistanmanat TND tunisiadinar TOP tongapa'anga TRY turkeylira TTD trinidadandtobagodollar TWD taiwandollar TZS tanzaniashilling UAH ukrainehryvnia UGX ugandaschilling USD unitedstatesdollar UYU uruguaypeso UZS uzbekistansum VEF venezuelabolivar VEB venezuelaoldbolivar VND vietnamdong VUV vanuatuvatu WST samoatala XCD eastcaribbeandollar XDR specialdrawingrights YER yemenrial ZAR southafricarand ZMW zambiakwacha ZWL zimbabwedollar # Currency exchange rates from Yahoo Finance (finance.yahoo.com) !message Currency exchange rates from finance.yahoo.com on 2017-10-31 austriaschilling 1|13.7603 euro belgiumfranc 1|40.3399 euro cypruspound 1|0.585274 euro estoniakroon 1|15.6466 euro # Equal to 1|8 germanymark finlandmarkka 1|5.94573 euro francefranc 1|6.55957 euro germanymark 1|1.95583 euro greecedrachma 1|340.75 euro irelandpunt 1|0.787564 euro italylira 1|1936.27 euro latvialat 1|0.620550 US$ lithuanialita 1|3.048700 US$ luxembourgfranc 1|40.3399 euro maltalira 1|0.4293 euro slovakiakornua 1|30.1260 euro sloveniatolar 1|239.640 euro spainpeseta 1|166.386 euro netherlandsguilder 1|2.20371 euro portugalescudo 1|200.482 euro capeverdeescudo 1|94.809998 US$ bulgarialev 1|1.680600 US$ bosniaconvertiblemark 1|1.683500 US$ comorosfranc 1|423.399994 US$ westafricanfranc 1|655.957 euro cfpfranc 1|119.33 euro centralafricancfafranc 1|563.330017 US$ uaedirham 1|3.672500 US$ afghanafghani 1|68.290001 US$ albanialek 1|114.349998 US$ armeniadram 1|482.369995 US$ angolakwanza 1|165.097000 US$ argentinapeso 1|17.629000 US$ australiadollar 1|1.305600 US$ arubaflorin 1|1.780000 US$ azerbaijanmanat 1|1.699700 US$ barbadosdollar 1|2.000000 US$ bangladeshtaka 1|82.779999 US$ bahraindinar 1|0.376800 US$ burundifranc 1|1740.550049 US$ bermudadollar 1|1.000000 US$ bruneidollar 1|1.362700 US$ boliviaboliviano 1|6.860000 US$ brazilreal 1|3.270700 US$ bahamasdollar 1|1.000000 US$ bhutanngultrum 1|64.775002 US$ botswanapula 1|10.499200 US$ belarusruble 1|1.950000 US$ oldbelarusruble 10000 BYN belizedollar 1|1.997800 US$ canadadollar 1|1.290260 US$ drcfranccongolais 1|1565.500000 US$ swissfranc 1|0.999300 US$ chilepeso 1|635.950012 US$ chinayuan 1|6.634500 US$ colombiapeso 1|3039.800049 US$ costaricacolon 1|565.630005 US$ cubapeso 1|1.000000 US$ czechkoruna 1|22.050900 US$ djiboutifranc 1|176.830002 US$ denmarkkrona 1|6.396780 US$ dominicanrepublicpeso 1|47.029999 US$ algeriadinar 1|114.959999 US$ egyptpound 1|17.600000 US$ eritreanakfa 1|15.280000 US$ ethiopianbirr 1|27.049999 US$ euro 1|0.859400 US$ fijidollar 1|2.075000 US$ falklandislandspound 1|0.752200 US$ ukpound 1|0.753260 US$ georgialari 1|2.601200 US$ ghanacedi 1|4.388500 US$ gibraltarpound 1|0.752500 US$ gambiadalasi 1|47.099998 US$ guineafranc 1|8897.000000 US$ guatemalaquetzal 1|7.343000 US$ guyanadollar 1|204.289993 US$ hongkongdollar 1|7.801500 US$ honduraslempira 1|23.452000 US$ croatiakuna 1|6.460700 US$ haitigourde 1|61.610001 US$ hungariaforint 1|267.369995 US$ indonesiarupiah 1|13590.000000 US$ israelnewshekel 1|3.516900 US$ indiarupee 1|64.738998 US$ iraqdinar 1|1166.000000 US$ iranrial 1|34954.000000 US$ icelandkrona 1|105.250000 US$ jamaicadollar 1|125.879997 US$ jordandinar 1|0.707500 US$ japanyen 1|113.870003 US$ kenyaschilling 1|103.449997 US$ kyrgyzstansom 1|68.721001 US$ cambodiariel 1|4042.000000 US$ northkoreawon 1|900.000000 US$ southkoreawon 1|1117.000000 US$ kuwaitdinar 1|0.302100 US$ caymanislandsdollar 1|0.820000 US$ kazakhstantenge 1|334.820007 US$ laokip 1|8295.000000 US$ lebanonpound 1|1505.699951 US$ srilankanrupee 1|153.550003 US$ liberiadollar 1|118.900002 US$ libyadinar 1|1.371700 US$ moroccodirham 1|9.500000 US$ moldovaleu 1|17.264999 US$ madagascarariary 1|3145.000000 US$ macedoniadenar 1|52.639999 US$ myanmarkyat 1|1363.000000 US$ mongoliatugrik 1|2448.000000 US$ macaupataca 1|8.035300 US$ mauritaniaouguiya 1|351.320007 US$ mauritiusrupee 1|34.150002 US$ maldiverufiyaa 1|15.570000 US$ malawikwacha 1|716.150024 US$ mexicopeso 1|19.164801 US$ malaysiaringgit 1|4.232000 US$ mozambicanmetical 1|60.200001 US$ namibiadollar 1|14.134000 US$ nigerianaira 1|356.000000 US$ nicaraguacordobaoro 1|30.330000 US$ norwaykrone 1|8.175880 US$ nepalrupee 1|103.550003 US$ newzealanddollar 1|1.449700 US$ omanrial 1|0.384800 US$ panamabalboa 1|1.000000 US$ perunuevosol 1|3.248500 US$ papuanewguineakina 1|3.207800 US$ philippinepeso 1|51.619999 US$ pakistanrupee 1|105.099998 US$ polandzloty 1|3.643900 US$ paraguayguarani 1|5623.000000 US$ qatarrial 1|3.775600 US$ romanianewlei 1|3.955400 US$ serbiadinar 1|102.204498 US$ russiaruble 1|58.318001 US$ rwandafranc 1|831.270020 US$ saudiarabiariyal 1|3.750000 US$ solomonislandsdollar 1|7.810000 US$ seychellesrupee 1|13.503000 US$ sudanpound 1|6.659700 US$ swedenkrona 1|8.379910 US$ singaporedollar 1|1.363340 US$ sainthelenapound 1|0.752500 US$ sierraleoneleone 1|7620.000000 US$ somaliaschilling 1|559.000000 US$ surinamedollar 1|7.380000 US$ saotome&principedobra 1|21066.199219 US$ elsalvadorcolon 1|8.750000 US$ syriapound 1|514.979980 US$ swazilandlilangeni 1|14.138000 US$ thailandbaht 1|33.160000 US$ tajikistansomoni 1|8.803300 US$ turkmenistanmanat 1|3.410000 US$ tunisiadinar 1|2.495700 US$ tongapa'anga 1|2.289000 US$ turkeylira 1|3.790800 US$ trinidadandtobagodollar 1|6.724700 US$ taiwandollar 1|30.163000 US$ tanzaniashilling 1|2239.000000 US$ ukrainehryvnia 1|26.870001 US$ ugandaschilling 1|3644.000000 US$ unitedstatesdollar US$ uruguaypeso 1|29.200001 US$ uzbekistansum 1|8061.000000 US$ venezuelabolivar 1|9.974500 US$ venezuelaoldbolivar 1000 VEF vietnamdong 1|22699.000000 US$ vanuatuvatu 1|106.190002 US$ samoatala 1|2.572200 US$ eastcaribbeandollar 1|2.700000 US$ specialdrawingrights 1|0.711903 US$ yemenrial 1|249.949997 US$ southafricarand 1|14.135100 US$ zambiakwacha 1|10.000000 US$ zimbabwedollar 1|322.355011 US$ bitcoin 6370.11 US$ # From services.packetizer.com/btc # Precious metals prices from Packetizer (services.packetizer.com/spotprices) platinumprice 920.00 US$/troyounce silverprice 16.72 US$/troyounce goldprice 1271.05 US$/troyounce units-2.16/units_cur0000775000175000017500000002675013176223147014045 0ustar adrianadrian#!/usr/bin/python # # For Python 2 & 3 compatibility from __future__ import absolute_import, division, print_function # # version = '4.1' # 30 October 2017 # # Fixed to include USD in the list of currency codes. # # Version 4 # 2 October 2017 # # Complete rewrite to use Yahoo YQL API due to removal of TimeGenie RSS feed. # Switched to requests library using JSON. One program now runs under # Python 2 or Python 3. Thanks to Ray Hamel for some help with this update. # Normal imports import requests import codecs from argparse import ArgumentParser from collections import OrderedDict from datetime import date from os import linesep from sys import exit, stderr, stdout outfile_name = 'currency.units' # This exchange rate table lists the currency ISO 4217 codes, their # long text names, and any fixed definitions. If the definition is # empty then units_cur will query the server for a value. currency = OrderedDict([ ('ATS', ['austriaschilling', '1|13.7603 euro']), ('BEF', ['belgiumfranc', '1|40.3399 euro']), ('CYP', ['cypruspound', '1|0.585274 euro']), ('EEK', ['estoniakroon', '1|15.6466 euro # Equal to 1|8 germanymark']), ('FIM', ['finlandmarkka', '1|5.94573 euro']), ('FRF', ['francefranc', '1|6.55957 euro']), ('DEM', ['germanymark', '1|1.95583 euro']), ('GRD', ['greecedrachma', '1|340.75 euro']), ('IEP', ['irelandpunt', '1|0.787564 euro']), ('ITL', ['italylira', '1|1936.27 euro']), ('LVL', ['latvialats', '1|0.702804 euro']), ('LTL', ['lithuanialitas', '1|3.4528 euro']), ('LUF', ['luxembourgfranc', '1|40.3399 euro']), ('MTL', ['maltalira', '1|0.4293 euro']), ('SKK', ['slovakiakornua', '1|30.1260 euro']), ('SIT', ['sloveniatolar', '1|239.640 euro']), ('ESP', ['spainpeseta', '1|166.386 euro']), ('NLG', ['netherlandsguilder','1|2.20371 euro']), ('PTE', ['portugalescudo', '1|200.482 euro']), ('CVE', ['capeverdeescudo', '1|110.265 euro']), ('BGN', ['bulgarialev', '1|1.9558 euro']), ('BAM', ['bosniaconvertiblemark','germanymark']), ('KMF', ['comorosfranc', '1|491.96775 euro']), ('XOF', ['westafricanfranc', '1|655.957 euro']), ('XPF', ['cfpfranc', '1|119.33 euro']), ('XAF', ['centralafricancfafranc','1|655.957 euro']), ('AED', ['uaedirham','']), ('AFN', ['afghanafghani','']), ('ALL', ['albanialek','']), ('AMD', ['armeniadram','']), ('AOA', ['angolakwanza','']), ('ARS', ['argentinapeso','']), ('AUD', ['australiadollar','']), ('AWG', ['arubaflorin','']), ('AZN', ['azerbaijanmanat','']), ('BAM', ['bosniaconvertiblemark','']), ('BBD', ['barbadosdollar','']), ('BDT', ['bangladeshtaka','']), ('BGN', ['bulgarialev','']), ('BHD', ['bahraindinar','']), ('BIF', ['burundifranc','']), ('BMD', ['bermudadollar','']), ('BND', ['bruneidollar','']), ('BOB', ['boliviaboliviano','']), ('BRL', ['brazilreal','']), ('BSD', ['bahamasdollar','']), ('BTN', ['bhutanngultrum','']), ('BWP', ['botswanapula','']), ('BYN', ['belarusruble','']), ('BYR', ['oldbelarusruble','10000 BYN']), ('BZD', ['belizedollar','']), ('CAD', ['canadadollar','']), ('CDF', ['drcfranccongolais','']), ('CHF', ['swissfranc','']), ('CLP', ['chilepeso','']), ('CNY', ['chinayuan','']), ('COP', ['colombiapeso','']), ('CRC', ['costaricacolon','']), ('CUP', ['cubapeso','']), ('CVE', ['capeverdeescudo','']), ('CZK', ['czechkoruna','']), ('DJF', ['djiboutifranc','']), ('DKK', ['denmarkkrona','']), ('DOP', ['dominicanrepublicpeso','']), ('DZD', ['algeriadinar','']), ('EGP', ['egyptpound','']), ('ERN', ['eritreanakfa','']), ('ETB', ['ethiopianbirr','']), ('EUR', ['euro','']), ('FJD', ['fijidollar','']), ('FKP', ['falklandislandspound','']), ('GBP', ['ukpound','']), ('GEL', ['georgialari','']), ('GHS', ['ghanacedi','']), ('GIP', ['gibraltarpound','']), ('GMD', ['gambiadalasi','']), ('GNF', ['guineafranc','']), ('GTQ', ['guatemalaquetzal','']), ('GYD', ['guyanadollar','']), ('HKD', ['hongkongdollar','']), ('HNL', ['honduraslempira','']), ('HRK', ['croatiakuna','']), ('HTG', ['haitigourde','']), ('HUF', ['hungariaforint','']), ('IDR', ['indonesiarupiah','']), ('ILS', ['israelnewshekel','']), ('INR', ['indiarupee','']), ('IQD', ['iraqdinar','']), ('IRR', ['iranrial','']), ('ISK', ['icelandkrona','']), ('JMD', ['jamaicadollar','']), ('JOD', ['jordandinar','']), ('JPY', ['japanyen','']), ('KES', ['kenyaschilling','']), ('KGS', ['kyrgyzstansom','']), ('KHR', ['cambodiariel','']), ('KMF', ['comorosfranc','']), ('KPW', ['northkoreawon','']), ('KRW', ['southkoreawon','']), ('KWD', ['kuwaitdinar','']), ('KYD', ['caymanislandsdollar','']), ('KZT', ['kazakhstantenge','']), ('LAK', ['laokip','']), ('LBP', ['lebanonpound','']), ('LKR', ['srilankanrupee','']), ('LRD', ['liberiadollar','']), ('LTL', ['lithuanialita','']), ('LVL', ['latvialat','']), ('LYD', ['libyadinar','']), ('MAD', ['moroccodirham','']), ('MDL', ['moldovaleu','']), ('MGA', ['madagascarariary','']), ('MKD', ['macedoniadenar','']), ('MMK', ['myanmarkyat','']), ('MNT', ['mongoliatugrik','']), ('MOP', ['macaupataca','']), ('MRO', ['mauritaniaouguiya','']), ('MUR', ['mauritiusrupee','']), ('MVR', ['maldiverufiyaa','']), ('MWK', ['malawikwacha','']), ('MXN', ['mexicopeso','']), ('MYR', ['malaysiaringgit','']), ('MZN', ['mozambicanmetical','']), ('NAD', ['namibiadollar','']), ('NGN', ['nigerianaira','']), ('NIO', ['nicaraguacordobaoro','']), ('NOK', ['norwaykrone','']), ('NPR', ['nepalrupee','']), ('NZD', ['newzealanddollar','']), ('OMR', ['omanrial','']), ('PAB', ['panamabalboa','']), ('PEN', ['perunuevosol','']), ('PGK', ['papuanewguineakina','']), ('PHP', ['philippinepeso','']), ('PKR', ['pakistanrupee','']), ('PLN', ['polandzloty','']), ('PYG', ['paraguayguarani','']), ('QAR', ['qatarrial','']), ('RON', ['romanianewlei','']), ('RSD', ['serbiadinar','']), ('RUB', ['russiaruble','']), ('RWF', ['rwandafranc','']), ('SAR', ['saudiarabiariyal','']), ('SBD', ['solomonislandsdollar','']), ('SCR', ['seychellesrupee','']), ('SDG', ['sudanpound','']), ('SEK', ['swedenkrona','']), ('SGD', ['singaporedollar','']), ('SHP', ['sainthelenapound','']), ('SLL', ['sierraleoneleone','']), ('SOS', ['somaliaschilling','']), ('SRD', ['surinamedollar','']), ('STD', ['saotome&principedobra','']), ('SVC', ['elsalvadorcolon','']), ('SYP', ['syriapound','']), ('SZL', ['swazilandlilangeni','']), ('THB', ['thailandbaht','']), ('TJS', ['tajikistansomoni','']), ('TMT', ['turkmenistanmanat','']), ('TND', ['tunisiadinar','']), ('TOP', ["tongapa'anga",'']), ('TRY', ['turkeylira','']), ('TTD', ['trinidadandtobagodollar','']), ('TWD', ['taiwandollar','']), ('TZS', ['tanzaniashilling','']), ('UAH', ['ukrainehryvnia','']), ('UGX', ['ugandaschilling','']), ('USD', ['unitedstatesdollar', 'US$']), ('UYU', ['uruguaypeso','']), ('UZS', ['uzbekistansum','']), ('VEF', ['venezuelabolivar','']), ('VEB', ['venezuelaoldbolivar', '1000 VEF']), ('VND', ['vietnamdong','']), ('VUV', ['vanuatuvatu','']), ('WST', ['samoatala','']), ('XAF', ['centralafricancfafranc','']), ('XCD', ['eastcaribbeandollar','']), ('XDR', ['specialdrawingrights','']), ('YER', ['yemenrial','']), ('ZAR', ['southafricarand','']), ('ZMW', ['zambiakwacha','']), ('ZWL', ['zimbabwedollar','']), ]) ap = ArgumentParser( description="Update currency information for 'units' " "into the specified filename or if no filename is " "given, the default: '{}'. The special filename '-' " "will send the currency data to stdout.".format(outfile_name), ) ap.add_argument( 'output_file', default=outfile_name, help='the file to update', metavar='filename', nargs='?', type=str, ) ap.add_argument('-V','--version', action='version', version='%(prog)s version ' + version, help='display units_cur version', ) ap.add_argument('-v','--verbose', action='store_true', help='display details when fetching currency data', ) outfile_name = ap.parse_args().output_file verbose = ap.parse_args().verbose try: res = requests.get('http://finance.yahoo.com/webservice/v1/symbols' '/allcurrencies/quote?format=json') res.raise_for_status() webdata = res.json()['list']['resources'] except requests.exceptions.RequestException as e: stderr.write('Error connecting to currency server:\n{}.\n'. format(e)) exit(1) rates = [ data['resource']['fields']['price'] for data in webdata] codes = [ data['resource']['fields']['symbol'][0:3] for data in webdata] rate_index = 1 for (code,rate) in zip(codes,rates): if code not in currency.keys(): if (verbose): stderr.write('Got unknown currency with code {}\n'.format(code)) else: if not currency[code][rate_index]: currency[code][rate_index] = '1|{} US$'.format(rate) elif verbose: stderr.write('Got value "{}" for currency "{}" but ' 'it is already defined\n'.format(rate, code)) # Delete currencies where we have no rate data for code in currency.keys(): if not currency[code][rate_index]: if verbose: stderr.write('No data for {}'.format(code)) del currency[code] try: req = requests.get('http://services.packetizer.com/spotprices/?f=json') req.raise_for_status() metals = req.json() except requests.exceptions.RequestException as e: stderr.write('Error connecting to spotprices server:\n{}\n'.format(e)) exit(1) del metals['date'] try: req = requests.get('http://services.packetizer.com/btc/?f=json') req.raise_for_status() bitcoin = req.json() except requests.exceptions.RequestException as e: stderr.write('Error connecting to bitcoin server:\n{}\n'.format(e)) exit(1) cnames = [currency[code][0] for code in currency.keys()] crates = [currency[code][1] for code in currency.keys()] codestr = '\n'.join('{:23}{}'. format(code, name) for (code,name) in zip(currency.keys(), cnames)) datestr = date.today().isoformat() maxlen = max(len(name) for name in cnames) + 2 ratestr = '\n'.join( '{:{}}{}'.format(name, maxlen, rate) for (name, rate) in zip(cnames, crates) ) ozzystr = '\n'.join('{:19}{} US$/troyounce'.format( metal + 'price', price, ) for metal, price in metals.items()) bitcoinstr = '{:{}}{} US$ # From services.packetizer.com/btc\n'.format( 'bitcoin',maxlen,bitcoin['usd']) outstr = ( """# ISO Currency Codes {codestr} # Currency exchange rates from Yahoo Finance (finance.yahoo.com) !message Currency exchange rates from finance.yahoo.com on {datestr} {ratestr} {bitcoinstr} # Precious metals prices from Packetizer (services.packetizer.com/spotprices) {ozzystr} """.format(codestr=codestr, datestr=datestr, ratestr=ratestr, ozzystr=ozzystr, bitcoinstr=bitcoinstr) ).replace('\n', linesep) try: if outfile_name == '-': codecs.StreamReader(stdout, codecs.getreader('utf8')).write(outstr) else: with codecs.open(outfile_name, 'w', 'utf8') as of: of.write(outstr) except IOError as e: stderr.write('Unable to write to output file:\n{}\n'.format(e)) exit(1) units-2.16/unitsfile.ico0000664000175000017500000005372612314123647014602 0ustar adrianadrian00¨f ¨h¶00 ¨%  ¨ÆB hnS(0`çççæææåååäääèèèãããÛÛÛàààÙÙÙÝÝÝÖÖÖÆÆÆÅÅÅÄÄÄÃÃÃÇÇÇÈÈÈÞÞÞÔÔÔÕÕÕûûûÏÏÏÂÂÂÿÿÿÉÉÉ¿¿¿ªªªÑÑÑÔÉȽ½½¦¦¦ÐÐо¾¾¥¥¥ÎÎÎÀÀÀâââÊÊÊÁÁÁ©©©ÌÌÌ®®®¢¢¢¨¨¨¶¶¶ÒÒÒ÷÷÷ËËË¡¡¡‚‚‚yyyzzz¹¹¹øøø¯¯¯   “““ŒŒŒ‰‰‰™™™°°°óóó×××ÚÚÚÍÍÍ´´´«««£££µµµÜÜÜááẺº¼¼¼ßßßÓÓÓëëëêêêÌ‹sÌŠr̉qˈpˈoˇnʆnʆmÊ…lÊ„kÉ„jɃjÉ‚iÈ‚hÈgÈ€fÇeÇ~dÇ~cÆ}bÆ|bÆ|aÆ{`Åz_Åz^Åy^Äx]Äx\Äw[ÄvZÃvZÃuYÃtXÂtWÂsVÂrVÂrUÁqTÁpSÁpRÀoQÀnQÀnP¿mO¿lN¿lM¿kM¾jL¾jK¾iJ½hI½gH½fG¼fF»dD»cC»bB»bAºaA¼dEº`?¹_>¹^=º`@¸\;¹]<·Z9·Z8ùùùúúú¶X5¶W5µV3µU2µT1¸\:¸[9·Y7·X6¶V4ýýýþþþüüüŸ     ŸŸŸŸŸŸ ¡      ”””   “   “““Ÿ›‘’œœ•–žž—˜™™™™™™˜˜—ž–••œ’‘‘›šŒ‹𛑑’œ••–ž—˜˜™™™™™™˜—žž–•œ’’‘›š‹Œšš›‘’œœ•–žž—˜™™™™™™˜——ž–•œ’‘›‡ˆ‰Ž‹‹Œš›‘‘’œ•––ž—˜™™™™™™™˜—ž––•Š……†‡ˆ‰‰Ž‹Œš››‘’œ•–ž——˜™™™™™™˜——‚ƒ„‡ˆ‰ŒŒ‘’’––™™™€€Š…†ˆ‰ŽŒ’—˜|}€‚ƒ„Š…†ˆ‰ŒŒ‘’’•–”xy|}}€ƒ„„…†ˆ‰‹Œ‘’““”uvxyz|}~€ƒ„Š…ˆˆ‰Žqruuvyyz}}~ƒ„Š…†‹Œnoqrsuvwyz{}~€‚ƒ„…†‡ˆˆ‰jkmnoqrsuvyz}}ƒ„…†ggjkknoovwy~‚ƒ„cdfghjklmnqrsuz{€_`abccdefgghijkklmnoopqrsuvwwxyz{{|}~]^^^_`aabcdeefghiijklnoqrstuuvwxyzzYZ[\\]^^__`abccdefgghkklnoopqrsttuvwVVWXYZZ[\]^^^_`aabcdeefghiijklmnnopqrrsRSTTUVWXXYZ[\\]^^__`abccdefghhijkllmnopOPPQRRSTUVVWXYZZ[\]^^^_`abbcdeffghijjkl%MNHH%K @LL GHA&!IJ @AB$CDE9E(FG.'89:;<2=>? 0-12345367) *+,-./&'()$%# !"#     ÿÿÿÿÿÿÿÿÿÿÿÿÿðÿðÿðÿðÿðÿðÿðÿðàààààààààààààààààààààÿðÿðÿðÿðÿðÿðÿðÿðÿðÿð?ÿðÿðÿÿðÿÿðÿÿðÿÿðÿÿðÿ( @çççæææåååäääèèèáááüüüÖÖÖâââÔÉÈÇÇÇÿÿÿÛÛÛÈÈÈØØØÍÍͪªª•••ºººòòòÚÚÚ´´´›››………éééßßßÒÒÒÉÉÉÂÂÂîîîïïïðððíííÊ„kɃjÉ‚iÈ€gÈ€fÇ~eÇ}cÆ|bÆ{aÅz_Åx^Äw\Äv[ÃuZÃtXÃsWÂrVÁpTÁoRÁnRÀmP¿lN¿kN¿jL¾hJ½gI½fH½eFÉhÇ~dÇ|bÅy^Åx]ÃtYèËÁ߸ªË…m¾iK¼dF¼cDÈfÆz`ÄvZÂqUÁpSôéåéÐÇÀlOâ¾²ëÓ˽fG»bC»aBÞÞÞÏ{ÇfÀnQ¿jMñâÜëÒÊ¿kỎq»`Aº_?×£‘Ñ”éÍÄöïìäÁµ÷ðííØÑûúùÏ‘{ôèäéÎÅá¼°ìÖÏÊ„løòðè̺^>¹]=õõõ֢В}èÍÃãÀ´äÁ¶Ö¡ŽüûûåźéÎÄÎzöîìóçâÔ›ˆã¶öîëʆnß¶¨óçã¸[:㿳ÃsX÷ïìñáÛêÑÈÞ¶¨îÜÕØ§–¿mO¸Z:·Y8öööÕŸÏzçËÂ⿲ûùøèÍÄðàÛêÐǽgHçÉ¿úöõ·W6÷÷÷Õž‹Ò˜…â¾±ú÷÷¼dEðàÚÒ—„»bBÓ›ˆÔœ‰¶U3àààøøøÍ‹tðÞØãÁµá½°ú÷öèÌÃçËÁìÕÎõìéÕŸŒûûúÞ´¥äĹʅlùùù寻ì×ÏÙ©˜Ø¥”ݱ¢º`@åĹܯ ¹\<º`?æÇ¼ùôóÛ¬œ¶V4¶V5úúú¹^>¹\;·X7·X6ûûû¸Z9ýýýÊÊÊËËËÕÕÕþþþìììÕÕÕÕÙÙÙÙÙ ÕÕÕÕÙÙÙ        Ú ÖÖÖÖÖÖÖÖÖ×Ö×××רÙ;I<>?JKªbÄtuljÔÑÒÍ­­­Ì¡Ò”“ÐÇ Õ9:;<=>?§WªbctuГÔѡͭ­­Ì¡ÑÔ“\89]I<=VJ§WXbcÏÇГ”ѡ̭­­ÍÒÑ®ÓP6¿ÀÁµ<ÂUJK¿ÃÄÅÆÇ¬pÈÉÊËÌÍ®Î4°±²k…;³´>?ˆµª‚¶t·¸¹³º»¼½­®¾2£¤6j…9¥¦<=ˆy§ˆsb¨ŽuA©ª«¬­®¯N–—O˜…\™š]Im›VˆyWœcžŸ 4¡¢D|l3sPŠ‹:Œn<ˆyJŽX‘’“”•-wx1yg4z{|}~;m€‚ƒ„…†‡ˆ7‰v+de/fg2hijkl9mnopqrstuvA*+MC./N124Z[6\89]^_=V`aAXbcY(LAB+MCD/NE34OPQRSTUI<>VJKWXY&@()AB,-CD01E34FG78H:;I<>?JK$%&'()*+,-./0123456789:;<=>? !!"#              ÿÿÿÿÿÿÿÿÿàÿàÿàÿàÿàÿàÿàÿàÿàÿàÿàÿàÿàÿàÿà?ÿà( ÉÉÉää䟟Ÿûûû¹¹¹öööèèèÔÉÈÀÀÀºººÅÅÅÔÔÔµµµ£££¿¿¿íííéééåååçççɃiÈ€fÇ~dÆ|aÅz_Åx]ÄvZÃtXÁpSÀnP¿lN¾jK¾hIÂrU½fG¼cDº_?¸[:·Y8úúú»aA¹]=·X6·Y7¸[9¹]<º_>øøøþþþÿÿÿüüüýýýÞÞÞ¤¤¤¥¥¥4566722311111'011/ "#($)%&*+,-. #$% #$%&' #$% ! "#   ààààààààð(0` &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& VsssssssssssssssssssssssssssssssV&ýýýÿþþþÿþþþÿþþþÿþþþÿþþþÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&ýýýÿýýýÿýýýÿýýýÿýýýÿýýýÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&üüüÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÔÉÈÿÔÉÈÿûûûÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&ûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿþþþÿþþþÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&ûûûÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&úúúÿúúúÿúúúÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿþþþÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&ùùùÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿþþþÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&&ùùùÿùùùÿùùùÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿýýýÿûûûÿûûûÿûûûÿûûûÿÿÿÿÿ&¸[9ÿ·Z9ÿ·Z8ÿ·Y7ÿ·Y7ÿ·X6ÿ¶X5ÿ¶W5ÿ¶V4ÿ¶V4ÿµV3ÿµU2ÿµT1ÿµT1ÿµT1ÿµT1ÿµT1ÿµT1ÿµU2ÿµU2ÿµV3ÿ¶V4ÿ¶W5ÿ¶X5ÿ¶X5ÿ·X6ÿ·Y7ÿ·Z8ÿ·Z9ÿ·Z9ÿ¸[9ÿ¸\:ÿ¸\;ÿ¹]<ÿ¹^=ÿ¹^=ÿ¹^=ÿ¹_>ÿº`?ÿûûûÿûûûÿûûûÿ&¹]<ÿ¹]<ÿ¸\;ÿ¸\:ÿ¸[9ÿ·Z9ÿ·Z9ÿ·Z8ÿ·Y7ÿ·X6ÿ¶X5ÿ¶X5ÿ¶W5ÿ¶V4ÿµV3ÿµU2ÿµU2ÿµT1ÿµT1ÿµT1ÿµT1ÿµT1ÿµT1ÿµU2ÿµV3ÿ¶V4ÿ¶V4ÿ¶W5ÿ¶X5ÿ·X6ÿ·Y7ÿ·Z8ÿ·Z8ÿ·Z9ÿ¸[9ÿ¸\:ÿ¸\;ÿ¸\;ÿ¹]<ÿûûûÿûûûÿûûûÿ&º`?ÿ¹_>ÿ¹^=ÿ¹^=ÿ¹^=ÿ¹]<ÿ¸\;ÿ¸\:ÿ¸\:ÿ¸[9ÿ·Z9ÿ·Z8ÿ·Y7ÿ·Y7ÿ·X6ÿ¶X5ÿ¶W5ÿ¶V4ÿ¶V4ÿµV3ÿµU2ÿµT1ÿµT1ÿµT1ÿµT1ÿµT1ÿµT1ÿµU2ÿµV3ÿµV3ÿ¶V4ÿ¶W5ÿ¶X5ÿ·X6ÿ·X6ÿ·Y7ÿ·Z8ÿ·Z9ÿ¸[9ÿûûûÿûûûÿûûûÿ&»bBÿ»bAÿºaAÿº`@ÿº`?ÿº`?ÿ¹_>ÿ¹^=ÿ¹^=ÿ¹]<ÿ¹]<ÿ¸\;ÿ¸\:ÿ¸[9ÿ·Z9ÿ·Z9ÿ·Z8ÿ·Y7ÿ·X6ÿ¶X5ÿ¶W5ÿ¶W5ÿ¶V4ÿµV3ÿµU2ÿµT1ÿµT1ÿµT1ÿµT1ÿµT1ÿµT1ÿµT1ÿµU2ÿµV3ÿ¶V4ÿ¶W5ÿ¶W5ÿ¶X5ÿ·X6ÿûûûÿûûûÿûûûÿ& ¼dEÿ»dDÿ»dDÿ½hIÿˇoÿÃtWÿºaAÿºaAÿº`@ÿº`?ÿ¹_>ÿ¹^=ÿ¹^=ÿ¹^=ÿ¹]<ÿ¸\;ÿ¸\:ÿ¸[9ÿ¸[9ÿ·Z9ÿ·Z8ÿ·Y7ÿ·X6ÿ·X6ÿ¶X5ÿ¶W5ÿ½gHÿÆ~cÿ¼gGÿµU2ÿµT1ÿµT1ÿÃuYÿÆ|bÿ½fGÿµT1ÿµU2ÿµV3ÿµV3ÿûûûÿûûûÿûûûÿ& ½gHÿ½fGÿÆ~dÿöïíÿûûûÿûûûÿÞ·¨ÿçÌÂÿûûûÿÒ˜„ÿ»bAÿÚ­ÿûûûÿçËÀÿ¹_>ÿ¹_>ÿÎxÿûûûÿòåáÿ¸\;ÿ¼gHÿûûûÿûûûÿÁrVÿ·Z8ÿÆ~cÿù÷öÿûûûÿûûûÿ¸\;ÿÅz`ÿòåáÿûûûÿûûûÿûûûÿæÉ¿ÿ¸[9ÿµT1ÿµT1ÿûûûÿûûûÿûûûÿ& ¾iJÿ¾iJÿêÓÊÿûûûÿúùøÿìÖÎÿúùøÿøóòÿûûûÿÒš†ÿ»dDÿÛ®žÿûûûÿçËÁÿ»bAÿºaAÿÎzÿûûûÿòæáÿ¹_>ÿ½hJÿûûûÿûûûÿÃtXÿ¸\;ÿἯÿûûûÿöïìÿîÝ×ÿ»cCÿöîìÿûûûÿõìéÿêÒÊÿùõôÿûûûÿß¹«ÿµV3ÿµU2ÿûûûÿûûûÿûûûÿ& ¿lMÿ¿kMÿ÷óñÿûûûÿÖ¤‘ÿ¾iJÿÍvÿûûûÿûûûÿÓœˆÿ½fGÿÛ¯ŸÿûûûÿçÌÂÿ¼dEÿ»dDÿÏ“}ÿûûûÿòæâÿ»bAÿ¾kMÿûûûÿûûûÿÃvZÿ¹_>ÿæÊÀÿûûûÿÚ­œÿ¸\;ÿЖÿûûûÿõíêÿºbBÿ·Z8ÿËŠsÿûûûÿöïìÿ¶X5ÿ¶W5ÿûûûÿûûûÿúúúÿ& ÀnQÿÀnPÿûúúÿûûûÿˈoÿ¿kMÿ¿kMÿöðîÿûûûÿÔ‰ÿ½hIÿܰ¡ÿûûûÿèÍÃÿ½fGÿ¼fFÿЕÿûûûÿòæâÿ»dDÿ¿mOÿûûûÿûûûÿÅy]ÿºaAÿçËÁÿûûûÿا–ÿ¹_>ÿ¹^=ÿº`?ÿÄy^ÿ¼cCÿÌ‹tÿæÉ¿ÿûûûÿ÷òðÿ·Z9ÿ·Z8ÿùùùÿùùùÿúúúÿ& ÁpSÿÁpRÿûûûÿûûûÿˇpÿÀnPÿ¿mOÿóçãÿûûûÿÔŸ‹ÿ¿kMÿܱ¢ÿûûûÿèÎÄÿ¾iJÿ½hIÿЖÿûûûÿóçãÿ½fGÿÀpRÿûûûÿûûûÿÅz`ÿ»dDÿçÌÂÿûûûÿÙ©—ÿ»bAÿºaAÿÁrUÿä÷ÿúùøÿûûûÿûûûÿûûûÿäøÿ¸\;ÿ¸\;ÿûûûÿûûûÿûûûÿ& ÂsVÿÂrVÿûûûÿûûûÿˉqÿÁpSÿÁpRÿóèäÿûûûÿÕ ÿÀnPÿݳ¤ÿûûûÿéÑÇÿ¿kMÿ¿kMÿÑ—ƒÿûûûÿóçãÿ½hIÿÁrUÿûûûÿûûûÿÆ|bÿ¼fFÿçÌÂÿûûûÿÙª™ÿ»dDÿ»cCÿñãÞÿûûûÿûûûÿûûûÿùöôÿà»®ÿ½gHÿ¹_>ÿ¹^=ÿûûûÿûûûÿûûûÿ& ÃuYÿÃtXÿûûûÿûûûÿÌ‹tÿÂrVÿÂrUÿóèäÿûûûÿÖ¡ÿÁpRÿÝ´¥ÿûûûÿïßÚÿÀnPÿ¿mOÿÖ£ÿûûûÿóçãÿ¿kMÿÂtXÿûûûÿûûûÿÇdÿ½hIÿèÍÃÿûûûÿÚ«›ÿ½fGÿÇ€eÿûûûÿúùøÿ⿲ÿÍŽwÿÂrVÿ¾iKÿ»bAÿ»bAÿºaAÿûûûÿûûûÿûûûÿ& Äx\ÿÄw[ÿûûûÿûûûÿÍŽwÿÃuYÿÃtXÿóéåÿûûûÿÖ£‘ÿÂrVÿÞµ§ÿûûûÿûûûÿÖ¡ÿÂsVÿêÒÉÿûûûÿîÜÕÿÀnPÿÃvZÿûûûÿûûûÿÈ€gÿɃjÿíÙÒÿûûûÿãÁ´ÿˉqÿÈhÿûûûÿôêæÿÀnQÿ¾kLÿçÌÂÿûûûÿܱ¢ÿ»dDÿ»cCÿûûûÿûûûÿûûûÿ& Åz^ÿÅz^ÿûûûÿûûûÿÎyÿÄw[ÿÄw[ÿóéåÿûûûÿ×¥“ÿÃtXÿß¶¨ÿûûûÿòæâÿûûûÿûûûÿûûûÿûûûÿß¹«ÿÁpRÿÄx\ÿûûûÿûûûÿɃiÿèÏÅÿûûûÿûûûÿûûûÿ÷òðÿ¿lNÿòåáÿûûûÿûûûÿûûûÿûûûÿûûûÿˉqÿ½fGÿ¼fFÿûûûÿûûûÿûûûÿ& Æ|bÿÆ|aÿîÛÔÿîÛÔÿÌ‹tÿÅz^ÿÅy^ÿèÍÃÿíÚÔÿÓ›†ÿÄw[ÿا•ÿíÚÓÿا•ÿÛ¯Ÿÿ÷ðîÿûûûÿåǼÿÄw[ÿÂrVÿÅx]ÿíÙÑÿíØÑÿÇeÿ߸©ÿöðîÿûûûÿóèäÿéÑÈÿ¿mOÿÇeÿèÍÃÿûûûÿûûûÿòåàÿÓ‰ÿ¾iJÿ½hIÿ½hIÿûûûÿûûûÿûûûÿ& ÇeÿÇ~dÿÇ~cÿÆ}bÿÆ|bÿÆ|bÿÆ|aÿÆ{`ÿÅz_ÿÅz^ÿÅz^ÿÅy^ÿÄx]ÿÄx\ÿÄw[ÿÄw[ÿÄvZÿÃvZÿÃuYÿÃtXÿÃtXÿÂtWÿÂsVÿÂrVÿÂrUÿéÐÇÿûûûÿܰ ÿÁpRÿÀoQÿÀoQÿÀnQÿÀnPÿ¿mOÿ¿lNÿ¿lNÿ¿lMÿ¿kMÿ¾jLÿûûûÿûûûÿûûûÿ& ÈgÿÈ€fÿÈ€fÿÈ€fÿÇeÿÇ~dÿÇ~cÿÇ~cÿÆ}bÿÆ|bÿÆ|aÿÆ{`ÿÆ{`ÿÅz_ÿÅz^ÿÅy^ÿÄx]ÿÄx]ÿÄx\ÿÄw[ÿÈeÿûûûÿûûûÿˉqÿÃtXÿæÉ¿ÿûûûÿܲ¢ÿÂrVÿÂrUÿÁqTÿÁpSÿÁpSÿÁpRÿÀoQÿÀnQÿÀnPÿ¿mOÿ¿mOÿûûûÿûûûÿûûûÿ& É„jÿɃjÿÉ‚iÿÈ‚hÿÈ‚hÿÈgÿÈ€fÿÈ€fÿÇeÿÇeÿÇ~dÿÇ~cÿÆ}bÿÆ|bÿÆ|bÿÆ|aÿÆ{`ÿÅz_ÿÅz^ÿÅz^ÿÉ‚hÿûûûÿûûûÿÌ‹sÿÄw[ÿÆz_ÿã¶ÿݳ¤ÿÃtXÿÃtXÿÂtWÿÂsVÿÂrVÿÂrUÿÁqTÿÁqTÿÁpSÿÁpRÿÀoQÿûûûÿûûûÿûûûÿ& ʆmÿʆmÿÊ…lÿÊ„kÿÉ„jÿɃjÿɃjÿÉ‚iÿÈ‚hÿÈgÿÈ€fÿÈ€fÿÈ€fÿÇeÿÇ~dÿÇ~cÿÇ~cÿÆ}bÿÆ|bÿÆ|aÿÈeÿຬÿ๬ÿɃiÿÅy^ÿÄx]ÿÄx]ÿÆ}bÿÄw[ÿÄvZÿÃvZÿÃuYÿÃuYÿÃtXÿÂtWÿÂsVÿÂrVÿÂrVÿÂrUÿûûûÿûûûÿûûûÿ& ˈpÿˈoÿˇnÿˇnÿʆnÿʆmÿÊ…lÿÊ„kÿÊ„kÿÉ„jÿɃjÿÉ‚iÿÈ‚hÿÈ‚hÿÈgÿÈ€fÿÈ€fÿÇeÿÇeÿÇ~dÿÇ~cÿÆ}bÿÆ|bÿÆ|bÿÆ|aÿÆ{`ÿÅz_ÿÅz^ÿÅy^ÿÅy^ÿÄx]ÿÄx\ÿÄw[ÿÄvZÿÄvZÿÃvZÿÃuYÿÃtXÿÂtWÿûûûÿûûûÿûûûÿ&Ì‹sÿÌŠrÿÌŠrÿ̉qÿˈpÿˈpÿˈoÿˇnÿʆnÿʆmÿʆmÿÊ…lÿÊ„kÿÉ„jÿɃjÿɃjÿÉ‚iÿÈ‚hÿÈgÿÈ€fÿÈ€fÿÈ€fÿÇeÿÇ~dÿÇ~cÿÆ}bÿÆ}bÿÆ|bÿÆ|aÿÆ{`ÿÅz_ÿÅz_ÿÅz^ÿÅy^ÿÄx]ÿÄx\ÿÄx\ÿÄw[ÿÄvZÿûûûÿûûûÿûûûÿ&&ûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿ&&ûûûÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿûûûÿûûûÿâââÿëëëÿêêêÿèèèÿçççÿäääÿãããÿáááÿáááÿâââÿãããÿçççÿ&&ûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÞÞÞÿçççÿäääÿßßßÿÙÙÙÿ×××ÿÓÓÓÿÑÑÑÿÑÑÑÿÓÓÓÿÖÖÖÿÜÜÜÿ#&ûûûÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÛÛÛÿáááÿÚÚÚÿÑÑÑÿÊÊÊÿÃÃÃÿ¾¾¾ÿºººÿ¼¼¼ÿ¿¿¿ÿÆÆÆÿÑÑÑÿ&ûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿ×××ÿÚÚÚÿÍÍÍÿÀÀÀÿ´´´ÿ«««ÿ£££ÿ   ÿ£££ÿ©©©ÿµµµÿÜÜÜÑ&ûûûÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÒÒÒÿÑÑÑÿÁÁÁÿ¯¯¯ÿ   ÿ“““ÿŒŒŒÿ‰‰‰ÿÿ™™™ÿ°°°ôóóó&ûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÐÐÐÿËËËÿ¶¶¶ÿ¡¡¡ÿÿ‚‚‚ÿyyyÿzzzÿ‚‚‚ÿ¹¹¹ÿøøøãËËË2&ûûûÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿûûûÿûûûÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿûûûÿÌÌÌÿÅÅÅÿ®®®ÿªªªÿ¢¢¢ÿ¨¨¨ÿ¶¶¶ÿÒÒÒÿ÷÷÷ÿÿÿÿÿÊÊÊT&ûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÊÊÊÿÁÁÁÿ©©©ÿãããÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÌÌÌ„&ûûûÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿûûûÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿÈÈÈÿÀÀÀÿ¦¦¦ÿâââÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÎÎΫ&ûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÆÆÆÿ¾¾¾ÿ¥¥¥ÿãããÿÿÿÿÿÿÿÿÿÿÿÿÿÎÎÎÅ&ûûûÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿûûûÿûûûÿûûûÿûûûÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿûûûÿÆÆÆÿ½½½ÿ¦¦¦ÿãããÿÿÿÿÿÿÿÿÿÐÐÐÝ&ûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÉÉÉÿ¿¿¿ÿªªªÿÿÿÿÿÿÿÿÿÑÑÑïzzz&ûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÏÏÏÿÂÂÂÿÈÈÈÿÿÿÿÿÔÔÔ÷3&ÆÆÆÿÅÅÅÿÅÅÅÿÄÄÄÿÄÄÄÿÃÃÃÿÃÃÃÿÃÃÃÿÃÃÃÿÃÃÃÿÄÄÄÿÄÄÄÿÅÅÅÿÅÅÅÿÆÆÆÿÆÆÆÿÇÇÇÿÇÇÇÿÈÈÈÿÄÄÄÿÞÞÞÿÔÔÔÿÈÈÈÿæææÿÕÕÕø3æææÿæææÿåååÿåååÿäääÿäääÿäääÿäääÿäääÿäääÿäääÿäääÿåååÿåååÿæææÿæææÿçççÿçççÿèèèÿäääÿàààÿÙÙÙÿÝÝÝÿÖÖÖô“““2 çççÿæææÿæææÿåååÿåååÿåååÿäääÿäääÿäääÿäääÿåååÿåååÿåååÿæææÿæææÿæææÿçççÿçççÿèèèÿæææÿãããÿçççÿÛÛÛ׈ˆˆÿàÿàÿàÿàÿàÿàÿàÿàÿàÿàààÀàÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÀÿàÿàÿàÿàÿàÿàÿàÿàÿàÿàÿà?ÿàÿàÿÿàÿÿàÿÿàÿÿàÿ( @ &&&&&&&&&&&&&&&&&& VssssssssssssssssssV3ýýýÿýýýÿýýýÿýýýÿþþþÿþþþÿþþþÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&3üüüÿüüüÿüüüÿüüüÿüüüÿýýýÿýýýÿýýýÿýýýÿþþþÿþþþÿþþþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ&3üüüÿÔÉÈÿÔÉÈÿüüüÿüüüÿüüüÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿüüüÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿüüüÿüüüÿüüüÿüüüÿÿÿÿÿ&3üüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿÿÿÿÿ&        3áááÿáááÿáááÿáááÿáááÿáááÿáááÿáááÿáááÿáááÿâââÿáááÿâââÿâââÿâââÿâââÿçççÿìììÿüüüÿÿÿÿÿ&&&&&&3ÊÊÊÿÊÊÊÿÉÉÉÿÊÊÊÿÊÊÊÿÊÊÊÿÊÊÊÿÊÊÊÿÊÊÊÿÊÊÊÿËËËÿÊÊÊÿËËËÿËËËÿËËËÿËËËÿÕÕÕÿæææÿüüüÿþþþÿ&¿jLÿ¾iKÿ¾hJÿ½fHÿ½eFÿ¼dFÿ¼cDÿ»bBÿ»`Aÿº`@ÿº^>ÿ¹]=ÿ¹\<ÿ¸[:ÿ¸Z9ÿ·X7ÿ·X6ÿ¶V5ÿ¶U3ÿ¶U3ÿ¶U3ÿ¶V4ÿ·W6ÿ·X6ÿ·Y8ÿ¸Z:ÿ¹\;ÿ¹\<ÿâââÿüüüÿýýýÿ&¿lNÿ¿kNÿ¿jLÿ¾hJÿ½gIÿ½fHÿ½eFÿ¼dEÿ»bCÿ»bBÿ»`Aÿº_?ÿº^>ÿ¹]=ÿ¹\;ÿ¸Z:ÿ¸Z9ÿ·X7ÿ·W6ÿ¶V5ÿ¶U3ÿ¶U3ÿ¶U3ÿ¶V4ÿ·W6ÿ·X7ÿ¸Z9ÿ¸Z:ÿáááÿüüüÿüüüÿ&ÀnQÿÀmPÿ¿lNÿ¿jMÿ¾iKÿ¾hJÿ½gIÿ½fGÿ¼dFÿ¼dEÿ»bCÿ»aBÿ»`Aÿº_?ÿ¹^>ÿ¹\<ÿ¹\;ÿ¸Z:ÿ·Y8ÿ·X7ÿ·W6ÿ¶V4ÿ¶U3ÿ¶U3ÿ¶U3ÿ¶V5ÿ·X6ÿ·X7ÿàààÿüüüÿûûûÿ&ÁpSÿÁoRÿ寻ÿüüüÿì×ÏÿÙ©˜ÿèÌÃÿ¾hJÿØ¥”ÿëÓËÿ¼dFÿ¼cDÿ寻ÿݱ¢ÿº`@ÿåĹÿܯ ÿ¹\<ÿÔœ‰ÿüüüÿìÖÏÿº`?ÿæÇ¼ÿüüüÿùôóÿÛ¬œÿ¶V4ÿ¶V5ÿàààÿüüüÿúúúÿ&ÂrVÿÍ‹tÿüüüÿðÞØÿãÁµÿûúùÿöîëÿ¿jLÿá½°ÿú÷öÿ½fHÿ½eFÿóçãÿèÌÃÿ»bBÿóçâÿçËÁÿº^>ÿìÕÎÿõìéÿÕŸŒÿá½°ÿûûúÿÞ´¥ÿäĹÿüüüÿÊ…lÿ¶U3ÿàààÿüüüÿùùùÿ&ÃtXÿÕž‹ÿüüüÿÒ˜…ÿÁoRÿíØÑÿöîëÿ¿lNÿâ¾±ÿú÷÷ÿ¾hJÿ½gIÿóçãÿèÍÃÿ¼dEÿóçãÿèÌÂÿ»`AÿðàÚÿêÑÈÿ¹]=ÿÇ~dÿÒ—„ÿ»bBÿÓ›ˆÿüüüÿÔœ‰ÿ¶U3ÿàààÿüüüÿøøøÿ&ÄvZÿÕŸÿüüüÿÏzÿÂqUÿçËÂÿöîëÿÀnQÿ⿲ÿûùøÿ¿jMÿ¾iKÿôèäÿèÍÄÿ½fGÿóçãÿèÍÃÿ»bCÿðàÛÿêÐÇÿº_?ÿ½gHÿçÉ¿ÿüüüÿüüüÿúöõÿÂrVÿ·W6ÿßßßÿüüüÿ÷÷÷ÿ&Åx]ÿÖ¡ŽÿüüüÿÏ‘{ÿÃsWÿèÌÂÿöîìÿÁpSÿ㿳ÿüüüÿÃsXÿ¿kNÿ÷ïìÿéÎÅÿ¾hJÿóçãÿèÍÃÿ¼dFÿñáÛÿêÑÈÿ»aBÿÞ¶¨ÿüüüÿîÜÕÿا–ÿ¿mOÿ¸Z:ÿ·Y8ÿßßßÿüüüÿöööÿ&Åz_ÿÖ¢ÿüüüÿÐ’}ÿÃuZÿèÍÃÿöïìÿÂrVÿãÀ´ÿüüüÿäÁ¶ÿÖ¡Žÿüûûÿåźÿ¿jLÿôèäÿéÎÄÿÎzÿöîìÿóçâÿÔ›ˆÿã¶ÿöîëÿʆnÿß¶¨ÿóçãÿÁnRÿ¸[:ÿßßßÿüüüÿõõõÿ&Æ|bÿ×£‘ÿüüüÿÑ”ÿÄw\ÿéÍÄÿöïìÿÃtXÿäÁµÿ÷ðíÿíØÑÿüüüÿûúùÿÏ‘{ÿ¿lNÿôèäÿéÎÅÿá¼°ÿüüüÿüüüÿìÖÏÿÊ„lÿøòðÿüüüÿüüüÿèÌÂÿº^>ÿ¹]=ÿßßßÿüüüÿõõõÿ&Ç~dÿÇ}cÿÆ|bÿÆz`ÿÅy^ÿÅx^ÿÄw\ÿÄvZÿÃuZÿÃtXÿÂrVÿÏ{ÿÇfÿÁoRÿÀnQÿÀmPÿ¿lNÿ¿jMÿñâÜÿëÒÊÿ½gIÿ½fGÿ¿kOÿ̉qÿÇ~dÿ»aBÿ»`Aÿº_?ÿÞÞÞÿüüüÿüüüÿ&È€fÿÈfÿÇ~dÿÇ|bÿÆ|bÿÆz`ÿÅy^ÿÅx]ÿÄw\ÿÄvZÿÃtYÿÃsWÿÂrVÿÂqUÿÁpSÿôéåÿéÐÇÿÀlOÿâ¾²ÿëÓËÿ¾iKÿ¾hJÿ½fHÿ½fGÿ¼dFÿ¼cDÿ»bCÿ»aBÿÞÞÞÿüüüÿüüüÿ&É‚iÿÉhÿÈ€fÿÇ~eÿÇ~dÿÇ|bÿÆ{aÿÅz_ÿÅy^ÿÅx]ÿÄv[ÿÃuZÿÃtYÿÃsWÿÂrVÿèËÁÿ߸ªÿÁnRÿÀmPÿË…mÿ¿kNÿ¿jLÿ¾iKÿ¾hJÿ½fHÿ½eFÿ¼dFÿ¼cDÿßßßÿüüüÿüüüÿ"Ê„kÿɃjÿÉ‚iÿÈ€gÿÈ€fÿÇ~eÿÇ}cÿÆ|bÿÆ{aÿÅz_ÿÅx^ÿÄw\ÿÄv[ÿÃuZÿÃtXÿÃsWÿÂrVÿÁpTÿÁoRÿÁnRÿÀmPÿ¿lNÿ¿kNÿ¿jLÿ¾hJÿ½gIÿ½fHÿ½eFÿáááÿüüüÿüüüÿ"3üüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿîîîÿïïïÿïïïÿðððÿíííÿåååÿèèèÿ"3üüüÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿüüüÿÔÉÈÿÔÉÈÿüüüÿüüüÿüüüÿüüüÿüüüÿéééÿßßßÿØØØÿÒÒÒÿÉÉÉÿÂÂÂÿÖÖÖÿ3üüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿÚÚÚÿ´´´ÿ›››ÿÿ………ÿÿèèè×3üüüÿÔÉÈÿÔÉÈÿüüüÿüüüÿüüüÿÔÉÈÿÔÉÈÿüüüÿÔÉÈÿüüüÿüüüÿüüüÿÍÍÍÿªªªÿÿ•••ÿºººÿòòòýÙÙÙT3üüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿÈÈÈÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿØØØ˜3üüüÿÔÉÈÿÔÉÈÿÔÉÈÿüüüÿüüüÿÔÉÈÿÔÉÈÿüüüÿüüüÿüüüÿüüüÿüüüÿÇÇÇÿÿÿÿÿÿÿÿÿÿÿÿÿÛÛÛÏ3üüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿÇÇÇÿÿÿÿÿÿÿÿÿâââò3üüüÿÔÉÈÿÔÉÈÿÔÉÈÿüüüÿüüüÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿüüüÿüüüÿüüüÿÇÇÇÿÿÿÿÿáááòuuu3üüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿüüüÿÖÖÖÿâââñuuu3çççÿæææÿåååÿåååÿäääÿäääÿäääÿåååÿæææÿæææÿçççÿèèèÿæææÿáááµÿÀÿÀÿÀÿÀÿÀÿÀÀÿÀÿÀÿÀÿÀÿÀÿÀÿÀÿÀÿÀÿÀ?(  ÞÞÞ®¤¤¤„ŸŸŸˆˆˆŸŸŸˆŸŸŸˆŸŸŸˆŸŸŸˆŸŸŸˆŸŸŸˆ¥¥¥„ŸŸŸˆüüüÿüüüÿûûûÿûûûÿûûûÿýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ ŸŸŸˆúúúÿÔÉÈÿÔÉÈÿûûûÿÔÉÈÿÔÉÈÿÔÉÈÿÔÉÈÿþþþÿÿÿÿÿÿÿÿÿ ŸŸŸˆøøøÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿ ¾jKÿ¾hIÿ½fGÿ¼cDÿ»aAÿº_?ÿ¹]=ÿ¸[:ÿ·Y8ÿ·X6ÿ·Y7ÿ¸[9ÿ¹]<ÿº_>ÿûûûÿ ûûûÿûûûÿûûûÿ¾hIÿûûûÿ¼cDÿûûûÿº_?ÿûûûÿ¸[:ÿûûûÿûûûÿûûûÿûûûÿûûûÿ ûûûÿÁpSÿûûûÿ¿lNÿûûûÿ¾hIÿûûûÿ¼cDÿûûûÿº_?ÿûûûÿ¸[:ÿ·Y8ÿûûûÿúúúÿ ûûûÿÃtXÿûûûÿÁpSÿûûûÿ¿lNÿûûûÿ¾hIÿûûûÿ¼cDÿûûûÿº_?ÿûûûÿ¸[:ÿûûûÿ ûûûÿÅx]ÿûûûÿÃtXÿûûûÿûûûÿûûûÿ¿lNÿûûûÿ¾hIÿûûûÿûûûÿûûûÿûûûÿûûûÿ Ç~dÿÆ|aÿÅz_ÿÅx]ÿÄvZÿÃtXÿÂrUÿÁpSÿÀnPÿ¿lNÿûûûÿ¾hIÿ½fGÿ¼cDÿûûûÿ ɃiÿÈ€fÿÇ~dÿÆ|aÿÅz_ÿÅx]ÿÄvZÿÃtXÿûûûÿÁpSÿÀnPÿ¿lNÿ¾jKÿ¾hIÿûûûÿ ŸŸŸˆûûûÿÔÉÈÿûûûÿûûûÿÔÉÈÿÔÉÈÿûûûÿíííÿéééÿåååÿçççÿŸŸŸˆûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿÔÔÔÿµµµÿ£££ÿ¿¿¿îŸŸŸˆûûûÿÔÉÈÿÔÉÈÿûûûÿÔÉÈÿÔÉÈÿûûûÿÀÀÀÿºººÿÅÅÅÿÞÞÞpŸŸŸˆûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿûûûÿ¹¹¹ÿöööÿèèè™ÉÉÉÿÉÉÉÿÉÉÉÿÉÉÉÿÉÉÉÿÉÉÉÿÉÉÉÿÉÉÉÿäää³zzzààààààààðunits-2.16/unitsprog.ico0000664000175000017500000010050612312376060014614 0ustar adrianadrian ¨†00¨. hÖ%00 ¨%>+ ¨ æP  ¨Ž] h6n00¨žr( @€€€ÀÀÀ€ÿÿÿóççàÁÁùòòÍššÛ¶¶ @@±cc—..È‘‘„äÉÉèÑÑŒ®]]¦MMéÓÓ‘""“&&ë××¼xx¼yyæÍÍøññ¥JJ‘##æÌÌ«WW™22–--Â……úõõºuuˆªTTêÕÕãÇÇìÙÙþüüΜœ¦LL† —//À³ff’$$üùù°aa¡BB´iiòååš55Ë——‹„ û÷÷áÃÃôééñãã¤HHŠذ°©SSÆŒŒ::Ñ££‚š44ƒ©RRùóó÷îîÎÒ¥¥°``õëëÝ»»ÈåËËàÀÀ+TUVQ4R;SLKMNO=?@8.9 *:; <,,*0 *12345+67 () * +,-./  # $%&'   !"     (0`sssXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXppp£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'’H#¢P'£Q'£Q'£Q'£Q'XXX®hC¤R&¤R&¥R'¤R&¤R&¤R&¤R&¤R&£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'¤R'XXX¥R&þüçøÿÿøÿÿøÿÿùÿÿøÿÿøÿÿøÿÿøÿÿíÿÿðÿÿðÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿôÿÿøÿÿþüç¥S&XXX§S%øÿÿøÿÿøÿÿùÿÿùÿÿùÿÿùÿÿùÿÿøÿÿøÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿ§S$XXX¨U$ùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿ¨U#XXXªV"úÿÿùÿÿùÿÿúÿÿùÿÿúÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿøÿÿ«V"XXX¬W!úÿÿúÿÿúÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿ­X XXX®Yûÿÿúÿÿúÿÿùÿÿúÿÿúÿÿûÿÿûÿÿúÿÿúÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿúÿÿ¯X XXX±Zûÿÿûÿÿûÿÿùÿÿûÿÿûÿÿûÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿúÿÿ±ZXXX³\ûÿÿûÿÿûÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿîàØÒ±žùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÖ¸§æØÎùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿûÿÿ³[XXXµ]üÿÿûÿÿüÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿìåߪ_8Èœ„ùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿΧ’§Y1êáÚùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿûÿÿµ]XXX¸^ýÿÿüÿÿýÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿìåß«a;©\5òñîùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿöø÷«b<ª_8êáÚùÿÿùÿÿùÿÿùÿÿùÿÿûÿÿ¸_XXX¹`ýÿÿýÿÿýÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿçÚѪ`:£Q'ܼ¬ùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÞɼ£Q'¨\5áÏÄùÿÿùÿÿùÿÿùÿÿýÿÿº`XXX¼aýÿÿýÿÿþÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿ÷ûúΧ’¤T*£Q'Ä”zÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÊ¡Š£Q'£Q'Ì£öø÷ùÿÿùÿÿýÿÿ¼aXXX¼aýÿÿýÿÿþÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿ®hD£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'£Q'«a:õ÷õùÿÿýÿÿ¼aXXX¼aýÿÿýÿÿþÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿèÜÓ·yY£Q'£Q'Å–}éÕËäÕËäÕËäÕËäÕËäÕËäÕËäÕËäÕËäÕËäÕËäÕËäÕËäÕËäÕËäÕËäÕËÊŸˆ£Q'£Q'³rPæØÎùÿÿùÿÿýÿÿ¼aXXX¼aýÿÿýÿÿþÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿЬ˜£Q'¥V-îß×ùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿíçá§Y1£Q'Éž†øýüùÿÿùÿÿùÿÿýÿÿ¼aXXX¼aýÿÿýÿÿþÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÜŶ¤T*³pMøýüùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿµvU£Q'ؼ«ùÿÿùÿÿùÿÿùÿÿùÿÿýÿÿ¼aXXX¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿàŶ¤R)Ù¸¦ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿâǺ£Q'Ú¹¨ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼aXXX¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚ¹¨Å’wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËœ…Õ¯›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼aXXX¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼aXXX¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼aXXX¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼aXXX¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúøéÕËôëæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöíééÕËöíéÿÿÿÿÿÿÿÿÿíÜÔéÕËõìçÿÿÿÿÿÿÿÿÿÿÿÿ¼aXXX¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðâܪ_8£Q'£Q'Í ‰À‡k£Q'ÞÁ²ÿÿÿÒ©•£Q'À‡kÿÿÿÿÿÿâɼ£Q'°iEÿÿÿùóñ£Q'£Q'ñåßÿÿÿëØÏ¦V-£Q'£Q'üúøëÚѯhD£Q'£Q'£Q'¾…gûø÷ÿÿÿÿÿÿ¼aXXX¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼b£Q'¤T*º}]¤T*¨Z2£Q'ÞÁ²ÿÿÿÒ©•£Q'À‡kÿÿÿÿÿÿâɼ£Q'°iEÿÿÿùóñ£Q'£Q'ñåßÿÿÿÇ–|£Q'ª_8´rPúõòª_8£Q'«a:º}]¦W/£Q'È–}ÿÿÿÿÿÿ¼aXXX¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¨[4£Q'Úº©ÿÿÿèÓÈ£Q'£Q'ÞÁ²ÿÿÿÒ©•£Q'À‡kÿÿÿÿÿÿâɼ£Q'°iEÿÿÿùóñ£Q'£Q'ñåßÿÿÿÀ‡k£Q'ѧ’ÿÿÿÞÀ±£Q'«a:û÷õÿÿÿã˾£Q'ª^7ÿÿÿÿÿÿ¼aXXX¼aýÿÿýÿÿþÿÿùÿÿùÿÿùÿÿùÿÿùÿÿ¤R)£Q'èÝÕùÿÿùÿÿ©^7£Q'ÚÁ²ùÿÿÏ©•£Q'¾‡kÿÿÿùÿÿÞɼ£Q'¯iEùÿÿóóñ£Q'£Q'ìåßùÿÿ¾‡k£Q'ѯ›ùÿÿùÿÿøýüêáÚöø÷ßË¿¾‡k£Q'¨[4ùÿÿýÿÿ¼aXXX¼aýÿÿýÿÿþÿÿùÿÿùÿÿùÿÿùÿÿùÿÿ£Q'£Q'êàØùÿÿùÿÿ¯iE£Q'ÚÁ²ùÿÿÏ©•£Q'¾‡kÿÿÿùÿÿÞɼ£Q'¯iEùÿÿóóñ£Q'£Q'ìåßùÿÿ¾‡k£Q'ѯ›ùÿÿùÿÿïëçÂu¤T*£Q'£Q'£Q'ÁŽsùÿÿýÿÿ¼aXXX¾cþÿÿýÿÿýÿÿùÿÿùÿÿùÿÿùÿÿùÿÿ£Q'£Q'êàØùÿÿùÿÿ¯iE£Q'ÚÁ²ùÿÿÏ©•£Q'½…gÿÿÿùÿÿÞɼ£Q'¯iEùÿÿóóñ£Q'£Q'ìåßùÿÿ¾‡k£Q'ѯ›ùÿÿùÿÿ±mJ£Q'£Q'£Q'¦W/Ç™€õ÷õýÿÿþÿÿ¾cXXXÀdÿÿÿÿÿÿþÿÿùÿÿùÿÿùÿÿùÿÿùÿÿ£Q'£Q'êàØùÿÿùÿÿ¯iE£Q'ÚÁ²ùÿÿÏ©•£Q'´sQÿÿÿùÿÿؼ¬£Q'¯iEùÿÿóóñ£Q'£Q'ìåßùÿÿ¾‡k£Q'ѯ›ùÿÿêáÚ£Q'¤T*Å–}áÎÂðíéõ÷õùÿÿþÿÿþÿÿÀdXXXÄgÿÿÿÿÿÿÿÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿ£Q'£Q'êàØùÿÿùÿÿ¯iE£Q'ÚÁ²ùÿÿÏ©•£Q'£Q'ÞÁ²÷ûú¼„f£Q'¶xWùÿÿóóñ£Q'£Q'ìåßëâÜ·zZ£Q'Å–}æØÎêáÚ£Q'­e@ôõóöúø¾‡k£Q'ЦÿÿÿÿÿÿÄgXXXÄgÿÿÿÿÿÿÿÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿ£Q'£Q'êàØùÿÿùÿÿ¯iE£Q'ÚÁ²ùÿÿÏ©•£Q'°lH£Q'£Q'£Q'£Q'̤Žùÿÿóóñ£Q'£Q'ìåß¾‡k£Q'£Q'£Q'¨\5øýü°kG£Q'£Q'£Q'£Q'£Q'ê×ÍÿÿÿÿÿÿÄgXXXÄgÿÿÿÿÿÿÿÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿ¹}]¹}]îèâùÿÿùÿÿÁŽs¹}]âÑÆùÿÿÙ¿°¹}]Ù¿°×´¡ª_8£Q'Ä”zöúøùÿÿõ÷õ¹}]¹}]ðìçÍ¥ª_8£Q'®hD½…gùÿÿîè⿉l£Q'£Q'°lHÛ³ÿÿÿÿÿÿÿÿÿÄgXXXÆhÿÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿ¾‡k£Q'ѯ›ùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿÿÿÿÿÿÿÆiXXXÈi ÿÿÿÿÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿóóñ£Q'£Q'ìåßùÿÿÑv£Q'ѯ›ùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿÿÿÿÿÿÿÉi[[[Ëk ÿÿÿÿÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿóóñ£Q'£Q'ìåßùÿÿöúøÈ›ƒÑ¯›ùÿÿùÿÿÿÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿÿÿÿÿÿÿÿÿÿËk ___Íl ÿÿÿÿÿÿÿÿÿùÿÿÿÿÿÿÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿöúøÒ©•Ò©•óóðùÿÿùÿÿùÿÿöø÷ùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿÿÿÿÍl aaaÏn ÿÿÿÿÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿÿÿÿÏn aaaÒoÿÿÿÿÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑpaaaÔpÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÓqaaaÖrÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÞÜÇÖw```¹c²_­]«[ª\ª[ª\ª\ª\ª[ª[ª\ª\ª\ª\ª\ª[ª[ª\ª\ª[ª[ª[ª[ª[ª[ª[ª[ª[ª[ª[ª[ª[ª[ª[ª[ª\ª[ª[ª[ª[ª[ª[«\­]µbÄt]]]¼e½f¼e¹c¹b¹c¹b¸c¸b¹b¸b¹b¸b¸c¸b¸b¹b¸c¹c¹c¸b¸b¸b¸b¸b¸b¸b¸b¹b¸b¹c¹c¸c¸c¹bÂoÖŽ@¼h ¹bÈy"Ë}'¸b¤e)qj‹’iPÂtÆtYYYÂjÊnÔrØsÙtÙuÙtØuÙwÙuÙvÚy Ú{Úz Ú{Ùz Úx ØvÙwÙwØuØuØuØuØuØuØuØuÙtØtÙvÙvØvÙwÙvê›Eø¼|Ý‚Úy í¤Uù¾Øu{r“FpãcqµÈ‚3ÌwiiiÊoÑyã Sê©^íŸEîŸDî¡Iî¢IîŸDíš:îžBï¢Iì—6ì—3ì˜8í?î@ìœ=íœ>íœ>íœ=íœ=íœ=íœ=íœ=íœ=íœ=íœ=ì™8ë“,ì–0í•0ë“-ë“.ê(ë'ë’,ì•0ì“-ì”0ì–1í˜7íš8ÊŒPß‹,ÛŒ1ÐqÒqÕvØz ×x ×vÖsÖsÖsÖsÖsÖsÖtÖtÖt×u×u×u×u×u×w×w×w×w×w×w×w×w×w×u×uÖuÖtÖsÖsÖsÖsÖsÖsÖsÖsÖsÖtØwÙx ×v€€( àšIå”6ç’0ç-æ‘+æ,æ’/æ-æ&äŒ$ç+é*ã‘4·>¼g½d¼c ½d ½d¼b ¼c ¼c Èx(Ês ³o7|WR®”x}}}à´„åà×äÜÏåÝÐåÜÐäÝÐäÜÐãÚËãÚÌçÛÉìÚ½›zZíÜÿÿÿþÿÿÓ¨¨ú÷÷çÐЕf@翘ëÖÖ÷ùùãÐÐõõõêÝÝÞÅÅúÿÿѨ¨Í¡¡ªXXôððÞÃÃ÷ñð’gDªUUòääž<<éÓÓ•++¨PPÍ››§MM¿~~ž==¬YY²ddºuuñââ99±ccÙ²²Æ¹rrÝ»»“''¾||eD徚µii°dd‘""åÓÓ²hhÕ²²Ä¥MMÚ»»œ::ªWW´mm™33㼜úõõâÎÎçÖÖèÚÚñíííääæÕÕùüüßÇÇóíìcE໹wwñìì¯bbøùùýÿþŠbEÏ¥¥Š¹vvÀ……Ÿ@@ž>>ñæåˆ`EøññªTTá¯^^Ò¥¥…^GÛ¹£ýÿÿûüüÉ––üÿÿìÝÝ×´´×²›úõóùõòøõò÷õòº€b”Y9ŒQ2‹Q2‰O1ŽQ3sP?”””~~~„„„˜™šššššššššš›‘’““”“““““““•–—ŒŽŽŽŽŽŽŽŽŽ„…*††‡ˆ‰‰‰‰Š‹†+„0**€*****‚ƒ*„0*7wxyzzzzz{|}~p*77kq7777rstuvdefg4hijklm40123456789:;<=>)**++++*,-.+**/ !!"!!#$%&'( €(0` Œ§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ’H#ÿ¢P'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ§¢Q&ݤR&ÿ¤R&ÿ¥R'ÿ¤R&ÿ¤R&ÿ¤R&ÿ¤R&ÿ¤R&ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ¤R'ÿ§¥R&ÿþüçÿøÿÿÿøÿÿÿøÿÿÿùÿÿÿøÿÿÿøÿÿÿøÿÿÿøÿÿÿíÿÿÿðÿÿÿðÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿôÿÿÿøÿÿÿþüçÿ¥S&ÿ§§S%ÿøÿÿÿøÿÿÿøÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿøÿÿÿøÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿ§S$ÿ§¨U$ÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿ¨U#ÿ§ªV"ÿúÿÿÿùÿÿÿùÿÿÿúÿÿÿùÿÿÿúÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿøÿÿÿ«V"ÿ§¬W!ÿúÿÿÿúÿÿÿúÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿ­X ÿ§®Yÿûÿÿÿúÿÿÿúÿÿÿùÿÿÿúÿÿÿúÿÿÿûÿÿÿûÿÿÿúÿÿÿúÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿúÿÿÿ¯X ÿ§±ZÿûÿÿÿûÿÿÿûÿÿÿùÿÿÿûÿÿÿûÿÿÿûÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿêàØÿÒ±žÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿÖ¸§ÿæØÎÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿúÿÿÿ±Zÿ§³\ÿûÿÿÿûÿÿÿûÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿìåßÿª_8ÿÈœ„ÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿΧ’ÿ§Y1ÿêáÚÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿûÿÿÿ³[ÿ§µ]ÿüÿÿÿûÿÿÿüÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿìåßÿ«a;ÿ¨\5ÿòñîÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿöø÷ÿ«b<ÿª_8ÿêáÚÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿûÿÿÿµ]ÿ§¸^ÿýÿÿÿüÿÿÿýÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿçÚÑÿª`:ÿ£Q'ÿؼ¬ÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿÞɼÿ£Q'ÿ¨\5ÿáÏÄÿùÿÿÿùÿÿÿùÿÿÿûÿÿÿ¸_ÿ§¹`ÿýÿÿÿýÿÿÿýÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿ÷ûúÿΧ’ÿ¤T*ÿ£Q'ÿÄ”zÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿÊ¡Šÿ£Q'ÿ£Q'ÿÌ£ÿöø÷ÿùÿÿÿýÿÿÿº`ÿ§¼aÿýÿÿÿýÿÿÿþÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿ®hDÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ«a:ÿõ÷õÿýÿÿÿ¼aÿ§¼aÿýÿÿÿýÿÿÿþÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿèÜÓÿ·yYÿ£Q'ÿ£Q'ÿÅ–}ÿäÕËÿäÕËÿäÕËÿäÕËÿäÕËÿäÕËÿäÕËÿäÕËÿäÕËÿäÕËÿäÕËÿäÕËÿäÕËÿäÕËÿäÕËÿäÕËÿäÕËÿÊŸˆÿ£Q'ÿ£Q'ÿ³rPÿæØÎÿùÿÿÿýÿÿÿ¼aÿ§¼aÿýÿÿÿýÿÿÿþÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿЬ˜ÿ£Q'ÿ¥V-ÿéß×ÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿíçáÿ§Y1ÿ£Q'ÿÉž†ÿøýüÿùÿÿÿùÿÿÿýÿÿÿ¼aÿ§¼aÿýÿÿÿýÿÿÿþÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿÜŶÿ¤T*ÿ²pMÿøýüÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿµvUÿ£Q'ÿؼ«ÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿýÿÿÿ¼aÿ§¼aÿýÿÿÿýÿÿÿþÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿÜŶÿ¤R)ÿÖ¸¦ÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿÝǺÿ£Q'ÿÖ¹¨ÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿýÿÿÿ¼aÿ§¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚ¹¨ÿÅ’wÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËœ…ÿÕ¯›ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼aÿ§¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼aÿ§¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼aÿ§¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼aÿ§¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼aÿ§¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿüúøÿéÕËÿôëæÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿöíéÿéÕËÿöíéÿÿÿÿÿÿÿÿÿÿÿÿÿíÜÔÿéÕËÿõìçÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼aÿ§¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿðâÜÿª_8ÿ£Q'ÿ£Q'ÿÍ ‰ÿÀ‡kÿ£Q'ÿÞÁ²ÿÿÿÿÿÒ©•ÿ£Q'ÿÀ‡kÿÿÿÿÿÿÿÿÿâɼÿ£Q'ÿ°iEÿÿÿÿÿùóñÿ£Q'ÿ£Q'ÿñåßÿÿÿÿÿëØÏÿ¦V-ÿ£Q'ÿ£Q'ÿüúøÿëÚÑÿ¯hDÿ£Q'ÿ£Q'ÿ£Q'ÿ¾…gÿûø÷ÿÿÿÿÿÿÿÿÿ¼aÿ§¼aÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¼bÿ£Q'ÿ¤T*ÿº}]ÿ¤T*ÿ¨Z2ÿ£Q'ÿÞÁ²ÿÿÿÿÿÒ©•ÿ£Q'ÿÀ‡kÿÿÿÿÿÿÿÿÿâɼÿ£Q'ÿ°iEÿÿÿÿÿùóñÿ£Q'ÿ£Q'ÿñåßÿÿÿÿÿÇ–|ÿ£Q'ÿª_8ÿ´rPÿúõòÿª_8ÿ£Q'ÿ«a:ÿº}]ÿ¦W/ÿ£Q'ÿÈ–}ÿÿÿÿÿÿÿÿÿ¼aÿ§¼aÿýÿÿÿýÿÿÿþÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿ¨[4ÿ£Q'ÿ׺©ÿùÿÿÿãÓÈÿ£Q'ÿ£Q'ÿÚÁ²ÿùÿÿÿÏ©•ÿ£Q'ÿ¾‡kÿùÿÿÿùÿÿÿÞɼÿ£Q'ÿ¯iEÿùÿÿÿóóñÿ£Q'ÿ£Q'ÿìåßÿùÿÿÿ¾‡kÿ£Q'ÿΧ’ÿùÿÿÿÚÀ±ÿ£Q'ÿ«a:ÿõ÷õÿùÿÿÿß˾ÿ£Q'ÿ©^7ÿùÿÿÿýÿÿÿ¼aÿ§¼aÿýÿÿÿýÿÿÿþÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿ¤R)ÿ£Q'ÿèÝÕÿùÿÿÿùÿÿÿ©^7ÿ£Q'ÿÚÁ²ÿùÿÿÿÏ©•ÿ£Q'ÿ¾‡kÿùÿÿÿùÿÿÿÞɼÿ£Q'ÿ¯iEÿùÿÿÿóóñÿ£Q'ÿ£Q'ÿìåßÿùÿÿÿ¾‡kÿ£Q'ÿѯ›ÿùÿÿÿùÿÿÿøýüÿêáÚÿöø÷ÿßË¿ÿ¾‡kÿ£Q'ÿ¨[4ÿùÿÿÿýÿÿÿ¼aÿ§¾cÿþÿÿÿýÿÿÿýÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿ£Q'ÿ£Q'ÿêàØÿùÿÿÿùÿÿÿ¯iEÿ£Q'ÿÚÁ²ÿùÿÿÿÏ©•ÿ£Q'ÿ¾‡kÿùÿÿÿùÿÿÿÞɼÿ£Q'ÿ¯iEÿùÿÿÿóóñÿ£Q'ÿ£Q'ÿìåßÿùÿÿÿ¾‡kÿ£Q'ÿѯ›ÿùÿÿÿùÿÿÿïëçÿÂuÿ¤T*ÿ£Q'ÿ£Q'ÿ£Q'ÿÁŽsÿýÿÿÿþÿÿÿ¾cÿ§Àdÿÿÿÿÿÿÿÿÿþÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿ£Q'ÿ£Q'ÿêàØÿùÿÿÿùÿÿÿ¯iEÿ£Q'ÿÚÁ²ÿùÿÿÿÏ©•ÿ£Q'ÿ½…gÿùÿÿÿùÿÿÿÞɼÿ£Q'ÿ¯iEÿùÿÿÿóóñÿ£Q'ÿ£Q'ÿìåßÿùÿÿÿ¾‡kÿ£Q'ÿѯ›ÿùÿÿÿùÿÿÿ±mJÿ£Q'ÿ£Q'ÿ£Q'ÿ¦W/ÿÇ™€ÿõ÷õÿþÿÿÿþÿÿÿÀdÿ§Ägÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿùÿÿÿÿÿÿÿùÿÿÿ£Q'ÿ£Q'ÿêàØÿùÿÿÿùÿÿÿ¯iEÿ£Q'ÿÚÁ²ÿùÿÿÿÏ©•ÿ£Q'ÿ´sQÿùÿÿÿùÿÿÿؼ¬ÿ£Q'ÿ¯iEÿùÿÿÿóóñÿ£Q'ÿ£Q'ÿìåßÿùÿÿÿ¾‡kÿ£Q'ÿѯ›ÿùÿÿÿêáÚÿ£Q'ÿ¤T*ÿÅ–}ÿáÎÂÿðíéÿõ÷õÿÿÿÿÿÿÿÿÿÿÿÿÿÄgÿ§Ägÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿùÿÿÿÿÿÿÿùÿÿÿ£Q'ÿ£Q'ÿêàØÿùÿÿÿùÿÿÿ¯iEÿ£Q'ÿÚÁ²ÿùÿÿÿÏ©•ÿ£Q'ÿ£Q'ÿÚÁ²ÿ÷ûúÿ¼„fÿ£Q'ÿ¶xWÿùÿÿÿóóñÿ£Q'ÿ£Q'ÿìåßÿëâÜÿ·zZÿ£Q'ÿÅ–}ÿæØÎÿêáÚÿ£Q'ÿ­e@ÿôõóÿöúøÿ¾‡kÿ£Q'ÿЦÿÿÿÿÿÿÿÿÿÄgÿ§Ägÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿùÿÿÿÿÿÿÿùÿÿÿ£Q'ÿ£Q'ÿêàØÿùÿÿÿùÿÿÿ¯iEÿ£Q'ÿÚÁ²ÿùÿÿÿÏ©•ÿ£Q'ÿ°lHÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ̤Žÿùÿÿÿóóñÿ£Q'ÿ£Q'ÿìåßÿ¾‡kÿ£Q'ÿ£Q'ÿ£Q'ÿ¨\5ÿøýüÿ°kGÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿ£Q'ÿê×ÍÿÿÿÿÿÿÿÿÿÄgÿ§Æhÿÿÿÿÿÿÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿ¹}]ÿ¹}]ÿîèâÿùÿÿÿùÿÿÿÁŽsÿ¹}]ÿâÑÆÿùÿÿÿÙ¿°ÿ¹}]ÿÙ¿°ÿÔ´¡ÿª_8ÿ£Q'ÿÄ”zÿöúøÿùÿÿÿõ÷õÿ¹}]ÿ¹}]ÿðìçÿÍ¥ÿª_8ÿ£Q'ÿ®hDÿ½…gÿùÿÿÿîèâÿ¿‰lÿ£Q'ÿ£Q'ÿ°lHÿÛ³ÿÿÿÿÿÿÿÿÿÿÿÿÿÆiÿ©Èi ÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿ¾‡kÿ£Q'ÿѯ›ÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÉiÿ ¬!Ëk ÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿóóñÿ£Q'ÿ£Q'ÿìåßÿùÿÿÿÑvÿ£Q'ÿѯ›ÿùÿÿÿùÿÿÿÿÿÿÿùÿÿÿùÿÿÿÿÿÿÿùÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿËk ÿ®"Íl ÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿóóñÿ£Q'ÿ£Q'ÿìåßÿùÿÿÿöúøÿÈ›ƒÿѯ›ÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÍl ÿ®"Ïn ÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿöúøÿÏ©•ÿÏ©•ÿóóðÿùÿÿÿùÿÿÿùÿÿÿöø÷ÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÏn ÿ®"ÒoÿÿÿÿÿÿÿÿÿÿÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿùÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÑpÿ®"ÔpÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÓqÿ®!ÖrÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÞÜÇÿÖwÿ­¹cÿ²_ÿ­]ÿ«[ÿª\ÿª[ÿª\ÿª\ÿª\ÿª[ÿª[ÿª\ÿª\ÿª\ÿª\ÿª\ÿª[ÿª[ÿª\ÿª\ÿª[ÿª[ÿª[ÿª[ÿª[ÿª[ÿª[ÿª[ÿª[ÿª[ÿª[ÿª[ÿª[ÿª[ÿª[ÿª\ÿª[ÿª[ÿª[ÿª[ÿª[ÿª[ÿ«\ÿ­]ÿµbÿÄtÿ ª¼eÿ½fÿ¼eÿ¹cÿ¹bÿ¹cÿ¹bÿ¸cÿ¸bÿ¹bÿ¸bÿ¹bÿ¸bÿ¸cÿ¸bÿ¸bÿ¹bÿ¸cÿ¹cÿ¹cÿ¸bÿ¸bÿ¸bÿ¸bÿ¸bÿ¸bÿ¸bÿ¹bÿ¸bÿ¹cÿ¹cÿ¸cÿ¸cÿ¹bÿÂoÿÖŽ@ÿ¼h ÿ¹bÿÈy"ÿË}'ÿ¸bÿ¤e)ÿqj‹ÿ’iPÿÂtÿÆtÿ¨ÂjÿÊnÿÔrÿØsÿÙtÿÙuÿÙtÿØuÿÙwÿÙuÿÙvÿÚy ÿÚ{ÿÚz ÿÚ{ÿÙz ÿÚx ÿØvÿÙwÿÙwÿØuÿØuÿØuÿØuÿØuÿØuÿØuÿÙtÿØtÿÙvÿÙvÿØvÿÙwÿÙvÿê›Eÿø¼|ÿÝ‚ÿÚy ÿí¤Uÿù¾ÿØuÿ{r“ÿFpãÿcqµÿÈ‚3ÿÌwÿ–ÊoÿÑyÿã Sÿê©^ÿíŸEÿîŸDÿî¡Iÿî¢IÿîŸDÿíš:ÿîžBÿï¢Iÿì—6ÿì—3ÿì˜8ÿí?ÿî@ÿìœ=ÿíœ>ÿíœ>ÿíœ=ÿíœ=ÿíœ=ÿíœ=ÿíœ=ÿíœ=ÿíœ=ÿì™8ÿë“,ÿì–0ÿí•0ÿë“-ÿë“.ÿê(ÿë'ÿë’,ÿì•0ÿì“-ÿì”0ÿì–1ÿí˜7ÿíš8ÿÊŒPÿß‹,ÿÛŒ1ÿÐqÿJÝw1ÒqÿÕvÿØz ÿ×x ÿ×vÿÖsÿÖsÿÖsÿÖsÿÖsÿÖsÿÖtÿÖtÿÖtÿ×uÿ×uÿ×uÿ×uÿ×uÿ×wÿ×wÿ×wÿ×wÿ×wÿ×wÿ×wÿ×wÿ×uÿ×uÿÖuÿÖtÿÖsÿÖsÿÖsÿÖsÿÖsÿÖsÿÖsÿÖsÿÖsÿÖtÿØwÿÙx ÿ×vÿ²`W€( @€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€€‰YBxI1wG0wG0wG0wG0wG0wH0wH0wH0wH0wH0wH0wH0wH0wH0wH0wH0wH0wH0wH0wH0wH0xI0rE.pE.xH0xH0~L3b_]€€€¡K¦S(¤O$¢N!¢N!¢N!¢N!¢N!¡N" M"¡M"¢M"¢M"¢M"¢M"¢M"¢M"¢M"¢M"¢M"¢M"¢M"¢M"¢M"¢N" M" M"¡O$¤S)¤O"\TP€€€´lAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿ÷ÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÉ—sXRO€€€²j@ÿÿÿÿÿÿþÿÿÿÿÿþÿÿþÿÿþÿÿÿÿÿÿÿÿÿÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿþÿÿÿÿÿÿÿÿÇ—zXRO€€€³h:ÿÿÿüÿÿüÿÿÿÿÿûÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿüÿÿÿÿÿÈ”sYRO€€€µi7ÿÿÿýÿÿúÿÿÿÿÿùÿÿûÿÿûÿÿúÿÿúÿÿúÿÿóõôåáÝúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿæãßïïíúÿÿúÿÿúÿÿûÿÿÿÿÿÊ•rYRO€€€·l6ÿÿÿþÿÿûÿÿÿÿÿüÿÿüÿÿûÿÿúÿÿúÿÿôöõ’nZÅ´ªúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿÐŽŒePðñðúÿÿúÿÿûÿÿÿÿÿÌ–qYSO€€€»n5ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõñð”o\’mXýýýÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ™vchTñíêÿÿÿÿÿÿÿÿÿΗnYSO€€€»n5ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÚÍÆ†\FyJ2ʸ®ÞÓÍÞÓÍÞÓÍÞÓÍÞÓÍÞÓÍÞÓÍÞÓÍÞÓÍÞÓÍÞÓÍξµzL3ƒW@ÖÈÁÿÿÿÿÿÿΗnYSO€€€¾o1ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿèàÛ€T=xI0xI0xI0xI0xI0xI0xI0xI0xI0xI0xI0xI0xI0xI0xI0xI0xI0~R:ÞÒÌÿÿÿЙmYSO€€€Áp0ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿõñð¡€nyJ2×ÊÂÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿßÔÎzL3˜taòîìÿÿÿÿÿÿÒšlYSO€€€Ãr.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ±–‡ƒW@öóñÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿûùùˆ_I«~ýýýÿÿÿÿÿÿÿÿÿÕ›kYSO€€€Æs-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­·žÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ‚qÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿלjZSO€€€Æs-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿלjZSO€€€Æs-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿלjZSO€€€Æs-ÿÿÿÿÿÿ¬xI0›xeű¦¤„sÿÿÿƲ¨{iÿÿÿÿÿÿ§‰y¹¡”ÿÿÿ§‰y¹¡”ÿÿÿȵ«xI0—s`ùöõ£ƒrxI0~R:¸ “ÿÿÿÿÿÿלjZSO€€€Æs-ÿÿÿæÝØxI0”o\¯”…zL3…[Dÿÿÿ²—‰|O6ÿÿÿÿÿÿŠbL¢‚qÿÿÿŠbL¢‚qÿÿÿ™ub…[DƲ¨­yJ2³™‹¥†vxI0ÙËÄÿÿÿלjZSO€€€Æs-ÿÿÿÕÆ¾xI0ØÊÃÿÿÿšwe…[Dÿÿÿ²—‰|O6ÿÿÿÿÿÿŠbL¢‚qÿÿÿŠbL¢‚qÿÿÿjU{iÿÿÿâØÓ̺±ùöõÈ´ªxI0Ʋ¨ÿÿÿלjZSO€€€Æs-ÿÿÿÕÆ¾xI0á×Òúÿÿ¥ˆx…[Dùÿÿ°—‰{M5úÿÿúÿÿŠbL¡‚qúÿÿŠbL¡‚qúÿÿjU|júÿÿóõô¢ƒrxI0xI0}O7æãßÿÿÿלjZSO€€€Év,ÿÿÿÕÆ¾xI0ãÙÓùÿÿ¦ˆx…[Düÿÿ°—‰xI0óöôúÿÿ„YC¡‚qúÿÿŠbL¡‚qúÿÿjU|júÿÿ²›xI0’nZ½ªžìëèüÿÿÿÿÿÙiZTO€€€Ëw*ÿÿÿÕÆ¾xI0ãÙÓüÿÿ¦ˆx…[Dûÿÿ°—‰xI0®”†Ë½´yJ2©Ž~úÿÿŠbL¡‚qÖÍÆ„YCŠcMʼ³©Ž~„YCÛÓͱ™‹‰aKðêèÿÿÿÛžhZTO€€€Íx'ÿÿÿÔÆ¾xI0ãÙÓùÿÿ¥ˆx…[Dúÿÿ°—‰„YC™wexI0zL3ÚÒËúÿÿŠbL¡‚q°—‰xI0xI0™wdßÙÓ€T=xI0xI0 pÿÿÿÿÿÿÝ¡fZTO€€€Ðz&ÿÿÿÿÿÿùÿÿÿÿÿùÿÿùÿÿúÿÿúÿÿúÿÿúÿÿúÿÿÝÖÐìëèúÿÿúÿÿùÿÿùÿÿúÿÿjU|júÿÿûÿÿ÷öõÛÓÍæÞÚùÿÿÿÿÿÿÿÿߢe[TO€€€Ò{$ÿÿÿÿÿÿúÿÿÿÿÿÿÿÿÿÿÿùÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿùÿÿŠbL¡‚qùÿÿ¯–ˆ|júÿÿúÿÿûÿÿùÿÿûÿÿùÿÿûÿÿÿÿÿà£b[TO€€€×$ÿÿÿÿÿÿúÿÿÿÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿúÿÿ¦‰y·¡”úÿÿúÿÿãßÛúÿÿúÿÿúÿÿúÿÿúÿÿýÿÿÿÿÿÿÿÿâ£b[TO€€€Þ†*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç©c[TO€€€Ô}ÜßÎÚÕ½ÙÒ¹ÙÒ¹ÙÒ¹ÚÓ¹ÚÓ¹ÚÒ¹ÚÓ¹ÚÓ¹ÚÓ¹ÚÓ¹ÙÒ¹ÙÓ¹ÙÒ¹ÚÒ¹ÚÒ¹ÚÒ¹ÙÒ¹ÙÓ¸ØÏ¶ÖͳÙÑ·ØÏµØÏ´ÝÑ´ãÒªÞÜÃÔ7^][€€€³Y©L¢FŸCŸEŸEŸDŸEŸCŸCŸCŸDŸCŸC EŸCŸDŸEŸEŸEžC¤IªS@¦J¦I B‰I KºY```€€€¾fËkÒmÑkÑnÑnÐnÑnÑmÒqÒrÒrÑqÑnÑnÏmÑlÑnÑoÏoÏiå—@ð«bÏjì¡Qö¢Dœf>.jý~r‡Ïottt€€€Ðu Û‰*í§Vð=ðœ;ðœ;ð?ñ›7ð˜3ñŸ?î—/î–/ð›8ð›7îš5ðš6ï•-ï’&ð”*í‘'íŽ!ð”+ð˜3í$ò™3õž5è•7À‹_Õ‹;Ùx¨¤žÕz݉*݆!܄܄܂ÜÜ܃ÜÜ€݄݄݆݃Ý…Ü‚܃ÜÛ€Ùz Ùz Ü€Ù{ Ú{ ã‚ èƒ åâ®pÀ€€( @ ^ƒ‰ˆˆˆˆˆˆˆˆˆwwwÿwwwÿwwwÿrrrÿ]]]ÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿXXXÿbbbÿ–––ÿ•G ”‰>ê…:ðƒ9ðƒ8ðƒ8ðƒ8ðƒ9ðƒ:ðƒ:ðƒ:ðƒ:ðƒ:ðŠF"ÿŠF"ÿŠF"ÿŠF"ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿxG.ÿa^]ÿ¡Kÿ¦S(ÿ¤O$ÿ¢N!ÿ¢N!ÿ¢N!ÿ¢N!ÿ¡N"ÿ M"ÿ¡M"ÿ¢M"ÿ¢M"ÿ¢M"ÿ¢M"ÿ¢M"ÿ¢M"ÿ¢M"ÿ¢M"ÿ¢M"ÿ¢M"ÿ¢M"ÿ¢M"ÿ¢M"ÿ¢M"ÿ¢M"ÿ¢N"ÿ M"ÿ M"ÿ¡O$ÿ¤S)ÿ¤O"ÿ[PJÿ´lAÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿúÿÿÿ÷ÿÿÿûÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿýÿÿÿÿÿÿÿÉ—sÿaSKÿ²j@ÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÿÿÿÿÇ—zÿ^RKÿ³h:ÿÿÿÿÿüÿÿÿüÿÿÿûÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿùõóÿèàÛÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿéâÜÿðïìÿúÿÿÿúÿÿÿúÿÿÿüÿÿÿÿÿÿÿÈ”sÿ\QKÿµi7ÿÿÿÿÿýÿÿÿúÿÿÿùÿÿÿûÿÿÿûÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿõöõÿ¢kNÿ̳¤ÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿÖøÿ›aCÿòñïÿúÿÿÿúÿÿÿûÿÿÿÿÿÿÿÊ•rÿ]RKÿ·l6ÿÿÿÿÿþÿÿÿûÿÿÿüÿÿÿüÿÿÿûÿÿÿúÿÿÿúÿÿÿúÿÿÿòñïÿ¢lPÿ¡iLÿùýüÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿ¦sXÿeGÿïìèÿúÿÿÿûÿÿÿÿÿÿÿÌ–qÿ^RKÿ»n5ÿÿÿÿÿþÿÿÿùÿÿÿùÿÿÿùÿÿÿúÿÿÿúÿÿÿúÿÿÿÛÌÂÿ–Y8ÿ‹F#ÿѶ¨ÿßÒÉÿßÒÉÿßÒÉÿßÒÉÿßÒÉÿßÒÉÿßÒÉÿßÒÉÿßÒÉÿßÒÉÿßÒÉÿÒ¼¯ÿŒH$ÿ“T2ÿØÇ¼ÿûÿÿÿÿÿÿÿΗnÿ^RKÿ¾o1ÿÿÿÿÿÿÿÿÿùÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿçßÙÿ‘Q/ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿŠE!ÿN+ÿßÑÈÿÿÿÿÿЙmÿ^RKÿÁp0ÿÿÿÿÿÿÿÿÿùÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿòñïÿ¬}dÿ‹F#ÿÝɾÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿßÓÊÿŒH$ÿ¥qVÿðîêÿûÿÿÿÿÿÿÿÒšlÿ_RKÿÃr.ÿÿÿÿÿÿÿÿÿùÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿ¹“ÿ“T2ÿóóðÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿ÷ùøÿ˜\<ÿ´‹tÿùýüÿúÿÿÿûÿÿÿÿÿÿÿÕ›kÿ_TLÿÃr.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ¸ŽxÿÀ›ˆÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿˬœÿ¯fÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕ›kÿ[UQÿÃr.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕ›kÿ[UQÿÃr.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÕ›kÿ[UQÿÃr.ÿÿÿÿÿÿÿÿÿÿÿÿÿ·ŒvÿŠE!ÿ¨uZÿͯ ÿ°iÿÿÿÿÿα¡ÿªx^ÿÿÿÿÿÿÿÿÿ³†oÿßÿÿÿÿÿ³†oÿßÿÿÿÿÿϳ¥ÿŠE!ÿ¥pTÿúöõÿ¯hÿŠE!ÿN+ÿž‹ÿÿÿÿÿÿÿÿÿÕ›kÿ[UQÿÃr.ÿÿÿÿÿÿÿÿÿéÜÕÿŠE!ÿ£lPÿº‘|ÿŒH$ÿ•W7ÿÿÿÿÿ¼•€ÿŽK(ÿÿÿÿÿÿÿÿÿš^?ÿ¯fÿÿÿÿÿš^?ÿ¯fÿÿÿÿÿ¦rWÿ•W7ÿα¡ÿ¸Žxÿ‹F#ÿ½–‚ÿ±ƒlÿŠE!ÿÞÊÀÿÿÿÿÿÕ›kÿ[UQÿÃr.ÿÿÿÿÿÿÿÿÿÚźÿŠE!ÿÝÉ¿ÿÿÿÿÿ¨tYÿ•W7ÿÿÿÿÿ¼•€ÿŽK(ÿÿÿÿÿÿÿÿÿš^?ÿ¯fÿÿÿÿÿš^?ÿ¯fÿÿÿÿÿŸfIÿªx^ÿÿÿÿÿæ×ÏÿÓ¹«ÿúöõÿϳ¤ÿŠE!ÿα¡ÿÿÿÿÿÕ›kÿ[UQÿÃr.ÿÿÿÿÿÿÿÿÿÖźÿŠE!ÿâÖÎÿúÿÿÿ±†nÿ•W7ÿúÿÿÿº•€ÿI&ÿÿÿÿÿúÿÿÿ™^?ÿ­fÿúÿÿÿ™^?ÿ­fÿúÿÿÿžfIÿªy_ÿúÿÿÿôõóÿ®hÿŠE!ÿŠE!ÿŽL)ÿéâÜÿÿÿÿÿÕ›kÿ[UQÿÆs-ÿÿÿÿÿÿÿÿÿÖźÿŠE!ÿâØÐÿùÿÿÿ±†nÿ•W7ÿúÿÿÿº•€ÿŠE!ÿùöôÿúÿÿÿ”V5ÿ­fÿúÿÿÿ™^?ÿ­fÿúÿÿÿžfIÿªy_ÿúÿÿÿ¼™…ÿŠE!ÿ¡kNÿƨ—ÿîëçÿúÿÿÿÿÿÿÿלjÿ\UQÿÉv,ÿÿÿÿÿÿÿÿÿןÿŠE!ÿãØÐÿüÿÿÿ²†nÿ•W7ÿúÿÿÿº•€ÿŠE!ÿº’}ÿÑ»®ÿ‹F#ÿ´‹uÿúÿÿÿ™^?ÿ­fÿÛËÁÿ”V5ÿš_@ÿÑ»­ÿ´‹uÿ”V5ÿßÒÉÿ»—ƒÿ™^>ÿïêæÿÿÿÿÿÙiÿ\UQÿËw*ÿÿÿÿÿÿÿÿÿÖźÿŠE!ÿäØÐÿûÿÿÿ±†nÿ•W7ÿúÿÿÿº•€ÿ”V5ÿ¨tYÿŠE!ÿŒH$ÿÞÑÈÿúÿÿÿ™^?ÿ­fÿº•€ÿŠE!ÿŠE!ÿ¦tYÿâØÐÿ‘Q/ÿŠE!ÿŠE!ÿ¬~fÿÿÿÿÿÿÿÿÿÛžhÿ\UQÿÍx'ÿÿÿÿÿþÿÿÿùÿÿÿùÿÿÿùÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿÿÿÿÿáÕÍÿîëçÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿžfIÿªy_ÿúÿÿÿúÿÿÿõöõÿßÒÉÿåÞ×ÿùÿÿÿÿÿÿÿÿÿÿÿÝ¡fÿ\UQÿÐz&ÿÿÿÿÿÿÿÿÿùÿÿÿùÿÿÿùÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿÿÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿ™^?ÿ­fÿúÿÿÿº”€ÿªy_ÿúÿÿÿûÿÿÿýÿÿÿûÿÿÿþÿÿÿùÿÿÿÿÿÿÿÿÿÿÿߢeÿ\UQÿÒ{$ÿÿÿÿÿÿÿÿÿúÿÿÿÿÿÿÿÿÿÿÿùÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿÿÿÿÿúÿÿÿúÿÿÿùÿÿÿùÿÿÿ³†oÿÁŸÿùÿÿÿúÿÿÿæÞØÿúÿÿÿúÿÿÿûÿÿÿùÿÿÿûÿÿÿùÿÿÿûÿÿÿÿÿÿÿà£bÿ\UQÿ×$ÿÿÿÿÿÿÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿÿÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿýÿÿÿÿÿÿÿÿÿÿÿâ£bÿ\UQÿÞ†*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿç©cÿ\UQÿÔ}ÿÜßÎÿÚÕ½ÿÙÒ¹ÿÙÒ¹ÿÚÓ¹ÿÚÓ¹ÿÚÒ¹ÿÚÓ¹ÿÚÓ¹ÿÚÓ¹ÿÚÓ¹ÿÙÒ¹ÿÙÒ¹ÿÙÓ¹ÿÙÒ¹ÿÙÒ¹ÿÚÒ¹ÿÚÒ¹ÿÚÒ¹ÿÙÒ¹ÿÙÓ¸ÿØÏ¶ÿÖͳÿÙÑ·ÿØÏµÿØÏ´ÿÝÑ´ÿãÒªÿÞÜÃÿÔ7ÿ`^]ÿ³Yÿ©Lÿ¢FÿŸCÿŸEÿŸDÿŸEÿŸCÿŸCÿŸCÿŸDÿŸCÿŸCÿŸCÿ EÿŸCÿŸCÿŸDÿŸEÿŸEÿŸEÿžCÿ¤IÿªSÿ@ÿ¦Jÿ¦Iÿ Bÿ‰Iÿ KÿºYÿ```ÿ¾fÿËkÿÒmÿÑkÿÑnÿÐnÿÑnÿÑmÿÒqÿÒrÿÒrÿÑqÿÑnÿÑnÿÑnÿÏmÿÏmÿÑlÿÑnÿÑoÿÏoÿÏiÿå—@ÿð«bÿÏjÿì¡Qÿö¢Dÿœf>ÿ.jýÿ~r‡ÿÏoÿnnnÿÍnòÛ‰*ÿí§Vÿð=ÿðœ;ÿð?ÿñ›7ÿð˜3ÿñŸ?ÿî—/ÿî–/ÿð›8ÿð›7ÿð›7ÿîš5ÿðš6ÿðš6ÿï•-ÿï’&ÿð”*ÿí‘'ÿíŽ!ÿð”+ÿð˜3ÿí$ÿò™3ÿõž5ÿè•7ÿÀ‹_ÿÕ‹;ÿÙxÿ¡˜ÿÚtbÕx ýÜ„ÿÜ€þÛ}þÛ{ þÛz þÛz þÛ| þÛz þÛy þÜ|þÜ}þÜ~ÿÜ~ÿÜ€ÿ݆ÿÝ…ÿÜ‚ÿ܃ÿÜÿÛ€ÿÙz ÿÙz ÿÜ€ÿÙ{ ÿÚ{ ÿã‚ ÿèƒ ÿåÿâ¬oÿòòòÿ(  ïïïÿ”””ÿÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ~~~ÿ}}}ÿ„„„ÿ°°°ÿº€bÿ”Y9ÿŒQ1ÿŒQ1ÿ‹Q1ÿŒQ1ÿŒQ1ÿŒQ1ÿŒQ1ÿŒQ1ÿŒQ1ÿŒQ1ÿ‰O1ÿŽQ3ÿrP?ÿÿײ›ÿúõóÿùõòÿøõòÿ÷õòÿùõòÿùõòÿùõòÿùõòÿùõòÿùõòÿùõòÿúõóÿùõòÿ…^GÿÿÛ¹£ÿÿÿÿÿýÿÿÿýÿÿÿûüüÿÉ––ÿüÿÿÿüÿÿÿüÿÿÿüÿÿÿìÝÝÿ×´´ÿýÿÿÿþÿÿÿ…^GÿÿݹŸÿÿÿÿÿúÿÿÿôññÿ¨TTÿÝÂÂÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿ­^^ÿÐ¥¥ÿýÿþÿˆ`EÿÿÛµ™ñÿÿÿÿÿÿÿÿÒ¥¥ÿŠÿ»vvÿÂ……ÿÂ……ÿÂ……ÿÂ……ÿÂ……ÿ @@ÿŸ>>ÿóææÿwH'ÛpÞ·—ñÿÿÿÿúÿÿÿúÿÿÿæÕÕÿ¹wwÿúÿÿÿúÿÿÿúÿÿÿúÿÿÿñììÿ¯bbÿøùùÿýÿþÿwH'ÛpḖñúõõÿâÎÎÿçÖÖÿõõõÿèÚÚÿñííÿíääÿæÕÕÿùüüÿßÇÇÿõõõÿÞÃÃÿóíìÿzI&Ûp五ñµiiÿ°ddÿ‘""ÿåÓÓÿ²hhÿÕ²²ÿÄÿ¥MMÿÚ»»ÿœ::ÿªWWÿ´mmÿ™33ÿ}L%Ûp五ñªUUÿñââÿ99ÿéÓÓÿ±ccÿÙ²²ÿÆÿ§MMÿÙ²²ÿ¹rrÿÝ»»ÿ“''ÿ¾||ÿ}L%Ûpæ»’ñªUUÿòääÿž<<ÿéÓÓÿ•++ÿ¨PPÿÍ››ÿ§MMÿ¿~~ÿž==ÿ¬YYÿ²ddÿºuuÿ€N%Ûpæ»’ñëÖÖÿ÷ùùÿãÐÐÿõõõÿêÝÝÿÞÅÅÿúÿÿÿѨ¨ÿÍ¡¡ÿªXXÿôððÿÞÃÃÿ÷ñðÿ€N%ÛpìÀ–ñÿÿÿÿÿÿÿÿþÿÿÿþÿÿÿþÿÿÿþÿÿÿÿÿÿÿÓ¨¨ÿú÷÷ÿçÐÐÿþÿÿÿÿÿÿÿÿÿÿÿƒM!ÛpÞ°}ñåà×ÿäÜÏÿåÝÐÿåÜÐÿåÜÐÿäÝÐÿåÜÐÿåÜÐÿäÜÐÿãÚËÿãÚÌÿçÛÉÿìÚ½ÿŠc>Úpºcø½dÿ¼c ÿ½d ÿ½d ÿ½dÿ¼c ÿ¼b ÿ¼c ÿ¼c ÿÈx(ÿÊs ÿ³o7ÿ|WRÿšzWÍRÖy ÀäŽ*ñå‰ëå‡ëäˆëä†ëä‰ëä‡ëä…ëâ‚ëå†ëç‡ëáˆ$ìË1ï¿m p (0`€€€@@@   ÀÀÀAAA€aaa___000```A°°°¿¿¿ÿÿÿàààû÷÷Àöííúõõ÷îîìÙÙ¶mmĉ‰¯^^¨PP @@îÝÝ­ZZÝ»»Ð¡¡Èбbbùóóñãã¾||‘""¦LL©RR“''Ò¥¥èÑÑ‘##Ò¤¤½zzˆþüü“&&âÄÄüùù¥KKœ99êÕÕž<<³ffâÅÅéÓÓøññ¾}}™22΂Û··òååׯ¯”))„ µjjñââ®\\æÍ͉Ù³³‡Ì™™ß¾¾¿Ñ¢¢‹Ù²²£FF† ²ee˜00øððºttãÆÆƒäÈÈàÁÁðááæÌÌ̘˜¯__·ooÔ©©Ë––Ö­­–--›66ΜœÂ……èÐÐíÛÛ† ¸qqåËË;;¹ssºuu¼yyäÉÉ‹ذ°Ü¹¹Œõë댷nnÆŒŒË——ÐÐÐ ~}+{|9!zPl:w/xy!:st?u/v3P@"qr&R#no8]]]]]]]]]]]]]]]]]pW9i[jklm0c@f0ghcIde``ab]^B]B_]$6!Y-C,Z[\&'T@@U-C,V!WX!RE8MNO-C,PQR#SKIJK-C,0:LM+,-C,GH@+,-'C,DEF#+,->?,:@8AB#+,--3456789:;<=+,-)./012 !"#$%!&'()*        units-2.16/units.dvi0000664000175000017500000073706413176227175013766 0ustar adrianadrian÷ƒ’À;è TeX output 2017.10.31:2216‹ÿÿÿÿŸòŽ ƒ33‘G ý|ÌÍïpapersize=8.5in,11in žÎóKÂÖN ¼j cmbx12ëKUnits‘ÆqCon–ÿZv“ersionŽŽŸ‰±ž¸Ÿ šª’Æó6Kñ`y ó3 cmr10áEdition–¦f2.14“for“ó7ßê  b> ó3 cmmi10é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘ $á5Ž©:‘Gë]5‘32Unit‘ffExpressions‘Ž‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘ ƒùë]6Ž¡‘!Gá5.1‘ ó5OpMÞerators‘Ï ‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘QPá6ޤ 33‘!G5.2‘ ó5Sums–¦fand“Di erences“of“Units‘$‘‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘¦Ùá8Ž¡‘!G5.3‘ ó5Num²!bMÞers–¦fas“Units‘8‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘ºdá9Ž¡‘!G5.4‘ ó5Built-in‘¦fF‘ÿeunctions‘¯×‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘2á9Ž¡‘!G5.5‘ ó5Previous‘¦fResult‘?æ‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘Â.á10Ž¡‘!G5.6‘ ó5Complicated–¦fUnit“Expressions‘ˆÓ‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘ á11Ž¡‘!G5.7‘ ó5Bac•²!kw“ards›¦fCompatibilit“y:‘ÝÝ`â*á'˜and˜`â-á'‘;å‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘¾,á12ŽŸ:‘Gë]6‘32Nonlinear–ffUnit“Con•ŒÌv“ersions‘ä‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘ \ë]12ŽŸÿ‘!Gá6.1‘ ó5T‘ÿeempMÞerature‘¦fCon•²!v“ersions‘Ù©‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘[ñá13Ž¡‘!G6.2‘ ó5Other–¦fNonlinear“Units‘¾k‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘@³á14ަ‘Gë]7‘32Unit›ffLists:‘32Con•ŒÌv“ersion˜to˜Sums˜of˜Units‘½“‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘³ ë]15ޤ†Ì‘G8‘32Logging‘ffCalculations‘ž ‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘“‚ë]19Ž¡‘G9‘32In•ŒÌv“oking‘ffëaunits‘Íç‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘Ã_ë]20ŽŸ†Í‘G10‘32Adding–ffY‘þ¦four“Own“De nitions‘g‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘ \øë]25ŽŸÿ‘!Gá10.1‘ ó5Units–¦fData“Files"¸‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘¥á25ޤ 33‘!G10.2‘ ó5De ning–¦fNew“Units“and“Pre xesE©‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘Çñá26Ž¡‘!G10.3‘ ó5De ning–¦fNonlinear“Units‘¿[‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘A£á27Ž¡‘!G10.4‘ ó5De ning–¦fPiecewise“Linear“Units‘SC‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:ޑՋá29Ž¡‘!G10.5‘ ó5De ning–¦fUnit“List“Aliases‘î‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘pZá31ަ‘Gë]11‘32Numeric–ffOutput“F‘þ¦format‘+ ‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘ !ë]31ŽŸÿ‘!Gá11.1‘ ó5F‘ÿeormat‘¦fSpMÞeci cation‘bç‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘å.á32Ž¡‘!G11.2‘ ó5Flags> ‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘ÀRá32Ž¡‘!G11.3‘ ó5Field‘¦fWidth‘º•‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘<Ýá33Ž¡‘!G11.4‘ ó5Precision‘üË‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘á33ŽŽŒ‹ÿÿÿþ5Ÿò’½š©áiiŽŽŽ ƒ33 ý†ÌÍ‘Gë]12‘32Los3calization‘žû‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘ ”rë]34ŽŸÿ‘!Gá12.1‘ ó5LoMÞcale‘fâ‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘é*á34ŽŸ 33‘!G12.2‘ ó5Additional‘¦fLoMÞcalizationl¥‘é˜é:Ž–ÝÛ‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž“‘é˜:Ž‘îíá35ŽŸ33‘Gë]13‘32En•ŒÌvironmen“t‘ffV‘þ¦fariables‘ ‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘ ˜ë]37ޤ!ÿ‘G14‘32Data‘ffFiles‘Ž$‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘ ƒœë]38Ž¡‘G15‘32Unico•s3de‘ffSupp“ort‘™–‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘ë]38Ž¡‘G16‘32Readline‘ffSupps3ort‘îé‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘ äaë]39Ž¡‘G17‘32Ups3dating–ffCurrency“ExcŒÌhange“Rates‘jŸ‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘ `ë]40Ž¡‘G18‘32Database–ffCommand“SynŒÌtaxDW‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘9Ïë]40Ž¡‘G19‘32GNU–ffF‘þ¦free“Dos3cumenŒÌtation“License‘õO‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘ êÆë]41Ž¡‘GIndexq@‘32ëe:Ž–Q ‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž“‘32:Ž‘f·ë]49ŽŽŒ‹-FŸò‘GáUnits‘¦fCon•²!v“ersion’YÞ*1ŽŽŽ ƒ33 ý ÌÍ‘GëT1‘ ¸QOv‘ÿuÂerview–z³of“óW߆µTG® cmtt12ëWunitsŽŽŸ ÓÆ‘GáThe–Íâunits“áprogram“con•²!v“erts›Íquan“tities˜expressed˜in˜v‘ÿdDarious˜systems˜of˜measuremen“t˜to˜theirޤ 33‘Gequiv‘ÿdDalenš²!ts–;in“other‘;systems“of“measuremen˜t.‘›»Lik˜e“man˜y“similar‘;programs,‘`-it“can“handleŽ¡‘Gm•²!ultiplicativ“e–\{scale“cš²!hanges.‘It“can‘\zalso“handle“nonlinear“con˜v˜ersions“suc˜h“as“F‘ÿeahrenheitŽ¡‘Gto–ÙaCelsius;Ÿü¾óÙ“ Rcmr7®1Ž‘ ïQásee›Ù`Section“6.1“[T‘ÿeempMÞerature“Con•²!v“ersions],‘&page˜13.‘vÎThe˜program–Ùacan“alsoŽ¡‘GpMÞerform›Y§con•²!v“ersions–Y¨from˜and˜to“sums˜of˜units,‘isuc²!h˜as“con•²!v“erting˜bMÞet“w“een˜meters‘Y¨and˜feetŽ¡‘Gplus‘¦finc²!hes.Ž©¾‘!GBasic–JkopMÞeration“is“simple:‘%çyš²!ou“en˜ter“the“units“that“y˜ou“w˜an˜t“to“con˜v˜ert“ó9ý': ó3 cmti10äfr‘ÿp¹om‘!váand“theŽ¡‘Gunits–€ that“yš²!ou“w˜an˜t“to“con˜v˜ert“ätoá.‘ÑY‘ÿeou“can“use“the“program“in˜teractiv˜ely“with“prompts,‘‡¸orŽ¡‘Gy²!ou–¦fcan“use“it“from“the“command“line.ŽŸ¾‘!GBeyš²!ond–ˆsimple‘‰unit“con˜v˜ersions,‘:âunits›‰ácan“bMÞe˜used“as˜a“general-purpMÞose˜scien²!ti c“cal-Ž¡‘Gculator–m(that‘m)kš²!eeps“trac˜k“of“units›m)in“its“calculations.‘ÊÉY‘ÿeou“can“form“arbitrary˜complex“math-Ž¡‘Gematical– Úexpressions“of“dimensions‘ Ûincluding“sums,–?wprošMÞducts,“quotien²!ts,“p˜o•²!w“ers,‘?wand‘ Úev“enŽ¡‘GroMÞots–Χof“dimensions.‘•óThš²!us“y˜ou“can“ensure“accuracy“and“dimensional“consistency“when“w˜ork-Ž¡‘Ging–!Çwith“long›!Èexpressions“that“in•²!v“olv“e‘!Çman“y˜di eren“t–!Çunits“that“ma•²!y˜com“bine–!Çin“complexŽ¡‘Gw•²!a“ys;–¦ffor“an“illustration,“see“Section“5.6“[Complicated“Unit“Expressions],“page“11.ަ‘!GThe–òunits“are“de ned“in“an“external“data“ le.‘ÀÃY‘ÿeou“can“use“the“extensiv²!e“data“ le“thatŽ¡‘Gcomes–M¦with›M¥this“program,‘wuor“y²!ou˜can“pro•²!vide˜y“our‘M¦o“wn˜data–M¦ le“to˜suit“y²!our˜needs.‘ÓœY‘ÿeouŽ¡‘Gcan–¦falso“use“yš²!our“o˜wn“data“ le“to“supplemen˜t“the“standard“data“ le.Ž©¾‘!GY‘ÿeou–‘Ucan›‘Tc²!hange“the˜default“bMÞeha²!vior˜of“âunits“áwith˜v‘ÿdDarious“options˜giv²!en“on˜the“commandŽ¡‘Gline.‘ÝÝSee–¦fChapter“9“[In•²!v“oking–¦fUnits],“page“20,“for“a“description“of“the“a²!v‘ÿdDailable“options.ŽŸ%·‘GëT2‘ ¸QIn‘ÿuÂteracting–z³with“ëWunitsŽŽŸ ÓÅ‘GáT‘ÿeo›­xin•²!v“ok“e‘­wunits˜for˜in“teractiv“e˜use,‘ïúóprompt,‘¢ t˜ypMÞe“the“quan˜tit˜y‘ ôand“units“that“y˜ou“are‘ ôcon˜v˜erting“äfr‘ÿp¹omá.‘Ü F‘ÿeorŽ¡‘Gexample,‘ˆxif›€üy•²!ou‘€ýw“an“t˜to‘€ýcon“v“ert˜ten–€ýmeters˜to“feet,–ˆxt²!ypMÞe˜è10‘¦fmetersá.‘ÑeNext,“âunits‘€ýáwill˜prin²!tŽ¡‘G`âYou‘¦fwant:á'Ž‘IÊS.‘Z=Y‘ÿeou–z†should‘z‡tš²!ypMÞe“the“units“y˜ou“w˜an˜t“to“con˜v˜ert“ätoá.‘Z>T‘ÿeo“con˜v˜ert“to“feet,‘¯Žy˜ouŽ¡‘Gw•²!ould›Ò¯t“ypMÞe–Ò®èfeetá.‘b·If˜the“âreadline˜álibrary˜w²!as“compiled˜in˜then“âtab˜áwill“complete˜unitŽ¡‘Gnames.‘º»See–<ÿChapter›<þ16“[Readline“SuppMÞort],‘Rpage“39,‘Rfor“more˜information“abMÞout“âreadlineá.Ž¡‘GT‘ÿeo–æ7quit›æ6the“program˜under“Unix,‘ö+press˜âCtrl-C“áor˜âCtrl-Dá.‘OUnder“Windo²!ws,‘ö*press“âCtrl-CŽ¡‘Gáor–¦fâCtrl-Zá;“with“the“latter,“yš²!ou“ma˜y“also“need“to“press“âEnterá.ަ‘!GThe–‡rresult›‡qwill“bMÞe˜displa•²!y“ed‘‡rin˜t“w“o›‡rw“a“ys.‘Ó‹The˜ rst–‡qline˜of“output,‘¢whic²!h˜is“mark²!ed˜withŽ¡‘Ga–èL`â*á'›èMto“indicate˜m•²!ultiplication,‘øÆgiv“es–èLthe˜result“of“the˜con•²!v“ersion‘èLy“ou˜ha“v“e‘èLask“ed˜for.‘£TheŽ‘GŸ.‰ffŠ=Ÿ ó/‘ãŸü-=®1ŽŽ‘óo´‹Ç cmr9¬But–F‘ÿ:«ahrenheit“to“Celsius›is“linear,‘Yíy¾9ou“insist.‘'zNot“so.‘'yA‘¿transformation“ó5ùž" cmmi9²T‘aå¬is“linear“if˜²T‘Hã¬(²x–»W¬+“²yRª¬)‘B’=ŽŸ €‘²T›Hã¬(²x¬)–8+“²T˜¬(²yRª¬)–Tand“this“fails“for“²T˜¬(²x¬)–‘Æ=“²ax–8¬+“²b¬.‘pThis–Ttransformation“is“ane,“but“not“linear.ŽŽŒ‹:<Ÿò‘GáUnits‘¦fCon•²!v“ersion’YÞ*2ŽŽŽ ƒ33 ý ÌÍ‘Gsecond–#line“of“output,‘Rwhicš²!h“is“mark˜ed“with‘$a“`â/á'“to“indicate“division,‘Rgiv˜es“the“in˜v˜erse“ofޤ 33‘Gthe›¦fcon•²!v“ersion˜factor.‘ÝÝIf˜y“ou˜con“v“ert˜10˜meters˜to˜feet,˜âunits˜áwill˜prin“tŽ©$v‘EøDâ*‘¿ª32.808399Ž¡‘EøD/‘¿ª0.03048ŽŽŸWª‘Gáwhic•²!h›#åtells‘#æy“ou˜that–#æ10˜meters“equals˜abMÞout“32.8˜feet.‘V\The˜second“n•²!um“bMÞer˜giv“es‘#æthe˜con-Ž¡‘Gv²!ersion–g­in“the›g¬oppMÞosite“direction.‘ÈõIn˜this“case,‘t8it“tells“y²!ou“that˜1“foMÞot“is“equal˜to“abMÞout“0.03Ž¡‘Gdek›ÿdDameters–¦fsince“the“dek˜ameter“is“10“meters.‘ÝÝIt“also“tells“y²!ou“that“1/32.8“is“abMÞout“0.03.ަ‘!GThe–¶¸âunits“áprogram“prinš²!ts“the“in˜v˜erse“bMÞecause“sometimes“it“is“a“more“con˜v˜enien˜t“n˜um˜bMÞer.Ž¡‘GIn–åthe›åexample“abMÞo•²!v“e,– ±for˜example,“the‘åin•²!v“erse˜v‘ÿdDalue–åis“an˜exact“con•²!v“ersion:‘}-a–åfoMÞot˜is“exactlyŽ¡‘G0.03048–¦fdek‘ÿdDameters.‘ÝÝBut“the“n•²!um“bMÞer›¦fgiv“en˜the˜other˜direction˜is˜inexact.ŽŸ$w‘!GIf–¦fyš²!ou“con˜v˜ert“grains“to“pMÞounds,“y˜ou“will“see“the“follo˜wing:ަ‘.ùœâYou–¿ªhave:“grainsŽ¡‘.ùœYou–¿ªwant:“poundsŽ¡‘\öì*‘¿ª0.00014285714Ž¡‘\öì/‘¿ª7000ŽŽŸ9¾‘GáF‘ÿerom–CTthe“second›CUline“of“the“output˜y²!ou“can“immediately“see“that˜a“grain“is“equal˜to“a“sev²!enŽ¡‘Gthousandth–‹Kof›‹La“pMÞound.‘ÔÔThis“is˜not“so“ob²!vious“from˜the“ rst“line˜of“the“output.‘ÔÔIf˜y²!ou“ ndŽ¡‘Gthe–¦foutput“format“confusing,“try“using“the“â--verbose“áoption:ަ‘.ùœâYou–¿ªhave:“grainŽ¡‘.ùœYou–¿ªwant:“aeginaminaŽ¡‘\öìgrain–¿ª=“0.00010416667“aeginaminaŽ¡‘\öìgrain–¿ª=“(1“/“9600)“aeginaminaŽŽŸ9¾‘GáIf–Õpy²!ou›Õorequest“a˜con•²!v“ersion‘ÕpbMÞet“w“een˜units–Õpthat˜measure“reciproMÞcal“dimensions,‘á1then“âunitsŽ¡‘Gáwill–ÀXdisplaš²!y“the‘ÀYcon˜v˜ersion“results“with“an“extra“note‘ÀYindicating“that“reciproMÞcal“con˜v˜ersionŽ¡‘Ghas–¦fbMÞeen“done:ަ‘.ùœâYou–¿ªhave:“6“ohmsŽ¡‘.ùœYou–¿ªwant:“siemensŽ¡‘\öìreciprocal‘¿ªconversionŽ¡‘\öì*‘¿ª0.16666667Ž¡‘\öì/‘¿ª6ŽŽŸFñC‘GáReciproMÞcal›ã¬con•²!v“ersion–ã­can˜bMÞe“suppressed˜b²!y“using˜the˜â--strict“áoption.‘•°As“usual,‘òþuse˜theŽ¡‘Gâ--verbose–¦fáoption“to“get“more“comprehensible“output:ަ‘.ùœâYou–¿ªhave:“texŽ¡‘.ùœYou–¿ªwant:“typpŽ¡‘\öìreciprocal‘¿ªconversionŽ¡‘\öì1–¿ª/“tex“=“496.05465“typpŽ¡‘\öì1–¿ª/“tex“=“(1“/“0.0020159069)“typpŽŸff‘.ùœYou–¿ªhave:“20“mphŽ¡‘.ùœYou–¿ªwant:“sec/mileŽ¡‘\öìreciprocal‘¿ªconversionŽ¡‘\öì1–¿ª/“20“mph“=“180“sec/mileŽ¡‘\öì1–¿ª/“20“mph“=“(1“/“0.0055555556)“sec/mileŽŽŽŒ‹JòŸò‘GáUnits‘¦fCon•²!v“ersion’YÞ*3ŽŽŽ ƒ33 ý ÌÍ‘GIf›—îy•²!ou‘—ïen“ter˜incompatible˜unit˜t“ypMÞes,‘ÔPthe˜âunits‘—ïáprogram˜will˜prin“t˜a‘—ïmessage˜indicatingޤ 33‘Gthat–¦fthe“units“are“not“conformable“and“it“will“displaš²!y“the“reduced“form“for“eac˜h“unit:Ž©³4‘.ùœâYou–¿ªhave:“ergs/hourŽ¡‘.ùœYou–¿ªwant:“fathoms“kg^2“/“dayŽ¡‘.ùœconformability‘¿ªerrorŽ¡‘\öì2.7777778e-11–¿ªkg“m^2“/“sec^3Ž¡‘\öì2.1166667e-05–¿ªkg^2“m“/“secŽŽŸGÿ‘GáIf–{yš²!ou“only“w˜an˜t›{to“ nd“the“reduced“form“or“de nition“of˜a“unit,‘ƒÁsimply˜press“âEnter“áat“theŽ¡‘G`âYou‘¦fwant:á'Ž‘Mp¹prompt.‘ÝÝHere–¦fis“an“example:ަ‘.ùœâYou–¿ªhave:“janskyŽ¡‘.ùœYou‘¿ªwant:Ž¡‘\öìDefinition:–¿ªfluxunit“=“1e-26“W/m^2“Hz“=“1e-26“kg“/“s^2ŽŽŸ-š‘GáThe–w­output“from“âunits“áindicates›w®that“the“jansky“is“de ned“to“bMÞe“equal˜to“a“ uxunit“whic²!hŽ¡‘Gin–÷¶turn›÷·is“de ned“to˜bMÞe“a˜certain“com²!bination“of˜w²!atts,–¦meters,“and˜hertz.‘£¢The˜fully‘÷¶reducedŽ¡‘G(and–¦fin“this“case“somewhat“more“cryptic)“form“appMÞears“on“the“far“righ²!t.ŽŸ³3‘!GSome–½named›½units“are“treated˜as“dimensionless˜in“some“situations.‘"These˜units“includeŽ¡‘Gthe–joradian“and“steradian.‘)øThese“units“will“bMÞe“treated“as“equal“to“1“in“units“con•²!v“ersions.Ž¡‘GP•²!o“w“er–íïis“equal“to“torque“times“angular“v•²!eloMÞcit“y‘ÿe.‘´xThis›íïcon“v“ersion˜can˜only˜b•MÞe˜p“erformed˜ifŽ¡‘Gthe–¦fradian“is“dimensionless.ަ‘.ùœâYou–¿ªhave:“(14“ft“lbf)“(12“radians/sec)Ž¡‘.ùœYou–¿ªwant:“wattsŽ¡‘\öì*‘¿ª227.77742Ž¡‘\öì/‘¿ª0.0043902509ŽŽ©:LÍ‘GáIt–y;is“also“pšMÞossible“to“compute“ro˜ots‘y:and“other“non-in²!teger“p˜o•²!w“ers–y;of“dimensionless“units;Ž¡‘Gthis–¦falloš²!ws“computations“suc˜h“as“the“altitude“of“geosync˜hronous“orbit:ŽŸ³3‘.ùœâYou–¿ªhave:“cuberoot(G“earthmass“/“(circle/siderealday)^2)“-“earthradiusŽ¡‘.ùœYou–¿ªwant:“milesŽ¡‘\öì*‘¿ª22243.267Ž¡‘\öì/‘¿ª4.4957425e-05ŽŽ¦‘GáNamed–Šdimensionless›‹units“are˜not“treated˜as“dimensionless“in˜other“con²!texts.‘®êThey“cannotŽ¡‘GbšMÞe–¦fused“as“exp˜onen²!ts“so“for“example,“`âmeter^radianá'“is“forbidden.Ž©³4‘!GIf›.›y•²!ou‘.šw“an“t˜a–.šlist˜of“options˜y²!ou“can˜t²!ypMÞe˜è?“áat˜the“`âYou‘¦fwant:á'Ž‘@Aprompt.‘vzThe˜programŽ¡‘Gwill–@ªdispla²!y“a“list›@«of“named“units“that“are“conformable“with“the˜unit“that“yš²!ou“en˜tered“atŽ¡‘Gthe‘C_`âYou‘¦fhave:á'Ž‘>?Ëprompt›C_abMÞo•²!v“e.‘¼ÛConformable˜unit–C`äc‘ÿp¹ombinations‘)wáwill“not˜appMÞear˜on“this˜list.ŽŸ³3‘!GTš²!yping–Dûèhelp‘Düáat“either“prompt“displa˜ys›Düa“short“help“message.‘¹Y‘ÿeou“can˜also“t²!ypMÞe“èhelpŽ¡‘Gáfollo•²!w“ed›50b“y˜a˜unit˜name.‘¸ This˜will˜in“v“ok“e˜a˜pager˜on˜the˜units‘5/data˜base˜at˜the˜pMÞoin“t˜whereŽ¡‘Gthat–„µunit›„¶is“de ned.‘Ò£Y‘ÿeou“can˜read“the˜de nition“and˜commen²!ts“that˜maš²!y“giv˜e‘„¶more“detailsŽ¡‘Gor–ê÷historical›êøinformation“abMÞout˜the“unit.‘Ÿd(Y‘ÿeou“can˜generally“quit˜out“of˜the“page˜b²!y“pressingŽ¡‘G`âqá'.)ަ‘!GTš²!yping‘½×èsearch–½Øó:p®0J ó3 cmsl10åtext‘ú×áwill“displa˜y›½×a“list˜of“all˜of“the˜units“whose˜names“con²!tain˜åtext‘úØáas˜aŽ¡‘Gsubstring–óÍalong“with“their“de nitions.‘ÆThis“maš²!y“help“in“the“case“where“y˜ou“aren't“sure“ofŽ¡‘Gthe–¦frigh²!t“unit“name.ŽŽŒ‹U@Ÿò‘GáUnits‘¦fCon•²!v“ersion’YÞ*4ŽŽŽ ƒ33 ý ÌÍ‘GëT3‘ ¸QUsing–z³ëWunits“ëTNon-In–ÿuÂteractiv“elyŽŽŸ"#‘GáThe–ûtâunits›ûsáprogram“can“pMÞerform“units˜con•²!v“ersions›ûtnon-in“teractiv“ely˜from‘ûsthe˜commandޤ 33‘Gline.‘´þT‘ÿeo–Cqdo“this,›j´t²!ypMÞe“the“command,˜t²!ypMÞe“the“original“unit“expression,˜and“t²!ypMÞe“the“newŽ¡‘Gunits–±Ryš²!ou“w˜an˜t.‘þ¡If“a“units‘±Sexpression“con˜tains“non-alphan˜umeric“c˜haracters,‘´ y˜ou“ma˜y“needŽ¡‘Gto–¦fprotect“it“from“inš²!terpretation“b˜y“the“shell“using“single“or“double“quote“c˜haracters.ޤØ.‘!GIf–¦fyš²!ou“t˜ypMÞeŽ¡‘.ùœâunits–¿ª"2“liters"“quartsŽŸØ-‘Gáthen–¦fâunits“áwill“prin²!tŽ¡‘EøDâ*‘¿ª2.1133764ŽŸ 33‘EøD/‘¿ª0.47317647ŽŽŸ a‘Gáand–ì]then›ì^exit.‘¯ÃThe“output˜tells“y²!ou˜that“2“liters˜is“abMÞout˜2.1“quarts,‘ýÛor˜alternativ²!ely“thatŽ© 33‘Ga–¦fquart“is“abMÞout“0.47“times“2“liters.Ž¡‘!GIf–Tthe“con•²!v“ersion–Tis“successful,‘€then“âunits“áwill“return“success“(zero)“to“the“calling“en-ަ‘Gvironmen•²!t.‘{&If›ÚÔy“ou˜en“ter˜non-conformable˜units‘ÚÓthen˜âunits˜áwill˜prin“t˜a‘ÚÓmessage˜giving˜theަ‘Greduced–¦fform“of“eacš²!h“unit“and“it“will“return“failure“(nonzero)“to“the“calling“en˜vironmen˜t.ŽŸØ-‘!GWhen›0y•²!ou‘/in“v“ok“e˜âunits˜áwith‘/only˜one˜argumen“t,‘¡it˜will˜prin“t–/out˜the˜de nition“of˜theަ‘GspMÞeci ed–êunit.‘ª]It“will›ê‘return“failure˜if“the˜unit“is˜not“de ned˜and“success˜if“the˜unit“isަ‘Gde ned.ŽŸ#Iö‘GëT4‘ ¸QUnit‘z³De nitionsŽŽŸ"#‘GáThe›;2con•²!v“ersion–;3information˜is˜read“from˜a˜units˜data“ le˜that˜is“called˜âdefinitions.unitsަ‘Gáand–\ is“usually‘\ŸloMÞcated“in“the“â/usr/share/units“ádirectory‘ÿe.‘ŠIf“yš²!ou“in˜v˜ok˜e‘\Ÿâunits“áwith“theަ‘Gâ-V–ûºáoption,‘it›û»will“prin²!t“the˜loMÞcation“of“this“ le.‘ÝÚThe˜default“ le“includes“de nitions˜for“allަ‘Gfamiliar–Õîunits,‘áÐabbreviations“and“metric“pre xes.‘lvIt“also“includes“manš²!y“obscure“or“arc˜haicަ‘Gunits.‘ÝÝManš²!y–¦fcommon“spMÞelled-out“n˜um˜bMÞers“(e.g.,“`âseventeená')“are“recognized.Ž¡‘!GMan•²!y›¦fconstan“ts˜of˜nature˜are˜de ned,˜including˜these:ŽŸØ-‘.ùœâpi‘9|¤áratio–¦fof“circumference“to“diameterަ‘.ùœâc‘?a›>sequence“of˜quotienš²!ts.‘¤ÂF‘ÿeor“example,‘cð`âm/s–¦f*“s/dayá'Ž‘IÁis“equiv‘ÿdDalen˜t‘>to“`âm/dayá'.Ž¡‘GSimilarly‘ÿe,–¦fy²!ou“could“write“`â1/2“*“meterá'Ž‘Hkèto“get“half“a“meter.ަ‘!GThe–+Râunits“áprogram‘+SsuppMÞorts“another“option“for“nš²!umerical“fractions:‘ç¶y˜ou“can“indicateŽ¡‘Gdivision–of“änumb‘ÿp¹ers‘é.áwith‘the“vš²!ertical“bar“(`â|á'),‘#Àso“if“y˜ou“w˜an˜ted“half“a‘meter“y˜ou“could“writeŽ¡‘G`â1|2‘¦fmeterá'Ž‘IÊS.‘¥Y‘ÿeou–‡¨cannot›‡©use“the˜v²!ertical“bar˜to“indicate˜division“of˜non-n²!umerical“unitsŽ¡‘G(e.g.,–¦f`âm|sá'“results“in“an“error“message).ަ‘!GP•²!o“w“ers–KÁof“units‘KÀcan“bšMÞe“sp˜eci ed“using‘KÀthe“`â^á'“cš²!haracter,‘uas“sho˜wn“in‘KÀthe“follo˜wing“ex-Ž¡‘Gample,‘Ïor–x©b²!y›x¨simple“concatenation“of“a“unit“and˜its“expMÞonen²!t:‘Æÿ`âcm3á'˜is“equiv‘ÿdDalen²!t“to“`âcm^3á';Ž¡‘Gif–ÅAthe“expMÞonen²!t“is“more“than“one“digit,‘ øthe“`â^á'“is“required.‘:nY‘ÿeou“can“also“use“`â**á'“as“anŽ¡‘Gexp•MÞonen²!t‘¦fop“erator.Ž©LÍ‘.ùœâYou–¿ªhave:“cm^3Ž¡‘.ùœYou–¿ªwant:“gallonsŽ¡‘\öì*‘¿ª0.00026417205Ž¡‘\öì/‘¿ª3785.4118ŽŽŸ;æg‘GáConcatenation–Ê%only›Ê&w²!orks“with“a“single˜unit“name:‘%\if“y²!ou“write“`â(m/s)2á',‘Óâunits˜áwill“treatŽ¡‘Git– Üas“mš²!ultiplication“b˜y“2.‘?When“a“unit“includes“a“pre x,‘&zexpMÞonen˜t“opMÞerators“apply“to“theŽ¡‘Gcomš²!bination,‘‡¢so–ð`âcentimeter3á'“giv˜es‘ñcubic“cen˜timeters.‘Ñ If‘ñy˜ou“separate›ñthe“pre x˜from“theŽ¡‘Gunit–#dwith‘#eanš²!y“m˜ultiplication“opMÞerator›#e(e.g.,‘=—`âcenti‘¦fmeter^3á'),‘=˜the“pre x˜is“treated“as˜a“sep-Ž¡‘Garate–unit,‘7Rso“the›ŽexpMÞonen²!t“applies“only“to“the“unit˜without“the“pre x.‘¯•The“second“exampleŽ¡‘Gis–Ôequiv‘ÿdDalen²!t›Ôto“`âcenti–¦f*“(meter^3)á',‘ßxand˜giv•²!es‘Ôa˜h“undredth–Ôof“a˜cubic“meter,‘ßxnot˜a“cubicŽ¡‘Gcenš²!timeter.‘.The–¢âunits“áprogram“is“limited‘¡in˜ternally“to“proMÞducts“of“99‘¡units;‘NÀaccordingly‘ÿe,Ž¡‘Gexpressions–wlik²!e›x`âmeter^100á'“or“`âjoule^34á'˜(represenš²!ted“in˜ternally‘xas“`âkg^34–¦fm^68“/“s^68á'Ž‘eK)Ž¡‘Gwill‘¦ffail.ަ‘!GThe–†û`â|á'›†üopMÞerator“has“the˜highest“precedence,‘¿ so˜y²!ou“can“write˜the“square“roMÞot˜of“t•²!w“oŽ¡‘Gthirds–ñøas“`â2|3^1|2á'.‘À”The“`â^á'›ñùopMÞerator“has“the“second˜highest“precedence,‘Ýand“is“ev‘ÿdDaluatedŽ¡‘Grigh²!t–¦fto“left,“as“usual:ŽŸLΑ.ùœâYou–¿ªhave:“5“*“2^3^2Ž¡‘.ùœYou‘¿ªwant:Ž¡‘\öìDefinition:‘¿ª2560ŽŽŽŒ‹ŒiŸò‘GáUnits‘¦fCon•²!v“ersion’YÞ*8ŽŽŽ ƒ33 ý ÌÍ‘GWith–‹Úa“dimensionless‘‹Ûbase“unit,‘ Å5anš²!y“dimensionless“expMÞonen˜t‘‹Ûis“meaningful“(e.g.,ޤ 33‘G`âpi^exp(2.371)á').‘T‰Evš²!en–Íõthough“angle“is“sometimes‘Íôtreated“as“dimensionless,‘ØexpMÞonen˜tsŽ¡‘Gcannot›¦fha•²!v“e˜dimensions˜of˜angle:Ž©Iv‘.ùœâYou–¿ªhave:“2^radianŽ¡’³æ^Ž¡‘.ùœExponent–¿ªnot“dimensionlessŽŽŸ*¯Ý‘GáIf–\äthe›\åbase“unit˜is“not˜dimensionless,‘k˜the“expMÞonenš²!t“m˜ust›\åbMÞe“a˜rational“n•²!um“bMÞer˜åpUá/åqŽ‘I3á,‘k˜and‘\ätheŽ¡‘Gdimension–E¹of›E¸the“unit˜m²!ust“bMÞe˜a“pMÞo•²!w“er–E¹of˜åqá,‘mso“`âgallon^2|3á'˜w²!orks“but˜`âacre^2|3á'“fails.Ž¡‘GAn–€oexpšMÞonen²!t“using“the‘€pslash“(`â/á')“op˜erator“(e.g.,‘¶ñ`âgallon^(2/3)á')“is“also‘€pacceptable;‘ístheŽ¡‘Gparen²!theses–:Kare“needed“bMÞecause›:Jthe“precedence“of“`â^á'“is“higher“than˜that“of“`â/á'.‘¹ÔSince“âunitsŽ¡‘Gácannot–ûzrepresenš²!t“dimensions‘û{with“expMÞonen˜ts“greater“than›û{99,‘©a“fully˜reduced“expMÞonenš²!t“m˜ustŽ¡‘Gha•²!v“e‘ì¸åq‘çLâ<‘¦fá100Ž‘&nY.‘ŸøWhen–ì¸raising›ì·a“non-dimensionless˜unit“to˜a“pMÞo•²!w“er,‘Úâunits–ì¸áattempts˜to“con•²!v“ertŽ¡‘Ga–decimal“expMÞonenš²!t“to“a‘rational“n˜um˜bšMÞer“with“åq‘çLâ<‘¦fá100Ž‘&¼.‘«If“this‘is“not“p˜ossible“âunits“ádispla²!ysŽ¡‘Gan–¦ferror“message:ަ‘.ùœâYou–¿ªhave:“ft^1.234Ž¡‘.ùœBase–¿ªunit“not“dimensionless;“rational“exponent“requiredŽŽŸ|ª‘GáA‘vódecimal›w¬expMÞonen•²!t‘w­m“ust˜matc“h˜its˜rational‘w­represen“tation˜to˜mac“hine˜precision,‘+ýsoŽ¡‘G`âacre^1.5á'–¦fw²!orks“but“`âgallon^0.666á'“doMÞes“not.ŽŸ!e‘Gë]5.2‘™Sums–f@and“Di erences“of“UnitsŽŽŸ33‘GáY‘ÿeou–™½maš²!y“sometimes‘™¾w˜an˜t“to“add“v‘ÿdDalues‘™¾of“di eren˜t“units“that›™¾are“outside“the“SI.˜Y‘ÿeou“ma²!yŽ¡‘Galso–jywish›jzto“use“âunits˜áas“a“calculator“that˜kš²!eeps“trac˜k“of›jzunits.‘ÉãSums“of˜conformable“unitsŽ¡‘Gare–¦fwritten“with“the“`â+á'“cš²!haracter,“and“di erences“with“the“`â-á'“c˜haracter.ŽŸIw‘.ùœâYou–¿ªhave:“2“hours“+“23“minutes“+“32“secondsŽ¡‘.ùœYou–¿ªwant:“secondsŽ¡‘\öì*‘¿ª8612Ž¡‘\öì/‘¿ª0.00011611705ŽŽ©7ã‘.ùœYou–¿ªhave:“12“ft“+“3“inŽ¡‘.ùœYou–¿ªwant:“cmŽ¡‘\öì*‘¿ª373.38Ž¡‘\öì/‘¿ª0.0026782366ŽŽŸ7ã‘.ùœYou–¿ªhave:“2“btu“+“450“ft“lbfŽ¡‘.ùœYou–¿ªwant:“btuŽ¡‘\öì*‘¿ª2.5782804Ž¡‘\öì/‘¿ª0.38785542ŽŽ¦‘GáThe–fMexpressions›fLthat“are“added˜or“subtracted“m²!ust“reduce˜to“iden²!tical“expressions˜in“prim-Ž¡‘Gitivš²!e–¦funits,“or“an“error“message“will“bMÞe“displa˜y˜ed:ŽŸIw‘.ùœâYou–¿ªhave:“12“printerspoint“-“4“herediumŽ¡’ lØ^Ž¡‘.ùœIllegal–¿ªsum“of“non-conformable“unitsŽŽŸ*¯Ü‘GáAs–£;usual,‘×the“precedence“for“`â+á'“and›£:`â-á'“is“lo•²!w“er–£;than“that“of“the˜other“opMÞerators.‘‡zA‘¢ùfractionalŽ¡‘Gquan•²!tit“y›¥Dsuc“h–¥Eas˜2“1/2˜cups˜can“bMÞe˜giv²!en“as˜`â(2+1|2)‘¦fcupsá';‘¥¥the˜paren²!theses“are˜necessaryŽ¡‘GbMÞecause–3&m²!ultiplication“has“higher›3'precedence“than“addition.‘„If˜yš²!ou“omit“the“paren˜theses,Ž¡‘Gâunits–¦fáattempts“to“add“`â2á'“and“`â1|2“cupsá',“and“y²!ou“get“an“error“message:ŽŽŒ‹ œÿŸò‘GáUnits‘¦fCon•²!v“ersion’YÞ*9ŽŽŽ ƒ33 ý ÌÍ‘.ùœâYou–¿ªhave:“2+1|2“cupsޤ 33’œ3:^Ž¡‘.ùœIllegal–¿ªsum“or“difference“of“non-conformable“unitsŽŽŸ,Ž9‘GáThe– uexpression“could“also‘ vbMÞe“correctly“written“as“`â(2+1/2)›¦fcupsá'.‘©ãIf“y²!ou“write“`â2‘¿ª1|2˜cupsá'ޤ 33‘Gthe–¦fspace“is“in²!terpreted“as“ämultiplic‘ÿp¹ation‘}qáso“the“result“is“the“same“as“`â1“cupá'.ŽŸ'Ó‘!GThe–p¥`â+á'“and›p¤`â-á'“c²!haracters“sometimes“appMÞears˜in“expMÞonenš²!ts“lik˜e“`â3.43e+8á'.‘ËñThis“leads“toŽ¡‘Gan›¥ëam•²!biguit“y˜in˜an˜expression˜lik“e‘¥ê`â3e+2‘¦fyCá'.‘Ý´The˜unit˜`âeá'˜is˜a˜small˜unit˜of˜c“harge,‘¦so˜thisŽ¡‘Gcan–iõbMÞe“regarded“as“equiv‘ÿdDalen²!t“to“`â(3e+2)›¦fyCá'“or“`â(3˜e)+(2˜yC)á'.‘ɸThis“am•²!biguit“y–iõis“resolv²!edŽ¡‘Gb•²!y›¦falw“a“ys˜in“terpreting˜`â+á'˜and˜`â-á'˜as˜part˜of˜an˜expMÞonen“t˜if˜pMÞossible.Ž©îð‘Gë]5.3‘™NumŒÌbs3ers–f@as“UnitsŽŽŸ33‘GáF‘ÿeor›ıâunitsá,‘ÌCn•²!um“b•MÞers˜are˜just˜another˜kind˜of˜unit.‘8¾They˜can‘İapp“ear˜as˜man•²!y˜times˜as˜y“ouŽ¡‘Glikš²!e–{áand‘{âin“an˜y›{âorder“in˜a“unit˜expression.‘ϱF‘ÿeor“example,‘„bto˜ nd“the˜v²!olume“of˜a“bMÞo²!x˜that“isŽ¡‘G2–¦fft“bš²!y“3“ft“b˜y“12“ft“in“steres,“y˜ou“could“do“the“follo˜wing:ŽŸ'Ô‘.ùœâYou–¿ªhave:“2“ft“3“ft“12“ftŽ¡‘.ùœYou–¿ªwant:“stereŽ¡‘\öì*‘¿ª2.038813Ž¡‘\öì/‘¿ª0.49048148ŽŸff‘.ùœYou–¿ªhave:“$“5“/“yardŽ¡‘.ùœYou–¿ªwant:“cents“/“inchŽ¡‘\öì*‘¿ª13.888889Ž¡‘\öì/‘¿ª0.072ŽŽŸ{Ák‘GáAnd–Œõthe›Œôsecond“example“sho•²!ws˜ho“w–Œõthe“dollar˜sign“in“the˜units“con•²!v“ersion–Œõcan˜precede“theŽ¡‘G v²!e.–ÝÝBe›¦fcareful:“âunits˜áwill˜in•²!terpret˜`â$5á'˜with˜no˜space˜as˜equiv‘ÿdDalen“t˜to˜`âdollar^5á'.ަ‘Gë]5.4‘™Built-in‘f@F‘þ¦functionsŽŽŸ33‘GáSevš²!eral–£Ybuilt-in“functions‘£Xare“pro˜vided:‘ÜW`âsiná',–£õ`âcosá',“`âtaná',“`âlná',“`âlogá',“`âlog2á',“`âexpá',“`âacosá',Ž¡‘G`âataná'–:?and“`âasiná'.‘ ™gThe“`âsiná',–Ÿ4`âcosá',“and–:?`âtaná'“functions“require‘:>either“a“dimensionlessŽ¡‘Gargumenš²!t–¦for“an“argumen˜t“with“dimensions“of“angle.ŽŸ'Ó‘.ùœâYou–¿ªhave:“sin(30“degrees)Ž¡‘.ùœYou‘¿ªwant:Ž¡‘\öìDefinition:‘¿ª0.5Ž©ff‘.ùœYou–¿ªhave:“sin(pi/2)Ž¡‘.ùœYou‘¿ªwant:Ž¡‘\öìDefinition:‘¿ª1ަ‘.ùœYou–¿ªhave:“sin(3“kg)Ž¡’–s^Ž¡‘.ùœUnit–¿ªnot“dimensionlessŽŽ –'Ñ‘GáThe–WDother“functions“on“the“list“require“dimensionless“argumenš²!ts.‘Ã|The“in˜v˜erse“trigonometricŽ¡‘Gfunctions–¦freturn“argumen²!ts“with“dimensions“of“angle.ŽŽŒ‹ ©ZŸò‘GáUnits‘¦fCon•²!v“ersion’Td10ŽŽŽ ƒ33 ý ÌÍ‘!GIf–Vyš²!ou“wish“to“tak˜e“roMÞots“of‘Wunits,‘'&y˜ou“ma˜y“use“the“`âsqrtá'“or“`âcuberootá'“functions.‘¨ØTheseޤ 33‘Gfunctions–drequire“that“the“argumenš²!t“ha˜v˜e“the“appropriate‘crošMÞot.‘¬2Y‘ÿeou“can“obtain“higher“ro˜otsŽ¡‘Gbš²!y–¦fusing“fractional“expMÞonen˜ts:Ž©wx‘.ùœâYou–¿ªhave:“sqrt(acre)Ž¡‘.ùœYou–¿ªwant:“feetŽ¡‘\öì*‘¿ª208.71074Ž¡‘\öì/‘¿ª0.0047913202Ž©ff‘.ùœYou–¿ªhave:“(400“W/m^2“/“stefanboltzmann)^(1/4)Ž¡‘.ùœYou‘¿ªhave:Ž¡‘\öìDefinition:–¿ª289.80882“Kަ‘.ùœYou–¿ªhave:“cuberoot(hectare)Ž¡’Äpà^Ž¡‘.ùœUnit–¿ªnot“a“rootŽŽ ±™™‘Gë]5.5‘™Previous‘f@ResultŽŽŸ33‘GáY‘ÿeou–¿–can“insert“the“result“of“the“previous“con•²!v“ersion‘¿•using–¿–the“underscore“(`â_á').‘)mIt“is“usefulŽ¡‘Gwhen–¦fyš²!ou“w˜an˜t“to“con˜v˜ert“the“same“input“to“sev˜eral“di eren˜t“units,“for“exampleŽŸwy‘.ùœâYou–¿ªhave:“2.3“tonrefrigerationŽ¡‘.ùœYou–¿ªwant:“btu/hrŽ¡‘\öì*‘¿ª27600Ž¡‘\öì/‘¿ª3.6231884e-005Ž¡‘.ùœYou–¿ªhave:“_Ž¡‘.ùœYou–¿ªwant:“kWŽ¡‘\öì*‘¿ª8.0887615Ž¡‘\öì/‘¿ª0.12362832ŽŽŸnÝÝ‘GáSuppMÞose–´½yš²!ou“w˜an˜t“to“do“some“deep“frying“that“requires‘´¼an“oil“depth“of“2“inc˜hes.‘âY‘ÿeou“ha˜v˜eŽ¡‘G1/2–Žgallon›of“oil,‘(and“w•²!an“t‘Žto˜kno“w–Žthe“largest-diameter“pan˜that“will“main²!tain˜the“requiredŽ¡‘Gdepth.‘™3The–Øgnonlinear›Øfunit“`âcircleareaá'“giv²!es“the“är‘ÿp¹adius‘¾~áof“the“circle“(see˜Section“6.2“[OtherŽ¡‘GNonlinear–cUnits],›Çþpage“14,˜for“a›dmore“detailed˜description)“in“SI‘units;‘íyš²!ou“w˜an˜t‘dthe“ädiameterŽ¡‘Gáin‘¦fäinches‘æá:ަ‘.ùœâYou–¿ªhave:“1|2“gallon“/“2“inŽ¡‘.ùœYou–¿ªwant:“circleareaŽ¡‘\öì0.10890173‘¿ªmŽ¡‘.ùœYou–¿ªhave:“2“_Ž¡‘.ùœYou–¿ªwant:“inŽ¡‘\öì*‘¿ª8.5749393Ž¡‘\öì/‘¿ª0.1166189ŽŽŸaª«‘GáIn–7most“cases,‘#Ùsurrounding“white“space“is›6optional,‘#Úso“the“previous“example˜could“ha•²!v“e‘7usedŽ¡‘G`â2_á'.‘ÝÝIf–¦f`â_á'“folloš²!ws“a“non-n˜umerical“unit“sym˜bMÞol,“ho˜w˜ev˜er,“the“space“is“required:ަ‘.ùœâYou–¿ªhave:“m_Ž¡‘n5ê^Ž¡‘.ùœParse‘¿ªerrorŽŽŽŒ‹ ³+Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td11ŽŽŽ ƒ33 ý ÌÍ‘GWhen–‡ù`â_á'›‡úis“follo•²!w“ed‘‡ùb“y˜a–‡ùdigit,‘Žthe“opMÞeration˜is“m²!ultiplication“rather˜than“expMÞonen²!tiation,Ž© 33‘Gso–¦fthat“`â_2á',“is“equiv‘ÿdDalen²!t“to“`â_“*“2á'Ž‘%íìrather“than“`â_^2á'.ޤ·‘!GY‘ÿeou–¦fcan“use“the“`â_á'“symš²!bMÞol“an˜y“n˜um˜bMÞer“of“times;“for“example,Ž¡‘.ùœâYou–¿ªhave:“mަ‘.ùœYou‘¿ªwant:ަ‘\öìDefinition:–¿ª1“mަ‘.ùœYou–¿ªhave:“_“_ަ‘.ùœYou‘¿ªwant:ަ‘\öìDefinition:–¿ª1“m^2ŽŽŸQ·‘GáUsing–á`â_á'›âbMÞefore“a˜con•²!v“ersion–áhas˜bšMÞeen“p˜erformed“(e.g.,‘Êñimmediately“after‘âin•²!v“o˜cation)‘ágen-ަ‘Gerates–¦fan“error:Ž¡‘.ùœâYou–¿ªhave:“_ަ‘hv@^ަ‘.ùœNo–¿ªprevious“result;“ _ “not“setŽŽŸ*…‘GáAccordingly‘ÿe,–¦f`â_á'“servš²!es“no“purpMÞose“when“âunits“áis“in˜v˜ok˜ed“non-in˜teractiv˜ely‘ÿe.ŽŸ· ‘!GIf–ñÃâunits›ñÄáis“in•²!v“ok“ed˜with–ñÃthe˜â--verbose“áoption˜(see“Chapter˜9“[In•²!v“oking˜Units],‘äpage‘ñÃ20),ަ‘Gthe–¦fv‘ÿdDalue“of“`â_á'“is“not“expanded:Ž¡‘.ùœâYou–¿ªhave:“mileަ‘.ùœYou–¿ªwant:“ftަ‘\öìmile–¿ª=“5280“ftަ‘\öìmile–¿ª=“(1“/“0.00018939394)“ftަ‘.ùœYou–¿ªhave:“_ަ‘.ùœYou–¿ªwant:“mަ‘\öì_–¿ª=“1609.344“mަ‘\öì_–¿ª=“(1“/“0.00062137119)“mŽŽŸl„‘GáY‘ÿeou–¦fcan“givš²!e“`â_á'“at“the“`âYou“want:á'Ž‘?Øprompt,“but“it“usually“is“not“v˜ery“useful.ŽŸØ‘Gë]5.6‘™Complicated–f@Unit“ExpressionsŽŽŸ33‘GáThe–¸âunits›¸áprogram“is“espMÞecially˜helpful“in˜ensuring“accuracy“and˜dimensional“consistencyަ‘Gwhen›#‘con•²!v“erting‘#length“y˜unit–#expressions.‘U]F‘ÿeor˜example,‘BÛone“form˜of“the˜Darcy{W‘ÿeeisbac²!hަ‘G uid- o²!w–¦fequation“isŽŸ"’ÂaŸéP‘ýá=Ÿø—ž‘ƒ8Ž‘=ÚŸÞȉfe ìŸ téd“ŸüÖ0®2ŽŽŽŽŽ‘ùéf‘-¼LŸø—ž‘33QŸü¾®2ŽŽ‘33ŸÞȉfe $ˆŸ t‘z‡édŸüÖ0®5ŽŽŽŽŽŽŸ↑Gáwhere–ÜéP‘aòáis“the“pressure›Üœdrop,‘øé“áis˜the“mass“densit²!y‘ÿe,‘øéf‘ Xáis“the“(dimensionless)˜friction“factor,ަ‘GéL–EÂáis“the›EÃlength“of“the“pipMÞe,‘m™éQ“áis˜the“vš²!olumetric“ o˜w“rate,‘m™and‘EÃéd“áis“the“pipMÞe“diameter.‘»òItަ‘Gmighš²!t–¦fbMÞe“desired“to“ha˜v˜e“the“equation“in“the“formŽŸÂo’ÂÊÛéP‘ýá=‘ §éAŸ¤z®1Ž‘|séf‘-¼LŸø—ž‘33QŸü¾®2ŽŽ‘33ŸÞȉfe $ˆŸ t‘z‡édŸüÖ0®5ŽŽŽŽŽŽŸÚg‘Gáthat–.ˆaccepted›.‰the“user's“normal˜units;‘r™for“t²!ypical˜units“used“in˜the“US,“the˜required“con-ަ‘Gvš²!ersion–¦fcould“bMÞe“something“lik˜eŽ¡‘.ùœâYou–¿ªhave:“(8/pi^2)(lbm/ft^3)ft(ft^3/s)^2(1/in^5)ަ‘.ùœYou–¿ªwant:“psiަ‘\öì*‘¿ª43.533969ަ‘\öì/‘¿ª0.022970568ŽŽŽŒ‹ »xŸò‘GáUnits‘¦fCon•²!v“ersion’Td12ŽŽŽ ƒ33 ý ÌÍ‘GThe›,øparen•²!theses‘,÷allo“w˜individual–,÷terms˜in˜the“expression˜to“bMÞe˜en²!tered˜naturally‘ÿe,‘N›as˜theyޤ 33‘Gmighš²!t–mbMÞe“read“from‘nthe“form˜ula.‘òAlternativ˜ely‘ÿe,‘ ïthe“m˜ultiplication“could‘nbMÞe“done“with“theŽ¡‘G`â*á'–Q+rather›Q,than“a˜space;‘¦then˜paren²!theses“are˜needed“only“around˜`âft^3/sá'“bMÞecause˜of“itsŽ¡‘GexpMÞonen²!t:Ž©§ð‘.ùœâYou–¿ªhave:“8/pi^2“*“lbm/ft^3“*“ft“*“(ft^3/s)^2“/in^5Ž¡‘.ùœYou–¿ªwant:“psiŽ¡‘\öì*‘¿ª43.533969Ž¡‘\öì/‘¿ª0.022970568ŽŽŸ;A‰‘GáWithout–™¡parenš²!theses,‘Öoand“using“spaces‘™¢for“m˜ultiplication,‘Öothe“previous“con˜v˜ersion“w˜ouldŽ¡‘Gneed–¦fto“bMÞe“en²!tered“asަ‘.ùœâYou–¿ªhave:“8“lb“ft“ft^3“ft^3“/“pi^2“ft^3“s^2“in^5Ž¡‘.ùœYou–¿ªwant:“psiŽ¡‘\öì*‘¿ª43.533969Ž¡‘\öì/‘¿ª0.022970568ŽŽŸIÈ´‘Gë]5.7›™Bac•ŒÌkw“ards‘f@Compatibilit“y:˜`ëa*ë]'–f@and“`ëa-ë]'ŽŽŸ33‘GáThe– ?original› >âunits“áassigned“m²!ultiplication˜a“higher“precedence˜than“division“using˜the“slash.Ž¡‘GThis–3di ers“from“the“usual›3€precedence“rules,‘VÈwhic•²!h˜giv“e›3m“ultiplication˜and˜division˜equalŽ¡‘Gprecedence,–¦fand“can“bšMÞe“confusing“for“p˜eople“who“think“of“units“as“a“calculator.ަ‘!GThe–˜star›—ÿopMÞerator“(`â*á')˜included“in˜this“âunits˜áprogram“has,–šáb²!y˜default,“the˜same‘˜prece-Ž¡‘Gdence›§as–§division,‘Ú+and“hence˜follo²!ws˜the“usual˜precedence“rules.‘ˆÅF‘ÿeor“bac•²!kw“ards˜compatibilit“yŽ¡‘Gy•²!ou›jcan‘kin“v“ok“e˜âunits–káwith˜the˜â--oldstar“áoption.‘îêThen˜`â*á'“has˜a˜higher“precedence˜thanŽ¡‘Gdivision,–¦fand“the“same“precedence“as“m²!ultiplication“using“the“space.ަ‘!GHistorically‘ÿe,‘óáthe–Ç@h²!yphen›Ç?(`â-á')“has˜bMÞeen“used“in˜tec²!hnical“publications“to˜indicate“proMÞductsŽ¡‘Gof–ªunits,‘.ûand›«the“original“âunits˜áprogram“treated“it“as˜a“m²!ultiplication“opMÞerator.‘%ªBecauseŽ¡‘Gâunits–r8áproš²!vides“sev˜eral“other“w˜a˜ys“to“obtain‘r7unit“prošMÞducts,‘¥,and“b˜ecause“`â-á'“is“a“subtrac-Ž¡‘Gtion–¹4opMÞerator“in“general“algebraic›¹3expressions,‘½èâunits“átreats“the˜binary“`â-á'“as“a“subtractionŽ¡‘GopMÞerator–È}bš²!y“default.‘D!F‘ÿeor“bac˜kw˜ards“compatibilit˜y‘È|use“the“â--product“áoption,‘Ñwhic˜h“causesŽ¡‘Gâunits–§Ñáto“treat›§Òthe“binary“`â-á'“opMÞerator˜as“a“prošMÞduct“op˜erator.‘âWhen“`â-á'‘§Òis“a“m²!ultiplica-Ž¡‘Gtion–Ì-opMÞerator“it“has“the“same“precedence“as“m²!ultiplication“with“a“space,‘Õžgiving“it“a“higherŽ¡‘Gprecedence–¦fthan“division.ަ‘!GWhen–Hï`â-á'“is“used“as“a“unary“opšMÞerator“it‘Hðnegates“its“op˜erand.‘ÅxRegardless“of“the“âunitsŽ¡‘Gáoptions,‘if–``â-á'›_appMÞears“after“`â(á'“or˜after“`â+á'“then“it˜will“act“as“a˜negation“opMÞerator.‘úÊSo“y²!ouŽ¡‘Gcan›„òalw•²!a“ys–„ñcompute˜20“degrees˜min²!us˜12“min•²!utes˜b“y‘„ñen“tering˜`â20›¿ªdegrees–¦f+“-12˜arcminá'.Ž¡‘GY‘ÿeou–³/mš²!ust“use“this“construction“when“y˜ou“de ne“new“units“bMÞecause“y˜ou“cannot“kno˜w“whatŽ¡‘Goptions–¦fwill“bšMÞe“in“force“when“y²!our“de nition“is“pro˜cessed.ŽŸ(éz‘GëT6‘ ¸QNonlinear–z³Unit“Con–ÿuÂv“ersionsŽŽŸ&‘j‘GáNonlinear–c7units“are“represenš²!ted“using“functional‘c8notation.‘PThey“mak˜e“pMÞossible“nonlinearŽ¡‘Gunit›¦fcon•²!v“ersions˜suc“h˜as˜tempMÞerature.ŽŽŒ‹ ŘŸò‘GáUnits‘¦fCon•²!v“ersion’Td13ŽŽŽ ƒ33 ý ÌÍ‘Gë]6.1‘™T‘þ¦femps3erature‘f@Con•ŒÌv“ersionsŽŽŸ33‘GáCon•²!v“ersions‘÷bšMÞet“w“een‘ötemp˜eratures–÷are“di erenš²!t‘öfrom“linear“con˜v˜ersions‘öbMÞet˜w˜een“tempMÞera-ޤ 33‘Gture–˜Íäincr‘ÿp¹ements‘æá|see›˜Ìthe“example˜bMÞelo²!w.‘ƒÿThe“absolute˜tempMÞerature“con•²!v“ersions˜are‘˜ÍhandledŽ¡‘Gbš²!y–×Úunits“starting“with“`âtempá',‘$6and“y˜ou“m˜ust“use“functional‘×Ùnotation.‘r9The“tempMÞerature-Ž¡‘Gincremen•²!t› –con“v“ersions˜are˜done˜using˜units˜starting‘ —with˜`âdegá'˜and˜they˜do˜not˜requireŽ¡‘Gfunctional‘¦fnotation.Ž©G¯‘.ùœâYou–¿ªhave:“tempF(45)Ž¡‘.ùœYou–¿ªwant:“tempCŽ¡‘\öì7.2222222ŽŸff‘.ùœYou–¿ªhave:“45“degFŽ¡‘.ùœYou–¿ªwant:“degCŽ¡‘\öì*‘¿ª25Ž¡‘\öì/‘¿ª0.04ŽŽŸn®‘GáThink–Ä+of“`âtempF(èxâ)á'›Ä*not“as“a“function“but“as˜a“notation“that“indicates“that˜åx‘…Šáshould“ha•²!v“eŽ¡‘Gunits–ï\of›ï[`âtempFá'“attac²!hed˜to“it.‘¸½See“Section˜10.3“[De ning˜Nonlinear“Units],‘™page˜27.‘¸¾TheŽ¡‘G rst›ð÷con•²!v“ersion‘ðøsho“ws˜that˜if˜it's–ðø45˜degrees˜F‘ÿeahrenheit“outside,‘@it's˜7.2“degrees˜Celsius.‘¡cTheŽ¡‘Gsecond›<ùcon•²!v“ersion˜indicates˜that‘<øa˜c“hange˜of˜45˜degrees˜F‘ÿeahrenheit‘<øcorrespMÞonds˜to˜a˜c“hangeŽ¡‘Gof–¦f25“degrees“Celsius.‘ÝÝThe“con•²!v“ersion–¦ffrom“`âtempF(èxâ)á'“is“to“absolute“tempMÞerature,“so“thatަ‘.ùœâYou–¿ªhave:“tempF(45)Ž¡‘.ùœYou–¿ªwant:“degRŽ¡‘\öì*‘¿ª504.67Ž¡‘\öì/‘¿ª0.0019814929ŽŽŸ9áH‘Gágiv²!es–¦fthe“same“result“asަ‘.ùœâYou–¿ªhave:“tempF(45)Ž¡‘.ùœYou–¿ªwant:“tempRŽ¡‘\öì*‘¿ª504.67Ž¡‘\öì/‘¿ª0.0019814929ŽŽŸ9áG‘GáBut–¦fif“yš²!ou“con˜v˜ert“`âtempF(èxâ)á'“to“`âdegCá',“the“output“is“probably“not“what“y˜ou“expMÞect:ަ‘.ùœâYou–¿ªhave:“tempF(45)Ž¡‘.ùœYou–¿ªwant:“degCŽ¡‘\öì*‘¿ª280.37222Ž¡‘\öì/‘¿ª0.0035666871ŽŽŸ9áH‘GáThe–qêresult“is“the“tempšMÞerature“in‘qëK,“b˜ecause“`âdegCá'“is“de ned“as“`âKá',‘|ithe“Kelvin.‘Ì_F‘ÿeor“consis-Ž¡‘Gten²!t–6wresults,‘LÙuse“the›6v`âtempèXá'“units˜when“con•²!v“erting˜to–6wa˜tempMÞerature“rather˜than“con•²!v“ertingŽ¡‘Ga–¦ftempMÞerature“incremen²!t.ŽŸG®‘!GThe–øÕ`âtempC()á'“and“`âtempF()á'“de nitions‘øÖare“limited“to“pšMÞositiv²!e“absolute“temp˜eratures,Ž¡‘Gand–‘Ðgiving›‘Ïa“v‘ÿdDalue˜that“w²!ould˜result“in“a˜negativ²!e“absolute˜tempMÞerature“generates˜an“errorŽ¡‘Gmessage:ަ‘.ùœâYou–¿ªhave:“tempC(-275)Ž¡’¡òä^Ž¡‘.ùœArgument–¿ªof“function“outside“domainŽ¡’¡òä^ŽŽŽŒ‹ÒºŸò‘GáUnits‘¦fCon•²!v“ersion’Td14ŽŽŽ ƒ33 ý ÌÍ‘Gë]6.2‘™Other–f@Nonlinear“UnitsŽŽŸ33‘GáSome–Άother›Î…examples“of˜nonlinear“units˜are“n•²!umerous˜di eren“t–Άring˜sizes“and˜wire“gauges,ޤ 33‘Gthe–Àägrit“sizes“used“for“abrasiv²!es,›Ç„the“decibMÞel“scale,˜shoMÞe“size,˜scales“for“the“densit²!y“of“sugarŽ¡‘G(e.g.,‘ç3baume).‘ F2The–s×standard›sØdata“ le˜also“supplies˜units“for˜computing“the˜area“of˜aŽ¡‘Gcircle–øïand›øîthe“v²!olume˜of“a“sphere.‘ÕvSee“the“standard˜units“data˜ le“for“more˜details.‘ÕwWireŽ¡‘Ggauges–ù§with“mš²!ultiple“zeroMÞes“are“signi ed“using“negativ˜e“n˜um˜bMÞers“where“t˜w˜o“zeroMÞes“is“`â-1á'.Ž¡‘GAlternativ•²!ely‘ÿe,›«Ïy“ou–w‡can“use“the“synon²!yms“`âg00á',‘«Î`âg000á',˜and“so“on“that“are“de ned“in“theŽ¡‘Gstandard–¦funits“data“ le.Ž©i‘.ùœâYou–¿ªhave:“wiregauge(11)Ž¡‘.ùœYou–¿ªwant:“inchesŽ¡‘\öì*‘¿ª0.090742002Ž¡‘\öì/‘¿ª11.020255Ž©ff‘.ùœYou–¿ªhave:“brwiregauge(g00)Ž¡‘.ùœYou–¿ªwant:“inchesŽ¡‘\öì*‘¿ª0.348Ž¡‘\öì/‘¿ª2.8735632ަ‘.ùœYou–¿ªhave:“1“mmŽ¡‘.ùœYou–¿ªwant:“wiregaugeŽ¡‘\öì18.201919ަ‘.ùœYou–¿ªhave:“grit_P(600)Ž¡‘.ùœYou–¿ªwant:“grit_ansicoatedŽ¡‘\öì342.76923ŽŽ æE™‘GáThe–òZlast“example“shoš²!ws“the“con˜v˜ersion“from“P‘òFgraded“sand“papMÞer,‘Wwhic˜h“is“the“EuropMÞeanŽ¡‘Gstandard–¦fand“maš²!y“bMÞe“mark˜ed“\P600"“on“the“bac˜k,“to“the“USA“standard.ަ‘!GY›ÿeou–Ëcan“compute“the“area“of“a“circle‘Êusing“the“nonlinear“unit,‘(ä`âcircleareaá'.‘ Y˜ou“canŽ¡‘Galso–!þdo›!ÿthis“using˜the“circularinc²!h“or˜circleinc²!h.‘ P¦The“next˜example“shoš²!ws“t˜w˜o‘!ÿw˜a˜ys“toŽ¡‘Gcompute–™Ùthe“area“of“a‘™Úcircle“with“a“ vš²!e“inc˜h“radius“and“one“w˜a˜y‘™Úto“compute“the“v˜olume“ofŽ¡‘Ga–¦fsphere“with“a“radius“of“one“meter.ަ‘.ùœâYou–¿ªhave:“circlearea(5“in)Ž¡‘.ùœYou–¿ªwant:“in2Ž¡‘\öì*‘¿ª78.539816Ž¡‘\öì/‘¿ª0.012732395Ž©ff‘.ùœYou–¿ªhave:“10^2“circleinchŽ¡‘.ùœYou–¿ªwant:“in2Ž¡‘\öì*‘¿ª78.539816Ž¡‘\öì/‘¿ª0.012732395ަ‘.ùœYou–¿ªhave:“spherevol(meter)Ž¡‘.ùœYou–¿ªwant:“ft3Ž¡‘\öì*‘¿ª147.92573Ž¡‘\öì/‘¿ª0.0067601492ŽŽŽŒ‹ÜŽŸò‘GáUnits‘¦fCon•²!v“ersion’Td15ŽŽŽ ƒ33 ý ÌÍ‘GThe›…+in•²!v“erse–…,of˜a˜nonlinear“con•²!v“ersion˜is˜indicated‘…,b“y˜pre xing˜a–…,tilde˜(`â~á')˜to“the˜nonlinearޤ 33‘Gunit‘¦fname:Ž©­K‘.ùœâYou–¿ªhave:“~wiregauge(0.090742002“inches)Ž¡‘.ùœYou‘¿ªwant:Ž¡‘\öìDefinition:‘¿ª11ŽŽŸ+±‘GáY‘ÿeou–¶|can“giv²!e›¶{a“nonlinear“unit“de nition˜without“an“argumen²!t“or˜paren²!theses,‘úand“pressŽ¡‘GâEnter–à áat›à the“`âYou‘¦fwant:á'Ž‘?? prompt“to˜get“the“de nition“of˜a“nonlinear“unit;‘Ñ\if˜the“de nitionŽ¡‘Gis–EÝnot“v›ÿdDalid“for“all“real“n•²!um“bMÞers,‘Y,the–EÝrange“of“v˜aliditš²!y“is“also“giv˜en.‘½¯If“the“de nition“requiresŽ¡‘GspMÞeci c–¦funits“this“information“is“also“displa•²!y“ed:ŽŸ­L‘.ùœâYou–¿ªhave:“tempCŽ¡‘\öìDefinition:–¿ªtempC(x)“=“x“K“+“stdtempŽ¡’¡òädefined–¿ªfor“x“>=“-273.15Ž¡‘.ùœYou–¿ªhave:“~tempCŽ¡‘\öìDefinition:–¿ª~tempC(tempC)“=“(tempC“+(-stdtemp))/KŽ¡’¡òädefined–¿ªfor“tempC“>=“0“KŽ¡‘.ùœYou–¿ªhave:“circleareaŽ¡‘\öìDefinition:–¿ªcirclearea(r)“=“pi“r^2Ž¡’¡òär–¿ªhas“units“mŽŽŸzFã‘GáT‘ÿeo–†see›‡the“de nition˜of“the“in•²!v“erse˜use–†the˜`â~á'“notation.‘þ>In“this˜case“the˜parameter“inŽ¡‘Gthe–¼functional›»de nition“will˜usually“bMÞe“the˜name“of˜the“unit.‘ÃÞNote˜that“the˜in•²!v“erse‘¼forŽ¡‘G`âtempCá'–C›shoš²!ws“that“it“requires“units“of“`âKá'“in‘Cœthe“spMÞeci cation“of“the“allo˜w˜ed“range“of“v‘ÿdDalues.Ž¡‘GNonlinear›xQunit‘xRcon•²!v“ersions˜are–xRdescribMÞed˜in˜more“detail˜in“Section˜10.3“[De ning˜NonlinearŽ¡‘GUnits],–¦fpage“27.ŽŸ"ô0‘GëT7– ¸QUnit›z³Lists:“Con–ÿuÂv“ersion˜to˜Sums˜of˜UnitsŽŽŸ¡|‘GáOutside–œÑof“the›œÒSI,“it“is“sometimes˜desirable“to“con•²!v“ert–œÑa˜single“unit“to“a˜sum“of“units|Ž¡‘Gfor–vexample,‘,:feet“to“feet“plus“incš²!hes.‘ The“con˜v˜ersion“äfr‘ÿp¹om‘èásums“of“units“w˜as“describMÞed“inŽ¡‘GSection–æ5.2›ç[Sums“and˜Di erences“of“Units],‘9Gpage“8,‘9Fand˜is“a“simple˜matter“of˜adding“theŽ¡‘Gunits–¦fwith“the“`â+á'“sign:ަ‘.ùœâYou–¿ªhave:“12“ft“+“3“in“+“3|8“inŽ¡‘.ùœYou–¿ªwant:“ftŽ¡‘\öì*‘¿ª12.28125Ž¡‘\öì/‘¿ª0.081424936ŽŽŸ8Få‘GáAlthough–VŸy²!ou“can›Vžsimilarly“write“a“sum˜of“units“to“con•²!v“ert˜ätoá,‘‚­the–VŸresult“will˜not“bMÞe“theŽ¡‘Gcon•²!v“ersion–hkto›hlthe“units˜in“the“sum,‘˜íbut“rather˜the“con•²!v“ersion–hkto˜the“particular˜sum“thatŽ¡‘Gy•²!ou›¦fha“v“e˜en“tered:ަ‘.ùœâYou–¿ªhave:“12.28125“ftŽ¡‘.ùœYou–¿ªwant:“ft“+“in“+“1|8“inŽ¡‘\öì*‘¿ª11.228571Ž¡‘\öì/‘¿ª0.089058524ŽŽŸ8Fä‘GáThe–šlunit“expression“givš²!en‘škat“the“`âYou‘¦fwant:á'Ž‘>íäprompt“is“equiv‘ÿdDalen˜t‘škto“asking“for“con˜v˜ersionŽ¡‘Gto–¯8m²!ultiples‘¯7of“`â1›¿ªft–¦f+“1˜in“+“1|8˜iná',‘à§whicš²!h–¯8is“1.09375–¯7ft,‘à¨so“the–¯8con˜v˜ersion“in‘¯7the“previousŽ¡‘Gexample–¦fis“equiv‘ÿdDalen²!t“toŽŽŒ‹äߟò‘GáUnits‘¦fCon•²!v“ersion’Td16ŽŽŽ ƒ33 ý ÌÍ‘.ùœâYou–¿ªhave:“12.28125“ftޤ 33‘.ùœYou–¿ªwant:“1.09375“ftŽ¡‘\öì*‘¿ª11.228571Ž¡‘\öì/‘¿ª0.089058524ŽŽŸ8š‘GáIn›5Ûcon•²!v“erting˜to–5Üa˜sum˜of˜units“lik²!e˜miles,‘Y¸feet˜and“inc•²!hes,‘Y¸y“ou˜t“ypically‘5Üw“an“t˜the˜largestޤ 33‘Gin²!tegral–¼v‘ÿdDalue›¼for“the˜ rst“unit,‘Á†follo•²!w“ed›¼b“y˜the‘¼largest˜in“tegral–¼v‘ÿdDalue˜for“the˜next,‘Á†and˜theŽ¡‘Gremainder›ßcon•²!v“erted˜to˜the˜last˜unit.‘)HY‘ÿeou˜can˜do˜this˜con“v“ersion˜easily˜with˜âunits˜áusingŽ¡‘Ga–üuspMÞecial“synš²!tax‘ütfor“lists“of“units.‘à Y‘ÿeou“m˜ust“list›ütthe“desired“units“in“order˜from“largest“toŽ¡‘Gsmallest,–¦fseparated“bš²!y“the“semicolon“(`â;á')“c˜haracter:Ž©€‘.ùœâYou–¿ªhave:“12.28125“ftŽ¡‘.ùœYou–¿ªwant:“ft;in;1|8“inŽ¡‘\öì12–¿ªft“+“3“in“+“3|8“inŽŽŸ*æg‘GáThe›ƒhcon•²!v“ersion‘ƒialw“a“ys˜giv“es‘ƒiin“teger˜coMÞecien“ts˜on–ƒithe˜units“in˜the˜list,‘Šhexcept“pMÞossibly˜theŽ¡‘Glast–¦funit“when“the“con•²!v“ersion–¦fis“not“exact:ަ‘.ùœâYou–¿ªhave:“12.28126“ftŽ¡‘.ùœYou–¿ªwant:“ft;in;1|8“inŽ¡‘\öì12–¿ªft“+“3“in“+“3.00096“*“1|8“inŽŽŸ*æg‘GáThe–¦forder“in“whicš²!h“y˜ou“list“the“units“is“impMÞortan˜t:ަ‘.ùœâYou–¿ªhave:“3“kgŽ¡‘.ùœYou–¿ªwant:“oz;lbŽ¡‘\öì105–¿ªoz“+“0.051367866“lbŽŸff‘.ùœYou–¿ªhave:“3“kgŽ¡‘.ùœYou–¿ªwant:“lb;ozŽ¡‘\öì6–¿ªlb“+“9.8218858“ozŽŽŸ_³3‘GáListing–jounces‘jbšMÞefore“p˜ounds“pro˜duces“a›jtec²!hnically“correct“result,‘›but“not“a˜v²!ery“usefulŽ¡‘Gone.‘É^Y‘ÿeou›Ÿ’m²!ust–Ÿ‘list“the“units“in“descending˜order“of“size“in“order“to˜get“the“most“usefulŽ¡‘Gresult.ަ‘!GEnding–3a“unit“list“with“the“separator“`â;á'‘4has“the“same“e ect“as“repMÞeating“the“last“unitŽ¡‘Gon›±˜the–±™list,‘´dso“`âft;in;1|8‘¦fin;á'˜is˜equiv‘ÿdDalen²!t˜to“`âft;in;1|8–¦fin;1|8“iná'.‘ÿsWith‘±™the˜exampleŽ¡‘GabMÞo•²!v“e,–¦fthis“giv²!esŽ©€‘.ùœâYou–¿ªhave:“12.28126“ftŽ¡‘.ùœYou–¿ªwant:“ft;in;1|8“in;Ž¡‘\öì12–¿ªft“+“3“in“+“3|8“in“+“0.00096“*“1|8“inŽŽŸ*æf‘Gáin–©e ect“separating›ªthe“in²!teger“and“fractional“parts“of˜the“coMÞecien²!t“for“the“last˜unit.‘­žIf“y²!ouŽ¡‘Ginstead–ÎËprefer“to“round“the“last“coMÞecienš²!t“to“an“in˜teger“y˜ou“can“do“this“with“the“â--roundŽ¡‘Gá(â-rá)–¦foption.‘ÝÝWith“the“previous“example,“the“result“isަ‘.ùœâYou–¿ªhave:“12.28126“ftŽ¡‘.ùœYou–¿ªwant:“ft;in;1|8“inŽ¡‘\öì12–¿ªft“+“3“in“+“3|8“in“(rounded“down“to“nearest“1|8“in)ŽŽŸ*æf‘GáWhen–Œy²!ou“use“the“â-r“áoption,‘Ä~repMÞeating“the“last“unit“on“the“list“has‘Œno“e ect“(e.g.,‘Ä`âft;in;1|8Ž¡‘Gin;1|8›¦finá'– is“equiv‘ÿdDalen²!t“to‘ ‚`âft;in;1|8˜iná'),‘,and“hence“neither“doMÞes“ending“a‘ ‚list“with“a“`â;á'.Ž¡‘GWith–w*a›w+single“unit˜and“the˜â-r“áoption,‘€a“terminal˜`â;á'“ädo‘ÿp¹es‘]Cáha•²!v“e–w*an“e ect:‘Æ@it“causes˜âunits“átoŽ¡‘Gtreat–‚)the“single›‚(unit“as“a“list˜and“proMÞduce“a“rounded“v‘ÿdDalue˜for“the“single“unit.‘ÑÈWithout“theŽŽŒ‹ð Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td17ŽŽŽ ƒ33 ý ÌÍ‘Gextra–83`â;á',‘\¥the“â-r“áoption“has“no›82e ect“on“single“unit˜con•²!v“ersions.‘“DThis˜example›83sho“ws˜theޤ 33‘Goutput–¦fusing“the“â-r“áoption:Ž©X‰‘.ùœâYou–¿ªhave:“12.28126“ftŽ¡‘.ùœYou–¿ªwant:“inŽ¡‘\öì*‘¿ª147.37512Ž¡‘\öì/‘¿ª0.0067854058ŽŸff‘.ùœYou–¿ªhave:“12.28126“ftŽ¡‘.ùœYou–¿ªwant:“in;Ž¡‘\öì147–¿ªin“(rounded“down“to“nearest“in)ŽŽŸn¾ï‘GáEac²!h–Îunit›Îthat“appMÞears˜in“the˜list“m²!ust˜bMÞe“conformable˜with“the˜ rst“unit˜on“the˜list,‘Ø andŽ¡‘Gof–иcourse“the“listed“units“mš²!ust“also“bMÞe“conformable‘зwith“the“unit“that“y˜ou“en˜ter“at“theŽ¡‘G`âYou‘¦fhave:á'Ž‘Mp¹prompt.ަ‘.ùœâYou–¿ªhave:“meterŽ¡‘.ùœYou–¿ªwant:“ft;kgŽ¡‘yµ>^Ž¡‘.ùœconformability‘¿ªerrorŽ¡‘\öìft–¿ª=“0.3048“mŽ¡‘\öìkg–¿ª=“1“kgŽŸff‘.ùœYou–¿ªhave:“meterŽ¡‘.ùœYou–¿ªwant:“lb;ozŽ¡‘.ùœconformability‘¿ªerrorŽ¡‘\öì1‘¿ªmŽ¡‘\öì0.45359237‘¿ªkgŽŽ £‹»‘GáIn–Frthe›Fq rst“case,‘nuâunits˜árepMÞorts“the“disagreemen•²!t˜bšMÞet“w“een–Frunits“app˜earing‘Fqon“the“list.‘¾InŽ¡‘Gthe–£÷second“case,‘¤sâunits“árepšMÞorts“disagreemen²!t“b˜et•²!w“een–£÷the“unit“yš²!ou“en˜tered“and“the“desiredŽ¡‘Gcon•²!v“ersion.‘ÝÝThis›¦fconformabilit“y˜error˜is˜based˜on˜the˜ rst˜unit˜on˜the˜unit˜list.ަ‘!GOther–¦fcommon“candidates“for“con•²!v“ersion–¦fto“sums“of“units“are“angles“and“time:ަ‘.ùœâYou–¿ªhave:“23.437754“degŽ¡‘.ùœYou–¿ªwant;“deg;arcmin;arcsecŽ¡‘EøD23–¿ªdeg“+“26“arcmin“+“15.9144“arcsecŽŸff‘.ùœYou–¿ªhave:“7.2319“hrŽ¡‘.ùœYou–¿ªwant:“hr;min;secŽ¡‘EøD7–¿ªhr“+“13“min“+“54.84“secŽŽŸa‹¼‘GáIn–§ North“America,‘ç2recipšMÞes“for“co˜oking“tš²!ypically‘§ measure“ingredien˜ts“b˜y“v˜olume,‘ç2and“useŽ¡‘Gunits–êƒthat›ê„are“not˜alw•²!a“ys›êƒcon“v“enien“t˜m“ultiples‘ê„of˜eac“h˜other.‘ª6SuppMÞose˜that˜y“ou‘ê„ha“v“e˜aŽ¡‘GrecipMÞe–ücfor“6“and“yš²!ou“wish“to“mak˜e“a“pšMÞortion“for“1.‘ßÔIf“the“recip˜e“calls“for“2“1/2“cups“of“anŽ¡‘Gingredien•²!t,‘^ y“ou›9Omigh“t˜wish˜to˜kno“w˜the‘9Pmeasuremen“ts˜in˜terms˜of˜measuring˜devices˜y“ouŽ¡‘Gha•²!v“e›¦fa“v‘ÿdDailable,˜y“ou˜could˜use˜âunits˜áand˜en“terަ‘.ùœâYou–¿ªhave:“(2+1|2)“cup“/“6Ž¡‘.ùœYou–¿ªwant:“cup;1|2“cup;1|3“cup;1|4“cup;tbsp;tsp;1|2“tsp;1|4“tspŽ¡‘\öì1|3–¿ªcup“+“1“tbsp“+“1“tspŽŽŽŒ‹ûÆŸò‘GáUnits‘¦fCon•²!v“ersion’Td18ŽŽŽ ƒ33 ý ÌÍ‘GBy–Ü9default,‘)®if“a›Ü:unit“in˜a“list“bMÞegins˜with“fraction“of˜the“form˜1â|åx‘˜áand“its˜m²!ultiplier“isޤ 33‘Gan–¥inš²!teger,‘ä§the“fraction“is“giv˜en“as“the“proMÞduct‘¥of“the“m˜ultiplier“and“the“n˜umerator;‘$NforŽ¡‘Gexample,Ž©¸R‘.ùœâYou–¿ªhave:“12.28125“ftŽ¡‘.ùœYou–¿ªwant:“ft;in;1|8“in;Ž¡‘\öì12–¿ªft“+“3“in“+“3|8“inŽŽŸ+¹‘GáIn‘©man•²!y›©cases,‘©¯suc“h˜as–©the“example˜abMÞo•²!v“e,‘©¯this˜is–©what˜is“w•²!an“ted,‘©¯but˜sometimes–©it˜is“not.Ž¡‘GF‘ÿeor–xbexample,‘•a“co•MÞoking›xarecip“e–xbfor˜6“migh²!t˜call“for“5˜1/4“cup˜of“an˜ingredien•²!t,‘–but˜y“ou‘xbw“an“tŽ¡‘Ga–¦fpMÞortion“for“2,“and“yš²!our“1-cup“measure“is“not“a˜v‘ÿdDailable;“y˜ou“migh˜t“tryަ‘.ùœâYou–¿ªhave:“(5+1|4)“cup“/“3Ž¡‘.ùœYou–¿ªwant:“1|2“cup;1|3“cup;1|4“cupŽ¡‘\öì3|2–¿ªcup“+“1|4“cupŽŽŸ+¸‘GáThis–Ï¿result“mighš²!t“bMÞe“ ne“for“a“bak˜er‘ÏÀwho“has“a“1“1/2-cup“measure“(and“recognizes“theŽ¡‘Gequiv‘ÿdDalence),‘ •but–nŒit“ma²!y“not“bMÞe‘nas“useful“to“someone“with“more“limited“set“of“measures,Ž¡‘Gwho–ÝÜdoMÞes“w•²!an“t–ÝÜto“do“additional“calculations,‘+¸and“only“w•²!an“ts–ÝÜto“knoš²!w“\Ho˜w“man˜y“1/2-Ž¡‘Gcup– measures› to“I‘¬need“to˜add?"‘ ÈAfter˜all,‘jrthat's˜what“w²!as˜actually“ask²!ed.‘ ÇWith“theŽ¡‘Gâ--show-factor–~ áoption,‘´the›~!factor“will“not˜bMÞe“com²!bined˜with“a“unit•²!y˜n“umerator,‘´so‘~ thatŽ¡‘Gy²!ou‘¦fgetަ‘.ùœâYou–¿ªhave:“(5+1|4)“cup“/“3Ž¡‘.ùœYou–¿ªwant:“1|2“cup;1|3“cup;1|4“cupŽ¡‘\öì3–¿ª*“1|2“cup“+“1|4“cupŽŽŸ+¹‘GáA‘|¥user-spMÞeci ed–|ðfractional“unit“with›|ña“n²!umerator“other“than“1“is˜nevš²!er“o˜v˜erridden,‘¸nho˜w˜ev˜er|Ž¡‘Gif–GÂa“unit“list“spMÞeci es“`â3|4–¦fcup;1|2“cupá',‘pa–GÂresult“equiv‘ÿdDalenš²!t“to“1“1/2“cups“will“alw˜a˜ys“bMÞeŽ¡‘Gshoš²!wn–¦fas“`â2“*“3|4‘¿ªcupá'“whether“or“not“the“â--show-factor“áoption“is“giv˜en.ަ‘!GSome–pÆapplications›pÅfor“unit“lists˜maš²!y“bMÞe“less“ob˜vious.‘<üSuppMÞose‘pÅthat“y˜ou“ha˜v˜e‘pÅa“pMÞostalŽ¡‘Gscale–cand“wish›bto“ensure“that“it's“accurate˜at“1“oz,‘8Êbut“ha•²!v“e–conly˜metric“calibration“w•²!eigh“ts.Ž¡‘GY‘ÿeou–¦fmigh²!t“tryަ‘.ùœâYou–¿ªhave:“1“ozŽ¡‘.ùœYou–¿ªwant:“100“g;50“g;“20“g;10“g;5“g;2“g;1“g;Ž¡‘\öì20–¿ªg“+“5“g“+“2“g“+“1“g“+“0.34952312“*“1“gŽŽ©+¸‘GáY‘ÿeou–”îmighš²!t“then“place“one“eac˜h‘”ïof“the“20“g,›˜l5“g,‘˜m2“g,˜and“1“g‘”ïw•²!eigh“ts–”îon“the“scale“and“hopMÞeŽ¡‘Gthat–¦fit“indicates“close“toŽŸ¸S‘.ùœâYou–¿ªhave:“20“g“+“5“g“+“2“g“+“1“gŽ¡‘.ùœYou–¿ªwant:“oz;Ž¡‘\öì0.98767093‘¿ªozŽŽ¦‘GáAppMÞending–¥Ý`â;á'“to“`âozá'“forces“a‘¥Þone-line“displaš²!y“that“includes“the“unit;‘¦ here“the“in˜teger“partŽ¡‘Gof–¦fthe“result“is“zero,“so“it“is“not“displa•²!y“ed.ޤ¸R‘!GA–¦funit“list“suc²!h“asŽ¡‘.ùœâcup;1|2–¿ªcup;1|3“cup;1|4“cup;tbsp;tsp;1|2“tsp;1|4“tspŽŸ¸S‘Gácan–çIbMÞe›çJtedious“to“en²!ter.‘ ‡The“âunits“áprogram˜pro²!vides“shorthand“names“for˜some“commonŽ© 33‘Gcom²!binations:Ž¡‘.ùœâhms‘3¼úáhours,–¦fmin²!utes,“secondsަ‘.ùœâdms‘3¼úáangle:–¦fdegrees,“min²!utes,“secondsŽŽŒ‹ÝŸò‘GáUnits‘¦fCon•²!v“ersion’Td19ŽŽŽ ƒ33 ý ÌÍ‘.ùœâtime‘-ýPáy•²!ears,›¦fda“ys,˜hours,˜min“utes˜and˜secondsޤ 33‘.ùœâusvol‘(=¦áUS–¦fcoMÞoking“v²!olume:“cups“and“smallerŽ©&g‘GUsing–¦fthese“shorthands,“or“åunit“list“aliasesá,“yš²!ou“can“do“the“follo˜wing“con˜v˜ersions:ŽŸ&f‘.ùœâYou–¿ªhave:“anomalisticyearŽ¡‘.ùœYou–¿ªwant:“timeŽ¡‘\öì1–¿ªyear“+“25“min“+“3.4653216“secŽ¡‘.ùœYou–¿ªhave:“1|6“cupŽ¡‘.ùœYou–¿ªwant:“usvolŽ¡‘\öì2–¿ªtbsp“+“2“tspŽŽŸV&f‘GáY‘ÿeou–&Ùcannot›&Øcom²!bine“a˜unit“list˜alias“with“other˜units:‘ ÞÂit“m²!ust˜appMÞear“alone˜at“theŽ¡‘G`âYou‘¦fwant:á'Ž‘Mp¹prompt.ަ‘!GY‘ÿeou–´tcan“displa²!y›´uthe“de nition“of“a“unit“list˜alias“bš²!y“en˜tering“it“at‘´uthe“`âYou‘¦fhave:á'Ž‘=!ôprompt:Ž©&f‘.ùœâYou–¿ªhave:“dmsŽ¡‘\öìDefinition:–¿ªunit“list,“deg;arcmin;arcsecŽŽŸ!Yš‘GáWhen–aÊy²!ou›aÉspMÞecify“compact˜output“with˜â--compactá,‘o‚â--terse“áor˜â-t“áand˜pMÞerform“con•²!v“ersionŽ¡‘Gto–/‚a“unit›/list,‘‘Èâunits“álists“the“con•²!v“ersion–/‚factors˜for“eac²!h“unit“in˜the“list,‘‘Èseparated“b²!yŽ¡‘Gsemicolons.ަ‘.ùœâYou–¿ªhave:“yearŽ¡‘.ùœYou–¿ªwant:“day;min;secŽ¡‘.ùœ365;348;45.974678ŽŽŸ.ŒÍ‘GáUnlik²!e–¦fthe“case“of“regular“output,“zeros“äar‘ÿp¹e‘yáincluded“in“this“output“list:ŽŸ&g‘.ùœâYou–¿ªhave:“literŽ¡‘.ùœYou–¿ªwant:“cup;1|2“cup;1|4“cup;tbspŽ¡‘.ùœ4;0;0;3.6280454ŽŽŸDLÍ‘GëT8‘ ¸QLogging‘z³CalculationsŽŽŸ( ΑGáThe–ÃÄâ--log“áoption“alloš²!ws“y˜ou‘ÃÃto“sa˜v˜e“the“results“of“calculations“in“a“ le;‘Òrthis“can“bMÞe“usefulŽ¡‘Gif–®æy²!ou›®çneed“a˜pMÞermanen²!t“record˜of“y•²!our˜w“ork.‘÷^F‘ÿeor–®æexample,‘ñthe“ uid- o•²!w˜con“v“ersion‘®æinŽ¡‘GSection–çä5.6‘çã[Complicated“Unit“Expressions],›8Bpage“11,˜is“lengthš²!y‘ÿe,‘8Cand‘çãif“y˜ou“w˜ere‘çãto“useŽ¡‘Git–U½in“designing“a“piping“system,‘’yš²!ou“migh˜t“w˜an˜t“a“record“of“it“for“the“pro‘›»ject“ le.‘ëâIf“theŽ¡‘Gin•²!teractiv“e‘¦fsessionަ‘.ùœâ#–¿ªConversion“factor“A1“for“pressure“dropŽ¡‘.ùœ#–¿ªdP“=“A1“rho“f“L“Q^2/d^5Ž¡‘.ùœYou–¿ªhave:“(8/pi^2)“(lbm/ft^3)ft(ft^3/s)^2(1/in^5)“#“Input“unitsŽ¡‘.ùœYou–¿ªwant:“psiŽ¡‘\öì*‘¿ª43.533969Ž¡‘\öì/‘¿ª0.022970568ŽŽŸV&f‘Gáwš²!ere–¦flogged,“the“log“ le“w˜ould“con˜tainŽŽŒ‹>Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td20ŽŽŽ ƒ33 ý ÌÍ‘.ùœâ###–¿ªLog“started“Fri“Oct“02“15:55:35“2015ŽŸff‘.ùœ#–¿ªConversion“factor“A1“for“pressure“dropޤ 33‘.ùœ#–¿ªdP“=“A1“rho“f“L“Q^2/d^5Ž¡‘.ùœFrom:–¿ª(8/pi^2)“(lbm/ft^3)ft(ft^3/s)^2(1/in^5)‘>þ#“Input“unitsŽ¡‘.ùœTo:‘>þpsiŽ¡‘\öì*‘¿ª43.533969Ž¡‘\öì/‘¿ª0.022970568ŽŽŸl"!‘GáThe–¦ftime“is“written“to“the“log“ le“when“the“ le“is“opMÞened.Ž©»¼‘!GThe–2ôuse“of“commen²!ts“can›2óhelp“clarify“the“meaning“of“calculations“for“the˜log.‘ ƒ‡Theޤ 33‘Glog–Ñ$includes‘Ñ#conformabilitš²!y“errors“bMÞet˜w˜een“the‘Ñ#units“at“the“`âYou‘¦fhave:á'Ž‘A[Sand“`âYou‘¦fwant:á'ŽŽ¡‘Gprompts,›¿Šbut–…Ónot“other“errors,˜including“lacš²!k“of‘…Ôconformabilit˜y“of“items“in“sums“or“di erencesŽ¡‘Gor–#Damong›#Eitems“in“a“unit˜list.‘²'F‘ÿeor“example,‘=~a˜con•²!v“ersion›#DbMÞet“w“een˜zenith˜angle‘#Eand˜elev‘ÿdDationŽ¡‘Gangle–¦fcould“in•²!v“olv“eަ‘.ùœâYou–¿ªhave:“90“deg“-“(5“deg“+“22“min“+“9“sec)Ž¡’ø-Ú^Ž¡‘.ùœIllegal–¿ªsum“or“difference“of“non-conformable“unitsŽ¡‘.ùœYou–¿ªhave:“90“deg“-“(5“deg“+“22“arcmin“+“9“arcsec)Ž¡‘.ùœYou–¿ªwant:“dmsŽ¡‘\öì84–¿ªdeg“+“37“arcmin“+“51“arcsecŽ¡‘.ùœYou–¿ªhave:“_Ž¡‘.ùœYou–¿ªwant:“degŽ¡‘\öì*‘¿ª84.630833Ž¡‘\öì/‘¿ª0.011816024Ž¡‘.ùœYou‘¿ªhave:ŽŽ “»º‘GáThe–¦flog“ le“wš²!ould“con˜tainަ‘.ùœâFrom:–¿ª90“deg“-“(5“deg“+“22“arcmin“+“9“arcsec)Ž¡‘.ùœTo:‘>þdeg;arcmin;arcsecŽ¡‘\öì84–¿ªdeg“+“37“arcmin“+“51“arcsecŽ¡‘.ùœFrom:‘¿ª_Ž¡‘.ùœTo:‘>þdegŽ¡‘\öì*‘¿ª84.630833Ž¡‘\öì/‘¿ª0.011816024ŽŽŸ^îî‘GáThe–àinitial›àen²!try“error˜(forgetting“that˜minš²!utes“ha˜v˜e“dimension›àof“time,‘½and˜that“arcmin²!utesŽ¡‘Gm²!ust–ºbMÞe›ºused“for˜dimensions“of˜angle)“doMÞes˜not“appMÞear˜in“the˜output.‘îWhen˜con•²!v“erting‘ºtoŽ¡‘Ga–¦funit“list“alias,“âunits“áexpands“the“alias“in“the“log“ le.ަ‘!GThe–"l`âFrom:á'›"mand“`âTo:á'˜tags“are˜written“to˜the“log˜ le“ev²!en˜if“the˜â--quiet“áoption˜is“giv²!en.Ž¡‘GIf–_the›_log“ le˜exists“when˜âunits“áis“in•²!v“ok“ed,‘.the–_new“results˜are“appMÞended˜to“the˜log“ le.Ž¡‘GThe–_Þtime›_ßis“written˜to“the“log˜ le“eac²!h“time˜the“ le˜is“opMÞened.‘ÆZThe˜â--log“áoption˜is“ignoredŽ¡‘Gwhen–¦fâunits“áis“used“non-in•²!teractiv“ely‘ÿe.ŽŸ!‘GëT9‘ ¸QIn–ÿuÂv“oking‘z³ëWunitsŽŽŸÝà‘GáY‘ÿeou›¦fin•²!v“ok“e˜âunits˜álik“e˜this:ަ‘.ùœâunits–¿ª[èoptionsâ]“[èfrom-unit“â[èto-unitâ]]ŽŽŒ‹Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td21ŽŽŽ ƒ33 ý ÌÍ‘GIf‘$@the–$Aåfrom-unit›a@áand“åto-unit˜áare›$@omitted,‘C·the“program˜will˜use“in•²!teractiv“e˜prompts‘$Ato˜de-ޤ 33‘Gtermine–¤üwhicš²!h“con˜v˜ersions›¤ûto“pMÞerform.‘ÙŸSee“Chapter˜2“[In•²!teractiv“e–¤üUse],‘ä¡page“1.‘ÙžIf“bMÞothŽ¡‘Gåfrom-unit–‰²áand‘L±åto-unit“áare–L²givš²!en,‘vDâunits“áwill“prin˜t“the›L±result“of“that“single˜con•²!v“ersion‘L²andŽ¡‘Gthen–]‘exit.‘Å—If“only›]’åfrom-unit‘š‘áappMÞears“on˜the“command˜line,‘l"âunits˜áwill“displa²!y˜the“de nitionŽ¡‘Gof–Ã}that›Ã~unit“and˜exit.‘5#Units˜spMÞeci ed“on˜the“command˜line“ma²!y˜need“to˜bMÞe“quoted˜to“pro-Ž¡‘Gtect–¼Çthem›¼Èfrom“shell“in²!terpretation˜and“to“group˜them“inš²!to“t˜w˜o“argumen˜ts.‘!See‘¼ÈChapter“3Ž¡‘G[Command–¦fLine“Use],“page“4.Ž©+T‘!GThe–adefault“bšMÞeha²!vior‘`of“âunits“ácan“b˜e‘`cš²!hanged“b˜y“v‘ÿdDarious“options“giv˜en‘`on“the“commandŽ¡‘Gline.‘»RIn–>Çmost›>Æcases,‘Sthe“options˜ma•²!y˜bMÞe˜giv“en˜in˜either˜short˜form˜(a‘>Çsingle˜`â-á'˜follo“w“ed˜b“y˜aŽ¡‘Gsingle–|cš²!haracter)“or“long“form“(`â--á'‘|follo˜w˜ed“b˜y“a“w˜ord“or“h˜yphen-separated“w˜ords).‘ÏÃShort-Ž¡‘Gform–nsoptions›nrare“cryptic“but˜require“less“t²!yping;‘long-form˜options“require“more˜t²!yping“butŽ¡‘Gare–µrmore›µqexplanatory“and“ma²!y“bMÞe˜more“mnemonic.‘ With“long-form“options“y²!ou˜need“onlyŽ¡‘Gen•²!ter›·{sucien“t˜c“haracters˜to˜uniquely˜iden“tify˜the˜option‘·zto˜the˜program.‘F‘ÿeor˜example,Ž¡‘G`â--out›¿ª%fá'–Îvw²!orks,‘Ø{but“`â--o˜%fá'“fails›ÎwbMÞecause“âunits“áhas˜other“long“options˜bMÞeginning“withŽ¡‘G`âoá'.‘ÝÝHo•²!w“ev“er,–¦f`â--qá'“w²!orks“bšMÞecause“`â--quietá'“is“the“only“long“option“b˜eginning“with“`âqá'.ަ‘!GSome–=üoptions“require›=ýargumen²!ts“to“spMÞecify“a“v‘ÿdDalue˜(e.g.,‘£á`â-d›¿ª12á'“or“`â--digits˜12á').Ž¡‘GShort-form–Ž«options›ެthat“do˜not“tak•²!e˜argumen“ts‘Ž«ma“y˜bMÞe–Ž«concatenated˜(e.g.,‘“j`â-erSá'˜is“equiv-Ž¡‘Galen²!t›äòto‘äó`â-e–¿ª-r“-Sá');‘„8the˜last˜option–äóin˜suc²!h˜a“list˜ma²!y˜bMÞe“one˜that˜tak²!es“an˜argumen²!tŽ¡‘G(e.g.,›\O`â-ed‘¿ª12á').‘’tWith–7îshort-form“options,˜the“space“bMÞet•²!w“een›7ían–7îoption“and˜its“argumen²!tŽ¡‘Gis–_optional“(e.g.,‘;`â-d12á'“is“equiv‘ÿdDalenš²!t“to“`â-d‘¿ª12á').‘BÉLong-form“options“ma˜y‘`not“bMÞe“concate-Ž¡‘Gnated,‘£Pand–¢Šthe“space“bMÞet•²!w“een–¢Ša“long-form‘¢‹option“and“its“argumen²!t“is“required.‘Ü”Short-formŽ¡‘Gand–Élong-form“options‘Émaš²!y“bMÞe“in˜termixed“on“the›Écommand“line.‘EóOptions˜maš²!y“bMÞe“giv˜enŽ¡‘Gin–…þan²!y“order,›Œybut“when“incompatible‘…ÿoptions“(e.g.,˜â--output-format“áand“â--exponentialá)Ž¡‘Gare–ÚIgivš²!en“in‘ÚHcom˜bination,‘'AbMÞeha˜vior“is“con˜trolled“b˜y‘ÚHthe“last“option“giv˜en.‘y…F‘ÿeor“example,Ž¡‘G`â-o%.12f‘¿ª-eá'–¦fgivš²!es“expMÞonen˜tial“format“with“the“default“eigh˜t“signi can˜t“digits).ŽŸ+S‘!GThe–¦ffolloš²!wing“options“are“a˜v‘ÿdDailable:ŽŸ'd‘Gâ-cŽ¡‘G--check‘“MáChec²!k–Ž.that›Ž-all“units˜and“pre xes˜de ned“in“the˜units“data˜ le“reduce˜to“primitiv²!eŽ¡‘Kâ:units.‘ØÇPrin²!t–—$a›—%list“of“all“units“that˜cannot“bMÞe“reduced.‘ØÇAlso˜displa²!y“some“otherŽ¡‘Kâ:diagnostics–ÌÌabMÞout›ÌÍsuspicious“de nitions˜in“the˜units“data“ le.‘QOnly“de nitionsŽ¡‘Kâ:activš²!e–!ðin“the‘!ñcurren˜t“loMÞcale“are“c˜hec˜k˜ed.‘±¶Y‘ÿeou“should“alw˜a˜ys“run‘!ñâunits“áwith“thisŽ¡‘Kâ:option–¦fafter“moMÞdifying“a“units“data“ le.Ž©+T‘Gâ--check-verboseŽ¡‘G--verbose-checkŽ¡‘Kâ:áLikš²!e–dthe“â--check‘dáoption,‘“Œthis“option“prin˜ts“a›dlist“of“units“that˜cannot“bMÞe“re-Ž¡‘Kâ:duced.‘[_But–zæto›zçhelp“ nd˜unit“de nitions˜that“cause˜endless˜loMÞops,‘°it“lists˜theŽ¡‘Kâ:units–ªas“they“are“c•²!hec“k“ed.‘èõIf–ªâunits“áhangs,‘«then“the“last‘ªunit“to“bMÞe“prin²!ted“hasŽ¡‘Kâ:a–¦fbad“de nition.‘ÝÝOnly“de nitions“activš²!e“in“the“curren˜t“loMÞcale“are“c˜hec˜k˜ed.ަ‘Gâ-d‘¦fèndigitsŽ¡‘Gâ--digits‘¦fèndigitsŽ¡‘Kâ:áSet›ŸRthe‘ŸQn•²!um“bMÞer˜of˜signi can“t–ŸQdigits˜in˜the˜output“to˜the˜v‘ÿdDalue“spMÞeci ed˜(whic²!hŽ¡‘Kâ:m²!ust–# bMÞe“greater“than›# zero).‘²F‘ÿeor“example,‘=Q`â-d‘¿ª12á'“sets˜the“n•²!um“bMÞer–# of“signi can²!tŽ¡‘Kâ:digits›ctto–cu12.‘With“expMÞonen•²!tial˜output˜âunits˜ádispla“ys–cuone˜digit˜to˜the“left˜ofŽŽŒ‹#¬Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td22ŽŽŽ ƒ33 ý ÌÍ‘Kâ:the–˜decimal“pMÞoinš²!tŸü¾®2Ž‘ › áand“elev˜en“digits“to“the‘™righ˜t“of“the“decimal“pMÞoin˜t.‘ FtOnޤ 33‘Kâ:most–¶ãsystems,‘ûthe“maximš²!um“n˜um˜bMÞer‘¶âof“in˜ternally“meaningful“digits‘¶âis“15;‘?!ifŽ¡‘Kâ:y²!ou–Š&spMÞecify›Š'a“greater˜n•²!um“bMÞer–Š&than“y²!our˜system's“maxim²!um,‘Íâunits“áwill˜prin²!t“aŽ¡‘Kâ:wš²!arning–…and‘„set“the“n˜um˜bMÞer›„to“the“largest“meaningful˜v‘ÿdDalue.‘¨=T‘ÿeo“directly˜set“theŽ¡‘Kâ:maxim•²!um›h(v‘ÿdDalue,‘tšgiv“e˜an˜argumen“t‘h'of˜âmax˜á(e.g.,‘tš`â-d‘¿ªmaxá').‘ÉBe˜a“w“are,‘tšof˜course,Ž¡‘Kâ:that–åæ\signi can²!t"›åçhere“refers˜only“to˜the“ädisplay‘Ýèáof“n•²!um“b•MÞers;‘§if˜results‘åædep“endŽ¡‘Kâ:on›¢¿ph•²!ysical‘¢Àconstan“ts˜not˜kno“wn–¢Àto˜this˜precision,‘áÕthe“ph²!ysically˜meaningfulŽ¡‘Kâ:precision–@Úmaš²!y“bMÞe‘@Ùless“than“that“sho˜wn.‘¼The“â--digits“áoption‘@Ùcon icts“with“theŽ¡‘Kâ:â--output-format‘¦fáoption.Ž©çz‘Gâ-eŽ¡‘G--exponentialŽ¡‘Kâ:áSet–!|the›!{n²!umeric“output“format˜to“expMÞonen•²!tial˜(i.e.,‘€Ascien“ti c‘!|notation),‘€@lik“eŽ¡‘Kâ:that–ZDused›ZEin“the“Unix˜âunits“áprogram.‘Ä|The˜default“precision“is˜eighš²!t“signi can˜tŽ¡‘Kâ:digits–e(sev²!en›eŒdigits“to“the˜righ²!t“of“the˜decimal“pšMÞoin²!t);‘{*this“can“b˜e‘eŒc²!hanged“withŽ¡‘Kâ:the–&žâ--digits“áoption.‘³EThe“â--exponential“áoption“con icts“with“the“â--output-Ž¡‘Kâ:format‘¦fáoption.ަ‘Gâ-o‘¦fèformatŽ¡‘Gâ--output-format‘¦fèformatŽ¡‘Kâ:áThis–…÷option‘…öa ords“complete“conš²!trol“o˜v˜er‘…öthe“n˜umeric“output“format‘…öusing“theŽ¡‘Kâ:spMÞeci ed– ×åformatá.‘.The“format› Öis“a“single˜ oating“pMÞoin•²!t˜n“umeric– ×format˜for“theŽ¡‘Kâ:âprintf()–©Åáfunction›©Æin“the˜C“programming“language.‘çüAll“compilers˜suppMÞort“theŽ¡‘Kâ:format–¸ôt²!ypšMÞes“`âgá'“and‘¸õ`âGá'“to“sp˜ecify“signi canš²!t“digits,‘ý—`âeá'‘¸õand“`âEá'“for“scien˜ti cŽ¡‘Kâ:notation,‘Ý=and–Ÿ`âfá'“for›Ÿ xed-pMÞoin²!t“decimal.‘ÇâThe“ISO‘žÓC99˜standard“in²!troMÞducedŽ¡‘Kâ:the–D¤`âFá'“t²!ypšMÞe‘D£for“ xed-p˜oin²!t“decimal“and›D£the“`âaá'“and“`âAá'˜t²!ypMÞes“for“hexadecimalŽ¡‘Kâ: oating–¿âpMÞoinš²!t;‘ÌŸthese“t˜ypMÞes“are‘¿áallo˜w˜ed“with“compilers‘¿áthat“suppMÞort“them.‘*PTheŽ¡‘Kâ:default–Óàformat“is“`â%.8gá';‘jœfor“greater“precision,‘>y²!ou“could“spMÞecify“`â-o‘¿ª%.15gá'.Ž¡‘Kâ:See–ùpChapter“11“[Numeric“Output“F‘ÿeormat],›N2page“31,˜and“the“doMÞcumen²!tationŽ¡‘Kâ:for–‘mâprintf()“áfor“more‘‘ldetailed“descriptions“of“the“format“spMÞeci cation.‘žñTheŽ¡‘Kâ:â--output-format–;áoption›EáandŽ¡‘Kâ:its–¬žmš²!ultiplier‘¬Ÿis“an“in˜teger“other›¬Ÿthan“1,‘®,the“fraction˜is“giv²!en“as“the˜proMÞduct“ofŽ¡‘Kâ:the–ÈÜmš²!ultiplier‘ÈÛand“the“n˜umerator“(e.g.,‘Ñy`â3|8›¿ªiná'‘ÈÛrather“than“`â3–¦f*“1|8˜iná').‘E>InŽ¡‘Kâ:some–0”cases,›Sthis“is“not‘0“what“is“w•²!an“ted;‘uªfor–0”example,˜the“results“for‘0“a“coMÞokingŽ¡‘Kâ:recipMÞe›dþmigh•²!t‘dÿsho“w˜`â3–¦f*“1|2–¿ªcupá'‘dÿas˜`â3|2“cupá'.‘§With˜the‘dÿâ--show-factor˜áop-Ž¡‘Kâ:tion,‘o•a–GXresult›GYequiv‘ÿdDalen²!t“to˜1.5“cups˜will“displa²!y˜as“`â3–¦f*“1|2‘¿ªcupá'˜rather‘GXthanŽ¡‘Kâ:`â3|2‘¿ªcupá'.‘®×A‘–{user-spMÞeci ed›–ºfractional––¹unit“with˜a“n²!umerator“other“than˜1“isŽ¡‘Kâ:nev•²!er›VÌo“v“erridden,‘‚åho“w“ev“er|if˜a˜unit‘VÍlist˜spMÞeci es˜`â3|4–¦fcup;1|2“cupá',‘‚åa˜resultŽ¡‘Kâ:equiv‘ÿdDalenš²!t–õto“1‘ö1/2“cups“will“alw˜a˜ys‘öbMÞe“sho˜wn“as“`â2–¦f*“3|4‘¿ªcupá'‘öwhether–õor“notŽ¡‘Kâ:the–¦fâ--show-factor“áoption“is“giv²!en.ަ‘Gâ-sŽ¡‘G--strict‘ Ó£áSuppress›«Ícon•²!v“ersion˜of˜units˜to˜their˜reciproMÞcal˜units.‘îF‘ÿeor˜example,‘­'âunits˜áwillŽ¡‘Kâ:normally›\tcon•²!v“ert˜hertz–\sto˜seconds˜bMÞecause˜these˜units˜are“reciproMÞcals˜of˜eac²!hŽ¡‘Kâ:other.‘ݨThe–¥Èstrict›¥Çoption“requires“that˜units“bMÞe˜strictly“conformable˜to“pMÞerformŽ¡‘Kâ:a›‹ûcon•²!v“ersion,‘‘Dand˜will‘‹ügiv“e˜an˜error˜if‘‹üy“ou˜attempt˜to˜con“v“ert‘‹ühertz˜to˜seconds.ŽŸ™š‘Gâ-1Ž¡‘G--one-lineŽ¡‘Kâ:áGivš²!e–RÜonly“one‘RÛline“of“output“(the“forw˜ard‘RÛcon˜v˜ersion).‘ÂDo“not‘RÛprin˜t“the“rev˜erseŽ¡‘Kâ:con•²!v“ersion.‘Ì^If›K;a–Kand“the˜loMÞcation“of“the˜pMÞersonal“unitsŽ¡‘Kâ:data–¦f le;“indicate“if“the“pšMÞersonal“units“data“ le“do˜es“not“exist.ŽŽŒ‹O©Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td25ŽŽŽ ƒ33 ý ÌÍ‘Kâ:When–¹9givš²!en“in‘¹8com˜bination“with“the“â--terse–¹8áoption,‘½îthe“program–¹9prin˜ts“onlyޤ 33‘Kâ:the–¦fvš²!ersion“n˜um˜bMÞer“and“exits.Ž©dZ‘Kâ:When–Ô9givš²!en‘Ô8in“com˜bination“with“the›Ô8â--verbose“áoption,–_­the˜program,“theŽ¡‘Kâ:â--version–¦fáoption“has“the“same“e ect“as“the“â--info“áoption“bMÞelo²!w.ŽŸ•‚‘Gâ-IŽ¡‘G--info‘R÷áPrinš²!t–´the˜argumen²!t“is“dimensionless),‘L?and“that˜the“in•²!v“erseޤ 33‘Gfunction–DHrequires›DIan“input“argumen²!t˜conformable“with“`âKá'.‘ ·„F‘ÿeor“normal˜nonlinear“unitsŽ¡‘Gde nition,‘ÝËthe–Ò·forwš²!ard“function“will‘Ò¶alw˜a˜ys“tak˜e“a“dimensionless“argumen˜t;‘èßin“general,‘ÝËtheŽ¡‘Gin•²!v“erse–Çïfunction›Çîwill“need“units˜that“matcš²!h“the“quan˜tit˜y‘Çîmeasured“b˜y“y˜our‘Çînonlinear“unit.Ž¡‘GSpšMÞecifying–$äthe“units‘$ãenables“âunits“áto“p˜erform“error‘$ãc•²!hec“king–$äon“function“argumen²!ts,‘DƒandŽ¡‘Galso–¦fto“assign“units“to“domain“and“range“spšMÞeci cations,“whic²!h“are“describ˜ed“later.Ž©€‘!GNext–¬the›«function“de nitions“appMÞear.‘û®In“the“example˜abMÞo•²!v“e,‘]}the–¬`âtempFá'˜function“isŽ¡‘Gde ned‘¦fb²!yŽŸ€‘.ùœâtempF(x)–¿ª=“(x+(-32))“degF“+“stdtempŽŽ¦‘GáThis–‚ßgivš²!es“a‘‚àrule“for“con˜v˜erting“`âxá'“in“the›‚àunits“`âtempFá'“to“linear“units˜of“absolute“tempMÞera-Ž¡‘Gture,–¦fwhicš²!h“mak˜es“it“pMÞossible“to“con˜v˜ert“from“tempF“to“other“units.ަ‘!GT›ÿeo–V›enable“con•²!v“ersions‘Vœto‘V›F˜ahrenheit,‘‚¨y“ou›V›m“ust‘Vœgiv“e˜a˜rule˜for‘Vœthe˜in“v“erse˜con“v“ersions.Ž¡‘GThe›@ªin•²!v“erse–@©will˜bMÞe˜`âx(tempF)á'“and˜its˜de nition˜appMÞears“after˜a˜`â;á'“c²!haracter.‘ ¬¨In˜ourŽ¡‘Gexample,–¦fthe“in•²!v“erse‘¦fisŽŸ€‘.ùœâx(tempF)–¿ª=“(tempF+(-stdtemp))/degF“+“32ŽŽ¦‘GáThis›*\in•²!v“erse˜de nition‘*]tak“es˜an˜absolute˜tempMÞerature˜as‘*]its˜argumen“t˜and˜con“v“erts‘*]it˜to˜theŽ¡‘GF‘ÿeahrenheit› tempMÞerature.‘ øThe‘ in•²!v“erse˜can˜bMÞe‘ omitted˜b“y˜lea“ving– out˜the˜`â;á'“c²!haracter˜andŽ¡‘Gthe›ùÂin•²!v“erse˜de nition,‘˜but˜then˜con“v“ersions–ùÁäto‘ª´áthe˜unit˜will˜not“b•MÞe˜p“ossible.‘×ðIf˜the˜in•²!v“erseŽ¡‘Gde nition–#µis“omitted,‘=Øthe“â--check“áoption“will“displaš²!y“a“w˜arning.‘²LIt“is“up“to“y˜ou“to“calculateŽ¡‘Gand–¾¸enš²!ter‘¾¹the“correct“in˜v˜erse›¾¹function“to“obtain˜propMÞer“con•²!v“ersions;‘Játhe˜â--check‘¾¸áoptionŽ¡‘Gtests›çthe‘èin•²!v“erse˜at‘èone˜pMÞoin“t‘èand˜prin“ts–èan˜error˜if“it˜is“not˜v‘ÿdDalid“there,‘>Gbut“this˜is“not˜aŽ¡‘Gguaranš²!tee–¦fthat“y˜our“in˜v˜erse“is“correct.ަ‘!GWith–¦fsome“de nitions,“the“units“ma²!y“v‘ÿdDary–ÿe.‘ÝÝF“or–¦fexample,“the“de nitionŽŸ€‘.ùœâsquare(x)‘(=¦x^2ŽŽ¦‘Gácan›Eha•²!v“e‘Fan“y˜arbitrary–Funits,‘9½and˜can˜also“tak²!e˜dimensionless“argumen•²!ts.‘?{In˜suc“h‘Fa˜case,Ž¡‘Gyš²!ou–¿îshould“änot‘ÉØáspMÞecify“units.‘*vIf“a“de nition“tak˜es“a“roMÞot“of‘¿ïits“argumen˜ts,‘ÆPthe“de nition“isŽ¡‘Gv‘ÿdDalid–¦fonly“for“units“that“yield“suc²!h“a“roMÞot.‘ÝÝF‘ÿeor“example,ަ‘.ùœâsquirt(x)‘(=¦sqrt(x)ŽŽ¦‘Gáis–¦fv‘ÿdDalid“for“a“dimensionless“argumenš²!t,“and“for“argumen˜ts“with“ev˜en“pMÞo˜w˜ers“of“units.ŽŸ€‘!GSome–qúde nitions“ma²!y›qùnot“bMÞe“v‘ÿdDalid“for“all˜real“n•²!um“bMÞers.‘ÌdIn›qúsuc“h˜cases,‘|uâunits˜ácan˜handleŽ¡‘Gerrors–§ÚbšMÞetter“if“y²!ou“sp˜ecify›§Ùan“appropriate“domain“and“range.‘â9Y‘ÿeou˜spMÞecify“the“domain“andŽ¡‘Grange–¦fas“shoš²!wn“bMÞelo˜w:ަ‘.ùœâbaume(d)–¿ªunits=[1;g/cm^3]“domain=[0,130.5]“range=[1,10]“\Ž¡‘b¶–(145/(145-d))–¿ªg/cm^3“;“(baume+-g/cm^3)“145“/“baumeŽŽŸ³3‘GáIn–äJthis“example“the“domain“is“spšMÞeci ed‘äIafter“`âdomain=á'“with“the“endp˜oinš²!ts“giv˜en“in“brac˜k˜ets.Ž¡‘GIn–Ãcaccord›Ãdwith“mathematical˜con•²!v“en“tion,‘ðÊsquare‘Ãcbrac“k“ets˜indicate–Ãca˜closed“in²!terv‘ÿdDal˜(one“thatŽ¡‘Gincludes–ÞÛits“endpMÞoinš²!ts),‘Äand“paren˜theses“indicate“an“opMÞen“in˜terv‘ÿdDal‘ÞÜ(one“that“doMÞes“not“includeŽ¡‘Gits–ÿ endpMÞoinš²!ts).‘çÊAn“in˜terv‘ÿdDal“can‘ÿ bšMÞe“op˜en“or›ÿ closed“on˜one“or“bMÞoth˜ends;‘+]an“in²!terv‘ÿdDal˜that“isŽ¡‘Gunš²!bMÞounded–Y™on“either“end“is“indicated‘Yšb˜y“omitting“the“limit“on“that“end.‘÷vF‘ÿeor“example,‘†faŽ¡‘Gquan•²!tit“y–Ëto“whicš²!h“decibMÞel“(dB)‘Ë4is“applied“ma˜y‘Ë€ha˜v˜e“an˜y“v‘ÿdDalue“greater“than“zero,‘Åso“theŽ¡‘Grange–¦fis“indicated“b²!y“`â(0,)á':ŽŸ€‘.ùœâdecibel(x)–¿ªunits=[1;1]“range=(0,)“10^(x/10);“10“log(decibel)ŽŽ¦‘GáIf–¦fthe“domain“or“range“is“givš²!en,“the“second“endpMÞoin˜t“m˜ust“bMÞe“greater“than“the“ rst.ŽŽŒ‹¯Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td29ŽŽŽ ƒ33 ý ÌÍ‘!GThe–êmdomain“and›êlrange“spMÞeci cations“can˜appšMÞear“indep˜endenš²!tly“and“in“an˜y‘êlorder“alongޤ 33‘Gwith–xthe›yunits“spMÞeci cation.‘¬8The˜v‘ÿdDalues“for“the“domain˜and“range“endpMÞoin²!ts“are˜attac²!hed“toŽ¡‘Gthe–»Uunits›»Vgiv²!en“in˜the“units˜spMÞeci cation,‘À‘and“if˜necessary‘ÿe,‘À‘the˜parameter“v‘ÿdDalue˜is“adjustedŽ¡‘Gfor–p‘comparison›pwith“the“endpMÞoin²!ts.‘<]F‘ÿeor“example,‘£if“a“de nition˜includes“`âunits=[1;ft]á'Ž¡‘Gand–wˆ`ârange=[3,)á',‘«Ðthe›w‡range“will“bMÞe“tak²!en“as˜3“ft“to“in nit²!y‘ÿe.‘QBIf“the“function˜is“passed“aŽ¡‘Gparameter–ê7of“`â900‘¦fmmá'Ž‘+dE,›;+that“v‘ÿdDalue“will“bMÞe‘ê8adjusted“to“2.9527559“ft,˜whic²!h“is“outside“theŽ¡‘GspMÞeci ed–Ÿrange.‘ŠIf“y²!ou› omit“the˜units“spMÞeci cation˜from“the“previous˜example,‘,nâunits“ácanŽ¡‘Gnot–ûµtell“whether“y•²!ou‘û¶in“tend–ûµthe“lo•²!w“er›ûµendpMÞoin“t˜to˜bMÞe˜3‘û¶ft˜or˜3˜microfurlongs,‘ and˜can˜notŽ¡‘Gadjust–íthe›ìparameter“v‘ÿdDalue˜of“900˜mm“for˜comparison.‘ÄqWithout“units,‘ÛÍn²!umerical“v‘ÿdDaluesŽ¡‘Gother–WBthan›WCzero“or˜plus“or˜minš²!us“in nit˜y“for›WCdomain“or˜range“endpMÞoin²!ts˜are“meaningless,Ž¡‘Gand–4ùaccordingly“they‘4øare“not“allo•²!w“ed.‘ ‰•If›4ùy“ou˜giv“e–4øother˜v‘ÿdDalues˜without˜units“then˜theŽ¡‘Gde nition–¦fwill“bMÞe“ignored“and“y²!ou“will“get“an“error“message.Ž©ª«‘!GAlthough–Bsthe“units,–Vpdomain,“and–Bsrange“spšMÞeci cations“are“optional,‘Vpit's“b˜est“to“giv²!e“themŽ¡‘Gwhen–±#they“are›±$applicable;‘¶‚doing“so“allo²!ws“âunits˜áto“pšMÞerform“b˜etter“error‘±$c•²!hec“king–±#and“giv²!eŽ¡‘Gmore–1êhelpful“error“messages.‘· Giving“the“domain“and“range“also‘1ëenables“the“â--check“áoptionŽ¡‘Gto–¦f nd“a“pšMÞoin²!t“in“the“domain“to“use“for“its“p˜oinš²!t“c˜hec˜k“of“y˜our“in˜v˜erse“de nition.ަ‘!GY‘ÿeou–Ï¡can“makš²!e“synon˜yms‘Ï¢for“nonlinear“units“b˜y“pro˜viding“bMÞoth‘Ï¢the“forw˜ard“and“in˜v˜erseŽ¡‘Gfunctions;‘s®in•²!v“erse›ZSfunctions–ZRcan“bMÞe“obtained“using˜the“`â~á'“opMÞerator.‘ÄSo“to˜create“a“synon²!ymŽ¡‘Gfor–¦f`âtempFá'“y²!ou“could“writeަ‘.ùœâfahrenheit(x)–¿ªunits=[1;K]“tempF(x);“~tempF(fahrenheit)ŽŽ¦‘GáThis–‚is›ƒuseful“for˜creating“a˜nonlinear“unit“de nition˜that“di ers˜sligh²!tly“from˜an“existingŽ¡‘Gde nition–¦fwithout“ha²!ving“to“repMÞeat“the“original“functions.‘ÝÝF‘ÿeor“example,ަ‘.ùœâdBW(x)‘¾Runits=[1;W]–¿ªrange=[0,)“dB(x)“W“;‘ T~dB(dBW/W)ަ‘GáIf–•yš²!ou“wish“a“synon˜ym‘•to“refer“to“an“existing“nonlinear“unit“without“moMÞdi cation,‘˜y˜ou“canŽ¡‘Gdo–± so“more›±Ÿsimply“b²!y“adding“the˜synonš²!ym“with“appMÞended“paren˜theses‘±Ÿas“a“new“unit,‘´nwithŽ¡‘Gthe–Îexisting“nonlinear›Îunit|without“paren²!theses|as“the“de nition.‘•ÅSo“to˜create“a“synon²!ymŽ¡‘Gfor–¦f`âtempFá'“y²!ou“could“writeަ‘.ùœâfahrenheit()‘ TtempFަ‘GáThe–¦fde nition“mš²!ust“bMÞe“a“nonlinear“unit;“for“example,“the“synon˜ymަ‘.ùœâfahrenheit()‘ Tmeterަ‘Gáwill–¦fresult“in“an“error“message“when“âunits“ástarts.ަ‘!GY‘ÿeou–%ma²!y›%oMÞccasionally“wish“to˜de ne“a“function“that˜opMÞerates“on“units.‘²¼This“can˜bMÞe“doneŽ¡‘Gusing–Áa›Ánonlinear“unit˜de nition.‘-ÚF‘ÿeor“example,‘ºthe˜de nition“bMÞelo•²!w˜pro“vides‘Ácon“v“ersionŽ¡‘GbMÞet•²!w“een–ö#radius“and›ö"the“area“of“a“circle.‘ÍThis“de nition“requires“a“length˜as“input“andŽ¡‘GproMÞduces– an› area“as“output,‘+²as“indicated˜b²!y“the“`âunits=á'˜sp•MÞeci cation.‘ª¼Sp“ecifying˜the‘ rangeŽ¡‘Gas–¦fthe“nonnegativš²!e“n˜um˜bMÞers“can“prev˜en˜t“cryptic“error“messages.ަ‘.ùœâcirclearea(r)–¿ªunits=[m;m^2]“range=[0,)‘>þpi“r^2“;“sqrt(circlearea/pi)ŽŽŸîð‘Gë]10.4‘™De ning–f@Piecewise“Linear“UnitsŽŽŸ33‘GáSometimes–yyš²!ou“ma˜y“bMÞe‘xin˜terested“in“a“piecewise“linear“unit“suc˜h‘xas“man˜y“wire“gauges.Ž¡‘GPiecewise–*?linear“units“can“bšMÞe“de ned“b²!y“sp˜ecifying“con•²!v“ersions–*?to“linear“units“on“a“list“ofŽ¡‘GpšMÞoin•²!ts.‘ÂCon“v“ersion‘R÷at–Røother“p˜oin²!ts“will‘R÷b˜e“done“bš²!y‘R÷linear“in˜terpMÞolation.‘ÂA‘Râpartial“de nitionŽ¡‘Gof–¦fzinc“gauge“isަ‘.ùœâzincgauge[in]–¿ª1“0.002,“10“0.02,“15“0.04,“19“0.06,“23“0.1ŽŽŽŒ‹ž£Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td30ŽŽŽ ƒ33 ý ÌÍ‘GIn–þêthis›þëexample,‘ i`âzincgaugeá'“is˜the“name“of˜the“piecewise“linear˜unit.‘¦ The“de nition˜of“suc²!hޤ 33‘Ga–ëunit“is‘êindicated“bš²!y“the“em˜bMÞedded“`â[á'‘êc˜haracter.‘5lAfter“the“brac˜k˜et,‘5‹y˜ou“should“indicateŽ¡‘Gthe–Úunits›Ú to“bMÞe“attac²!hed“to˜the“n•²!um“bMÞers–Úin“the˜table.‘xÃNo˜spaces“can“appšMÞear“b˜efore‘Ú the“`â]á'Ž¡‘Gcš²!haracter,‘ˆ)so–€ša‘€™de nition“lik˜e“`âfoo[kg‘¦fmeters]á'“is–€™in˜v‘ÿdDalid;‘4instead“write‘€š`âfoo[kg*meters]á'.Ž¡‘GThe–îÃde nition“of“the“unit“consists“of“a“list‘îÄof“pairs“optionally“separated“b²!y“commas.‘¶ôThisŽ¡‘Glist–D›de nes“a›Dšfunction“for“con•²!v“erting–D›from˜the“piecewise“linear“unit“to˜linear“units.‘½DThe“ rstŽ¡‘Gitem–ÍŒin›Íeac²!h“pair“is“the˜function“argumen²!t;‘áthe˜second“item“is˜the“v‘ÿdDalue“of“the˜function“atŽ¡‘Gthat–ÑÎargumen²!t›ÑÍ(in“the˜units“spMÞeci ed˜in“brac•²!k“ets).‘`In–ÑÎthis“example,‘ܧw²!e˜de ne“`âzincgaugeá'Ž¡‘Gat–} vš²!e“pMÞoin˜ts.‘aíF‘ÿeor“example,‘²Âw˜e“set“`âzincgauge(1)á'“equal“to“`â0.002‘¦finá'Ž‘6vx.‘aíDe nitions“lik˜eŽ¡‘Gthis–¦fmaš²!y“bMÞe“more“readable“if“written“using“con˜tin˜uation“c˜haracters“asŽ©"#‘.ùœâzincgauge[in]‘¿ª\Ž¡‘K·î1‘¿ª0.002‘ T\Ž¡‘EøD10‘¿ª0.02‘>þ\Ž¡‘EøD15‘¿ª0.04‘>þ\Ž¡‘EøD19‘¿ª0.06‘>þ\Ž¡‘EøD23‘¿ª0.1ŽŽŸR""‘GáWith–¦fthe“preceding“de nition,“the“folloš²!wing“con˜v˜ersion“can“bšMÞe“p˜erformed:ަ‘.ùœâYou–¿ªhave:“zincgauge(10)Ž¡‘.ùœYou–¿ªwant:“inŽ¡‘EøD*‘¿ª0.02Ž¡‘EøD/‘¿ª50Ž¡‘.ùœYou–¿ªhave:“.01“inchŽ¡‘.ùœYou–¿ªwant:“zincgaugeŽ¡‘EøD5ŽŽŸ_UU‘GáIf–Zy²!ou“de ne›Za“piecewise“linear“unit˜that“is“not“strictly“monotonic,‘iHthen“the˜in•²!v“erse–Zwill“notŽ¡‘GbMÞe–Æwš²!ell‘Åde ned.‘"üIf“the“in˜v˜erse›Åis“requested“for˜suc²!h“a“unit,‘-Ýâunits“áwill“return˜the“smallestŽ¡‘Gin•²!v“erse.ŽŸ""‘!GAfter–Uadding“nonlinear“units“de nitions,‘|Py²!ou“should“normally“run“âunits‘¦f--checkŽ‘RßátoŽ¡‘Gc•²!hec“k–;†for“errors.‘º=If›;‡the“`âunitsá'“k•²!eyw“ord–;†is“not“giv²!en,‘Pæthe“â--check˜áoption“c•²!hec“ks–;†a“nonlinearŽ¡‘Gunit–¿Ñde nition›¿Ðusing“a“dimensionless˜argumen²!t,‘Æ,and“then˜c•²!hec“ks–¿Ñusing“an˜arbitrary“com²!bi-Ž¡‘Gnation–"ûof“units,‘B as“wš²!ell“as“the‘"úsquare“and“cubMÞe“of“that“com˜bination;‘aEa“w˜arning“is“giv˜en“ifŽ¡‘Gan²!y–¦fof“these“tests“fail.‘ÝÝF‘ÿeor“example,ަ‘.ùœâWarning:–¿ªfunction“ squirt(x) “defined“as“ sqrt(x) Ž¡‘b¶–failed–¿ªfor“some“test“inputs:Ž¡‘b¶–squirt(7(kg–¿ªK)^1):“Unit“not“a“rootŽ¡‘b¶–squirt(7(kg–¿ªK)^3):“Unit“not“a“rootŽŽŸ7»¼‘GáRunning‘ áâunits‘¦f--checkŽ‘Qä áwill– áprinš²!t“a“w˜arning“if“a“non-monotonic“piecewise“linear“unit“isŽ¡‘Gencounš²!tered.‘ÒÇF‘ÿeor–…$example,‘‹Ëthe“relationship“bMÞet˜w˜een“ANSI‘…coated“abrasiv˜e“designation“andŽ¡‘Gmean–¦fparticle“size“is“non-monotonic“in“the“vicinit²!y“of“800“grit:ަ‘.ùœâansicoated[micron]‘¿ª\Ž¡‘K·î.–¿ª.“.Ž¡‘EøD600–¿ª10.55“\Ž¡‘EøD800–¿ª11.5“\Ž¡‘EøD1000–¿ª9.5“\ŽŽŸDîï‘GáRunning–¦fâunits“--checkŽ‘Oï*áw•²!ould›¦fgiv“e˜the˜error˜messageŽŽŒ‹¯wŸò‘GáUnits‘¦fCon•²!v“ersion’Td31ŽŽŽ ƒ33 ý ÌÍ‘.ùœâTable–¿ª ansicoated “lacks“unique“inverse“around“entry“800ŽŽ©§ð‘GáAlthough–Ÿ‘the“in•²!v“erse–Ÿ‘is“not“w²!ell“de ned›Ÿin“this“region,‘ÝÜit's˜not“really“an“error.‘É^Viewingޤ 33‘Gsuc²!h–Aerror›Amessages“can“bMÞe˜tedious,‘UUand“if˜there“are“enough˜of“them,‘UUthey“can˜distract“fromŽ¡‘Gtrue–(°errors.‘d¼Error“c•²!hec“king–(°for“nonlinear“unit“de nitions“can“bMÞe‘(±suppressed“b²!y“giving“theŽ¡‘G`ânoerrorá'›¦fk•²!eyw“ord;˜for˜the˜examples˜abMÞo“v“e,˜this˜could˜bMÞe˜done˜asަ‘.ùœâsquirt(x)–¿ªnoerror“domain=[0,)“range=[0,)“sqrt(x);“squirt^2Ž¡‘.ùœansicoated[micron]–¿ªnoerror“\Ž¡‘K·î.–¿ª.“.ŽŽŸ.V‘GáUse–*the“`ânoerrorá'“k•²!eyw“ord–*with“caution.‘´gThe“safest“approac²!h“after“adding“a“nonlinear“unitŽ¡‘Gde nition–Ûôis›Ûóto“run“âunits‘¦f--checkŽ‘NZEáand“con rm“that˜there“are˜no“actual“errors˜bMÞefore“addingŽ¡‘Gthe–¦f`ânoerrorá'“k•²!eyw“ord.ŽŸ"/‘Gë]10.5‘™De ning–f@Unit“List“AliasesŽŽŸ33‘GáUnit–«Ûlist›«Úaliases“are“treated˜di eren²!tly“from˜unit“de nitions,‘­8bMÞecause˜they“are“a˜data“en²!tryŽ¡‘Gshorthand–5Ärather“than“a“true‘5Åde nition“for“a“new“unit.‘‹÷A‘5 unit“list“alias“de nition“bMÞeginsŽ¡‘Gwith–Á`â!unitlistá'“and›Àincludes“the“alias“and“the˜de nition;‘<£for“example,‘'{the“aliases“includedŽ¡‘Gin–¦fthe“standard“units“data“ le“areަ‘.ùœâ!unitlist‘>þhms‘¾Rhr;min;secŽ¡‘.ùœ!unitlist‘>þtime‘þ¨year;day;hr;min;secŽ¡‘.ùœ!unitlist‘>þdms‘¾Rdeg;arcmin;arcsecŽ¡‘.ùœ!unitlist‘>þftin‘þ¨ft;in;1|8‘¿ªinŽ¡‘.ùœ!unitlist–>þusvol“cup;3|4–¿ªcup;2|3“cup;1|2“cup;1|3“cup;1|4“cup;\Ž¡’¡òätbsp;tsp;1|2–¿ªtsp;1|4“tsp;1|8“tspŽŽŸU§ï‘GáUnit–šTlist›šSaliases“are“only˜for“unit˜lists,‘œ¾so“the˜de nition“m²!ust“include˜a“`â;á'.‘Ù×Unit˜list“aliasesŽ¡‘Gcan–Þnevš²!er‘ßbMÞe“com˜bined›ßwith“units˜or“other“unit˜list“aliases,‘9úso“the˜de nition“of˜`âtimeá'“sho²!wnŽ¡‘GabšMÞo•²!v“e–¦fcould“änot‘°Páha•²!v“e–¦fb˜een“shortened“to“`âyear;day;hmsá'.ަ‘!GAs–busual,‘5–bMÞe“sure“to›arun“âunits‘¦f--checkŽ‘NÕ"áto“ensure“that“the“units“listed˜in“unit“list“aliasesŽ¡‘Gare‘¦fconformable.ŽŸ(éz‘GëT11‘ ¸QNumeric–z³Output“F‘þaGormatŽŽŸ&‘j‘GáBy–Sbdefault,‘~ âunits“áshoš²!ws“results“to‘Saeigh˜t“signi can˜t“digits.‘äÐY‘ÿeou“can“c˜hange‘Sathis“with“theŽ¡‘Gâ--exponentialá,‘žqâ--digitsá,‘žrand›lÕâ--output-format–lÖáoptions.‘1,The“ rst“sets˜an“expMÞonen²!tialŽ¡‘Gformat– ½(i.e.,‘g‘scienš²!ti c“notation)‘ ¼lik˜e“that› ¼used“in˜the“original˜Unix“âunits˜áprogram,‘g’theŽ¡‘Gsecond›Šallo•²!ws‘‰y“ou˜to‘‰spMÞecify˜a˜di eren“t‘‰n“um“bMÞer˜of‘‰signi can“t˜digits,‘ ’and˜the‘‰last˜allo“wsŽ¡‘Gy•²!ou› ,to‘ +con“trol˜the˜output– +appMÞearance˜using˜the“format˜for˜the“âprintf()˜áfunction˜in“the˜CŽ¡‘Gprogramming–…ålanguage.‘}²If“yš²!ou“only‘…æw˜an˜t“to“c˜hange“the“n˜um˜bMÞer“of“signi can˜t“digits“or“spMÞecifyŽ¡‘GexpMÞonenš²!tial–Eûformat“t˜ypMÞe,‘mßuse“the“â--digits‘Eúáand“â--exponential“áoptions.‘¼›The“â--output-Ž¡‘Gformat–÷áoption“a ords“the‘÷€greatest“con²!trol“of“the“output“appMÞearance,‘ Æbut“requires“at“leastŽ¡‘Grudimen•²!tary› kno“wledge˜of˜the˜âprintf()˜áformat˜syn“tax.‘oŠSee˜Chapter˜9˜[In“v“oking˜Units],Ž¡‘Gpage–¦f20,“for“descriptions“of“these“options.ŽŽŒ‹ »ÜŸò‘GáUnits‘¦fCon•²!v“ersion’Td32ŽŽŽ ƒ33 ý ÌÍ‘Gë]11.1‘™F‘þ¦format‘f@Sps3eci cationŽŽŸ33‘GáThe–Üformat“spMÞeci cation“recognized“with“the‘Ýâ--output-format“áoption“is“a“subset“of“thatޤ 33‘Gfor–,Ââprintf()á.‘µQThe“format“spMÞeci cation“has“the“form“â%á[ä ags‘æá][äwidth›× á][â.äpr–ÿp¹e“cision˜á]ätyp“e‘Ò¡á;‘UNit‘,Âm²!ustŽ¡‘GbšMÞegin–)Áwith“`â%á',‘J—and“m²!ust‘)Àend“with“a“ oating-p˜oinš²!t“t˜yp•MÞe›)Àsp“eci er:‘ä“`âgá'–)Áor“`âGá'˜to“spMÞecify“theŽ¡‘Gn•²!um“bMÞer›Oñof‘Oðsigni can“t˜digits,‘a;`âeá'–Oðor˜`âEá'“for˜scien²!ti c˜notation,‘a;and“`âfá'˜for“ xed-pMÞoin²!t˜decimal.Ž¡‘GThe–¢ýISO‘¢üC99“standard“added“the“`âFá'“t²!ypšMÞe“for“ xed-p˜oinš²!t“decimal“and“the“`âaá'“and“`âAá'“t˜ypMÞesŽ¡‘Gfor–ó¢hexadecimal“ oating“pMÞoinš²!t;‘@these“t˜ypMÞes“are“allo˜w˜ed“with“compilers“that“suppMÞort“them.Ž¡‘GT²!yp•MÞe›!length‘"mo“di ers˜(e.g.,‘j`âLá'˜to–"indicate˜a“long˜double)˜are“inapplicable˜and“are˜notŽ¡‘Gallo•²!w“ed.Ž©¾-‘!GThe–ýQdefault›ýRformat“for˜âunits“áis˜`â%.8gá';‘¨Æfor˜greater“precision,‘Ó y²!ou˜could“spMÞecifyŽ¡‘G`â-o‘¿ª%.15gá'.‘$5The–h„`âgá'›hƒand“`âGá'˜format˜t²!ypMÞes“use˜expMÞonen²!tial“format˜whenev²!er“the˜expMÞonen²!tŽ¡‘Gw²!ould–ÃJbMÞe›ÃKless“than˜êá4,‘ʃso˜the“v‘ÿdDalue˜0.000013“displa²!ys˜as“`â1.3e-005á'.‘4‹These“t²!ypMÞes˜also“useŽ¡‘GexpšMÞonen²!tial–û¢notation‘û£when“the“exp˜onen²!t“is›û£greater“than“or˜equal“to“the“precision,‘òso“withŽ¡‘Gthe›ž,default–ž-format,‘ŸÑthe“v‘ÿdDalue˜5–^yê“á10Ÿü¾®7Ž‘ ádispla²!ys˜as–ž-`â50000000á'˜and“the˜v‘ÿdDalue“5–^yê“á10Ÿü¾®8Ž‘Ÿádispla²!ysŽ¡‘Gas–ÙH`â5e+008á'.‘v‚If“yš²!ou“prefer“ xed-pMÞoin˜t“displa˜y‘ÿe,‘æy˜ou“migh˜t‘ÙGspMÞecify“`â-o‘¿ª%.8fá';‘ò¹ho˜w˜ev˜er,‘æsmallŽ¡‘Gn•²!um“bMÞers›Þwill‘ßdispla“y˜v“ery˜few‘ßsigni can“t˜digits,‘/þ198.838782ަ‘\öì/‘¾R0.005029ŽŽ¡‘.ùœYou–¿ªhave:“kmަ‘.ùœYou–¿ªwant:“furlongަ‘\öì*‘¾R4.970970ަ‘\öì/‘¾R0.201168ŽŽŸDÏ\‘Gë]11.4‘™PrecisionŽŽŸ33‘GáThe–g%meaning›g$of“\precision"˜depMÞends“on˜the“format˜t²!ypMÞe.‘ With˜`âgá'“or˜`âGá',‘—Tit˜spMÞeci es“theަ‘Gn•²!um“bMÞer–Ô§of“signi canš²!t‘Ô¨digits“(lik˜e“the“â--digits“áoption);‘ëÈwith“`âeá',–à7`âEá',›à8`âfá',“or–Ô§`âFá',˜it“spMÞeci esަ‘Gthe–¦fmaximš²!um“n˜um˜bšMÞer“of“digits“to“b˜e“sho²!wn“after“the“decimal“p˜oin²!t.ޤW ‘!GWith–/ñthe›/ò`âgá'“and“`âGá'˜format“t²!ypMÞes,›’Ttrailing“zeros“are“suppressed,˜so“the‘/òresults“ma²!yަ‘Gsometimes›Yha•²!v“e˜few“er˜digits˜than‘Zthe˜sp•MÞeci ed˜precision˜(as˜indicated˜ab“o•²!v“e,‘Çthe˜`â#á'˜ agަ‘Gcauses–¦ftrailing“zeros“to“bMÞe“displa•²!y“ed).Ž¡‘!GThe–‘\default“precision›‘]is“6,‘•‘so“`â%gá'“is˜equiv‘ÿdDalenš²!t“to“`â%.6gá',‘•‘and“w˜ould“sho˜w‘‘]the“output“toަ‘Gsix›ž"signi can²!t–ž!digits.‘ÛSimilarly‘ÿe,‘ŸÉ`â%eá'“or˜`â%fá'“w•²!ould˜sho“w–ž!the˜output˜with“six˜digits“after˜theަ‘Gdecimal‘¦fpMÞoin²!t.ŽŽŒ‹"ÚcŸò‘GáUnits‘¦fCon•²!v“ersion’Td34ŽŽŽ ƒ33 ý ÌÍ‘!GThe–è2C‘è!âprintf()›è3áfunction“allo²!ws“a“precision“of˜arbitrary“size,‘ø¥whether“or“not˜all“of“theޤ 33‘Gdigits–D{are“meaningful.‘¸With“most‘Dzcompilers,‘lthe“maximš²!um“in˜ternal“precision“with“âunitsŽ¡‘Gáis–ŒP15“decimal“digits“(or“13“hexadecimal“digits).‘Õ+With“the“â--digits“áoption,‘‘ˆy²!ou“are“limitedŽ¡‘Gto–øÛthe‘øÜmaximš²!um“in˜ternal“precision;‘"with‘øÜthe“â--output-format“áoption,‘ yy˜ou“ma˜y‘øÜspMÞecify“aŽ¡‘Gprecision–žgreater“than“this,‘ "but“it“ma²!y“not“bšMÞe“meaningful.‘Û@In‘ž‘some“cases,‘ !sp˜ecifying“excessŽ¡‘Gprecision–a'can“result“in‘a&rounding“artifacts.‘ÆÈF‘ÿeor“example,›oa“pMÞound“is“exactly“7000“grains,˜butŽ¡‘Gwith–¦fthe“format“`â%.18gá',“the“output“migh²!t“bMÞeŽ©>”‘.ùœâYou–¿ªhave:“poundŽ¡‘.ùœYou–¿ªwant:“grainŽ¡‘\öì*‘¿ª6999.9999999999991Ž¡‘\öì/‘¿ª0.00014285714285714287ŽŸ>•‘GáWith–¦fthe“format“`â%.25gá'“yš²!ou“migh˜t“get“the“follo˜wing:ަ‘.ùœâYou–¿ªhave:“1/3Ž¡‘.ùœYou‘¿ªwant:Ž¡‘\öìDefinition:‘¿ª0.333333333333333314829616256247ަ‘GáIn–{çthis“case“the›{ædispla•²!y“ed–{çv‘ÿdDalue“includes“a“series“of“digits“that˜represen²!t“the“underlying“binaryŽ¡‘G oating-pMÞoin•²!t›s¬appro“ximation˜to˜1/3˜but˜are‘s«not˜meaningful˜for˜the˜desired˜computation.Ž¡‘GIn–œgeneral,‘ž-the“result“with‘œ excess“precision“is“system“depMÞenden²!t.‘ÚpThe“precision“a ects“onlyŽ¡‘Gthe–9„ädisplay‘1†áof“n•²!um“bMÞers;‘ƒif–9…a›9„result“relies˜on“ph•²!ysical˜constan“ts–9…that˜are“not˜kno²!wn“to˜theŽ¡‘GspšMÞeci ed–precision,‘6òthe“n•²!um“b˜er–of“phš²!ysically“meaningful‘digits“ma˜y“bMÞe“less“than“the“n˜um˜bMÞerŽ¡‘Gof–¦fdigits“sho²!wn.ަ‘!GSee–’Öthe“doMÞcumen²!tation“for›’×âprintf()“áfor“more“detailed“descriptions“of˜the“format“spMÞeci-Ž¡‘G cation.ŽŸ>•‘!GThe–65â--output-format›64áoption“is˜incompatible“with“the˜â--exponential“áor˜â--digits“áop-Ž¡‘Gtions;‘Pyif–%‚the“former“is“givš²!en“in“com˜bination“with“either“of‘%ƒthe“latter,‘?Ithe“format“is“con˜trolledŽ¡‘Gbš²!y–¦fthe“last“option“giv˜en.ŽŸ"‘GëT12‘ ¸QLo‘Š=calizationŽŽŸUW‘GáSome–øsunits“ha•²!v“e›øsdi eren“t‘øtv‘ÿdDalues˜in˜di eren“t˜lo•MÞcations.‘ÔThe˜lo“calization˜feature˜accommo-Ž¡‘Gdates– this“b•²!y› allo“wing– a“units“data“ le˜to“spšMÞecify“de nitions“that“dep˜end‘ on“the“user'sŽ¡‘GloMÞcale.ŽŸ‘Gë]12.1‘™Los3caleŽŽŸ33‘GáA‘ñloMÞcale–ûis“a“subset“of“a“user's“en•²!vironmen“t–ûthat‘úindicates“the“user's“language“and“coun²!try‘ÿe,Ž¡‘Gand–H÷some“attendanš²!t“preferences,‘±›suc˜h“as“the“formatting“of‘Hødates.‘ ÅThe“âunits“áprogramŽ¡‘Gattempts–^to“determine“the“lošMÞcale‘]from“the“POSIX‘þen_USŽ¡‘GáY‘ÿeou–¦fcan“force“âunits“áto“run“in“a“desired“loMÞcale“b²!y“using“the“â-l“áoption.Ž¡‘!GIn–y&order›y'to“create˜unit“de nitions˜for“a˜particular“loMÞcale˜y²!ou“bMÞegin˜a“bloMÞc²!k˜of“de nitionsަ‘Gin–a›ÿunit“data le˜with“`â!localeá'“follo•²!w“ed˜b“y–a“loMÞcale˜name.‘ 8ªThe“`â!á'˜m²!ust“bMÞe˜the“ rstަ‘Gcš²!haracter–1™on“the“line.‘¶îThe‘1˜âunits“áprogram“reads“the“follo˜wing“de nitions‘1˜only“if“the“curren˜tަ‘GlošMÞcale–Úímatc²!hes.‘š Y‘ÿeou‘Úîend“the“blo˜c²!k“of“lo˜calized›Úîunits“with“`â!endlocaleá'.‘š Here˜is“an“example,ަ‘Gwhic²!h–¦fde nes“the“British“gallon.Ž¡‘.ùœâ!locale‘¿ªen_GBަ‘.ùœgallon‘(=¦4.54609‘¿ªliterަ‘.ùœ!endlocaleŽŽŸ:m¸‘Gë]12.2‘™Additional‘f@Los3calizationŽŽŸ33‘GáSometimes–c¾the›c¿loMÞcale“isn't˜sucien²!t“to˜determine“unit“preferences.‘ǦThere“could˜bMÞe“regionalަ‘Gpreferences,‘¯Åor–z²a“companš²!y“could“ha˜v˜e“spMÞeci c“preferences.‘ZÂThough“probably“uncommon,ަ‘Gsuc²!h–Ú€di erences›Úcould“arise˜with“the“c²!hoice˜of“English“customary˜units“outside˜of“English-ަ‘GspMÞeaking–ÙÀcounš²!tries.‘wëT‘ÿeo“address“this,‘&—âunits“áallo˜ws“spšMÞecifying“de nitions“that“dep˜end“onަ‘Gen•²!vironmen“t–s×v‘ÿdDariable›sÖsettings.‘F/The“en•²!vironmen“t˜v‘ÿdDariables–s×can“bMÞe˜con²!troled“based˜on“theަ‘Gcurren²!t–¦floMÞcale,“or“the“user“can“set“them“to“force“a“particular“group“of“de nitions.Ž¡‘!GA‘ç¨conditional–è1252“in›>the“US‘=ìand“W–ÿeestern˜EuropMÞe).‘¤äY“ou˜can–>ev²!en“use“UTF-8,‘cýthough“some“mes-Ž¡‘Gsages–æMma²!y“b•MÞe›æLimprop“erly–æMaligned,‘ ¸and“âunits“áwill˜not“detect“in²!v‘ÿdDalid“UTF-8˜sequences.‘ÕIf“y²!ouŽ¡‘Guse–ÕgUTF-8›ÕhencoMÞding“when˜UnicošMÞde“supp˜ort›Õhis“not˜activ•²!e,‘á'y“ou˜should‘Õgplace˜an“y‘Õgde nitionsŽ¡‘Gwith–¥•non-ASCIšMÞI“c²!haracters–¥–äoutside‘x6á`â!utf8á'‘Oy.–§‘.“.Ž‘·ù`â!endutf8á'“blo˜c²!ks|otherwise,‘¥¿they–¥•will“b˜eŽ¡‘Gignored.Ž©‚‘!GT²!ypšMÞeset–l}material“other‘l~than“co˜de“examples“usually“uses“the‘l~Unico˜de“min²!us“(Uâ+á2212)Ž¡‘Grather–£Zthan‘£Ythe“ASCIšMÞI‘£h•²!yphen-min“us‘£Zop˜erator–£Y(Uâ+á002D)‘£used“in›£Zâunitsá;‘!Óthe“ gure˜dashŽ¡‘G(Uâ+á2012)–1•and“en“dash“(Uâ+á2013)›1”are“also“oMÞccasionally“used.‘jT‘ÿeo“allo•²!w˜suc“h–1•material“to“bMÞeŽ¡‘Gcopied–ŠÀand“pasted“for“in•²!teractiv“e‘Š¿use–ŠÀor“in“units“data“ les,‘Gâunits“ácon•²!v“erts–ŠÀthese“c²!haractersŽ¡‘Gto–´±Uâ+á002D‘´­bšMÞefore“further“pro˜cessing.‘½Because“of“this,‘¸Cnone“of“these‘´°c²!haracters“can“app˜earŽ¡‘Gin–¦funit“names.ŽŸ!ØŸ‘GëT16‘ ¸QReadline‘z³Supp‘Š=ortŽŽŸÐÀ‘GáIf–`Wthe“âreadline›`Vápac²!k‘ÿdDage“has“bMÞeen“compiled“in,‘ÎÒthen“when“âunits˜áis“used“in•²!teractiv“ely‘ÿe,Ž¡‘Gn²!umerous–B"command›B!line“editing“features“are˜a•²!v‘ÿdDailable.‘±T‘ÿeo˜c“hec“k–B"if“yš²!our“v˜ersion‘B!of“âunitsŽ¡‘Gáincludes–¦fâreadlineá,“in•²!v“ok“e–¦fthe“program“with“the“â--version“áoption.ަ‘!GF‘ÿeor–F'complete›F(information“abMÞout“âreadlineá,‘Ygconsult˜the“doMÞcumen²!tation“for˜the“âreadlineŽ¡‘Gápac•²!k‘ÿdDage.‘‚Without›·òan“y‘·ócon guration,‘üUâunits˜áwill˜allo“w˜editing‘·óin˜the˜st“yle‘·óof˜emacs.‘‚OfŽ¡‘Gparticular–¦fuse“with“âunits“áare“the“completion“commands.ŽŸƒ‘!GIf–7yš²!ou“t˜ypMÞe“a“few“c˜haracters“and“then“hit‘7âESC“áfollo˜w˜ed“b˜y“è?“áthen“âunits“áwill“displa˜y“aŽ¡‘Glist–ZŸof“all“the›Zžunits“that“start“with“the“c•²!haracters˜t“ypMÞed.‘Ä›F‘ÿeor‘ZŸexample,‘iÇif˜y“ou›ZŸt“ypMÞe˜èmetr˜áandŽ¡‘Gthen–¦frequest“completion,“yš²!ou“will“see“something“lik˜e“this:ަ‘.ùœâYou–¿ªhave:“metrŽ¡‘.ùœmetre‘J»¢metriccup‘3¼úmetrichorsepower‘ TmetrictenthŽ¡‘.ùœmetretes‘9|¤metricfifth–(=¦metricounce“metrictonŽ¡‘.ùœmetriccarat–(=¦metricgrain“metricquart“metricyarncountŽ¡‘.ùœYou–¿ªhave:“metrŽŽŸDìO‘GáIf–S¯there“is“a“unique“w•²!a“y›S°to–S¯complete“a“unitname,‘¿y²!ou“can˜hit“the“âTAB“ák²!ey“and“âunitsŽ¡‘Gáwill–l›pro²!vide›lšthe“rest“of˜the“unit˜name.‘0{If“âunits“ábMÞeeps,‘ž'it“means˜that“there“is˜no“uniqueŽ¡‘Gcompletion.‘ÝÝPressing–¦fthe“âTAB“ákš²!ey“a“second“time“will“prin˜t“the“list“of“all“completions.ަ‘!GThe–jreadline“library“also›jk²!eeps“a“history“of“the“v‘ÿdDalues˜yš²!ou“en˜ter.‘ɼY‘ÿeou“can“mo˜v˜e“throughŽ¡‘Gthis–@history›?using“the˜up“and“do•²!wn˜arro“ws.‘¯&The˜history–@is“sa•²!v“ed˜to–@the˜ le“â.units_historyŽ¡‘Gáin–:Õyš²!our“home“directory‘:Öso“that“it“will“pMÞersist“across“m˜ultiple“âunits‘:Öáin˜v˜oMÞcations.‘ºIf“y˜ou“wishŽ¡‘Gto›èk•²!eep‘éw“ork˜for–éa˜certain“pro‘›»ject˜separate“y²!ou˜can“c²!hange˜the“history˜ lename“using˜theŽ¡‘Gâ--history–!ðáoption.‘P|Y‘ÿeou“could,‘@Òfor“example,‘@Ómak²!e“an“alias‘!ñfor“âunits“áto“âunits‘¦f--historyŽ¡‘G.units_history–¦áso“that‘¥âunits“áwš²!ould“sa˜v˜e“separate“history‘¥in“the“curren˜t“directory‘ÿe.‘œTheŽ¡‘Glength–’]of“eac²!h›’\history“ le“is“limited“to˜5000“lines.‘ÚNote“also“that“if“y²!ou˜run“sevš²!eral“concurren˜tŽ¡‘Gcopies–¦fof“âunits“áeacš²!h“one“will“sa˜v˜e“its“new“history“to“the“history“ le“upMÞon“exit.ŽŽŒ‹(,Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td40ŽŽŽ ƒ33 ý ÌÍ‘GëT17‘ ¸QUp‘Š=dating–z³Currency“Exc‘ÿuÂhange“RatesŽŽ©c4‘GáThe–žçunits›žèprogram“includes“currency“exc²!hange˜rates“and“prices“for˜some“preciousޤ 33‘Gmetals–¥Èin“the‘¥Édatabase.‘ ÜOf“course,‘e these“v‘ÿdDalues“cš²!hange“o˜v˜er“time,‘e sometimes“v˜eryŽ¡‘Grapidly›ÿe,‘4ãand–~Ëâunits“ácannot“pro²!vide“real“time“v‘ÿdDalues.‘ g T˜o“upMÞdate“the“exc²!hange“ratesŽ¡‘Grun–¬Uthe›¬Tâunits_curá,‘mÏwhic²!h“rewrites“the˜ les“con²!taining“the˜currency“rates,‘mÏt²!ypicallyŽ¡‘Gâ/usr/share/units/currency.unitsá.‘ ±AThis‘B3program–B2requires“âpythoná,‘©%and“m²!ust“bMÞe“runŽ¡‘Gwith–E³suitable“pMÞermissions“to›E²write“the“ le.‘»ÄT‘ÿeo“k²!eep“the˜rates“upMÞdated“automatically‘ÿe,‘m†runŽ¡‘Git–aFusing›aEa“cron“job“on˜a“Unix-lik²!e“system,‘ýor“a˜similar“sc²!heduling“program“on˜a“di eren²!tŽ¡‘Gsystem.‘*ÁCurrency–Àexcš²!hange‘Àrates“are“tak˜en“from‘ÀY‘ÿeahoMÞo“(âhttp:–æ©/“/“finance“.“yahoo“.“comá)Ž¡‘Gand–h precious“metals“pricing“from“P•²!ac“k“etizer›h (âwww–ž™.“packetizer“.“comá).‘"ÌThese˜sites˜upMÞdateŽ¡‘Gonce–°VpšMÞer“da²!y‘ÿe,‘òÒso“there‘°Wis“no“b˜ene t“in‘°Wrunning“the“up˜date“script“more‘°Woften“than“daily‘ÿe.Ž¡‘GY‘ÿeou–v‘can“run“âunits_cur›váwith“a“ lename“spMÞeci ed“on“the“command“line˜and“it“will“writeŽ¡‘Gthe–¦fdata“to“that“ le.‘ÝÝIf“yš²!ou“giv˜e“`â-á'“for“the“ le“it“will“write“to“standard“output.ŽŸ!¬Í‘GëT18‘ ¸QDatabase–z³Command“Syn‘ÿuÂtaxŽŽ¦‘Gèunit‘¿ªdefinitionŽ¡‘Kâ:áDe ne–¦fa“regular“unit.ŽŸà‘Gèprefixâ-‘¿ªèdefinitionŽ¡‘Kâ:áDe ne–¦fa“pre x.Ž©à‘Gèfuncnameâ(èvarâ)–¿ªnoerror“units=[èin-unitsâ,èout-unitsâ]“domain=[èx1â,èx2â]Ž¡‘Grange=[èy1â,èy2â]–¿ªèdefinition(var)“â;“èinverse(funcname)Ž¡‘Kâ:áDe ne–±a›²nonlinear“unit˜or“unit˜function.‘Ö The˜four“optional˜k•²!eyw“ords‘±ânoerrorá,Ž¡‘Kâ:âunits=á,‘Ïârange=–Uíáand“âdomain=“ácan“appMÞear“in“an²!y“order.‘ìsThe“de nition“of“theŽ¡‘Kâ:in•²!v“erse–¦fis“optional.ަ‘Gètabnameâ[èout-unitsâ]–¿ªnoerror“èpair-listŽ¡‘Kâ:áDe ne–ˆ#a“piecewise“linear“unit.‘ÓÇThe“pair“list“givš²!es“the“pMÞoin˜ts“on“the“table“listedŽ¡‘Kâ:in–¦fascending“order.‘ÝÝThe“ânoerror“ák•²!eyw“ord–¦fis“optional.ަ‘Gâ!endlocaleŽ¡‘Kâ:áEnd–¦fa“blošMÞc²!k“of“de nitions“b˜eginning“with“`â!localeá'ŽŸà‘Gâ!endutf8‘ Ó£áEnd–¦fa“blošMÞc²!k“of“de nitions“b˜egun“with“`â!utf8á'ަ‘Gâ!endvar‘“MáEnd–¦fa“blošMÞc²!k“of“de nitions“b˜egun“with“`â!vará'“or“`â!varnotá'ަ‘Gâ!include‘¿ªèfileŽ¡‘Kâ:áInclude–¦fthe“spMÞeci ed“ le.ަ‘Gâ!locale‘¿ªèvalueŽ¡‘Kâ:áLoad–¦fthe“follo²!wing“de nitions“only“of“the“loMÞcale“is“set“to“åv‘ÿdDalueá.ŽŸà‘Gâ!message‘¿ªètextŽ¡‘Kâ:áDispla²!y–wJåtext‘´Jáwhen“the›wKdatabase“is“read“unless“the“quiet˜option“(â-qá)“is“enabled.ަ‘Gâ!set–¿ªèvariable“valueŽ¡‘Kâ:áSets–êVthe“en•²!vironmen“t‘êWv–ÿdDariable,›ûRåv“ariableá,˜to–êVthe“spMÞeci ed“v‘ÿdDalue‘êWäonly‘)jif‘doMÞcumen“tation:‘³a˜free˜program˜should‘>come˜with˜man“ualsŽ¡‘'¿«pro²!viding–urthe›ussame“freedoms˜that“the˜soft•²!w“are–urdoMÞes.‘ÍŒBut˜this“License˜is“not˜limited“toŽ¡‘'¿«soft•²!w“are›­âman“uals;‘±¡it–­ãcan˜bMÞe“used˜for“an²!y˜textual“w²!ork,‘¯Áregardless“of˜sub‘›»ject“matter˜orŽ¡‘'¿«whether–Ç2it“is“published“as“a“prin²!ted“b•MÞo“ok.‘@BW‘ÿee–Ç2recommend“this“License“principally“forŽ¡‘'¿«w²!orks–¦fwhose“purpMÞose“is“instruction“or“reference.ŽŸå ‘-1.Ž‘'¿«APPLICABILITY–¦fAND“DEFINITIONSަ‘'¿«This–Ì>License‘Ì=applies“to“anš²!y“man˜ual‘Ì=or“other“w˜ork,‘³in“an˜y–Ì=medium,‘´that“con˜tains‘Ì>aŽ¡‘'¿«notice–ýplaced›ýb²!y“the˜cop•²!yrigh“t‘ýholder˜sa“ying–ýit˜can“bMÞe˜distributed“under˜the“termsŽ¡‘'¿«of–€†this“License.‘l=Sucš²!h“a“notice“gran˜ts“a“w˜orld-wide,‘· ro˜y˜alt˜y-free“license,‘·unlimited“inŽ¡‘'¿«duration,‘â to–o·use›o¶that“w²!ork“under˜the“conditions“stated˜herein.‘ 9ÏThe“\DoMÞcumen²!t",Ž¡‘'¿«bMÞeloš²!w,‘tkrefers–gìto“an˜y“suc˜h‘gíman˜ual“or“w˜ork.‘É An˜y“mem˜bMÞer“of“the‘gípublic“is“a“licensee,‘tkandŽ¡‘'¿«is–ÿaddressed“as“\yš²!ou".‘¦@Y‘ÿeou“accept“the“license“if“y˜ou“cop˜y‘ÿe,‘ îmoMÞdify“or“distribute“the“w˜orkŽ¡‘'¿«in–¦fa“w•²!a“y–¦frequiring“pMÞermission“under“cop•²!yrigh“t‘¦fla“w.ŽŽŒ‹*I Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td42ŽŽŽ ƒ33 ý ÌÍ‘'¿«A‘ ¦\MošMÞdi ed– ÀV‘ÿeersion"‘ Áof“the“Do˜cumenš²!t“means‘ Áan˜y“w˜ork“con˜taining“the‘ ÁDoMÞcumen˜t“orޤ 33‘'¿«a–‚hpMÞortion›‚gof“it,‘¹heither˜copied“v²!erbatim,‘¹hor˜with“moMÞdi cations“and/or˜translated“in²!toŽ¡‘'¿«another‘¦flanguage.Ž©ø±‘'¿«A‘ž\Secondary–ÀSection"“is›Áa“named˜appMÞendix“or˜a“fron²!t-matter˜section“of˜the“DoMÞcumen²!tŽ¡‘'¿«that–Ž/deals“exclusiv²!ely›Ž0with“the“relationship“of˜the“publishers“or“authors˜of“the“DoMÞcumen²!tŽ¡‘'¿«to–z the‘zDoMÞcumenš²!t's“o˜v˜erall›zsub‘›»ject“(or˜to“related“matters)˜and“con²!tains˜nothing“thatŽ¡‘'¿«could–Ø®fall›دdirectly“within“that“o•²!v“erall˜sub‘›»ject.‘tµ(Th“us,‘%@if˜the›Ø®DoMÞcumen“t˜is˜in‘دpart˜aŽ¡‘'¿«textb•MÞo“ok›Õ†of–Õ…mathematics,‘ÿMa“Secondary˜Section˜ma²!y˜not“explain˜an²!y˜mathematics.)‘˜=TheŽ¡‘'¿«relationship–GÞcould“bMÞe“a“matter“of“historical“connection“with“the“sub‘›»ject“or“with“relatedŽ¡‘'¿«matters,–jor‘Bøof›B÷legal,“commercial,‘jphilosophical,“ethical˜or˜p•MÞolitical‘Bøp“osition˜regardingŽ¡‘'¿«them.ŽŸø°‘'¿«The›r\In•²!v‘ÿdDarian“t–sSections"˜are˜certain˜Secondary“Sections˜whose˜titles˜are“designated,‘0ÖasŽ¡‘'¿«bMÞeing–2Dthose›2Cof“In•²!v‘ÿdDarian“t–2DSections,‘I}in“the“notice˜that“sa²!ys˜that“the“DoMÞcumen²!t˜is“releasedŽ¡‘'¿«under–S5this“License.‘Â"If›S4a“section“doMÞes“not“ t˜the“abMÞo•²!v“e–S5de nition“of“Secondary˜then“it“isŽ¡‘'¿«not›Óallo•²!w“ed˜to‘ÓŽbMÞe˜designated˜as˜In“v‘ÿdDarian“t.‘eSThe˜DoMÞcumen“t˜ma“y‘ÓŽcon“tain˜zero˜In“v‘ÿdDarian“tŽ¡‘'¿«Sections.‘¢ÄIf–õthe“DošMÞcumen²!t“do˜es‘õnot“idenš²!tify“an˜y“In˜v‘ÿdDarian˜t“Sections“then‘õthere“are“none.ަ‘'¿«The›f­\Co•²!v“er–f¬T‘ÿeexts"˜are˜certain˜short“passages˜of˜text˜that“are˜listed,‘–¾as˜F‘ÿeron•²!t-Co“v“erŽ¡‘'¿«T›ÿeexts–-or“Bac•²!k-Co“v“er‘,T˜exts,‘"8in–-the“notice“that‘,saš²!ys“that“the“DoMÞcumen˜t‘,is“released“underŽ¡‘'¿«this›’License.‘¯AA‘nF‘ÿeron•²!t-Co“v“er˜T‘ÿeext˜ma“y˜bMÞe˜at˜most˜5›‘w“ords,‘6Šand˜a›’Bac“k-Co“v“er˜T‘ÿeext˜ma“yŽ¡‘'¿«bMÞe–¦fat“most“25“w²!ords.ŽŸø°‘'¿«A‘C¦\T‘ÿeransparen•²!t"›CÎcop“y˜of‘CÏthe˜DoMÞcumen“t˜means˜a‘CÏmac“hine-readable˜cop“y‘ÿe,‘k(represen“tedŽ¡‘'¿«in–Jma“format›Jnwhose“spMÞeci cation“is“a²!v‘ÿdDailable“to“the˜general“public,‘snthat˜is“suitable“forŽ¡‘'¿«revising–Îàthe‘ÎßdoMÞcumenš²!t“straigh˜tforw˜ardly“with›Îßgeneric“text˜editors“or“(for˜images“com-Ž¡‘'¿«pMÞosed–ÚÃof›ÚÄpixels)“generic˜pain²!t“programs˜or“(for˜dra²!wings)“some˜widely“a•²!v‘ÿdDailable˜dra“wingŽ¡‘'¿«editor,‘…úand–}ßthat“is“suitable“for“input“to‘}àtext“formatters“or“for“automatic“translation“toŽ¡‘'¿«a–9Ov‘ÿdDariet²!y“of›9Nformats“suitable“for“input“to“text˜formatters.‘¹A‘93cop²!y“made˜in“an“otherwiseŽ¡‘'¿«T‘ÿeransparen²!t–„æ le“format›„åwhose“markup,‘¼†or“absence˜of“markup,‘¼†has˜bMÞeen“arranged“toŽ¡‘'¿«th•²!w“art–0ûor›0üdiscourage“subsequen²!t“moMÞdi cation˜b²!y“readers“is˜not“T‘ÿeransparen²!t.‘¶ºAn“imageŽ¡‘'¿«format– Éis“not“T‘ÿeransparenš²!t“if“used‘ Èfor“an˜y“substan˜tial“amoun˜t“of“text.‘MA‘ ©cop˜y“that“isŽ¡‘'¿«not–¦f\T‘ÿeransparen²!t"“is“called“\Opaque".ަ‘'¿«Examples–ÚZof›ÚYsuitable“formats˜for“T‘ÿeransparen²!t“copies˜include“plain˜ASCIMÞI‘ÙÉwithoutŽ¡‘'¿«markup,› kT‘ÿeexinfo–õinput“format,˜LaT‘þ,³Ÿ[wEŽ‘B X“input“format,˜SGML›õ‰or“XML˜using“a“publiclyŽ¡‘'¿«aš²!v‘ÿdDailable– íDTD,“and“standard-conforming“simple“HTML,“P˜ostScript“or“PDF‘ ÓdesignedŽ¡‘'¿«for–EÑhš²!uman“moMÞdi cation.‘¼Examples‘EÒof“transparen˜t“image“formats“include“PNG,“X˜CFŽ¡‘'¿«and–½ÜJPG.›½ÝOpaque“formats“include“proprietary˜formats“that“can“bMÞe˜read“and“editedŽ¡‘'¿«only–õbš²!y‘õ‘proprietary“w˜ord“proMÞcessors,‘ [SGML›õ|or“XML˜for“whic²!h‘õ‘the“DTD˜and/or“pro-Ž¡‘'¿«cessing–ltoMÞols›mare“not˜generally“a²!v‘ÿdDailable,‘(and˜the“mac²!hine-generated˜HTML,“P²!ostScriptŽ¡‘'¿«or–¦fPDF“proMÞduced“bš²!y“some“w˜ord“prošMÞcessors“for“output“purp˜oses“only‘ÿe.ŽŸø°‘'¿«The–Ü\Title›ÛP²!age"“means,‘<ùfor˜a“prin²!ted˜b•MÞo“ok,‘<ùthe–Ütitle˜page“itself,‘<ùplus˜sucš²!h“follo˜wingŽ¡‘'¿«pages–RÃas“are“needed“to“hold,–c}legibly‘ÿe,“the–RÃmaterial“this‘RÂLicense“requires“to“appMÞear“in“theŽ¡‘'¿«title–1.page.‘¶ÊF‘ÿeor“w²!orks›1-in“formats˜whic²!h“do“not˜ha•²!v“e‘1.an“y˜title–1.page“as˜sucš²!h,‘HŸ\Title“P˜age"Ž¡‘'¿«means–­Žthe“text“near›­the“most“prominen²!t“appMÞearance“of“the˜w²!ork's“title,‘¯Xpreceding“theŽ¡‘'¿«bšMÞeginning–¦fof“the“b˜o˜dy“of“the“text.ަ‘'¿«The–)—\publisher"“means‘)˜anš²!y“pMÞerson“or“en˜tit˜y“that“distributes‘)˜copies“of“the“DoMÞcumen˜tŽ¡‘'¿«to–¦fthe“public.ŽŽŒ‹+X›Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td43ŽŽŽ ƒ33 ý ÌÍ‘'¿«A›ísection–ò\En²!titled“XYZ"˜means“a“named›ósubunit“of“the“DoMÞcumen²!t˜whose“title“eitherޤ 33‘'¿«is–Uªprecisely‘U©XYZ›U•or“con²!tains“XYZ˜in“paren•²!theses›U©follo“wing–Uªtext“that˜translates“XYZ‘U•inŽ¡‘'¿«another–þ¯language.‘¥ö(Here“XYZ‘þ„stands“for“a“spšMÞeci c“section“name“men²!tioned“b˜elo•²!w,‘ :suc“hŽ¡‘'¿«as›aa\Ac•²!kno“wledgemen“ts",–o/\Dedications",“\Endorsemen²!ts",“or˜\History".)‘ÆÛT‘ÿeo˜\Preserv²!eŽ¡‘'¿«the–›Title"›šof“suc²!h˜a“section“when˜y²!ou“moMÞdify˜the“DoMÞcumen²!t“means˜that“it˜remains“aŽ¡‘'¿«section–¦f\En²!titled“XYZ"“according“to“this“de nition.Ž©&g‘'¿«The–SuDoMÞcumenš²!t“ma˜y“include“W‘ÿearran˜t˜y“Disclaimers“next‘Svto“the“notice“whic˜h“states“thatŽ¡‘'¿«this–¹License“applies‘ºto“the“DoMÞcumenš²!t.‘×These“W‘ÿearran˜t˜y“Disclaimers‘ºare“considered“toŽ¡‘'¿«bMÞe–„ýincluded›„þb²!y“reference“in“this˜License,‘¼£but“only“as“regards˜disclaiming“w•²!arran“ties:Ž¡‘'¿«an²!y–nother›n‘implication“that˜these“W‘ÿearran•²!t“y˜Disclaimers‘nma“y˜ha“v“e‘nis˜v“oid–nand˜has“noŽ¡‘'¿«e ect–¦fon“the“meaning“of“this“License.ŽŸ&h‘-2.Ž‘'¿«VERBA‘ÿeTIM‘¦fCOPYINGަ‘'¿«Y‘ÿeou–’ùmaš²!y“cop˜y“and“distribute“the“DoMÞcumen˜t“in“an˜y“medium,‘Îeither“commercially“orŽ¡‘'¿«noncommercially‘ÿe,›zªpro²!vided–that‘this“License,˜the‘cop•²!yrigh“t–notices,˜and‘the“licenseŽ¡‘'¿«notice–Ksa²!ying›K this“License˜applies“to˜the“DoMÞcumen²!t“are˜reproMÞduced“in˜all“copies,‘t7andŽ¡‘'¿«that–1'yš²!ou“add“no‘1(other“conditions“whatsoMÞev˜er“to“those“of“this“License.‘¶ÉY‘ÿeou“ma˜y“not“useŽ¡‘'¿«tec²!hnical–ò“measures›ò”to“obstruct˜or“con²!trol˜the“reading˜or“further˜cop²!ying“of˜the“copiesŽ¡‘'¿«y•²!ou›òÇmak“e‘òÈor˜distribute.‘¡þHo“w“ev“er,‘´y“ou˜ma“y˜accept‘òÈcompMÞensation˜in˜exc“hange‘òÈfor˜copies.Ž¡‘'¿«If–Þy²!ou›Þdistribute“a“large˜enough“n•²!um“bMÞer˜of–Þcopies“y•²!ou˜m“ust–Þalso“follo²!w˜the“conditionsŽ¡‘'¿«in–¦fsection“3.ަ‘'¿«Y‘ÿeou–}ìma²!y“also›}ëlend“copies,‘¹7under“the“same“conditions“stated˜abMÞo•²!v“e,‘¹8and˜y“ou›}ìma“y˜publiclyŽ¡‘'¿«displa²!y‘¦fcopies.ަ‘-3.Ž‘'¿«COPYING–¦fIN“QUANTITYŽŸ&h‘'¿«If–Ãyš²!ou‘Âpublish“prin˜ted›Âcopies“(or˜copies˜in“media“that˜commonly“ha•²!v“e˜prin“ted˜co“v“ers)‘ÃofŽ¡‘'¿«the‘Ñ.DošMÞcumen•²!t,‘Ûßn“um“b˜ering–Ñ.more“than–Ñ-100,‘Ûàand“the–Ñ.Do˜cumen²!t's“license‘Ñ-notice“requiresŽ¡‘'¿«Co•²!v“er›ÜT‘ÿeexts,‘<ùy“ou‘Ûm“ust˜enclose˜the˜copies‘Ûin˜co“v“ers˜that˜carry–ÿe,‘<ùclearly‘Ûand˜legibly“,‘<ùallŽ¡‘'¿«these›´@Co•²!v“er˜T–ÿeexts:‘ùF“ron•²!t-Co“v“er˜T‘ÿeexts˜on˜the˜fron“t˜co“v“er,‘÷µand˜Bac“k-Co“v“er˜T‘ÿeexts˜onŽ¡‘'¿«the›öbac•²!k‘õco“v“er.‘Ñ Both˜co“v“ers˜m“ust–õalso˜clearly˜and˜legibly“iden•²!tify˜y“ou˜as‘õthe˜publisherŽ¡‘'¿«of›,these–+copies.‘H/The“fron•²!t˜co“v“er˜m“ust˜presen“t–+the˜full˜title“with˜all˜w²!ords˜of“the˜titleŽ¡‘'¿«equally–³xprominenš²!t“and‘³yvisible.‘Y‘ÿeou“ma˜y›³yadd“other“material“on“the˜co•²!v“ers–³xin“addition.Ž¡‘'¿«Cop•²!ying›Y4with‘Y3c“hanges˜limited–Y3to˜the“co•²!v“ers,‘…ças–Y3long˜as“they˜preserv²!e“the˜title“of˜theŽ¡‘'¿«DošMÞcumen²!t–uand“satisfy“these“conditions,‘¨Åcan“b˜e“treated‘uas“vš²!erbatim“cop˜ying“in“otherŽ¡‘'¿«respMÞects.ަ‘'¿«If–î|the“required›î}texts“for“either“co•²!v“er–î|are“toMÞo˜vš²!oluminous“to“ t“legibly‘ÿe,‘‚y˜ou“should“putŽ¡‘'¿«the–ò rst›òones“listed“(as“man²!y˜as“ t“reasonably)“on˜the“actual“co•²!v“er,‘ùand˜con“tin“ue‘òtheŽ¡‘'¿«rest–¦fonš²!to“adjacen˜t“pages.ަ‘'¿«If–?|y²!ou›?{publish“or˜distribute“Opaque˜copies“of˜the“DoMÞcumen•²!t˜n“um“bMÞering–?|more˜than“100,Ž¡‘'¿«y•²!ou›\3m“ust˜either‘\4include˜a˜mac“hine-readable˜T‘ÿeransparen“t˜cop“y˜along‘\4with˜eac“h˜OpaqueŽ¡‘'¿«cop²!y‘ÿe,‘[>or›7state–7in“or˜with“eacš²!h“Opaque“cop˜y‘7a“computer-net˜w˜ork“loMÞcation‘7from“whic˜hŽ¡‘'¿«the›éSgeneral‘éRnet•²!w“ork-using˜public˜has‘éRaccess˜to˜do“wnload˜using‘éRpublic-standard˜net“w“orkŽ¡‘'¿«protoMÞcols–¬=a“complete‘¬>T‘ÿeransparenš²!t“cop˜y“of“the“DoMÞcumen˜t,‘í³free“of“added“material.‘ïcIfŽ¡‘'¿«yš²!ou–ªuse“the‘ªlatter“option,‘êùy˜ou“m˜ust‘ªtak˜e“reasonably“pruden˜t“steps,‘êøwhen“y˜ou“bMÞeginŽ¡‘'¿«distribution–—lof›—mOpaque“copies˜in“quan•²!tit“y‘ÿe,‘Ó®to–—lensure“that˜this“T‘ÿeransparen•²!t˜cop“y‘—lwillŽ¡‘'¿«remain– Cthš²!us“accessible‘ Dat“the“stated“loMÞcation“un˜til‘ Dat“least“one“y˜ear“after‘ Dthe“last“timeŽŽŒ‹,k4Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td44ŽŽŽ ƒ33 ý ÌÍ‘'¿«yš²!ou–k‘distribute‘k’an“Opaque“cop˜y‘k’(directly“or“through“y˜our‘k’agen˜ts“or“retailers)‘k’of“thatޤ 33‘'¿«edition–¦fto“the“public.Ž©Få‘'¿«It–&Nis“requested,‘FHbut“not“required,‘FGthat“yš²!ou“con˜tact“the“authors“of“the“DoMÞcumen˜t“w˜ellŽ¡‘'¿«bMÞefore–oÅredistributing‘oÄanš²!y“large“n˜um˜bMÞer›oÄof“copies,‘z²to˜giv²!e“them˜a“c²!hance“to˜proš²!vide“y˜ouŽ¡‘'¿«with–¦fan“upšMÞdated“v²!ersion“of“the“Do˜cumen²!t.ަ‘-4.Ž‘'¿«MODIFICA‘ÿeTIONSަ‘'¿«Y‘ÿeou–*maš²!y“cop˜y“and›)distribute“a“MoMÞdi ed“V‘ÿeersion“of“the˜DoMÞcumen²!t“under“the“conditionsŽ¡‘'¿«of–…šsections›…›2“and˜3“abMÞo•²!v“e,‘¿]pro“vided˜that‘…šy“ou˜release–…šthe˜MoMÞdi ed“V‘ÿeersion˜under“preciselyŽ¡‘'¿«this–{ÞLicense,‘„`with“the›{ßMoMÞdi ed“V‘ÿeersion“ lling˜the“role“of˜the“DoMÞcumen•²!t,‘„`th“us‘{ÞlicensingŽ¡‘'¿«distribution–¸and“mošMÞdi cation‘¹of“the“Mo˜di ed“V‘ÿeersion“to“who˜ev²!er‘¹p˜ossesses“a“cop²!y“ofŽ¡‘'¿«it.‘ÝÝIn–¦faddition,“yš²!ou“m˜ust“do“these“things“in“the“MoMÞdi ed“V‘ÿeersion:ŽŸFä‘*òÄA.Ž‘=nUse–ípin“the“Title“Pš²!age“(and“on“the“co˜v˜ers,‘ÿ2if“an˜y)“a“title“distinct“from“that“of“theŽ¡‘=nDoMÞcumenš²!t,‘+and–ˆfrom“those“of“previous“v˜ersions‘‡(whic˜h“should,‘+if“there“w˜ere“an˜y‘ÿe,Ž¡‘=nbšMÞe–Âølisted“in“the“History‘Â÷section“of“the“Do˜cumenš²!t).‘3“Y‘ÿeou“ma˜y‘Â÷use“the“same“title“asŽ¡‘=na–¦fprevious“vš²!ersion“if“the“original“publisher“of“that“v˜ersion“giv˜es“pMÞermission.ަ‘+gB.Ž‘=nList–ª\on“the“Title›ª[P²!age,‘«Zas“authors,‘«Yone“or“more“pMÞersons˜or“en²!tities“respMÞonsible“forŽ¡‘=nauthorship–"of›"the“moMÞdi cations“in˜the“MoMÞdi ed˜V‘ÿeersion,‘<|together“with“at˜least“ v²!eŽ¡‘=nof–߸the“principal“authors“of“the“DoMÞcumenš²!t“(all“of“its“principal“authors,‘uif“it“has“few˜erŽ¡‘=nthan–¦f vš²!e),“unless“they“release“y˜ou“from“this“requiremen˜t.ަ‘+@¢C.Ž‘=nState–±Óon›±Òthe“Title˜page“the˜name“of˜the“publisher˜of“the˜MoMÞdi ed“V‘ÿeersion,‘´­as“theŽ¡‘=npublisher.ަ‘*ËÕD.Ž‘=nPreservš²!e–¦fall“the“cop˜yrigh˜t“notices“of“the“DoMÞcumen˜t.ަ‘+µoE.Ž‘=nAdd–Äean›Ädappropriate“cop•²!yrigh“t˜notice‘Äefor˜y“our‘ÄemoMÞdi cations˜adjacen“t–Äeto˜the“otherŽ¡‘=ncop•²!yrigh“t‘¦fnotices.ަ‘,LF.Ž‘=nInclude,›hSimmediately–XÎafter“the“cop•²!yrigh“t–XÎnotices,˜a“license“notice“giving“the“publicŽ¡‘=npMÞermission–ïËto›ïÊuse“the˜MoMÞdi ed“V‘ÿeersion“under˜the“terms˜of“this“License,‘Pin˜the“formŽ¡‘=nshoš²!wn–¦fin“the“Addendum“bMÞelo˜w.ŽŸFä‘*‘nG.Ž‘=nPreserv²!e–¼min›¼lthat“license˜notice“the˜full“lists˜of“In•²!v‘ÿdDarian“t˜Sections–¼mand˜required“Co•²!v“erŽ¡‘=nT‘ÿeexts–¦fgivš²!en“in“the“DoMÞcumen˜t's“license“notice.ަ‘*òÄH.Ž‘=nInclude–¦fan“unaltered“cop²!y“of“this“License.ަ‘/4çI.Ž‘=nPreservš²!e–Ú†the‘Ú‡section“En˜titled‘Ú‡\History",‘çŽPreserv˜e“its›Ú‡Title,‘çŽand“add˜to“it˜an“itemŽ¡‘=nstating–_ at›_ least“the˜title,–mQy²!ear,“new˜authors,“and–_ publisher˜of“the˜MoMÞdi ed“V‘ÿeersionŽ¡‘=nas–ÄXgivš²!en“on‘ÄWthe“Title“P˜age.‘7³If‘ÄWthere“is“no“section“En˜titled“\History"‘ÄWin“the“DoMÞcu-Ž¡‘=nmenš²!t,‘O#create‘-eone–-dstating“the“title,‘O$y˜ear,–O#authors,“and‘-epublisher–-dof“the“DoMÞcumen˜tŽ¡‘=nas–Wgivš²!en“on“its“Title“P˜age,‘ƒFthen“add“an“item“describing“the“MoMÞdi ed“V‘ÿeersion“asŽ¡‘=nstated–¦fin“the“previous“sen²!tence.ަ‘-ˆ¢J.Ž‘=nPreservš²!e–æthe“net˜w˜ork“loMÞcation,‘õúif“an˜y‘ÿe,‘õúgiv˜en“in“the“DoMÞcumen˜t‘æfor“public“access“toŽ¡‘=na–½…T‘ÿeransparenš²!t“cop˜y‘½†of“the“DoMÞcumen˜t,‘ÃMand“lik˜ewise“the“net˜w˜ork‘½†loMÞcations“giv˜en“inŽ¡‘=nthe–Í„DoMÞcumenš²!t‘̓for“previous“v˜ersions‘̓it“w˜as“based“on.‘S6These‘̓ma˜y“bMÞe“placed‘̓in“theŽ¡‘=n\History"–8section.‘¦ÎY‘ÿeou›9ma²!y“omit˜a“net•²!w“ork–8loMÞcation˜for“a˜w²!ork“that˜w²!as“publishedŽ¡‘=nat–Kleast“four‘Ky²!ears“bšMÞefore“the“Do˜cumen²!t“itself,‘t@or“if“the“original‘Kpublisher“of“theŽ¡‘=nvš²!ersion–¦fit“refers“to“giv˜es“pMÞermission.ŽŽŒ‹-}Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td45ŽŽŽ ƒ33 ý ÌÍ‘*¤åK.Ž‘=nF‘ÿeor–Ùranš²!y“section“En˜titled“\Ac˜kno˜wledgemen˜ts"“or“\Dedications",‘oPreserv˜e“the“Titleޤ 33‘=nof›/Rthe–/Qsection,‘G#and“preserv²!e˜in˜the“section˜all˜the“substance˜and“tone˜of˜eac²!h“of˜theŽ¡‘=ncon•²!tributor›¦fac“kno“wledgemen“ts˜and/or˜dedications˜giv“en˜therein.Ž©€‘,Q*L.Ž‘=nPreservš²!e–?Ôall‘?Óthe“In˜v‘ÿdDarian˜t›?ÓSections“of˜the“DoMÞcumen²!t,‘f/unaltered˜in“their˜text“andŽ¡‘=nin›PÜtheir–PÝtitles.‘Ý@Section“n•²!um“bMÞers˜or‘PÝthe˜equiv‘ÿdDalen“t–PÝare˜not“considered˜part“of˜theŽ¡‘=nsection‘¦ftitles.ŽŸ€‘)M.Ž‘=nDelete–°5anš²!y“section“En˜titled‘°4\Endorsemen˜ts".‘ûJSuc˜h“a“section‘°4ma˜y“not“bMÞe“includedŽ¡‘=nin–¦fthe“MoMÞdi ed“V‘ÿeersion.ަ‘*òÄN.Ž‘=nDo–g!not›g"retitle“an²!y˜existing“section“to˜bMÞe“Enš²!titled“\Endorsemen˜ts"›g"or“to˜con ict“inŽ¡‘=ntitle–¦fwith“anš²!y“In˜v‘ÿdDarian˜t“Section.ŽŸ€‘*¤åO.Ž‘=nPreserv•²!e›¦fan“y˜W‘ÿearran“t“y˜Disclaimers.ŽŸÌΑ'¿«If–Øthe›×MoMÞdi ed“V‘ÿeersion˜includes“new˜fron²!t-matter“sections˜or“appMÞendices˜that“qualifyŽ¡‘'¿«as–XSecondary›X Sections“and“con²!tain“no˜material“copied“from˜the“DoMÞcumen•²!t,‘g´y“ou˜ma“y‘XatŽ¡‘'¿«y²!our–ãkoption›ãldesignate“some˜or“all“of˜these“sections˜as“in•²!v‘ÿdDarian“t.‘”íT‘ÿeo˜do–ãkthis,‘ò­add“theirŽ¡‘'¿«titles–@«to“the“list›@¬of“In•²!v‘ÿdDarian“t–@«Sections“in“the“MoMÞdi ed“V‘ÿeersion's“license˜notice.‘¬¬TheseŽ¡‘'¿«titles–¦fmš²!ust“bMÞe“distinct“from“an˜y“other“section“titles.ަ‘'¿«Y‘ÿeou–pmaš²!y‘qadd“a“section“En˜titled‘q\Endorsemen˜ts",‘s²pro˜vided“it“con˜tains‘qnothing“butŽ¡‘'¿«endorsemen•²!ts›‘of‘‘y“our˜MoMÞdi ed˜V‘ÿeersion˜b“y‘‘v‘ÿdDarious˜parties|for˜example,‘•Zstatemen“ts˜ofŽ¡‘'¿«pšMÞeer–D review“or‘Dthat“the“text“has“b˜een‘Dappro•²!v“ed›D b“y˜an˜organization‘Das˜the˜authoritativ“eŽ¡‘'¿«de nition–¦fof“a“standard.ŽŸ€‘'¿«Y‘ÿeou–f,ma²!y›f-add“a˜passage“of˜up“to˜ vš²!e“w˜ords›f-as“a˜F›ÿeron•²!t-Co“v“er–f,T˜ext,‘sand›f-a“passage˜of“upŽ¡‘'¿«to–@25“wš²!ords‘@Žas“a“Bac˜k-Co˜v˜er“T‘ÿeext,‘Tìto›@Žthe“end“of“the˜list“of“Co•²!v“er–@T‘ÿeexts˜in“the“MoMÞdi edŽ¡‘'¿«V›ÿeersion.‘Õ+Only–N+one‘N*passage“of“F˜ron•²!t-Co“v“er‘N*T˜ext–N+and“one‘N*of“Bac•²!k-Co“v“er‘N+T˜ext‘N*ma“y‘N+bMÞeŽ¡‘'¿«added–NÁbš²!y“(or“through“arrangemen˜ts“made“b˜y)‘NÂan˜y“one“en˜tit˜y‘ÿe.‘À¦If“the“DoMÞcumen˜t“alreadyŽ¡‘'¿«includes›Éa‘Èco•²!v“er˜text–Èfor˜the˜same“co•²!v“er,‘/!previously˜added˜b“y‘Èy“ou˜or‘Èb“y˜arrangemen“tŽ¡‘'¿«made–:Çbš²!y“the“same“en˜tit˜y“y˜ou“are“acting“on“bMÞehalf“of,‘_ßy˜ou“ma˜y‘:Ènot“add“another;‘„÷butŽ¡‘'¿«y•²!ou›)ma“y˜replace–*the˜old˜one,‘2on˜explicit˜pMÞermission˜from˜the“previous˜publisher˜thatŽ¡‘'¿«added–¦fthe“old“one.ަ‘'¿«The–^author(s)›]and“publisher(s)˜of“the“DoMÞcumen²!t˜do“not“b²!y˜this“License˜giv²!e“pMÞermissionŽ¡‘'¿«to–¤juse“their›¤knames“for“publicit²!y“for“or˜to“assert“or“imply“endorsemen²!t˜of“an²!y“MoMÞdi edŽ¡‘'¿«V‘ÿeersion.ŽŸ€‘-5.Ž‘'¿«COMBINING‘¦fDOCUMENTSަ‘'¿«Y‘ÿeou›¦Çma•²!y‘¦Ècom“bine˜the˜DoMÞcumen“t–¦Èwith˜other“doMÞcumen²!ts˜released˜under“this˜License,Ž¡‘'¿«under–—sthe“terms›—tde ned“in“section“4˜abšMÞo•²!v“e–—sfor“mo˜di ed“v•²!ersions,‘Ó·pro“vided–—sthat“y²!ouŽ¡‘'¿«include– in› the“com²!bination“all“of˜the“In•²!v‘ÿdDarian“t– Sections˜of“all“of“the˜original“doMÞcumen²!ts,Ž¡‘'¿«unmoMÞdi ed,‘L3and–5¦list›5§them“all˜as“In•²!v‘ÿdDarian“t–5¦Sections˜of“yš²!our“com˜bined‘5§w˜ork“in‘5§its“licenseŽ¡‘'¿«notice,–¦fand“that“yš²!ou“preserv˜e“all“their“W‘ÿearran˜t˜y“Disclaimers.ŽŸ€‘'¿«The–¢@comš²!bined“w˜ork“need“only“con˜tain“one“cop˜y“of“this“License,‘£and“m˜ultiple“iden˜ticalŽ¡‘'¿«In•²!v‘ÿdDarian“t–æÝSections“maš²!y“bMÞe“replaced“with“a“single‘æÜcop˜y‘ÿe.‘ŸBIf“there“are“m˜ultiple“In˜v‘ÿdDarian˜tŽ¡‘'¿«Sections–6Çwith›6Èthe“same˜name“but˜di erenš²!t“con˜ten˜ts,‘Mmak˜e›6Èthe“title˜of“eac•²!h˜suc“h‘6ÇsectionŽ¡‘'¿«unique–bb²!y›cadding“at˜the“end˜of“it,‘1"in“paren²!theses,‘1!the˜name“of˜the“original˜author“orŽ¡‘'¿«publisher–of“that›~section“if“kno²!wn,‘!­or“else“a“unique˜n•²!um“bMÞer.‘¦‘Mak“e˜the–same“adjustmen²!tŽ¡‘'¿«to–î‡the›î†section“titles“in˜the“list“of˜In•²!v‘ÿdDarian“t–î‡Sections“in“the˜license“notice“of˜the“com²!binedŽ¡‘'¿«w²!ork.ŽŽŒ‹.(Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td46ŽŽŽ ƒ33 ý ÌÍ‘'¿«In›ö"the‘ö#com•²!bination,‘Jy“ou˜m“ust‘ö#com“bine˜an“y‘ö#sections˜En“titled–ö#\History"˜in“the˜v‘ÿdDari-ޤ 33‘'¿«ous–ÜÛoriginal›ÜÚdoMÞcumen²!ts,‘êxforming“one˜section“Enš²!titled“\History";‘ølik˜ewise‘ÜÚcom˜bine“an˜yŽ¡‘'¿«sections–ÑEnš²!titled“\Ac˜kno˜wledgemen˜ts",‘Û¿and“an˜y“sections“En˜titled“\Dedications".‘]çY‘ÿeouŽ¡‘'¿«mš²!ust–¦fdelete“all“sections“En˜titled“\Endorsemen˜ts."Ž©ÌÍ‘-6.Ž‘'¿«COLLECTIONS–¦fOF“DOCUMENTSŽŸÌΑ'¿«Y‘ÿeou–Ò¤maš²!y“mak˜e“a“collection“consisting“of‘Ò£the“DoMÞcumen˜t“and“other“doMÞcumen˜ts“releasedŽ¡‘'¿«under–this“License,‘sÚand“replace“the“individual“copies“of“this“License“in“the“v‘ÿdDariousŽ¡‘'¿«doMÞcumenš²!ts–Dwith‘Ca“single“cop˜y›Cthat“is˜included“in“the˜collection,‘y»pro²!vided˜that“y²!ouŽ¡‘'¿«follo²!w–t”the›t•rules“of˜this“License˜for“v•²!erbatim˜cop“ying‘t”of˜eac“h–t”of˜the“doMÞcumen²!ts˜in“allŽ¡‘'¿«other‘¦frespMÞects.ަ‘'¿«Y‘ÿeou–Æ=maš²!y“extract“a“single“doMÞcumen˜t“from“suc˜h“a“collection,‘Î2and“distribute“it“individu-Ž¡‘'¿«ally–4under›4this“License,‘Wnpro•²!vided˜y“ou–4insert“a“cop²!y˜of“this“License“in²!to˜the“extractedŽ¡‘'¿«doMÞcumen•²!t,‘ùøand›éBfollo“w–éAthis˜License“in“all˜other“respMÞects˜regarding“v•²!erbatim˜cop“ying‘éAofŽ¡‘'¿«that‘¦fdoMÞcumen²!t.ަ‘-7.Ž‘'¿«Aš²!GGREGA‘ÿeTION–¦fWITH“INDEPENDENT“W˜ORKSŽŸÌΑ'¿«A‘]Æcompilation–]Øof“the“DoMÞcumenš²!t‘]Ùor“its“deriv‘ÿdDativ˜es“with“other‘]Ùseparate“and“indepMÞenden˜tŽ¡‘'¿«doMÞcumen•²!ts›ÿhor‘ÿiw“orks,‘©in˜or˜on‘ÿia˜v“olume–ÿiof˜a“storage˜or˜distribution“medium,‘©is˜calledŽ¡‘'¿«an– \aggregate"“if“the› cop•²!yrigh“t– resulting“from“the“compilation“is“not˜used“to“limit“theŽ¡‘'¿«legal–1 righ²!ts›1of“the“compilation's˜users“bMÞey²!ond˜what“the“individual˜w²!orks“pMÞermit.‘¶¾WhenŽ¡‘'¿«the–žDošMÞcumen²!t“is“included‘žin“an“aggregate,‘Ûðthis“License“do˜es“not‘žapply“to“the“otherŽ¡‘'¿«wš²!orks–¦fin“the“aggregate“whic˜h“are“not“themselv˜es“deriv‘ÿdDativ˜e“w˜orks“of“the“DoMÞcumen˜t.ަ‘'¿«If–»Vthe“Co•²!v“er–»VT‘ÿeext“requiremenš²!t“of“section“3‘»Uis“applicable“to“these“copies“of“the“DoMÞcumen˜t,Ž¡‘'¿«then–°Dif›°Ethe“DoMÞcumen²!t“is“less˜than“one“half“of˜the“en²!tire“aggregate,‘á~the˜DoMÞcumenš²!t's“Co˜v˜erŽ¡‘'¿«T‘ÿeexts–0maš²!y“bMÞe“placed“on“co˜v˜ers“that“brac˜k˜et“the“DoMÞcumen˜t“within“the‘0aggregate,‘G°or“theŽ¡‘'¿«electronic–5qequiv‘ÿdDalenš²!t‘5pof“co˜v˜ers›5pif“the˜DoMÞcumen²!t“is“in˜electronic“form.‘ŠüOtherwise“theyŽ¡‘'¿«mš²!ust–¦fappMÞear“on“prin˜ted“co˜v˜ers“that“brac˜k˜et“the“whole“aggregate.ŽŸÌΑ-8.Ž‘'¿«TRANSLA‘ÿeTIONަ‘'¿«T‘ÿeranslation–̯is›̰considered“a˜kind“of“moMÞdi cation,‘Aso˜yš²!ou“ma˜y‘̰distribute“translationsŽ¡‘'¿«of–Tþthe›TýDoMÞcumen²!t“under˜the“terms˜of“section“4.‘ é£Replacing“In•²!v‘ÿdDarian“t˜Sections‘TþwithŽ¡‘'¿«translations–v²requires‘v³spšMÞecial“p˜ermission“from“their›v³cop•²!yrigh“t‘v²holders,‘êÄbut˜y“ou‘v²ma“yŽ¡‘'¿«include–ðktranslations“of“some›ðjor“all“In•²!v‘ÿdDarian“t–ðkSections“in“addition˜to“the“original“v²!ersionsŽ¡‘'¿«of›Æthese‘ÆIn•²!v‘ÿdDarian“t˜Sections.‘=Y‘ÿeou‘Æma“y˜include–Æa˜translation˜of“this˜License,‘Î and“all˜theŽ¡‘'¿«license–òúnotices›òûin“the“DoMÞcumen•²!t,‘Fand˜an“y›òúW‘ÿearran“t“y˜Disclaimers,‘Fpro“vided‘òûthat˜y“ouŽ¡‘'¿«also–Ïinclude›Îÿthe“original“English˜v²!ersion“of“this“License˜and“the“original˜v²!ersions“ofŽ¡‘'¿«those–notices“and“disclaimers.‘5åIn“case“of“a“disagreemen•²!t‘bMÞet“w“een–the“translation“andŽ¡‘'¿«the–:•original›:”v²!ersion“of˜this“License˜or“a˜notice“or˜disclaimer,‘_ the“original˜v²!ersion“willŽ¡‘'¿«prev‘ÿdDail.ަ‘'¿«If–pèa“section“in‘péthe“DoMÞcumenš²!t“is“En˜titled“\Ac˜kno˜wledgemen˜ts",–{›\Dedications",“or‘pè\His-Ž¡‘'¿«tory",‘A¿the–(•requiremenš²!t“(section“4)“to“Preserv˜e“its“Title“(section“1)“will“t˜ypically“requireŽ¡‘'¿«c²!hanging–¦fthe“actual“title.ŽŸÌΑ-9.Ž‘'¿«TERMINA‘ÿeTIONަ‘'¿«Y‘ÿeou–”maš²!y“not‘”cop˜y–ÿe,›—¾moMÞdify“,˜sublicense,˜or–”distribute“the“DoMÞcumen²!t‘”except“as“expresslyŽ¡‘'¿«proš²!vided–¡ðunder‘¡ñthis“License.‘Ð|An˜y›¡ñattempt“otherwise˜to“cop²!y–ÿe,›àÓmoMÞdify“,‘àÒsublicense,˜orŽ¡‘'¿«distribute–¦fit“is“vš²!oid,“and“will“automatically“terminate“y˜our“righ˜ts“under“this“License.ŽŽŒ‹/žnŸò‘GáUnits‘¦fCon•²!v“ersion’Td47ŽŽŽ ƒ33 ý ÌÍ‘'¿«Ho•²!w“ev“er,‘ó·if›äAy“ou–ä@cease˜all“violation˜of“this“License,‘ó¸then“y²!our˜license“from˜a“particularޤ 33‘'¿«cop•²!yrigh“t–Jholder“is‘Jreinstated“(a)“proš²!visionally‘ÿe,‘sšunless“and“un˜til‘Jthe“cop˜yrigh˜t“holderŽ¡‘'¿«explicitly–á_and“ nally“terminates“yš²!our“license,‘0and“(b)“pMÞermanen˜tly‘ÿe,‘0if“the“cop˜yrigh˜tŽ¡‘'¿«holder–"fails“to“notify“yš²!ou“of“the“violation‘"b˜y“some“reasonable“means“prior“to“60“da˜ysŽ¡‘'¿«after–¦fthe“cessation.Ž©(ö‘'¿«Moreo•²!v“er,‘Ï8y“our–Ç license›Çfrom“a˜particular˜cop•²!yrigh“t–Ç holder˜is˜reinstated“pMÞermanen²!tly˜ifŽ¡‘'¿«the›V`cop•²!yrigh“t˜holder‘Vanoti es˜y“ou˜of˜the˜violation‘Vab“y˜some˜reasonable˜means,‘fbthis˜is˜theŽ¡‘'¿« rst–Wtime“y•²!ou‘Wha“v“e›Wreceiv“ed˜notice˜of˜violation‘Wof˜this˜License˜(for˜an“y‘Ww“ork)˜from˜thatŽ¡‘'¿«cop•²!yrigh“t–Õúholder,‘áÞand“yš²!ou“cure“the“violation“prior‘Õùto“30“da˜ys“after“y˜our‘Õùreceipt“of“theŽ¡‘'¿«notice.ŽŸ(÷‘'¿«T‘ÿeermination–Nuof“yš²!our“righ˜ts“under“this“section‘NtdoMÞes“not“terminate“the“licenses“of“partiesŽ¡‘'¿«who›•qha•²!v“e˜receiv“ed˜copies˜or˜righ“ts˜from˜y“ou‘•punder˜this˜License.‘ªþIf˜y“our˜righ“ts˜ha“v“eŽ¡‘'¿«bšMÞeen–Îterminated“and“not‘Íp˜ermanenš²!tly“reinstated,‘:¹receipt“of“a“cop˜y“of“some‘Íor“all“of“theŽ¡‘'¿«same–¦fmaterial“doMÞes“not“givš²!e“y˜ou“an˜y“righ˜ts“to“use“it.ަ‘‡“10.Ž‘'¿«FUTURE–¦fREVISIONS“OF“THIS“LICENSEŽŸ(÷‘'¿«The›ÿaF‘ÿeree‘ÿbSoft•²!w“are˜F‘ÿeoundation‘ÿbma“y˜publish–ÿbnew,‘UŸrevised“v²!ersions˜of“the˜GNU‘ÿ F‘ÿereeŽ¡‘'¿«DoMÞcumenš²!tation–ÙâLicense‘Ùãfrom“time“to“time.‘xRSuc˜h“new‘Ùãv˜ersions“will“bMÞe“similar‘Ùãin“spiritŽ¡‘'¿«to– æthe“presenš²!t“v˜ersion,‘?…but“ma˜y“di er“in“detail“to“address‘ ånew“problems“or“concerns.Ž¡‘'¿«See‘¦fâhttp://www.gnu.org/copyleft/á.ަ‘'¿«Eac•²!h›ˆ×v“ersion˜of˜the˜License˜is˜giv“en˜a˜distinguishing˜v“ersion˜n“um“b•MÞer.‘ÔIf˜the˜Do“cumen²!tŽ¡‘'¿«spšMÞeci es–r”that“a“particular“n•²!um“b˜ered›r”v“ersion˜of˜this˜License˜\or˜an“y˜later˜v“ersion"Ž¡‘'¿«applies‘æQto–æPit,‘öLyš²!ou“ha˜v˜e–æQthe“option‘æPof“follo˜wing“the“terms›æPand“conditions“either˜of“thatŽ¡‘'¿«spMÞeci ed–Žvš²!ersion“or“of“an˜y“later“v˜ersion“that‘Žhas“bMÞeen“published“(not“as“a“draft)“b˜yŽ¡‘'¿«the›î!F‘ÿeree‘î"Soft•²!w“are˜F‘ÿeoundation.‘µIf‘î"the˜DošMÞcumen“t‘î"do˜es–î!not“sp˜ecify›î"a“v•²!ersion˜n“um“bMÞer‘î!ofŽ¡‘'¿«this–$œLicense,‘D)yš²!ou“ma˜y“c˜hoMÞose‘$an˜y“v˜ersion“ev˜er“published“(not“as“a“draft)“b˜y“the“F‘ÿereeŽ¡‘'¿«Soft•²!w“are–ÖUF‘ÿeoundation.‘m©If“the“DošMÞcumen²!t“sp˜eci es“that“a“proš²!xy‘ÖTcan“decide“whic˜h“futureŽ¡‘'¿«v²!ersions–é)of›é*this“License˜can“bMÞe“used,‘ùÚthat˜proš²!xy's“public“statemen˜t›é*of“acceptance˜of“aŽ¡‘'¿«v•²!ersion›¦fpMÞermanen“tly˜authorizes˜y“ou˜to˜c“hoMÞose˜that˜v“ersion˜for˜the˜DoMÞcumen“t.ަ‘‡“11.Ž‘'¿«RELICENSINGŽŸ(÷‘'¿«\Massivš²!e–{"Multiauthor‘{#CollabMÞoration“Site"“(or“\MMC‘zìSite")“means“an˜y‘{#W‘ÿeorld“WideŽ¡‘'¿«W‘ÿeeb–Leservš²!er“that“publishes“cop˜yrigh˜table‘Lfw˜orks“and“also“pro˜vides“prominen˜t“facilitiesŽ¡‘'¿«for›M an²!yb•MÞo“dy˜to˜edit˜those˜w•²!orks.‘ÀEA‘MŠpublic˜wiki˜that‘MŸan“yb•MÞo“dy˜can˜edit˜is˜an˜example˜ofŽ¡‘'¿«sucš²!h– Ya“serv˜er.‘µA‘ ?\Massiv˜e‘ XMultiauthor“CollabMÞoration"“(or“\MMC")‘ >con˜tained“in“theŽ¡‘'¿«site–¦fmeans“anš²!y“set“of“cop˜yrigh˜table“w˜orks“th˜us“published“on“the“MMC“site.ަ‘'¿«\CC-BY-SA"‘8¤means–8Éthe‘8ÊCreativš²!e“Commons“A˜ttribution-Share‘8ÊAlik˜e“3.0‘8Êlicense“pub-Ž¡‘'¿«lished›8b•²!y‘8Creativ“e˜Commons–8CorpMÞoration,‘N(a˜not-for-pro t“corpMÞoration˜with“a˜principalŽ¡‘'¿«place–òof“business“in“San“F‘ÿerancisco,‘7£California,‘7¢as“wš²!ell“as“future“cop˜yleft“v˜ersions“of“thatŽ¡‘'¿«license–¦fpublished“b²!y“that“same“organization.ŽŸ(÷‘'¿«\IncorpšMÞorate"–­zmeans“to“publish‘­yor“republish“a“Do˜cumen²!t,›¯?in“whole“or‘­yin“part,˜as“partŽ¡‘'¿«of–¦fanother“DoMÞcumen²!t.ަ‘'¿«An–&\MMC‘&‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘´¬23Ž¡’óáðÉ--minus–T¬(option“for“Éunits¬)V‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘õ¬23Ž¡’óáðÉ--newstar–T¬(option“for“Éunits¬)‘Ç*‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ˆ¬23Ž¡’óáðÉ--oldstar–T¬(option“for“Éunits¬)‘Ç*‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ˆ¬23Ž¡’óáðÉ--one-line–T¬(option“for“Éunits¬)‘x—‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘9t¬24Ž¡’óáðÉ--output-format–T¬(option“for“Éunits¬)‘ýð‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¾Í¬22Ž¡’óáðÉ--product–T¬(option“for“Éunits¬)‘Ç*‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ˆ¬23Ž¡’óáðÉ--quiet–T¬(option“for“Éunits¬)V‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘õ¬23Ž¡’óáðÉ--silent–T¬(option“for“Éunits¬)…‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Èb¬23Ž¡’óáðÉ--strict–T¬(option“for“Éunits¬)…‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Èb¬24Ž¡’óáðÉ--terse–T¬(option“for“Éunits¬)V‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘õ¬24Ž¡’óáðÉ--unitsfile–T¬(option“for“Éunits¬)‘*‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘êá¬25Ž¡’óáðÉ--verbose–T¬(option“for“Éunits¬)‘Ç*‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ˆ¬24Ž¡’óáðÉ--verbose-check–T¬(option“for“Éunits¬)‘ýð‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¾Í¬21Ž¡’óáðÉ--version–T¬(option“for“Éunits¬)‘Ç*‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ˆ¬24Ž¡’óáðÉ-1–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬24ŽŽŽŽŒ‹2²Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td50ŽŽŽ ƒ33 ý ÌÍ‘GÉ-c–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬21ޤ 8‘GÉ-d–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬21Ž¡‘GÉ-e–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬22Ž¡‘GÉ-f–T¬(option“for“Éunits¬)‘–‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Vñ¬22,‘T23Ž¡‘GÉ-h–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬23Ž© 8‘GÉ-I–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬25Ž¡‘GÉ-l–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬25Ž¡‘GÉ-L–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬23Ž¡‘GÉ-m–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬23Ž¡‘GÉ-o–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬22Ž¡‘GÉ-p–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬23Ž¡‘GÉ-q–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬23Ž¡‘GÉ-s–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬24Ž¡‘GÉ-t–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬24ަ‘GÉ-U–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬25Ž¡‘GÉ-v–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬24Ž¡‘GÉ-V–T¬(option“for“Éunits¬)‘Þ÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÔ¬24ŽŸ-Á‘šßë]?Ž©1{‘G¬`É?¬'–Tfor“unit“completion“with“Éreadline‘ƒ'‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘D¬39Ž¡‘G`É?¬'–Tto“sho¾9w“conformable“units‘ýB‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¾¬3ŽŸ+Ù ‘½4‰£ÙÜ+ŽŽ¦‘G`É_¬'–Tto“use“result“of“previous“con•¾9v“ersion=ã‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘þÀ¬10ŽŸ. Ó‘šßóf!",šff cmsy10ëfjަ‘G¬`É|¬'‘TopAÇerator‘!‡‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘âd¬7ŽŸ-"N‘šßë]Aަ‘G¬abrasiv¾9e–Tgrit“size‘¾‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘~ì¬14Ž¡‘Gaddition–Tof“units‘oM‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘0)¬8Ž¡‘Gadditional–Tunits“data“ les‘‰+‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘J¬25ŽŸ+Ù ‘šßë]Bަ‘G¬bac•¾9kw“ards‘Tcompatibilit“y‘ð0‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘± ¬12Ž¡‘GBritish–TImpAÇerial“measure‘ q‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ÎN¬5ŽŽ ý ÌÍ’ókˆë]CŽŸG^’óáð¬circle,–Tarea“of‘o©‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘0…¬14ޤ ™é’óáðcommand,–T`É!¬'“to“indicate“primitiv¾9e“units6ô‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘÷Ь26Ž¡’óáðcommand,‘T`É!endlocale¬'‘“>‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘T¬34Ž¡’óáðcommand,‘T`É!endutf8¬'‘0d‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ñA¬38Ž¡’óáðcommand,‘T`É!endvar¬'‘~÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘?Ô¬34Ž¡’óáðcommand,‘T`É!include¬'‘0d‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ñA¬25Ž¡’óáðcommand,‘T`É!locale¬'‘~÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘?Ô¬34Ž¡’óáðcommand,‘T`É!message¬'‘0d‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ñA¬34Ž¡’óáðcommand,‘T`É!set¬'\x‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘U¬34Ž¡’óáðcommand,‘T`É!unitlist¬'‘áÑ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¢®¬31Ž¡’óáðcommand,‘T`É!utf8¬' å‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ά38Ž¡’óáðcommand,‘T`É!var¬'\x‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘U¬34Ž¡’óáðcommand,‘T`É!varnot¬'‘~÷‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘?Ô¬34Ž¡’óáðcommand-line‘Toptions‘ˆ£‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘I¬20Ž¡’óáðcommand-line–Tunit“con•¾9v“ersion‘)ø‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘êÕ¬4Ž¡’óáðcommands–Tin“units“database‘Ä^‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…:¬40Ž¡’óáðcompatibilit¾9y‘Ø‹‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘™h¬12Ž¡’óáðcompatibilitš¾9y–Twith“earlier“v˜ersions‘ºó‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘{Ь12Ž¡’óáðcompletion,–Tunit,“using“`É?¬'“(Éreadline“¬only)‘û¯‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¼Œ¬39Ž¡’óáðconformable–Tunits,“`É?¬'“to“sho¾9w‘´_‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘u<¬3Ž¡’óáðcurrency‘ÿ:«,‘TupAÇdating‘쌑ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘­i¬40Ž© *T’ókˆë]DŽŸG_’óáð¬Darcy{W‘ÿ:«eisbac¾9h‘Tequation‘øè‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¹Å¬11Ž¡’óáðdata‘T les‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Åñ¬38Ž¡’óáðdata–T les,“additional‘¿‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘P›¬25Ž¡’óáðdatabase–Tsyn¾9tax“summaryxБÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘9­¬40Ž¡’óáðde ning–Tnonlinear“units‘JÜ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ ¸¬27Ž¡’óáðde ning–Tpiecewise“linear“units‘,‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ ¬29Ž¡’óáðde ning‘Tpre xes‘îÜ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¯¸¬26Ž¡’óáðde ning–Tunit“list“aliases‘@^‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘;¬31Ž¡’óáðde ning‘Tunits‘ 1‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Í ¬26Ž¡’óáðde ning–Tunits“with“`-'‘Mø‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ô¬12Ž¡’óáðdi erences–Tof“units‘CÖ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘³¬8Ž¡’óáðdimensionless‘Tunits2®‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ó‹¬3Ž¡’óáðdimensionless–Tunits,“de ning‘¼ç‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘}ì26Ž¡’óáðdivision–Tof“n•¾9um“bAÇers‘§d‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘h@¬7Ž¡’óáðdivision–Tof“units‘‚€‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘C]¬6Ž¡’óáðdomain,–Tnonlinear“unit“de nitions‘ ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Éñ¬28ަ’ókˆë]EŽŸG^’óáð¬en•¾9vironmen“t›TdepAÇenden“t˜de nitions‘퇑ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘®d¬34Ž¡’óáðen•¾9vironmen“t–Tv‘ÿ|rariable,“HOME‘Áã‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘‚À¬37Ž¡’óáðen•¾9vironmen“t–Tv‘ÿ|rariable,“LANG‘²š‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘sv¬37Ž¡’óáðen•¾9vironmen“t–Tv‘ÿ|rariable,“LC‘¥Æ‰c4ÆgŽ‘óCTYPE‘Ç"‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘‡ÿ¬37Ž¡’óáðen•¾9vironmen“t–Tv‘ÿ|rariable,“MYUNITSFILEyç‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘:ì26,‘T37Ž¡’óáðen•¾9vironmen“t–Tv‘ÿ|rariable,“P‘ÿ:«A¾9GER‘û}‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¼Z¬37Ž¡’óáðen•¾9vironmen“t–Tv‘ÿ|rariable,“UNITS‘¥Æ‰c4ÆgŽ‘óENGLISH‘m‹‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘.g¬37Ž¡’óáðen•¾9vironmen“t–Tv‘ÿ|rariable,“UNITSFILE‘>à‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ÿ¼¬37Ž¡’óáðen•¾9vironmen“t–Tv‘ÿ|rariable,“UNITSLOCALEMAPH©‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ …¬37Ž¡’óáðen•¾9vironmen“t‘Tv‘ÿ|rariables‘Ä2‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬37Ž¡’óáðexc¾9hange–Trates,“upAÇdating‘¥ù‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘fÕ¬40Ž¡’óáðexp•AÇonen¾9t‘Top“eratorq‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ÆM¬7ŽŽŽŽŒ‹3ì`Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td51ŽŽŽ ƒ33 ý ÌÍ‘šßë]FŽ©<‘G¬ les,‘Tdata‘Êj‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘‹F¬38ޤ …Œ‘G ags,–Toutput“formate†‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘&c¬32Ž¡‘Gformat–TspAÇeci cation,“output‘ †‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Êc¬32ŽŸ …‹‘Gfractions,‘Tn¾9umerical‘H£‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ ¬7Ž¡‘Gfunctions–Tof“units‘‰œ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Jy¬29Ž¡‘Gfunctions,–Tbuilt“in‘ë¿‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¬›¬9ŽŸ~­‘šßë]Hަ‘G¬help‘7‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘P¬3,‘T37Ž¡‘GHOME›Ten•¾9vironmen“t˜v‘ÿ|rariable‘üŽ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘½k¬37Ž¡‘Ghš¾9yphen–Tas“m˜ultiplication“opAÇerator‘j‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ÇG¬12ŽŸ~­‘šßë]Iަ‘G¬ImpAÇerial‘Tmeasure‘ C‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Î¬5Ž¡‘Ginclude‘T les‘Éø‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŠÕ¬26Ž© …‹‘Gincluding–Tadditional“units“data“ les‘ ¹‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Í•¬25Ž¡‘Gincompatible‘Tunits‘¿‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘P›¬3Ž¡‘Gin•¾9teractiv“e‘Tuse‘­‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘mñ¬1Ž¡‘Gin¾9ternational‘Tmile‘0Œ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ñi¬5ަ‘Gin•¾9ternational‘Ty“ard‘ªÅ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘k¢¬5Ž¡‘Gin•¾9v“oking‘Tunits†‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Æc¬20ŽŸ~­‘šßë]LŽŸ<‘G¬LANG›Ten•¾9vironmen“t˜v‘ÿ|rariable‘û}‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¼Y¬37Ž¡‘GLC‘¥Æ‰c4ÆgŽ‘óCTYPE›Ten•¾9vironmen“t˜v‘ÿ|rariable‘Í‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ª¬37Ž¡‘Glength–Tmeasure,“English“customary‘ Z‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ê6¬5ަ‘Glength–Tmeasure,“UK‘¦U‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘g1¬5Ž¡‘Glinear‘Tin¾9terpAÇolationâ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Æ¿¬29Ž¡‘GloAÇcale‘°‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘p÷¬34Ž¡‘GÉlocale_map.txt‘¨ñ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘iά34ަ‘GloAÇcalization‘uá‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6½¬34Ž¡‘Glog‘T le‘Ðþ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘‘Ú¬19Ž¡‘Glogging‘Tcalculations‘Ni‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘F¬19ŽŸ~­‘šßë]MŽŸ<‘G¬measure,‘TImpAÇerial‘Ä`‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…<¬5Ž¡‘Gmile,‘Tin¾9ternational‘õá‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¶¾¬5ަ‘Gmin¾9us–T(`É-¬')“opAÇerator,“subtraction‘t_‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘5<¬8Ž¡‘Gm¾9ultiplication–Tof“unitsGM‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘*¬6Ž¡‘Gm•¾9ultiplication,‘Th“yphen‘uo‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6L¬12Ž¡‘GMYUNITSFILE›Ten•¾9vironmen“t˜v‘ÿ|rariable‘ÂÊ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ƒ¦¬26,˜37ŽŸ~­‘šßë]NŽŸ<‘G¬non-conformable‘Tunits#N‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ä*¬3Ž¡‘Gnon-in•¾9teractiv“e–Tunit“con•¾9v“ersion‘GÀ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘œ¬4ަ‘Gnonlinear–Tunit“con•¾9v“ersions‘ º‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘á–¬12,‘T27Ž¡‘Gnonlinear–Tunits,“de ningù‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ÂÕ¬27Ž¡‘Gnonlinear–Tunits,“other‘H1‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ ¬14ަ‘Gn•¾9um“bAÇers–Tas“units‘™´‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Z¬9Ž¡‘Gn¾9umeric–Toutput“format‘Ë©‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Œ…¬31Ž¡‘Gn¾9umerical‘Tfractions‘ƒN‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘D*¬7ŽŽ ý ÌÍ’ókˆë]OŽŸxÔ’óáð¬opAÇerator‘Tprecedence‘¦U‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘g1¬6ޤ üq’óáðopAÇerator,‘T(`É**¬') Ÿ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Î|¬7Ž¡’óáðopAÇerator,–Tcaret“(`É^¬')‘k‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ßH¬7Ž¡’óáðopAÇerator,–Thš¾9yphen“(`É-¬')“as“m˜ultiplication‘º‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Á—¬12Ž¡’óáðopAÇerator,–Th¾9yphen“(`É-¬')“as“subtraction‘S ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ç¬8Ž© ür’óáðopAÇerator,–Tmin¾9us“(`É-¬')‘;בÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ü³¬8Ž¡’óáðopAÇerator,‘T`Éper¬'‘I¶‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ “¬6Ž¡’óáðopAÇerator,–Tplus“(`É+¬')‘Ù,‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘š ¬8Ž¡’óáðopAÇerator,–Tslash“(`É/¬')‘V&‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¬6Ž¡’óáðopAÇerator,–Tsolidus“(`É/¬')‘—í‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Xʬ6Ž¡’óáðopAÇerator,‘Tspace 2‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘á¬6Ž¡’óáðopAÇerator,–Tstar“(`É*¬')‘Z‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ì¬6Ž¡’óáðopAÇerator,–Tv¾9ertical“bar“(`É|¬')Vl‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘H¬7Ž¡’óáðopAÇerators‘«M‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘l*¬6Ž¡’óáðoutput–T eld“width ©‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ì…¬33ަ’óáðoutput‘Tformat‘öÄ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘·¡¬31Ž¡’óáðoutput–Tformat“ ags‘®i‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘oF¬32Ž¡’óáðoutput–Tformat“spAÇeci cationD1‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¬32Ž¡’óáðoutput‘Tprecision‘ÎÛ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¸¬33ŽŸ(?~’ókˆë]PŽŸxÔ’óáð¬P‘ÿ:«A•¾9GER›Ten“vironmen“t˜v‘ÿ|rariable‘6(‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘÷¬37Ž¡’óáðparen¾9theses‘¦‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘g]¬6,–T7,“8,“11,“26,“27Ž¡’óáð`Éper¬'‘TopAÇerator‘„a‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘E>¬6Ž¡’óáðpAÇersonal–Tunits“data“ le‘ŸÖ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘`³¬25Ž¡’óáðpiecewise–Tlinear“units‘º‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:ޑɖ¬29Ž¡’óáðplus–T(`É+¬')“opAÇeratorבÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ô´¬8ަ’óáðpAÇo•¾9w“ers‘¦Ü‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘g¸¬7Ž¡’óáðprecision,‘Toutput‘…ø‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘FÕ¬33Ž¡’óáðpre xes‘)ø‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘êÕ¬5Ž¡’óáðpre xes–Tand“expAÇonen¾9ts‘Ce‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘A¬7Ž¡’óáðpre xes,–Tde nition“of‘…‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Eò¬26Ž¡’óáðprevious‘Tresult‘Þó‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ŸÏ¬10Ž¡’óáðprimitiv¾9e‘Tunits‘Ç¿‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ˆœ¬26Ž¡’óáðproAÇducts–Tof“unitsÖ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘@²¬6ޤ(?~’ókˆë]QŽ©xÔ’óáð¬quotien¾9ts–Tof“units‘ª‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘jë¬6Ž¡’ókˆë]Rަ’óáð¬range,–Tnonlinear“unit“de nitions‘Ä2‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…¬28ŽŸ ür’óáðÉreadline¬,–Tuse“with“Éunits‘+*‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ì¬39ޤ üq’óáðreciproAÇcal‘Tcon•¾9v“ersion‘À‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Äœ¬2Ž¡’óáðroAÇots#¿‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘䜬9ŽŽŽŽŒ‹43¼Ÿò‘GáUnits‘¦fCon•²!v“ersion’Td52ŽŽŽ ƒ33 þøŠÖ þ¨A÷‘šßë]SŽŸ ùæ‘G¬setloAÇcale‘Tfunction‘M‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘P*¬34ޤ €ì‘Gslash–T(`É/¬')“opAÇerator‘Ñ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Q®¬6Ž¡‘Gsolidus–T(`É/¬')“opAÇerator‘Ò˜‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘“u¬6Ž¡‘Gsphere,–Tv¾9olume“of‘kN‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘,*¬14Ž¡‘Gsquare‘TroAÇots‘d‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘È@¬9Ž¡‘Gstar–T(`É*¬')“opAÇerator‘”»‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘U—¬6Ž¡‘GState–TPlane“CoAÇordinate“System,“US‘œw‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘]S¬5Ž¡‘Gstrict‘Tcon•¾9v“ersion‘怑ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘§]¬2Ž¡‘Gsubtraction–Tof“units‘f‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘&ë¬8Ž¡‘Gsums–Tand“di erences“of“units‘6®‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘÷‹¬8Ž¡‘Gsums–Tof“units‘œÐ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘]¬¬8,‘T15Ž¡‘Gsurv¾9ey–TfoAÇot,“US‘B‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘N¬5Ž¡‘Gsurv¾9ey–Tmeasure,“US‘AZ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘6¬5Ž¡‘Gsurv¾9ey–Tmile,“US‘ C‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ê¬5Ž¡‘Gsyn¾9tax–Tof“units“database‘Ä^‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘…:¬40ޤ‘‘šßë]TŽ© ùç‘G¬tempAÇerature‘Tcon•¾9v“ersions‘e‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ÄA¬13Ž¡‘šßë]Uަ‘G¬Unico•AÇde‘Tsupp“ort‘*˜‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ët¬38ޤ €ì‘Gunit–Tcompletion“using“`É?¬'“(Éreadline“¬only)‘=‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘@¬39ŽŸ €ë‘Gunit‘Tde nitionsFÜ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘¸¬4Ž¡‘Gunit‘Texpressions‘™B‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Z¬6Ž¡‘Gunit–Texpressions,“complicatedC‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:ޑ֬11Ž¡‘Gunit–Tlist“aliases,“de ning‘³‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Ƭ31Ž¡‘Gunit‘Tlists‘‚€‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘C]¬15Ž¡‘Gunit–Tname“completion‘ÐŒ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘‘i¬39Ž¡‘Gunits–Tdata“ le,“pAÇersonal‘e+‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘&¬25Ž¡‘Gunits–Tdata“ les,“additional@H‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘$¬25ŽŽ þ¨A÷’óáðunits–Tde nitions,“adding@H‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘$¬26ޤ Š>’óáðunits–Tde nitions,“c¾9hangingd‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘àA¬26Ž¡’óáðunits‘Tfunctions‘£d‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘d@¬29Ž© Š=’óáðunits‘Tquotien¾9ts‘ÃÖ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘„²¬6Ž¡’óáðunits,–Tde nition“of‘°¢‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘q¬26Ž¡’óáðunits,–TlošAÇokup“metho˜d‘òi‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘³F¬5Ž¡’óáðunits,–Tpiecewise“linear‘¿×‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘€³¬29Ž¡’óáðunits,‘Tprimitiv¾9e‘‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Mñ¬26ަ’óáðunits,–Tsums“and“di erences‘Ë‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:ޑ֧¬8Ž¡’óáðunits,–Tsums“of[ ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘å¬15Ž¡’óáðUNITS‘¥Æ‰c4ÆgŽ‘óENGLISH›Ten•¾9vironmen“t˜v‘ÿ|rariable‘¨6‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘i¬37Ž¡’óáðUNITSFILE›Ten•¾9vironmen“t˜v‘ÿ|rariabley‹‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘:g¬37ަ’óáðUNITSLOCALEMAP›Ten•¾9vironmen“t˜v‘ÿ|rariable‘‘Œ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘Rh¬37Ž¡’óáðUS–TState“Plane“CoAÇordinate“System‘×"‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘—þ¬5Ž¡’óáðUS–Tsurv¾9ey“foAÇot‘Çí‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ˆÊ¬5Ž¡’óáðUS–Tsurv¾9ey“measure|‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘<á¬5Ž¡’óáðUS–Tsurv¾9ey“mileCî‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ʬ5ަ’óáðUTF-8|‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘@X¬38ŽŸêD’ókˆë]VŽŸË’óáð¬v¾9erbAÇose‘Toutput‘¦j‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘gG¬2ަ’óáðv¾9ertical–Tbar“(`É|¬')“opAÇerator‘ŸO‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘`+¬7Ž¡’óáðv¾9olume–Tmeasure,“English“customary‘K!‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘ ý¬5ŽŸáI’ókˆë]WŽ©Ë’óáð¬white›Tspace£‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:ޑŀ¬6,˜10Ž¡’óáðwire‘Tgauge‘Íâ‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘޾¬14ŽŸáH’ókˆë]Yަ’óáð¬y•¾9ard,‘Tin“ternational‘p‘ÅU²:Ž–p‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž“‘ÅU:Ž‘0÷¬5ŽŽŽŽŽŒøˆ%ƒ’À;è‡33ïÿ8óf!",šff cmsy10óe·ág£ff cmmi12óa߆µTff cmtt12ó]ÂÖN ff cmbx12óW߆µTG® cmtt12óTÂÖN G® cmbx12óKÂÖN ¼j cmbx12óFßê  b> ó3 cmmi10ó=ßê> stream xÚmTM¢@½ó+z&ÎÁ±?tBL$ñ°ãd4›½*´.‰<øï·_•èÌf’W¯_wÕ«îrðãc;Šòê`GæUŠOÛV×&³£øç¾öƒ¤Ê®[vïÖæ6ïWÛ7ñÑTÙÖvb¯“uYt/N¼.³ó5·½êÿ¢¥=åS‚> stream xÚmTM¢@½ó+z&ÎÁ±?tBL0ñ°ãd4›½*´.‰<Ì¿ß~U¢Îf’W¯_u½ªîvðãc;ZäÕÁŽÌ«Ÿ¶­®MfGñÏ}í I•]/¶ìÞ­ÍmÞ¯¶o⣩²­íÄ0^'ë²è^œx]fçkn{ÕÿEK{*ʇuÄpg6;µÞ$4»¢;»µgZ8, ’ü²M[Tå›P¯RJG¤eWxm½ñ­ž÷ŽE™7·¢â žÒ"/²îÑ7»¸¦‘¼ýj;{Y—ÇÊ‹"1þt‹m×|‘£o¼irÛåI É‘c¶×º>[TÒ›ÏEnn#×ÛûþbÅø¹‘ûÒî«¶BS¬ØEVå¶­÷™möåÉz‘”s…«¹gËüŸµ)gŽÏR©ð133wÄ xAÄbêí;¬ÒaGL6K& 0+‡}&ö"?‘á°(Ò¦Òa/ ¡cì,•!£½¥‰î-fö3¤Ù*IÃx {aªùð”sIC%ÒðhSô¢¨7å£Å}­HÏ=ŤIYƒ¹(îƒêjŧ ÿZóéàü4{ÖØSOØá5˜‡áZ ä®ekxvKº·Ǭü÷…Ü@2aÂ> stream xÚmSÁnâ0½ç+¼$z Ø¨"¤€ÄaKU¢Õ^C<ÐHàDN8ð÷õÌŠV{Hôüæç=üúØS`¾Jñ m}u%ŒÒßE Y]^/`»w¦¶oâÃÕå:1L·ÙÖVÝ‹omy¾èUÿ­àTÙ ÖÃþŽv¹Êó‘DM^ug{¦…Ç‚° ÉpmUÛ7¡^¥”žX[“ÖôÚã{=1î+kܽ¨8 …@iaª²»¯è_^|Ó˜¼¿µ\¶öXq,ÆŸ>ØvîFŽ^‚ñÎp•=‰!9òÌþÚ4gÀêBË¥0pôùÞÞ‹ ˆñs#P~k@hZ+vQÖÚ¦(ÁöA,åRÄÑf€5ÿĦœq8>K¥Â_¸—žX NˆHæžÐÔ3$¤Çž˜{<Ý0Š*¢5cÕ~ÿP÷õʯÂùÝ5WÂ42^!ž0^#žrq‰xƘœE„3xÎü ñ ªz“)cÒgl1BÌîÒ°õ•?ŸXqû!òŠNA‡¨Wš»A*dý1ùÔ)iȧΰÅç“Оó â9ç’†NVf¤¡–kô¯VäaŠžUJü†ôì?%Íš5Ø»bÿTW£=ј«±®–¾Œ¿É5ëñ2éfè&p2pj³V^ócH£Mc†VYxLS7˜E=›þ1âj· ¾gÈÈ endstream endobj 6 0 obj << /Length 272 /Filter /FlateDecode >> stream xÚAOÄ …ïü Žíd`à¨f51ñ ©^Œ‡Ýšl#»úûŠÝ¬‰1†Óæ½÷ ¤á2Iˆ:¹(_Þ„YþæWY‡ûkß:‡–ï?%ªhü#L1U‘]ò.:qvEAZ£ƒ^vCÙÉУìzùÔ> stream xÚ}TMoÔ0½ï¯ˆ89R“Ú±ó%N´¥UBR.”Cšd‹l\%^–ž»Ù­ ªÔŒß¼{žŸWþDPò —2.U4›wèôPðåf%yÏSþ ˺iÖf$0‰E qË> stream xÚí›koÛ6†¿çWøÛìæÄ»´omÚ Фh] Ã6`ª£¦Â| $9iÿýHñ"Z&®é%i‚u.Ç|¾Ïá!i8ÉÄ?8)² Ç$Ÿ,×GYÿÓæb¢¾xõËÔqs8w"Ÿ.Ž~:¡t3Pdœ,ÞM(ÌAÁíp‹óÉŸÓzö÷â·£ç ;E(QPF(r6 H‰T¯‰å@L”ÚbViùvUÍæ˜Óéöz<ÞnfN»J=´ò5©¡À„!9”øë0¬Àj$8›CˆèôìJ>¥j®êêÚÚ?½ÈݧC(_F.†éŸ¾ÛÔFfÈ $ š¸Ÿ… ãêí}wË~ÖÁþßG†‚sÍ„ÀL7Ñs'ÜïÌâhPíÙXšf€š*­£o–ÌA 2¬IAš”_5cM¹ìêÍ…‚åºîÞ{q!kÄoÆçRtßq !¡ç1‰!<†„kN‰4i‹DTZ As Òik$Þ´ý¬9÷%‹ÑŸ„*l®8Ýnæ{©Ô´úèG胼(¾99ëÍ|%Zï„G¬ß3„¬O”6ÖÇ¥¥õÉ‚dTµõÂS•žUeˆoëíÆÿ‡^°/nÕ)!&ôD¦21„ǘØw'ÄDš´eb$½¿‚k2¡˜ι–rI‘eÙôùæbU·ïOwm·]—ÍGù-ØÌàÔf†÷†%9@ô³brÏH †E”«Ú€›€"ÚÕ!ÜãêxÐÞê*UVDH&—L,J…éZmœ\ž¸lª¶¤±~€ø{^n†Ðo=©9eå×Ì)iÒ6§Œ¤ý9…PdCŸÍ)g—³9ÊEŸRvÛÆ›=8Ƀ"÷¬ ÝÑ—ÈRÆÒÄ,å„G²Ô'>DSee–ŠKZ4y2fÑDÍ×»u«j]¹9WUîY-–D¸jªÍ²Ò¿ë[uñøfª~Šõ,~p‡ Ñ“ ̓Æu0÷B“&ÛC•´Ð0ñM}XCsº[ÏD>{«³š¨5«¤$P¬Õ1}\"ñ/—­´a©à á1ð\ /xi²=xQI M£<¢Á{º«WݼÞ(àNf9íùÒéÝÆÀ‰u=»»ÀÝ'¤CÀi£RÂcÀ¹îûK“í‹JZàp$8ª{ÙTWõv§3Ü«ªÝ­:/i8C£þ}lÇ®ãÈÉ6FÝ༎ž;á>àFƒª]ÉÌK\šnO\TÓ‡D^c–8¦‰;Þ®/Wõ²ìªóaÍ¥ «h'gpÚÈEœ¶Á¤÷Жb!Pôü¦‚2„Ç@qMƒÐ JšnJTÓ‚ÀP¸©…åR.Âþ½–ÿ—͹^}I~Ê®~[¯6â7Å<‰¼:ýG±"ZXW‚2À2»iõ£ŽÙ?7|8 ùaÔ+xGÅý—æ)óРù0¨cv‹Êýí!1©­Ler1éò‘—É4ݞɑæÁž–Gº2½«Úó:ÝnVõ¦*µñ5léÃ]}NÛÊýÓÐnB·©¡ŸŽ â­bþü›,TÑs'Ü·e54la¿.JÔ6{VcmzÁŒNuJcvÏj!×ÕZî\ñi%+N#Ì+»]S™D³‘ùåj¦zÀ`9"9ÀøqeEK½‘‰ÙÁ d‡={!öe‡D]™âš)JDYÁ)³×tÖ½¯U@Ü|ÝWÂøAî+Ý>[i÷µ©H á1¤\{!ñ"•¦Û#5Ò<,8ˆ’ëäÈY^Ôm׊y ýâÙT¤s’Šé¶êQïv:—Þ„ïv@Ù7&¢*ú¥§‹!ohUµËzºSÑÂc踢,ˆNš¶E'ª-ÑÁ¨¿a¶R;OÎÏmšøC^Ýît«pv½I½‰ƒÓ¯y'd˜þ#S Âc†¹3‡‚y=QÛ6Òö¯Ø¤ 7’â÷¦ På±_£=+»R­üOêUØoÏîô˜û¼ß®×^ƨÄYÐí¹ï%/UW.èâš–¸ ‰D2gš“úl!;…þf·=Vt·Ÿ°Üž—Ñ8æòÊø÷yüÂCÏj*Cx ×*ä½®¨ÛãÕ4xÀ¼Ú2bžðHm$åÀüñ†M 3ç‰ð8áxöŒDÜO¢®„'®iáá `s~(~O𼬫eu]·zGëEH9÷xcúrŠ™ÍT,†ð®EÈ{Æ›¨ÛcÕ´Xˆµ+Nùì!ï sâ†û½ÅÆ“U]¶2C((~à×ZBðè9O…gÁ㉽§p‰º=<#̓–bÑ.Ûž™ÏžîÖUS/u³ë.wzCê¤ïošuÙù»˜¬ ÞM\ýŽ™Ä~Ç ô;{ÓŠƒŸJÔ6ýÎX; `.L0Ú~§¿R¤¼ëÀk}sw)ïD’e¿·åß§F·ÿoSc´©ib¥ ×dì=MÔíÓDTÓ‚•Q@3{AÀ¶5'«òÂ[=DñÍÒ#8wü:¸aJû› êÕ…&jšnjTÓ€Z €éÀ©é¯Nêj¥›ëßësóñØ}då&/G­ÔWþØ”†E—àáÏe{ˆÓD%}QA/²ˆÐög/QhÛ@‰åò®TñHÝ·P ¨mLDqˆŽ è’áG1&ú=•´ endstream endobj 87 0 obj << /Length 850 /Filter /FlateDecode >> stream xÚå˜ÍRÛ0…÷y /“E„þ-u×B`Úaº ¡›N&v©g‡ ¡}úJ¶äȉ%Ô&”R†Es¬cßóIWJ úC‰„IJT$³ÅÖgW×Ispq6@F7V±£|72– $”(™~Kb@ÙŽ7Í“/ò}~L¦íH ãHK­ÜñLy‚( ”cí©o_Ý$ic‡ðhŒfÃóåhLÐp–ÍËŸÙº\Vú6ŽNÄîå# íêkߨKyÚ|ðη=Ot°ÃÜÊ… (äm=ÃÙXõØ‘÷ä³=h]hBw¼Œ²Xo£Þñîòˆ UäЄK˜”€T „5"XhDŠNÜ˹z uæÏàxú _¡û ¶ª:#›ëc 6ê±#ïe{P?¨±¾Jùˆg ¨€€ÚSŠ  oó¼ÔKW6Wk!°5­‹-¢j½„âupû{>ŽLùc9ÚÈC¹™ÖËQœoÍÑ–çNäjI$„ˆi‚“j¤zàrµ¬E}¼V$¥løy$é0[•ÙÕ¼¸íïŒ2Ê—Ð=}Ì–$²9ò@ëÔ™¤¾>émûXØ[Ç‹8‚›x©‰÷$[gMž§¥7G(‡ŒñÝÍìŠ)n,(y71"¼ Äy· ½(LÀ6 0ÊeUΚýp^4À|º»¹©O,Wë~n,O>ÿŸ1¶v‘8ò@üDz[ÂÞš¥ÄíK7\Y>/«x¤²#ÿ×û‘/|S°Øð7òPøn DzÃónÃzëðÕ*!¸]R»4açjçX]7ß­VE5{h¾Mîgz‹ð=«® !ÙÚÓV°D#º¾Ì½Çæ°‘‡rp B¡7‡8ï6‡ ·ÊªYJ…„ÂéÚWÙ­)ññr±ÈªÜÌȇf“–Ý÷¨] æÏ>=ÑÙnjΑ¢ëÔÐ]¤·.ì­£SJÔöQi¢;ûxiö[zÿ¼*L†'æ·¦;»Én^Îêÿ—³¢º-úóLÕ»‚`ËÓ—‹y–Ø\6òP.n(òæçÝæôÖ¹¨9—Úõ}•ý3…" ^Ó{ÇÖ‡˜‰%±<„˜›5õvÏ ÷/Ñe§R endstream endobj 10 0 obj << /Type /ObjStm /N 100 /First 834 /Length 1932 /Filter /FlateDecode >> stream xÚµXÛnÛH}×WôãÌ¡ºº«oƒ`€$ž,Èf‚Iìl6ŠL{ˆÈb Qvò÷{ŠMÙ´E*Ù5õ`³¯çÔ­»ºä”V¬’Vdy§È(ã‚rZYc0¢¼õŠ‚ ŽE=zI¥HÊ`N~f0atP²\ö±µÊ°"Ç 8vʶ› €õH1*“”! > ò3 h‹I (fŒÊ9¯, |0Ê*`ä2I³²[!¨Åɾ„­Ø×nufÆ„­Þ*–­!)¶ØšHA4µQì°j;45äg,Ñ0AôŠÉ£ƒ¯…=8`‹^Ä–À *°Ç¢€¾àtiXÂÂDް/ 4ôŽV9‹ÁÈÊq~TÎÍ¢Ã$rʉ-\ð°žB×@Ka'ÒX½Œ`sÒV<€T$Ñ@ÜBp¤×ÚΈb}ñ¢hDðœ×à¿”—ÁYžXŒ†Wåø¦ô08œJ’1hX7#Hém) 3Ä$Ý‹³P†$”w`&Øî— 2$CÈ=BLyŸ7°=\f„8ñ!Hä9Š‚ÈQ‚jû( —ðŸDSâS‹:>¢‡R 4`qBÀk`]TÄ IÖ$ ¢†à±`€Jج–¸×:–@UÑ€Y#rc˜ wpVÏž>Íß}ûRªù›Åe9›¿¨×M¹n¶Êãhý1›ÿQnëÝfYnqÎÚ–çÕâyýU}ÐJü ¡c>ΰ}ƒ}ðR»ì×_[ä—@SOŸªùK‘[fЄ•⾉Ài›X?³©—oËF}€,g/Õü]ùµQ÷PƒB?”ò5mÿUµþ<›?¯7çå&IC.áfSp£ë ;]8Àz‡¾f¬{Öúò­šÿ½~W«ù™ú‰~'>ž’La Ï-¥á"%wJJuá=¥K¶À%:HÉQ:h‰Ð¿¥ô¦ OCÉ™ÂÚB²,(‘^lÌ7Hç&ÒPs!o[ )ž†5ôÓhÈ1xo´rŠÆIéB,4KK]áy˜.NDçq¨Ó.ÀÈi˜.MDç¨>‡ »TX¦“ÐYñn g:Ü:”†O¼žˆÎàä[Ô¶»Óh":Ò…<Z:JEŒ#ê™Çò1îgyéòž¯u¦Mè;w"ά£õ86ëhƒ+Œ>ìd'âs\x]hÛësĦ<‘M r_ìÙÔJn‰7 §IHñ.3Yí m‡3¥‰8=²a¸KM& o˜0ÈiôDœ&ÜK†%=ÇqÓÄÒo)_ßF®ƒdO˧uw±j)gñȾ¿Ÿ†• tÊ|”ÆFøÂD|¡S¾ÁQ'i$a˜‰2jQ|óù§ ‹‘ãoišEm[X}w‰q?g§"ùÂÙΤ¸~Œ6©è G\ØØ™”ãIép¹I -l)ÉŒ8p¢|RRÖ-z¼„ã°©.×[óýùoù, \ïV«GëÚ^%ž"^Þ]›´ÁÓ{_ûZTÕè1<,ƒ£ûÿÊ`Î¥'gñ9+r/t½,j̆‰¹¹YÕÈ®@»cpSjnì?ì7ž&J¼Ô~)µa4áUáNˇړÛ Û¯ m†_v¢…‡­ïUôÈövŒ3Lĉk,Eß+éÑç‘Ó§álkzcî×ôOËɾ ½¢^^ý#zNôZsÄ…==aÛ8âOžèµÆ°­Owz2lËî´” ’°o)aZ=r4y¢ŒÏÛлz¦~sz4¢\ÒIßË÷¥úýºÜ\WåM+Ûmï?šu}!ÿwëªÙþ|°íÈ)›Å²©®KYõ~[f€Ûñõ¥ŒßTÍ_GP^ÔWW‹õ¹¬€­ï#½ßví^i¼®×Oz¼«o‡€ï±V–ž•šU½Þvh³áµ~úm}¹ª¶­Ü/vÛ¦¾Zl¾µ¢ +±‡þíë—M¹Ýrö'íÿú4õ¦Ûs×=XùvwÕš¡3ØYuqQ"=#ßy+‹Ø"ýøò¦×»«Oå&ïÞ>€™;Àx¾«VÍ“j-K^îÖËž/†§ÞlÊëªÞµ$x²ìVMÞ>0>X_VÕrÑ”ç{]ôë5[,?ß,6ç­°hªOÕªj¾uêÎÿ"#ë9åÉ€íëõ Ga±É»×8=yïÍî¥í¯:À{W^µ!µÛ”ƒˆGæcµù«Üt'ñ¾ûè=²`ôܼª¶ÍƒÓýr_é5µüßGöÑ~U_^vÈ‹Åj¹[-z869pÍ]ן»•==ûÃ#W[¾hò’?ñÜ–ïï7ë@ÏÎχ×½§ÞïoijE³hOQµ*{&˜;*ßë|á÷ä›íÅ.ŽáEõõ»Ð#‘ò5‡—AU.Ë›j[îsÅQÄ£«ÊÛ@ù>[U‹mgÛÿ‹GN endstream endobj 267 0 obj << /Length 3377 /Filter /FlateDecode >> stream xÚ½ZëÛÆÿî¿BßBµÃÝå3A?$nR8(R4¾ HåI«aŠ”ùðÝý÷×ò!ñ,ŠÀáîr8;³;ó›‡N­øO­²`•ãgaºÚ_´Ú<¬xðËß^)¡ÛáfBùýÝ«¯Œ¢• ü,ÈÔên?eu·[½÷~­Š®]oŒ1Þ›ºZëÄû¼Ö©g›¶€éƨ(=µþp÷Ó«î†"­o”)/DJâ•J|­¢PDŠÓÐW&d‘ÔzÅÚûÇz£@£A˜Ï…}a’È«÷(Ë×?fé”…Ò0NqSâГRD7×~ã7FûI Þ¬ÇSb­|¤Wyå+;²SS?4ùq½ÑpŠ[<ÑO4%ðœqõSŸÓrWt…•5ûtjlÛÚN3¯¨xùó:н¼)ê^èÚ綳ǖ©à,hñhó¶oìÑ2[~ÙÕü²;Ø¢A¹ñ.ütÞ(ã«H±¼öS_ð.¥¥ë'k€;GðYƒ‡É¸9­ïù‰›ãMõkå5GN½‰ãý½øHÅ<ެû3ÜǢ̅½]û¦œAÇËÛ\$9äÕ®¤›‚Ãf%X‡#rìË®8•Å6ïŠÏn?àÒnA1Âmà20y°-ŠÞÛNÞÐ0È˶æ‘lF<ªº*á8”GꑸÙôr»´²eÏ; Ë–Ÿ?®Sã凯Vp!ÝL ¹ ¼±0?´e[ôí·llá*ö³Ä¤hj‘òeVàLQæ|eÁ"3?÷ØLÈZkÏ]XÅ™Ÿ„z+ü¯¹±£ÞLÈÐåœ)mþÎn;T.öÞß­Óгǘ)`Þõh>t—'ûŒ"L”w‚[È„N™s¥Â@û óm: ñ•ÎX’F`>Ib7HÁéqBƆš‰Ï(ÞizÛNï}ÝÀ‡&ˆ_0(x±oj!£äÚ >Ûþ(Däð$œBRjj‰øq{¾¡RQ=ðú=H+®?’¶â7GÛ@g"ì­]4ãSÙK@)*ÞÞ@øD¬BˆˆA‰C /¾ÏÛb‹^¢½z4Ž?™òŠ–ßXœJû G‡gä\÷üF‡p ¦ÝÁò —àLºCÞñâìËGT6w¸I×üÁv ;ñ³t†ü‘ñƒhˆûf)®jÁ%58q6 >C‘”-$ƒsA§Àš“^Nz•M¤‡eº¥Qz$¬ù9·¥EéU˜ùj”©«—¡De™#ñÑ®ï7D2äaè„ûÖ:Y)q<8N wKùÖatù,ŠÝùÁǰ†]$rAâ›,šÚx`k[‚æŠ', Z ‹ ½='r"˜°yà7õñÈW@xûµ¼Q'±Ø"§$xO¼ºàÁ¯—2 T'¾!]Á$ÅhGÆG ŽÊ“ž’”ƒüVrž>Ø ŽºÜœú†ªnEà–«¯)~T¸å7,7|â:ˆ}%óßöeÞÕèeÊ 6i<ŽïöÔÊ ¸`\ùÈS&x:sV†s |ºØ—xpOphhh&šÀ*0êÈ“¼¹/`¿æYˆj¼–'žóî°YH,¼€<¡D•—y ÚÂÉ Ï]‰ÌdЬìwŒ–0EäE+MS´Y:à]¿íÜÚ§¾&m(eàƒÈéúêf÷†…bª–ðU6«)Œøñ9ʋǮtw ¼ˆÈ’Ñ[–Wá »¸˜o·=\ݳÌP$øâ‰ÑǰE™`Ť ÅÁVüŠô©››%Á‡£oOR¯¬ÝÚÅ5ˆyQ1:U]¹Åç%Ÿ¤;c6¶2aü¾ÇÔM-I¾˜Š_b6GYä= €»îá™Ô‚B ¿Ä²5ò€EE á°ãpöš—(^&dJ“T¥«ÀAÇÙ•äÅQo&ä ÙË9ÓyB†ÒD~Ì¢¿ƒšbme`ƒÑãí|-N”†á‡ê¢< ¨²s£*ŽúŠ*çL%$qøL´ot6ÇlJÏL Ècò.k;‹°W‘ªqÀ· Oº6 ³O§Èâ‰8ïráG%Ä ¨¥bħñ ÞŒ(vÁ0$ÖÀ2(6NÁ–÷`9ÈZ9º¨4˜¦¥ôÆ8—Ê– Y“à‹™s€^É«“ôÇ*Ó’“;;#“èå£ÐФ0$Å}k~¶=Í‹ÊÚÕ]:€}Á§¶Îq¤û¢ù„!,2™A&3‘ #}-ןÀ‡Çú×$ ½¶¨Ë›Ý2£—S‚!:i`€j¢I‘É/h|±³ûjT^½ç,÷ó¡ãÝ knœe ©äGßÔˆÈBGÆ›AyM<¹SÇ8‹{>.Öð;ÑCä‡$‰³ù‘™ß'N†,—e¦ } ¡%Â8ºVf õfB¾Tfž1%9Þò—py™`ÚÛIìøÈH€M€,KJœèà\D°—¹QG}Es¦¤€«„Ð;ÜÙvÛ§±)A™Z0[5qŠ2¿wÖ/×ì³­Ì{nˆ P™„bÒk+ã½]#NåruŽÑ›ÔR÷-†:H'7tß„»o¢öùNf¡ÞuBLbÁ‘„Žg¤•ü‚ðBáq† 0Åg)+YªXÏBd à$nHƯ'%\Ç›˜„3BöƒKûÊ5þ#¸¬Á¾Ä;¡Ò:Àt²q4°ðÈ$3¸?5ÅÀZ@Ü…ê-1í¼qè¶ß,ö6S?ÃÙ›¾i8¥‹táj+ †3H_0Ðà{8z||ô;È ¡Î(¬¿uËh¥ø„c 7ÙÑÌë4˜Îõ+p¬‚Œmì‹'ëÖÓˆŸÜˆ³Ø>uÜ¡Â6hFXFŠCþÙ~³hŠ—ðÝp¶®ƒðŸ¥Ã3 Üq–ð›+A_Ü í0€ù+æÌñZö›)½ô´]ìòU£¤T0cà ==cbÁr¹œÇ\´4Ðfú:Ë|£’›ºÊOÓhֱх;d¾J³yýõ”cJ-%~±çÀnlPóJ^ZiB ªÉا¢½ô Xg îpU*à›¶W¯V$?C²÷úà ÕMe¿á”@Aº)8éMálÁzg޵l°~pi®yÕÝb®˜³%jLw óÚCÝ—;ŸÙ.-dàp;˜4®p2¿_ú¤æç m7‚ךðZãJOnâŒÛejESÄ`Ý—¨BlGÇHj@9ŒP]·0(^’`0×C½,Ûp8Q ‰cïížÍ«[þ¹*„TB ÍÈÆæ;ÄÊ%îQàÇz0ˆ²¸ç òæ~hË,}‹ÒîxVT¢âûijùY<^K~ÿddé™m»½JÛYÞƒZj|è V ¸>*?ZîéÅ”3Œý05¡@ÄŽ’k)§Po&äK)çÓyÊ ‰§b|FÞû_ÜÑÓò;¨=¸aÓt”r®vÆ·&»È7!ò+­n”ÞQ_‘þœéo’o¢,Ǻ©Š •<ê”sÁR÷ÝâÍ› FÝbz`#éh¤R½Cägg­Fç­²ÚO\Rˆƒ" ÆÆr„?yì(ï‡!döO¨W¬Äåam»(u¦è7g‘åM×”›7‹pœB~8ÈÌ‘íòüX鯿.ò }›‰cG Ë‘AþÕŽ ÛvPþ ¿|^ªoÄ˳ó}Q Ïäß×ÕøV ÷ ¦ö2ïÀ?^ÏÊw&›o³Z»’ºJíþ¢þXÁ˜±Þý¡BO\Bœ´ÏLN'1¢YjAž[R©Žù‰ ¿Úí<Ùí©pu'ÙL5É486›I¯Ðg¶ÃNCÓv> stream xÚ­XKoÛF¾ûWèV*é]rù ÐCS4Ez,ÜCÑ(M­,""©òaÇÿ¾ó¢DÊ+[#æp9;3;û}3»Ö+?z•«UEAn²UYß(íV,üþë=ý™æÇ»›ÛOq¼Ò*ÈU®WwÛ¹©»Íê/ï¦úµE‘÷sÛ¬ÃÔ{\‡™g»¾‚W?Òq–xáúï»ßn~¹;:ŠÃðʈPóí’Ì:2Ro˶ـï$óöUcYj·øL½vãð^ÒÔ{ÚU%†»cªçg]t_ibå©D£`#ÿà‚ ŽdGfÉ"ˆ›Â¸E¬q†é¤ñÛZñÞlª²,»ØTæP"}¨8¯á°³Ó$žr~Z+ø^ùad‚’¨£@Çì“'Ân•®Ý‚ñmQm¬}cŒ÷“ïµÚq6“|¦0sàA­øYÛ¬ñ,Zš´îÊXb cñ”‘°äÈZaNjOÕ~φ/p÷CÊä°ü,P©¬ÿÝ {`1SY”ç”(%)ÒÓÎ‘Ž T¤Læ ÈuªLL îæ`J!(»ß÷,>cª(}8¾+–(gð<æ dûïXLÓŠûµOy} š%Ì(lQœæÞm(Œa2ee¬ñ7Û°˜`´öµ×Oñˆ˜î»ÒqFh˜£'Ï¡=8Ò¾dhSu¶` ")J½ÏÓœµövÄ3x)‹±ï©PxÕ :’9OÀ#…hh~l[v+£“YÊ!ŠŠ!C‹TÂ;î­k­ûu'^QS†0X:)q}Õ”Â!’™M(Ëð­,IAœŠ½ÏÂØfáÇ´Þs¢ÉzÑÐ-ì=“ñk%á,V︪€–¥ L³Ä'"ÅEB˜\¿ÍA@­C×>tE ÞMvbaÏï”^Ô&<–Å8ô-䧪­LG„&¥Eâ{ÁºíDÿTÀNSYªc2‰ä%ð9!~’)Ån#(¡IÄIìÙoE}Ø[²{r8 ‘}m·P—a±bë&ô¬‰l„%üþHxÙ┊þ$°Züi±Tbààº`ÕÈ;’ÐÊaÿìÂøT×2„ÞXÐÛKÙÿ8 îŽÝÂ]PàèÍ‚„´c D…Õ€…!r«9Áz4F{¹Ü†¢9;ÌYn$`@%zhÎ:”§±Ùôï¦N¥·çôÞ¶û=Aà©j>¸¹Í`dÑfþDÓØDvÅ£ýÀ"ÆÖô®9j?Í ÚŠ–´¡e:]´ñwÇ¥”6a§Ú¼ÒÊRPsö±Ô ™žÅþiE^×"»ó Õù©¿ ÌÇ*”ðXµPÃb¤½"_­_J‚8U]ÛMg@¨·“Bfü ¬¡(!ϱ¾ƒ ,ñ4£]è÷D9)‹”L vì‹fC'º0âsahèdDJJH!.„P5 ¦¡TuPi¨ß€@õMÜ+0̶”=”F ó¶©ëe¢œJAbïÜp€Ž§ä[3îÃyWK°ŽÍ>‘Œ~‘p]=uØÃímìAx0tÏ,ÐàÄzê{®^¡’ 6ÉÔ|ÿÑv÷moGÝ8ÐÙ±¯´‡ª—ó Í-Ó+äØS ûP5E ÿ_rHò%ÐBíç|RF'I’:í¨·L|Q±Ò, ùòD)Õ.{¯r^þb5ƒ¼tÀK€Š©D±v´ þ,%{ 2F©^à $’Üàâã fÔ¶èGl¸ìª¬ ã“‘’NV0¸ŽÝ  ª¨1A½qm¯3I”˜7þ¤¸H°”fªšÚè„}…± eà›Èïl?îi• -·9.ä³ý6tr‹-¹Ž1+È %‡¬MùH%n×¼ì éy²%SßÜ´u’î”g× 1~´»úêþÒW7ð"9d‘´>Ô‡õ=:ÖuÖŽ8Ä˽(¹ºýþwñŒ'Ü[PA2Ë/ýx8Àæ÷t“§aF¨yªx ŽÆ ÈQv*wýÐUåàZ€Éƒ$–ÕohpVû©ŸüÁµÉ’ïzûªg¼¼I´¼»w¹•ßÊÙÈÊ5Ò|•¯!=;$òý^<Ü<.Tê$ˆ2ýv¡ì·kq8<ÃåñÂ)çJ ŠõeÕÅæuÙäI  wÅgn¿ËÈËâŽ#T:ÎU’ŸŠüѺ?­ 3§ôåŒ…ŠŸõaw5ƒmy[W{ûÿPx¹¬y8óèL9œ¿šÃK¦Ü¹Œù_rÊåÜþ ñ?S‹Cé endstream endobj 279 0 obj << /Length 2407 /Filter /FlateDecode >> stream xÚ¥kã¶ñûýŠývrkEêa)EQ mš´Š"Ý¢šJË´­ž$úDé|›_ŸyQ~œ®»mö€Ó‡óZ=$ðO=TÉÃ&Mã*+êîMB³Ãáï¿}£o ˆë+Ìß=½yücž?¨$®’J=<í¯I=íþý½oF¿Z§iýÞõ+½‰>®tÙÁ70\§*/‹(]ýëéÏo¾yšʵ~%Gˆù2KE™Å*͘¥?íWëLUÑ3rã&ØÙíCDM_»îdÆfÛZF˜à"¼6"æóiµÆ{ø¯`2SÑx´x 8»¸>['Yœ•x¥£'’ãÝðÐjF; î0˜Ž>7mËŸ††¹äóõÞlà{×ÔÀv¿RÑzXëtUö°Vi¬r>`<š‘•‚|!k°‡u•Ef°¼Þ;A¬Wk9¤»wCgH.„Ùï¡Dæ—v?µ†¤usX v7ÕvÇhH§bÀš•säJíëEé–q ÷*ã"å{ý€êÌuÍGû5ƒv8øÇ£›G"rPwΦeÃÞŒG×y¼?¼Ó =òggž—Õ®g¹4m3>‡“ǧfy\ªÍ t¼¡¿Ò®• gñ·»;ÒÛú]ºt¨Ž•*àoc×I~ÏowOcÉîÖ›,.ˆ³‹Ñ?R…JÍ¡|pàúö™¡3N›`ˆ83:þþ˜¨Œ¬çHÕj¡!©hvgæEëHzàïÎf”È+‰á-hàn©V‘oºS`è4€,™GºQq^§ú¦Gï^ò=c’43^.@þ“%i ñãVòÿ^ö-cƒçw§1Ƙ’GßÙà…„PÓ³ËØOîo^øýï~ñÓû÷ϯpŠ/ðì¾ae¿i§O%qôþ(»Öƒÿxœ û»Ÿ¾„| ˜-ìxÑl…í§`rnO©±ˆö Ð%)•iœéì帬c„M¢«õ|ŽDQ8e¶v*M6‚&vmÅðÙ[ŠhË „'í‡É´BËñ”=ì̓\qù|ljô½#[§RyœƒJ®5Ñ­7̧A d¿W¬‚ãïÌ  j;Œ&P‚dˆgn›Þ°wâ$z'~9 Œ#¦B]¦xTdÁÙÂ¥Ä<͟иuÆÚÂÉýÔ¢'#ˆi¥àqÁ4Lòä’qÄFØsl$sÕÆ‹Óx×Ù³$º,ê\p¦zx>M ¤Ôœv:If'Lë 39 Eשko^šÃ‘‚`LŒª J[¯û0¸Pô¦›c ')ŠäD›éh,X– Ï“»¦³=VJ-†8Z¢KÃ×S>øfœH5Å[T(^oïNÓXÖ´Æb‰m3ÓW"¦›BЋ³k0à L2Ï’,ò Wš‡sŠ< ç Žœƒ Ô,€¿eyò`¾#‘\1}ÑOñ°é?#\;J<±:àÒÇ7vÂwø+¥.üï̘pý¼Š°Âñ ‡Ž¾Ã‡É ‚LÓ¦–”ž‡ƒ[ò¶Ó†ËÁU™E1Æ,"idëçÜ2Úhd ™Ð/bˆ'™ò¿_ò‰KU% Cë W¥2ìʈâÿ»ŽB×S™„z òívÏn4#H€gVü#”„ðÊÒëŒaäó„#;~ÅHZo°vÊô‚â%m$q’di•è<©^]ö`YT+³"Zëϰ*œ'—CÁrSTb°¨è2Žåƒ#=º1bß©`æHýÌõ®_K1Oḭ¦K’lÞ3Â]HÀ%ò_/›Æ\9´­]‹a¤Â5‡ ™“äކþ.ö™v„8³“ÊŸª3˜=XçŸ{Þ8¸ÞM²Í Û_R·×ÓÖÎhVßJAm†ñØïojD¨›¡ní£ovP3™Št4»wúbë+h“­Qv ˆúe£ÔôpÅæËF `•ƒÙæT­¿Ò*ÿbÈû1Þi§$2R’ÅD‚ulÌÑ–– -["BI¾bžJàí§‘ ÀèŸeÑôxÆ‚ô. »6o%OªV±î^ºí`uNAp-7ÜT¸_1Æb¹­ †K/w‡%Ç;‰ Ò-Êx£7wõv¨öh¬˜w¶/}sRŸ·F¥¾j`p×ÁŒáOÛx™p²Ï‚³Ý©)ppóºÀ÷(ôí“BüÌ¥ëo—îZÅeuÛÑ erc–›—"ÖJý’ö(ÏíK^%Ró,=gX¡¦UzçDòfP–woeŲ,gYV"Ë’jªƒ¡ÂUª rqswÞÊÄ9„òñ(ûŽöB‹¡q¦s¥©òòRħW(ß/ee]•ËÒÖ*ÎÒÏ›E¯‘6Rfi3l¶—ÄÁ/lè·üêv¹:bÒùˆòÆŠ"Î73Oõ*Çú2”ü‹ÝìH!È%×JÄ#8!W'1d¬Ÿp‚z‡ª”Ä„*6x\ yº¹k{bwhúÃ’/¤e¬ª™å£mOKlB½  }ã`ž¶áx‡p$ÂWèyÆðÇÝ A'Ñäüú¦°ü+Tý€¥ )–Ù­‘U½èà)¤ÇM¥_º¦~jN¯SÍÞÍyÉcð¯RˆËP¿`ô®(6á›9BèGd+¡rÅÉ KÊÁ¤Üû×ò8/tN†J¤ÌºMƒå_²€;3ʆ-õgDa¼Ã—ì0?r#G|Yô/R¤VÁc5·¹©Ö—6—RTIÊ*$V‰ÆnÓìŸ_«û'(­äySS ÜYzÀ¦P£ÕãàаÿÉ·ÄôÓíbÕIO6±Ð„45v&PJ€ìÉu¥å„àåøºc]ÁOc”¨5•C³ â]±¶‡æ»m˜ÿ05BFèm¸¥¿Ð-H½¼´•˜Œði…Ò£rØ‹gÞ•.„-<,î¶9?—ÇôI™ ¥¾Å,Ü@o ogÅÿv…ð¼`ä…—7úóÓÖJwÈ¿ ๡”YÐOÍÀ ?)€9 ûÌä©!.CC\°£°´ ‚h!oD‘é Ì=²—‡/ɸ ç“þíȰŸ†Ëv÷B«oæ?ä× Ž†òsÔÏðÔú endstream endobj 285 0 obj << /Length 2129 /Filter /FlateDecode >> stream xÚµYKsä´Þϯèbƒ›;–ßfÜË0·ê² 2°ªP»Õݪ±­àG2™_Ï9:Gn;8EeaI>>ïÇ§ŽØ…ð've¸Ëã8(“bW5¯B{Úw´øáÍ+Át>ú3ʯo_Ý|›¦;eXŠÝíiÎêö¸ûÙ{×ê¡ßûq{ߘvåÞý>*<Õõ¶~,Ò"ó’ý¯·ÿ{õßÛIPE5BÊ?©”g;‘‘HV)+’@Ä ©ïý4‹¼w½nÏ(øæÛ²˜Óç@›•ÀÞRÖK¶d›†AžLdß›ÖÛîcá ª“Õ ï÷qä©ú‘>]:ÉQ”¢Øùq„q¸½(¦Íæ´Qä©XÑfÉ<9¢»Îœ;Ùìý$M½J¶´¸ÛûÖñ'Óñ+bFT›b~Ñ‚]Ú¾›ìB°Ë¾>u†™  >³jÙQIOÄ ½/â@ÀÓªWëV{?‘w»/bÏ@¥wÄg#Ý¿Vaì (ë‘'*+ÉXÌJÓé³neMÇh4­Ô‡»Nõh«e’x¨5}ú n­z°¦…K£F—ç¹÷ˆ_›7…÷€I ÐA™÷öDt’Ó—ÅL#zÅQ¤n™7†CÖwâ86ªÓ}[áÁEbŒ €¯ép¦Jî5Ëï‘)u\ØAf †jRhP:*N<ë08¤`ãjÊÐw+œxë8¢!Á¢¿¨º¦÷£­9:…Uͦ£×G3ÜÙï#h@Ë¥iU[@% èžyÁDŽçV'Ob¹R``}'ÄiÍ4J½Ï"zÖ…F›ßGÙ­×!ˆ Š¥Zàˆvµ²“ €¦õbeGA”ÇŽìA“/1D…5Þ~$"^õéB@dÉZßM$y,€&_µ1A>±’Š'-È\»R4æ|…¶¹Ù33wãÀ”˜×i9 ™å ™"¢·õ^xÖý´Õ=½•Uãøe´ ð` d)%R×À¡•ó6 ûs!H—…À‰«€ÇØB*ìÑWœñºQ=GtBIóBÆ–©ë.ÙJ&+Þ÷cUA‡85ö,>›\"‡ Èò-ÙU^“³ B] G¡{_x ˜~ Óð£ê <`H?6ÇN]S­ÃFµ>ƒ¦Dpáé{Ý™¶QS‹LCA~I£yZÀ0uM‡¶Ø Á]8Î$u 8tÍ–Ï–] UŠ-žIòü‰g€ïµîìVÒ"ßË3kqÖ÷d;©Á¶ɳbYo:Ž•:rµ“ÓÇp'S’zíxtÅnRa#æ$tm!¡ÀA½pG>I]7RŒ¸m:ÌZÃÒõëkèPÊÇ)F9Æè¹tþ‰JŠî¸,ãiasÚ¼ß?ׇ‹<a¹%,`¾),Å˼µ âL«èHvçÑ%6ƒœý4ì/ š‡?¶e¹’„ÅQýŠÔ¡bDQ'¢B Ð2Èòt‘Ö=œJãçâ$!ô9ž—ã‘*¸r5‡ë)n¸Ñ'z‚­Â³0+ôFŒ±fØðÙ>`¥X›/¸àþñ”­ºj71\™×` qœqNÄ ÂìØ{çôŒóÔûÏÌ—«Ñ ‹+&ö£rŽOó©/â¹Æú ö'èí°¤W™õId;™<ÒŠð ®$=¸[àò(>D kK“(âq_#äô4cL‚xjGuÒlhðl2û›©ºË‚»>Ä¥Aì#ÖÆ&V%åÈZzë7‘ï,qŠÝŒ}wÓœR7ÏêU¦AYL-ò¨;À‚¦{D´ŽÈ=.yrY„™S¡“" ]ˆr®Ï'GSñ´ÒŸ7Þ ÛØçUèÿ¸ÆYÀlŒ&HeîºĹà‘L "Y6ˆdªA\_CÁ½;·#³ñƒ ¥ζ8c(§!r¬-ÛxÊ:|¡Ûªªwdóš±G'‹ià+È î@dÑ"N²Ñµ–v\†äf4®hòpèÔ½†Ü‰k*‚ a– t­€5|ÿAõx{²z;Ð Y÷†V3uñcÙºkìÌ¡¯hüà¦cAX±R]$Èyî6…“Äû?ÝuiJáµnñÔb±"ý ñÍÙ#R³ý‚¾Åñ§‚sðš[¿n§AvÅM½ºWí &$±H#€Ái’:Òϯ#UÒÀÅa\™s«?rÇøÈŠ%0Ÿ[ˆ·ß61áõ¸Â‘KÝï(– éFüÔ¢_»›gçP;½úòÅkÏó;½fvVy4ýØÐaòσ鮛“êT[©9Èõ´„ì·VÀÌx^¿ÕË ¸,p(ʹ§Öç‹uÛ˲8êeaî*zf¿»T”üT5tJÀJ›eB)WäJ۵ꦫöÕÙçNB£‹îVÇ6¦Þ ö+êågyìÌçýT_¹­¯Â;ðOJ›­}רB¬ýdB­î‡«§ ø¢l„©3Ïÿ€ Êá/¨õÝùßÖ©QXËÔ÷`à­Û+9nHÓÎ4º’õL©­xÿ²„¯M=|„îîò Y?pgÚ,§à ®fç6J`‚ ³æè²þ~ŸfP#äáF'ª»^צý+âõ0èû,ž-ó²à7S)Û:wü{Ž–Õåï÷ÎÞŒîÜ2ÒèÉÏc·în„zewd¤b14ž_Ñ Bt—õ5¦=ã!f+­Ù÷îœÁMbÁÍì¾5]Éì²TPÌ~ºé·Q32OŸvk@cò-²Á‹\R¾²È¡#{w⩎Ç|_ÂaÛö€ËTOçæDÇxùÔV<Àø…‹¾V“ºH=öޱnéä ßÛAgN÷óþwäÐïžl endstream endobj 288 0 obj << /Length 3765 /Filter /FlateDecode >> stream xÚkã¶ñ{~Å~‹¶È*¢HŠRƒ|È—ôšö ôö¤M‘rmÙN– I¾½í¯ï¼¨‡W¾[,°&‡äp8/Î ¥nøS7Erã´Ž “ßlŽ_%íö7ÜøçÏ_)™wïf3_ÝõíOÖÞ¨$.’BÝÜïæ¨î·7ÿŽÞ7ÕÐßÞi­£Ûæ6uÑÇÛ4Ê®¯ {§•ͳÈÞþçþ¯_½¾7²iúBŠpæ—IÊr+m˜¤ÿân0)›OÒq¢#MHo­6ç“P¾«Ûs÷G_í†r+‹;¨$‹]š…õ_ßÞ¥™Ž6¾ÁF=À™;›!‡–­§Ðï;ì×ÈHó8ÓñíIUt¨zÞƒuÔ´˜@•ŸþÜŰúVÑ „(AùõçzÀoîR£â\•å‡CÉü:¡›hëÏÀßej™€§Å_Â_`X¾i§ºJÆPWýð ´Ý|¹‰úgK·%nÛƒv ÃÁ<è»@__nc:‡2 8N‘Å6+ø÷ˆ,Í“uY¤&Î]˜|jÏÍö²`„$€\Ež»È&´;†}ß·]t›Ã¼/eÞ8 ¢ q x’*:¢Ì@,Õ©~âÙyâC8 ¬Ü” # Ì—v¸$gÝB4HÜGb„/89©‹háD[‘4’7XŠÐèmbÎR÷ŠM˜X+ö©v«–éb•§ “•ø=±ÉÛv·%¹¶Qæb£Fûµ],X¿›Éq¡¬ñ××]é·O²•ÿ@\GÏ—˜È÷—àо“sû‡‡®üXù]%@PþÄOUàrþÜüRmÉAÄpF§UJôà"``ÀŽ&q2 4ûe&ܤڀÙ×}ËÏ€°©e%HPr•N¤ÕÚ3zœ­Ì¥Í˜×i.²XžqWŸ«íUº­‹S§/èF%¼Š=Åæ¤ñuû¿U~¤ÐÌg:&oãBK•ÿõDÿªÕ¸³ñ'¿6Ù?1$xPhn+`Ž.;îíºöÈ-wE@½'xàì¨_CÙ|7ôè6Uõç B<Ù÷ãúRÞO|[u•¯é$Éò{_×mƒ˜ó ¸N‹”µ3¬÷nôÄx¿a—ïÀv8p÷ òä¨z^÷X…±+¢(âÉÚºUcW±ÈÌ{‘khÁ§MÎüÜ_Åj.°ž::Þ§5Ùf6úí67 µ×ä¸A®µð]xã¡j@É÷ã‘ëZnÓLǹ-æ¼…°;VM‰¦"âÂÆÇ[ B¬ÏÒE«ZŒŸ›‘¸m€€pT”f¹‹~Nl&…Bq!})Ù-ž+·Dá Gsnu{£VbÜ=Î:u-Þ<Œ—t›w u(£6tå±óa®¯jf ô®x|&;ÞÇý—ïc9ó:6@VajùfT$Iô¶ü40™â«ñ“EkŠíÒ&ºòTû¸ ‹]:;òU'•Ã…›Ž'®®P‰‘ŽºpSÁ©¦WÌÑÆ&æÓ—YIÎNGovB;GN°Ñ×ÍÊTĺ/k˜p2ž‘µ³Í•ôóAöj»ƒëâîùNJ)õxð}).ÖêØf)ªÙÔç-ÙÀžU–Ãq°ùBcŠË°Ç^]jWmxÅâ>ÈA)þщ"2tùårã©dßpã«òAš 0á­=ñà¨É ÜF»p¸/ô·Çj±þÛùίzÆÜ."ØÛdÁ’%!ÃñÀú¢¿Ó-^~¼%J8³¸y9eÁØ`GæÄ‘!âˆ2ìA· ´Y-79¦ÀÖ®…˜ƒ6DC!q‚Mcü«Æø(×D/â*WŒ‹a΂/úÈæ¾¿œ°J8² éð²/Ȩˆ­±—·—N\œ]¤±’@SîqÑ)7Uˆ ±ÜL÷aîB˜Ð§ šìÀ-H±ªýC‹Éз{Yʶ™íè|Ú¥Ò¶¸4ðÍÕ›kF)r³‘äœpÙôR¸@‹#þ7p{úArüo‚œj“¥È@0›xâ$Ü&Vè7Òè5u³¯Á*íä,ÄJýÐ=Þ`Ø}Í{¡)B|šJÑë5¡A¾Bζ™pŠì1Í!,‚{œZ5üË!^Wµçž!\v.ϧ%‡fŒµ+÷XÿÀ€ÏBH/S_q\ÄS¼G¥–Ok\ÿÔ%æ–¢¶ _Ùm}Fˆðcéû3Üç²{ÏÐ;<ùsºŽr€?£œOˆD­ï{Íg;ž’2™<Ël`Ð Ô¯¸ÇG¤“lˆ% QtR ~9Ê×BŸs~BÅyðïQr{šÆòÑ•oä$èBÓLêr8A„P 3„,q™Ð3æÓ°&'?zbH—~à¯ÊSƒ-5’‹PÏ?] Ü>òp¸Ë“hFrc–&!#LfY%t–YålÕÚæ™£IYªFJYX(!ô%×ÚœO¯™†J¹¡ÁrÀ¬ —…;þeæbaU"+¢¿—žNûx@S­e›JÐ ²îtíLgfBH a/Ø%¥·4”K¶tô+„(5v<ʺŒ­‰õÖ‰—tl é¸gª£Úœ*®boÂsÎq—cç¨ûUM ˆ &^ƒÏ’4¯ìS”@Þun8´b#Vs@ôJ†·åÎcÅ™:Õnµ. r ¬xI|9†ðÝ™jȳ:Y‚WR[@f8ÞÔeóÇϯ^TC„ËJžH{ÏÜ‘ZXâå›òPcŸG60­Ð3«*ÈÜhÐGoŒlf§‹-ºÒ”vXNEø¢Õ…žvX¯¾hÛ)¼÷2—ÅØó‰è>sGXó¨Ê=£%åºV¡ç/å’$V¥5¹ŠèÄJÑ¥§ó+N¤¨ÐœÑÑ3„7‚)pt úcE&òËÁ´"gÒhåìÁ!ì½ã±IÔÐyd±!Ž–Ç ú…³x~M*3Ûd’}è LÃb/ÿXumsœîP¥%lO aÛª°-HqJëß¿}sÿî×oþÛ›wYºsq>ÕUét¸}%œW×¢ð,γ1ÙX×§ç=%¯@×°¦)äÊ£®ê%Ö«/ã31W›ù;S_q\³þèTA`!A\ÿÍv’§æ²Ýâåj¦×Ÿ¦^á…Muq¸Ù [à ¯<:ÑRmLV*î —âÖGŠÄ±‡ ÿ`GÌ›¡TÖ‹m1R9m8ž @?‚¿X³¼X] üíQ··Wƒý¾®öâEÑûcKõhJd}êiþC†¦òdÅwšæÐÇ„WwüáxçëÊKÿGßø-wTô–bXð¯Ò×À™#E²Ë{Óz¿µyô бm1ýLHÁó)ï0'éi†áÈ“ pY¸ùî«6žÛ~۞ƕ#:"¶¢g[›^ŠE‘Ú‚Y#ŠF¯ÿ=Òa#° e Ótd*†QpHpîæ9NãSì@jßQ~þ©Â"Œá“¯wè{|x”t–ÞÀ"f13z1áƒ:³pÀ8€/¶<ò A.¶e:$f¿¬øQ®üç!¬Ê1bûŽ!tÂïÁ_NñÛ-Ù1…©0à·lSì@ý^¦‘ùÂð1( ´•ànÆœzßóü’vlŽü{ÁeTØ"á¤`EZl.²ét–%è”L¯”©¬[,<Ÿ…‹3£¥7ᵨñá̸ø7¬ˆÚ¬”fµHLeÌÒ¦ D¢£MaÇ£«˜‘E X4r§ë"vZ]Oð{ 25Ï©^—Í~8ôÜ¡ˆ&Kƒ'Âé$­,H+G0=âðókÆOÆ mµeŒTž'ˆP¸¢òÀ–E»sW³ƒ¿zgQÇþ~‹ÂÿŽ>„ ߉l¼¼ˆg ^Íø(˜É3_Õò2žAþÛq:A¯hI0§N–+à7°·ßñÄ‘¸SWÞ¡{ä9z6L¯z=¤ÂáC|ÒÂ/8õ’èÓ÷Àž<˜Mftså¬ÿšá°=( ×ø†Þ}#) å7ž^ÑdF>Ê f ,®«æß;¸?ú…pbåT¬"!À˨ôõ‘ 0xÌ.Vä"Å8Ýá÷œ]Ò§*nQ\Ãy£¡Òu"†¬jê²XM‘4ñfÏø¶Üu5.÷M33UkåÅQJ—ÌLLÞ-\\,?ëñk1¤À òl¶$LÿXÕ啈1sÕ&‹lš'¼lØQY{éË¥-Ãæͪ×Ë1Ê#Tp¡Ã™>þ€õ×HÌ€yÓËp Ñž@D ²ZÇ©K—Jv‚=B Í¤VáC3þ‰n¶þòc*=O¼õø)À<ˆ¬VüÚÊ6á¥bé³…ÁO·FY÷üA~)ûKË% endstream endobj 291 0 obj << /Length 2121 /Filter /FlateDecode >> stream xÚ¥YKã6¾Ï¯ð-ò`Ì&%’’ì! ²‹l vzA`e›¶…‘%¯Ýc ?~ëA½<ênAD–JÅâWo·ZIøS«T®â(©NV»ó;IÔú¸âÅþõNy¾ 0n&œß?¾{ø§1+%E*SµzÉ4—oÍëíšÊdr!ùÒb}¡¤WÍŽ¬•ê&AÜá®$øH˜ÚÀV$>Óÿøeç.-WŸ¹,ö9ܤÜ9_•ÚSæ9Ü—ÖQHEh€0é+S(Kvå¾v{ÿ%OÔÒ“Ðášn‡¬'¦dþ †=çxA–„çG€Õ“~W-²Òùà×PÓô ²*Ê/U½ÏËá«×¬‚ôav„†›Rº¯ÝxÛ5ôTù¬ö´ôh°Hà"+¨29/›üX¢L©‹Æ·‹ž“ˆ„Í¥¬÷oUΚà”=¹oy©¤äÅ$Ph¿¹yß;˜{ƒƒÐç¬l½Ð¼ÜˆW‘¨› }ïCõ!ðÍ’Ðæ‘BÆIª¢4Ñ‹IœÝ’øÉ%{ËB•Ø`eÔ>ýÌÔ!b¦þ¦hü—]ß,i..HJ ¹çôb˜¹ÛÉÙ¾Bán9Ä4$l3&ìŸï¨·>Â" >iÍüÞ?Q×ç•‚g¸¡d;r- å S*ÐÒîrï\ðbOzóÕà}Þ uõ¹ÿäðÕ9L˜TM¢|”´à½¨IÛ¡Ì¡0V©úk2üKù&„ì5²5Ϋ”ùì&#a@òÌ“ü…ò–û\©‚mF A$à'ñ]€s<¹â>È &ÓUb¸  vþéÀô+5_ y¦jÎnÄ03²·¬†Pw̱ì1q$b­Æ¼LßßÓ4ÑaS=L‰PržÑšÂ;«¹ù4¾<Áb¹Q´r®Æ¡Z®ÛÔ„³îÜø˜3fh¾p=Ŷ„<çc òúo©` ¶  Œ…[¦>þ¯!´uÕ]àöà®VÛkdB¬§—]ïò´°Á®kÚêœÕ>\›+£ÊY4Ìt8ÐìàÊ?#´è D{>q |ÕBçž¼lÔor/4f¨>¸{›ÔbËc¬ºC6ì5ÜøN2I *o/rÊÃið7Õ/ÀñÃÒ%R#Òè¾â2H/ß䑎èÕÙWOêP)©®)ìwŠnÏ. ¾sÊé§ô/œéò¶  î:xfŸè¹Íü®]Ã25ôøƒæ’íhˆÐÚžã»S§“ux{2P(|»³«áÜ‚?죪>a¡g0 éåZ$­Àúk1óÃd•Ì&+>ÓçmΙHP}ƒ×“pæ>zDLJ3Lܘ¹ôi§;DUN!¿2eLP´c”q™ñƒPæ%…-¾)ýºü:o>óîE|Bè|u:L–ïïC§ÑÒÿNâKð4^¹/`äÉ͉æ¢g¯¿ûöä£ê³²é5H?çæoŒ YmóUyÚ¿Ÿ’Û:Û»KÕ¡?N^™;·Ï–&†ƒ—[lo `Kí+SƒQ,­ºdë]?Ç~2Š-@–Ó9²)²ÆO/:…J A…º-{u_pŠø6l"ÿ  c†~ëâêÅ©"*2â7‹nc| Ù·]Ãÿ6Ûðì­ß–Û{‡ÆóCó¶é¥„.ÑF2Mì‚gy°G8¾éú5຋×õ„Ëh3û!CCAÇBK5ýo:zÙàHø|äçÃøþóñáì ýÓ¨.;vîk`p…òcÜW" †N+dEý? þ·ë/) endstream endobj 294 0 obj << /Length 3277 /Filter /FlateDecode >> stream xÚZYoäÆ~ß_¡·P Å>xÙO‰q HF!4‡3Ãì 9Ëcµöǧ®æ%r-Äî껺ꫣGÝð§nÒà&6ÆOmr“_ÞDmŽ7\øÇŸß)é·ƒŽ»IÏ?<¼»ÿ> oTà§AªnÓ©ö7ÿöþU•]{»3ÆxßÕխ޽O·:ñЦ-¡º3*L"/¾ýÏÃïþô0,jýÊaÏ_ßR”X_Ë[úñTvÅíÎ*íµ×,wžiê¾Ú—Õ‘ õõvG;ͺºi™V¶®­ƒígç[åÝÅÀðš[º“ÌwmŠOeÝË€âsv¹ž¥)¯ûóž‹§ ¹ñ ù"}[ì‘p¼2¾ yÓÿEœ,šžÌø~Ôáç Ô½†úp¼Ç|.EW4H’Ñ3¾¨Æ§nüï|«K§Ú·Iø[çIË–×)‰+pg =Ì?hÌÚ¯­ø*Ñn:p×O§×6`p„š\;qÙÖ´½ÙéÀ×Z4åoý¹+¯ç2Ï:ÖÖYA‚ÅŒ?¢DX<Ñ^]HDy<<@«òn“åÅå‰ëÝ)“™÷å§²ýÚ:ç¬= ¥ÚsÇBbì\H@:ÃÈËÎ=‹¢Žµw.–”×ÕLip‡Ès¸^j¼¢?Êyw‡²‰»äc`´Ø¦•yV/E¥Ö·ñ Z÷«ràÇ:žˆN–£²&ËA˜tÉš-¯KЂ4Ñ—cYUÄ#¤Õ‡E'`q})«lÇ ÒÜkÍ0p ¸¨- 6:$FCµÌæRñ®«ÅKAt°Ú{@>´B÷Köô¿åÎ<(ôÚ’¡iÈfšˆ ŸN…UYèc_weÁ2ÏcŸÊîÄm­@Yj‚Á·R%³Ãa§P)ïŽçû¶¤ë·~šøkÎ=kÎ¥>sý¯kwgC_Çf†œZoõц¢šÐ7f‰÷¯ ˜‹$}sRú&Öo“3˜kiÚ6X¢Ä“ctîHüØ—¢+#¢ÚÕܾºƒ$_hâËì’Ýnø³±¥Ðú‘‰[bsJ ›Û——¢BÜo¹,|a«G’OÙ6Œ©¶o•š«|ÞË=í-Sëý³¼”ç¬õ…k][?râ›d[pqù|äÚ¾Žé*ÅýKÔGšŒ?bí T\ç¹DO¶©iÛ9Y!Â+a”åÃÙ Nû¸ódMì'&ž3Æqñ”]qIÂÒŽ…§S&¥gx¡„\oD$ !°ê|ÆÊÕñI:. α,¤W's§s±$­Æ>ÇB–ϸ'ªxv–éþ/•aY ÷:ÙªM´WÅžEHéذ `ž ]xƒ×±Žè  f¼èIüó+a1™Zï$Õ‚eÉÆbVûIô6ësÍ -ŸœBȃÀj4¸U)‡ç¶Ã` ÒÈOÔg3µ}ì#'1_Qâ¹X‰$Ð@úY-ÝrŒph=rQ<ì³Áöé0ðM¿¿÷>[&~¢’©:ÂÆJõU D鬹ß ¨87²±°NfH'vÌêÐOÁ›qôÁ¹FõÁÀPÔ úÔPö`3 Sà“©P¿À+áÓ¦TŸâE\H|€Q¬‰šô£ÂÉ|ÎFǃu˜Åpì#¿¸N pˆ{ÊÒ¬‹ÚãÃc“¡ÑI@;û+[mv[&e€\'²Pá –’g"JÐ_4%*í ¡]Í ¶ä\(«=F¡baÀsâpáôÑ£ŽC”|>M²Œ½GWýå—ÛPQâaÍŽߨ^Ø-é% ]"«ã³ å—¬á‚Ѻt‘ lÿòë8‚xF1hL)&œ¼<ðwàVØ/”§h7ñ;dLcù{9^$œ¦" ü4y[&J}y£‰FDJ"ï'B$´Ê©«Œ e]rÍ.Xb=v&Ë¢ì(1T¥û/ªÐ¯¬v ‘Dò  ˜^ôm²È+Œù©m0–G._V%LÅÓܨ<ØbÀö1ÄÊ.ߢiH•¹h"Ánƒ‹2âÒ8ÚA­gðwºç1iG~X<²ðí%E›Ñ7  N5V\//1õA“M*I¿n9”XDúñ5ÆguÙ”brÈÈ“ sJ w&ÉHÙ5±+5n?hHÏgî1ì•\‹Ï0§KŒåGéÂÄ‘€ØFªX –‡”ik YŠK rá¡ïÈùm±ÂŠM4|ÄßTmÉD|v²üb6…LMY«ÄþâzsûKÒÉî¨-ûújtòËãêºh`&^Ö·_1¿hxJVo¾d·“ëßKÝHGN" º2i_KÌÚÙH®Ë%(‰RöMr9n#Mî5ÐÄ¡žÀôÉݾ²3½ @wF±­ËTà•&clù~ÕÅEš‡6´‚lVdHÁ?JÕ"¶}ÁPÄ™{ê¯ò¼’9šü„G ušù©ø†‹N–‰¸¡ïSVuÒ÷˜JV ¯6$Ÿg6æ=w ü tdU¬ƒp%̸çn&i„`3YcÄ`lãyÎ⻺ÊEGIA-Ê%‘ Äñ e\©*9¥ˆt>­‹ «#©¿EuÆŒhÇ,gŒÌ¨¹QÊј'n Î+>¤ÝÒl…É4´a~=£o}ˆÙ'‰«µìŸÄ¯r÷0r|žó™wÙ5„‹,^è~§óÔ ?–ãYvn|;ú¡PÖ 6!Äü?ž iÍøÓ#{ÝŒe•Ÿû}ÑÎz@¼Š†è3¥jÒUá†^.©D9)Ø=rãæ¹rÚ0–X=¶RÉyÍ/T%Ë ™~ìCÓ° Lÿ ÈyQafL×*JFfŠÌ0å±ü4äÔUŠi“2ç–\Ndzµ”¼¿¸u”/¨´„Óäûàl õÈ7&šúÂtwö²–ö>OÖÒeèµC¤Ÿ\a :+¹P¬¬]:ŽZÄÀØuâAA„»Îˆ¬Q3>NÜÊu£kÐóÂyNŶàvF&h DñKN~sˆª9¦Æ*ç^¯—!Ñ/T@øoEÈ0ZÕ°ËžX·º]“U$£@–EËò%ÎÏ2r9ƒ»3½zUusǤ·‰DÞ&|VÉkÊÙÃì ¯ƒë­ŠÙÎ2]Ñj¦k+å§~4>ŠN.ðý$)Íw¹•ŠNÍÌy¹›¾þÁ²SezôzÐW{0ÍîIÀeö2®:­ÂŒ>ççh^N¼A»LÄÝ$´ÆÐB3æ‰x…[ñ6ˆÌè }5ÜV/ÃíX²Æ±õÎå¥äÇ$º¬^Fõ™i hV2—±·ïóNÆ Kšr]LW‹-)°5Ïëÿ€y빤¥²˜Xx’1l@Îåy72Zm ƒb¾v¯{!w^ø䂯ïqÿƒP¶x4vãån‘e9Q›ÏTŒ4žäµØ¸­(cüd¸æGÜcÖc”°ÔßK– k¯¦/N/Ðq¶äŠÎP 4LwÈÊ3‡€îec™¢Àw{‘otú†œ„ыܦ’ç ÂÝ‚ø0T´7Ï^­1ò£™É›DþX„[ÑÆ‹C ` P&³ë0 ܯÑþ×£ËB endstream endobj 298 0 obj << /Length 2342 /Filter /FlateDecode >> stream xÚµYYsÛÈ~÷¯Ð›ÁX„038×yñ&NÊyÌjkk+»ª@àˆDhÖªÊ?>}¨¡(×VŠ˜³§¯éþz¨®ø©«,¸JŒñ³0½*öom·WÜø÷?ß(Y·†…ëÙÊoßÜü#Š®TàgA¦®næ¤n7Wÿñ~®Ë¾[­1Þßšz¥ïëJ§žm»ºk£¢4öÒÕï·ÿzóñv:(Òú•áÊË,Åiè+2K¿”ýnµNÒÀËñ£¼M¹·5òSÙ®ã™û¼³<9€×«uši/¯‘õ§³›ì‡ÕV4µ¥•=¯,ezo󺬷CÅã¿Q`ý­Òƒ4ke|1ÿÅ1$ž büÀÀ:Zp(ïà8$¡}“(h(Ù²= ý0 ÇMoq™§ÇÊûÈv„&óú]3lwØNAÌmeyYÇo×ìmK·omÞÛ wòŽ·- ãX4’5Ò‘¬ë$ñÃ4‰3WäuÝôì*»WEw±<2Qgjð2³?¸´¥S?…b_ë˜OøµVà0ÿ {¨©ïÚ|S‚e‘¯,ñM¬—lÝ1Ç‹)žùøÇåê™ñŽ¥c8l²~ÎÙ'”&HÀ –ìØBÿ㿬¥4¾çÚÃ:åÕÐì°·Jy•¥šÁ(}$ëðPÞc{è¤wOKdGΟ6ïr^ h˜vÉâVÍþš(?Öéä².eľÉô¸âÆE%š{ð7@©q…ˆœ×›£JÉ‚&ÍÀ颥u'cÁâ,`¯‚/+ ¢}híIæNzGeFð#ªE­T{?a E9]I‚¹™Òò@pÇôÃÀ@ dLyp½Ö‚>;K¡U†æ9û\tbNò*n ðS[ÊÍ-ïÁp–]£Û†¬pPHõÄS­Ý ÙÆ ‡9úI¦_ ñ©)gc\t<ˆM:;w ]f§èõW—3Ò¡¬PA€ÒÚûe‡@Fǘ¨JŽ ØÉùS7õú®é8E[­ ¾Ylõ¢Ô˯^®Ô—­o”ôý¼ïíþÐw|ÒxpÑÔGÌÓöryMæ+u‚HÈ‚™·±E¹ÇŒŒ§Ù2&_ÙrÌâØ£…'Yœ&ÈÏ\T©ŸEñÿÄ1A byGW>aðI|6"ˆØu%Ä9ç‹éè%sÄS^ݔݡ"ß}tj²Ð7µçWïâNÛ¶õzîòퟟýòµ ]×éGB€¸Š1ÈyŒùžÇŽÆÅž]€ÓÖ~J¸ç¯„£`dçÉâ̙qø©—÷옕~8>ã {êÆXÞ 5ZÀ»Ði™Ó*k˘pJ”BYE…Š»X:J y¥¤s”6Ä;) º÷ƒT)nDøñ³DcqüŠ/µNÃ×QΫû¼7“À5C(DÐp*I ÂAÆ£¼F4"_ƒ¶bHZà $‘`ahü½ü-Pƶ˜³eŽ/|>wWP»„´Ôó¿®R(¾À• p¸ÏQ3OÜ¡Ìp¬Î8tæS¥¡9 á7ßlx××2¯†q ñ£±šY•„ˆƒƒ<& !JùD a mú®ÜX^ÊFúäscÉ92Ë—ÞQ}3®Â2â±D,I5”Œ r˜L˜WD ˦$ˆ¥3+ü)òª*†•\¶‘ŒÐúL9Èd}ßòÕøÌ]Ò²†§dIFëÏf!Á<4í1âl9G<,à]Ë<ÓJíýØ–²jŽz Bp˜U|î(À;ØQß½ð!±í½ËA“.±Ó+ÀÒ¿‡°¬O[/?+Ù~lë»X#’ìo2Ò mÇÍw2aø»/ë¡·Ë9#»: †Üt®È7õ˜×ýÏ—K ¶Øó^–ÆJ;. ςsPbÇJ%A$ÕÚH났J©n) ÊúµrûK"˜vú²´Rm8ŸÈ\´×}?,d€2k)[uÿà8Þ% ’º ÃÀk8ÁÁ$’I“4ŠBíLì  ¡SÝÒ%Qg_È阎ù±H×T0ž@b˜* qŒÃlî{º¦2>{ERJª ¡×ðDgNeAOIŠÞLáüél¬³xâЖûµCe_JA×kŒc×Üelf^€kÒʪ’l>½äÀš¤36—À]rÙóAbFwhÊŽ­ÅdijM9°ƒk•ø±Y–‰ò¹œOøTUv;‚¾ˆPc>Æz½ˆû#ž|íÃäÄà!>´ y…d”É@¨–Ð@UcÀM Eù®„€Ä(øŸ¥Š,ׯ%ZŠ\Õò¹‡¤fæVÏ-zV Æ­4z-‹'!ÊÀ*D­ÃÀ{À+Âà—SmÇ'ï1_AI€ôù/tÍnÁ4¹´ÀAÍu#b8ÈL1zý̧·-§—þ9·6U䛩P¥ç©wê›æ—§é0ŽÁ5§ºïíû“Œü콉8ñE nw³}?O•Ÿ¥ñâ ˆDò eÉñ‹DÕ—‡ ËxJÍRDàôŽäLC(`vK¦ÂîÜg±ÏÖÆáJÜïc±ñ“< ?ø¸Óìé9˜ö ÏDSžó©à$‚¿„gϲǷÒg#zl6/15ó DŸ»§UŽ€¬3og†šSÙþM¿ì¡Y\ºë“#(º’RÑAm?Úá1h›Eþuœ,— endstream endobj 301 0 obj << /Length 1983 /Filter /FlateDecode >> stream xÚ­YYoÜ6~ϯ؇ÑÖYF¼tä­I›"}èCë<mƒÊZîZVÚêðôÇwÈ!u™rl 6`Q"53œã›2Ý„ðK7i¸‰9'©H6ùéEhž6Ç ~ýéµëv°p7YùîòÅ›RnhHÒ0¥›ËÃTÔå~óGð©*ºv»ãœïëjËâàfË’@5m·;Neéö¯ËŸ_üx9(’Œ=Ñ"½ò¡IÑÔ$J’l¢DÊZõ{ÝoáU\g7ê-Ùýá0ïÏ­6 ¤À«4Þì('T⻟ÍÌn>EqîcYªcV¢”¶?á nðº/Õ¨*Wöù¯U]íòº:ÔÍ)»*ídoª–Þ1½l*L¬“/¯á%ƒ[ïÎjѵ,Žƒ¼îË=Nee[ãè .°Ô­h•wå=ÎÝ6EשʾÒâš¿­3¯2.aÿ ¢`Lø3”!xð ƒÅx;/.7E$â‘{ñÙî‹‚Tv¯sD‡GßhsìÖ¼FÄ”@H­$<ÅÇôKIh2þ Ã)À«é<ÐöªÔž³Ü EPØ\.*ÅjÀßÚãdæÔ%³ôÉ‚ Vžú²+Îe‘o% ²N‡Ê磔NÝ;:rZ«µHdcMi“mv²†g->ñúŽòˆè¡Õ1Íg‹ˆr3ã4.$<Ž=ÉÈéŠV& ]xãCb–Œá1²²jÿˆP‘º7vk2ã…Ì\‡ð:k²âØ,OŸTWœTkÕžÏX,YcŸ^¡ÒÌL])L;__¶X]ë.à1tð‡H«‹Ägµ§2•Âppᔩlo‡]mC"S‰9*e•M‡“6íª8öE§G÷6§Ý´½NADßO¶wþ\‚|Møà`Ø­Áû÷¾}ñd¶'!lÒ€1ý–€|ä-lÁVO ö¤J2[ÒÛ NYYâmoUrƒÉ¦lrÕkûÆPƒö@%FR)f˜‘'R6‚,§Êõ˜5{0eª®êß¾¸ÙÊ Ùæ>ïj¼ú= ÛOÙ vµ·GÔõ{\žH1+fúÒª"ƈLgjlvhUî1H÷ïrˆ‰h@úÆCú2o>Âc7 IX—ÈöÖã)À¥óì¾R¢[Þêö‘™G>¨.ªãcHIF$¹xjr!:ñut‚áóàiÞç¬Yä&ªÃ xÄ [Ïv™(¨d ÕÆ`™€ž1C%(ôBMü ÍÜ’#I Ô2bÁ/ºH€Äp“Îða2h[,-»ólx"M ´>ùa›pn>Ÿ^¥Cf®²h¢Ò kRÄÙuY„õf <É…ƒú¶³ªZdƒ7_ 2§ é€G'i¬“TÝã¼½ÂtÔ{½sofÖ"‹šá|ß¶MlêNk™¯OQ =0¼›7± ]µ¯-4s{‹èÈ…õp_ãüÀðuYÖzñ-Ä[/ޤ;~ä m³¾òù-§=®äÝfUgå™Ý˜ÅB>¡op‰æG¡€ OlZi@ëxH×÷ó//VØ=ô²§n W•fF“·‹*¿~¸£Ù†àI¢ÒGwÆÌ{<Š‰è‚“~o2™¹ˆÃ 55§.;¡î²Ó¹t“ט ºxµCðn!a9cp@¿P+\kòpº¬·`æµ)ã]Ø9ˆÔl®ö %u×Ýjæ׌©À¶hj[ïlç€z‡¾ôæoN=«0ËZã–ÝŽ ¹&ªÖh„^úHË‹’i})}ª(]RÐs[À¶Üª^¾ÆŽè%N\ t­RToôaô>{-3™™Ì;Z'O%I£tÙ:¶Îw}Qv;“ Ð&?lSÍ1s}Ú{´]¦(æ7e?’dÆýÐ~Gq­ ƒ4ôŒiw°ðܘ\½)€m¾Ejí÷FÊIÌnÖÞS(!iÆóÇkÔáÈH<ú,¯ÛUyìéòJÔeÕ·7ØWVOÈÈgˆ«ßt» Ï‹mÀÉ'Lòj¦ø- ÌVüÀ@ûmJÎlSó3eèdƒŠ•˜/T ]3„I¬}%â‚„rØf¶’ì Á€­ ATá•,‰žTD3'Kº†QкRöì"Òò¾â˜ˆX>¯špÛ‡h´ôFcoc]¢ $Ô&8¿ê[éÎVû´‡6–-ø.¬DŽàÍ‘›êhîkÄb…zµ´ËƒÑq8é< oqšÎIð@ ÍY7´_lÕ±QªuÜE#^žÔ$ó½þ ô[0÷­ã.rBÃKÃØW­:öóê·3…z ¡_wÞ}9ÖÐj7+>”?œúd*øí»sÇ™ãûî=Æ0ž~l eàÎv0œ¤¬™©ðÚ¹¥eaŽ„0²YßÌ €GÑ,[óùBŽ GæÌ±Sá]S@s>ÖU}2\©Ód©È}Dö0oá@¨úf™ûqàþy²–ü“üú?)ÿÅæQÓ endstream endobj 306 0 obj << /Length 1647 /Filter /FlateDecode >> stream xÚXYÛ6~ß_á·ÈEÅå%‰Jßz"-ÐÉA«Z›¶‰È’£#ÎýñáP¶ìÕ®Ó‡ÃrŽ3?1Ëù,SŠåÚÌÛ+î¹ÍzFÄ‹_®D‹A0I~suýs’Ìg9ÏÅìf5Vu³œ½‰þ¬\×Îc¥TôC]Íe}žKÙ¦u0Œ•à&Ÿ¿»ùõê§›ÃN‰”_iJ^°Ip ³z–Í„ÒdسÕ<–YÝ¡9uƒ4Ú»vCì®&NW|D£-ä‚8º„RõŠø=zù-Ι±Â,Ú8º£Aß5ÝÆç/ôÌMÇæJ-˜N¸ç m?5];ñJJ$©'Á †v˜V,˜‘½‹þÖ6u=©['̈ìL÷ª¯æ"ZÌcu¨ºjÙ<Ö2n6\=³XéÎ:ÅB1‘ÐzX¸èàºñÐ û©w¥A·)º ¬¢Y÷[ëc%Lmü)Ràœ‹¨ØíÀ”¦Þ5®èÏßœEçÍË¢×s£èF`墨ˆ¨o»ÂzãÖÛóŽwŒñàŠ _nÃ}b@÷­«ÖHêhÕÞÅ¢¤)ûeGZ*tÄD]ûtòF 3 ß0•‡|yv&2Ÿ?Û§Db¼å /…¯8±ëlÙ¾¨º°le­¿Üá6Oüø†d$7,<ÓS¾^“ gœë,JrI—<(”)S\ìÆ)hÛÆ.ºbt B¸ÍÓíß“úÓ)q¬‡¤µªQÐ瘋ĈfIc$¦ Q’É,'% K`M*£ç˜Œýìê‹l¦£Y-äD_N¦6h΄âmÈ ¥%å®j-T ¥2Û¢NOcáÃo˜TÑîh*ª«cÆ¥^3æ¸RBí\‚È¢n‚&<åÉò¥RÎ$?T¥SÞ%,“Ǻ…·„5 ѳà B-^õe¨YiÂrè 'µßØŠrù+‘?"ìÑ¥‚ršR;Μú˜yÒŠ'N\\KB ë¢,1í0)ÃÝH*ª%±nS³? ¯,úˆh£Æ‰}˜PS Á¶]¼tTïÛÀÝÕ WU{W–st´ÔòÇÚÂA-§¼ñ§äQG à<ªº*]e Ü7É}>ÒÄdÕ˜Ùu¹fQÂZ[L–¯ мã.P»vtÜ- ÑpZjN [βìPúšyØhéúvjè%‰IY;逩€ ‰ÆjÜZ{ŽÏµ˜ÇÓ™ÌÆÓK}ŽGâ8ý\)¥õÀЬI™$âͶ#ää§ó÷ÑAyô¯w{‰†@Y[b }îâ!cf2,—Ü ÂñHz«3•Þ¼`‰/ßhHAŸ­o‚H--Dji1ITâÛõõEãv6‡ÚÃ%šö! ‹^>£¯ïßáAŸ70q–l¡?M“Ìà ¢Å!‡D›ªu*çLIqš8®šR+ä¸=C¡"3Ÿv?ÈM"çR¦/76ñO}CAÐ0ã¾¶É&ïd ÆÀMÎEÚév¢‰=‚˜åT3{Ø `ù£½,Ét®rõ(À"M…É/÷²,<ž}ïê¶#jQ´–^ÀYÔöMS¬ó] '÷çßf@¶»bH×Ò[µÆ=ž5I„ŒÐ%ްãW/ê¾\ÿì™@y“u}_2~(Ór] |˜êæl Zûƒ=ð˜gF›ÿ€Y`ÁŠŽì Î{fAè?±ofðJnÜbÀŒÔ‡<œ¼Ûâô-¡2`ÅMЇÿf¸fHÕÃåx”öºãI9½œƒ[ŠçT²<ϧžJ'3᎞ %\o!žš¡Tÿ '­Ÿf endstream endobj 311 0 obj << /Length 2106 /Filter /FlateDecode >> stream xÚµXÛnÜ8}÷WèmäE‹¤¨K‚y˜2›ƒA&ÎÊÝênaÔ­Ž.vŒýù=dQj©Íöe7I•ªŠÅâ©Sâ^ˆ?îe¡—Hɲ(õ۳Ь6kÿþåŒ[¹‚ÁDòWg—?+åñeaƽ«ÕTÕÕÒûà¿ß•]{H)ýêݹHüÛs‘úEÓ–˜’‡iìs~þñê׳Ÿ®FKJˆgº¤%Ÿö)N#ÆeD>ý¾)´i!üÿh»§â2b‰„r#ûÉJÌ*–ˆdø†T•z—Bú«ºªj½Å;³Ï%­ÞèÉ=Iæ´´,×ew¡Ç‘ßm Z¬÷ç OÞQ|&š·ZG_uå¾*“çÝ Ét›Ü®_HU½ÃfñÛ•æ• ½/ˆB©Ä ¸d\Ñ>ÚšŽ *:=ŠÜÑÁ›aÌÇðW|8‡öh Ð)6û€Úâs_Þž«ØÏ+ë­wÖ§Ù4ei”NÅH~K/:}ÑÌza •6G¡:e0NX&¯ÝMOÅh„Qp2(Ë¢«XŒ(›‡œ§8Þž,.Ó}[ Þí^2=zQNBW{¿Õ7î‰øuE–òÝ‹0ã~"5D§^Ùl(·EûšÆ«Ú>,¾äÛ}U\¸\ l>vó±Ý¼Þ¸Êßä·Å+nM°B›ƒüHð.ßu¯ŒD¤XÊ“¹ØÅª° Ÿ­2>ÕÌ^9íÁ§áç+8âΜØè˜ç}[îÖltâÆÛRþÂÇ.{žç÷Wçܯ›‚ÖsúYÔæìçhŒõMÞÞÇ#•‘ô`Bl ªAäÏP…[3}Á£Ø/·x˜)ª{kjÕ™|°Š8›%ìè£~pWviÌvXÍPý`·Es£ãé:©d<¾zOE]ëÖW«-Šc^$#Tœ{Q‚  <=Îé`"îàGÇJ3?lò½¹½Ú›Œ~>¼™Å –^6ïã…NáïóuAË"|Àêxd’ñyÞÒOx¬Ôx¯qe :ª™Þã±Ü‚ˆ(‘ÞN‡²ç¾l‚AÙ‹/ÛÀ{ èP³|·,–NìÒð'áæ“ðµ-«bV¹œ…Ë WÝÉf´¡ïèG‰4œ½>ñ‚ÎT[õ.é 1 y ú$³ˆ~¢ïùÕùé²<)ú®Í}š9Êã¡"ýpÉŸØX,¸L8ÏÛ>]ê%ë’ªð#¬l4M²§ÞÀäg—‘Ô…þü™Ï±¥(sPë}So÷¦Ÿ½›ŒÃÚ.»êöyUÝŸ¸–‡ÜOh1ñ–¾bäCŸ#œ¸¥/#„•S€¨ [jI,Ðkn©K2•%Q£hôÓïVg1Б1.lÿzåÆxT¿(“Ï)2KB´nò­æ;¡@†l™Õ¢´áÁÃMQíW}E压]Û7D±š/=J¤}xBƒ%øúNo.·oƒçµeÛ;ˆ­AÜÐ Ï.ÊuÄIzD ;2‡u´jkÔ=Û9`¡·M5œ eˆ~’ù?ërmšóØ6 L3ÝŽÒ²æ‘42˜‹_JR ~Ì›Åý×w¥(Û›|¡Ín\p iV_.ýk›nBØÏýÐ ë 4gƒfMßDeÎ7Tƒ‚ÓÁÅrVçýÖ¿Nô¸êÐ~GSBz “6{Ò¡~˚Ƞ¤D°âHè¢öácè-ñÛc2K½;#ºÕ&Bsé+ï·³wTûænŽÊ¤b‘ƒ"íž"/IÓÎA€Fž )áÚ6\Š•‡[6Ñ%p<›‡aùÐ1˜bL‚ ÜŒ'B Ý è™¯Hcˆ ?™4¨Ü©z2käÕ䔸¨eîQ?˜Y6õþ™œ(™´è#r™J§,ô©mÞÚ¥¥Æ‹Žn¶é6\%“|Lö•ËJkŸ4§kéMvIÕSˬšr1ð^ÌÀúëÆéžƒÏgó^íí‰(Çélï2 -¾``±ÌŒ ødüðp_î©qvúÀ…büpíß9­ vhÉ7M]õÛ¢ÃÆim_˜ëfx…Ê»Ë4§¡­,Ý'’IuÒÚ'±ŽL× <æÊc¹šäÀDSÀõfòÝnüР'Ë¢-›¡¾èmr[S¬˜<’#¤Þ=6U‚À;f!° IŒú àý Âácø¾w¡œþô Õ¤õÇé :¼8ó&R_Ra%MIBÃŒþ6¤‚äz ͈wò÷!5eI–˜ÚI94a†Ÿ¢i™)öÄÕ0£ÓÇ4°ù¦¥ñ™`8Mʉo½Ö$±%SM7‘^÷{¾©Ô¨Èê66µñþ·‹£•F n@= ]’2ð¢ÀÑ1Ì?ŸIýY­¯löߌ÷Kq©q½6–½I¿*é›ÂÿÿõJ#jz¹/¯…†R=«n¶—«îZêùªÓ+zvi ÖH…ü²Ü]+½Ïì­ömù°»"ñoI"BéÏŒ3—ÊCß$D– Þ„è$b§ endstream endobj 314 0 obj << /Length 2498 /Filter /FlateDecode >> stream xÚ¥YK“㸠¾Ï¯èÛÊ»c¶øÐkrʤ²Iå°‡M§¦¶vv*´¬¶U#KŽíô¿@€zxäéîJuU‹I$-ïBø“wYx—h-2“Þå§w¡£¶‡;jüú·w’çmaâv6óãûûŸ£èN†" 3y÷ð8gõ°¿û=øW]öÝf«µþÒÔ•O•EÛ•ÐÝj¦q Õæ‡¼ûëÃ()Rê•*áÌ—uŠS#¤6¤Óñɩ ζ-œNýFÇô”þÇ1[U jzÁ® J˜Qï˧r?ØŠH}ÑžxrYÓ·'Î*(þ{n‹Ž÷ˆ }w›-îž:,»h‹=jÛ-~Þ¤&x´Ì¶Y?ã)Á®·R Ñ^Nåáˆjö0+Ngüã,h »'òcÛœ¨E"©iO(~¨¬Øl#“®@P¡¤B-´Ó"I¦e'ª¾¬é¦R‘ºLD©¢u¿5œÊÑ>¨™ÞŸË/ŠÚ?Ò§Úîq' âc¿è~£v -éÜ—õ—híæGÉ[÷,ùÜ•nª#”Ér>K1ZDZgq¶â÷4%¡RYFqºvîÛĈØqÇsдôj3ôh!áµ]€;£‹×ŽÃCWÖj:»ê¨ ÎE v±ácôfâ|ÊÉh‹§²xmÞ8yO¸ÒÃ$Ò/Hu^öínÑ> dÐh3sBèðh`–í^0 ý“ðf°¼ùÉ$¦_ÂdBÓPçIÿ·M¼Â$ä÷mH‚šX-lœæÐR@X«à£Í7Z_/øß¶{DŠ$‚Øv:ÃÝîʪìqäùMgXÈÒ¹¥ Eɬ-µH„‘9 €guØXå ‡MX¹½Åt†2k¡ P2:3*›Le iËCYC\±ž(i˜zîCÍ õ ÔI¡¢qgbä¡F³DökÁé–>Gô¢ƒCvì‚ÛäËuÎÊÒc ãt7®fU:#—CZWÙî(D3)ÂxaLÇÒE]œ>‡RƒbWû8šé pç„@/¡v¨b€=—c™ãîŽ4tà K½Õ  tºpàZg ó$8äg¢î‹G À#ýxöÄ-wµ[2X¥c›%þ~ Ü-(33‰YœŠ%™N9N³—è&Á¥#ûˆò–Í¥«i²lH4ÁϘ¬6- 쬳ò¯.X<âú|0ò¼f½Ïà0GŒÙ`¡Qúhc_ÉgVî%‰„£×ÜK×Ì ÐWS›3:±Ë«Ú¶ÛK´ž$&RHiÞ–ã‚ÊGçlаÄûX2"iDn{pšd:ïq¤—ï e šÍüšÍP_AÜÌãW ÁÁ£‹GL ¹Di 8 ý{Ù×j¬@Tì¡;2+wžÏîP±¤/œŒbûZTpBœE#^zaŠï©UÖ4¡/rôžcé<ìü)t4³2Z´oÄ1Þ @ƒ°rŸÓK£DzÓ;°MYö{ª19`Õ‰þnx–tó:É’o¡ å@AÙ;¤YeODgø%òª!ÀðÍÑ1Ž>rm³¢íò#'±<…ÛJC™ÏñÖaF¹wùx]Á¯xEHh¨@Äæ¯Ï:£âÙx[nÒ®·xÍØFÑÔZ\¦òŠ5Ži· ¸nCêzq¨"¡”|ƒy³’µ´¼µa×·6çРcHZ¥Y„¾Lß®B*J:5vlu(v­…ŒÅu§Ç ØïZÝ 4„»W™d¢~š³¦Ž$CcæÛ>S{õÔRÈa_>³t–¸!–céÃg憎ͤ"ʲ+Ÿ»>­CvêB¶‰}ÈÆ(˜Ê) âÐJDò·QÐ1¥òÞÜŒB*¤#M§0ˆÆw# i©—aᤜ&.©ÎÁ5 qjdr™„‚6ZRbñBQ}&ßkÎB¾[›øä‚J3¦·«ƒOüL'o )dÿéÛ€y¹/SÓ‘â¿<ÀX”k,Àå=}ëâQ‘y•ø’ÌíiM½‹eü sÛ=äÎ,ˆôÔ-χƒ`}¹Ü€@ @ÿÂzÈù]²@Ô@Iq²~€€RGo;@àeϼCëêc¤<ö”ƒÞ”Ä"› 3·×ÊjÚ+ 麓‰lzZùéµìù!8fƒvÏÕUÅ"óž~—ôq?>€{ð†64æ+Êï²L@1¶ô*wþì°ÌG†qcè]!¨q_Ú™OT% ¼@ª%™ÌSÉ)~Áàø(H¾¬n8—Ê úd£q x|D›Äƒ/ÿD޼•ü¦gÛE¯œ½T‰ˆÌ-~à'@G‘髸ûfÿ®Ôþw‡®§…LÍu:´’À½4¸b×ýŒƒ~ع¯D0üÜšêL…÷gÈ—jfWà5ÒëgøkpsuÓ“_kª¤½DÛ¯¼Õ²_Òɱ•]?Ø–õø"ãñÒëo¼ø–è¼rª¹J~9c¤ °—â{1½ "®Do$DôIÄO}1¦æ:ø¥©«².Ü[Lbܯxþ¡³Æ÷Í'üG¯Ó«ˆ\u* 5&®3v&”pºXõõܯ,Øh Ì3½]îy.¿°‡að8ÔîB)‰ämzËuv Þö€¿¹“å—×ã_C ÝUqªG}V"¥úü>võÏ×Ö ãcÞ¬î‹Ó&†–j\üUóž†S endstream endobj 318 0 obj << /Length 1801 /Filter /FlateDecode >> stream xÚÅXYoÛF~ϯÐ[¨ÂÚpO’ykݺ@ô!qIŠ®¥µET"]v ôÇwfg)¢l7iP ð^³³3ßεä‹~|‘Å‹DJ–©t±Þ¿ˆýlu³ ÎÛ_ð@·ÂÕ€ò»Ë¯.´^ð˜eqÆ—×CV—›Åûè—"oêåJJ—ÅR$ÑÝR¤‘«ê†+ÉãÔD\.?^þôâ‡ËÃIZˆgŠ„”G2%fÁ“ʈ “IãR‘L†ñåJ].3¹ý-Ê"Ù¦­ôíe…¹»¥Lñ¨ZòE®QÒ©Ò€ ÏAg¯h:T0Itµ\áTƒ ÷~Õ!ÆD—ÂÓ{)ÂëåõMþ!æÒUÎsnhõdªÊ= vyálEÔëƒÉPsR€¤éí uôJIÆ5éä¡!ÕÓ¡êB°˜ãexª¼XWK Xî]ÑÌB¥3=ýßµ…„ó·¡ã>ÙýíÎR//LíJÔäž-WŠÃ­u¤öª.wmÓq˜@H³³PøÍÅÖ›ÛxW‰b ÊkÎIÈ+dðg+µdÎJɨnlÕäÅ -ÜçÍ–zµÍPmÎ5K¹éôö²Î hfqÚQ½<ŽIÙ.zC§> 0eKGíqÐÖ -µµ£éë¶X7 ©ÝѸ(‹cÀ/I8á‡ƈ¡1yS§ëR–5Æ//7X¡21!œL¬<ÂØÙ”Eèµ5†Ý€$tHÂ( ½Y$Eš°Tܸ›9 yÂx*@Š uÀØ:Ѩˆ¨S¹¿ÚœL}±’±f1xõ‚!ºÖztg¥e¸=e‚‡í¿áåi¡ÁîîÜkêâE\|ˆu¬4üç#÷›n»·E3Øvî‰ZW2Þ‘0A¤KG" “ñ#²(M-{ñ\A€vF¢ÿ†H„žcöŠc«¹[ôîèù!€‚ö\nóâO€^©¨¼¦vÖPTÊxi)$†©„\adGúiŽ›_H:Šî’Ž‚Ûè%Éæ- ;¶-5ÑèªõTrJÕš­ Ìòb“¯mãêÁ ”Ì/áL'Gš]%fÂ\¥Þ–ínC\·¶OcÁ!P^ppd©3ºSŽ«$“z/fC`ÊŒ4C±m»Æ(³ušiJjó†¡ ÉèsÓ"BÉâd!”%‰~¢ŽÄ«õLy3aée|纋y€Vï¿w³Uá.ý\‡$ C_}<£Ä|koM‹dª†ÊS)¦õŠL™zM”˜ (fÄ×ÐgQ© sŽ0Ù ½ö5΃ù“­IƒáâB~ÚæeXÀƒ3D*çj\,Sð-Ô;[—‡­eÛÔùÆaÊâ:â4âpîvuÞÖX3 TšÄŸÚ`Q"3óªÀüÀÕpTÉ4º¨ß‡ ˆÀ Ä1:¶^¯L¤‚IÐKŽô‚uYù‚GTDÝY%µ6zð'hÞ÷ A …VõÇúÒ»Ci*pzNeÜ{MU%P̧`ì«ÿ7²‚lyMÒúPã¾ÄÑ´<£éº ›úˆ9’f%DÂ2=É9ÿaÒ†{y{2g‡d <™If.¹Ï—1ÏR®2‘=;oÞätÏjÔvz`…í®¡e[?QÎ|&2W3Ÿƒ ÿhÂÞï|öE“º&íUö‘—ø·`óˆsd„OŸïêë8Gì|Þ!‰ÉA}~ò-’ ß"ž/™Âh|‹o†`/yˆ4·Uye¯v‡Ú˜–ï©r‘r ­û|t V0ç\Ÿž¾¢7>Y¹¦Ò“®Ž>muPÜ“&ü_²%×½ßñ€#ÌÎ0Šõ©¡ÿF$yAoÎh÷k낸r"zƒÙeɳ®?ZYã •6¾ƒi[?rýKìÍÓöëµI;tôÆíîr|»*™Rþ,+:³Îëð\•p-©ž<Ý›ÃKUd*à\ã1§ç²È‚Iãú¼?gL™™‡ûØ•ÇÎòës¼µ3~¿uMŽ?Y498–HD¤‚@>Ú„O¨¦ªN7ÛqE+å{ÿ䦧>Äu‹‘õÛù4â$}@–°üâ7·L©9+7§J íÝ{€î9:ñ©H§ÀÑ2>4J`ìŸõÒœøò"᤟ž09 X{ÞtÒD÷aNF»|Ÿ7ÞLºÐ†:®†]Öð‚öŠ9Fì’.C ¦ô¤è&…Á,N áËBlî–ú»ÖÑ0<¡wO¡v¶ÂŒ0;z…»±Yq¡—U˜9+@Y\c_Qà–ÀÓUxèqÒß»º†gÎë/+,¼}¼}˜ç`vZM>TýÀ­ÑÒ·ÕM‹ß'‰'ÖÍØöïq?Ko$ʽÀ? _lÿq×Êî endstream endobj 321 0 obj << /Length 1458 /Filter /FlateDecode >> stream xÚXKÛF ¾ï¯0z©\D“yH©·´H ôЃ¢hú˜µfm¡z’œÍæ×—RZ{W»‰ Äáp8CV+ ?µ*äÊ#Š$_m›+¸ýnEį?^)–‹A0>‘ünsõò‡4])) Y¨ÕææTÕ¦\ý½k«qXÇÆ˜èû®]k}Xë<òýPÁ26JæY¤’õŸ›Ÿ®^oæ›R­¿J>Âd³•J„I2͘²<Ê$„)z§™Ž~YÇ*÷¾ 6‰~îÚºj=2ÝZE›²€ï¡©à U¥ÙÒ·]GM’G«Llä?ºæPû7nèÛâEpCë]Oœ#» H×{:¼u±ù¾Cš…Êê½TÆ÷¾EoŽÄì«vGÔP}¢;mäÚ’x·UÏøvî¸óà ´)a„JÉŽ"&ÚõUPªñBMêtt|I"7]O„»îÝPQXA+ðÒ{E¥ßV×ë÷jâ [W{öíß5í¢äpv›>ÕÜN߃¼ wàÖSãY÷^¦Ò‹õ©)¢kwl<ð”XÇ…É£ jN ðÞNs}I«ÒŽ(pyR³Œ«‡Ž¥‡C]!N\q ‘ ‘ØvÍá8V-„oGœqº ‚ÍÊ}à,!ßVýo6™á€1îA!3ƒ÷»úØð:ø…é3 #½@»MôÖ¡É•¸=Œ«)A‚lGæd;Ò š®gU¥]U|Ão˜j fPâÑÙÛ ð“Ä~¬Çê0]ð ’ò‚…éM Òj×bê'~;PÒÙú9™^PÐÏ9ØO·£?ظ}ü÷Äíÿá*V M’§`j01VK¥B)‘¤É$óµΉŠÂg/ðU=ú¾í¨ïÖ¹‰ aAžƒ9PâDÚhëZ$r|‘DPR1ܵ]¨ wÍ@œEäZ&"+Ì„j'å"t+T®gèŠ]VfØ$9Ñ·¨Pk$*tø:JÆßÑ·k'ÃÜHTÈ$JIÐz>Qµ÷.®Õi.R¨Ìgéw’ææ>Íä47 §¹XtW.òPñ¥d}¿c,RF{÷ÁK$VÙæXl”Âò²Pgç“·®ùdÕn÷>4šU’Š\Ùsðß”²6ÑRê¥ö’¤ ߤ–:M9ÑXŸÎ„yüu"ø¿ºÜ€ø¡=ƒ\‹Üš43ú2äŠ>Mó¥`gCŸt¸Ê…–ªPÅeH°sþýÝ—]æ¾pÐAOÛvn„Ä~ÂÐ…Í m–ÞVláI‡'iº¡2/£Ú ØÔ35%ÄÆ& /ðv å8‰o±S!9ŸÙ`ï¦ïRõ†»Þ•T“A!·(Üë.¶ô .ÙW[Ôµ'Iª¬êþÎ×Ǿã#P> stream xÚ¥]ܶñÝ¿bߢ­½´HJ¢” Ú8-\.P_ 'Aè•n—¨VÚˆÒÝüÛ;Ã!µ’N×Û 8ìq4Î93œ!ßÄðÇ7E¼QR²"É7ûÓ‹Øa»Ã†€ÿý÷t; ÜM(ÿzóâõßÒtÃcVÄßÜÜNYÝ”›Ñéív'¥Œ¾k›­PÑÝVäQÕYŸ;Éã<‹xºýéæ/¾¿%¥B\©R>¯S–'ŒË„tº9V YˆÈly4ÓÉáyÔÞÒ¼¦Ï¦mjÓTº#ìíÈv 7Kä¦)Í^÷UIŸŸPÀg‚Ï]õc̓ӡiioêÒËþ1Nã_p;ÀŠlj…”“iV;#¾xš™¥)SBН€'¦}ëå«¥IÀe³“IÊâ<Ýì¸d<¥åœ\£OÕ×k*‰œå°&cYXôŸvØÂ‘¤ÑQßÁ~¹7]uÐáBÛb±JD š6ÍþXY§+êÏ”ùÝë¦w:l@Õœ+OʼnìMuk@]8 /“óµíÙ©TU •·¹ŒPL"ãh¯æÏ­¢/MÃÄÉýáD鎕4 ̽éí৉)œvwN•ó?ÓzVgÝy<ìEe_6Ma]Idà7Ö®À|·¾oúª[3\ &ó$8†ÆsMþ_¼îr)“j\æÎýa<‹¥˜¤`I:ÒEœÏHiOÛX PÝÒx¨Bz×Ì|/qÊ…#Ìhúœ†#` bÓƒ_EdnÛ6ãèüsÅs'ÂøEü{î¶iéÚ”ôy‹‡…€®kºJ{ÈÝpÂÿŸã¢Œ30˜Gh›[ ›ƒÑ(/$E!@U‚;Q®À ÄØ ж·l:†ˆÞz.}0ß=Rò×Ð΢˛lϤìÞàª=ïpIÙýÑ%5™@”‚ù'í¦Œ'!ݤ4ö\kÜ‚Ï.5–ÏåŒäéœÑW§ówׇ»#Çìò@9qßÒð@Ã;^Ò`û—8Yî’æL@‰0#±;÷ «?{Î;¡pI𨄥I2g³š Ÿ0í ˾Œ¦`nÞ8ãíÃï7‰ñ÷úÝï4tÂ0‡mü}ÖîM·¯!T+}µÅ—%hK÷Èⳡ±ûYŸ¤[dÙËE)$ˆ.ú·M†‹Ð^?Rn¸âñîj»SB±8ã³ã¢5PJܺ¼»GQ˜µØ~oj?7ØÒægBûI3ž#we¡ÜFbÙ„áùA*.¢÷mbbÅ»lÂE\ö<tNÙ¶[Kë—‹Ç]cu¹óÅ2™M¶^yd-н·ôÙ;åB*ï'Ù>» /DOéÝAºòuÕx*Y¦FíÞ=_3Ó*¯é<ïëp[\ä¤pjd•óâ’ã=vYà/Ë¡²Ì爂ƒ÷dó?¹»¹ 5&@‹jKw ²²ûÎx×ÁÚšgÎ0œ;µª^›š`òãi[!!Y$€díÜ?ÿ¿µÔ» ùJ{±dê ýPíý] б$èã#® ÞÏ q¡¼ÈIȹê§WtÝž5n<^·B-­ãg¹*62å²ç¬ Ô» ùŠuK¦N%Fž§À;±‚šÏU×aÂrá)dÝLF?P‘š«4ú§±½ýš&°)„ú÷n ÅÌØL«aü0œ,A® „‘:ÊχàK þ×Ð[SúÔò(¡|xûŠ0®‚ÇÑÒh[H„æTÙÒ¬éô§ÚóA­p¼x+fvÏB{p¶ÞwãJ1A­8ÓÌ¥€ßV: w)KÅ샋èºBwÈ!±U®~V¾ÅSS̹,á ÅBu›»2ÿ˨CÜL𲂆m_­ù¦ Õ< ¡ èüQ’ŠñL]iL ~Æ¢%Sg–×eTÞx5 ÖœÎuEBuïJ€©Aº,)UaH‚ÓP’J¼>ÓÌ>é°÷¥5vaò‰óÒ]¾¼æ2CîÖšÕÎb—,ÔóÍ÷/·ý¬)á=bŽý-ñ+%Äâ"ð}ªsùSЀ‰œ‹t%Þ_ûz›Å9ODRÈìê—Œ¿ÔøæpÀ½/2jÂ\Ëî]C ÜÔºÃJ ñ÷Ár AMƒËL8€¾¿¶ôåÒ 2œÝ×ýjÖ(˲1ÀÊC &fdÞ¨@ô¬CÝ{=]!‰ëÎQÌîÆ©EŽFY1ÜCY:ßøµG»$–”—ãP?Æc÷‹ =Y˜†íqzÑ'÷º¨NÃl·`sµ<¨½{³jí9ÐÍàDê~Å?.Ç ±pÔ—ìMÿŠTQ}Y‚àåntÓ©[_ÓZD_DÔJS„3!òTñ5Á“@)â4OEru øà"ÔŸUîÍ?æú‡–·Ó}jOÖ‡•ëõ9ÔJ2WäÁ XŸ»ötöòèMÔƒ®ÁWØî`âөõ:ÚÿúweÿV…ÀŠR-òdÑÛá#S‚-2>fÕ½«ÁÊUùIöD¬có‹ í/)ûó‹+ŒX¹t…Gµgœ1žóq òÔŒ÷GCõ éf¼ŽÐnpOÑÇm7Šö¸+ÑéX5 bpŠ;ÓÖ·4ª€ _Îýë2ºCÇW±dv^ãYÉÄ'A,þ¹cW’ endstream endobj 196 0 obj << /Type /ObjStm /N 100 /First 850 /Length 1663 /Filter /FlateDecode >> stream xÚÅY]Ó:}ϯð#¼¤¶ÇŸBZX!qí.÷‹»¡ ÑMª4EËýõ÷LšeÛ¦l» Ò}©{<ž9sì±]­BE/(-¥…Jqi„r¥ªm‡ˆÒ(£ÐZ®ëÖ¢$¡½N4ÆD›‚6eZ2¥äЮ fá±VP„.„1¯£0ò¤…åqD•hrÂzô“6*¡Ž0¯QÂYþ6µíVx¶Áá æ1Qx¶×j0—¶$‚õ‰¶NDئ­ÑÂøúÚ#Æ;ö› Æ*í1“#¡Œ‚©PXè… å‚Æ8¡¼ ‰‚¿Ê[í’¨À CÂÁvíñ!ùÇ3€Ü ›ÝÕžáqhì·Wpö;ÅìkW’=`bÓ¹âÙf+làIÐÍÎúˆŸÈPÅÞE1¡ ¦q ¤µ‰FH²ð˜\Ñ µ†D-ˆH¦A—ã  “u¬ ]€pÝ“(‘<üRˆ¦GDK`’ãà$a¤çÑ^@"´!ÃÐ@žùcÀ &Ü6Vš„À:ãfÂ`o%•À²àMÐ,‹®%@Æ"Gr¬8d’VÌ-â Èì*–€+iBšXÛr¼³ø"¨²ÎÁL&"“ѱ±'ØcϘÕFBZ.#“G§ù§¢,ÊÏÿàë}Y4\¾.–my2/²e¾|œ¤¸È÷!8Žüü,³ _àA°+c-ïlî îÍ)»ýÿ±Ÿ¤Û…Š_ÕÝYœŸ-Ø~µyö6äÒÈ/;^§d¿DpÃ9|ï¡îmó%¯ùD÷¦*ùp—Õ¿è„ÉïD6¦Š_ÏdHŸ¢dªÆÑòÀÁ©mã#δvxN½³R}®ÄÁ\ c9B©KÝàž¦`›Uçk/ .$R«‡_@uuÄjW»«X§üÔ;42ŽŸÓzçúÁAê¥3~Ò¸÷): Úá©MƒUå¢gÃp>ß#úH¹¡tVv,µ£”Ÿ{]H¥AMʯ­Æ‡4Z·—Í›/¨‡7åæCìþ]æžËÎèã-éþV¤gx}Äš?$s˜‘wÒýD­LÔ:ì²U¯_Hû®¤Ñ›1hkø?¨R í_ígÏÔýÝÌ$ endstream endobj 332 0 obj << /Length 2037 /Filter /FlateDecode >> stream xÚµYKo䯾ï¯Ð-œd§Í~ðeÝ8ƒœ†0ÅéÑæ ÉY­ŒüøÔ‹=䈣•Œ5t˜îbuuu=¾ªné›þôMßdÖªÂå7ÕñCLÔþá†ÿüÛ-|[`ÜÎ8ÿ|÷᛿&ÉŽUúæn?u·»ùwô¯¶‡ÍÖZý¥k7&‹>mLù~¨aºµ:ÎÓH§›ÿÜýýÃwwa§Ä˜7ª„œ/uJç:i«ü&ÍÒÖ±Z?v§ ,M¢CùÉËCm”ɵIx¶Q'Øc«­ÒÉŲ§²§e*.l¶\å•ëL–j^ûGa×ʘ<ÉôB¼ð|Ã<±Šó"NòÄ8亴ñ6s*%ñ©rV ý=Z3wQµÙê-O–ëö¿þ&QÉÓátäy·gÂIœ¤¦þ…VóìX7~øã"‹öÞÌ^¶;þ\·2Ï3:mE»â·çǺ*›æ™‚¸²/Ù×ÖcÒNþâàuÕ5ä) ÿ'ñÏkîÑy¢´Ñ“Ýo×\“¨ÌäÇ@”f¡ÆÃµ!P'›ôß®íhdTìŠ%,½hõu¤Ý·u{«ÿ—ó<ðky±6A4ýþ‰lX· .å½¶opGŽ0ú"A%w€^6 qhÃgŒG5§ØÀ,Í(vH„{Æ&ÜJ«Ú3‹,`Ù±DÑ®Yý†oÖWÆFþsåG&sFuÃPßSjÓòëK,P± *xOß.bñ |½–²ßv²Ö.«q5t Öç…_ ›ôõù Q£Kب8Ž Qfªí¿9”ÀN]Ï(–ªÅ„O‡š +OÏU&‚[sT˜ û×Gqz?JÅý’^I]±Å/oÍÙî×ÛæþjžÆÉĵ°-ô?‰¶i–§b_±d˜TY('ïTóº–Íý-¨p-.ÎJÌ•,Tntž'y8Â[[µ€ë¨'s1¸ýÔV 8¾çzUÍ3A)  M½zP¢ÄÏ똫¬È_V0.4ð£ûâ m^âÖ,á XåfuÖd• ü]«³H;þ]¯³–\x­Î®)‘¦PZÓÅ«¢ˆ‹3|m„Æ™wm=¤(5Lvj“Æí.€w2 QÆ)w~³:”ç¦h² +>u;gÓh2[U¬Ã-`Iž¾é±2>¿iÊÛÞàÒi—é4ö€ Ï2Á›@o¢µå¥¦ä©\@nÒünwöp ´Ò#ãŽçó÷f3½7Ÿ5ˆgèÐO¸˜â®;ÍÔ•ºüax| endstream endobj 336 0 obj << /Length 1575 /Filter /FlateDecode >> stream xÚµXKoãF ¾çWøV¹Ïjz­ÑC[l‹öÐmz(º-ªXãXˆez$›¢?¾ä#K޼ÉŠÑ ‡ü†äŽå"„?¹ÈÂE¢µÈLºØTW¡£6w üòý•d¾0®FœßÜ\½ý.Š2Y˜ÉÅÍv uS,þ~;”]»\i­ƒoëÃR%ÁÃR¥mÚ¦+-Ã4d²üóæÇ«÷7ÃN‘R¯T 9_Ö)NÚNöc×ä°wãÆÀùµ)â;æ5sL#‘¨Äs|q XYt;;‡¦2‘ÄÊ3¯š9<‰8J=O}ìÈ9 à.Gï5ì‡Pj»éhFlqЖ‡»½%Z.§Ñ=ž¢Çöx+–«8 ƒ›]ɸöc^÷KXFÚÕ(óÈËÝÎ-΋UªD%‹•ÔBF¬jßûŽÎ·G%hxÁ©8zÉ#rÅ»9°Uœ ÂáËT¨$!þßë~ !~{°ïh(•P©T1Ͷ3&d3ä™Üc~èX®<8NA4$Sö/Ù$B'‘Tso‰'a'idÂ(%7z@ ÊÿCïõsʼnlsßa6u(lA„¢~䥮¦ïÁæm;/rîÜV‰±Ûƒ³ÿ}¾Á`ÚAT˜Ô¦I >òŽhùâë¸\aMÈ›–ˆ¨±Y"ìË–%+Äë[–¾%AZ‚hßÖM•ßîYê±ìvg@<¦ñX'}\™Ôó%nCLëHù¡˜xžs»\¦}ÓZs®¸1 OqÜS ÄáI}œåûœltv2„0G† A>§ Çô»¢/qñ ó'ÖÛÎ64Ín;GóuP„Ú'¢ 4Lm Й0™0‘Š"q›º:vb6•P–_ÎßÊ¢¯ þm·¾¿sÌ&ÒS‰¿('K´2ø¼Ü—ÝaÙ¦©›‹5`Ë)ñ•Ïsš”5žÓÔóKú°²¯. ŸåŒýíºþg&x?ßXù ÃBtf”)ŒMút}àãþó. 9ï29ÊO nòÖ^_¸G’p¸.)½f¶ÔJ¤YäÙKe¦n\C2Þµ(Ûü®±¶²î¾äí9';wº+Ô²ºœÐ8ÌCñ¢Ûh®š,ãS1À‹WÆh±;o)c‡gáIZ•Ž© ùeOÀõr2ñSžP±¾à ÀŸq$ï™RvßïNK(Œ†âƒ†±-H ÷–°¤ Û–¸ÌÞPBCt¤Ü¼øvQ` ‹|ï“8F¾'¤ŽeÇâYoÁƒ­ÖS#ô(è°‹a‹føü’æEÕ¥ÆÓLo½ŸA¢ñVá8ÄCQygY¥m=0·i¼qMß¶¯ZVi{Ò„Qàr¦µ;Àvân€(+;Û=£S ¼X|¡H$‘áöÀÞ½X|Öë:o6´#ðiíÆ *è!ÃéA+}Âvƒ7¼5w>2Y‚&1“Æ ë}åá]U—ÍJ„Ò2cr3S"çÊé®Y£5³¦°#’r¢.[xnFdDÊF0質IWêžUM2?Aïhøue›r“_c†$à, %¦9„TK<.Þp°©)ýï]ÅB %Ïöû'"U6o{Œ-ãÚ>¨EÉiÍx·œq8vYZïûÊ:RŠ@£ 4;³ ÇÐe¾‘‹ejOٻ“»­˜’.‡’z.øÊ…,Ôfí»òèRIÔ°A_4´¤ŽŠ© u%rýkϵ¼ní¹fOξž&»üT˜XÍ9áÊãРƆ1}(Ka0 ãä±lw4rùß*¿_žPrú %œÊÅ^‚A‘†»fË8;}¦žw{&­ä-6ý‘Yê­×{&a¦!âžÄ#·áS²*ïvþv)Û™ÒK)÷zzú—'¿H9«Sô!µä—/\2®:âcx; ë¦…}(7–żF3ç5=VWR‰ÅA^&úÉ,W½û}á_À³Ï^i¤ˆ’øU·t2üR0Ôp™b7³´„– šÏ—«9>÷Ôù¯r¯8G‚㥿Wã×6— ¸¤ñD'æ4én[ø×Žøib†ÉåÆs:­©, гtÂÄß”þJÃŽ endstream endobj 340 0 obj << /Length 2178 /Filter /FlateDecode >> stream xÚÝ]oã¸ñ}…Ñ—•÷bE$%KÚ<{E¯w}ì¥(ÝU$Ú&V]QJ.A~|烒%¯Ò5®}*„ÃáÌh8œ/ÒbÁŸXåÑ*U*ÌãlUßE„m÷+þò§wÂÓm€p3¡üþþÝíI²Q˜G¹XÝ廉î«Õ߃¿6¦sëR*øƒmÖ2 ×2 të L7JDÙ6Ùú÷~÷ÇûñK‰”Wª„”ßÖi›Å¡P1ëôýózÇqPé]Ñ×Ý ÌR˜c zPœ!Óਆ…Ú8¿ð°ÞàVö¦qŒx2Ý¡]»AQ®7"è €¶a¼õéÚÚöÈ@€êÛ©êJ¤a"Ø*iþêiò)M¦2(~õ3ªD$ESùu^ï# Xœj£[¿èPÒ N.“}.#שµdÓª/;ÆÁ¦$Gô!Ô¬:¨ ’ySSBÒ­?ê¶èl{¸mŽÖ¦]E~;‚÷£-ާZß,€Ì ¨·á6I™úÛ¯Áí’àP<ê ÊLÈ„g»né+#ßSÑtÊ;Ó܉׌§gœ„™HçìBŽÂiüŽ5pαg‰K±IãpK˜ìë'ŒG.ÈtÏ8K‚²pÚÝðŠëK´þg…ã‘,Ž€7#ói`Ï!3Ç$Æ x:C#¹ ï]•g|è;æsö¨;sÔžØÌ˜“ ±]¸dÿÖ™ À é¤ç#ß(ah#²´¬óÓìÓêÒœ8̱ly8šýÔôŠº¾ Lx·±'éOlɵQ4<ÂG[]ÍÛöšñ¦aõ±èA8™Úgi«g\Öܶˆˆa­ÀXò†7xù~YlXMX8êÂõ­æÉp@`cÏlëÜÔÅC Q©1ëÝͤzId«4ð¬]ûüÛîs”DÉwâ5@0Š4FàvˆŒ+ƒP¼ÊQÄ¢šNâ³ì·SMØgAxÉ}UÞSxÄ*ßsç0¯FS7Ã¥‡Á%qís$â†íŽS:b$*xþP|áŠËاƒeü¡pg:£Å­ä³GÜxöü$â4KÊ•vߘíx“ÀRfýW)?ÙE­›Rãaa¥Š;Ž ß8´ƒ¾ñÌò/\=ï&¤1¬öNïúšqå“‚m<¡/Ä(Õ¶W›£d⩵—Oõéx§îfiÞfÐ1pyâM'†Ù†„é&„ÔLT•Áè+j^‡üPöu(G}‡<—cÛÔ¾1™†·/Ñ,8 ¾4ÑOŒý =Í”b=✻‘Ïr¶ÞïVŽ›Æ™âOö'MÆš,Àf~ÿ»õ&S"ø´ëÈ¡`2î$ÇÌ^tï½0ÎéÈÅFòhh zìŒjÚ*"{g²à¿ñÉáWÙ£.ÓÃÅÑl6î`Ÿ6;̵ý2ÈÒ,ÌÕÐúØZž<0÷‚g8ÏÁŽ» g„Ii©y0 Y‡8HcAUê½+£œiâ?í0EZ^G«q«ÅªÎ¶7ËŸ{ʬÝÿGÒd’_ ûïSè'80ln7ÎWïÒ`šÄ3Ã¥¡;Ű$RjöâӔ貌˜£,xŽáð†saò&6ý8d]9oƒÚÖT•F'”q|8ãÊ#éöuéðv¢rA•V!¬¸Æ±c" .vì˜ìŸK^—¯0M·Ct(46:Ÿ¢äRÿ†å3׎t`}ã34m(]ÏJÀPþAOÌ*¸.üp+€ïy9i×5gÊm~uK ‘Ga©YšsÞ¶Í´]UË–ˆóé5K2åfTßðÁbOŒ°÷ÌûtÐì%(›.uîšÞÈm"ŠÂh<ŽkRB³Ü6oÓÆû7ÄÐÜŠ0‰}´øúÏP8ñðà€N'p¦Ú”\ŸÉí­¿ oÀŽ‘“¢}Q«kMNééìõ‰Æöýv+‚Ÿû“oOçè¸dÀƬ‡“ƒo1Ñ[ʳ@?°wÅìq˜Çñ àÀ›Ú4þѧ2î„=ÈP¸¼þÑ”u_ üK‘¢Zâ_ Hê‹UÃm>+úwŒ¢õ-r-r~‘â)rÎüñ¹û+¡ ^tk‡W,;õÝ…7 Ú÷ÃÝ?>–—y«9쇅ðë0âè±,ãÇ2¼ç,|f€™ùÉØ|}³¹¾ëüszžÄãdÑ;¿¾,”ô=ÚXÂU‚'PaÁær/@úç)ÝBODÜ¿ÑÊÄ2blNzú`A%CPu ;µvßGþ">c×lªáQÉ«mQ‹wÅÓ¦à§ÀdxtCjj¶£m|ƒ€q©¶s÷¡]†7:n{>^w¿:÷³…à=ÚÁö­»Š4_%ºósª.mS-:ÆÆË™iZ]óÉ¢Ùט8É‘õ¾Õãç.PSðÇ—s‚~! endstream endobj 345 0 obj << /Length 1759 /Filter /FlateDecode >> stream xÚXKoÜ6¾ûW,ÐCµmVzÅè¡u“"Emc£’•%î.­(ˆ’ùñáPû²/ö@r4g¾ypÙ,‚›åÑ,"Ìe6+7g‘£v«MþúíŒy¾0.ö8¹:;Ç3…y”³ÙÕr_ÔU5û\7º·ó…"¸4Íœ§ÁÝœgꬆåB°(K–Ï?]ý~öêj{RÌù‰*!çc’}ËÂl–d2dB’Z½Þ(<óXý$ Sž€dÇõàT-:ûo ƒª@Â-E°6C7Î7Ú]n˜³ Wó ü¥‹¦¢‰U¥i*ë=ÐoáO]0²˜Ž쩟×ðúI/Í|ª™ÏºYåÕ15*´A}ÔKÏ9´TÃ®U‡'‚›Ó0F}xF©WèÚnE÷keYÄ®MׯAÒhÓy¥ó7µÄ^kÛ“¤¢Ö…UvêÊ) “<7ûƒÜý©¢¡Ie¶*’Ø¥©kƒ^»ßª_"32áоœt KE˜EGvxgÆ<ÖÅÚ§EcÀ|p]>\œ£wnwÝMïwœÉ8ÌXêùm`ÄãĹÙ4ð˜FÄÛ>]„2‰g -mäÊ)ÙSW`_ýNÀljúo!:yî/ykÛà xºm§\½He˜ ¨“Ï3á\' ]ݘç<¹AOÞêF¡ ð…3Âîsø"â½î×43€“n·p)Žãn'}°~U´­ 2r‰i¶{ÄÝcëý3/FbÄôûÈdÞ ÃÈ<”±ù¿'î¶3›¶ÉÓ‚V>a8.SŠœTÚ¶5e2"¸`q_ÔLjI0„ËÍH1K Ȱ8#úOdXœÞî U.ÈzÕ¹¸CʸµèŽ6a’Ä,D˜=ÅB(š,4Þ"ÎCžˆçÃ»ÚØ'aþ«Zj2Ø„=˜¡‰^x juQt%->8¿}_¨þ^+LmQNÅÈYÖC±Ôˤd. ·ï‹g=ÑÍзCO»ð'LÁr²l[T Öe?¥eÌfñ.OˆKÀb' 0`'‹­Ä¤5òm Ç¡f%ùN±I˜ 3¾u PDªR«fms"øÉ}M¨Œâg¹éŒuÉ_ÆÕI‰25¿ {íöz`÷âË‚8Œ•²zÕP”ç±C> stream xÚ½XYoÜ6~÷¯X Õ¶•,ºô¡-ê"EpQIœÊZí.a[‰²ãþúÎpH­´‘cháp8üfæã²Ul•…«Dˆ “骨ÏB3ÚíVÔøõû3få|ô'’ß\_FÑŠ…AfluµªºÚ¬^{¿5J÷k_á}Û6kžxwkžze×+èú‚…iìñpýöê‡³ï®Æ"ΟiJ~hS<µ‰±4HWq*&$™õâÅ‹5,¼Û5zwºÜPç²SÔø©ÐÔ9}YtE"¢Y„¦ƒ)>2«ž¦áÄwî¤Øßæ…n;jÍì˜8teß]I½Mלf&Í5o~¦ïWseݾµZíéèóË5?ß\G3}¤î²kë zFaz~P×Zì8VÝÔç[}-pt«q{ç=ölÈÎUsÑ*%‘3òUs¬ûƒ…ó\µvÑ¡WF@FAÊ’¹Ôç¤EŠ "‹³…“œÛ{ Bγ$Œâ…Náé'2ˆö(ˆ»ôj_BµªMKzÊbö¾SZ—niR;ù Áƒ7!“•]z¿åÜtÚi†ëõ1šr˜ã0 –Ö29±L‚s†Þ6Ú-~¥W´u ŽƒõNb8[ä MïËê`‡ª¼SÛêh§¯.óF5;&¸º*†*×€W«Ï€s²P⑃µŸÆ™± íöGÃ'f<#e試¨†MÙS¯hPYç7ªR  ñ²ëÚÎÊÜ€_¯Ô˜+îM®@â  B“iæ0)²ãÜŸöÚg€gqò c¬û£èöù]y±„™2’Nþ3»W³ùÈ‚¸ˆ>Øâ>oô³¶0¾”< ²ð Fºÿü1ïCŠ‹ÐkZÓ`^«÷k¢¡£)r§]@7`.窼@§ÞÚµ[]º§yP¢Ëº§!ÕÐP?¸‘Ön»QtQveS”ýBˆ¹4ñòº5Ö@æwzaÔè…¡œºxÇ4P©^æ$ϼËu*¬šØ+ßçõ¡*ñ˜Ù¸¬hM@ÌŠ Ž/£ ÕüMa¤À‡àH2°Ùa¸RÆ7Ô.«ònÁV!KÉÌ®Ãk/Ú¡ÚØˆ?ZÔVdØ"F±HÍò’Á&5‚©if¡-¥­[þ1SG'S_Ø"eKW­šÙxf _Y˜Ôçáa ä³[»&dΧì_UU¹Ë+«h¨©á*ÚFm·„;n«RÓ6þ¸ª|¢BüÇ^È»âGÀÌÔsìŽVP<ÓuÿhÅJå²"yÔ WtÉ›T/9äÝsMsž(²@“b¦B,]ƱÊ©bqÈå³í\ªÆÌË“Zlk«œOA‘ë"KP°'žÎU󼈚ÐO¡#ÕÅ/IÉËÉebM|ñî)kÿÌ|œ™MÑÀc9TiÌИk°oiO÷`»Xð°ÉÍýAfÙ•ZSÍ‹‘ˆ!MÀÙš’ñ ‘‘àÔ>?– Ù llီ©€°¹!–š$!`Ƭ^áîÁ©^ðBm&{’¹rD wh †oac4¢'´B †˜¶k‰DZ)C ŒØÁ²ËÜêCŒG¡ŒÂAÀŸƒ©¬qìýN¬•8šu Ø‘ÍÒv±äQ$RµÆpÅjMcy¥r ! ™¤ðTŽúŒ™ÿ‚<ÅÊ÷p|?£Ö’6¡1uJ»ORÑl?| ¾„3 Ëì .svPÜ,˜ é&ñ„36c°ò¨æ,HSî–`È-èeIÀŽBV¯Îw½Ý¡³Te|«˜ùÖ~ÝÉŒ3PÌåSC¡øvÚ’„Þ/”òèßÿkP@¨–¨-Pa6^\{Ж†Åæõƒß"|5öRD{ÎNØ‚>³ÜôªCs@/»å{]O2æùµ`=ãIÄñs@—eNJY¥êí­qÙrdîa64å=ÉÂ3~¨œ5ærLÃEd³1ÁŽÇj'ÇCiz²4ƒŽ39¯„©{µB˘f“W+N·öëä), 1VÖ3E§ÛŸªWM…Ý>æ ›Ø7,<Ãb÷(üàmÄ<ÆGä  K¾gàûô7Çá»kÚH ‰8PÒtV¶»~N™FÏK9|vý˜Ý(AC&AêJ`Ðe—ZQUø0 HccÈr;¬kæî ®!°¤ ÅH j¼‚ oÖð–ºÃí-æZ£œ0Q‘Ab‰³'m÷­¼ú‚$q$̼˜†1CŽ/‘[K®Šâ ŒÙ¿tU¥nm ¥_Hàdè=æ],máGþ’3OÂöU\á5-Šù,«ƒÈæàè—”¹Ñþ·Ñh2ë(¹…Äî›B¶ä”dzÚEmàõãO º}TÕ‰}oÝoŸÿÅŠVÉ endstream endobj 353 0 obj << /Length 3337 /Filter /FlateDecode >> stream xÚk¤ÆñûýŠýb™• ¡Ð|ŠOqâÈ’£ÜYQd[ 7ÃÌ¢›9`noýëS¯††e¼+k?L?ŠêêzWõª»þÔ]™Þ9c’Òw»ó›”Vûãþý÷7JàbŒÈoß¿ùÓwYv§Ò¤LKu÷þ¢z¿¿û9ú©mÆá>6ÆDo»ö^»èó½.¢º˜ÆF¥Eiuÿëû¾ùÛûé¤LëW’„/Ó”6QÆ2Mßà`WDãCçx‚›4Éì|è»s|…[è³-“Ìf´j÷[ø´J\ª=ÐØÝÄf\‚#­¯™ÌîÜŒc½ÿfeJDÓò¥ïŽ}uæÉcs:ñè:È~CÜë¾Ú 3}úð|!¡ :ü-£ý½Â}ÅHÙ]¬L™¤*ÃA?LzÝŸ› ¬¶ÑãC³C¤8Í¢ ·…;0€¿—û˜¶]Nîc§\ô®®×r7©M “ÝåØRØdï¡ã|Cþk¤t™·Õ.ÄÄiþùù{ºÄÌ3Émê_AÖºèReñ™ÖZ祋WRï¡_ ~”¨¢&#%ˆ¹Ýø°¥±)ä ’¥z^»Ô¼¬×¬¼J¯5çB¯KE+Ûoä£<ü(S‰‚ÛÊGWr#[¸uRª‰1@~é–%NµX ¬÷õp=<î~³’•¡i'|®Ñ¼.Ün–x¶Y²B¸4çK3‚˜¬ÉÙáÀRמž¶8 Î)S¯s8EâÜäKª‹XUÕþþåû¦Üâ|FŠiõÖ»ÉleóĤùËÜV ‚knâ}3\Nrꉕóa§þ%Uð!ÿˆmF©$ÿz’„µ^Ö ¼ÆÔÃÀ3ÔeSTÕAX°kð zÏŸa̓™°{"/†Ëç‰h˜´u-G‘W@¶+ýtíÆ5øRv˜éJ ꑯôÑV“`ymx¨‰s0-%×Ûƒ¾ôõX¬lð¬ä@ûîzYc$2âä—,Týñz®f@æå–ïµÎ&ijïrU$¦P/z/†ŽðMïµDºô½Hµ(_ÈÆŸßNbƒâ›™Ü1.²;Æ‘]_Hë‚jžf‰6/ÜÇÇ3ôÆuV(ų;Ð@¸½Ö)€ˆŸ~ú§ vp¨ÈñàDÔê”ïsÓõ¼ V°e› sýÛtf2á]Õ.Îâ Gìª=¢ó.«?Ž?ßgèJÓ]¡ç2rÇÉä­eO~GA40Tb8WEÞCæJa~˜:Ú¹E}8Ê<:w2¦t@õP(ØÔc†í™ „­P±Ÿx2ß &!€ªäuˆz]/'a‹¿¤YZɾ¸øß–,LâŸ`¼%‡,qzÊ¿fćîtê&³$æùÂ|8®+ÈMR¨|iSTRJÐAÎ…F 9Êä6à Ê• O]{ä_GxÕÍ{ÁQÉ¡ãÍ{Û¶™ .Ƹ×ÃU1WLÖ#.u½x"ð13ê \iô(ØõûoFú> ÅçóÓ‚¯Y¹ S3ëŒQV2XÝõO°¾ãɇëÈÛ}ýéÚxS= <IÑ.Àû¿À‚N‘£ÀécìO±á)f‰æÜñȲ7&4ó±aÀ“"¸£|h ÎÆ¿`H8Um5výCˆ;,ƒØ4ÊVC$0jës×6;òúiô0Þ@õð7)ßxþDâºòDâ"‚I³wµÏ›QP€ä ±8ß5µOÁpQ|©-¦+¸FÅü‚Sût­7ÌÒ¨Ù×\»4@ÐáI@Ñà@H ¾OçM)Š0=6.úî=•U©Î—ç?kú·=™Sà8îP]2¨t¾:l&fØmZ‡-¼Ò$—–)Q9ØØ¨cŸŠ‰ŸÁÅÉæóMÛ6à±áBd–&“—{¥º[Îvæ:j9$gÿèP{ˆùµ¤ï’,ló†föéñ§Mï%T¡C~:qR ¥NLl¿}d¡’9Û†¯M½î§aG@Nmä,Îma«¤‘ØÉJùÏ:Uƒœ>Å&Ë ¨µ9FTp÷ʧn´YÉ—ÿrâ½§àle0I—&(L0êAðÉ¡¡T™i%(‘YxÚPtå =†b"UjæÔïšÉ*IÆ–§S¾Qdœz{½-0©‡Ëê¥x3„¼T; |A+95X`·’ßÉÕÑڞ܀ƒ*tÏÈü4dLž%Æ­HÒ:çKŽŠZªK]/n¨¨¦ž›¼ñþ†CAU/CU‡Ãü¡¨ê@+—a³Vãwio˜Yá’Üý!‡&’ÊœŽ~òAº—~&ìN\P|!¼8ˆ ¬µM¬Z+9ŠÅ¾µa|o^ò0|.y’:~Æ?‹üUá.@,/zi¼%;‚ö’9Þu#GG¼Ö¸ðlœÎ1Í„vlB;6nêôôçæK-˜8u>us›ŠÎáRÙAûñugÌ5ðF’‹ÉhäÏäæ5–Xœa™ÒS­¢Gnbjì,E—jl>Pªup[ =A#K6{‹ÚêÄ•å"“¾\™ËÕfÖS” 9åóîs¾ê>§ECÕ_.à)Û±«ÝÀélX½R¹,AÖ%.[õÆ©³Ö„=TvéØ>ãò‡¦¥V> ¸t««ƒÀÍÀK?yì¡d&ùSÑ;}ãə חÀØNŽŸ¨A¥p6(oà+.±Äñ/9ßlèðË…N÷U¢ôA"b½™÷¹D»u*|”çyëið“D+f×3…;çÏ’„¹ìÔ'#,Íña2Z ͱ¥.ﮚm>¡+LœÀ³£HŸ5âøü©cKÀÏ@…ˆÑ¾‚}n û¦:¶Ý06;)d+y[ãÒÝEÃu¸4;n’â<|à%r´Ö?ÂÀÀßÁ‰Ç8b#Í®üÈ%Ü3|¬ Ÿs¡„çF'üJ'6v×¾¯=»qáÔQ¸«H¤…cå&PêÉxMCœÄD]Fÿ½/ 5€ ’·ëiÏãêDñ˜¹:ðZm7ýJŠ/éöUëÌͯJèøFÍ ™?ö!°ª 1Ç|°Š¿'€Žžù¶{(_ W¼uÿAä#/‡-«&‹‡P£æ®ûÝPo[¸l¾`é‹~h|qfSüg²~±IšÕåMühó©ÈeFa”R3•™Š•TÍÏ¥²WñÔ'|à_a!Yɦ7LOHœôµdƒPugªXZš˜lÙç·WúZJ~ø}¨O‘5ìyÌ‚8ZY}*䔑t_p(Y¿Šö§š 1“è.X~ ¾{Äxã ám׆ªYú܉y’Ù-˲%>o5\LF _Ó žrí‘ (“ù—ç9˜f’IàHžSÅ…ãÊì@aq?ñkÏ‹Øíã^»ƒ\Ë”+7ÄÖó¡h/)ë貓_›CQÆØðS §W¸>% OÆý-¢š=Ù"Lsq½â÷+MZòË\/ŸDÂÖ[+œÍÐÏ+~°ÄlË0]b^æÁ‰²+7ñ®&N(Ï#)i¯œÊ¿ØðÅT“ngM*ò)3㤘¢ƒ ¯þ°nµ4Þpºño¸8˜ÿKèy¨%š¯ôôW¸ÙoàäØ×9tü–é¢ßê¾óïA`³Sþ‹{S{ŸžÖ¶›s©JÀÎþ`ï!ÙÇ8,"®Û–B  `’µø•tîDh]&nÝŠðò!OÛñ¯Òè/m.}\ÚN´Écc™…Ö¸ÝßM5?dÞv7`'sÃ"ȧ| iÅÓ¹8L'j¹ Á(Ræ("oôÿ¢–4^ endstream endobj 361 0 obj << /Length 3335 /Filter /FlateDecode >> stream xÚµZëÛ6ÿž¿ÂPD Ä*Ÿ¢„ûÔM‘áÅ]¶8ڧزW¨-»’œdÿû›I=,c‡Ö9"gÈ™ß<(¹ð'W…X9­ÓÂä«Íñ• Þv¿âÆ¿~|%=Ý×#Êï_}ûÞÚ•i! ¹zܧzÜ®~M~iê¾{Xk­“w§æA¹äóƒÊ“ªíjx\k)ò,Qêá÷Ç¿¿úá1®d•º“%¤|'i\š­²Ü¤Rf«ªÖ&Ë“mµ©å\r~Xo§ºA{äéÛ÷f•¥…Ó9N”g©Íì ֲϣ˜h¶@U¬Ö#²²Ùò °ªLïAÃ}ÛzO{„ìô'î‹üµõþ‰¹¡þÓÎÓEþ$OzSŒôa—üÜ «p„íÂZêTZæîxêpz-“î¹ë«c÷ž¬õ‹h‘˯õ'»™®ñðÿ-Vµ<@üÁ~íªmÊÃá™ÇŽUÙÔÍ~w90M”ÆêŽû¤ý4\‘Ô;bWxF%súŒ³ž. 7J'Ë ¸{æžL²o«²Gްo‘UèŸÊ†éý¬¾Ÿ÷àMÇO^tS¼õgÏZåEª ŒƒR÷Ð*•™ d_êÃç?·AÛˆ•’I+™ZPž‰ð_®lqA—±Va£«znЉacQj¢8Í(e»¯:ÿþøˆðùóƒ…e— ”È(›<>ä:ñ3lë¶Úôx¸W,ŒOΫØXƒ´”8³¥™ßâ³MöõgÜåŠGédð·Ý_ŽUÜ I ¶p ÒÍi¶V[:%Rë²@ô›°¢J÷)1%ÿ]šW‹TŠ"¼±†í¶° 7¦×&Õ™Äo`~‰Û¦]ò} ù‚r–m-Ç6 €]õ–Ï_e&µ¹žž?(,nœÈo`Á]½oêß„4›’÷ç5=UmÅ­¶ÚÌrûÔàAa €~ùœ@ˆ|²“…ëó¶î·òyQ\—ØBÃ.*^&­–ê]à«»zÏØ¶òV ºÌ¢Ã6æ™™ŠŽ®Â µ>wõ!ðz7§¦ëý.tÜÕœÑÀ þhN´é~ÂWèîŸjOy-®Ñ!èoÓµ<„ÁkÁ>tÁD®Õ² ûŠdëMßqÇ—¸¢V¿¼ìZÙðLNOi½>]úó¥_ïNí±ì—˜´´ÆN™HW@§-t-‹,¨–œÂz]}=Ÿšªéëò°´¨E÷?>¦¹Óbp£^m«5 GXôâð'îƒ%ÙË6žjö¾áJVˆ+V¨¤ÛÔ‚¬•‰@?K”AÂê?(*XÑ›¾È’KWm¹U7üK2há0ÔúºŽÂ¦Êd/»( N$;·§}[Iý,©-ã ´옻GŠO¼uü[ Ñ >^a›¼(QÆEÑDˆ´¥Ý4!\އ Ò𗘄Æ(hÂDZq<}ø0–ð@¯dî1I6ìÄ`ÃÔ‹/@±§ùÉl®AᆠɄ€I {¯OíÖmNÇó¡ê«ðÄÛžþM|ôÙ÷°ÂCcoDëá W ð†ý—Ž¢Ëðò Q7rµõ"……H¨(^Þ Ø‰ÜÄ#•¶Öx¨qbà Ú´;ð[òry@2Â[iO¦Ä·›Û3÷MåŸÍ mnÜrv.ütÓmÀ¸½ß!0!bÜð·£øhwi6þ`µaìÖ>ÃÂŽwüìA÷ÈÂ@ÿàåRî)þ6yò¥ @ˆªP8¼²îröb·ý03Yœgc¬ÌÑŸAâÕS„âÏ´ãXc1Î@½E´žý¢ŸMŠ¿áù9ó…Ær|­S1x¦00JºèBH=W†^`l¥´öF¤/qŸTÔÅêÿ!ß·&Íg“’FR>Nqn|î$Ž`<.-fyBˆ-( 5žCuãXp˜Zz—Ø0s äåkµ]Ï­Ǽ›Ýuà.C`ýáãÏØÉ»¢àŒÞ1°([ÏjM•"€6:ßíeSùìÀåi.Í<8B#*IJ€àpŒŽ°üþq®‰]pF<…¸)6Ž Ñ<Ðîë¼xKYð92Ë{ÙŒÓ/«Ÿ‚:ÚìwIöÎ O’ÃBOÕ×2HèsU9ré!·a²Q3LÆøÊPnÑáž}½"¼S¶~’Éá„A% ·€€C¤£¡Q!Z†‹Îã"®ôTQLëdˆæn[í8®5fðØ¦ŒÑܰtðþ™‹[ýMš/"$(c1ÔÞ`­«°Þ˜Œ W¸Ì$1Íò¡ö…ƒ›Óå°åæ´ v“A%0&âÍ×2¾ÁY5,m¦ÔãM–§ZÏ S«j^¿•H†ª¬}©†¨×#ò¥:îlRZüÝSyæ=ƒØAJþýõ§˜ËY›ür9yO¬4êH%„Z¿ãçà}ÁÑ2•–sŒ€D[gw ¨_h>) DÌØŽUX`j{¢ƒÞÄŠ¡¼7B«R«³¹›_®•¥™TCš÷RcE aÖ(˜n¤KŽ'´Olm«¾ëÛ†§nÓÖÄ¢½@E5ajÚЈFíi8¹)}n“Ù­ÜfËËÿB鲨ü:Ç™DÙ*÷A3öïÛ*ªµ¨JšËi䯠„8à_ÂkšÞ‡fUÙ–Í&Tø˜›‰ Ÿ( &i«?/uK8(lRúÞCUvಭ£´ÏL*]pûŠé(ñöV`«ŒN3÷«ÄHrHÉb +uÏì±Ë¯T00ɇWÌ Oª‰bH&4huó¦ç&¸c!|¹~?1ˆƒ­'%ì'’i¨›@í]j®d„G’w÷+š£Sž©€öBϾ ÚBHÎ{ @v5φ‚ ¸W¶&lu5$yÏìk½‡+n¦&ÒšÔ8}Oän®þ8upì]uà‹¤žŸ—+\>ð6² iï, …+…³æ÷—%@8kÆéaao¡„:öªæp (ÜÒWÛ¸K™&øˆºÁ¨ðè%š0âO#7\³½QÅxÓØYñà%AótPÕ²Ù.WzA?ï-ô޶eë–+'Jd©¶³âÉîŽâ à}S«—Ë'Ÿñ•¥‰Gx2têú‹XÂõ3~hº¾½l+8F¥BÙ{îä²A&ª":‘f‰¦ õBèºøKlÇùNdZôB¥n¸âcÂ[òh¼5œ¨v&’ÿ<€nÑí&,Ä5G7$¹|ÉKWÀÛåÌ£ke}WfiîÔ<0®(Õ|«Â116¨ÀÄQQú½åÁCÝ`õÁ9üû©òoŒbQ%é0‡È¡ˆµ|a Vmm¿}8:5Y6½0%~ðx.®L–f:&Ýw-ß13‘-eRÛƒÏèÑè8$n9_É»†¿ñ%Ü5ÎÃ$oæ7à2jÿ‚¿ì•þVЍXdžY çÀ”ŒøÛÈ_S/$-çp×vj¥U¦ƒÒb3̦2“\àhý”™á$‘`êPoj¾ÔÍ‚ÐHÒ&ÈÚ?ì–´c ݧü`ž¹‹f_{&9x‚µªã¹÷fZÌ#Y¥ó,U:Ÿ©´Ë¥T\ãŽ?Byýz1/ËÆ×Roü­ VÖb….¦…øšñ¤¨m½Xz⫊)õ~b‘Þ@XUù—Ÿ><~|ÿáËÕ#9fœbšÝë­JXN½ ¥MÉǬ–Â…Iȹ·Û:”+9 Ã×96{æNŠÆº‘ˆn.¢w˜@{£æaÆ ¸^,>I ÎÌNÓPÌËþŒÉVÿ¤J•*0Ëúõw±ÚB?XÅ_ˆê¸’Tš?¬>¾ú'gbãïz Èu3Ëê´_ù/{Ô õ,3ü]p¿ëÉE1.Û¤]'gØ­ã<’ð§†nïc;¦Õ‘·¯ù¦…ÒF -ò “ÃÉÝ‹¶#þ~®à"´¶å6\ª Uš«HÔUgÈKú*ðÈŸ…èøÏž?1ácìÚ’*Ù‘û²ÀU4Oà-G_’J÷ð3”†¨xV°ÜÏF_¤¹†¶X%‘–U³PÉ¡éiÝñ UùWš *Œøä¬®€Œj¾"˜1Œó¦P“"½À˜º¾7 f#¶€oöP+—š\ þûj—Á„‡p; ¥2”åÊË#ý×WØâü†Kwy1ÝI–­ Ù:.g‘‡[ûç2ÄŽ%Ü•T)°øö¢õýgé endstream endobj 367 0 obj << /Length 2116 /Filter /FlateDecode >> stream xÚ¥YK“Ü6¾ûWtåbMÊ∤žÙ[¼qâ”[ëÙSâªpÔênm©%YÛóï  WÇÝ©­©ñ‚ |ØrÀŸÜeÁ.ÑZdaºËϯ;ÚwÔø÷¯¯$Óù@è¯(~xuÿ.Šv2YÉÝÃaÍêa¿ûÃûO]ý¯µöÞ6õJ¼/w*õŠ®/¡ëk¤±§ôݧ‡ß_ýò0ï)u£HHù\¦øB¦8 …Ô!ÉäÀíîßÅjM%#­€hªæx(«‚·ì|¦ô¥2b–>,pqÕJ¨D¹¹n§"¡UÊL%‘4¨+RØ&±7œl#òº¢+Ô,všÍæ¦ÊÇÊ wÒíö4XÖD4/ý3á,C¶‘AJ‘eáJÚ íVÞT„ÙDù;? Qº’%ÊMM»?Þùpç,ý؇±"ŠòÀß¿=î²óUˆ0 ·Š(Ï-ðI½¦€14`‘`ƾ§¢pÄЧ+ò¦ÛSµ„ß±.yyÞÔ¼.a‹ì™´ã/(›“n¢ád˜éŠYˆÍøÞ\ƒM©o²p„…²ø¨ða!$»D|¨‹¯42Û6vH·Øh[²¥z*´K›‰œ€ÉHFù` ™7í@€$%³4ð²vj„z{诧¢v!€ÊDÎN=ZˆsY .ÍdÖ5”d ÀVÝÔ~Iæ\töR'[Hµ'H‚ÔûH'é£T¨Tíâ J_AɉØ_¨à}ÁÒŠýödÚ%NéóLJæx,ë#õÞ®<ãÓöbàã~+?hÍ‘oZf—‡‘)xî¢L‰àäOÄþBí8ÌK+ÂÚÿ`ýmŠúç¦cÉöÅ` Ù¾ÀIÀófËÑž©÷Ôè›3Û[ñ۪͜è…3Td,©`•,„ÿÛõðƒQ¢6ç✘úÐtO.ÞQ$dúï-ª‹Pf›[{_÷C7æƒK€ê4Œ®û‘œ·G§U1¨­zƒÛ*=ôd>ˆí¢^â\m²DUrù—ޤ3¡—˜ö1$ûcöÃQCSÀÀ! 8ö„ò5cG½¼9ŸÁz¢™Â–Ì"aS‘õ¥ðé¢È£2žB5?eƒøÐ•T4dò®é{jïK8™.ºÂæMÎI,¢à¦+ˆg”õ¬õÆÆ¦œœASEÞÂOC"´]A·Ã"ØA‹ØØX™˜x Ö°ÑÀ¡k ðèLMQТö{³„Þ=ƒ;È„€FÙm·m®m 9SŒÉ´WœÛ)nÚAÿ“@Qð—SÇA,T6ïîk!à‡œ÷±¸Äk`*A­1À$Ç"ØiŽE ÐÉLyO*…Ž“­úê†ö*¬!äÇ­v…ÙWeÍÐ5Eµº¬.­Ï QQ"b¨„Oxre€0EÕºÎl9ð‰ÿÕ•s‚†aw6HÛà<èÛvòp‘bú¤]·‘Ad=]³xÈOc=‹å>ºïÉ}Ïg÷éÏe=ö׎ÿÖ@x·9pê9)”€Ý³}úN~"Qóù^/4düι$væÜ¼t°I ÞÝЧ›[45 4”IC® ¦™ÂØçí©7}¹XH! $cœ#Å"UÒ•Ür^"Ë+F6©¹u«²Õýnž+z½ù¤íH˵/qâEm§+m#/Ô6~gmcç™¶qÐðî†>g„³BX5”mU®ÒÔFï4dÓKâ=Ð÷4ñ³ õ¹5¬úD\ÔD CF˜- ¿Çb*ÔÞײÂ2+ ±V !k¡uDüÔÅ‘…ÃÉ á, +’–Ìá4±hj,Wì:;´æ'×Å:¯Rn-\_#`:ÝYAs¹'AÛþü4%jd¥8œ[ÅÉúžoò»5¨€µCÁÉŸé'€µs#Û¸˜;…‹m¥½u ¿©öý`º¿eü:H^ÐnåÇŒL?ÞtdàE5ub31³<Øðä‰+]Ôïœ~ªxü"·¥Ê~ªYjhä¶xÁÄ[*HŽsA ©W½aš‡}QçÜŸ*ö=”»>ûA(²è¢LëgÍ÷sAh¾k ‚ô¬y¯~Ô×C[¹–Íü?¦úÎ.Q¶Îèå}ìÚC&ëÔüõ qJAÆ=³(˜o¶–w6©ërœ Ðw[L"²%y¹Éb— NÑå+LñÍâ”­í±^ÎÞj]Ý®ïÝ2´×‡­CSUÅÂ~šbš±·ÚÇf7Bý5Wñø[ D+JùªcñØ™Ÿ¦·ª‚†íëGAf:Ù O«Ü)!Àq,“«šZdfá$ —Í{sæ–¹œÚ8ÃU’`ýrwýêÐ#3*„h[ÃA^ë@q|#|ßæDÉÿçDÓj}¯^ô!uŇd T>Õ\knL7~-g(LSoZ óÜväöBÅÈuNÙh‰+øj“Õ»ãê%ÀÏ&eq0¿]9p³I1P4XðèÉù:ð,¡úRtMï,–¶ï”}¿ =©D¤[í}v§pŸÇ’*¹‹‡Pßïñéa¸–D[0þÞÆ6…Ï—P´‘:.‚©¤ƒDÁަèY‡øGhÒ‹ LÎôû²o+3+Ž€¥´e>-¥ôJÞÑq^{•ãÿs¾ØmË›qù ¤j̾Øßœ"×N%ÖMböWL–¥ûgÙÓÃnŸ»~ñËL~™íbz¥û–9~Ò endstream endobj 372 0 obj << /Length 2511 /Filter /FlateDecode >> stream xÚ­ËŽã¸ñ>_ÑÈeå`¤%ê•9e“Ìbs ²½™C&@Ø6ÝV–Ižž æãS/êÕtO/ø@ºX$‹õ®’º‹á§îªø®HÓ¨ÒåÝþü&&hÿxÇ“¿ÿøF ^ˆáó‡û7߿ϲ;GU\©»ûãò¨ûÃÝ?ƒ_Úzvaš¦ÁŸºv—Á§]R¶jø¦*.ó Ñ»ÝÿõÍ_î§›²$y%Iˆùœ¦|CS^êH¥ši {¼¶‡*T&À°ï®íW¶oÊŠ(lBûp²@vRVÁŸSºçŒuûÈð±ãÑ8´3b<Ô­éÉìŽ<^™;8}¬w +wÁîû²:ì 8°…ÿ4õ0¾…iUL:_²<ù´ËòÀ4W»z¬âg (ÂNS4ft¥ pV·[¤Ú!á#WK­5½æ@úhm CW ‰£¡*¢l’ÉÏ>2Ãp8uOáÑìÇ®¿)šÕŽK¯€t\í¸nÚF@ˆƒüÁE‚† ò5°ûúc¬´=0B-ä0‘‰NõOx®!)¼ ¯Á¿OŽ€çjØvmH`Ù§€&¯‡y:A4»Þò¢áA„†¯;™‘a‚ûX·/=ÕãiµëØÃÑl‡¸¼ U€Z¸ÁÚs°mw®CŸ¸€ƒH<Ôiü€èªô£¹6È”4ã e½Qá"mS|«ªœ®©í;`IÞ¡V€Ýöp`Ó™Aʧ†©V‘R‰3í¯‚S­,*’Âa|ö©`Ueæ0 {»0Íò¨Lôš?â ó€4¸R_šÚ¢hÓ,¨eÍ´ò2"”‹ uð¶žñ@Ђ©Þ:ˆåÉ‚-‹ƒk6›a³ëÒƒìÉy‡ë~d ðô¹’òíy‡Îˆ´8aÑC®gÛÖc@úg±#¤\WÁ¿}âQUÅ™r¬M¿–;ðöÄR¥yê¿ã›áÆ“£KøPïmy¥zÒ…”ÙïÙ¹©—¯Î€Îjºž¦ÐJüÔŠ2è2*õÆQ ÝùS¦ÁÞ v@NTH%‰«LXl°Úv#OžØ²Kì`DOïØ«‰Ç€e?›ó¥±ÓÁr¸i˜\"È)Y’‚ò÷÷+zK…÷àþÄâm*8×'ºÿ&+§üŒ®2`tq‹Ñ 3z½x9 |TÅBÈx‹ønïm‰Ž²"›uèåóu¼”$H1×eðÜ Þ€<ô©ŽŠ²²tÛ¾³ xD:©uw Ǩ¢r˜•¡c8‰3P¥Dz<·ÿÁ|¬:ƒåƶ"\¢ø #P†“<0è©nžêáÒçÚ+æ$"û9‰jžý¿GoqÖ W’u2”ŠÊbã9½=éo’¬Zжþx Ñá:Ø>¤ø^¬â;,9WjA¥x¥§(„3Ãe·³›C¸kMA ݦXD1½WÃ3µ ¤V²d8áEÞÜ׈À¨* œµáЬ¥[¬0¹ °0“ˆ ³M*30ô†ýd Ü 6k–;°ù ¥ƒç¥ZÏï„f¡K™EžQªVšº]Kk‰±H:ˆ—²+%Ã÷ ÃE¿$úíÉÀöàœnš½¤Õ 2‚çgFZFªšjdeÄšo™@¹4$ödÅ`#ùb¢Ç'¾$U€Öºqà ©2*~›š=]wqÙB*Ù‚ž³¯2é¢Ü$ñÃ$~ìëýø­ÒêçëåZ1pz2gïÅ\-btäñê KÑ ÊdÀR¶TKºDáªç˜¶Ç4ãi7Fé,Þï ðu²c š>“dPDN ÍøR‘$JªÉdHÅÑN7–)ªirÀåæÑ#A?Æÿò”Ý:ÔôJÀ>À‹É|+§Ù{sÅUÂ>Y7uÜ<Ó3—p>óî6ÍÀÈÄb­Ù#5'OHŽ ù§upÏ dˆ˜I}–*Õ£1÷N6ƒ«Í¢àà»`>‚#Ö ÃéZLçÍCc×%¨ø²ž’}ú¡¿Iô¦8°’— |0œã˜uŸÿQÚ#ø^¶PÍe Œ_­» Þ8Úó…ü”P箜÷È@'Q˜:¼Á¢4‡W—ËÊoi]kæníëjåçwÆ ²–xƒ1´¢£t¤ëx¹Ž Ã$žÓJXö³·í¼úÜ€]f ²ýsÇ»8¹ìK_Où ÀåXÔw€õ¨ás¡bÎuæO¤Âl’ g{Ô²ŽIÝymïkKU’døÔ/Ì 6b“Á U¹z‡¨ÔÚCйÃ8Mg†°ïˆ‹çYÑè,ï£JõÆ–'«Ù<îw¼€’}µ²~eT^òêKƒ4¶ÐÔiR~艚6õ5m>9l ýžk$ýþF½Ë® endstream endobj 377 0 obj << /Length 2584 /Filter /FlateDecode >> stream xÚYmoÜ8þÞ_1{_êµkI–,c?µ½í¢‡îõpMQ»‹;gÆ“1Îcü’4ÿþH‘òËÄÓ‹™¦)Н±‰áŸØdñ&U*Ê»Ù_ÄŽÚÞnhñï__æ 1œq¾½~ñú½ÖGYœ‰Íõ~.êz·ù=øR—}w*¥‚wM}%ÓàîJÚ h»C%bk©¯þ¼þÇ‹_®Ç´”ÏT 9ŸÐI$id6Æ&‘P ©õõPàîIÜ–¤?–ü»mލìÍ•RÞ“²@¿/û­úCZÃff±YšERZPÎm†=œÕs.ÔJT4²5'ÜâJ–N²ÛâÔ6·m~ô%(ãLè, ¤¦®Pò&”RE1ì  M2I þ¿-„O<ñÿ›«Ð¹ƒ^äõIP|·EN6¸\˜H)1·œVr´ÜUˆj9RÉ¿Îz |4á`:8À.Y/‘j²Þ]ÑÞ4ëöÓi¤´|dAmÙ‚¨[pF^Ù4”I £Ùzb¶·³ÙÚÞ:V,÷&òŽL8š¿Ë¼*þˆ…*¶h°ž ιqÉ&Ž«'s”õ¾YÓGÙ5]عUƒÎ¸VÏ®„ˆ¤1pö,þaôü —vט_¼ÿ¿ÚÒ…0Q”%a"³¿møf–xøžË²f È_“éEh\t‰¤B#ÑIÐÈ´+©›žòþP££(%ÍòüÍ¢(æ#áb Ú†ËYœAO{,ø»>ïþ`.lå° }¤R€/ÿüpýùý‡¿¬ß³aö®ÊŠâÉ¿}û¡4I,–G/œKïʶ©ÅèÞÔ@iÑ:ÈÛ2¿© ·])èÐBP-Až|·+Ñy…Ïú,â´XèD5X³î׎£bÅvŒwrÂZJ@y•£m pmÞùX%"Ê„~\2“ÄmQ' ÑdmRPÊȧšXº‡®/Žóu]Ö·Äÿ[¹m›®Ù÷ôîkYï(Ð4IšLÛøˆÀ¯0"v!"Î’Ñ9ñã§woÖÝhÒ(Scm\wŸÆÎ  »5Ò’½¦å™—ðÍÜKšk,.&[ÁÃhçŠS‰5Y(ÌOP 2 [¼¨ºWÙTÀÜFeÁõ¡ìˆg¬l°ö´¡ò š 1ìù%5É¢-ºžßÔž§oèwWÐ6UsâÈ9‰F{sjíŽe]v}›÷M‹ntåuà*^öTò·9Þ®9}y,¸ åÒ  ‡¡+öCE|`b®ÿm3€°p8#÷L«í÷ÝØY]¸ÉË]-íEò¼r •UjW À¾êgÁiv ï?cè‡}zŽ~ÖXǃ6ü“õ·u7°ùfȤ">#Ð@G¸K½¯>ä1ãY Ì?X \˜aUðÂÍ6ÉüìA.ˆŸ•V¤Ígxœ1âÌ&Ù³sÛNe`š3bC0»l(³lÒðý•UAÓn ¢çDí¸NnC†H€PâØ.]¢‡©¤‹VàݰÅcè ÿ»zª±Sûϯo×N'md&œô’$bÇßÛ¢§ÅÛHÇûî…'uÉE I7¨Öƒír ºš»Ò]çIŠM d©x‰ Úr窾°lPqf|³+ 9ACAK!þmŽô†@¯‹Û@G<®S»ÞËñż—#VI y~.ŠóÉš†a…Y>5[o8c¾8]{g„ÏP½Ç!DÈHP¦ÿþ±q% ñç+¢ò[.*9WUZð®ÏTÖs?¡î¹P§ð«E;N®WàÊm[Î*W‘áwéQWÄ0¡¹ˆ¥Êi$TWt2¯´EÅ;ŠP²QÁÇØÈÀÂoWl1 “?Ý×´øû"`Ç ‹%P­&`dk¼h4¸6r¼|A!T„aõZÕ*`Ž]¥Þ&×.|ɸ¥íÔ:¥¾»X7ëy¿šÇ °K,Ÿë22S¡%b·M=K»žˆõ™ì²Èdtuc|ÞÍ·¾—ëA~VA¿§P0\þŸÊ­Ã’«ÃØ(Óg%þõе¯»èóÚmõjGÉ~Š. w”J=á DðaOw?WcÓØáeOKwÒ¿rð—©UᮜAV] a”4éÒ¡–úÇ}Dh–r9¹ÊšùÊz>ÕÁÿòt=× ŒÓÍå.øä­ ³QU9N¬ÅRoªþÐ ·‡;=¸€ÁEñ½/μŸÞQp¬‚#Õ ]¹ Y3‰% ÒF¥Zî‰6mÄC>]e%?Ú°ŒBÄ8¿¥W@½ƒ¤»-Üü'ô/;ÏÄó òñuMßû¹ë4ôkGr‡íÈ”n ©©uÅ)oèêü`â/§ò~ºyâb·è‹Èu_VÕâ&É#¾ÎF‡çûB+a9E0°„v¨ÍÚ,ŸÅP'Õ“åÁµy³€ì´ 0h7á-°{÷ÍØð ….Êz[ ;4JŽ÷8‰TD"Ï#çh-É×™H¤Aœ<þ“f\5qï;šÊ¦oä:¾QPiþ“WpíšX€³3ˆãNÖ~R°GÊž]_–õ¿ Þ5Ô»¼Ý±c¦{ùs|Ñ}ÀÀ$ð ±øžOë |c—>øi27à8*“;/Š¥£\.“ác¹Ç’ßCj1‹IxX¤¨—ãúéʾïË{ #çp:÷*[‚AUြl‘XÌ,F ŽÔŠq ~:ÂxAè I‹ ®·è%ùW\Oa†‡]zƒ×HÅ ÆÜ ãÕgä~ŒW@ðKÞ©Z«˜ïXPÔ‘’¸iA„ÛâgƵ¹«TNÂYñ€ÏÛâTå[Þ½ÈÛªôÌM•p¥ ¹êdu@Û<ÐHz.Új:ññ³3᎞æó,W0 züŽW=-…P 7~ì…ø)ã·¾àN-Gþ%w:¡Îw¹Ï:úu#lJ#¬]\>¾3i‹…Ù1𤠛9¹ ¥ Îô°æ6%̬«y×.‚%6b;6b¤¸ î~dü{`šµôÙæ¯hvº”‰#©5è´]upI="»|éÁ­*‹lbÏoAÿGf„Ê»E59ö¤[ºEçêÝø?ÌùŒÀÄÕnž¡þä–© endstream endobj 381 0 obj << /Length 3670 /Filter /FlateDecode >> stream xÚ­Ù’ÛÆñ]_±®<›ˆ0æÀU~²-+V*–\òÊ.—í8X\¢D4jµI*ßž¾fpÔ®R*>`.öt÷ô=£."ø©‹<ºH s›]¬"mo.¸ñꯔ¬[ÁÂÕhåWW>Ç* ó(WWÛ1¨«ÍÅ/Áëºê»Ë•1&øº©/u¼½ÔYP¶]Ý•QQ–:¹üíêo¾¹ò;ÅZ?%\yN*²0k/’̆ÊXFìùöre#Ü!:͉;·Ø)ÍžGú†¿Åf3Yßr¯ÁÞmÍӊͪö«z¢t ¬i§«Žûb]Ê” ÕõE½)ÚÍô]Õ—«ÛjS"¿.VŠéZ)ª˜ÉêNÇã¾<”5"Öû襅 fÚè`Sôþ)»/»'Ћ5Ò•pÑx@kªz½?m.UPr¿ß•7ÃKa‘ž'cžë4 JàŒ­1à…“Ã1I˜»UŒÑþÀoÝ5‡Rè¨ÚrÝ7íÝef‚ùa¢4Ô°)3D ml ˆV(ˆÖúmp´|Wu$ Ð®zùʺ¶,6Òü«ÄÕ5°šÆ¡TG£)qž”<n«ý[ˆ¸H `5g!Ã)¦`\ÅAzŽ–\ö‡!Y9¡†…Ô<ž ‚ÒŠ³üg7×¹A”¨r3¡†‰Ù¶ÍME.ÛAc´ôd;h1È´"ÑÁŸ¬F–EŽ0Z7=7®At²@@ËéB«Úòw8è8&x¨ƒ-Z‡Ú‘¡­+œ/5¡`á¼ÖÍáÁ?“(ØW5‘ #Ø"Ž^×2çÁOU½aÓÒñRb6dÓ¶kjRn:±ÐÈJ¯CЮd¬†£Ý,i©AËhb§Hó¦ÜžWÖÔ†6¶^©kÅø¿:ÕuUß,í±2iš,Ÿ2â4ø…ÕK[Ù44‰q[¹Ã4 ÷·?('š0³oˆ7ë‚ .«±Q³p‘}ì Ž"[Ó­84°{NàØÎèÐ*$( ³Ô0†Wgì  ­¶c/[AêT»eǶ¹i‹²–µ§ízîôm…‚H͆¿›lÓD‰»#ÿ=¶—´ÌÛKê²®œeÄM”‡iæEãÛ—ß}³„¸NÃØúUìvÞV+擲0O§ß6µóN—(Ä hUU\“BÇ™ ^Ö<ÕÝu}yÀH³ £™ïªuÛtÍV`Œô­m¡N/¥Â,yQ‘UnÕ†åŠ ì…bÑȾä=ž,íDš’Ý{îÀ"rn§<*z ûH¢—òAã—Ì8Êsj·n¹Ç§ŒkF§Œ]:å%©„v¢'|xúêù‹ÌˆÕø„—‰ Á7}ÿåÕ·‹JC3u+Q;‘ “áŒ^ÿðÍ«ï_½|öüï‹Ø &e'ɃŸ1€8FâÂ4žxŠmL” øöŽGÜLÑ^W}[´2ì½ Nuüôææ#ÿb"6.òžkì¶êwÜ:§„,Œö’øÝϯ_<¿úá,/%5×EP8QG“2=•µA5è!(cì”ñ d&ïˆS?É"¯±8=vèõEÛ/ÄØlrPe þüsÑîÄ¡öÎëO‹^!Lµ7äÔØm±±#  ƒÛJk±¬¢ÜÍÁQXXˆ:Kü}»+[g'ê ®.`V™¨3Œ]üM·/ºæÝ^…ñõJÁhÆÞ‰üªŒ½Ÿ\Ž{ ±5ûuv5Q6 vÈ[@îWðgÝðUô9¹@gƬã!ÊJðKÙb2f—ƒ*_IIÓXП…Ç[%ä%ÆJ1˜®â Ë ß-•<£éº ü‚=¥¨$?J"íyª™ 'î¥AÞˆk?òÏRºä2aQ’¿ñ±˾Aßzñ%z möæÐr»Ä I¦L‰¾AÛë[bÞËÑæ)Z®—µ#Ö¬ûå3Ùl1Þ‰ÃLec5˜Ûf¿ç`õÒùuHb›³=h0¥;î¡Y@ñ7‘ˆÿ9UbÂ8öe•ϤÀì@b‰2Ä GG(©!ÁQÑkôÕ(ièIZ^†ÒæþGú¡HèÒY( ÇB‘IFs’öÁèèx!rkN7;)ÒaŸ I&ŠÿëØ€B kWPXÒ`DqǤ<ãÿÁÍû¼$á¬Ã™>Õà*å?¾V†¨K‡ZNÚƒÛ ¾ 5ǢߑͶB0˜jgíÏM{7åyƒ GEŒ‰ ÃrP©uokŠªž]ÎB–Ní%-ÛÊòÞ!%|€_pùrém’Mæ×âRcb@ÇÍAi¢‘ÆŒ˜qé :Ì6WÎÂ=Õ¢L<5ˆ²Ù"‘:‡ÌMy‡ð—û‰|òhJ‡©õЏú”Àþü)}þ €y;÷ŸsÀ²ÿØ?>%°/B&»s‡¹™™«e­#/-ÿ}‡‚žÕ¬h|fõÜ}ãÐêthÌÇDj²}#P£·+9ëê(À"ót'ȈUÁö5+Ö fÐwpJr˜ÐøZ…,9aY³[czÄ—sZ=¯cŸ‰ÏRpµž½¿?,4“Г‚Æ”ýù=Q`‡±Iç5ŽD€)sÀ…¨),ëê@•Ù8•²@S vzº¥2ùPÎxtZ¹ ‡SçµnN­ l$,æ_/ï 2œÜkñ¼˜éHéŸ{2Å0Þ´ÅqW­™Ip¨è2íÔ¹ ¦*›Ä[#†$öìÑÿEÑbÙØ#=þ‚nƒe*Ó0Ñ7ëZ{"M$Ù£Î3,«À×ó5Ϙ€xoÐÓl°{¤ŒÈXžIâ%nîKÁ Cúr–²̼Ĺe™Km8\Ò=Ð=7:Ù°nj·ã֣Љ¢CÆù¬´9÷ÃÚJ iFhåÐI¿Ñšp°4˜©;±S>HòvÊ™%Czjñá¦êÉ*9[ËYÇh ï…-0oÇh!¬+8ñ$ Ül€-7ûg¼6øGÈ )ŽóÓÿBpè !8t ÑZ—.˜ÅC¾€™4º¾•B™1 –±ØçþqàRðÁ6?YÈ„¸ø€7âxýÉwã-2Ç@»ªë9™Òxñµ—à;[^D„QI^çƒiÄ1bÝŠÖ8Øl:b`ù3ªèÊLù®8ùNÖŸ S!Ó|ò¶i~׋Uþ,LLòi?mòD-æ€Qˆ­‘YqÀ‚ñå4 ãá6a.öA &Â$sa!"’BQµá®ÄÙ¸äÓò³û+¤=S#–¨±9Ûœ ;\ǤcŠEÈÆŽ/ÿædUb…8ñ|áŸÖ®›Ó~#fˆÑFMT*’Eui›“TÎ(5‡o,ø ±;sB³tæ…~‰ÖDÇ íýD = *l>u›ww8µt4‚)oT蔉[.{ï%Ï«Ër3M ÇôØ|cú±$Éö/^‚â¬´Š¢MSZ„Ì{H6}E¥tÈÇà4!Iæù¯,Q½‹¸Øpú,–j;ü£l2Dž¿ÈjP [Àå'Ø*øÓ–›Óš«oØÝ—Ŧ›¢Â¶9C«[ªÞåø ¶Ÿ°#¿ç´«ØÁ¡3Œß«^´o†b·Äù¹¤ÅBš™¬ßÌ“\*éàiÙ>¾¶âú®s £XÕÛz‡á5†mw²¼c’ÇC9GÅQ¨Õô鑸Ÿóõ;²˜Ÿm&x-…vÑØ=fÀÛ¦]û¥ùqùQ*yNg"Ö?í8†ã×YŽ2–6÷ú…ÎsRi:µò*9ÁÕ]9áÌ{ZAjáÏiµ^"TÙ0¬bsÁÌ­ìⶤϷɴ{›ó> Ü$Iw%8G§©Ö‹û»ËÌÒ=*dôl*Ά÷qØ¡2Z[XêÃ~Áyy€°KEšØ•Ö á{@sR"F.'D@½l‘0SLï<¡ÃØÎŸŠÄ¨ $ŽÐº¥#Ü8€†Õ©¤¸‰<4éÂ]‰{þ´€ ¨i>øé3‡ Š:<àÃ'zä±p ÷z+vÖ]Žß–Äë½ÉpG¿Z­AVÞ¬Þ–íuÓ-¦sÔ^3Å #H`F6 ·û7\,áã®SïfÃ8˦ÒTþ¿Ê«¦2\m…¯ëÓ-„ïSÁ¦ã ³%<¸Ô?†ÁŽp Zzº&ž3Š’JÅc*W턆܉L°ñ4£'`‡êª2çq GÞòQ o¬OîÜûç/ÔŠÜO+5G6Tþ%çÈUÒ U;Ò@kÓ‘‹Ä)_Å)÷üÔf‚—uWN©TNq`Ùád6̬ýˆ¢'ï3u8(@iâ\û^Ðâê²·]–/¬ @ؽ.HÄenñROOâ¼Êi3·§&W^ÉôðŠo1Š~x…Ií ØžæÀ/pMw: CMTF! ®ó! Î;[¡ÜSIuÆjHÒI¹Ø,£Ç!Ò)Üšôf¿Ý…ýÿ¿¬y endstream endobj 384 0 obj << /Length 2880 /Filter /FlateDecode >> stream xÚÙ’ÜHñÝ_1«fݲªTºpì, ûÞàÁÞ4­êé ZR¯çïÉ«tô¨ñ˜˜e]™YYy÷¨»þÔ]Ýeq&¿;Ô¯"šíîøÇ_^)Ù·‡ûÅÎ?~xõæ]’Ü©(,¢BÝ}8.Q}¨î>?7nèwû8ŽƒÛf§³àóNçízÃ}¬¢< t¶ûåÃß^ýùÃD)Ñú…,áίó”æ&T±ažþu²H:ÓÁØÛŠ¡²—/î]SvO ·—ÝžX.‡¶{ s¹†“åÅ#ç@0]TyšY$z{Ù³b* 3ùß1²ŠæTvåa°L•Äj 0ql»ZX­*7°‘K9P£ŒÇóà.ç Üa·WA98€a'ðq·W… •ΈC•0••K6•k“NÂ Èø®´"§‚žÇ"=ÜÒò7¿pûzçMñIXd©¿üH*²!"‡i;óÍëÛ—™0KÍ·=J§9?±€M”„*ŠEÀŠw‘‚Å)|FÑ/ûPÊ;Âh¥m<õÈúŠP‡o:ð±®^ðS¤LCÑ“¬âYV°^£ X/„î€3(®ö¶³e™ñ ãx¹h}«þRH˜¢€Z{ézÑ7l$×ašk/Ãß½LÊú™x´‚+€Š£‚'Þs(;‹vª“åeqýPžÏu÷Á3W 9ùžè…pIä’³šé€I¶}ïîÏr¥Kg¶²¿üç]’åy´=«@žƒ(V&V6h,yÔ$Ú'tö×Ñ‘ÃàŒ7¸¢ëmÏ“d[ùBÙ^({NÊsÏ”” ’Y è\}B’ÊûÀlå@ubÛÉu`¦=n=öæ;Æ!hº¼Ñ±m·ÞQe¡šŸú;Ž,ŽØÜÀJ ?r_v/ÆûØ9ºàMÌY˜Fé‚ãï?EI´ðU›j˜…:»&öiË&Òðì&E“-ï‚÷7.d’0WùD)d]ÒF…8¤½JÃD¼øWKº4]Ïœ”ƒýRÖ—³,ÂCò"ûSÛ VåPòú ¿_Ì×ÙŸXÁÞ·µl¹/{Œ*’Ãøý¦ÃfV,cØJ³$øÍnŸåðýí‚7è'ª!µ¥¨‡ Þ ¿%.«Á±}–HvÓYàK§ú6 ØÑ¢Þý4˜DWVžDåj0Ið¶gÛ*Zäéý?W;¾á&µ;tí^*»OÁ”ãhÂÿ'{t½bæ¾lãjÈä WM‚ àše¿y) Å^¿!•S;ÂÃiÍÑËÞ-üL»ßºƒk'!…‘NŒœ€0§g±¼§]$yh¡ ÚU I4‹Iå6)Ñ J_{,‡Cº¡W`Ô÷QtÏeY;´Eºj¢s rc2Ì Ãd£ÿù‚™ŒÊ‚÷Ç3~•GËÔGð·K×È}ÊF‚îÍ»è4 =%ío¾ý.{ö×1ä×E’­õ õ s’(§@QVé@bz„¯`Ÿ*;Y¼tí`ADÏßû¼`I0;÷)d (-ðË(-<ÿDIÌÈ'¼CçѶ ¨’ô”úžÊóqÏž^½Ñ›«Mb–¡‘/Ò0ýí ¡ÁdKìø·Ä­ÂÄ$3zήA£‹+ér¶6ž+ Qœ I„†KÒ³9_ÂP×þ,;7SÐV|ä˜I¤äVâE«Ä!ä=PøòؤšìkEj·× ËTîHb jpõ¬Û”ñƒçù ¢ 8˜²ãáÏ·j't*•y„ðŸ¾3oöq±‘¬êñž(i€­ŽÅ™F?ð k&gã-&Œ8ÀŽÏ’&~•,k„.iŽ g,:D[k_ЖÃ豊Ù^s¤üƒî·<õœ®[BL.@ªVäÁ;Ì˘ËɲÇË9ùDàG{îÝØó ‡"Á uwÓŒjR'\¨ÚF ûÉ£ÀQWS]…ð²Ò¢w»ÞüüšqྱízÎÑÍš« »&Y˜¹IâàÁù¢Í°7ÅI¯28Å €ÐÚoâL?²7ãSXá춯ˆó0™{¡ÑHtèÃó¡ÞÒÌ4…ª~aÔþ ™\A³–!þ‹nJà”k¼—Õ äWA»íj_Jcå„qmƒu(ðó8ûjû!ÖÃNÙøø¬ [?£Taài)iìÿeÉ.æÑ¶•O }¹ S¾çjŒ GÊV¨¬KQ­ V!ÜÒ‰ ª)’µ4š…«ðÉúk†'qã`ÖªËØÇÇæ€’,Ï«rÀ7œV¥=^\Få ®.±æ(kñÄ®A7¡‚zÙ“º­à WgtüSï£çë…d ÏŽ‘’öö¬00WòÌò>8Fdí@ÊÍb¼xÅqƒ A1ü^VðµegÊN( ''%ÿt…Õ ^Ó< ‡‚uRâ Òɉ7žÄNC÷ãÖ~qvS&HAp½’îÀ#\CT(E›1´FrTrGjlf™8/ïè(=$ôÏÕš›8™ÃP-.½*)A“€º’^+Ž`½™ô¤¸Ï¼P¬[£ .ä–>Ìr€‡hñz+Î,Í)M&û£bšN)VÅóS¾–òE`ÆÃÒu<àgK¦÷tÂ3@ë-“ü”‰4Pðx×ÖŒð®ÙŒ›Þ@±E=µÌ¨Ò¿¶oî,,z(®Ñ{†ÃV[ʯâg¾ óN¾«ÛmŸð¶ÇÊõï:x°ôd/î] ¶¾¼Ã¼ï %{SñÞÿðQ½ýû/Rûµ5?|„@U„iözÞڕ̓ýác´˜ú¤bC×Ls(*Ò•I!îKÅÌÇ*ûðŽ¡ï¥**dŽo7œ$އlñˆÞ<Ão&÷û"ƒ‚(}^^AFðËt-2ouÄï0…?\U> stream xÚ•ÙnÜÈñÝ_¡·¥°ŠÍn^ü âÀY YA`¯jÈ™!Ì!e++_Ÿººy eË0 6«‹ÕUÕuÕUÿÔU\%Zû™I¯öç7A»ã/þù·7Jðv€¸›aþrÿæö]]©ÀÏ‚L]Ýæ¤î‹«Þ¿šjè¯wZkï/ms&Þ×aê•]_ÁëN« ½0½þýþïoþzïNŠÂð•,!æ÷yŠSã+m˜§¼;Žç²A>`!UÞ¾mmwÎê÷T 'Þú/²ã9E¥3?ÉBà€*ÁYœùI˜XŒŸ˜ØÇ *¿ôoà5 ½áT2ü’£ªgFŠ à¨«ºì{ø\ѧÚË›‚†S.Ÿ8j²z.‘¹«2‘© ÚWsu›ý@÷`à³®ü2V]Ùó[.Ъy—×Ê;_ï”ç˜5kõ!€Õg^R_˜$ÀKj•óë÷Õç_ïÒ4ñÞ]§Úk;&Ýà‘µ]7uÕ”¹ldu$w˜j?4‘È­˜^Q~ ”$iÑžÉ<ä eË»BNKøöTÕ5¯òú í9GäçžaCþ™Ô.üXÜ!ž,.üA Þa˦ìòzÆÊ,X_1|/£‘×”eÁ«Q¼Ånx·=:ñ«("ö¾Œ93X $¢`—y?vL0öf;ϸnÇŽw°”éR‚‡û aX–߯w(Ǿ:ôþD)'TÞ±bÅÊ+1¸–n¤Ü€¹€ö‹„>°ï|;eF”d¬j¿¾*e†ŠÃb(÷‹ë á É%Nü,Ó?~ÓHÜ sak~^àµQÉCßÖã ‘’9zä;I:Qì§Ë\;@мa[X8 øûÙév«ÁH3ñÚÍ®¯jv@Ü$VþÉ Ô?]{–XA¢/¾hA‹Ý,¨lø²5Ê´»b º¼žÎL%_Ä#º-u–ð€N ;?]cuHˆr*«V…˜2@Ä‘qÏHsì~³VÈôrŠŠ0‹Å.`QÍ•Ño±K5§È¼sBOWtO!jª‹ìj¨$¬k^=ÐÍxÛØíãLý8°^½Y,Bq–NÑOLš»„Bˆyå­Yüœü0”,g›ÅTùAäòàÝküi²åæ]¾‡c¨,Ó²a“?GDûÈ¿ˆˆÇÅ øÞÀ6/Kt‚þu¡r¥Ùu¨¤— m̼½—:ü¡H¦ÙŠu*‹ycº'ª‚ˆjòsÄÁ›ž.˜àÛ<˜`È{à`?^4 L®àÅ**»/…~+ÏU]É¢‰»veƒN W_rwE!; î_Þ_V‚Òá®ÔüÒž«a ŒH;R:z]Rý§Äíé'¡¸Ö#íÇê‡l‰R!‡A‰Í˜Ãí¸2MG™¯õÊ‚™™XoÈwé@×ö‰òX2ø†WAI8OÖë$šWªâ{©™êË Fw^I«¦ÐìN´¾m)†î¼ïýÁ±<É›¬;Ê04~˜—;+¤œxì,±½üt†ØÚßETR„e—–w»=”ÝŸ7#&´uSÄl§Yb<²¨úÇ:;í\0¸¿kÀÜ@bfÞûaÉìøÈïì.‰ímxÓ÷y½¡4¶v zˆWúà:gµÆfl4”È»®Ücí¼cVGK€¨íÃ@]»ֺ©%úb¦¦ ÔßaÐ6/Ý„Æ&É^sfž»ä&H#&P~œ%Ë:¨ì¹™K¬oÇæE»ÔžÂfÛ@,µrcD‚¢ýN¶z·GO×ÈÁAUB»TvyˆbèÆªÂqÈUÜ6;2ù³Ïó­^ý8B˜‘Û·)ôf}³Öe §C©øÈP^nÁþÍs+ìÛ³¶èº–ÙwÑ[žs<ô™_XÝ3&ôc¦á îÏ“¹™È-ܳI÷S€,òiÿTÎú'‘÷õÓwó±È̹>9å“1„ÕþÌ·•wÕСL´G’ÓÝÆÒBÐÑ’Ž>›t¾žåÝY»¢þ{!Ó®ÒGL{HŠÛ°e´ <µc]l%†(òrYo«¿ |¸v«ŸÍX|hë(CŽ÷Ëùäe ÇYé‚9C»–=ràWꎌödÄ^ÎA¦éb xÏxä8íëG–Ñ"|Ì#`S‹ÁÚîrZrr>V•µtâ³+Á9‹ŒN¬(ß´õo—¤“9Wݰ6çþËö:ö^2GN晤¹ø÷Ê$i¦3iþf1%2³Ïç×#£!>Jv#1=NC—'‰LÒP¾ÝMŠ$¿q0RÑÒ¶¸]T…öSxáh ×gáËüâá•¥P¨,o”3¯…5’ÔNJ©Ó‘¥ë”ýR-üR±Cö›× ²ùq¿f¨Ä.YrQ‘´óZ*~œ®E”žDÿÂî0Ø.Ö”#øeåÌhÅ<± è*Ê.åzTh&# Q!Ùzìý‡l}\-mר­ m°Ù2‘ Œ‘Ù4vFäkþéu]ÞC†ŠÞSL]]ÅÛêîx»?Ò¿ËŒx|û!¸Q:ð#[€{£|TÚ‘ò#³ªÙð$e¢[yîŠå äõÝÔk“?ïxw¼¸å¡m0½v´×06RsàÊMC, {7¸¶˜Ë0¶]•ñ.·›Q¡ŸMctQèfÝøA6ë¬$keS,+7aÏx,×ò|€–Œæì´iƒÊ.„Nïb¢@Ú^4ßCa„òEÚrÐs<ÀŸj!‹ÖX~Û F-ŒS.¿ŒÔ–L‹yI/ ­šHRÃQÎ$ÒuÛ—…Eàb¯“˜ÅP´ªe2Óæï:ûz,hD‡ÒîÃâR‡òS`8«CìæòÎæUF<•½£6ñ o4~€§í‹4ñ1ïx…wZœ5í¸™I±1`àÔG/HDýgæý¹a¤Kf*³…y~€—™ôÚ ²Ü Áì^S.‘˜PK¹yÃæH˯ /s2•ñˆÒo]èØLi¨›‚xÉæže%#Ù,ñÜ„”pRÎÿYâ.N>uƒ@¡¦ºÂoŽ qhâÕÕ™ºœÙYRe¨¥TkÐÖ‚]Qo”Þnf.Ä´Ê i:Ÿlãk±Ç|†Pÿ…£#¾£ˆF'˜¸êª,èª|YõqE=¾ˆ‹²w„*€ÇŸÈÕ‰~ĆÕÿÊ®E©0*¶vsË>g ¬êí|rÒþôC­_˜ýÆ@Îýß”8¸y©ê !ØÓÜw3îTøáªi"Õ–õêW"—Õ"óÍxàœ|¢oU€À; ågÝéšÜ ¯­WßV£Ýù¯”¶êÜаËëÑp_BĽ_ iZ§ ¦ú‰·œ-H+Ь¨cVìzn¦ñÿžü8$Î endstream endobj 392 0 obj << /Length 2915 /Filter /FlateDecode >> stream xÚÕÉnÝÈñî¯Ðm(@&Ù\aÌaœdYA¬À<¤Mö{bÌå É'Yƒ¿=µus+Ç@vWWWw­]UOáUáU\eJùEœ_•í«€ ÃéŠÿøéU(x@<,0ßÞ¾zýc’\…_Exu{\’º­®>xÿìêi¼>(¥¼?ôÝu”y÷×Qî™a¬azPa§^T\¼ýË«?ݺ“’(zá•ów ƒVã«4ýPÅ|±Û;Ç'¹Wõ­®ñ*Iæé®bà »“aØx¾>àËúç ŒK=ÁÅGÆ*µÝw$=ð  ½Ê´«L‡\OÍ#/Ë9™Ç#×eµ*3á¦ïN(œ«CÈLBå‡ óðPOwxBàMÈ .,oÂ'ôðÙúòþõ!Ø­Ýr$pÐÅȾc?lˆZᘮŽQ”‡È ŸÓ×ÌçÈp==MºÄ•;#»§ž¸ „Ÿ¢UZ6pxªA”÷h9¦cd¸·aOa7¸‰Ü‘Ä‘¿)Í8êáñ:=BR3ͳtk&ÒEŒwHR’“ãtõŸË8_;ü(ã ñʾjõˆ6©hWè4­…˜ypI*}¥iàýx+ÏÒ3_t{nÌ ª2&nª™ReqHÍÇ%`fes©PÁ8û7^œ$]:‰J?Šp@7'y~ÿ!|sœ> úʧÒÜÏ¢ÌbÇ&G¹_d+%‰ÇA¾h”ø@„ YÔ÷ÔÍÏAîšd~”EîÐ6d‘ 8-HŒguÓðèÛO&ý™PÇS=òWñç8 VÏߺQ²{‚H¹÷ç£ Ú×®´ÏÈ8zÖãhDš…”G¾Šòµ,,-Ž ¯?òwWfYûœä‹ àèÚ¶{Sщexi|Æùìû| È FŸ8nðÄ™8ÍH6ðü"‰²$)xzœˆzæ=ÜÕìë 'Q S—i¬+¡ˆbã¨D~kq¬=ÏUYÈæâOÀPü{ăú N"¯oAOf Yøl8dÄãз›½çÁÜ×ýE¶ÜN^w-“›]7õq¶r£g“æ…EÇ„=(LüT¥+êzä*½É vTª@Ä®90x–L$ t¸‡¸AÓãÂ?¾ ’ˆ“»°-[z>Ĺ Ž¯õà ÜÖåÐ/¾Vã LÛ+ð+ dd'H²u¡/Gp]–.Ž—NÓEøÅ)ùH² €¾sae޹`4Yxï!è‚ò*i-6†‹!÷—Ö u©›ÍiãÞ•{‘~‘¢/!{Eæýf†ža$€œ› qœô²¡åð¾XÙÂ:Z.=YÐΞ¨qdlz}¡5º«»S/ÝÍŠ›eˆÎ ”%Úuä+ÜðˆpdÑ< ’DÙ$A4¬L «Iç {ŠŽ°êL÷œjNýx&"D,„¬c ~pêt\d_–uŒdÉFAë'ã#‡6Ív­À_N˜©õ\1[. fÏÌ™ÀÉL‘¿´¥6†¹Å¬£ÞÍenàÛäÅ?4ÈÜ Ó·"wfck˜ ^jV¾L8óBõKæÈÏ$§ˆÅÉàôg„êFÈÔÓw‚!‚@ߣKôü]$\Œ2nwrPõéB©LìGlzŠãœêScÞ  ŽÀ°xr/xħq7MB?Í^TU[´Ih‹ˆp©–!ÂøÄ©Ì šË´’Jòl|ìz®âÚ‘!|ÀBSw\Æù\«`j*!Æç\ྮØìb›¹öX+àT*¢LW¤°Ég&3fòY·µùꈎ&+éØpFŠGBQáðyÊB€ÁMaÒš@”°Áì22#A*7‡Á~†~ œu~ÝÍý¡ÞÈçzƒ³®­§~ gJ¼w½œH_ðçÁèI×üYhJÜ8Mý, wj7´›Ý+‡Å²þ™L{þqïÖPa:·¸6?+™<+`¾ý¥‘çæa¨§]ï=ÀiIªÖ6yÔwƒéîL=A¹|¡šéDÉ\ºýõ#èvé ¿:èŠÐnÝBöóõé·wµ$Æö nK±NeÒB@ IŸ­SBþ,Ý7òÓΓÍÃMù¸¶køÈ)0kIè›ÞO×VÁc]¯e³ùRtþ sÉ8pr§©[Eœ ¡ÛØÑÓ&žõCMÏg§‰aÖm|N5]Oyƒ­â÷|â‰È«·ïšŽÒ¥ªß‹ª¥„nfs¨Þnìã=ÀBXð¾2Pýþ0ªÀ@@sŽ„Y`=b¨ÂÈÄ€¥«€DßÁéñ]€Hg·¬Îˆî=g/˜¨;{Á„¡¦Ü‰µó¶§ ¯Úô~¢b}Q[pmMBR†‘¾¹<å©AS6} ¾91¨*—$ˆ8®3æZeÒî‘„Èõ%¥€"EÚƒwf4#Ÿ¬GÁçOG1ù'¨õF#ÂOSzÎ" ‚™e‰³…ãáéüîl!ë«P.þ;Þ×Íõ“ %kNA7JX•ˆbƒ.Ž5¶A7ø޶ìLä>Ï^f7h>{z ` tœž”(ŠM‹T0ó9põ÷†qŽOB ,©+p¼QÀ·ãͳ,sQþ – Û¢¶UÓ`ÆK3IÕÕm (›+ Nf‡ù±è ë‹=›ÈR?H׋Ø8éa}É‹ 嫼x&׋r(µ$h8éI+e©Gª§sÐÙžC)•,j£•a¸f´¹UH›è}#ús:ýx qGûBž^„R†g/8©úÎ<û“äd1çéøY…XŒŠG?Ïâlу†õE:)¤ºÙƹí@Qš6'»Ô•¬²_åç¶ìØÄ [ºÍÍ,ê$`_ºª±Y‡cni$ò0„+|Í3j%ÊNËz(l-æA,âEð†<Ãüz©‡eŸb&Ò˜îDM}ÉRÝ©!WÚáå€U—’tžÑoAð-ðÊZF²qèÝ`¥8`ÝUPaSwqmEcÙÙsÍ÷¨ð#­;þ»û*aiÏÿ²ôî:ô\_âøÈÏÏò:\ÆJê­ü¤H7Áq“VvægØúW¥k‡á]ºÕ”*ÛqÄzq0÷Òí·#¬PÕ–;‘G¢hÖYˆdÃAEaˆžäàí›ö—h?5 “ ¼ –µ_"—”ágüu  ;Ó}®çä,K±JUq-¢n”ùy$Q.c£<òþ(6Ì)xâý½6¥ˆexú7—‡'òSíŽþzÃH˜~×ÃP·ä·é¢IסxI¹Næß]`bÓƒ¡ª’M`8}5S;Ï÷é‹Lid#ŒÆ ý²S.ÒºQúPBã¤/ÔkÙñ¾¥4rÌ2)X“@òù7Å<‹‚Áü2ç®X¡DŽÖ¤˜Ç_·€øOCœ§8_¤¹ó/¹8¤$!çú ¦MMy.w’¿M3Øçðºûë{q IAس-í`Ûey]ò ž =6´ËeÅÁ¬6Äpвøû‰‹ðü ‡Â»\k9by÷úïGvÙßê®d§&%KŸg|™óâfÚö¡îÄGÅ{?¢æ@‰ÅT8P* HYPhÿ»á¿Ï»3 endstream endobj 395 0 obj << /Length 2236 /Filter /FlateDecode >> stream xÚÙŽÜ6òÝ_Ño« Ü IQ—÷){dá] Ù ‚…í`9’º‡p·Ô+ªg2ùú­buY3žÜd±X¬ûÐÈ€rWŠ]ž$q©‹]u~#<´?îhñã?ÞHÆÛâ~†ù—Û7ß~Ÿ¦;)âR”rw{˜“º­w¢ŸZ;¸›}’$Ñ_»öFåÑÃ*¢¦w¶ûDŠ"‹qóéöŸoþ~;¾”*õJ–óë ©áÀkvNÕ]+Tú=rºÛKP––9.b™‡LÁdi…¼úß¶¶•š·it‡tžèÈóŠ‹æŒÐ;Ô\ÔÔ5áêmJPb™A36•窘鉑¦7ÕÐô yšåÑwX/xQ?{/ÀœI¡cp¼îJ¸î¾»žê¥x¬™"³2cÍHb€H§Ê+µ’ÊhèÄ2ÓÆ ½}ï5B“‰¯g䝿tb[¾PsÞyjPV!¢øEw1UÃw*×ÌåBÔÐ=f|º>PCWçõ¦]´Jb¥Gçþô »x•iUÄe¾ÔØÂVh•DùWÂ;üÔÄŽŒÐea¼ÏN–ŒG»m/Òï™ ¼ºîÃç#e™sºMþó"åܯ€¼÷süõ¦y¸I³Èœlýg„¦‘EÖÜà95hTYF½^ä 4™‹|ÉÛ7/°Uˆ¢bä+ŠMã2)QzKÎQ®B!êø;eXU]ë¬ó®›‰ÑÐÏ N–.Æ’S肘Óé‰ö®¹€U)Àöýø)‡Îªð jE)ÄÒ1è1UAôdUzfz¸¶g/‚÷¸êØ8¾p ¶=2Bß ƒÒ&€0m†” ð1e–A!»Û>Eöu죹9`ð Yíó ‰À€…DçÀä@PT&Ÿ;:'`w¦?^Ï—s@çKÓ)fá–k@ 5Sâ7 ¦™O4ÁSðßëtÑ[uŽ2¶€œµ*d<ƒ>¡ËWù(RDešå˜aé.”z*‹ZóžÐpƒ²s²³j•^J_”u,ʸ™Šr’&ÑcH zŒÞmb’ç1DѪ×Ïæ6ÔŒ–ÂûÄóƒ{»£4â=)ƒòòýMU¸'”I­ÊQØöæÀ4úí¦—°³$[˜$V¬;Nè{ª² ¥H1^@ü4Ÿ‘_%$™Ž¨ú9TÆ,GÌì+DUP7}mÑ“‹•J~¶Ã=)–ÒhóÒ‡ª_5õh•y-{»¸‘@ 8:´Ë#£ëU1p3óan7Ü…3RõäÜÔï^gÑÿ`·ˆ2ß›‡æ-—‘'Bè­µ5^}4íÀW)pvJÁ“+ã~3³í—Vú–NSAαE`‹ÕXÈðpuÿZ&rÉ+]J_mý÷Š"ÃÆ» Æ6³œ ;C?¡bûa‡@¡.ãšÛXqU‚•ÏðÛv pCo«Áw)°;wpе¶Bo’¾ûn ~Á.&Q>ÚÓi"¼¡³É«rÅùÛ߀]­ö£‰ ùóÐÎçjì/©ç@G¿=$æÆñ¥¨ñÁÅ8·ù¡ÔÈÛm'ÎârÌÚT“7ì•(˜qt@c¡=õoWl»3t ÷>Øþƙ֫h µ¯RÃ<®—>Á㚆ÉÍÔÿ:+@Ùm08q/Ëyfpoq’“CáÕ0É!r ÑM*îúk»Ù¨2.Ê|©#Ÿ$öû꾩>oŽ ÐFdãd…“›'"Ùš|îq yLC›‚rú®-&ú¹qMŸ©üÞåWMÊ%föµ(R©}zô£o_Ђ€_:¸8Z²œO½‚RïæP“Çe1*ámA3Ai‚ §Êa>L`'øû™‚at™{8hµ~4Ôx¨+>øyíH@ÃØX,àÆŽOf]-Š­S,2ªé˜óÜ]sŒ°ÐOÀÒ´ÞzÓ?ñ­Ž¾‡ØýViCË‘ssž³ÏûO%¶þlž_ŠÊ ®­œï‚àºñ“«ë,EMä9s"B`¸€AC šÉ˦oI¾œÇ ø}„Á‡-¹L> %ôá ‹5°ë¸   ={Â8гQÆùUúgb•k×4ÖøæKÈ4dûKõ¯X©D‡us_«iƒŠn¬ñQN?è…/¢€o\¸?æá E Õ÷rÜ»-}Mìåø~¾Àÿ·ñm=Kö“w|\ù õLÓOßmשI'¿‹ôžq²Nì?^[ï4[Ÿ•Ò8ÉÊß™o¡Œå«¥ôq½ “($_ä¡ ¯EN³sH-û±#`BÓGÜŽÕG)Î2žŒão‚˜çõ*Ï7mÕ]‰™¦÷E_k‰Î¬É™ÒltUáû¤’PeO>ôܽ½„Cvðm®ï| ÁÉw?üû=«:þêPC´³ã'2LˆÎǼ‚(¾l%ÏMh/¦lÆ&gã £×Jg~¶jW­ùƒ­,*+½æ O¢BZa{e»m E“ζ껗§(¶B̽nøyn|ÊÏOÀBš®/uTŒ¨õÏ`ŽCYÀ-ר¯j‘_Š˜¿§í•Q“Æe9FÚ#µIþ37ZÂRç¹²¡oIÈxg¨Ž†:ü;Ìÿ»ÿ¥˜ endstream endobj 400 0 obj << /Length 2576 /Filter /FlateDecode >> stream xÚ­YYÛÈ~÷¯PžÌ† ûà!^g7Ø`‘Él€Àv6Ù’S¤ÌcÆüãSGóÒpÖ^ `X}UWUW}UÝ»þÄ. w‰RA¦Ó]~~Ro{Ü1ñ¿¼nžýÅÌ^ýñ§(Ú‰0ÈÂLìKVÅî÷k]öݯ”òÞ6õL¼Ç;™z¶íJhúJ„iì)q÷áᯯ~|˜vФüN‘pæs™â¥LB¤Aº‹S¥Y¬ó±²w°8òÞ‡"2uWæém-î¯Lþ©cr¨Ëσ›^Ö ¼k˜¶ê‚i[÷í•É4 Q¡[ÛøåðED©d9ÞTý©ާ;_Kéõ'ËDY£‘Ñ\¼uvü­›ž‰'¯*nd×µ-&Žç¸®µG°ù=44¨Ñ¿¾e×ZSUW¦[mÛ¶iƒ;?ÂûWiŸÊúˆšé}¡ V£rÔY‹L½³í:s´äȉð'àX½l†S¡† ^ZÜðɶn¦ [³Ñnæygâ!y½Ù±(»¾5yÏ­CÛœWz°}‹§¬ÒUè@ñ(ÕÞ¬J2/G“Ÿ,iû A³ãpÝÔUY[Ór?øMÏ”;œ²G¯^ǽ$“=°Ñ —K vÓäA»2},aõã´1:ÌÆqü×yß* T*˜Hê†ÏhÃIu å&¾æÐýtÇâ ïú„dÓ{aÕ ßUJ{ö‹9_*ë‚Þ°jógàrÏÓúhRvÜÈ›¡*xÁl hMí(Óméä ()\L)猟‡²í߇Qøþ ÉQcjÍÙ”õŸÞ…÷ó„ÖÔG»îê>/ØìÇ>dþ¹á=3ˆ¼;—yÛÔ6¶~Dk b¯Ï-à9Óg C¢$дn¡ñ¯2ÍøØô-Àït… Cö€éô¹ó©ìOLåf@×ɵ ½‡QŒÎl×3mÀ«3áözÛ:²(È©‰æÅø‡öP8¡íüT™X`¾ŒÙ·ðÛ7üm‡zË(iÄq2j;ÌéÊ÷sôO[J¢@Š)F±`‡¼©Qˆöì6>™~¤€4#Q;±À"Výšš »è:é1ï Ì,šf#û"ÖAš¤k?r±¨¶Ý@‚ˆôÿÎQØÂQÇ’5Èhç+„ ñæ˜]A?»ó"$K"ª˜ú¥ìõ¦*Mg»-ÑB !³¹Ê@ñ kój  ­FA;×ÑZ&zÈt=¡+4ŠQp>Tœô˜±›2QÃÄ{éc”®T<Âø7r§ä³Ø0F¦õ¦w”¥üŽõÂséNM ®SúkÀ%ô¤‘5' M±£E¿±ÜX‡Îbp†!ÃíÚ>quB”TøfîáI΂©³ w>çí?–u·•‚4$É >˜àÝ£kýw§}7Ž:A¤£%S޹$†2'¯†‚ Œ$qø‡ã,újê4¸TfAÄ–Â1—½îQ»ô†ß¸‹Û³àL ¨ o€‹¯URìzô.Ç-Pfô …u¨®Ütôœ-«=«gËù"‚9 7 {œÚý¹¬÷Ô*Çs»®/Ϩ©Cï x»/Ìuÿû8ÓÎ…=îM›ãZøÜ.ß^}èÑd´ÿ¡ßÃJñ5ëíïÙ}è›ÊÑùpÙ«¯š—cC~UsC|•ËÆjd±fÊÓ0-Òú`?v—}ß-¸qC/éÔØLäB+K½>Od2èÉ÷¨A˜dÇ+Så2cØ-f„‚r²á>öE nbzΈFøŸso·¶+J((âh Íýfô‰œ²ëk¬´úM-)¦”N6YkyÀ¥Úº;$7çË4ò†”ùXÒE{Æ"%ÃÉÆ­m\å„€H±PrD@‹–”™&KJ‚a·ÙMÑüüݶW¢MÖ ˜Û0™””8—õW„Yõzª²8з¨ó¼Ö^V×¼SºÜ)ç*`{%T¡'Ì-ggzëàŽR—­­ƒ9¬¼pÖ¦1„H‚pN3êœ7~œÞ8™AFaêÛ;51 l7˜ŠŽN-}ÄZGQmßjC!"`ÿû‹CMz;Øz±+†©=IÍ®©ÈûØwå‘qxej02Œ©oÆÕ S‰3¾y,j5HÁ"Ò®š‚Z/‰\5%×hÃâi8۶̱ ÓÞß©£¿ =·ºÓ"ãþ…M¥–îÉå„« ƒæ`†ª¿ß2x” ïÚÞœDˆŽÇichtÌ®ÎÀÞ5ÈákËã‰ê;nv屯ºO#¦`%æD+°#€T €ôï;0r3ðßÔ‘ û ÞÝô¼‚ã ÷mfo?L²õù¾ýr[nÝ—Pþo¹“wšBpÓj Ü$§{ï³›=¸³Hf^ج5à^4Ïõý†ÎÝ?¼xÜY¨yAs¡*m%|!Ô¡¦"§EÆFgñ˜4=úðlÁV» Ù2Bª’Uádñ5Ü“ðž^6@¥ªórä@ÇŒ“è©Ë X|ÅÇeU9Þgpœûz}Á>zGã;w4-Ø·Æ»vC*û²‰õpíIBùmWVAœLh7äckΤ„š^w|èÉãæÍÍBX£tש¦Àö•nf704Ö wW)W·Œn®@ÜIÖÎØãî -/‡ßÒjŒ!Ô ¹öÖôÚcy¸2]ÿLæoÒ@)á ]°IÂk=àúZx͈J@›Ë…6­©sš á@ùª¹\4ú£çÑ­ó áê*å|PeÝÐéÈ—¶b-蛲øa¨sWoÁe}#ÉÛ±ìÉ‚,Z?l8—8óóÔs€Ï`Žk)z?cÅ,&ƒá.±›îèÓáe$4æÉ$ ÃWI¤§ÃOÇÌÙ:Æn·ÃÇa=4¥qKVn·qÒ›18Îçtu‹ÞbÑoÝàö™‰XZ2B&ÑòEç…‡¥gvßBn(YæW¢ Šˆqc‡ÊÞL=]çi© Z[ïe<†Ü«D´ÞÌ…OHîM[tÜd/Œ•w¤w*È¡›‚-ƒ ïÀÓÜ|9ò¼¸cæ Ã»GœyÇáÖâ»)]b€ƒq½•5]?*GÒ.=¿ ¨Yƒ?­h!½O5ƒFe t\-’/zfŽïŽ\ðNó§$;tW'Í<Æ$óþiíí/W*…šGï2(HÛ¿ýÛ•›ëÏ“7~Q[3$™ÞžÌ…žNQ¨Œ­ðîçzªÎþiGé÷·÷.‰f¼ßÒ.æèªDÞê"d¨Xï’,¡ú†2ãdž½¡Í ˱Yü”ùˆP&oËËâ'#'ä—•Î]Bš »àr üx7u: endstream endobj 404 0 obj << /Length 3360 /Filter /FlateDecode >> stream xÚµkÛÆñ»Å…a^cmöɇý© â EÍE‘(-QITEÊgç×wfgvù8Ò§ Z¶ö1œ÷ ©î$üUw…¼ËŒ…ÍïÖÇWÒ¯^vw4øû¯íp5€üóëo?8w§¤(d¡î¶CT›»Ÿ“œê®½_c’ïšÓ½Î’O÷:OªK[Ãte”ÌÓÄèû_þòêû‡x’ÓúF’ò MYz§¬06ÕLSš[¡Œ%š”ê~åR|¸/LÒ\Že¤d.ùéŒ$%ÕºþE*».;$H›ÞØ  ¡4_òa_ÑóÛ®páMG¸üÎ¥Z߯TÒìN÷*©«p²¡­ÇºÛÓ¨œtr:yÛÐ"»B­›ã¹>@RǨö> ‚Q{=#Æ L® {Õ‘tON”n,jÈÝ’CuÚá65ɱñx6ì3[ZÅ´¢;fe » WkEÞá¿Þ"<ÝžQŸ65¤LSɤ5ÈWÜÞ4ׇÊç6paÈúTžÏx¶ ÔkÊÜÉV9)\> y®Û ±-,*hkn›B ÙTÛòzèpR€ßP!¹õÓ…l ¢Ëc‚xõ û ‹Œ®(æŽéRÐR™0½™¼ùn!7*doL ‘Y¡H¡óîRÓyr†œÙ') èL¹ä r¤¹Ò溹6tÇ–´B“g¬>™td3óv:HcV y§P®Ün1cíI‡”5uš¤`—œº) ®¸gùл ®‹„Í×ðjaõ³±<› èN§Æk×Ö_G'Õgö§ØÐÇx,…N÷Õ©ú„y WºÀB1‚, :¤Cý7ÖùG’, ÔXœðmKËàa8_…09,v4¸pÝ'æRÎ1$¶—„Ål¡üiꊟî] &xå)–QPH"eS·çC鹯$•ü»`Æ1;WÂT+)ÝmºeÁQ?°£F§Ž?ù$5ŠìÞ¾Ô˜»ó¢4© ÎŒ&­;`ðTˆÒ‘°Í•*ùq O ÿ¹†“|Ùc6#ã6™&I 5ÕB1Rp‘AQ\öÎÎŪø–&d(CXws:£l.Ò¾B¥Ñ³õ rµF±bY¨ºŠÌä ÀàI Çl^ûdþ{6Q& Ô+“Y*m2Pò謜¤?7èáä|å…\ʵpÆý?˜”ÿ&q™h…™æ®žsn1 ©ŽîÁUßH9{ºÄ}þím°(’±\ò6<”wëÕÞ©åŒàäßç6AE¦AK"T*9Ö»ýà‰I™óõJ <ïkô>vå³uƒ?V¨aÔÅäpß !”gpƒŽ)l!¡<„âNÕ³Åo+¡ùdÐûû<ÛVlø£:\Œ<Ôyȶ=ç¼Ò¶4çà³÷5Ö¿ÔŒ„ ‘ØE%x7+H"æÍA¨T?k Ša3µ•ΛC1 ZC³Á–ZŒá ãŒ&‹)B3)  ò%9æTÍã:ÜÿžJc’׎¿U—¦Åöä3©§ä¾ Ÿï}Ô1ªÄÌz}¸nøù0æ:öØ\Šï[ú"u踽»ÔÅBZ—³2šÅ7·5€$bóöó&œä¤çÀ¨+}ßÖçú_ëJ¤™èËÈ?¼ààÙì\ؘ6¬nÁE¥¢†|ÃLÊ ÏÕB/æì²ï3É›Šß‚øCq¤`C¥!jò Sc­@KX¸¦N0À2swÁDôz&Ý+‚h¿B¨–Å€%~SMÍ´–ì›ÛîÒœ÷\¶á¦Ïc°ÿ÷¤Ò…E®taÔWºT]µð™Ê_ žˆËßœÊ_ –XwÀ‘²Ÿlû5ª34!xÖŽ«ÙbpŒŽ {s°CWÐ\h@ 8‘ÕÈöSMÖ#øZú°! ß{~;WšSÝê :~ÇÃ,æo47~ÜéP ë€å.œKïáx ˜"Kö>ØQ>E;%m0ýNÎûã"Y߇þæ6'—²“ÏÿvðòðyœÁ…ƒ™Ã@ü¹\WO4ˆ›T3ÚúXÊKä yÍ4κ©×ä^ãRW^ió2np´Ü¡>§ ƒÏ¿ÏÝ´MÊ]ÕS1ð©8­¹µÂGÝÕ$W»ð/²Fp—Š«q¯Ô7}g”¹C°Þ}u‰4˜I™Èǯ[Ñ-‚I×–F¨FïÑÎÑDk^ 2ÁqX8Ȥ6<ÙÒ/ù³Ô±(”HÕ‹¾t:5'p´c¦Xe6eG»H°@æöÅ4øð瑜RÆCrbo$8ŠIGêÚVÛ«O¤sr{Y¦ß2´0¬áÞGÎ}`þD}h™‹š<9U»r¼u©Ú뫟"fƒÂ1ãtK¦Š¼BÔô53!€4]›Á»=J--úW®Ú,utÿz +eË×çmÙ8aUú‚ ™Eoãu baòø&Öû`àµwÃzÜÀC°†mˆø²–f¡N³fjkȽž7½ðú²Þ 8°™Ö%Ð…F)eÌÜ“oV±‰ä,ïÃ>ÚÆÚô5*0›‹E2Êäð…$O:šã—ÙàO1Ù†äÇ”?îë5R°§íµ/£­‰6â'Ý¥¬”4X®9‹¶ôÎÄíú2°Ø÷ÂpŸ³æ© ´ôŸä,­îáæÓ¼T ©õÔ™‘v©¾0B§æE u£QWömèPAŸs†'—d¥Ù³¦1º‘T½iHzÁÒ¡àJTÒ[´ a+u¨PÀÅð×X°CïäÕP̒ʹVÇ|ô?I"'„,ÈÌ éŠ×o€;t1bû3FûÄl}ÖSd3L‘iJ_ Ô?gçÅÌñ]ö£‘çÈp«7Ç'i<°È˜+ÕŒ—l(7ƒ¹éCJέöÙ=6ÍbŠ™ÔŽë…¾›á뙯|OóÞ$¿RG_ÏŸÓç,Æô@lò,Ålp@Âõ¾ýõv±ò²ãžÅ¶%…ÊÆÍ¦aÄØ¾/?Uïhù嬗‹°å©‹°ëK³½^üÛ[|†?==øG‚Í©­.úîúä=Ä·7„˜^’H¢&— ¼ ÜϱÜêÎ7À,ûFüíîñm>Q†ü '” „gCWÀÒ[d?ˆJ†“úx¬6uÙUk|<úT7>´ÔÖh°¤áÇ!-¢âƒËŽÉùJÉR®áBTsÉÁ{œ-aÆo ûï bÒÜŒ e’ºíÃG†FßWR. {ðAc|dÝ%  -ôÑ©ŠAäímE‘ãiÿá“•Z3Écp7æ©1Ù1-}¤2߯„ÎrÞ 2¡úLÞÊa*jú7©s¶¦d*t¡~‡±ýlí-ÐÛ±µáçÀÿ|þÞ endstream endobj 408 0 obj << /Length 2179 /Filter /FlateDecode >> stream xÚ¥Y[Ûº~ϯX´*±"^%µO=ÅÉAûT´[ES ŠEÛDdÉÕe7Û_ßÎH–|ä]g7Xñ2Î3ñÀ¯xÈ“‡T©8×ÙÃîô. £íáýé`º-ng”?<¾ûøÉ˜‘Äy’‹‡ÇýœÕcùð¯èïµï»ÍV)ý±©72ž62‹\Ûyèn•H2)µù÷ãŸßýø8íd¤¼S$¤ü¹Lv.“°:¶"}°™Ž…Ò$ØÇ ,5Q'á¸Öe›Òº­°±LY¡SñÕׇÍV'"ê @Ï¡t4Þº¢ôÕ ÍçsѺ zo¶V[0ʾiû¡.zT™Ž>©È¢½{&»ætö‰XtÃù¼Ù‚Ù`ÕÕÎ¥?ø~‹Òƒ9¶BÅÂôÐ6Ã9ˆŠÆÿœSâ@(4K³Z9QÿÃ÷GØBçÄÿa›,l©3Ø!‡½ÂªíšÙLœÊt¤ø ñ¢íAMiíe‡fèÏ =uŸ6ÆDE5ð¬ïè[¹=•?Ô®ÄN=ƒÄ¾¾’¹#;¹‡5‘†Ýµ«¸óìËþ£Ámô§=3^Ò¡‘¶6‹3µ4iX ö´ ¬ëÀ{-uúcQS«v®Ä]•ÕQßÐXwl0äŸGZG T5GRÐܲæ8…š‡•WÚ€ýT*.,V=¤”íÅEÉ=.BfŸ“üϵ |Å8‚N# wÅйŽ,£´ŒUfÙ6Ä„dÒ3µ =W ºÁ ðýBZQ‡¼‹­sQB0ù û"[(UGÍ¡FSö¾bŽã®?÷;ŽN~'~åÈÐ37ðáù]ù{I#8—kgÉ}+NçÊ} ³Ä’)Íûì;=µW½"dŠíÑæï!b»_󆔔‹É9Ö¸py,—'øŸÍ@)íX<¹ßQ³o›—s3ÔåšRÓ‚ç¢îyÁ¡-àL!±6qrßÅÇ¿%“ÚyÖ¼f;&VøA*‘ê·s+«ð8šsÕ„ÒĘ|W\«Yƒ¿Ž×¢º¡¯ƒYåv=Mû=ö¯Ê!¤Œuf¾+’ &áh‡½B.ã³¶’þÿ„UÃÕ1m‘ZLÝJ[I1`òXåÇe‹„­a¥Àpz?Áaòý©üŽÑ¿")zÖK.o?¼àAÈáî‹¡ê1â Ä9ð 61Éì€ç‹St®òéLÏ26NC’„óMí1)ÖDÇG &à+"æwòµ?!ÙpÉÊ‘®v;×uEû²ƒxŒçuR¬$E—Œ¤¬1¹Î-P#L U; ÅÇ‹q-'ì°`Øœ*í•Z>TsyP›A*ððn³g!GRÍ$ä£EVÔœ™_«tnS­lð·þp Y“†Ù%È¢¤¨K†ìR/¶›šV’õ`€Š-rNººGíÎxƒ5̰ Ò<ùÒ]¸Í• VÝ‹qQ!®Ø©Ì£?̆¨¹d°+ú,q& (^Î~WT”(fó‘.ÿæÊ-C-_FƒO ìOEÅüš5g‹ î†K[5³©†SÝQ§ÙÓ7Á„4ÍÈ>“ކ®­ë _t%µt 8s ’¬ãµ†ôb—›^ò\Pzî¥pA%"Ö©z0|=Ý‹Ö`‚Xà•« @š¥:Y±õG¼ L70i[®ñûe‚¶Mù  Š£Èëgi&ošIP“Èü z[ÎýІòŠUƒpyKø÷º¨¦ÍVqȼ®`ƒ&Øð—Põ;4õxá‘ ¬ŒN®¨ùb,ÃÁïg¸nOeôW4V:NØuÉU0äëDŽÅZN§# bš|yxc#ø¾Šë— ab£'v¸£QÚW˜J;!óŸÞæÉÜ÷³j)uÝEkºVüåÒ£5ÃøËצ–aØžT ®|cÁÂáð.ÐQQ°ò_œ\à¬5|›¦q–g¾Ý2¯µ»J[5%ŸæŒµ$“ÍPݪ=m>šìénÙ3›ÛÑè TçFޤ?Þåœ;™íï–¬i_QWÚXçv\òén =»t‹Xɦ¢ÈIñB®V.ä ëç7°FÑx÷Y )˜ Â¦/±£øÎ®æwvÅ/)wèû~dÁ»ê€_YR-0¹-o½Eé”Á®uƒ'V}ߦyÓ›Ï'_囇<»b:¥,àK)‹½ÕM(nÖ%H ç' NË:â+`Š.`s\Ò5 +èq9â"ÌŒ!x^«+ Ö5'×ûSH4Â^TÁ÷Fö?vG¿c›ñ›0¼»°kH]ØË-‰¨1×ÌÃ×%`î~¤,ì6—GàtS˜vXqì’ªÉÞ¿¾ËÍÀŒoÔT¬“4ÖÖ,ÍÃOZ·“w0xǧõø§àFPE ò*;çKÌ~·#›8¤/›Ô9·—ÃÂÏâ°:šµ˜ðžÓÐøzÂÒ*¶éd‚÷«‡‹¼ÑóW i§m f¾Oº©Àx0€¼á›Ì@J›2øûØ®î+åʆ´ Ç9‡l†Š»³çRɱéÙd n•i°Ö,ï“þ:éº0¦A5ÆÚUô7òUÑâ#¼ŠZ7ìkt ž4u÷Ùö£+Á ¶h™üâµýÝ\ŸQ#¶™Jæ6ƒ­¦×hOfÃE|IF#‰YªO.i\ÌŸíåP íòì\.£ëyÿ/çÿOŒÏ endstream endobj 412 0 obj << /Length 2742 /Filter /FlateDecode >> stream xÚ•iܶõ»Å~)¢)<²(R—ý)qc#iZõnÐ.WÃÙªc ÃÞͯï;HJšÕÚ¶ÈÇGòÝG\EðW\ÑU&eX¨üªlžEío¯xð·Ï„ÅÛâ~ùÃõ³o’äJDaâêú¸<êúpõïàŸm5»½”2xݵ»8 >ïâ<0ýPÁt/E”§T»ÿ\ÿüìÇkSÇO$ 1¿A“ˆ¬ª«4W¡Š »>¸>É‚×x7lI—[¤ U‚wÚñø[”DðOXüÕª3~œÚrdöà|]ײüe°sþœw"蔕•E’ÝÑ"õ7ÕØëþž§Cõ»yÃ4¾œÌx2=Ã;ûm»Ñ_fWŽ| à"½ º"Qrµ2 Óy¨nY9E¢8ò"hŒn«öö8ÕánŸ |¬Æã4Ý02RÙ5çª%Q*Rt £è»ªAn§†U‹³Ñô­®rîçŽú‚Çoh@E2”©r2ÈŽ6$¿wˆÌ™`ô ÙŠU þàΆ(À‰ãƨT’""KþžÌÞØ€º™(%œLbåä{I}œÉ0÷±ßÛ+·-G&Òavg4Tuœ÷(ºnâ‹XA0¨«¦͵*c`:•kæÇMEZ­€Í4hfú,•“±r^‘CzåÄ+ç̳œµC+1*²°ÈåÌi7çiÜ»¾ÑãÃyæiòá,Z0 Ô7g÷<λ=†²:Þ3=Ú ÊÂ<i×K “"¸íqò4=’ãȸÑvu„ÅS…†,eÜL;ÑJe¿3!°‘=  7@P†ÇÊÒi”’ÁOöô¡k,J©÷ˆ7°O6w¥ÈD@6+}.ù‰Àùˆô(‡ð1LõÈÀÊÁº©=ð™ÕýXu9H–Lƒ7»\rÐT°òæ\S\7× dÊð{îà‘˱¾g`En{]µÄ– ¼q‹|kCÒ¤TµþwˬòöÇÎHþŠüvË–âðƒy9L.trk¬®,E(rù¬úå¶²’PÆbÍÛ–²Ä ùU=ÐcýÅ+ÈAà…/ðåÅ¡ò¸HE'i¬ž®Œ1Æá:Ž0V8 RHAùÖ(9 ’ÿiýór¼®'‹^µe=Œ=Fóg0}å@XðqœùT5Žz¡f0­UÈ‚ÈíÁô5‡+<á¦j±<Ùço‘H:=æÞF“ʨ" ö|îI¡P)h.“T”QÒÂeT0šÐ@Ûøc ¿8ðÖj¡íòQ§y£êQZ8Á²eéÒpë8hG`„­éuýÜ¥ ÃnãÂÇ4¶i¼ Ô±î‡Ñ4<>ûAœ,›1®Ý5‡h§4åhÏêÚzSèszÎW¥/TÞÿØ†î· SfaVøxKÅ#Ôå­­äà,û % t°(š?^6yãšì á\å¥Á™œü~¨Jª4Rví0jEfC¤S¹Mmº…Cÿ×vhü_ZžR‰“/ÊÛ$£„±’ÉœfA†Š\ÒŸ—/è7.l¤‰sµÅ-ï §„%˜ 6g~ÆõŽ…k®pÀ‰¯pR“Éàˆ ÜùU:+éHÎbÐN)­u n{VÁæƒ1\\²YI‡Ž(+1æO.ø[Û´þ‰øè]ÁWÄÐWĨQ‚ºÒwJ\z§ÐZôŽ3jh- ÷-ûŠjÄ!Ä· L–0®%`Áã_A <§F"•[ÈqPwä_ì<ØT$Ð3qæ‚-~Õ“N›ŽFSoqt Šlºý–hП*¶R°ÛÉ¡zQ Z#Y¶‡h¡›£K!vy×­$m1ˆÊÅ¿-ƒ}Âf,„bÏž ÀúnØѳ<ÌÂT(*Ýi±H g¡¸´óˆöF]ûÄö=ƾˆoËxø $¢-Š`˜nª®ÄAÔ/YÄúþ\õ]Û̺#—öšH¤+^°úc§Öíí¤o튦vRàÃÑÄoP:Bª{¾!5ÂU¹w†š:@÷mÚW‘œÅhœ%5Õ Ü1L%®Ÿx]üe-Áìí#[ŽMê·F'°æ¼ˆ ü2ÉÃHæß|ŽB—އ4}}ª( yÈbmóÈZsæŠËüB4}Sµ©R_Ðâ¸^¤kˆö~ì!@ò!à’àý»?ý‹‡ ù…52Ì=SR|6>'® Q©[ª¿pìše&’Íó-)]8ôפ”ùîß!€Uò¼Â¹U±mˆ¸À«¯4$Ìa3•eE˜Å…;ÿ—ן^_ÿúþÇ-BJ¯.ͽüƒ¤‡é|Ú÷»ÙêÆ8tXhL‰ÞQ¬È&znÈh!)ºW,­ü…i¬†ï+äЂM¿ìxB’m[šŠÕc|ªùYÚ»äÖkkªYbŸ¶K@¦¾>`?ÎÉ·ô›†²ðo·ô<”áËuo¶N†æ#É#d®KèË•Çtòðr)9ÐóžƒîuÉ~°\²@Njä18úéÃ;ÖCœ&aš‹U þÖ‚¿6…#B!Ô¥£ÔÀ+&2á}œÆ–h÷ô Á/Y´âv±G&v`‚ì’iº¯¶†ò1L³ìIBO—Väèµ™xgû$¢‰bÒ`x6;Óê⽟KåEIþ-‰Á0]ëê«é|ö}ÎñÙ„ºédñÐ ðÅCç²h{"c¿¤nWýãS¿Ú$é÷,jN`Ë_!™Hè’œs3mˆ0›Ó~zû÷ÊB[QG y•¬ )B¸8“~j[Îl" þV•}7tÇ‘×>Bº¶?@á¯5îE— ’&öõˆNqïä#ö}KÏ&BÌ%^»J$¾Ó£µÊRsY:r'暬ٳØUâ:Qu_1@âÉj†WÛÝ™©§¤ætõ>ïÒý}v,¤Ç€Å‹Ûr§^’Í ç)¨þâw©ÅnYäs3c|IxH¾XžP,ij BÕ9|ín™+r·Ä’cnóÞ¡¾>ƒáx·Ý©ªp~qp•Hº±³CÕ›rìzKºVØÀ€‹fhTö§Ýÿ̹Ôg endstream endobj 415 0 obj << /Length 2710 /Filter /FlateDecode >> stream xÚ•YYoÜÈ~÷¯Pò² aØìæ•<­7{86‹XFd§5äÌæ1ËÖ‚ýñ©«y‰‚½ öY]]ÇWU=ê&€?u“7‰Ö~fÒ›cý* Ñî|ÿÿJɺ,<,V¾¾õ‡ï¢èF~dêæþ´$uŸßüÛ{×”C{ÐZ{ß´Ím˜xoÃÔ+º¾„îA« =Ýþçþ/¯¾½ŸNŠÂð Y•Ÿç)N¯´ažr;ØÛƒ 2ïç@™ªèýÛCœ(ïþR,‡¹]6ÇjÌ‹ž{EƒÜ]éNmÇÚÒÔ÷Žm½‡²±\T·'þV¶9ö,'Ø&w›F!ÿt›ïF¡‡Ó ¸íAi_E|‡#›Œ÷p{@yr§xŠ&/ˆ^ä -ʸӗ¢ã&1™ “·Êc>QQJ’€3AñRa¬|'À ñPµG[ïk{õ‡ÇA6¬$R2åÖÏb¥³¯]Ù³U¼÷'ü×ÒeÚÄ~¥rgÅûpè‹«íì€wD£:¶ÕX7ýŸ°÷·G¤qá¹b’&M–b‡¨ü¨nœÖÂ}¶ºnê#éÌÀ?Ê&o‰ÕþPµ$yÁíAQìýô··oþ¹ßÉá9ÕO ‘bú:Kø¾ˆ|œùɼ¯lTèYú*ìøØ•b29YîÒµ>¢=hxZ9ÃÛ2¥€«0ŽÝ/‰d‡·$óM ÝFRùÓµ„ÕÕ³Ù_a?0PUÂw;̤ð8\Ä:À*Ò8ÚXëS/Ü µKîŦ²p/í©c¼ï°NLóhëk…XÈÊ4ûüj¢œ³È·X§˜ÈÏžYÀ·Í¹*ûË{G' £‰ŽŠ’8xÿîíšÓ¿èF£\qB˜>î:u Ôd1#áõÎA¨õdV^ËT»±ç‘¦å)°µ²sBY9 .z°Äɱ/›ó,ÑUù0íN?T{ªÈf°i¯h>ÛK˜Æ~”¨µœÞPüI@ù9""6éZð=‚ؽ®„® ÐXð0 ‡[y`]wb«€†åÀÔPÇÊÊðZ0ðDp‡zR)8Xþ¹lD`˜v!Cðïƒð{Úãî© „A³ HÐÄ1Ä_[9¾@†>•à`Ôúï®@z‰™<ÿwŒÿ{ª0¨Â­ûŠIžÚªj'˜'ôQg W‚ÂÆÖxkjB Ñ/2˜D>\ßñ·ÇYä'a²áŒBõØŽ#P¡3¸óPL]?¸à÷$[ÁGˆMÇÍ)̾þ‚TÉ”°]• ^ö…(«ÂØO“ìó©–Ž{íÚsgk>¤+lÞcSñ pl–?y--8ì×ˆÇØ*ODZë Åà¢Ô³d-‰•!g€Üh`éPªeÂ`Æ(œ.¡Ã8s`äÁ‘À]x ÍÍÔËÿ9ϱŒ¨É6Œ wM$LB²ªÉFàì—Í8JóÂÉZ„÷0ZÓY¥œ‰‹'ZPqÐq'BX^¹å§K9§*†œ‘6 BJ9‚˜9¨½î@M½d6gˆ™nŸ.ÎO)ª@ ùþõ*Ÿ”ULÈÇn m3qñ–ªDƒÞÙ²^Œ2·p™ÀJ5Þ  †ÍX{_ç9Y­àÄÄxEà Y©”‰î©Ï|Jiñ¶­‹¡¬IRJŒGcv½ÚÔÔ|5ð\?‚€ãc錘w¶<™CဿÆ%ÆBÄaà]a°+N`͑֓Qëý¹“ÕkT9Sð;m8c´¤ËïHõ:Ñî¥p%†j‹ë¦Ø Ã°y±s‰Å#”SAïX¢iypqÕ>¬àÀÙÅ-hìC%Œ œY·ÍÝN!Ò“G€(xŠÒ<äDM‹?7ÙM±ÅzÃ…D§-Ò§8_IŽdàt[[JÅ  Z®9 ÒžÌ÷·ödí„c?&³ÌKN’hïžÐŠçmžwEßsg¸”ýÝ~¢ý(UŸÇp ÕõÖ!´Ÿuwzšܤ̆ܤ¤ÐTSÂ{8£J žZßžàcÙµM=9„ Ð~ še<ÒÃµÄÆUÊÉ—‘èyHJÖÄå:2ÚŠ¸ÛŠëV˜·=7cŠ 8$yá¶^„£mšyÇø¹IÕ1Ù¤d¦¦Ô.7-ªvÛeÖLMË3«´¡¸kÇ뺰\iˆ3Ð)1[àò×…½·™±02Á³œ!iün”Ë1ÁÃ)Ë] …´˜Þ9°å’<"Ï6™¦,cWÄ©¢t™ ‚ MîQ yV̉ÖGÛíwôÏÉÝ„C TuÚ×Ñ&sØ?ÍŸ‹F<ªi‡sNµLíÂgIM'´É"CEfœ .×$€Éša¬9Z8ìÄœ”çøù&$ k„,ú«=ÊòÅ«î@xËâ)„j- ö¡j$Š2y Ò)$‘ßqÍýT8€3!ïq¬Í>‚Œ`"–F Ón¸/g¥@@gcÖ;JIÍ%‘ñ5ã»öGËW’Ï¡ÕÊù4©„NYH–>r|âyq½~qÅJòœ‘¯c½ö!¾xáR“te5ÆƒÉ ^¸Fˆ…pä9Eb´l¦³}qÕ‚8µÄ8æ3óã8YGJƽýˆü½ >kb —3·DmÄØE  ô*i„Ѻ°ýØ Iâ ÖTEs.îY8ßVPUgéiˆëXmfÎøíºË¹G‹ÚºØ{–‘;ºs ãÏ@T€Ê§ÙSEøzŽ—v7™GΦrn)@gü¬´i9Ç=¶ãKëi¸Üý‡5×4Ý´…]„AÀm°æ©øG‚Kyå)ñ£Ü0àÊK- (μ×OÂ?Éö^lJ¼0 ‡'|yãP<Œóo :u S6ª6p1 ß¶áH®ìÜkòô>ÆïÜ ?„Á×ÕÛÜ_æþ<Ä—æwqÚL”ïŸÉ£žírd\Œà6Ž á²â®Ê¢L–<Ûʽ©’¢~êõU ÅÒ 4€¶f³Ï[*¬`ݶ~‰¡0¥—NXFoÝ¥²•·{0¹t—PO2Ç@F«— ˜t€¼ì¯$=¹ÛÉ_•d·¦gßС4 Œ/:¡~±´—]—(º‚Ò¡[¸ðU¤ÈÅ6¥ÖÙÜFž£OX“:ð Ì~a¨†<¹tZÞßf6ñœJ¨äe{.ïõŽT(ÓPî~¤2,:s*ðþø…o7ÒéæÍßüðþÝoî¹;övÇ ŸÈ|`>ðt¿êL'¼¾~éGr†gS/ U“ÍíÞ–Åáp%eŒœ\lŸžŽ¿üþKŸß endstream endobj 418 0 obj << /Length 1832 /Filter /FlateDecode >> stream xÚ¥XK“Û6 ¾çW8§È35+>ôjOI¦I·‡ïôÐvR®E¯5–%$ïvgòã -ÙrÖÛŽ† ñøŠÏBøñYÎ)Y¦ÒÙj÷*´Üæ~FÄ篸“[€àb ùnùêÇQ4ã!ËŒϖëáVË|öGp[];_H)ƒ÷u5Ið0i`š¶€Ç…äa2žÿµüíÕ/K¯)âJ“Pòܦxhç)Kgqª—ŠÌzý ›9¬‚›OïýzûéfI‡-š[/¸d<"é'ÝäöuÀ®\É,Uœäw¦3Íh wL•£’©W—”¯t¥sí ¡ÿVOX´®ëÎYÄ¿I’´VN¨+ªÕÆËrAÂvƒ+Í~Æêu£«•™Úlh¥Rß”’Ld±sÜ7•dË¢2g²vƒ—G£rvžeC{ wÖa´&<µ3m«ïØmµ­êÇŠty0ý±ÎÜù}ÃOKm!0­ÜŠ;éß7¦r¢£ œeI{[©ƒ­É‰¥`JŠ^¬1:ÇÒUiÐm únjƒk˜ ™ø¹ù3ä ö…ªvkŠŽþ‹²$j… 6ÆþmO6»qË¢©«ÑnùÃ<ŠÝ ™¥™>]ÌB÷vüyæ4™†Loäe]A}‹Le­UWåRŠlDÖÉ!‘eƒˆ„RÞï›z¶‚Éãµf…kØ|¡$nÖS‡©`”öA R‚Ù¥\A†©1HÙ˜¤ $in0“`°Y¬` Ò9ÔÁs¬pÒdœtð좔n íVÆŒ¦ÈsSÿÎ9…!’ Qp|×:K6½zÝi¢°èK·5`>¹ÄìX:›XIjIr!78‹¥Ïí×-Uãi^ä /pc—? -¬›ÂÆkCÊ`£–ÄtEÿÓ˜š¤Î‡ˆ©PÓ‘r© QË^;A¡Ì² ˜c8ˆìÜ?*ÍR‚dè²™GBAØr·ðÂ)¹ íLæýL¾UÐØ Gé>E÷ª4L¥Š¢Žl²) ÊøÎ9«CÓô˜¥,ìåÏÃL™Â»¥¨|tð¡;;Ô¢F[¾hC^Ãú{+‹pÛA}¦à/5½*Ö$‹v‰Œq~Bæ½ÛÛ„„ê³ 9¦<ò-*$ Ä=í³2¹ÅfXãëÞL¦(a§¨]8˜Ž°ØƒßY\±#²W j v‡Æ½™hìãNoý.@«Ý:ñÍþ² Ã2VG¾—Z Oð’‰As£GÌ© k²Œ%™¸®is©¨EdV!Îv{oƒÃ% 68‰ Aî ê×rŠêDdºöá pÎãr üÀ¤LFP6Lí-6–éËøÙš‡Ä~èàâœñøšñ@$Þë¶ö9$ KWýŽÓ¼iOs§*,w¨åz"Ö¤xÍØ"¥< 5„ |Q{ZÓ+Df?ZèÒ­}"séïì]f°‡šN~˜íXzD «›‡SEC><݆lõXõ]>ׯ¤’…GÊÚmj´ YxU;Úx+Ü`‚é\ï| †rÖäÄ£!HŽý%zˆ·ÓÐøf’ŽïÑÒnmìöPtT>È©¥÷½E„àÁÇžY3!sËáêDC2&3Eû{£m+OåØ[+œwî'™@pü>µ'ïc`ÊðªB’ttW|¿ë²´+!—šŠô"I™ˆO.™}ÈíåÕT_o¿LÝ-j]¸R_¸çSéìí‰Êï^¤rûÿ5¾ûŸ^®uÝ|ýðù%Z/ˆyFëó^ñíaIð(a~ñ£;&!¦µÿ.@ã=>ãävÌÞFÛ«ÎM¾»‰n ¹`RD׵߈%Ò_´è¡.?0æñ+' 9œrpEˆspå>gØë ¡.hPÉÉÇ=;dýU(?Ã{]Ù»·¥—zo¿7Ô{ûɦ`À/;_H Éœû˜ƒ'ë{=η»»a£DMÿîÊ%Ü%w§ÙRîp'iöx¡éC*ÁÐ{myÊG_»ÆN÷€7?­Þax"š>g ±>Á¨†x®7¹ÏÕ6GT¯ÂÏúÖÿ–­ä£ endstream endobj 423 0 obj << /Length 2860 /Filter /FlateDecode >> stream xÚ•Z[oܸ~ϯp÷%2êQE‘"¥ÍSâõ&.œÄˆìM±•5[ÈŒdHš$úã{.ÔÕTÊvÏš­oxðáõ3a÷­`ãj´óÕõ³üEG"ð“ G×›1©ëõÑ¿¼eÑ6Ç+)¥wZ•Ç¡ñ¾‡±—×M+)‚X{ÒÿûúŸÏήû“¢0<%ÜùO"P°ªŽt¬|!3v¾Ó“ÐkïrHà+Ò^ZéÍÖÎÜÌkÉ;ÓM›×¼òäŽÑ“c¤ð…–Àð·oim·M¸ Cv»ž3íêg„CåËhL¶¬Zeø8šR.¦¼/×ù—@¨2_÷/]§%Ê7º§²'ý9“p aºm÷uQ¢¬Z{Zje–×uER8ZI â{¬„ôEįíò¦IoAÜ*0ðÎÚ+n˪Ξ%ýà¬e¿hÁpžjïÒ–wmªí¶B¾ûÇ+­•÷±±¯¹%ªö2mòö UÑ¡™ÕyÚö¼mÒý¶íX®xö¾Î¿¡Åç,Ck?0ŠA0éöÕ&‘×í>mÉ7ÂD{›úXxÕŽÀ8›¢¼…*z× —F¡¯ãžéU溘P¾6½òªûîÀÈ«Êí2dý.Ï÷¯–;R²2S¯¡2p”ÖvWšµÖ…xaƒfÞÑ!im|©õTÙ¾®;™­d/ÀoE]•»É™ @ù Y/K·ù ÎÄ^SñÊ÷;ò_ܼ^ƒôx\æßy°ùwÂÃûÀ¸¿.¶éWË=>et/š·´I6$"ã}µK$Âå·[ºc0±ø,mrÂCðç±0@‚z툀-)?~'.€MŽýÑviPm&ëp´²ñÙ ˜‰ñC)´àJF~¬­È…<^EZzgå1˜V/i)HÒ&ò>'ªCG' A–m˜à‚u‚G©P.¡‘¸T·uºã[î{ù1rÃÔàü¬_˜Ê9ÔÌ,FÊ£‚dø*¿º¸\Eà‰g |-æâÍû·g.^#ãëŽÓ«{2Ã<+PȨ lˆ1¬”ý ×Piøû€üVûšŸîª}e]Ô…fmU?¼8^űñŠ–7 oÛæ7¡Uà ÞùÁu9p_òih¿ßöh1‚¼;¶h268U‡!Ú«…g¥P7U™ny…¡á:mSYŸÃx‹î¨ª/výe~!JêÞ´žJB@¼÷%oš6ßYP¦û²$sÁç·EVWMµé0:€–™¢ÒE¹f+kNð­„õé„î—ˆL@Á9÷e„p‹"Çò•ŒòU4\É ±Unñi×1*ñøoÉpÃÄa×l›¹eS :!ÿQ4í‰ë”Xøá¾¼’*‚ŒBÍ"^]ÐQ"°ÃßuùÕ®(s~|@Y“Gà{m+êœ\75†G¢³9 ì]ë±4~ûpþiÉ—ÕÛFA 0'Çô._^¿q_|-ŠÃéÕÑL˸Ã&&pt“‚i .‡ÁáÑ6žBåá/i Vk+#Tïz0M¾ éÁ%%8®8Y¯Î>\~xÿûù…ShCÊûß–Pç¾Èè aÖXö6súëÈÇ!U«ð –_~¤úäÀ¿.Ó]îÌ~ã1é/AŒ<lÛï%Å¡æÌçpÆIÄ_Þ§=o "†˜)§¬jwþ? ¾ÛoU¶%w%ç+»®ò¶ôY¼¶P´¡>èÞÉ$Ýýó/ä;C]¨#N£X‡p@T.Nÿ:½þ|yvÂï_¼|÷z1ôM$sÚ%Œ”ÖàeK(›(98>rü†õQòÆ+nT:ñe’¹_ô¨v­ûªvµqV¾Ñ¸G•¯ÛG¤‰}ÅS`¼|ùúìÃÿ_ ¢¹‘ƒûô–-&äNLí»fÕ/ ªÜÞón‹Œ×ÖEs¿MIœÖ¼zê¡—U%lÜYGAÚ¨CRŠŠ¡F[AìèƒÑf_f\œàÓMmÃÝ!²%:?†!êò&mìs Læou7G¬Înùq¡ì´ȼz£þ{éÔ¯€h -Þ’,qÒH¨Ot Ï)Zú•Ú – jyÃjÀÉ”¶äpD/ïwø¿u‘¼HÒÇ-¶y„½qà|áLÍBøÊô¶¶«êüéÖÕ %퇃',6õFŒ‚©…Æ()΂ÿÀ¤×ÓfÆÇ6Òm‹yM×$²(Ðì:í§vÑîAš§¥pâ–Â3îomJN%ߥ™›Œ'z Ä©‚3™Ð¬ô[ñ´©/€æÏ ˆQ¤ÿëìÝë‹ó«7‡åuWÜd lë ÂoÁqO.…*H+“A$¯žìs¦F­ðp¡€F…š¾€~ýê`ª-åø4ä®çHwÜúNA '_µiËÆ8póª.Ú¢¹ãI2×j»ßå¼8醞ØÎ&°GóÂ*?þR¶9neõX@}-NMa4t‡8¼öùÝ“éÝXå$wb)‚! µbYôã.’ãd— ÐΊW)®ñb%¤Ëéš'0AÆí ¹P!€ü| ëÕž—yøEnPDz`ê!¦<"˜d Tƒ ·ÜF“ûàÖ&"#öq¶Ë5èÎ…Ý:j)©5ÛúÎb,&e9Ü ŠþÆ‹Ÿh§Ó:wEèñ¨ ìù ÄRd l4É)ìQjš!±µÃ@ ÒÂYýAN;–ŒB~<4–~nzØè1Ìæ•Ô¾´ªÅN2éÌ.ÀÀ¬M29y5PÄÆóÜ•¢ÂÏ2F0µdÏ™fÑ·ña¯€qVûå»ûv”ü6mÝ;>ú…»Sc¬0Ó"†^_Ù6ÿ/¿8ûñðYîùrÝ/ð…‰0qñþôåÅÙÛ——‚ÓfC"ÉA_ ËÎyœWïR»TVü‹*É«²¶£Ä¿€Í?VÛ¢ÿS¶›‹ûBÅpeÆp…{æy嬦!7`b—Þã@NìŸBy_Þ-˜á·¢¦%ðI×¼Šþ®ßƒ¦Ò®Y"Á#‰ ŸåÛ5>¬–y¾n\Üs2•Œs­?¡+ð}ËS¶ÜäOð¤í~¨ '——;¶kö–L: žwh`‚%“QY˜ôeጻMµç¶Wb;ó; ¼š`ž%ÂLÊ?³'Ô»¡èÜ·n`Ð)»MŒ´0êyÄ B±³Ý¥0–€+ÝH ¤Œž†•„ ÂØäa™úJBŽ Ôô“øÏá2díH÷gÑ™·Œ>®³Wv“ð‘@ajô€]ÓnM·õÒ¬²åPQ?Aly›hvf7²³Ù÷|ìß}ücÔµV endstream endobj 428 0 obj << /Length 3312 /Filter /FlateDecode >> stream xÚ•Zëã¶ÿ~…óé´è™'>DI—Ešö‚+¶HöI€h-y­Æ–\=v³ÿ}çAêµòÙ½Ö9$‡Ãyüf$¹ á¿Ü¤á&ÖZ¤&ÙìNoBêm7Üøá»7ÒÑmp;¡üËý›÷£h#C‘†©ÜÜï§KÝ盟ƒÏUÙµw[­uðm]Ý©8xºSIP4m [-ÃÄ:¹ûõþïoþv?ì)u#KHùЧØnd,”ŒŒãÉ&FHm˜'iî¶‘UÁ_³.â(øX‹yXΫ¥Ð‰â™÷‡ÂQÙ)•RŽÄDÔÓ‘Wƒ•Ry²sS?6Ù UзJ)ÔA‡âyÆ?5wäw2(î¶2ØC#ëëfæaî/¡4Àþ‡5Îd¬…ÒÊï™û¸Ñ·â"›2 …µÒÏɪ|õÌ¡Hâá0»¾iŠj÷ryÕ$2H²Ù•ˆ4Þl¥2’£Œ·Ê„£€ða—UÜÈŽmÍ-™ërCõO–Ýtø‰QÑÆ.fŽš,>l±øV˜XaÂAx—Ϧ­HdzýFáÚrF(£¦J·qyÍ8a¡¢¹Á¼lŠ]W7/w‰ ÛÖ½Ÿy¦µéÒbÎÔq*+'´œty{?Z´»¦|àFÖðtá\NuS°óÈ‹.+q#míÔ]H  ÚX˜¬¯8 O»ˆWÜØ|AâåGû,`H%3óóÄÃ9‡-r(¿¾c’söèN¡¢%çÚ¤"2ö&Î=í9Ÿ/856e@q@·èµÓœâB‰~úí±ü=tÁ]íKÛ§zwãôއ»³ÆM#ör.wÙñøÂc M"¾Â×§E2ÚÈû¾mÞ·XùýE3IHÕà†ÊýÚ²©°‘¾êÁ°@bÖÌ5uV%äŒð\OeŽGPq<—ÝÇH4ب½Ïɺ²zä>–"Q¥`_ Ͻpü0¡™þXƒ¯É@*˜wUFš["”Mâa%wö]}:ƒ>ç¬F:N…Lå\Lû]ª8ë h}[÷ÍÎ[oÙv`ñ=k£„{3fE•òЇ:hzðKUEòÄçïË]S·õ¾cÚ‰çCEUÆ1”£zÝ)#µäçzø¡t»óÚìä†F½ÅˆéÈ÷üKÃÎ2™’Ûƒ$x‚8JKHg*ÐM<=ÝE6ß–=‹wÌAÆÃ£Mº…äèNaDÚïºÞ/FÞU¡¦mQáœÎωÂB<Šwkz7íÁ:¾ý0ªÝš‚ØDÄ*žD:éY^G dTVÏ‚ÕeíS"‘rª}:Ñ£öÑ‚ ÖµÄë4]K–º¶R|ÚóÐR ¼º¿xâ›ITPÕëqWWÄVÀ¼ÎîœÀdìƒVliqŠÐ;Ó%.ÛUÈ7’Ä“ùzþ5€E\ØÈðnÿH,^’}÷ÏøsÙS€ƒ•éôþÂ=ú$äÆš-ÿpÙ1Ïã⎲r*!àÉüømŸMÅàµnÖÎhSðóéµ#Þt¢(fôîã‰`­¶th—Õ‚=ÃHè(™;¢O«.TB"&×}¨±kq `þðKEZ OÎ]Æ>¬BŠ„ŽO+~©€GÁ}0¡‡—3¥À½Ý˜D6¼#ñv¤f1w ó%é0‡®;@.‚÷ð×Òß8x¬úçÒ1Œ8Øá"øÄ±nç©ÚTE÷þž“ Ù˜ékòÔÛ ù¦[,:saÓÈ5í]‚ÖΘ Ò tÍvS}›bWýO(5lS|ÿ¢š#4H¤]¤O:]S¯tS8 çØ†DƒG| xJ•†Ía O CG7§tä Á‹S–…ÙC[û®àÞsÖ*˜ïÖñ0vKb¬E8Jí¹<yqç3ëßyg2lì§›òûõÞ㈑³˜ÏÂw†ä8`œ#4ö5$Üf]âRV¥þOÆHàœ[ÊnbdÆK`Gêì‚í`”çè”Ɇ{âEø/‡èÔ讟|°†Íºzf©zv›ðÈœ(/]œ¼E6j ¿îÒƒ3"„tcfqÿ¾œP÷ ‘ ÄwŒ¡d* &º]ÑœÀíãcêÔ ,€]õž§ 4ƒ‡^±ÝôŒ†×ì  y$×O’ÙnŸ\Éí’Ø“Ñ·lS)ƒ.oƒad´@¼³ÝÊj_¯V5 o¶ñÜÒ´?Ž÷ O/Tþê²ÌóÒ×up—nNF!ÃùºïÖB¨680’Y—´}‹j¬rŸu¯œ;ŸA)çõ¯¸È±´ N.e<4ÑoÀ,]ï jÈlì£p«1â*›º:註6%b×Vð©æåQ¬qZZÇ«Œ°: `™âÄ9‡¤¿àBéýùŒÀuÝõRHx%¤Ê³&ç'_‡ƒ¦«ÃÅcjƒmÊVuSäbæ{&·MTïÿœS`6p‰¥¯Åî!¦Tj@NüD¶ªèöâáöH$Ø;ÊÊ?@B¯}.$É-¦9yÛ5ø‡ÖñBBñËͲ=3Þ‘ŸËœ¬S±²àïjxQ’¶ørx0EàË [.–B`½¯Õ»¶¤–æÂZÂÊjüUŒdN¡üdÎ2“ ­OŽ®hRA˜{bÝj³ÇÂÅ~Ž(Î@îÕŠØA¢}ª\Üse-3ÀÕ¸3¾‡l!žî«—c„¶úRœûmÝ%OÃÙŸ¯"“·cÑË«.¨I‹0òAÍ:„åЪS§â5Š‹¼ª~à½LtSMA ö—³¹’þ…Ê5ÔÒÓ¿rµ†TNÁ š“—X‡˜ÔGÁô,@¿ûƒ›„.FZwêÐBºÌ®vÀúHHµ3Bå‚zpäëO\À¤`ÂsáVá÷’3O÷š ù=ÊÊ ;©ÑIçñ EO…lM #ܱ0F&ZØöqˆÃFN/ÍhÙÚuñóýÄ¢”eŒ¸$BOQ·ÅÊkïWæ Ô‚›>Ôý1çöøžÇÆS+É):VZj׎12´[w{6¾EÚ‰!à¡~l øGÓÛtHö/YšÑÉÍÀqfqÀ:ù;ñvØÇU.j/Üb½Â!ñYáûÇtYþÉèö°îôÌ€Z @=­¼“”|NŠX¯^t‘tðïÛ>;bödÒ±T·åcüÖbîWWÓ˜·¼Ø 9è[WK˯œq`G»¨¢^5žÜk÷ÖËI‰X.Êdâb9À&†B„‹Íà÷Z3/Û]ß¶$YµöIƒŠ$m"ÃÀš¹R÷ÔÛ ùJ |¹èâÃ5|Ø &6¨áÃè?lP‘ÿ°º_Ø`L( ÞÈ¿§¾ÂÿrQâß1Svô%‹2¬MT¨WCºØúêLä7ZTgdœ©‚ ðƒ§©“Õ¦X¤û–&$½?¾æÂß„Ã0áÉJÄÅXTá,r÷¥=lgnÍuÍOS¡Æ"ÕWeµ;öyq›cÃ;h~ ,§@~¸™yp .Àåòk.“rŸ;ìðæDx]øß?*Ê endstream endobj 329 0 obj << /Type /ObjStm /N 100 /First 871 /Length 1679 /Filter /FlateDecode >> stream xÚÅYÛn7}߯àcûB‘ÃáŒI\ÒÔˆS mêU^BdÉÐ¥Hÿ¾gVrbimKÞ5b g¹³äÌ™+©@É8(Š‘d(ãÅc*âMŒÁŽc0‘3FgbÆ»(oH&E©B`“ ṘÅö¦D}ŸMÉ Ïl¼|Èd¼OØ0c_òØ1‚ˆÊÒH¢äà’+Á f•*xƒO!b•¤‹ñÅA†.@‚ yÈ‘ QÁ–ƒTð Γ«t;ŠP!’"CÉC`¡‚Æl¨]·ñ¤ŸgņÖÀPÆSjP"¨¡ |Ñá‹$ºþKX+9oôMöP@y3„ó ‹gP(@0dgØvÀšì[ÀO*Ÿ•(ºn1¬¨† 3L•‚x>GŠ}Ö™¢D2,*#,ËItF g‡ ÖË©T† Dô`‰ÎCÆ »¨›èÕ°T$¶ˆ¤;@š™·€á bïl°T”B•WÞDP·d ÙA1‡W‹BíX A q¤¢ËaÆ;%’bg§Àé*‚ˆ¢¸“g# ‹±~ݱ>H$1PE„”%ƒP[R¸ ÐЯSP_guNL”*ÂwR`jÀS9eQøU^_² ã!3ÁÃ륀'Ÿt[‚w%† 2éŒâN9WGGÕàã7µ¼žNgËjp¶úgÙ<¿O?Wƒ7³ùE=7Ÿ‚ÑWƒõhi>A,ø€¥ ’–R#ZÏ–׿èÈ ÎÌàçÙÇ™›ŽëËñt<½úÛ±{?›NÆÓz8ׇߧãåâGóêU…E¡œll¢;Y¯™¢d g¹W”³ÕõBwN/t8_^Öóz:ª›ÙÙå½R›Ošuœù`üù—Zˆ›éj29„ák5¡lñ̦ËFªd‚¼æ?Ó– OJ·³qYÏããÁé|6:«¡²œŸ˜ÁÇúËÒœo#w:¼ª«Á[ìQO— Bú¹bµ˜­æÐ²I‘ÍÔ¯õÅxøföe ¨xÒ ÌN‡Àc©¤á»£’í£ìSí9ô‘¶>ÜYŸØGŸ®*°k«;«Pzšu%û~úÄ–>ȸOÑgï ìªÑ¢²œ÷Ë.[Íèœ,!á“/ ýÞtðvv}3†Ëúâ6òuüéËͼ^,Ƴi+0ïÏ;·"ó›‡>ƒ+Šo»béêŠ1õu=— hE‰õzÔr£4–ã{q¿º®çã‘âýÛjy³jÒéÉl~=\î‚/®øHçòxk±eˆké‹[º9_ݦ‘ G+îg»Ô²Äζ[ë6:õIi#Ó×àib÷‘Ày7»ºÚ´êo‡“Ñj2\î–ÁNÁ‹ Œ|“r¶j­¬ÄØU†Æ¤_óóŸtõ€Ôn¶“{’ÜQ.ùïìRÛ£SgNÜ;¡ŸÓ[‹ ‡;(‡&Oš°…/?àF£á¤•ó“ìoXvx4ßéõÑ>>*dK =¼°wo—Û$u® )÷Î>‚†½‰èÁ3”‹>[½” Φ|ð—æhŒ'u+ä³Ûo¼žèÄæî‡p¤*û™„[&Ét˜IrÜM 9À6YI]è¬unk-µN/~óPÚɽ¸®ú¿ßŠ;<^’-hÁ¿¯Kûp_Bg­ùî[г¶UÈORáNF,k8õ>¹ofDýb6èŠds¢òè®cˆèþ}Þ´DÏsiŠS¤CòhíµóÍbS*Oß»±ëW;<Ñss„ÛÇG‘mñ/y…Ê®•¾õú¿[èo û êƒ>³9Ÿï‡é.6Ÿ¾V¼íãKñvÞ PˆýpÍm\+ìJ ×tfiÇɺD{ùˆ"úÿ}/Ng-t¼ëŠŽß_nvyÁ£|ÜËGA¬þ†Õµo{dï3 ûØÆ-tÆÀm›‡ÙÛÒã¦÷ys—oǘïcþÅ›0¦ÖU­þ¢ÙQ¢ýÖÝáÁ²–Sé~˜xÞ¦¶}éiöýÖÛ0­câÍX6ã+ìÿ¤r endstream endobj 435 0 obj << /Length 3326 /Filter /FlateDecode >> stream xÚ•ÙŽãÆñ}¿b’—pÃ>xÙÁzã56›À;†aÄAÒ#µFÌR¤ÌcǃäãS/‰ãÑb€awõU]wUKÝDð§nòè&5&Ìmv³=¾ŠÚ<Üpãûï^)™·‰›ÙÌoî^ýé]ߨ(Ì£\ÝÜíç[ÝínþüP]{»1ÆoëêV§Áç[¾i ènŒŠ²$0ùí?ïþúêÛ»ñ¤Xë+Q™/à¤" £ö&Él¨ŒeÄ~ãuükÄŽLGæQ˜F1 H‡õDž·@ÍØ0ŠÓaÚÑ}"⌇ÉYmÛOLÜ=¡[÷‚ÌW\Hù¹Ùh“ÉÍF™Pż½¯†{ÕÃkdŠ ü¯[ê˜AÝÁu ]lØ2¬¨øÛ<7W=x^EÿMß1ôàu;¿-Ž®”½ê¦ñí‰1®v²IÍ ß||ûžFÞ :Õ†ðqŘÏðáÊÚêj3_¬Ss5Â\ã±aƒ¶8žÊ'¶þ—ˆáeN½çï=òó©óíkÜ5b‹‡;³àònÈÚ‰ï÷Åë"äè]h¶_¯Ýc_7pOkAÒ~Ž”©`¦k˜¾0„ÂWú#H'lܹæ‰Á½(.vãnR¾Æ&ÁÓ- mì×·žŽv”íDR¢©¬Tж“ƒöXt‡ÅEøÝÂèdóv£–Ï[ FþX¼»Íl@·Õ „Ìñ=¢©á¢{^:¡ S‹öÀ` €0Þ¨ÎXƒ 0<¿âæ9ya—GÔ÷–4}…üZSb…Qž½¬Ã*LÍLÕw ƒ€ª ~,ª]ˆ>’Dåvº2‡°A7ņ“…:ˆ¨ì;éô||ÿ{éFq4Ù92© 3c–ô89Rê, ”Ž5¶2M€°êà‡ ÁÆ·™»øV<ã[`FßÔ¢p¶ÁH¢4ø g×a )4<ÛRé1ëñœ»w› hg#‡Ã*<x¨­‚'~A7+rÚÂeI ¶U¤;l?=wÀ04(º‚kSÊ$W•ß!ëÒŒ®ºfèS°³Y|ÄzœöX”%B;@.Òù-Èâ’¿ŒÄeÇóˆ$ÜÍÙD¼ß3|2vJ…F-yÌô£a3l.œƒHexÞÂE"D\dÆ.!dâˆo„ q‘Y@ŠÇ3…Ç €åŽÛ§ÒmeßÉHAg©Æ+ÊKæ‰É…‘0þ€¹’-¸lÉÍÀð§mÁºqÁ¾š£Ÿþ÷š$˜0wú]ßí³µ}t&fÜç€'X`Ÿ¶zö±@¬Õ3t&ùxˆ¯vÏcã0SÙü Ç}É<$º|jÿWƒ>7`x‰?äÿý·X>ih ËRš†‘Ò ©¿ i†â@k£’0J O¸#†ŠrµhÃldA'ä4±G˜p‚Š[ó ,²ƒi¹×·½+QS¹3€ÉBaã,¨Ã ­^f¢9üa•Yêd¤Ý×ȇ©¹¨µÒhà˜F6ŠA¤ò3'ãä‚Ú Ô²Ðxó”ÿ-*?E2øÁ¦háfŽ<ŒÔžzØ·nôì}´5¡I®¿Né¿Ðu[2àP¹WTk'¤pÓäeH²?"ò5ì˜ä …2}#Ù¹–ã´a–eKz>{Y¥CXþ¼‹„wàIÌàÎŒ8"ÃhPëùßq¢¾èH3;²ñÒ(Ûš[¢¤[‡) 9‚ e›87 R<וìõ¹;ÅØ›´ {,Yè´›bGyÂíSáw­1M€%'î]€ÇjvQ,úf2ö< Ñ› f3©?Ä±Ú q¬žÅ±kò›A;ÙÁj‘óÛºš‡ì*@Ïç’Þµ‚楋‰#JØ¥ÄqÂÉ*ŠàÜSõe*ÆÛ +€ž”IåÁ¾'LÉZ`ÿÔˆ8ø¶•ì'΃oü/å0 âзÃL¿ŸSR@Ñób0¯oȤË6'Ê­u@yò»ÍpÒ£T¨ÒQŽNŽå-xd ŒñŒƒk¹qÏV˜ ”ÔÇSQ¢Ž`¯¨€±!”dƒ\Ê!|QÆ h‚¦‚†áÈ mëÿZ$S«—dÇrôMÞÅd9Þã(¦0„#Ðò;Ä(6„ÎÞ»¬µ¬p G¯Ôž‚Ö¢t÷¥ÇÀ_©™ÑÊEí¼Ð–@”ÂW‚Ć{Ëb@ˆW35ôqöEn†‰‹¦Ú–ýη«C†”æ×ÈÍ2â’ˆª¬PÔŸëÈ‘×;N@·¦~hÜ‘ûS@ûŒ +›Ì=ÜfóY¨³&Êq¨²Ñ,ÕTA U¶¡‰³e¤öŽ8„gNBÑVç¹WT`¢À›àXö±µ†elC›ê«é–Îé%TŠèËŽ"bac'¦°‹#>ûïçè–BÛ^ÅI³§Ïóâ…%¡N 佦¥Ó‚¢¹ và Ò–ëUB5Ur•Þ›ÉzqpNN¾»£‚b ³eëö#ìJé¢7 EG·må6Û9cÆgÅÓkºbÛ—®ƒßú™È®\.· Yê¿­'Iáph®!"‡l0©cãÔŠ +Lo³|)ÈïÉ–ÌNètó<„AŽ?{ÿÈ‹ªÒP¤õœ CëP¬ ½Ž,Dªc€ûíÇ·«Q0â;’e_,D´ä¨{–#Zè…Jg¡™JR^; ó)Òèžó8qh•¾†9™9«Z ‚»¢…œ}ÈÔ‰’ì`pÉÙYE©,ÚŽÕš"(E¹esCTH0ªBô¶s¬»8_r»ààœÇ-[Of gÌJ‘J³Ó‰æ•S8v)(+L0Y6޾kV9„SÅGÊGà GF¾Œ.Y¶@¼¬é´Ý¹ì‹?™ðœ%é6h½h Å ö#' ðK¢Ÿ¨²6hUÑ~µd‡gÎà'<&Ö íî³ÿŠ›ÃMϪl†’L¦Ûmä0ôuÓúSýˆQ-$L‘€;_•—ÕlÇ£ 8v˜½/ö$I:l[÷Õ&HWWÏíX°t‹éàx)€ ¿ô,säÉ5žÔ­Üü·ˆtáV.iLAkF2M‰o&Mrܽy`™Š®ždYÍ“&W½\Ùa(ŽA¨¦ÊsJ’ƒS(ÄÇZ2šýlØœ„É$Äwo¾YtHº³Ñ‹qœóÄû>S5µv¦×Fkjáþ"K¹†WÅPâ«? ©U–ögCœ¨` ©ƒ±iœ"#V :ÄZ×ÔvMÙÑHJçO˜Y­é]‚ŽŒéqh¬T¹nD­ä ¤—?FÙ?¾èÅúâ}!ã(Në÷ÒY Ò§¯yæÉâÑSJR'¢ ¢ù½&Ÿ…©ŒñXù„(> stream xÚÍYKo举ϯðœV LÓâC¯¹dwl Á®÷Ìšm3£–zô°Ýùõ©b‘jIf» ‡À€›,QÅz~U¤øM ü¦ˆo2)Y¡ò›êð.¶Ôîþ†?ýñwë¶°p;[ùû»w·H’³".øÍÝ~Îênwó)ú¥1C¿ÙJ)£ïÛf#²èq#òHw½éVò8O#o>ßýéÝÇ»i§Dˆ7Š„+_È”¥7mráËIamB>Iç>I3s¯Û×È×É„ñ8ó˪²iÚ¤è1+³Ùi"tº¬q¤¬èD;knM&Tt·É%hkŸŽcÀ¬ê–[Cã`éeäÙùà}cÁ¸à+ÅGë¬Âòè«Ë•Xèûwˆ¬Î g‰JüR냥.ŽÉ• “`ԪȭÿŠNÕúè¸<¸M áp×;¢”ãÐJÉ¡ ³ŠÕ¤Ï*‹ ê£Þ‚/Kú©:¬ 8úgû…žàV@QyÞÖæ« "õ§~ÐÜÌŒh8[Þ›ƒ©KGë)ëôn¬§Ï1ðr¯+I Q†ï 8¥­ÁŠ™JgDIµÊq¤8â°ì, ¡${74ÝwíVü ÍX>´ÖÔ-=ý5N^TK™)Z$©bY‘\©˜~õv¶œ*ù"Ð×L­®Ãpü ¤ˆná¿´ÿE´7MÙTÚŽ™ý©[»‚樴.ñP¡³$£Ð~õK¡W¸¶dj…“qJ)%—y$RRÆâ\2a&§*IOLå¢ü D.‚É_Ñ¿¥õ29q0ÿÒ½täÍÅMœ,]q•[½-¹jÅ”âé @'C@:–ÕW/ÛD xÒ‡qÅß(Ÿ_ýR¾…WÖL'¯ ô$»¥^“Ízª8hZ 1•NDáv›{¯µ§Àþi¶+mñ@»ô-=8ëÜ+¶ˆ"jÜ£ ˆ¡”ùAÆ­Ä~ Wª5Ä‘‹j„¾êÌq ñ¡õÛ¶ûA7þÕ²!λÒÔ°•˜…Ó¢A;¢q2lSp{x}Ñû@/'oëVÜ/¥ƒœKÚ‰ŠDS4‘{gç Qé­j8d Û/.³ò Ö‘'á?4¦®é)jDÌrhâç0KU;T)*o å@£©¢)•D?î‰xÂH@ÃáäÞ§ár¯{Žâ”ÅÉ 't<ÝÓ“žn%fÇ_¤úsgHâ—…e‘M«.qÑR?âw…«''ïŸÛr·vßÖµý„ñ4å} L Ÿ:9Ý/»x+§SlïÌ ‡éäJò CÜÏàcúFŒ'5wP؆2QLÙ*ºïËû7x}ÐÏÃ5¯»âhúcí®ŽzÉNÛ׸B‚dùùBåAÛÙùêŸ?³ÑÌZ•§ø}iG”±©A9¢’7€øm4ÖìÜ÷­D>WiuŒ§S>m¿]ˆ¤ÙQ€N‹s‘tƒUywÁ-T‰©¾y·`l\²ÄKCõÛ‹/©Z¸ègm;ˆÄ]6ÉÄ^Ûït]Û4}‘¢xÐnvøm 7ûò)WËä2Tl¡ÆNÇñü»ŽLÝET’yB—dgiêцñΗ¾ ÞžºFÊË<ŽÌ>( 4Àç/[öÌ[£®Î>e4S;•5†ÛÉ]> stream xÚåYIܸ¾ûWt|R]²Hí““·6:pcÜžÁ “ƒZ¢º«¤Š–îô¿ÏÛ¨¥J8Ç 0ÐE>>’oeuåÁ?u•zW±ï»i\åÇQ»‡+üüá…¾=0îœoî^¼º Ã+幩—ª«»ryÔ]qõwçkS ýnïû¾ó¶mv:vw:qL×W0ÝûÊK"'P»ÜýåÅû»é¦Pë 9/eŠÎdŠ’ÀU~À2ýi¡êªðÖW7‘^2‡±«c gkVWˆêÐ)LYÁ>›¶­õö\_'W{å»*ä­ïÌïž ÃÊgø8x3è~^Â;\9t%ø„‰àÐÄ µ}(“­û‰S„þØf= ß[¶uݢ៪æ× –4µMýÌüÕN9å–H*Ní5#¹vC_ƒ }ËVÉáÝØ4ÓåOÕpà›¾ÞÝì&š&»¯M±m %n§®¬ñ˜u[>Ô‰ù“9LƒläÃǬÍ~výZnØ–F8Q-m ê8˜͉ã{0欙£I¿1­-ñWŸÛIÃ!˜iöC/»ÈäÈT•rÏ.’{Lƒ¼U×6GË9»0r²®Bƒ‰*éÊAñ®gÐ9»0t¬ÅÖªï톕òäº4rzƒ¡š†ÎÐ2¡¥°ÆA) !°``eÙŠ¶6«æŒ¹?e¹Ù÷æ”uÙÄ50àîö‘¯œÛrSU?rƒÄÿaU}Ï “`ÀúG±ëEñ*ƒ›V2ô¿Þ J?u8ü‡òaòÅ©«Ø“’YÉ`º®í˜t4}Ÿ=Hêf$sõдéW™}Џ…¼ržâÛi¥t •+¾H+Ô}#³‚ÐMTò_g–RnœèïfÖ"âÿ2K§š3 ˜Yø»ˆ~"³~0ªlh%+ÃzÊ ¼É!“×ÎÌŸºa8eˆMI:µ±÷È…)¹!”¤dà{ßII•Æn¬~ÜFóH/^#ʈu¸ÊÍ磻ö ÕÿVJÆ  œ’^ê¦>t:5:}U yùÎáO_á¬8tnv)´Ucxök³ròãC60Ä‚µUnšÞlƤ´—ißM’”/ûe—ø3D©•ë_óÈgu>µìR„rGü{O±–ö¼„}§TäjìÚP8 %ÓñoÛnyg²†»Ê‘ˆ‘K ÖùDâ.ØÀ á¶fnLÕDò®'éÔ5ëC=Sãë…ø´~³K11̾´å@%ÿd¸û­ÕŽMA—#n›Ü=µ jl%dõǰ–y÷ æ `»>Ô< Ãé§W¯Ê¾tÛîáÕ¹Ú ÜØûQ!,÷¥á†:p½X`ÿ{AùÏøÃhQ¥dÊI‚åX Üö1{ZþÍ18bçÙf¢,Psºê~ÄèÈdº{°ùqÚXîæÞºØÚÜ,@Œó–lm#ÂeÌMy|Èš‡ ¾ZoÏ›Bf›©ÏPì¨!·BIIhAMä9Ÿ~ÿú¯o>¾'N`ˆÎï°¬@wN#ä~Ƕk{!¢n‹nH±¹NdKDëâü˜}#Ãñ,ãÅcFzY š:róïM;í7YÀjH·B­ëøŒrlrŒû¬æ%ô؆ÆÞ”cFRlðØ®Ät ñ²’ PtRÑiužƒ<åôc' Ç/;°ú3Š)aìÙãK@éñ ¨o¹Hùó°\¥k[Ð¥AÈ¡žP¨ÃŒC=Àr³ vXª($ƒØ>›€D} ~‰ÚQ¬ÂüÈÁ\Tå3G+(ÛAŠýÆ—¦Ë+ˆØgf³G6m³_¹PªñrT<ˆß~¾˜¼…Ò×ULÅ›ReS-ñæpÄÉ š¥éØZ²^Òµq*VJ6"â¸å Ù<Þò`p‰·=¡k2¶ãFÜÙË?a êмùî³ÇTÓ(sÛŽ"^içéPÕ†™8ÉEzÛæ`€¾*LÇ/˜ØŸ8o€~o·ËeÑì"DyÆhvCôcVX@±¨ˆ”zŒhêRt ƒÙè8±ÄŒ¾Uh8"\ ¿¿+?°e·6åðt×QŠºçH<0ÛÑd%°F vÅðpΤ“[ÀŒýú*Æ™¸ï¼ènZ€Ê}'!¬o޽©ç蚸‚'%ÖGÊY"(®± [ôÙQ–°2'†q˜:·r Dù©6V¨þlÿ†^Êù`ÓaÉCêg Ì|#eÄ ÒOæœ{ÇôeÈt€ýB45)´s`Ó6ËÒÂÒR° ¼QQ›M0à%¢¬Eد„ï`Ÿö¡¯ ’‹-eq•l&k *8<'£±XÀKÖX; ÊK-%H#óÜ,µs¿éÏVDõgP m¨9õ@Ð<ÍžG Pî/°R¨Í=gÖ‹~D9 "öÈ=Kn 5¬}è²£ÜrhǺà1„ŽÈe™IÕ˜U½Œ8Š_¡×I¨Á@BFÒPzË€©ç«pÁJªÆKX TÑÊôôTK7Ô"è„JΚk3L,‘Ëœ_W€Ï( pS»eî~CÙ}üg¤Æ‚™ Zòë*Zä.LÀŸ$¶#9á™'IFJ8U£ñäÎ)œo…È?nU!zB(‹Ùp$~@ÿƉóeä¯eŒ‹&}åpj—‹²,[û'Hh[È\ôèe˜ÕT¸ž÷R^aW=õLü¾46SÂŪٲ}1vöéB9 XÀ…>í ©­œc<'<³¶J­‡%¦µßq¡øk®Apöã¤àü:QïÎAÍËë-yÅuòR¼æÛñ·IE(fzxPM毃¾R‹’¨ðµbý‚³e2àœ2yåª@`Ÿ×…“¸íâó’·’²ï(œáИûyÙŸýeD ì—QF(4Z€©ÚÓTÈh>þX0¾D9üÆßU„/ÏÍiàñ`ÿfBHH导#§ðdzbñÓD'¿cz!1Z —¯®Õ5S¸lø²jV(ŽáÔ·°þk¬:ùp8ü.À/}?] ÀéëǺ2Ð÷ :òiú¢ô‘©¬; endstream endobj 446 0 obj << /Length 2926 /Filter /FlateDecode >> stream xÚYݓ۸ Ï_±³/§Yûôaùã1—\ÒÜ$m¦q;™iúÀ•d›,¹¢t»Û¿¾~ -;Ú^ggÖ$‚ âKÉMLÉÍ&¾YeÙ|³XßÇW±@»ý }ÿ*QºÎF”¿l_ýü.Ïo’x¾‰7ÉÍv7fµ-oþý­±½»›eY½i›»tý~—®£ªs–¦³,‰×Ëh‘ÞýsûÛ«_·a§Û}Ǭh±ÆØÆ6{ƒ;!ßB*æ8³kŠN>K²y’ã0æn¶HÒè$+Ú®Í.’DdfŒíïi%QeiƒÀ¢=Y>.õNLoBšòNÂã‘–€è8VTaxŒiÊŸ=}ßÑÙkÓ{Öâ·r'*xÓB6Ú4ûÁì«y \Ò ®Ã}¥t#|__*R\iºg€hÚã–ÒuY¨ÁOcŽ,‡@NÐOÕ”ö 9çÑî.‰:Øh?;š¾¯ï°….ÚáWnŠ—ìk§NÚ Ý`JÇ,+S³Ù×SQÎBùõ3ðÐ7£±ºª†¶öˆ1&9 µu¤K§Ì@‡êm§[bav^xig×Ò«ðD³ˆÕôy0iú?9 [ž©A™ºÐ w³<þEªä[œÇb3ÌX7ƒŠáÐ7àˆ.€žR)rôvt[6%yFÔL^CÑ5sXdÑÎÔĮƤ´ ÆWÀ3¾ËOh‘êÅ1ôÇsp|®ùÝlµJå`Ûë’uïXAü¤èMÛA‹lÂtdO6bF{N¦S̤mUOýÞ>þ“Ió5î:E*úg wÏûÁà 1~IDOS¶·$¶X»¬e¹”€T hõtªU’àá®öšëÍ%›hË|Ķš°®+ëÞÐå2yËÚãËÊâ8Âñ*  `þ…òXŽJ¨ƒu}ÛÙ‚îVàt¾&<^Âãq1Ž–—–)̺kbo—ÊW+åŽñì²õÁbGµœ™N³7µ’íñXu… €ÓÁÖ­ké§°ª?è!˜™2Uÿ^ÛþŒS˜³8#ƒºjoº’ŸÂ¤ªŽ“v w–ˆ‹ýÐÀÖI-¦³Æ F«»u·˜š'äq!'e@ãùÙYŸWcöxh®ím_WÎóT`Y9»oXól·¸ ûQÛ·ŸnøÅ‚+ aIôA|yy"ñÝã¦Ena¢,ÈæmQy ÑUΈͻkxXöBrÀ(««È¨*㦭jhJ˜6»x 7“$Kã(DRˆÎ£leq†1 S<)á *yº çØÝ¦O€Ü÷ÁÁ)Š©o[1âcF× +%°ºuSÇ‚ zÂuÝò•<Ên%€²}%2ÐälºÒL4\)¹OÖ iVl™‰¦’¨œr²<G`ÿÃVu-fÓOaâlÞX†4“»I}B—®’è-{ÕëX+$%lEÌŶB„=ƶôÛÝ3Öœî*¾’‘V˜1ûÑ›ƒÔÖ^¦ŽØG3쫆s^L¤Ô(DÖ¥ö˜§lfµk'Ͷ«~·Eïb­ûР¼ö‘ê²×‘£²Òî!žRHS–Ã)â3(4[£‘Hk å-FÅ£ª´”j,]¬‘VÑ/çë;?±G8%S¦6›Þç\ò8—š|.“èdŸªZëž9ÉnÙ¿LËN]»ïÌÑ/®ˆ~ƒ4LRvrC¤©_×rRÁ£G[¢n¤ñÄ]2xÄb Î}Òï5KÖþRÉËÊ¥&›ñ¥Ò Úbts”Rl& ú•&ǘûEaµúVJå í ½Ø3€sñѮ꽟Úhu»ÉukàYvE¬²óegdgÈYö9'¯AqöLud§c4D3Ù#{>Ì¥»ñh]5u ¯Ã¡-“ »ÂÔ¿nëëæáÑt߇ÓE³†âùB)|÷gD™E£=u¤U£+;eï›6Wª÷±F,‰ÿIA*v‡ »´ŽjëŽ&ÈIòïáÚˆf¢ă¯1iÌÞ]Œ*'ZxÒ`Bgþ‚”—<à)u'¹ZÁ¬éù( Æ|/3.]°ÃïàÐ \©ÓàÜ࣠»×$ÑŠÃdŠc;Œ™µÊŒÍ¤Ï)¾¿dnÉûb6Mwú?baå°Ù"¢š±éuÅ_N†.èv28þúdŽ')Èrª3Xà<¿$ž…GÆ$¢†NZ5SH»ÑÈ6E=”ÚJ`øë/o>ˆ|Àœ}z;ôÓu·57K5{°Í޽Ð2 މ ÄTÂf+Ì’åf¾Z'7³tžùNõ¯‚YÎãer3 É0À4½dúåý§ØKl‚Ð_=`Ð ·D¬æ8 ѳFn3KVù|½H¯º¹!™A™ÂÛ·ºü4 ØÔ¨+gTðDº!,߯Ú~ú¨ ?KûÙõ_ŠÎž´U ‘ ÷ö(¸¦ËR=e-â †£i4½‘†T1ã×MƽLò‘11-’(îK¡âídå“'<` ¸·ž|þóû{°ùÊ’¼y7Ý].áó~ûü~ŽlãÀ';O(2Ÿ8²H}û©V&4*øü<낌68SÂ998ÚNæsm#YÌ’½²ÿZ\ŠÁHŸÐ4R¥Ê¹V:P`Œ;y‡ÑÄd”“^¼@žúºýFÐÌùc©v?›Qž4–G³.éjöîÚÔYSyKâÜNÆV­_³¥jœÈëiÔ@egd®þßõ˜Ñó PtvêiÛH~ÊË%Œ÷ðšûÉoÎ2ßcL%1½QD8]ób+xoý¢ªŸÊ2ÿÅ /\^#rÑç1ÑÂeš›Ÿçfü<×Pjøêv X(üãóeñ€ÒZôèÕ7B3$Û‡.CìÓ>QRÝwöaè+eês(‹ÈÜ9÷ù–3ß» ‹ÎóôG½ ½Èah]ÃÖòÿìîn endstream endobj 450 0 obj << /Length 2857 /Filter /FlateDecode >> stream xÚYK“ܸ ¾ûWLùM•{¢WK­ÜüÚµS›õfk6‰“Í#±»«¥^=v<ÿ>øPbÏhœTD‚ ‚ø]…ô‹®Šð*O’›"Ý]•§!SûÕ4~þþE¤|bÜxœon_üñ»íö* oаˆ®n÷¾¨Ûêê_Á/m=×›$I‚·]{çÁï×ñ.°ýPSw“Dá. Òäúß·~ñþv^iÇÿ§Jàü:EQt“]e»ô&JRQë5-gÁ`ËQôˆ·Á¯4úžUë±±•PÿñùŸ/…ùdM;HÓÈXkNÂF’¦»‰¶*n/ããÑ á]w½¡]—Óɶؾòݯ£ #™Q`uV–A[Óô†¡n¢ä&ÚŠî5”·Á¹¿æyQPÖƒm@M¡¯ w½ÊN–4u«•% êV%™^õ:ÚÁ*×¾kšÄûº=ÿh¿Ž28ͨ´ž¬Ò˜Ñ®÷uDyÓv¼­Mœ'AcÚÃdöæz“âÂmøÁöVYPœ§Á0𶄏ïz!ég6¬-ë_Ã(-u‚;UpàŒ„ìlOC85 ÞÉlÝç+ôp”%ºÇUõy—ûÊkfûÒÊdr˜ƒuKð‘¾|ÿN˜÷­êÒ`éAÈ©º[ÕõÃ2ÍÉÙí˜çC=Œ]ÿðò†Ì‘¡’,¸½Þ%A·hòSOÇÖK`­8Œ¸a¶ ná]ðæ¬%Ú¼[¦%ÎqAû£meôœÝ$䓸tU˫ގ ?Ä¡îCÄZ¿½=©ƒ²+¦_tJ’G±êâ ’A Yj™²ìúJü—º#l–ÏkÍI•…ßPà’ä›yÕÝM¸‹eÕ[Þ¹óÚ¦ˆ|2è<Ì.OÁM ÒTéÔ¿ã¸LO"— ïê¡lL}¢t(„V#LuE|9(pêRÛ÷Çz>µ#Dã/Ó®˜O÷œÇÁ$¦ )s>7µÕ^ߣXí'û¦`Ýn fN\$ç™=BÀűd¯¢)3 uE_Í˯(®1JžO±ôÄ•ÐïtA´{»'™m¹Lá/o 6@Gmð ñD³§QÈ]Û°˜]„L_i§Ò­°Cë¸ìš ù§•ø“QFZ–ô‡f}"ÛKV!Õ°H9¿ZœšdÙÔ­‘Ï–M}ï=`ÝT2wGöÎßA±BaTN]]I¬4ŽFÅ´«ghI(%Œ\0Š‹R>'˜‹`S£Kœm¢íM¶Û^F[LΕeað·÷?¿y ºýøŸ~úüñÇïyêÚÌÏœ'KîÙ€:ewöz²ÓykûšNÞÊo+²¸ÑÎ;Ì)­ª'r«N€içîm/»ù}Y›¦Ñ]¿f×¶k/Xi/$m†tÉóõò{-®žåÎI¸Å§I­Å1G¶’-[ïëÃÑm…È’Iå‹dù2­Ñ±ª¨&¡"I}ràEìºð3L‘ Ã…4ɚؘ]å¬eV"Kš Foa¾k¦’sº€«i¤A{­yOiˆS¾Æm°vÂxqá.ËÙaÐ1Ii;!8Rh¶éX _ƒpÞ“¤AÔ² i…ì„a ìÝd¡K`yËâ.G¦d|B oŒÜOÖò•›×zÖûâ0¸SI(¶ 6ñ,7Lo¬Œ2ß;LâÐ$KôÅü±â*Œ;ó3•pœÖ \6GÅDX–® ªAãÝ®ÂF¾ ăęòù‚ÚlóT‹WbðL-L§«þéî sèϘ}t?1à¢úTE£÷5[ >'£9.g€ÝjºhêÉ‘ÙO}"PÀrBPšpÕZ‹"ÉN­šdUFÛÝró`h©É1¡Ò é„a¤¼Â( ­|µŒÙ=¹d§· ‹{ôXp‘#|T̆¡–C”$œ.¡7TMŽjs…ÆÎJÅåAIÒQ8ñJ Rã¤tnEG!Ò:ûC¾ø÷v‚Ÿ‘¯ln­. ]AE ©aÿ ¹~Í€ÁàÐqá£ÁÂGT4€‰ˆþëèŸÎæ·ÉÊØ ¦À¯³«/ý×`Lp & ®qÍ·ª¥„\Þ»†¨7»$EÙèócÎ¥¸åÒ;RBÝ ¤£ST¾<ñŒ¯ÿäò¸™yO'èÍ2áœ×°ªY"g3­(îâÖb'¥än+H^šœewúß)¥ë…×Éí}þ–A×Ó“zFæ ž81¾çì¹qU7SF­#¡Ì™Ýèj]ÒžØé&’Ž<½æþðâ.¦x=ØÖöˆtZ{±Ìfäè3õ½RÚüô†*ÕAÛœ?è[IíÖ6©„2KÙª” ÿObúêñª9onåLèzu·]ƒŒ³³pŽ&Ã5–߯â\œç ŠÙ–l,=& Â#“``Häg­?…–­ð¾âñ!ÄÝÑtÁçñ¡û­pÀŒ‰oœe}¾f9ã@¡@Z\Î[ˆ'ÏOèÍ ï:’]M•g„Œü—õ>ûw3­!›€áb5­çþ›«MI;ò$Éß4øº”Æáœ€@¯•`“&ÓQBA.4•)°PÍ3õ*B£Â="FÅ3§Ìx9åbòQñ0'hüƒƒá­m*=á§®%ç€6:N%¸zíÇ1H¤Iw×\N'À-Ï+Ò¥+Nlrãʽmÿh½ÆÈ}“Гuÿ?ÿ³X@ endstream endobj 454 0 obj << /Length 2500 /Filter /FlateDecode >> stream xÚYYã¸~Ÿ_ÑÈKÔ@Û%êÊÛ컽ØÉ,2½‚LØ–l3+KŽ(O§ÿ}ê¢DÙ$h E‹d±Ž¯Š´º‹áOÝUñ]‘¦ÛJ—w»Ó›˜¨ÃáŽýñ¾ 0nΞÞüéc–Ý©x[Å•º{Ú‡K=Õwÿˆ~ëìèî7išFïúî>)¢o÷I5ƒ³Ðݤ*.óHëû>ýüæÃÓ´S–$ÿ§HÈù?dRJmó»¼Ô[•jë…è/÷먶nìóel°ŸF¦cúç³ù÷¥áö®?ã”Wæøgqm‡f7¶¯<ÞüC9™Mv‘!sh:$ >Â)C3Û‚F`UÅû½_ÍŒ¨8êF¥[•±ôMmGV¨uìñ‹¼ ΗçÖî¶Ó¼r›ÄO|¥¨"ëø;4p@76õô«8ð@×3Ô3@40i;;6íhv2ÊÂ@Ã\îôúAvÄ“-Þƒø°Òîrí0ù×kÚvqzŧx¦;p …Â^—Ñv&›NL†Ö a'òå„ÿe©H8EƶÃ#«’õ«Òè`¿‘LÌ2a/h«èÄÃF¦"Ž™nçY{þž‡·üfkð*¼5ð‹…õɘ¦cë^Î iՌŔe¥ì4äìšU[€H %šá„ Ñ2»ÇFeۼ̖N¢·÷›<£OŸß?~||÷ö¾L£§ÇÏùBS3$ÈÿŽ,è XîdP¯Ü¡°™z¦«Qßñ"â°oxüûBm¿ÆJ7Âû·ûROçDž¿tÎ䯅 t!$_º ;³BUbGEnÍ·hñ4ŽÄ6°9ì©(a"Ë”Éæ™Ìf%çŸI2šZfpà`k \ahÚÆ¸ÆóHãV)é!õ¾÷óÞ¸³®LZ9Ùx¤¨þÅîšÎ¡¬i¢¼¯©jòilbß™E@⸶­\)ž¡oe©`è&ÞE Ø£RDlID\xå$“÷°…fÃ`ãjngfÆ’иÑ1—,$v‹,z9²>6óÀ£“½s¤zø8‡?sÎ nÝB n´ÖѣĹ©Ù?8–g”…Î ÷¾¸‘{u?…»k| °èØÇ]Û-!]93¿ú3IÒ•åÞ $üF;e/y³áÉŽ­4E™ÍAz˜*Ù<ÀNjͪyÚÎÇA:Ï"»çAÁoN‹8ÝÈìy/tÛQÖñýПü”§2q@‘”ð«Üj•,jÕ'KåÝJù… Je¤h²Kað5ßlOž =qÇàÔÀËÑîpå#“ܱ¿´µìb÷~éf¥_X!ÔK¦<¾ù°âC’ÀW§8Ž3„ûko üƒýðÊTA8¡³„¬7*A+ ¯B0Lp3îÙÇaÖÅ5Wë8s’ZMðzf}T0³F×½Ntý`¶3mPÿ¸#é"-’K¬-H©H²áYŠ‚“uÈãSe±­²«¸øAââËQ™±‡ÃwÂRhûØ€¦î'ß •H~ áîþž¸Ò Dsì]˜ À£‘‘¡qP€¤Ï^¨š8üqfG)Ž–vÉ%Ñæ>{ækèêxÄvW¬+©<xE¬(ÿBƒS1¦Í f÷‡fB²VVàIà‹£cÂúx°¢ Eª•¥ŽFfíuÖÉjÖ6â¤rb`ÆP|²°kç¦pxåWTí­¤3ÎÎÏ 2ÿtU–[®¾¨õÞ‰ËÍH«âó>arø2:s"â4Ú1$À ‡æ4Tbè‚7ÌÑ»Âr[˜1ÈÛ¤˜J"«aŸèvŠù¸Y®—þ^Žû+DS3|cQ¦nÛ«ôêó= ÑQêP$Ã] ª¢Qp[»q6¹¸áíu©ù"ÊÛZðÝx›3Ô›àl­¯á;Ynï 7´î¨Ø[pÚ¤þ—ÙÍW4-µ‘Ö3Ö÷».y–-µ½&Tê…r3ȦY²4ÁG9÷c·k/5A§à8àÖGÆxHìGrš8‰€¶¶'eOYÉ0‘KÎ&äàÕ ;p…çóÊg¼jâ=ÛŸ—ÅžÁô*‰`¸ó]¿”'‰À˜³Roãè²äÇyRò‡3áÔ'Ç4¥Râ[s©Ÿ`¥ÑÉ”£l^pZC¨OP]/Ýw IpÁ¦«/'îIÒòœ9˜ŠJ--ùãj0%YÌ’eÓ5 Z“9°ãÍÁ,ØÐU´¿¯#Îär˜¡³pa™Ar…Șp†¾ÌW;íï¤@ö/Ü{¦Aø@³ŸÈ>ÿñ\¾ŒøžÖnBýRpÌ®7ÁŬE®V-þ´Œ‡«wL§¦©xTQ½D¦k òð/n›êm¢¯¶|\GÁ,ñ•|”“Ðùà‹‘–(_Uª¥üüÆ]V¬,ÆO…РBl¹á@4µ4x2Φ4Ðù~ÃÞ¬ôV K9ÈVÄ%•ø•r›×eP¥RU’ªÊ 3<ðCO)›—¹ŒÀéë6|"IãrQÆ’ÃÂMnsX¼ öµÒXp8t2ÄÜî „}î…æ|S•îyô¸ŸØá²Îg©ØÃ{Á•!2¼fè•»Ãfí á«‚\54œ·Ÿ¸ð-“À\¥’u:z¯¨¤¢¡“™ H\,¨£+o˜Ú£”‹[é}·ßí-‹ô5ªì¸ÛË—]·šk Å>1n×1{r•³çÒìæÄCuãvƒ}æÃW>áT+5 ‚\½V¡:ýußv×ÏÅÁe o…ü„Öt3eÛ2Í—€ðówÁ ®q%ªoûáw&¶¢i3N…ŠuñÞǺÜtS?º{–Ë»C°ËÚó1¹¼?†Ëê»˸@ï_3ùl¡Ñ‰Äv ¦sg3eOb©NäâìT'ëo \¬1Ok§C½X'³dºZÑZsì ÀÀ½ìI^£`xz&Þù‘vk¡”¬¹Íè1êW'XÂMR>aØ‹á¶I¾@ëðòD—.~•KŠŒ5\Fb+Oåòbˆ$ÒÍ4Oó/2AûBÅÓé>‡/‚‚4õ‚ «dJ;ÐÜsá]%‚g†~&©¸¤*¦Ÿ8*ï Õêå'þ4푊Ó^¥° '%Õ+qeá^±ÄÕ«‰fŸ »ã¾ÜòǨŋJºú¢‚?÷ý«Ö0 endstream endobj 458 0 obj << /Length 2614 /Filter /FlateDecode >> stream xÚÙrܸñÝ_1å—pª¬YÞGíSly·œ¬ìT<›­­8 isÈ1[ÚÊǧ/€ E9©y`£4úî&Øùð v…¿Ë¢èPÄù®:¿ð ÛßïøûÏ/Yw ¯œ•¯/~ø)Iv(ü"Øï\RÇz÷Oï×VÃþ*Š"ïM×îÃÌûºsOõƒ†áUøyêÅÉþ_Ç¿¼x{´'%aø²„+ÿOAâ<Ù¥y|¢˜ûëa•¦¾÷Ó>¼®ß_…0([dªFbo‰÷Qªó Hý¹ÂõŸÛ?ß`ê^Ñ@¡ï%/5äq˵ªuU"ááå+@g‰÷·^ ªg½ðÂñ$ÀDåì‚üÉî*ˆð!º;XT²áÉS3ú²¤ÝnïäAÙì¯Y¯˜n‡±l+Zâc× ŠÙññ ˜'Íœ–3H eñEŒ€å¨:VY¯o§u…Þ‚²gUK+Úú^{õ¬Už¼×,oËóã D"ÆzhÚñsd?.à›âH<÷q¥u¢<ý4 rx'ž¤^Ùkö¢‘§>²f¡&;¯;PMîU“Œû¡7µe3ª —¡ÁdŸîTrÚ‚\ÄHáè–6±Ýˆ úÔ€ÒÏáq†8˜Î(Ë-º&†)Î$äÁB†õeÒ,o£¬¸€/{Å;ÚN0`ÝA×" Œ/e/3¤ !ºáÖ'Ñž†i2WèÂhi­±ÖµjÔˆ,DÙÍ8p¨e͹fÄ`h¾më®f7{ 4ã$ñ>NÆ™‰ê½séœÄ’G)é°º­š Ü”$0¬ …‚’†Áeo:2A­?ùAÌlÆÞ?öy,ÉÓ¸n~ˆƒp©Œ÷FfØ@8 |¯W$3cgõÀ@=èaÔí=fáŒpÞ<‹È•³©Až"ïq(K€P‰®Fƃì’âXG-†_ÐÌ7=žX Ža#нc/YÆL‰sÏšâ êhêÃv¯Ïø ‹DÙ÷†ú6Ød—ª!ôšï\¬Àl–PhD†Fä¸]1'Ü­ ®¹Z‡6žþä'>%€ÇSßM÷'P‡´¼§ö\ÖTß#!ÛYß:TY”ɰ< ŒcqEm)+Ÿ\ž„lÓ«²~ÜðH§£ÊBrè,‚L¼pDÉÝ ÖpæËÌ¡07”Ô(j±]X½ØûåW,ìIÉ `ŸQfæ(ÐsCæ0›”³'Jݲ“h8OgÊyfêxj8H™W »,uÈS¹¾Áæ²’Û )Íåö>s*›;™¸£Ûª¿¤1{ øê)»á-ìag€.­Þ÷:7ÖÒÌŒÊzuiÊJÌaíÒ5µ-Õ'l·Zƨ‡ ô(zä‘Ô¢þ¬)ƒ™í-\‚¬R\ q4ÝB.9Y9­úÍeĸ9f,"Æ6K‘òLVHõÁð8HI¹ ËÁj%¶Lú66ÂÑuÇ_2 ÆËx³úÅts80Ï(ÂÁJs[]DzNÔF¡}x\ ~(=‡L“P•v¯TvÎ<š=½8sÚ‘GFÙÞ£o¾†syv»ÆuwôÔ–‹”Î7ÈäæÉÒx‰Ü ß|¸yýîý»÷?˽ðÛ_oÞ¾?~ä›­»ñIÿ ÅÂú7èþîÌÞjÌŠˆ$ëÆÐ`mXÑ|;FHúak¹PMN“†ÄzÕ¨’›åš1S[›Mì ‰+¼Ú2´Ù†5Òf'Mu½0Ä’ŠßEƒŽˆ˜?%ç'¡2Eò\p^ßEé<%˜‰â`Ýp¦¯Db&£<[PYRþ3Sþ3Pµµ…ia–n‡pøÙåÙs85_¸®Ùù<)hEïáT™®×–ž±ÌJYÔ5Ù'ÛÈöD”£Î 1 ü}æY§)¤ýÀï|ùéÕÏú¯œ*Ýßgqßq0LqÚÙˆ¯”¯ì«¯yÒ-å^8WŠ(š»3s‰ä{> stream xÚËrÛ8òž¯på2t•­ >kOÞÄ“xÇcO9šJmíì&a ŠÔ‚Tœüýö $(ÑÙ”F£Ño…gkø…gÅú,SjUÄùYµ{³&¨}>ãÁÇ7¡à]⥇ùÍ›¿ýš$gázU¬‹ðlóä“ÚÔgÿþlÍП_*¥‚w]{eÁ×ó(´í L/U¸ÎÓ NÏÿ³ùç›ëÍxRE?ÉbþžÂ0\¥gi¯B3[7pvœ¨`ØjTÝùz4m9gÍUðîŒB‡~8Þ Êçßq½®LÏK×´4˜¡Ñ5CþN>š~èì÷· 1Ç}=O’ ´ça`.QLmÇ@ºq|'½Š×éHW—dñÛ9tädQ¼k‘ |Ñnæ”,Çê~O4@býjD^¶˜˜,&c‹‰ým°eEž°Á$ã;âz½d IðdÁ+2ò¡BøÖ£ÏŸ•ØÐ˳æñ@~6!HêŒî·>\.]¤€ç±3‚þ…¤Q8™¬GÙ‘¾àúwœ“ `bÓ<.ù3i,ÎÈ)äJ”£ïö“0:LJ€Ešºþ3ºà Ã¢I²™®bdƒ£áz=O¦ÓV ü²“†SΔ÷b¬%WôLa·–p™»”å‘•w;! ÇÂk°í¡îÜjõºëÏÄõ_!â‡×®P/10±Ï7›nîÞ_ÿq ÌÂ÷nðϸíþá·…À IÙ ’%îð¶{TަÇ¿ÎùMé!€}FÌã†QÁÑ)XFá,ÍT[Ã~r0lÿ²ÀnöÈ+À¶^ïK[’’£ Ó#5ÐÝ=©aDiãð“W¡_·ü}!U¶_(Ê8Çò×éÂì—¹wDoè–JÂ~eS òYÏIŒvÊÒÈ2‹ÃÎ(U ‚z1•¸M­)?(ŸŸ­~q¼e˜yâ/? œÚAÊ·u`ÐåC#¦âtæwûé‘tÏß¶‡ž3•5[+|³3ÃDg÷˜ËŠŠ0`Ž2zœ£ì¢"b×£yì1ñ‹ Á©¶çÕG¶Fv?¨¸þBÄ„4ƒü€N(Õà‘y*F Éî€y0ÿy Úqª<X¢è5íŽ#ö™ˆâEašñjÙò||6ÌHâØHÀ˜Ò‰hL͵Ð$É™ý}6ÂPôycSYý¨Úló¤ÙJ¹WO¼þ²5cøÁU+hòüäšw½nØÓIÁ&¦œˆ)s¾pOâ8%3™ÎŽ}²é.ÆÚÔ—NF†¾ãHľ–Aô{,ÓêÿŒÕS„E”NÈô.uE b>NQÂí?b°¦#;† ›[¼-«(弜ú”GOîu±ìó5r±šH¶†€yœÑ¯g<È´z†@ÜhF•‚¶e#䘯đM‘‡±‚êëc”ª ñ$aÿENž‹~áRî!ÄÈÆb'b¸b~˜‚‹ñÒkÀ·rÔ1 ƒ6l·%©&W$ƒ[zK"C£‡`bÚ#ÜÙ½‹‚|´C8µ™—íZ0 ÎI@¹XÛ›)…3œdºEη@9h?±Y*‰òd̽ÈLñ¬ÙÙ çà­HÈîÑ⥪Γц˅ô¼0=ç YZtâöV1Wâe2ÿ2d¿.Yá'ɦ'™™÷˶k˜):Ó ý M. ÍæáêîÓí”̼V¸’¶Ù²í]ÄŠUξ¾T–‚k"o¬ *ªüÅP¨8}ÁïŽß¢6­Ã¸Û:É;ÆS]Bwé>NüôçÃÄM¿Xeà™¹«V`° võ¬:@°êyÈdÒ€]’84Ä Áª¢ªq¹tü›–u’ËÒÒ?éÓÔÊ%ùZrVþ½ œ¬ÌÆÙPý Ñ0ˆ¯=·ðÈŽàVÆòpž¬éb½Ú2À”,‰ÁúcOoQLÍŠS«•HŒŽíèUÂ= \黈eÕ8¸‘.ä‘Ìp d†‚°žI’›Aum$¤\Òà*;Ÿ4÷Úpöšœ¯ê‹bÞKù _ˆåÞš,ÿA•:JÇ«1ß>íê¦Øï©ÌÊP®œ$Ø,e€c‚“PFÓž'ÜÏŒ\?3:µê±J/¦fÞØ@ ˆÁŠÓZ'1M¤cúª)ÍŽu(ÎÃãžJ=9µZ,•Ù“Øp «Â{Qœ]C­oú-O\,çTˆÏ)\ê£)õSÒûq^?\JY;Ò–,žd­²Dž+£®“ †“”<­T%ï”çϸœç-%xp/«B¤G¶r’;¥šZ !Ù±^!Á¶~%ÂP–új˜¹„2¤²››.guÓ±¯ú}…”˯œ+7ÀfiÌ—&YP«Ãõ-‘61‚M©†ó¿$`ï‹Yn&í­f5Í«9­ Y¶ð™¹qù2+ár¾€xxç09n#ÊëŒçÜÏ;ãa~Òã0 GÈ|4ýb ‰:ý”BIŠò¥Ü;‡CÖÉzöc€†<$' ›ÿ€x¢­{q„P»Q6x7š/1†5zÚ=£Ø›Š»]¸(ü- ×=eû,õ±—É”Õ@e$‘‘ä0…Ëa®~¿¹ûA“·£ÔsÒ0áš+òz¿€‰ïy9Ë“íÍäŸ#yÆ(w #×±‰Óëo•Þ˸왽߷st£\ õÍRà=r²‘s™H¯rV ÂÊ@Í®F—Kå0èÝ~àI7¥¹D ã¯k£÷§j:e‘d¾H "–²z¬ÙÅ…p Ní™Íž‰ ÞÜHÞìâ ¹dê )”ɳbÒkÜ=åaèv`U¢|¤;˜µ¥#+}v×uv½I³]_V¹FG±Éÿ ÿÃêð| endstream endobj 468 0 obj << /Length 2867 /Filter /FlateDecode >> stream xÚY[oÛ8~ï¯ú²2P;¢îÞ·L6ídÑt€:Ýb±³´,ÇDeÉ+Éu3¿~ÏeË3E€ˆ<<$y¾s£Õêféߤa¸XFÙM¾ãµy¹áÆço”ðÍqîpþòüæö}ß(±ô—êæyë.õ¼¹ù÷¥2];›‡aèÝ×Õ,H½ï³ óЦ5ЇÊÏ/Jgÿ}þ盇ç~§8~R$äü ™”R‹ä&É¢… #ë×¥8‘(³¹²B½‰å™-|ãØ{Ej}ÄNâå…n ¦ë²äÆwS—ºã“K-óºi¹õÑä´~5S^‹‚¶ð¥I²IÃJ˜Pñ>‰·mê½ìÈ„ƒn`¡Îä¸Ôš%àêà*æ*\¨˜O—×\ôµ1/;lt0{x»ºÜ ·I@ø6…©ÚNwņû¿û±¯áŸâî¡¡‹únP]pì×Yyp„ÈO½cU­,£+™¬hCSrŽÉ?É=‚â3?p¦ƒ-çQ”ðQƒ„*bQˆÞÍÞTp€–ûÃu"³\'JœFv„N¹æS"×a6'õïuU°üxÐГid£ÃàôËÃL ¿í4ó¶Ú ²Zîu5«º3ÛWl§Ô`€p„Œt{0êâ èkÚ‡Uõ^)(j]̹/t%»:¦nÆ2$>OÜhZ³@“Þvt0a(ŒÀÚ–ZôÒ…¿LxÆSÝŒ›Á¬"”Ì¿FØâr‘ vèØ#;jE7€ô#Bœúã[O B@ÞÁzöª¡KÀ†ïØ×tÌ3¶Sêã£úñ$rܫڨH„%HBÖŽ"øQ^êNýxX×Õ)Œ¯‘ù•Û-ëÓÇú„>é¯S)ëe€Ÿ¿¼öÄQP´¦¹;c× ‡ÇÑ¢¯Ôë·Î Ã Ü ÇÌeÔgtŠØ9¥•éc¯c?&»ÛÖrkº²0†Î‰î !úM¼ßC‚ÖÓÝO:ºX‰nðšb1ú0ö]o®¼üØLf…@cäÌpÊö=²` }þööB£ÖD†]dZc!wy蘃£„M[|Ë“võŒNIü\y W®,Ú¦ö7ÒrÿX ZÑ'£#:¥|XnƒæÄ¶", L´®Ö®# 1ãÖ•'`ó-¦ÊiDj9€Ž¢0RÆ C ¨ØoW⃹œÃa‹×ŒPÁN¯fìȱq2C‰ÉÅlžú¾÷¸Í›Ü"#Qmî2¥µ5_õ ‹‡«ÚpŸ@@ªC—‰”i„#ƒçK±ÄƒÌÃëÅ…4w­ŒÙ¥0eÁ!f¹ê+ZMî|ý‘V'n0‚é’ÝÿÆA°2B ñb¬2‘k08¬FFèĸR3ýØÊæ¦c˜j¡¢±@f7›'C½ÿòüåóOøüð¯ÇÕãoŸV¼Ðoï™üüëãŠ[ï>­hÕ‰EŸ)¶CŠõm¬)¨—z+Ö¶CÝS²¨—­x‰%"m¯åˆ8óp\—¦ÝñHUœ0—È0@C.EØŽG©pËŒ¨é¬8>}9“ëÒžþÁÚÈ{ARïÅÇý‚7²ùd`£¶ê÷-—Þê˜ã2;Ù¹1–)'ɰ²ðgrkö†£6Œ¤=˜ÆL&JœŠ¤C¶shŠVN"é…%Ú:\ãú(C{mã&&1…CNºRÞ©E§)Å=d/½Ù4œ¼B‡OH×i÷B®e¼®ò¢©ÚÅ”ð+Öˆ[»¨Jet…PvDê/êË=wع†IF5ÌÙ¢œbvÝáï··§ÓiñRuór þàµ,¶Ýí¹TÁR- „øI©,÷¥T£Êê|Q’J,W¥ËEŠK¸fö {háY)ŠÍ3‚/(†p uK0x™¨ù³1mgª—#|®lBÈ:îñ¿À¶AàGŠBn"Û‡—–5a}­xòœR@ UË”he(ÜlÉR[XŽàÎò ´(…0˜Ý›5v~‡²–B#°ôn )š~M{ o§p¬Pn‘?_Ã>!/LÕj0.„ÏREäßI£>œÃPÄÖeÉÕ6«ÄåÇ0I{¦6MÃâªÚ˜Î:™Ä+ °7ã5/ÒA5© J!’1Ày„x[•8—{iSE« /¡å†ø± n+= Ýs^ ´“ÌÒüÙ49JJk‘—“ [:Ñ {+8¤¦ãèÔ³Q¥% p4&ºÃlXóäDvc»è棋0mceÙHWŠgô™…à„=ÑPœ¨i%ù·Š‚)ŽkþÐ3Nêýxån®+©b`âFv8íÌö}o{ì°DºÄâyŠUfNagnâ‘Ú S7OH1ÛÛƒ {‰Sûâôãõo²:é(ç6¥Åˆa÷¬àCò¼8tºÊ‹3ú”6ÆÐ€œ¯22r|`K–ŒU»]ݘ?lÊëä¶‘¤¯áÃþhÀv¶cèq)쾫šá¾ìûÞž£õO2b%ñçNs?}¸–èb°xÒmk†²Ë÷ž`«cÙ>%>ï-½{zX*é‘‘ÕV76Ù…á•銷<ÍÆÎ¢åŸîqoЕÇ(l:×÷¾’4å†Ç¾"$'ö•ªß5?¶Eó½½mìc#Ýô2¤Ú]L»eÊÅK¼©À™cÝ|Îþ)S—m-ËÙWÐMÑöï¢Pß ¦­ÎMi®”¼òè؃¯IÍŒ”Í«ÔÓ5 \Òƒ2Z©±{!ÑAPî¤È–p“ —ùflq®eMXžÜ‘Íxì–Aÿ.ÐüÐûCYô¥ýTÐÊ…”=|zý`nÇ! ô ø!ñÉÅî!gÐ"1ƒî­L¨õKÁéŸîßZ§ìcöÀêíl˜ÄuÀÕ÷–Öt¶â•ÇR4÷¡Z á,bÀäOÂë`LdØeU7ÜÀ ubý¡G†ƒŒ(Óä žùþ~þË¿ç«;¼(è­Ô™}[Ú}SÀ­õWŒ”z¿¯-ß Ý5Ê(¸ÛùjÇÑøîJóÍ™.à‚}n¯µå9ó œÛã˨Ø D+wšƒëbÞ yBò hF‡Q®cjÎsÒÁ-!õÙ"·dò¡1UnºœÒý¡Ô9=”Dò.R[€–†Ø3WZß!Ę6¯ß‰ôº4 _e´´Ìæß—øåe Jd¥¶E–lL‡WW²kIï €ÐbƒÜ@ö<èu_teþ¸þ”€{¬rW?èöÃp^(CHäà–@64"kf½HhPç¡TíÀvÚÕlSv¡¸ÂRJ¸)I ù·‚ 8ZƒÕ!."œË;§6°žüŽž±MYJž x#Ei^ ÙÕÿuÚõkÖÄmCsD?w¢ñBv¸ÙwÜÂ#MÖÇu[üïèþZ“¹×þ ï< _Õ£'c͸Cj^¹æqqžV.la´Q[€c§7L¯jþ²Î]LîŠݤlºÇŸá»Ñ}A±†Þâé7žÐþxt%QÂ.¡û>2¸úØ\e…ƒü˜á䫟Ù÷¸âZR`fSï˜-ðýlaß“þß{O endstream endobj 472 0 obj << /Length 336 /Filter /FlateDecode >> stream xÚR=oƒ0Ýó+<)¦> Ƶ•*eièPUH0ĘȆHù÷µ±%CÕŠáîÞ}½w5 œ¢cagèÐ/茪9çýu¾Ž˜BrW¹)O/I‚€†9Í•Íý¨²F_øCŠQ„1†‹AÑ Ÿƒ(Ã\iaB€f)޳à»|[<—·MIý“’­üƒ„)J³8;Zå‘$ŽS<œbHqUƒòPcm‚+éâí¶pÀNŒÜy}e•\\ øiÚwBi;XÝ+!yírBºÔx¥¡o£'YseÏaä`!$ŽqQÍ'Ù­í-Ï·3v`]õ³ùQ«Foçýß!zŸÞåæO4ƒòÀzj'í{`é¦E”æKÔ`çœEme> stream xÚíœ[sÛ¸Çßó)Ô¾DÞ°Ä…$¸}ÚM6i:íÎNëô¥Û™0m³‘H•¢ìxúå{p#@ ‘«‰&3/8àùÿppe¯º] § ŠžÍYqöïó¿<úå|ð”Ù$ayЦ<›a†(ˈnSÆ”©6ýôìÙ/¿>{õ·ÁžÎÿÜžQ<¿Q'}«>÷»J_¸ªwêè¯õ²jvgx®ï\œ-ð¼íÄ ›ßŠ:Ú}§n­D-x¾ÜoªFÜ€ÀNcÁÄÂD‡êüŒÓ¹t_h÷<ÜÚ½¾\7êb©N…?ˆªò½º|+ŽÛ½2½*ÅÙµ RWnººï«æ œª\®÷+]©,–íVØßª³ö´I޽­ê¯*ñ¼ò)©z>_#‹²Y‰6ßî¡Ú^‹äÝ‹v½n…õMÝ\ª{²Q|~ÛÕ—W‡õÐùzh7m§šÀÿìwºþò¢WÏ€çº7xìë~­·åeõ£RŽâGE–1!åˆ`&Žé‡{Úneƒ þ”¤óß“4y ÿaU8´¥óeIÁ‘o«Z€Á~~+ùÅ›rSyüŠ’ØD2Ä Ì04¦€ƒ1¸+ïýVu›z§º˜¨O0$>/»²é«•:¨‹Oˆçíu¸ªw}W¿Ù÷•:‡˜þÐê6mÚU}q«‹^™W­Ô³ôvZ±oVUg è{h™.*pÝ{ñë+uð¼«ô¥gºú²žE§[üO“IÄ FtÔÕ óe£[¿.{Ó®k·øvÿf]ï®L|ÞÜNÚg›õö¢¿);s½…'•-ü“/ 75t%«ŽøËæºìjB×V-EáÝ“±Õó®múÅÓöÚ4ö¼z×#I»kýs¹|«=mE‘æì'«{@‰¡ ¹ðè±2g“2;õê$ÝHÛ¾~-¤õ4+FèÇ‘/y.E$‡ê2Hì…ªî%<£Üæ=Fs™÷̨£®¼ÔãPšÍ¥ :‰ˆ’Ž,cóçgœÍ»VY@tñKU%s¶ˆ­*.U×A aûV–ánnËH'tÞUÛu¹¬ÔM“:¡_ÈÆtÕáú†0ES†¡ÿ/#Î&DÔÍdÝè*Ñ­ëF'3UP¥ºzçKk,G)TZcÅÞA轺ÓT"O&=œ%(Z'/ègýPmm’„@fçi‡²„™²ºÈ–ÉP÷s2FËéµ¾ntGk)FÄû¸eEEÚ}¯N†ÞËÞ .¹½…šPA-»vS)‹â§—íF”}S7:OÈûºÅG»N©æ‰âSu—•™g´;3îËY†|j=¡XÃ0!©çÖs9A„’»}ÝOf»ºßËv©¡yhD—Ùàè»:¸:óLŒHFàaÕYY‹X ÃFÍ ûæ.õu]®•aõ®ÜlEÏ‘g­ö±íZî7êd)çªpœÏW" $ÏijJ9E¡®‚Ђû•9]WåNÃ7 èнDàXN÷âLŒ âs[våz]­Õ™ž ˆCœõÙRœ]µõRW&Z/>/äÈ Žv0ÖÒÈ1W\]ÛY@ÂA UºWê¦HaÄ;ú8L¼¨šªAâý&ÿ¥ÒÖN1¬âðDR%1³²Â×*±7É)05í— ØösÑ~ÝÅ%‡™[ÊôR–0<§š×;kg—2 •`–¨žÞüAÙ¹ùAxI¡õzíÉ¥™IžZÊ“ÜÜ Ãt,`¸©›U½,Å4Q\Ýv5Eô“b®/íåºOÖÉݤ„ÅBmÈ™°Ã9Vdt†ï¾÷1&ËMÂsÄ1Ñ” ‚à;–œÆzá˜Ëeç8G«”ÏK²ÏEc[ëY[õ Ë] ‹‚<Í"¥‡n¿n—åºò0þrj!8”¢ –@÷-ç=Q¤£K‘5Sä JY¢8ÏEG< Šh‚Ò‚ÄS´ï/ø!C«²”aˆ!’æß*Cã‹!¢´±DYó0Q®¸”‰Šó<uij ˆÁª-Ž(³#u"ê3¥•ˆ%Êš‡‰rÅ%i¨8ÏQG< ¢X e±9*4ÌQMS|¨œœ€º{ìÓzÄreÍÃ\¹ûâ<\ñ \I»"6S‰Ù®]†&P&êéÑ ”CÞ7JV€%£A$KŽy¥‘¬‡XŠôlX:æY°ÄSTPË’wE(Jiv„£áœ2ÔûŽƒF›XƬy˜1WîðÌ*ÒóÀØÄóx_€€Ô é&1[·ß}’ïâ6Z³;Römç?1ÊðiFæ%± 0ÁO§ìN”õÂ1?$qR¥ zpë!Ö±ñˆc‘ì€Êœ‘pyè‚éfïMÅä4ˆz±ÒzÄbeÍÃX¹çA¬"¬&޽ù ç °§·A¾?žß"w¿¾?å·/“ßpÊÏb9´ÖA µ‰Œxp”ôª!œx3Há8ÅxF³%X;þŸBùIì”oáGO_kˆ½÷ø"a¿/°Ô۵؆W_…ÝM)Æ(‹ƒéô/L ¤3 "dwjf¬Žù*Ó*åccâ{Û,Ò«xÛì˜GI‘$ŒAú,úïöoú®\Æ«žÁðƒNN(ä*1Q¼‹e¼°ÖFús†Ä Ê#9ô6~AÌP@)bf¦½X,¯ªå[Ïî Wdø’E¼:Ön­ºFÓñ» MçÛ¶ð¢Ñ¾Ž6ÞÙÊø¸BùA56?Xóp~pu"Ø FœWIÆÄ£ B/Š‹ëª{#^H8P2§ ñ#BŽ!BcÉ#õÐOž>Bâê°ÄŠkÍÃ⺑ˆçUŠ;ñè\Ó„ â¶›-$lOšO£<(«ziC¼¢úYÕÅ6ù<”/äít cq°æa\mõâçUâ0ñèÇ!Ár<×8¬êK¯Z,A9Å÷ÔÉaºÊÚ>t ÎX(¬y W¡@Žˆó*¡˜xôBA Œ0¦ŠêݶmÄk³åúPÀŒ!’åÇóÄgž%|™wvŠ›XE*Ÿx—‘^…âS~Åy ÈÜ(~Q{¿Š{YÙ=J¢<Ãm<`°B/`¤4!<.‰±^8æ L« ä§4Ò³±>êyZ¥~}8Ä~œãýcŽ'U#½Jö'ýìg*1ì_UëídÚZЯk¡¬Õá…Äš‡!q @çUB2ñè‡$-%™¤n.Ú$ŸÞXH¬yW±Ãw~$$q^%$~H—Ód IðÍÕÓd:j2m …5Cá*€"Ϋ„bâÑåÓÔBqé.swù…‰H)ø×ðýPàXL¬yW³ÀçUb2ñèÇ„ä(¶e6u³ß¶c?vm¦b Æ`æÂ)€E”KIÅØ œÉŸ7i*šêf×—Ýi³îýç:±(Xó0 ®6â¼J&ý8$ 6æÛõê„Çá ‹ƒ5ãàjÀ!ΫÄaâÑ‹.R”§Ã6]ÛT ù›ê½ÒaûS¨/TšÅx~ßœ}µ¿Z £I޵’ã*é'ç˜ËÿÃ^?u endstream endobj 607 0 obj << /Length 4094 /Filter /FlateDecode >> stream xÚí[sܶÇßý)¶O‘f¼q! ö%ã8ŽãŒsiâ´“I2 ­¥m¶{‘wW¾´ýðAÜ–ÄŽ6ñZ—?HZóOžÿ Pt’©tRe“’sR 99[ÜËô§ë—“þ›ߣ&nª§AäçÏî}úežOhFª¬¢“g/ÂC=›M~9ùiÙn7§SÎùÉÃÕò”•'oN™ý’1”! uDñk–g«óm†‚Ÿ¼X­ûÿ²s\Qž û.ô…ŽÌ8Éyx`ÚÇÈ ¦ Œº¿žNiIû/lç'zùï>Æ8ÇdI$å.åi÷lô4×îäppH'FGÊUI2Va•MôHyÄNÉH•œ§³#;`ǤËŽ‡Ù ]L°ƒSvì ”Gì””’vš#;`ǤËŽ‡Ù ]d d§ìØ(ØÉ3Rd¶ÏzqÍØ¤â7‚¡Y]‹- —ÝKÌ2ÑÓ |ŒÉà&’*VÙD§•‡ÔÊ÷Á–¶-#)¼{Èþ’9Ø2pÊ®e ”G-ƒWD°Ò´ŒWǪz€ªjRŽeLJÃì„.&ØÁ);vÊ#v˜$,7è<9¢stúŒcÉqÑ08…,¹AÉ:lveGÔPWrƒÍüˆÍ°1)ÇrãÃapBäà”:å;YNde{«§GvÀŽI9–³º˜è­pÊŽò¼¤dÅŽÉ8’ ‚Zsƒ“µØ dGÔHåž°½ÕêˆÍ°1)ÇrãÃapBáY¤²Cg f'tžÙA*;vÊ#vh¡Ø°}Ö›#;`ǤËŽ‡Ù ]LÔœ²cg §twKÞÃx›VDŽٻgíúlÞÜïí®×Mí:ö‘çê Xqçn†;a)#¥Ì'…ÛTÙeÙFOƒð7ÃCƒ»ng-RµÛƒ›Rìp©J…K^)„Ì*JUÅõrv¿ vÃ)T¯’¹é¿Äo9%0ïÐ.gíY½mìDC»P=iûýÇn©>ŠÏ`1Bó?Ro M °>úpØÇ0«¬ˆúˆSÕ>&B*åbO›ål¾:«ç‘ý¢_KíÏ +ÆèÍíœe&X |8LAè ·fœª¦ ¡è(PÃxÆÄþ\l_È1¼ê 3Ðu=ì¶&¥X.|8ÌEèP)pªš‹„¢ã‚öNïÇE»<›_Ìšc¥0ö™db‰ðá0¡?ãYMNU‘PtDd…žØhøp·+…I)– sºT œªæ"¡h¹È«\}•{r±h6›úå±Rûl2‘Dá ;þĉ@ªvD¤2'‚î{¯±ibë%‘¬JÞeò.=Arîš\cñá00¡}08U LBÑSª*Ÿç{Ó=_˜·›5¢ßý’ª!ì&>}‚X0iIJàÃaBg8²€SÕ,$ …2¥Ú÷†$~ªP–ÉêÁ%»•ÕBÅd‹Š‡Q ‹ß»"U5* E‡JÎIÉ÷½G‰Þ¸û“k,0>&´ègpª˜„¢FpBËýyY®¶Ç;˜],úŒb©pÑ0E(I,çˆPîÙîÍËT¯pîŸqéü‘‡ ²"ËoÝ݇ÉÖNû&˜Eß‹TÕŽ&¥Œ‘lðÄ*°4\¿ì–*„o·?TRËËëº,:§%ás—|™o}ô4ø¶{H}Ùñvˆe—:Û(Õ ÐCÛ̪¡î‰ß2\EæÖ=¯7±•Ý5ŵ5Í´ sÁØÆæÃáÆæPÄNU»–Pt®e™*„~´,ò©b‹|ò\ݰã ã—É#2^0¤À©jŠQeªµ1ÝVõî"]~›z=o›uÿq°m ö@¿Û\fäd¯ iP´“®¸AHÕΠ”¢3¨¬ˆá˜]_÷}ohVö\lÚåËþÛØh¸’„û–ûneG· 2v,ÂhßS¶sÄŒø•«åü}|ë#czi2 Èg"¬Ë6öØg|¼£L;ŒÑÓþ‚ZÎ]½xÞ=–íöêÐl7÷aceFh%¯hìh³ÙøFYÊŠk>p²ÉCœ‚ppà´ãše—:rIŠÒŽw/ÖëfyöþT'¶]÷K6Õp©kß#ŸÊ’0QÝ®jå&SØvîÃá–&?>âBªj»Šñœ‚¤°»¾¾H®à4“ø_Ôë³÷ÿýGEÓnômyb;ä×õ6~ïӽ갤7i¾³¥Û‹Ÿ¡ŸŠá°Ó&¦ï·£3áHUítBÑ5ìŒiWßvNĶMðRrvÜš‡§Ä$K‰‡) =‹O‚#U5% EK ¯(a’”˜a^°%g<•%ˆÌò[:?i³ƒ´8-ÞIx|å Rµ³8¥è,VC4÷â7íÑï§|¯ç°¶õ;óóÅbQ«!ß:ºÁ¦Û›^ÝÄzn3€µÑ‡Ã6†I÷ÜHUmcBÑÙXª‘¶é@fM×@—îŽk¹ê渺۠zÜ/YuS[75µÉÖO Û$—•Q7Q’ÚLXÎy™W$¯dÜÌón²9kÞ¶¶™zcøuËØÇï¾!ÃÌcóá°eaYô>©ªMK(:×DE2^®­e[÷Ù»Øèª$»Ý3—ó&iXç}8ì|èC|û RU;ŸPtÎsID™Ç7“$¶©nÌwõ¼Uýl¼‹Û°¥Å&묇 ó_/„TÕÎ&³¬$•}S àì&ºS±åñA„±Í$K‚‡I}Ú8NU“Pt$t3p9»„„çüä÷é'ѧûl'áµ|àhóƒ5Ù‡Ã&‡)?Ì@ªj“ŠÎduSšÙÕY«<æM7áÙcû·€ƒ¬²ÔÛ¯ïÄB¿~:Úä 9Áí£ÁùíЀèüN‘¥Õ¬Ý¬*Ô¨Øù½h–ÝÃÂy³Ù¤}îÞ8&î’Ï6QH£ƒpÐéÜGŸd EÙ%‚Îl™“¢(Óf›§A}¯ÿ¨òk¾þÃ^-²á`9ÞI`¼ÏEªjˊβ2'Ô¾NuÖ¾i7î…·¶ë^,ºiªç§Óþ¤Ë¥úu4·û1”iW&gئêÃá¦Úý@вKï… ¹)ß¡~åDÊ;ôŽ“@,>† ô$Þøq¢ìAAÎIe_57[-êvy?5i+·™fY¶[xáO^йðÇ^¶8ûp¸8‡ÙbÑ¡RUû3PŒ?*fŒ’ÊN´<¼ì§é×ĶëÕrÑèÒmÞÿ:kÎû꽜õ1ÛÝŽòRt3ûÃZ y˜•¤¤x}8졉I,OGªjŠ¶Ñª$ô2oÞœæåI½n»u?¦~õÝ7b“Ì”ˆòÚN2›‹Eæ£A¿Âìñh¿ˆ“ìÜJÈ9³dAr)¯îÖÓß>ŽcÕm g×|k/뚇m óø†SÕÆ%seA2û§­¯äÜC{vþ-àBùÖýå¬î ý3Áð%à\~ìKÀÕå¹{ øèì„j®yUížÝÃg?iÚ¼{g&û(…Öž–^1@NUPt¨©(ö¨´ßüüÓ·Ožýøå“§±‚›—䊋+—*TÙ©¸tç—¾\= ÂÇX  Ý.f]ÁãHeTR+߹ ;®RƒC¦¸Â©j®ŠŽ«\}ÍÄÕ¹ú¾[®÷ ‹yüè‡XW®¼à¯s€L3׋5͇æ…)LéjÓŠÎ4Ñ¥ÙÕMÓ¥ Ò#pAŠªÐÇÍyþGº„n]uVìžá£o?}òãW‘­§\ 0÷}CîY¬»>v7¼À]œªv7¡èÜ圔rOs:/Xw+õQzßþj°Ž¸hØ =€(Im,çÜ`œ0ZíiÇÓï>xúè›ßG<‘a—Á%Õœ6«>Nkx@^qª:± E—Y¥\äWÔÆw:¿mÏBmj°þúpØß0Û€¿8UíoBÑù›1’UfÑ[óN¿xýU½|iÿzO½mìã’‹SzÒÏß@û@úƒÉøúug€IÖS{f8¾H©ª=M(ZO+uÇgßÎݼë-[-wfÜ.ù =¥bâN-Tëç¿Mê3ê>œP½ˆ¶ç”âÿƒ|` endstream endobj 430 0 obj << /Type /ObjStm /N 100 /First 884 /Length 2266 /Filter /FlateDecode >> stream xÚ½Zßo7~ß¿B½­H‰”t ´gøpÀ$)ÐkšŸ»Iæv{ƒ4÷×ßÇúç®cïzÇ@big$~$E‘"5…SH¡p ”m\;ZÁ ƒH œKžÑ¶ l¯5¨¢ÅóZJÀ«–ûŒ ‡V13çÐÉÚ(Èf DÙ&p ®-tà¢ÀEÑ)€„NËR s( FšuV ^U7¨;Ì èv±ŽNÂ@Š* Á3L`ÅPଶ4t: D²÷$@´ Ãè4Œ1©r1pCGÑQŒQŒiTÑD7åªEkÈ)Ѭ/“I-e¢Š$(•BÎö¤æ D)5¡ÓSÀd)­%ä>¼Â„„÷ÅD¢ž+€s(´ùñÇÖK°ÅøV豘"*Køf¿L±½Û¬$‘=à17 ’s™•Vƒ˜"1«”Öƒ ëlÌU£Ó)HëFŒƒ¦d¯rPb{U`Xß!5›2§PÛ¬ôT ›Òa?jüöЂXJA{ÊèP¨ k*­ÂFÐÉ¡bЕe±Ásƒú%i¨RËLR UM‚ÔB­ÝfõP;þ¥Ð¬â†F9°Ó¶„F  ´ŒURÐkÐ*ƲYnž Á„YŒ™·) ¼uãR0¡+Ö_ð¿W؈`z+6¸hÙ4 “MfÕ`g°iJ™òìÅ‹ÙüÍ×O‹0ÿa¹\­góןÿ³~ÿólùÇlþãêü·Åyxk;3½›Í_-N×á-iŠ9›¶S”ÁvzleŠXhŒû!¼xæ¯Ãüï«7«0? ßý´<[_üšJ::YŸX{|öqqñ—ðý÷3üÛàc;0Œ5²9‡Úc×<‹ˆ­è-ÞÃ5?½úÇøç»ß×ëOÏ?,?9[fŽ«Ïç§‹÷«ó‹¸\¬ç;²ÓÍÊ56,G[klŠX™¦åæQ‹ÄB±Âv(q¬¶U - Þ/ÂN÷\¤£ð¶ÀVSxæ?ÿû—TXØòóÇïž8&kŽ Þw¼Z®6áÛ8þƧÃö¡‹ñó—ç«Ó× Èæ/ŽÃüÍâÏuxw[…/O>,fó¿ìb¹¾€›nJÕ1ÄŒáÑ¿¿ü¸úsÔ,\ ¶³ÙÙË“sÌÅ8ÆÝ®ïA©ïŒWŠ ;óa©¯DEaCû¦6,Ôô4}ôM}Ôô1ZéP-Ø/k­}·ËV¯eЋ(Ǥƒ‹‹rKÅF«ºË{¶10"’î·©nYžw;nlÚྶVò†­Ú×ÖJÚÙÆˆZ´£KvrãTbMv¼~ïdaï#Üöüîš~x½îŒA¼†½çÝüÁ£Vé¶§À¹Už¶xº¹xe_ÇYäÛŠÚ¢€}ù–´ÉwÛ›ïþ||— ¾…÷å[òóñÝ6ùÖÇñ­iƒïúl|ë¦sRÚ—oåçã{Sߺ›¾o8U•ÝjN±#C‘ÿZ^³Xæ=üÞÅ­ZÐÄéxp­§«O_?.Þ¯7|¬în86VÞÐrMûZG¥ç²áãpÝ×:êx”µÒÀت·ÕÛæí¨k« Œ­ {›½uzÍé5§×œ^szÍéu§×^wzÝéu§×^wzÝéu§×GzV[ò–½ÍÞoÅ[õ¶zÛ¼uzäôˆ¾±‹—̵Š4™6’:‚Z¹WœŽ{°„˜J̱ۚ>1¼Ä,H$­ät‰i祖·bær L8Ár^afK³·Ë™Û0©GËI¯0Y¢JÙ®[9fj‘õ†œT"Ì{RÝXý†œ)ÇÌÛåÌt Ì&±ç|…É#IŸf=AÛ*ÆÌ‡®130mÅÔARŽ©\ofЉ¶×Zêa Ir$º^MR@¶ºò‰ŠâXᛳ GÚbÕ·¬ˆö´½äGüT¼3œ@.átFéñÑÜ>x0¸®Q8O*‚y×q§[†ÆqdG˜Î_DÝS ¨•Ýn¢2!Ã(Ûn9¬yÉa‡0~JYLS½[Ó${–Å,4Œe/‘—üžÚ[/‘—ÈËFìe#ö2;=vzìôØé±ÓË>Ïo]Åo]%û<¿y–ìóòå<çÃo%;~£&ÅéùM•§Wœž_ÞHqzÅé§ç—$"NOœž8=¿ŒqzâôÄéyÑ_Äé‰ÓS§§NÏ‹ì¢NÏ G¼ˆ-êô¼b,êôü~LܶÄíJÜ¦ì —±uz^î/wŠ—;ÅËâåNñr§x¹S¼Ü)^î/wŠ—;ÅËâåNñr§x¹S¼Ü)ý`åDEt·o¨.‹jßÒÈ4î ¾ÒuD+rÞÆÓb ÂnîטÚ†u’SÛ jß›!èYÙ‰ÁCÅ©ªOƒy)ç%楜ßÂÌÂÌŠCžï˜H¦0§Åd$…éÆz"«éU&-Õ*²š–oèñ¬ö6-fBö$7t‹°­L“êVúÑ\c&Š¥”i1á‡ìÛ´KL¸:d©ÕmþmE“€ endstream endobj 696 0 obj << /Length 4576 /Filter /FlateDecode >> stream xÚí][w·~÷¯à[¤4Bw oiŽskîqrÒ´e(Úæ)E*$'=ýñv,–‹ÁŽí6–I?X–Æû‰ó}˜ .KgûCg¶™iΉf¶¸yÔ´ßÝ=›u_|ûñ#쮜áUfù—'ÞÿHÊmˆm,=yš?êÉõìÇ‹ï7«ÃþòŠs~ñávsÉôů—Ì\,wû•ûç§Q’^þôä³GŸ$$ÉòWò–£ßI«„ Åüïd,‘ÜΔ„rÑý^yÄ÷?b3C¬R›5D(÷@ê¥mgõ·†ŠõrÿžûE¿¸ž_ҋüûŸ&ûŸ¢!’¹_§ý?¾¼¢šv±Á¿èôÏNå?ÑÉŒ&†ò™Ò ¡N0uJ£õUfÞÒš³uüÈÖ÷ÜŒ­& ³Xä`]EvWÒ¥Y‰œ?‹"ÙÞy‘ÜÞº>Ýîn懱d %FŸˆd ²ƒ“°d÷æ0Ù¹ß9ÉÆ!'²+Èžla !ÐÙR»¿½¼ò¡l±òab1?¸ˆ6Áˆxê㋽oÔCvË`²† Ì|Yá›èƒa={ÜÝ„lôt7_xšâ`u É^ÜÝ,w«Å|]¤ÂšÓ ì#—3"Mnšòyg}•™¹>zdë< rŽdW€=ÛÌÆB6xz·é؃ò©ÿ›]ܵ%Ɉl͈ô$³84ºƒ³°Ã»7‡ÇwîfAÒqȉô ²'j¢?"= ñŸ}(^­CÌ^m Äs¢”9åò óÁoØ1ß›Ãc>§¦ é?.V÷Ò)«P|R­îCHz¾\ßò³—šx(æ_¶bКH-fÒ&n&K¯`}•™5uôÈ®h3F¨û)8X×Ù¿EQ,pˆ¢uàá#»O ¦N$rF5dE¥b$TfŸ|õÅã.W.7~¶þëj·ÝÜ,Ûj)Ò_/¥¾˜ïVóŸ×ËR‘ku#öžŒ"ˆ¹öcy‹Æ0k½+œa0c ¦çKºKc,óÔü~û|¹é虇šç¦-pׇÕízÕÍP:^·~îb/–»ùa»+ðçª,iþ˜(‘>–žÞ&(÷gHäDÒr9;1F®;èO1ÙéÓ›0½tclÈ\Î÷w»åY•®õ F6†4Rc+˜Ì¬`¢MëJ j 5RvCYXŸéBÕ¼Ú,Öw×Ënœ†d¡åè¦A”Ÿy™„ŽèNdèÈÌÁÐ1`ˆ)HHä(‹²—…o,Ëe±Ú<ë„1¿¾^ùpcÃ]è³»]Ïóî› z¨DËÿW|‡h KKoÓ’{ˆ£‰œh© {Z´".XGV¶7·.±ú2¨Ú]Єºì9tB nB†æÞŒÌ¹ß9H552 £z¢•r¤™Èt[ý.Ûb·†ß2²jˆbæìÂ3$…àH¬zsX 97T8Ê¡ìõ %QBéa3Ïãðͪ4r3/q†åYt–÷Þæ=çøHàÈ{Øóî²%U¼Êûïþ»óÝu‘{Ëα8nòߛÃìçLÀì##û`Ï>D ’@ý·ÿJµò¥&JٳϱTë܈-þ’5\ûe¼°Ô 6Ia[œÊ‹Æ}«ƒý3‘ÿüƒ/?~Ífš«%½çÍ4nÂÑÅ}o òL&úi8ØÈoÖt®-1±Ióù‡ò—ô ÚpÒ¨7 ix[6þøS3»v?ûÌÏš½h-ofŒhå«ýõì»GߌÁh£œNìñÃ'?|ý¸Äò’^¼¢X#”ó7Ù¹‹ +…ÞÖBî§ŠpÈI d/e ;‹ÖËͳÃón‡>\X`|¼y¶^íÃwûÃöf¾û½4çæ„š7BLÈžñ!rf&äÀ„Œ޼T€=/Ò£ù/ßÿµ°¡Ã fÏbCGô–ìÞ&;wÓ¸/ùi∾Arœ™ƒÜ sŒDŽ#{wLI"ccî L÷.ŸS²°)džM9¥V¿9ËV?“”(Š^àËÌÁÉf´©O6±ÀQ$`%”‡JƯä½w4ÙLk>cêÑ'ºà qœ…å¼7‡9ÏýsŽŽœW€=ç¼!JòÈyw"hëÙü³ãz0Ûàœ4:þ«qD÷uÅ;î14A‰{úü¶Ë ®ýÝχp,i,+ëdeßÄÑRˆôà-,é½9LzNx~ I¯{ÒYCÜç ¤÷ÈNž²Á¾õÁâ98ËsoóœûÜA‡ŽTšøŽ¬”’5¬¤ŒØò¼…ÈêhQFÒM¢é„Žn×SGIÂuÚpö§W <®"–gÑ ‰LGß#µ“™ƒâÐY CHP6˜ôc(‰ýt@>ûõ¼;è\¤›&¸ï¿jâb§vPNçt¬n’5,›ŒÅbÌÁ!²:ZÒŒn£õ˜³ß®WדõŽ"T¿¾l„µ'¶§&ñ`Ý_Ñú*3ùìø‘å‘Ê_OƒÅm'`,½rö§HØ`]Ç=zd¹G ”& ÛOÀ|\͈‘ ¬ë¸G,¯ì ­‰ ÜYO |bã¯:@â`]>zd·ÓjTõ ëdß(,r°®#=øÈVËÑC)XO œÖ—¿Ó<¢uùø‘åœ8å–ðÑ#ãv=ˆåÔ޹…[WO4!›•:ºŒH5½C†õ;dÆ·ôr%M£Îµgô#Ⱦ`föìû‚HP6˜ääÂUz…pìïã;^XÿŽ5žÞ±ÆÀ»%ݤÕò·þ`WÛÑ5Èp‘™ƒábàíñ»ÛZ~q¨-¿Äįöoê ‚º]-Ë«}¸Â!¿[¸³Ã"ø©œÌM,Ÿ`‰íÍabs7ï o‰Å¡¶ÄV±ŠOMïqc’(ùr[ÜPyAܧ״ü!ˆ¨ƒû±±¿7‡cÎhq÷”M& Ɇȸ¢‹ý[?Q}qÙeâåÁÆð‡¥Ã׬‚ß±ÚéÍaíäTËP$(›LÚá–Èøºvß­l[•ñž @ÛÌ,] ä9¶.£Ã°I§7‡“NÎA¹u‰DmY¯ &Ö]PñDŽu_þVêiqÖA~¯¶Û-ú!zs8BäÔ•+O(›LZqÀʲ‘VºãX›ëÐÅþ-$žMh’î‹Ó óO>!Žƒ°÷æ0ǹËËYÊ&Ç"ZŒâÁð'¿Ž5¸av<ËÄ~r»˜C”>ÂþÞü¹ÛY¹M€Cm‰® F¢ýMó¦éó¯«mœqì–û»õ¡ø:hKíÙo(‰žCÒŸ™ƒôÈ M‰~$ª§¿†˜è7‚™ÆùêfÕ^i»Ë Áîò]à Dïa%ЛÃÈ )G$j+ b’€§3M {ûÐõÝâVw7‡ÃR°Ä¾‘KÝïÉÒè>d¶ÏÌÁl?`¤,(+–7.0µc¼èÌ¥A¿Üm«TÚew̃Jñ×qžèVÓz[€QCÐ$cX­EE86‚* ƒjCxLIßb„±›ožÅwø+#}•8lGçEdw© pUmûÞƒ7ÿ¾ˆ›©bă ÷™9î£MA$ª'ôqøž賓ý«ÌvËùµ_-ËÝ$¡ß-ø¼‹+ /Vq3ùñ1~ÙŸâsbQ÷;@®Ã  7‡³Á‹ë HÔVÄÄ¿põ{|#”ïïÅœŸ/Â\ýí'wŠö•ÑYÈà™ƒá{àÿâ^T$(›L„»0ÚÄwÒ®·ÅI kØCoïy-:+ ÞPÎg9bÔ@ÿ ´×[ endstream endobj 609 0 obj << /Type /ObjStm /N 100 /First 905 /Length 2281 /Filter /FlateDecode >> stream xÚµZ]‹¹}¿¿BÙ]©¾$YØq^0k?$1~p¼Ã²d™ ã1lþ}Nu×ô½†ÛK`Z`¬¾=Ò9R©Tªê*%N%)IªÕÐj"&´–XzR.IŒÑÖ¤m ¥dCÐrêÅK£¬©)'e‰[ªÔ0Œ{ªÜFªZ.%U«@—šj„ ¥Úx©Ã(‘D¥Y0£Úõ¤b‰hGZ"qrL”¼óHd˜’jIÔ0Bµ&êŠÎJ‰†¡³rââKPI\F©&æÂ'U_lõQ-±/]µ'6L\u$n.+‰;þSLŽGÃ*Œ’”RÈGêÀp“$àÀƒ&Á«“š%Q©5ÈËUëIšú¨‘¤££6ˆx4Œra•ŽÎŽ^‡?,’wÑ/2òŸ%ÓI›9^/#Õq0Ë#À^’-€½&£‚áÛǨ˜·‰o\—d¾Ú5™)¤Ñ-Yó=ÇžYwÂޱ龃ÀjÅ'6JjäƒC…À“š¸vŃù<8³J»œt@i´@†Ð n®nèÓ›ëÛ°Ô;6O}8ûèi, ¾Q} 9¸`¾XÉêo( ¨àÉ §aÐßGƒ¬¢s÷uc–cÞ*t¬Ôꯠd…ÈßAí C­. ¬þ\|3¬B… Dpre­¥ƒÎ*”¸ ü…¦hac€ëôŽJΙT¨=—£%>ȇ ó0òSÒÈQÀÕ§Ó«W§óûÿþç.¸¿x:ß}ý×Óòû¯¿Þÿûtþñáñç»Çô¡à¸–§óOwŸŸÒê-wßÐVrH.®pmdLý~H¯^¥ó»tþËÃû‡t~þDü]úþûþ½S{~Ÿ9­åQe.§´Ü°7§ZnÜnsÊAœlÙUvãÍjs)I³@É6J–ÌosêAœUòµg*“—Y8ö³R.<•v9w¿J‚Rdàýíeòx!ç ìVv»INîÙxÜæmÙ½”…ÏEÜv.L;ˆ'¤­|8¥Þ'µ>\–â^ŸóádˆÞvB¸ć›rÔ±òáXô>殯*Ž^_ùpE2õ)Çpã+’ÛýôwfS×'=o¯\™Ë×9›»ùäQ@Í&<—f̃€…¯×\úŽ~Öƒø`Ât§ûèJSOâ^ìÞªˆ]óÐ>Wšð¦„VíDã=Y;n…8ÙÝK°¼”¯-x`=ÛÊG=S»­G-¯Bœqø| mÇXK9†OÆÈ5´¥ÀÅÐ)·ûÆÖáöâᬽÏåk-ûœ…¯ƒtŠ›ÿ¬,‚øWƺ{ÒÀ™Îpñ·å!ô¼ZN1ÉcÇR¦,µd³à«ÁÜ> õ Ë)Å#µ'B‹ÒæzÜGÖÕ1cøŸ;~ËQ÷ºd£­‡¡œCúÔÝcø¹RWKÍðs¹ï|4iñÁÏíqñ1üܾsøhÄ?—ƪ2Oõ«™ýÃÓêW3üÜVhªÁ„Ød½ˆ˜%×¹QÃËõOº ¼\mc’©^M'âéÜVKÍ•¤´áô3áò! :ø¸¢S 5ÁÅ´Z‚‹ÛǬ͋åáî©e=z—w>N´ƒèp÷xºf¡ƒ‹ÛnïÝAšIŠ˜„×½#+ˆOnk&t+PA|iëI ¨æà¹upÊzЩ ¾Ü'd§k—í–­ƒrßqãk’©¯vºvì¥ò>Á><õhœÛæß2øcšj=7N_ãð&SEL»^íÕj®<—MÑŽõVEHkc.{R`=UJ.eò‰ a-N,2ùD 5õÁ¯î]æò•’YC;áW3Í 2×ûnuëœI®ÿÇeô:}°b@û)ÿþ¦%Ý\Òý×ß~ûøÜçÍÃýÓ‚ò^f_û¾á gSâ‡_G5ž;ž)ž›¥è[uyêùíãÃçww˜z:¿}ý&ßßýþ”>~+·Ÿ~¹;ÿ ò»û§/ÉÆ2M_󗇯Ÿï¾,õË«¿Ýýüë§~_ãyß¶‚·Ÿ1ÖSêk¿E¨_Àê™rŸ‹'Ê×V¢Õh-Úmv,­gÈ×¶FKÑr´+ž'Ç×6úÕèW£_}î§ÑZ´-ÚmðRàQàQàQàQàQàQàQàQàQàqàqàqàqàqàqàqàqàqàqàIàIàIàIàIàIàIàIàIàIàiàiàiàiàiàiàiàiàiàiàYàYàYàYà…J›žžžž^ ¼P Õ÷ï¬kx-ðZàµÀkׯ^¼x}Åûøòl“-áé%¯oKˆ:'àß8¢Ž«¬š§cúعÌè N„©"—©§dd'Úჲjž’vÉì{Zf°ÌÌËš+õZ²gJöLMù°-³^r²ž™·¥úR6ÿ¨èåXî×yæ>,üØ¥àÆÊÔœþFyUã³KyÐFzúâŠÑF®Ôæ2Â¥tu©ðé;5ï¬Ö¦^qz)ÌŽvPzÝã¯æÛ(ëõR§Ä%g×ÌrÙNˆ/ë˜SFð\û‚x¯ÛU½ ÎKß)Øâƒ(Í ¥—Êi´«µõ J˜q÷6J„a½M)\Ø(…qs\m¦Ö¼Sžq”Ê"Wõ=‚`lìc/MÀmuLÁÊU“§d®b˜Õoʘºåbsb²­tÊZ¶z]®¥YûTýñô×5Eþ‘¾Œ© ÄbÙ®œVÁªÛ¯à™“áä•‹1ðoõu'kÌÕ²Woò¥¬‘™§ÕQlœÕsHWœð€öüÊ£(½4¥^‰Ö?dìåtÚN¸™ùbhy)QÑ9œÏ^"zuU“§¶v> éQ5†ã›B8¯sœT·QRÿ¦H•pp¸õ?ÎÃüýUk endstream endobj 744 0 obj << /Length 3027 /Filter /FlateDecode >> stream xÚíœ]“Û¶†ïý+tWmÇ‚‰o²7Ôc§É¸©Û]·ÓI2SZ¢×œêËú°³3ýñH„$è4NSïj'ŽvÏò¥Îó8ÒQaþ££ªiÎI%ÊÑtñ¤è~º¹õÿóׯŸP71“(ò7Ož½”rD Rݼ‹/u3}?~³lwÛ« ç|ü|µ¼bzüñŠ•ãf³mÍÇ §E©Æ’]ýxóí“7AI2†¼%yrOZ¨ \(f𤋮ˆäÕH•‚P.úûº¶ŠÏ^²QI*¥„ +ˆPæ‚Ô\Šñ>jÛìæ««‰¹ái=oÌí >~·_Nwöæ» ”Ñ4#’V涺¿ýÝÕ„jÚÿÃ>Ñó¿ûÒþà+5)))]FéD>z…w˜âì_²Ë!'Ê•&«°Ê.:«l,«dE´Pú¼Þ¾ïYÿPÈâŸ=hNn–hÍ<ég§^D¥ÿýoÌehÁÕºsS³©w«Í©ƒ„ Šë‹pPň`4dþÇ>z…Ÿ:èè’]h ¤°7PFØHT„•Ìh5ogûmÞB\!ÏYHÿ, ••x ‚Lã²5Í›&›)ìM“¶¦á¥éò´3Íú}³ižZƬ#Wóý¢é?¯Þ%GcÊ‹m\¾°£Í61 68åÀ=£l¹›áƒK_b|Ø×WZlúZce*¦Ü’‘¢”7þ þÀ%Û áp3ª@_ …½/2ÂÖÔ˜²¬œ/võæLbŠ3"9Güö-B†‘é!: ²‘Ë?ÖFC8l£)<¬ …½2ÂÖF…6Ú~ž³«w®wy}EÇózé>=·}M5^mfæÇí2D]ßmwÍâiÿáùÝõ©C¨PÆZük’ûvXHC8 )N˜!!…=¤Œ°$+e>ú¦¾i§»>ãS;I®lPùIòIúUIÌŸ_ÀPXÀåé€!4@ ƒAü‘ªFÕÒ/Mõðïßî6u¿¦à«½Î ûníäI /ùÑvy¢ÂaÖqêK6RØÓÎ[ÜZ‘‚S{ᦆõrÖŸµ?”›ò9mÜïz0È”–æÛ|iÕ?DÑ}},Å!¦g¦ˆö3–¢’D*}Lñ ))Í5ÙvÖZ©EÈÚ.z…ŸÂ?º$¿d„šI7RØEç….Ù ?…¦©Xa7MÍ ^²Ÿ¦‚% R9ø=£lýn¬K ?MÝoúšäέ‚»òqçV,Þ$ÊD%H)ÊË™²BÝŸË#¶ûÂáî/FÛ)ìí¶vè§Ë´Mm~Ôä§ ¦p‘L]Fáâ’…e>„ÃÌãüÃ̑žyFØ2ç‚P-æí<Oµ~I¸¢­ß¥ë„!vBLvRØ;!#lÀ8Ѿ‚½ë樻ú§¸òó•¾¢­wõÛzÛ$*×¢ Õý˜¾@ã{Ÿ ìð¢áÑ=Ê­(@ž(Ù€óP6¹!.*Þí1uÂ7ù qç¶]³÷~ÝzX´ð;ûÛ4xÍË{ ^èŠè’cÉGá zÓvbTöð•Óô… rOi à¿Y¶Ó~‡bæÀo÷ëu_š³K.U•T^ÒZ²Ë%)¥B{e‡½âbú'#ÀI/R9x%£lú}ÁÌ0^¹ÎÉvð¾Å/ ñõ¼ñ«V¦÷ß¶ËÛ¾÷OíV˜¾† óàߟۭ¶>R×"l0Õ¦©góvÙ$®h;¶ZÎïº-2Fªÿrǂ…>„ÃÐãüsp# © g”-tÓ[TLC7­ž$T˜Ÿ¤ûxÅÌõÙÅmR¥ŸO#²ô‹ÂÁÒï€ ¸]önÈ[7ÂŒüØ ÍOë5ÄïMý¯+}ñõ¿ÏÖC8l‚¸©ˆö&ÈpÓWU™7ÁÓ08¬çí´Þ5³ÔÊuE ñÅÔÿ@Oî¿.²'ÂÁžü ƒ”BØÊ[NÙb+¹)öÄ1¶y»ÝõCu=oÍ4Í“›5}÷¾4HožU÷¸„÷ùÀrÂa®qŠ9̧¸f”-WÍI¡ª×DWÌív½¸ðg‡PËwž©K/Ö&C8l“˜¼„T6É([›˜‚LòØ&ËÚVïMÔ[7é'ÚÍTQ‰û;}ƒèº¬`éá0Ý8Ñp™ŽTt3Ê–®d„Šhnæv$gõÎà­ýŠŠ°Në×n¶«e=?Åmt™¼O6`—,à!çšÁͧg”-`A‰Ò Øàõlf'gæ×I´PD–_öAuÉÀBÂa¨q~3PqÊjF™Û©–¦‡g‘b²®3üvQEm©.YUšiü=n°’2¢KÒq樗‹žDá'>¾dÏV¥˜!Uí³œb`jÆb…g:µKæïëåm’¬m¨šêûÔPCæ]°0‡pfœZ&Nµƒ™Q 07Àù Lú/µàA •—»áX¹Ìañá0þ«’øqªþŒbÀof•Àÿa¿ÚµM¿ý™¶€äêÒ×?%ÕfXb!‰çœÐGO¢ð„/™^úꌀegƒ„©Ð8‹Œp¸Tbžö@’ç´åÃ~ê%´S—,lÓÂá¦çèùqªñŒb ÎMùÆé)qw|õ¯ýÚ?ô´{ïöC“Sç‚ÝûãyPËv9¶ì!nÙqÚe’3N” œ™¯Sœ×m3µkÚŸÚmã—Õ–M½I2Öô¡¬Ž„çò‚mÄC8܈ãTã7Nµƒ›Q piAâ-«ÀvÓ.Lmèö«$Zå\_ÞóÚUŸ9,ý ÃP8J²CËòEA(«NÑû'ö™?wÁÎ]$¶ª •º_s0×›º,`;è!î ãÄ–IŽ8QvFГ”võ9O2UoIs»5¸o}>‰Èö…ƒ ú€ MÕHU넜bp‚®Œ[ü³jß}ssíE?„«q!ÌÜ«ìb9ëF‡ï,F3óËoG¦›üSº™¯¡ì¦Æ|týä/ U¡»— ¨¾øîëWß\ÿ±·–ãífµ\¸É`ïÌWRëM[¿§}呟u ‚ìî y‡!Ç_žë$dœj9£ «Ò!†üò›W/>3áUWîÿ}„Æ}+,š!F' @ƒSíÐdY|:BóêÏÏ¿zõâO_½þ<>úÜ ʪ»!lV‡p8«ñw²ŠSí²šQ Y5ýŒbn÷á͵;~ïÏë³ñë£Ãú¥=¬rR?u:Ÿ®ÕÿÇõ}­à¿²üˆÂÁòã [éA'ÊÎ<\„Gx’Çàì[Òkì± qô\2±†ÂaCÄ|Ò†À‰²3‚ÁLÓȼ!ÜA¸Ä2 éª‹x]Säò…e>„ÃÌciæ8QvF00§ÊøBœaÞ¦7û,4€#ç‰5Û!f“6N” f(¤1Œ7ÃÍËI™8LPš^_>>j÷s§«.ÅØÂn‡ »˜O.\ U;Ÿ)­²N‘”Ž„VÃkåþ–>\5š˜à‚» wvîm_Nø…çÕ~·Þ§k uI[Íù¾Å$ßždCv-C4س¸ôû€¬ pŠ,¯æ»!ñÓ9gûxW;­ç½ Þž{œ”„'+ÿý˽KÔxý>>í8ö™Å#DÃÆˆP%§ˆ8E–W Æ”h]EÎXÍ÷Æ‹æô¥ lüby;oý‹‹§ûínµ¨7w©é¡}NíW}w[HŸûBX C8L$ÎQ²@в„ йSJ ꔿg;w7;ùô¾õ“öíºž&ŠEÃDp~ñzÁˆrÄíËÓÎ÷¯.z…Ÿúäè’Àƒ#…™þIŽî£Ï^2ýÎ _¤ …}Ý“>ºd¿L_¤šRÕ6œ¢ï¯¸} švֿͧà¶Þß6é׌ì±RÎTÃ>¡XW á°+bF§/<î\Sí\q¤˜î0¹©O4u[ÀÿÀTÃwv°«»W“º=¿¶[a¶uQ³YÖö‰«ÔãíZ&.j‘÷lzRsϦ_R³¢ÿ´‡—‰ endstream endobj 699 0 obj << /Type /ObjStm /N 100 /First 903 /Length 2209 /Filter /FlateDecode >> stream xÚµZ]‹¹}¿¿BÉ‹®êCU˜…Ýç%³öCãÇ;„%ËL°Ç°ù÷9Õ­î;{gC¦Í•[uTª•dÜRIÆ=ÕdR ¡¥$êh9© ZIÕZMÖãwM­t´–:Ç8OT”N&-ÅHHd‡(-‰¤á¥DÚ!D9‘Åh•DNÑ£‰GOMÔ1ÂÔ—Ã=1$kKÌÎèé˜cÓ՘ ¾c+ñ'`bŽU·˜XÕij´Z“”P©ZªÀÂ,_Ÿ¬¶$Òbx‡Ö£¬$±‚ ëà„>Á7X é!Ç4iA·YMJ±8fI¹Ý<)þïdÖ’VŠ;Ö1ô’Ô±†¥Ñ†ùTÒkìXãâ@wM•挕;†»¥ª±bî©VÆœWÃ*æ–ÁúY+©6hiR혂Å µÐzB‡ b–c:L3Ĩ°lm'ƒ©¼x´ã#]by[ÀX ôz ô^’‡e¬Sr-:'oî‹›x_¥¤FÅO^(5æèᄵ„0m [yÑÔªE+&îÅRó=žZ‡M½´Ô Ô±èÀ4©Àû¬œœ(uñèáÔ5æB’º•èÑÔ£§¦Þà§NðÙ N[`šðA*Ôâ+¸má˜6—pé"§MðEL“'Ø ÃpÝâ!Žá»¥Á)þF¥Ãe_þ;¤ƒ¨Å؈ î16‚M¡V5¢…ËéÕ«Óùý¿ÿu—Îßßß?<žÎï¾ýýqùý§Ÿïÿy:ÿððå§»/éCA°–§ówŸÓÌ3+fÇÔÐ"PºgLqbYzÃwß§W¯Òù]:ÿñáýC:¿N¿³ß§ï¾;áßÿ Ù<7,.Ï6Ø!©æNõ*$ñ 1sGp°"!²3ÒE$ˆ¬"W1ù =wÌMÏg0Å_ˆ9ÌIUs‹80‘þ2œé:æAªYž¨IµÄï«z5VDmÖDDdÒÚ¬¹anj>ƒÉ~&SŽÝgÇäžë\L¢LþÄœÔ3éus’äB­è³´lv²£e/™‘E7ÀÞ óu[ £c#$ƒ¾#bÖ¯«øBC‚4 ƒ¹°ÜcÓç` Š”ë3²úWk®°ágšëTÝs*˜ÄV%×: ޳ÿÉA48ål4%ÕìÚ1 À_8A °ëÚµƒàñ d+—|c»8 ­`GªÃ-KÏìSÝ^’›­ÊU„y“™Êá *³Z®Fªiuªr&åC9G¸ëT´ê¹‚ž.hVsÑ6N-—6”«×§ÂIÅþ>L‡ô?3ƒUÖ'ŸÔ‚Iæh·f°J’]‡íÀ*p’¹¾ÛÉAxØÑ[êrŠÓ”ÝuÃÃÁ-ã¸àiGÈó ýø ¼Vè«~ÚVÍų¾0ßÏ=ã ;Õ~J–q~Yñ8ŒN9·hå,È`8,çŠÃ¹Vd±x°%Ÿïj±ó94”|ñ¥:âÔÒ*]a?­ýYÈîGÚ$—þ$TŠ= I/ E³íH fÅ1Ÿ@+žÃäƒÒÛŽù–䃲·ÄzR]ñJ â;3{ F«zBRs]½zž—¼””Ü÷:^?h9+x ¬ÙT¬Eæ™ÉÒDÔê!áH™zz”a=Å)éÖ^!©Ç–[ꉂþ^·^=.Êwº'aÁ¶Ø§®f,+-ôuש©…»â¼2Ô«)|£ÎTÂCê&Zõã^‚ÕLÒo5_ÔÔÈVý¬x&Íf Dƒ³ÏÌœQÿŒzÀ8ݨ3s;¯–Ì+ZšÒõ@?(m’ mÖ5ÐIƒÆÜPî(¸‚HX=“pZjB¿]¢{>X¯÷c:ÿå¯KqëÃ%Ýûå—Û7oî)ojMmýö[òñçr37þná°ãï¸i4]~@Òùí—‡Ïïî0át~ûúM:¿¿ûõ1}üo½ß~úÇÝéüÞÝ?~Mqû…á¡éׇo_>ßE¯]¾ûéçO?<üº.GPFïQyûé Æ¦(Ð,ß-Kù¨qs‰k°µµÑúhÛhûÚö2Z-V–6n¿Ö–FË£Ýþ_G[Gk£õѶѮxqçµ¶C y4äÑGC y4äÑGCy<äñÇCy<äñÇCy<äÉ'Cž y2äÉ'Cž y2äÉ'CžyºÊûøò²±1–o«âš[V¹åÇ-Ê.år u]½qœ¶ƒ ‘LÊ¥|-×gÞ 8RÜïzë`àIöÄ– Jô¿¤´ ‚*-¯6ÈØI§št)®õwHì¿4ƒnµã ¹‚4¦^ûŒiGl‰'ýÈF3Î;$"¿Èe]kcìÅm ¤#ÄiÌ$7¾ÜaW§ì7J¾í˜°Ü!7-Ÿ¤£Ü§JÆð‚ 'ܧz¬2NL—[ÁâüÆ¥ËQWžD-YËœ°ÜlÉ´”wHî¹ËõÃ…–c0Õ¢äbKm4ùz`’„yœø‚ ã–˜rPœ(νtñ··*ìí%Jšû“‡;èÃtʳ‹ ™<ÈßIpZ㙼 müäDÛns^ZÀÜ1[$¹2 nnsÞlˆ.¹> stream xÚŒ÷P\ÛÖ ã®Á-4Ü݃»»kã4î.Á-¸;‡à®ÁÝ!HHpwysî=9÷ûÿª÷ª«º÷˜>Çšsíj*2e5FsS ¤È•‘•‰… ¦ ªÍÊ`aagbaaC¢¢R·vµþWŽD¥ tv±vñýËBÌhâ –‰›¸‚ @Y7;+;€•‹•›…ÀÆÂÂû_Cg>€¸‰»µ9@ ëº Q‰98z9[[Z¹‚óü÷@cF `åååføË bt¶63L\­€öàŒf&v53k «×ÿ„ °ruuäcföðð`2±warp¶¢exX»ZT.@gw 9àwËE{àZcB¢¨[Y»ü­Ps°põ0qÀ;k3 Èìâ2:ÀÙj2ò%G èocù¿ ÿ!ÀÊÄúO¸ÿxÿd úËÙÄÌÌÁÞÑäe ²XXÛJ’òL®ž® ùoC;°¿‰»‰µ‰)Øà¯ÒM’"*p‡ÿéÏÅÌÙÚÑÕ…ÉÅÚîw̿Ài–™‹9ØÛA®.H¿ë·všy÷bþÏáÚ‚<@>ÿEÖ s‹ßm˜»92k€¬Ü€2âÿ±‹þÈ,®Nn.^Ð ô4³bþ@ÝËø—’õ·܃Ÿ£ƒ#ÀÜÐÏÚþAòq1q\Ý€~>ÿVü/Bbe˜[›¹L–Ö ¤?ÑÁb Åß|þÎÖž=ðø±X~þy2O˜¹ÈÎëù_GÌ,§¬¡©¦JÿŸ–ÿQŠŠ:x|9ÙŒlœ¬VVv^7' Àïã(›Xÿ§–?¾2 ïßå‚yúoÉîÿ™šÿ,-àc):€' ù3èú,œ,fà/ÖÿÏãþ—Ëÿ¿)ÿåÿuÐÿoE’nvvéiþ6øÿÑ›Ø[ÛyýÇ<¹n®à-Ppïèÿšjÿ^]Q;óÿ«“q5ï‚ÈÒî­]$­=æÊÖ®fVËßrß‹fg *;¸Xÿ¾ZŒ¬,,ÿGÞ.3[ðõážÉ¿T@ðòüoJ ™ƒùï-cãä˜8;›x!±€G‰“àà ^Gs ç_S `f9¸‚]àæüÎH¿O”‹À,ò[ô7â0‹þAÜf±?ˆÀ,þñ˜%þAÜ,fÉ?ˆÀ,õ±˜¥ÿ v³ÌÎ'ÿó)üAà|Š8ŸÒ?ˆœOùçSùƒÀùTÿ p>µ?ˆÀ¬þ{×øƒÀµhþAàZ´þ pv/Xgòâç3qÏ‹µ‹ípñ¦ØÝìÄ Ö™9ØOü¿’ßÏlþ/nøÇ\Øß3÷¸+ð(˜¸Xý#cÿ-ò4³3±ÿWpi 8ªÅ¿ào¥õŸ,ì¿¡û¿ÒþÖ;¸9ÿ+ØÄò_LæŸü`2­¼­€ÿn ,³þófû/æÁî_LÒ¿jgSò''Ø^ˆéÁÝ8üÉvvø5¸zÇ?j0…ŽàrøC2¸G;7—? €ß.íâ?'Çõ[èà ´Züá|ƒþ-uþßca3ò/¾XÁíÿ‰ÏùÝÿÅ'ØÜ|Íÿqgû|Y2»Z9ÿu$`N\=þå¦Åí_̨û¿ ¸L7Øû_ÉØÀá½þÁ„yÿaÉèüwªÿ¹pÌÜœÁ¯Ý¿^ àü/þëzÍV—ÌøCmêC;ïêDˆ<w§ç©vµÒi}V»ÜÐàShk³ƒ¿9߈¤Œöc¬ïHÐ\¿ÿJúìsØÖÞž¤ÒñèûdôQuv·iewhºøP¤a‘˜Qýýžï³“¯f-td,U¾“šr!ÖÇ)φÁе‰°¥]•½Z.9ä§Š9ÆXý O T¦9‹øäp®Œ$toÎ<Ñ®oæßäM¿’Ê~¤Gò;Še/ñÑÝb‹»_ôÞ¨Rgsé% $ÐÅ'¾~31ûÎGôgª,Þ²OYi¼lXt©‰áR‹Pº‰Çg²žUŠñéïãø¿Œ‚Ä*ÐwfÃâÍT¶©DGÙ©åuã¿Éoàþ4÷ÌjT„ä¢Ò½ÿŒë]½í"“íñF{PÌ=4 þj(°wÿjkÙI}×-tżB8—iÃ'Û‚—{Œ¢`S+¬ÓK>Ì5}# A•bð0Nn*ÊvE–P‹®MßUáh}ºÆ‹GíëùÒS#e™mýïZŠLb%4šsú§Š{{Äù]ý­ì˜h° "ÂvF.}å aÊ-·ÈÝq^j^eß—zL·0'ŒyÝHã†n”·GêÝœ—håݬÊãƒçFħV Úû”¢ ?ùá·´’Âöö. ý`,›òÖ ›\{Ë^µï³#]â⽫µ8 ßAжô}’)yÇ̳½·È?­‚&3ø€®@×J&§ÜÚBfä<½÷¦TW $mo€³NURßr-ö¨Y!$®(jy·ŒæbÐ3ìÒn¾Ök[–ªjS6ïX]Ý,{_3<‡ÐðÏ A£Á2úöaŠaþ ŒäƒÝc”›|}‚g y”,g˜•%˜”Î ¥/¯þ_7&㲪{Ñ!¡ù!Ciƨ¿î‘¥õY|A}b.1ÓJ O~&(ã {P¢ÑG/ mŸÂ*„ù²:דùDéx†•D6CN²~ÉÛ£ äÖ½ð+Ï^O0 ?ô~Àׄ×ËC$„³obì¦û¶Ó»ÅQŠM¹š¬)®ËX›ÚW“± õU.Õ±©夰µ¹À_Ýí¶älIé°çcÙ}±¿IÖ;nŽâ}ؘ_ës=ƒð ‚íôãš’xf{ìƒìuãÃ<¶ƒÈVGF°Çpv8û" „„o&™»MÁ-7Š½Ã¨ =|gŸô2('óÌùf¬Íp–2lžÅØ~Op:×ÈÇ_òáÿh(yتîžôßz1˳¬`ŒX¶‰EfÁk$¤|Pë‡ Y\~S-»²—Ž•Òœ¿‹À‘ÔIÂã „Ò@ —Å?†½'°Å$@bö¯1¬ÔªõÇ|³éO Ë—*•LjmJ?½—Æv×™`Ÿi½w?•à áü9¥üèjPH·òdbSx:n’g[YÒþg…=P\ùj6³,‚«ècò=o©» •D¯‘6ÍWB˜â]:< /á§}|qôVeÖºÿ…ƈØTfb$»×”do•T´¸ îl Ü×sÊjù„À”³$ÆâF¬QxKrÔõ®bwAdу‘œž£r³Dh®­8]¢ø^ŽN ªS"²ÖÆh”Q¶+yÙ”dª(¼èR×<þ¬Ü*<5¡>:þ‹§âqyá¦ãN¼ tiN›”|àªR‰•ÐeÞ¼CìÕüa~Ya/ÄWYþ3Yz}{¤)RbY‚G.ü±~[¬¸%û ^r8E€±ø\Ÿ^×à§—‡º™€àf»_Öº2„XÉ7„9º(_‘å´# ¹!ú«jV² êØOIj ûâÁŠØ#Lº0’Ü&}ë32œ{ÙIëì1§ñt{Y€\À¢+?‹NíÍï&ÒZJ“Ëäï;¥}}˜»†·® ‘¡üâ>‹âªSæ Ù÷¨›¼Rç” iÀ¤ÿɓц,â³X°Œ°çy ,²:Š·Ë§Æc?7yãT…•ÀŠnrî\¹îydè“ÛýŽ‹a<^J€hŸ‹‹„bß|wcÚ·ýLâaÄÄì«{)r”)ØE?3: ìõ™©s.9âx[󪯑I%ýê¨ÍfŸá+ÙŽ>†P=y‰ë+4bªñJ¯œ©Äv.æ8[\I}2|Òçä O¡ØYuÇÑû 3ÝH‹³+÷C­Ä¸ÑÔ–Q­@¨ýÈÀó®ˆÛuÈœò%m#ÙЕYëMЊ×tO@ÏüO—U­*r>´«‚“´Ä;Í…:_u³WS­Cèï•å_Mã}«n(aɹzäbÑäI•µÇ¿y›¢•æé†™ÍÝú½ÓRáɯÈY(±¡oÔmoh5j¯]Îy1n(ª•m^1ê¶v¸BíÔ[õÒÇó(›¼³ÁŒÉ´÷=nŸ‘zÝè±íͯp4ýjõ.7“w O½S—…ÓロrŸ"|ú°#¬©x­€C׎Z§k}z"oqi!¹ÀüI¹b"ÙcjÂÈd’,u[ôÀÕàÚ;X¿ / ¶j3Y•9Ù£øðç!®ÂCY*î"DÖ²¤GÀÈ)“:Îà" Q·Wyò­ãdÜòrs©s­ðˆr‚Iè(ú”|5#4Ñ Ò´fEôú-»”_‰:$Á>uæ×‚xP/ň¡Tü\þu>cV+Làfàºä]·‡‚’zB­¸‹lú¸ Q{ãC_ˆ<âcP—úfwË[&ÁÇE—osqèÝT¢!_­b.Ö(‰—¾_ åí…^:ü’KûJ.3]‹¶€žh­d›Å(Ә䦖ýLÓ|ÚA2œ5{Qmƪ,³‘ðý–É._eÒfT’Ê&¯L¹‰õ¤ÃÛ”m´æ³Vঽ½\KhÛаù:3»Ñ—ZþÇ›TîBfî¾jÁqÆ}UªÀ¨½-P*±¬h3ñ{Ðä+—˯~«^lUIÞº<õ%ŸšÂwég”ß>$ð_YõÞ¾^Ç+¼Úôî×塬Q%HBái†¾~Úqo †6VãÛ:ä“:ªM4¢ßlófUBÄäoèÜêFÒš«¯†7¡â°ç·º¿/…ðP>ôPfß,Ú’ “œ[lZ„¤ÆÇä#×¼)nDQö ’hâýt=M©ØúU ð¹ì5‚ÜF¶CÛúYÁ™på@¢¶ñ(gQþ‰ü'Ù>}¤†HäÇé1(aö7½;žÜ©ç\D=¯&d—Q‚;#XÏÈ£)£n%xѦ…­ÌIߤzÖ)ÒÊ·úåúƦßw)oœ»i'…˜K oyã²°D50W¹k˜ò9ËwðE›wTe %¼&äøšdX;ïH<1Y-÷>V9¥Û¦¦†Å0tY;Ãbk;7¤õNk2Hš@·«¹¿Ÿ+²þÕì±?çEñlžù Õ?~†Aå2öÍ?Kxy7o@wú‰o÷„­½Xxk}ÝçCþîŽTÞR.Âûz¾¡»ª‡A“=žŸ«ÝRísšQW²˜ë݇%2Æm'qŒÂ'×üŒ—‡¸pR~j”oM|Qn¿; ,7ÛºQŸzda<צyAH¤‡n:4²½ÅnKúâ'C·Ùˆ'*6-ä%œ©d4 ÛÉ‘öæ‰o;峩Ä~¾¦A(kóœæÙ½)Cy¸œƒ$‹¹i‚ aûÁëDÞ¦‡”áD•m"ÏþÀ$ß:BFÓ˦#P¶eÅ”0eÜ,hQçsÞÓ„Õè­ ý›©Â€¨‡!£&—¬Ü!µz¼œŸ$ &®e^ÖŸÏg'œ_Ú¨/$Ù ž,1JòJ6£ß*ø­¬•°ç‰ÛŽXÇêç9»™ };翵n!2ê>‰ÄAr4šÍ0³½VÌZˆ¾#>¸/ã,Ò²e¦¬e$þ ¤8F废õy9ExªÜß®iÖ—t¿Ö8Ò"Aî ´;A¢ò„Õ³l\À8þ`Ãå_òF yg<1ÑÐÖN¬þÔ ½}Šø…”v† Ô¬µ(™­Ä ­€‘áU0н°ï©ëÔu\þ•ÔZ¦ðCeižØ¸zgHÅ ÁcÅ~*í©u$¤+‡nVª&Ä‚ýndæ<ÄǯJIA5×´–Ö/mHTŒP²CùzuêÚÜ ÌL„ÌÂq£ƒ4`"n­¸Oy 9¦ˆ½òòíL4|·y±wv¿ÎR¾Š£@JÌG0 ô¼èØ1ºí(—hý’‡ìUV‘Rw5͉>«úžÙÇâPEìܯÒ|¬adùÆeǹáY-4GÇsÞlÂuGŒ…r‘CËq`Â<½!5C:Ú —óš–ÕÊäèé(sälæÁ„Í~ƒšßÜ˱l¸7ò¬KXÔbó¨ïK6xˆe› þÞYò>N"úªsV”´Ñ|ÞŠj²ò^Ä6†¹_’‡Iš †ˆßÒÎ©ÏøÏÈéB‹à<(³ÀÆÃÉ*ãúÓùón¿(ÙtïÛ6|%Gí¦í ׿Ü'´‚Vœ 6QÄX©/§Še…Ý^r‡c]·tÞäàjà’¾ùˆ{HörÙ¤xõÜgS¸­ÄARÖ…½Úmºñº[Ü éZ yáu±×°{}þîÔçÒCE^7J6±Ð©‰¾íû{äÓ{Ã7„… Š=r™ªI­Lu£Z-Oæâ¼²¢×9Œ(>"ƒ/Å¢dƒxŠÂ²8Q§ûÔË"L7¶½>Ê#ýi»”̦…;TfªAaßAd0t!;™¼ØØ¹Éø^߇ҿ.±”7‘#ó!C&˜ã©ÁŸUWösÕhx\+‘K,?Ìœ] JÆ ‘æ£Ïê‘ðdÁ†ÀÜyFθÖõñ ޏÚ$e ÅG9æ¦nÖElì›42¡²4GõïH0Ýù)§µPy¨‘ïvyS=¦˜Vxà ˜žX#îCÙ 5?íW7Û) ë…¥g¶ÍŸõdžöþp˸—Ü­›­…ƒ¥eÖá?ƒõëC$^Œp@¿&ƒy ¤>%i•+±ºj/¶OŸøQ@ëŒ|ž‹ŽO¤x#ò]ˆ¸I¹¾  %¨Ã|,zrRN%•Ú1iÅdþíͺ‘&$ë’9ÚÓØ“‰„Ú:yO©€ÞÁh•,w 7ÕJ{Æ~ -3›L³m$uõ'hS Ñ”77¾Ãü:Û‘kzìz%}V*pn²÷Jx‘°¨„B쉋tœÞ×ãFâc‹E×0 q|õ½Ð øY¯Ç6\îs×:±»çseÔ@n»œN½^šëôu‰ª ÙïåȘX\ÑV•$`Xœ]/.\r§ÀÅÙÍ‚2Îg\"Â-ï¯Mo´—Þ­J!õCDó‹«A”ø¦9jw#âKà6]Û7Ø5ï+ÓxuÁéuD‡•Î:³Ç¥õŠQuyÍT—³–#„Úï¬&#¸V”º÷/¶´¦Ø>~Å¿K€Dó–ª=~X+æÏMU>?{Yt©½’¯ =2YߊrIí#=Ц¼}1×>Ih¾ŽkÓ–ðƒøœ}üáÃPëM‡ÑÏ<;;•r,®g8k‡²Ð DI†Bö…Œ']è—mE*ÜM8C)ü蟬wÕ1|…¶‚ôÈ_Dç™Ä¢eŸ[d|KRòü¿fÕZÈ•[Ûz–âO¼ûì›ZÈóì« þöǶHªEŒ%-;ÎÒŸ]R¿F~}Òý´[UÁcðÒg€W(@ÖŒcE;ðͲГƩ°[c_ Óûî=„6È €ût¢óü©#•á§ùl¸þe—ClúqíÂJïÏ6B‰~©E=Œ9,4‹ÆO^ï¹µõòQ0¢!ᙿѢæê){”º–e>E¦ô#‰#kÜöËGÝ „Qk@iÑå»É'èîCýøÑÁ{¢FR¥`“/Z-7©EÙJ wjï«{Ûs¦F‘u$O%þ×ÓF.ÃÛä3™‰Îª¤7ôt™ª}ß.¶›ÉOù˜ ý§2îÞU?†­6©#&CÈ)ò6Hù Ò›Lu™0?,‡uÐ4"½"õ@Í¿:óVXµNì‘lºæ¨åüÖÇ=ӷݼL)ÎUÌðxf@÷”©zF¥ÁýÕí/a‘z} æûLJ*Ý/›‘ð3M|ãhï ~*´ógѵp}¼~Ú6TèŸóz”2o»–'þÄEVOõVnÓqë#Cæȱ÷­¼¿–8½¯Ë˜¹–WM½+¼i%6¼6¬œTI=Å—îÙ}öEFg\ Œä Ô)‘TÙËÕ7Dp)ßIqø™ü!ãÅå!ÇׂuKgø‹1a‡—~n ' ÑîÛìai™K–Ùk-‚•z¼G¨±eaþ<A°•»ÎKhª“ã1v¨Ð—øÀD?±áz°±bwoôÜSìSèo[Ò¹(=Ë@fL›6vQ•<}/ Ó1eÃ/,Ç—o$’|#Ö=Ùã Ÿ©„51,ì-˜ûmmøè«—°šw3.e´öÉVY¾´ýõ³™©¬»úÈó@ û%‘ vg £PBªÜ› =\Íuÿ\ ;ïý·èì÷OÂ¥‡Þú¬´ª_çJñ‡Æá»&=ü?ï $W³§¶”C]—ÕCq,½ÖÐÜ *cg˜ ;’,«h‰4ÔMÆ„ëE!nÖ%n¿J{#˜ñ©5Ó»£^G>ÒÚT\tvœ¿Ñtøµ®yËLñ–Zàüψòf8Ð+?{ææÍ1ºY# §ÂÈõ•Þù'’EðêÆ ,xbܯ/‰l´?Ä:èÆTŸ¾%ŠøB;æÔÀçç‰þ?“- õé2ŽîòÆ€A©]´ßÕAfÁ@¥.S·¼ti:—½wzCÑÓõË+åFÆ©>ç²Á.Í.Õf™ Tëy*×ÂvÇÕgJ;µXIrY“:‚±¬,}å8ú‰–çNûN$ËÊe#­Yã­­á0úü·Ày6 Ï|ñ_AõÉ/3 £Èl O6 _½%bŸÝÆå¦íÚëyÓ¯ŠÇ1è;´ué“WñíG& ê†_Ò–æ ø¸ícük²£wÎÖËìœVèǾ3‰Bö˜Y˜"°|| ×”†Ô•ÎØ³í!µª\Ç+)†˜ƒ®é­U›ö–ìR/¯š~iwézV)“ûeƒ…yä çð@…e<+œp)XÖ¹?qP^§›ê›ào9Þß'*#Ý-ý$+ s|ÆÀ>â ž)l‰ñ†Žìå*ªPǽËÿj`CºA÷€D^¡S;x*"GäH3_ùÃýˆ††(&ªíkà©&ÇèëN6f‚ÑãªÇGø’ÎÛs%N­½$E~ÙöàP\u–Ä6+C¦Ÿ± øÞðÌÙ4‰rþˆ"ã,”ìî™,„}-‰ ;×6Ú ©\C©Næ ûT¤÷ÞKø«· ¬Þ’¡õ–'iLk@+¬†t–&`ìLh<«H°V 3‘Ê4 8IH1ÑA í±ß!"»hS)Nár¨Mi‹m†óáM˜¿!¶€žC´³B£îQe[î„F,I(‡çñe/O;öñ=·EÓQ@â­pšÈµÞ£‡Â¨WÄ›}‹…=ã_ª›;s’QIå²¹ŽÎ¶ß”©ØMÓqJ7Öè|÷2“Û[Ö4ù_ÞvŽ E5ë_ï0^öÂÓïʾ{0­ÜG02‹P$I_k5•Ÿ¯¶¢îu¯@hvðM±³ÆòQŒNâþ¤\ÃÏç Xg(14~âi%”|Âh²ãpÅ—‚¹c à;/„Z×î„“—%¤Àx_Ì;dêz6A5ªÛº«¼ë*«RD¯îY2Ú‹çí±™}/IˆëQ$²¸&ÓHÏÛõßD§*{+ âc.?ø<Ôù=Ú˜Râó¾­¦*pNÁëqwÙ‚¿ x¯Zïîé×ÊõSÌv†ª)÷¥‘%Ù>22€1žoøáu²‰jKøƒ"Ý“wq~$Éç _98ΊÃt*¾¢bl=øÂ6äœX°*%›ÄT.àö›´ÔÅn ÈÃbÅ'œ' Ì™úÒvyLÈÛ¹r‡çw[ÅžCœ½ÐÙ%õ—[ÎáÐO\©°ä³i}C>Ù°ëè]£¨¨:oßHP¸^#ôeRç£ÿ.2Š¶× £Íu²Z­–ý$Cp!-”nEŽ ·tÓ;”cõÅ„Œ£®'<Àåz]s´/à¶ùepºa—E7”‡…€ê ÏÔÄ÷¨œvÀ®øCÚi/kº7ß‚ÇÐÁžx6®]u¡ÛaòìÑz„-hö×®2q³UQcËr9V`e‰úDP*qøiïŒÂòVƒ>ÊÓrªø¤ý4ÑwRF¹Q¨ðªdÕºÛwþ_6M#e«ÄG3nIzGoòó‡²à©¨{ƒ­¦i•_Š Ísä±W;VyÙ¤81K 9äZ±©îM<€ ªý ÄCÏÌèðFNä©Ë»fÙVëm‹"~ÆÕÓˆ{¢r Üûµ¯´È)«~”‘=[ßZ:ЪOjÝTÆË.In ‘©ªÒ£Ä IBÊà°8• “TE¿ÕžËd:çvš÷?}…ßæ5 ¤&ÑFC“e%Ô´(„^i*ÓÖ* 3ˆMØQZh˜Át"©òêè›7çJ‡Ÿ<âÏ¢1Jn;¼@\˜U¤lŸ£ŽPt­¢-"f¢Eø2÷:¼¥@þ²0@ÞðÖ=Å ºåmÿ…&UWêåŒõ}¾½(ú MâDá²[õ3R„"5?Y“/D«)Žkÿ¤‚Öä<Ñ–`E]šZt EhI¾o04~Œ÷Íà¡Úý.ÚCòègEЈLxÿsWC½ õH±,uîk–*/OçawÝa}¤½‰«B×Ù!dž)âåî*ÅèѪÝ÷ý™Ä,›õ”^UׯÕ¹Šèô.\Tñ(ÑTÇ{8ÉCs½÷œXâ2ŸÎZP‚¨Α߹ýÚËô„Äþè Ù!¹t‰-Ô}õí5gIÿ6êcç¶NvmÊ[—HžoC?éwJíöÃØÌ«+%~ý’ç»(¢•©¯:%¯*g÷|Í_éÜâÑœ­]¹ôsäT@ˆob([ÓäbÆš¬<Æ}ÏÀöÅÐûÕ~I\ð Ëìd¿2`üóòÔ ëG5ˆ’Dθ¿%º$&Îóê ½,‹lné‡ÐÚë‘̈)î0ïSNB-pb·¥–ŠDôo¯ª<Ó,]ØÛ¿ÜúdI;QjÁ%/ÃÀßkžÜª$¿n±ß¾õ¿KÛP)RŠ+@—®~Ëj>zÒ”ÕßE5ÉÞg„›§L¥Ù3röK”{£þÛD‘¥† kZ®åÛÍ)xò*=×áÉÏ &1*14Ȉ |ïÓü²@¥( aö]Ûaµž’„-–ú?Ó‘~Ð’‹•p¸óåô³)qZîy§Íž° «†S;ï/ Wb»†…a6JÄB€3Ÿ¾;åOnû®¤/+ÖÐÔ8jï©Õ“Þó=úf >\ým‘{PþåÌ–—낊$(Ø?b I'Ä;—-¹¨Ø„BçÈÑÖ•dZø–Á¡%†7ñ˜”ƒ?f‡v¯[–W N 6 XÆÂ£¦Y«…®!ÃXjö[™Ñ’ ?Ö‰AB¯õkH”äÃbcÑåGþë#uÅ>1J<7¾C…8q5¦,¾•OX»j_„ûOð¾\HjÄ"m`¤ðÜðä^d«â6O†&¹¸AŽ)Ë_ðÍŒG–è(æ:¿œÓet‰ëÓ¥°9#§Km”ã¼@îÛ¾Võ1µ™„FûÕ=2ÑÜ^,ÿtqv54ŽÊå=P®f‰AÉœ:|Å kìf'•¿èÃLO¢/k 'L"‹ƒÄ†-†ur7JÄÙH!‰Ïºwvq»ÿ‚I‚np©¡ÏNçüÛ'¥¾i#®„Fzõ·M:Ÿªc )ÕA§áŒÝXvs»ß&&„ûàÉkBôÜŸ¼Ð…á¡ ~ðHð’$ÞYÇ‘˜#ªîmÒå9}|Œ©"qSÊ"‘è½ þ,Rc*eó ñV¼o.ür½+Ÿ\3Ò…âmÓt›!)’@áû®g!þä­ %Ì›%4l¼Š‘B|Ä…(lj£j¡3Ô0_CÓ–auhU¿HjÃÃoZPW^kåÛ?©;¦yhi‹ßÊãpÀß<~îÉiЗ¦æ®]GÀuñÍïEQSOó=¿J0ú˜CM÷B57$¤»Ø §ëŽóið…B ßݱ½‘³B£¤­Ìƒß ÓôCgd\§°äo¡Ôêùp‡¬:ö 8*VNT÷C’Þâäbá×!ÕƒÙ\óÏ—BS‚©BKå.6^an¤½.’çý¬Ž3{&Ây\nÉé;üáÆçL³&ùT8%ƒsô›²5'ccjõuŠ°á¸ª:åfeI «2!5(“ .3„mg‡åÉdxœ/©åΞlzãe Æ)r!~lÚ‰GY°úã4ÙüÜ7ßâó×)£Š¦ƒb6ôXSÚŒ³Ó ÎÿÔCÒÐ)eFSð“ý2²Jºú¸ª¿s¿¤¸ë•²NNÞ\šÞ- oàÓ‚Æn…Zt{ƒø•ݳgÙ²dõ ˜î|²"îÐ…^dºÌŽ2+§EÆt¹sSwPÂdÇ*âÌCÅÔ¸ß_ï¾êªD_)µÒ(ÜvˆÐïe‰) j&}ï!™sçúNó]ZD—µƒt‰W”O^_r u³_f‰â¢QÉyb BȈó¢TDî’> þ™Ì¬·’[2‚63²…½Oƒ„cí“^W•ÞHȽ©»ôñ û6þ¸“ª¿ù#0LL=™-–$A1ù SoÒœ‹j˜zÂïórëÔÌV<ñ7ÝmÌuª 5…¸p®áuFL¯Ðd%™øä{Å3õO/Uë9­ºé ¤(-tië¬gO!b˜’Ûtæ³I~ˆ©ÍÃF?Ÿ…°Ü(cÑ-ödˆ4Bî¨.¢õóBlû‹§­4VÎ=yD?ÍÖi{3D«Ë?ò¹UÛh J•-  HyÊh;Ÿ¶ÐŸCr>#93¡éùGvæoßS•®N";Ø_¹­ãjìÉKذJ&¯aùr T„¼ñêñaX̬’ºöÅqŸ¨œ˜é7æRr±*5FÑϽ§§/Lìh›{¯·£Á̆Ú1úÊšpv <¦/óìÌ@&$Ü}8@©SÉ=ÕЋќH;öwyzSï{Qö¾ûM7vŒU5e_F†³Ù˜'ïó–}ÎY•öfÌ÷ÓáêÅè2ƒX1ûòÐñá÷Áª­$laõ‰sÅä#ª6T÷^RèP/*|ÉV¦åsPz>\ì \Qƒ©w†›¢M¶&¾]  8ÖS £±êFÃò$WÄѲ¾rÇ«L6/ãÖjóm&½µøMªIdË(O~ê¢j÷ÏsÎŒýJÜ®¸%riÔ¤é´Õ¯¦6¬¼9OU {gg¶„0€?Îí×κÆ]ßSù±FØx,-=Ù‹'ÛH-,… ƒ¾ËLÖð]óF«Qô—ê²ÚZí1ê¦Ø%ÙЋLŸ¨o¡­´³‰£Š¹%¦ø*bTAEUp2œñŠi½£øÓÅ•¤è³hV¢@\/jµ¶BtdÉó<†t¾bÄŠÙ@Ú”|È;ÏÈ¥©X“¿<”`-lUŸæ°$û’»7~‘$ )y ŽkK¾Ò5äG~:JRAä(Ì ÿ€¶Šže|e¹a?Œ¬«oò( ¯°(ˆþÏmÙÓ &‘¡èºoÈ S ‘aµòÝwzC°fʸm^®Õ»n\£†¦å¢„ùGšVÇìbÑ,h(ïê9KØŒ}b¢´ÞaFµ6Xú)¨h}ÃWõÏ7ŸO®ÜŸŠ 3ý¡ÂÃG‚ØDvþX±wŸÏ;ÇÓEZC‡îôütÐN]£ t$àlêY‹H¯Ç&0œ,áÚéc8ÅŠ¯vWrß(„Þ"NE$v{7·ˆ¹YßþC²—„LÃ-p¾]¿Öèpµ6½Á¢ž+?¾È?ùÝòRÐëNè‘ane6Õ}ÅmEÑõ-+ÚÖ[¶@ö¤È­ÜЖâI¸”›ÝÉ !ÇBæ!ºBäáçqáI=ŸÀÀ)/áLìi”-ÃÂhP¢Î‰ÏuŸ¡­Ý+&[<ÍAüË6 ú{ß.‚_‰›óÇ‚†tá ÅïÔUði7»8{Ìiu~¼ºõÙWk{Èn….0UMÀ»!u[¼EÈž#¢¹‰ù̼D'xeÈì–9ˆÛ9;xªœ&à‡Èà!~y·¥1hb±ëuGræmG»­{pü.ñ! ~Rݵµ]z¿.RH)U qoÏ0ž/ËAG½!¸rn0åì5K«¦I¾ÙEûLöèe,‡ŽŽ™"ÔŽ!%°¾¦~˜#ôÂ,×k¥› =mîæ£T¿ ·p!¡-+‘ÞY”„ôÁšh1¥ÈÒ°—µƒ¾Qu égä(OÙ†Xæ㮳£ÿÃt2¾Ý·›ª(÷Àµ˨ŠðŽfǤ€ŽçlPm^åÚÖFê+æže"þª„¯ÂúƒÞã¤ØÖæÑˆ?ÿ-@Hõ ¤¤ñ}ätˆùbÏÚÑ$$ý¢a&n®œÆòÁRLkdÌšVÌÝ5"]‡¢ æâw¥&©BXAC^ÅÂÏ…5;çÁY¦ÁB µ@Ñ .êÇ J>™êqëQœç§íø6JfëÜVrâÕŽÒ—JMs‚±ÏÌC”û[ ùñSÁ·F:3í”ÌFtG¾Ãëmo»øî¤KH¤k5‰1ÕÍ ÊÐW¤ûÛà¥ýÛY"Â:V!rSÉñ‰ŒUSLZÙ22ÖÒ Žƒ˜•Ò߆:çlÞU8¼I*ÑÔÜð×çËìŸ2™PÌfÚªÉhXÓ.(6Hwº.ü\K—Ø…GDvs¾ûœYúÎU)Ç…†£c¨øÒ1µåI,FìîÊMM‘É%Äûã”.%ÃÁˆœÞÙIªéakTÑ¿ åÃꮲ} üŸït!;ÉGä’mªlYü”Û%?šÎ=là·Ò渔¼Ú”„¡47RIªñ,KôÄfÜÄ%í_D„™uF!¾~„²•´ÑÕ–²†»>ßÉõMÈáy" 6í-ùÙOË+5ë á 6Ùz™%YøTÔÊðîÆ¶a—+ZSc˜)©±@cˆcßA—7„öÔ~­Ýñýªr— èí¶éÚ:âÃ!K'`¼]ŒÊaŽõ›®YN¸0”novÞŸµv¯%Vápìpæ h¾„‰íÂXõ"m:îqpŒjì¬oJIŠ ´~ÕŸ§ K½ûįZ§6÷ýޱ¤ QTçîDxÁáÓqD‰`â„Q†ó¹ø3i¸õ‡êÜ;Ñ24®b±Sͱ&¶ÚWz#÷år’ãkûP®Ñ`BŽþ‡N9úA½i…òst…b +>ÞÂYÇ÷±˜mßï¯Är˜Ä–ÕrÀœu tÎ 7H9ˆfÚ.Àx4]¶cƒì(|oê?ê‹¥÷Mü"†ì Ð’ê£4=ŽŽc!.*™$ÎAjÂF›#ãÆ¨:¤m"uvrñlnÎjªáI! ¢Mä<õÅÛÙž ÍPÒ\¾{n®ÆpÍdz&ýÔ>,ÿÔ‹á€|y‘4•L rõ'P#©¡¶!RŸªHc垣ϵ°êc{W/å~;Õ­@†bMe+~̺ŒÎ¾¿=áEYT žsç)5Ê È\S:žIAÍóÀM1t»·ÈØ,wD,e4¸RÊ,5”3Å®°_1¯mîÛÙ(7\ì¶n%D;3³–²÷SŨè`x`¤â„µ—Ó^†-×# â€gºX>¸¯¨iç!*þïnIfñí£b^¸»L>ç P»ºé;ÉÍ®ßÏiô熵¹ëÐZ­qê¤Ó?.2»x\íÕ(®w©RÏ´é)IiRðÒ3û”ͳÞÿ¶¬w ÖûA.o±´¦D©9 öŒËhpÔÀŽ5 ÚÓé†õöèÓ÷×Ñ=N¥C4„‰Êܶš—²ÑŠì oð3(4'€n)ÐÉõ[=w—%ëì©¡rîiHei<(m6íY’Ü xúá·1‘Ñ©;l%4U옽ƒ‚¬Ã-ûþƒƒ•|Õò.Qv<"¤½ÎQòkf0áF…ŒôÀ qfÇid†š}Ë:}”—Ð%æ¼ ¥‡Ôû¥Ž‘@¯Ö­Oœ§ÇÊ•6æY¾+kÇ]Ó·å0YÝ1/ˆ9«a©ÏÚ¨~R|Àá´¹Œ‡êù1ák`-½WªøL½G‹(×”qÁ‹·0'7b¬Omßm62>I[M^|<ñTSÆ])žIÖ,oÅ?eÜÌç¸IF'> Ê_–cNR?Â-€!õÆ–—@xS­¿ÓÉ&/f½mTXï÷VmÃcõ ]òîÇE‰»ëÜ5þÓÖÃàN@«*”Ú©5ðÂ{Ç4ûÑĵ·R!…_î.·þF¼),é®5æ”eÙ¼q‡TJÜ? Ó%EφU ëö?úáÏSZxÎB 윋ã%jwãPoŒAÃÉÙl]VgÈÊåð6Üä˽º[.¾a°ÌœÎጕ,5Ï\0íãI³0—3r=oï‰[Ázÿ¼ 0¯P“¥»~c‹ñCÍôæùùÇÛÕ66*+Þðšè4KÁ𦪦ŒRiÜ®ýyb·Û1Øw$¼¬g‰@Þ]-ïåÂ/Ë¤ì Œ”Ùˆe%ÒÎÙçRS…É……ÜMe²L)¶ÌfŠxÌú,d‚CßG¾B;?î¶~ \¢ ¾'Ÿ²¾&{ÓÞ±úe;øÀ‘Q<6´C7ÖþØó̹Œ¼?5‘|'É}ÅJòf³í}^áLø¸ôP° Ûõ¢©šùΨçjUþa¼Ë¹TU·H¬æO8nqÖäuˈ{h’:’Ч0”Þ@Yþ"}àõü…ÆØ"±Ìí)::ï¨$Eã•X¨îOi­Ï(ÊŠ•5ûêó‚ýíLÒÌhwÌât¬ü¤û€nC ¸ÙþöWqßvø‡ŒÄ—ü 9¿PÚ`ÅŽÆO)Ñ -f.¢&3¿¼^&Ý 0g‹0¢\€PG„+UnÍÒÇTÿé¢óPrBrT9[Qf€`‡n$2é$=>®XÊ-CºóŠEpÂèÊŽN+Qîh.]¾¸µ¶ñhú@gb|euL¸)×|õÙR‘Oô’B”è4÷j€#ÁU“HúGâw¸Ü®’Y]{œÑ‚ÖËMd·’¦Þ°:½°c9‘\Ù_¨HߎòLj¢/BDxhF-ÀÀ"í8-s…ûÅë’M¾,†Â \þ<Ëgvÿ:í=À¼rQ‘¼‘°)sÚùæû ߇TˆÝççÓòiÙ Á~-}ý¨bù„ ÅÛ1CÁF}hTB‘t€?ÿÊ0ñÀÅ Šuwb§ÎÏ›)E:V›.)RÞ‰W èþV‰e¨ïaÝ=3þä–Χö™ïBˆµ”JÐYU3û q;ǘ~¼xÊhÌ„~ÝuŽaRR»åö.‰‰“-£Y—åJC¨åZÞŸ!J×qÞ{å{†‡póŽÉñò|OC+šÜýBCì>/©üPÎg$£Ük¡²syÚ‹ÃÝ¡X6ÆÕðÈz‡EÝüÁó®ÆZ+7ç×gȃš-+I5˜ùuYsöÃOAT2“ž¿<›d XNJ’ß¿GùØ‹ZZ ¢¹e%`ÖóšÇžþ~̹Í\G¼ÀÇpY…‚¾A­CŒÉɈRÊÀ…§W£ÓŸb@ÔzeOvÂâÁ\ÑT§ÿ¦?ÿÌhsð®H€VC•ÀCp`b˜³0x÷âÕ´ƒø%=ìw¹¢¨„\[B¸oô÷9ñ˜m¬<ìmëZUÓG¥(G)ýåi¥Å|ß#‡Ìˆ†œB‡ž\—ûb+Ë!®ÄP ´L’/;-…w†ÓqÂJ£{°ZÏ–Z †¾ï=ãvÕPUšy4£Ò0³Ò°¤ §ñUŸºÓý “yêã Z#Ùvv¬Ù^ßÑûóã½K¨éöZ¹@N´ @r´ 4J²¨¼ï;ÛD£ÃñÂQD‡a‹ø˜#dlÏ@yuñ¿¡Ò»²ä‚@„*ºK/;!ûIÛ}y€½õ1!ÄêÛ4TÝè¨&ý©¡Çžr Ãr“‚{Ý*^ÌNo¥H6B ɦv<®©l$Kuàè0ã‚zøˆûI­¦ 4Ê ²oÄéà[Ó–J·]g'~C«ß@¤¢±ð¨‰÷—PýÊÞÃ’~o@òѪö뇢_ðclÁø a;j8<öh-î¥y˜¤íªiJïQm{i‡Í¾Èâ^ã*±+nugsáE<Ë8!‚¯>ˆ;ôY?<{›(v¼_×È[0ó+ Ö"†Ë€Øè ¥D&s Š˜(”Ðy1H¡kÙAR˜/ ¥v!lî½èë/§K¶0Ɔ¼4ûáëf²ÊD?p”U¨+F¹K÷~˜ps¼M“t|&oœ†(D*coXÚVZ#[u¶`š¼C­Õ½Ó°é$œ¹…¯¾(WϨNŒ†îâö¨w!˪óþ)]ÌþJè2€pRfxȆôÔÿµÅÌ&ÏF¬h„*E…è#OÐ]ç12Ëà×ûlIé‘ú£~ Á¬$çï|ÓÞs¿|NP•cN¦ý¢P`|Òo4Kb W¼ßœÏV#C@îCYgɤR•ØþZ giÖ¥‹Vð¡'›D¯«HÙLåÍÄ\¼a³±:ýãJc½:ÂîwOôSÝfÒÍe¼œ¯ Ęlg¥šl[çøN>¤;FúÜêëųv¡[ÂävßNrˆ'sØ ·÷©„é‘b06Xãù4ëN;.LB\DgØàÆ—&JL:Q+’Ù˜§–‘<õ)‚V…—¥ KJÎoï¸sEÚÞ¥%SÓ¢ž"òOgÀÕMÜŽc„5š¸ŸD_`$°gw¨ÉÍjAaŽÅx•¿–>B£C¨”4Ãö©§îžˆ Vˆc ‘¬¥ã2 ïËoõäÀÔäl)-óê¬x™l÷ÞÓ’¢AËÛ«… co›Ñ Ý!‡tóÒèwôœÔƦEÕ1c4««iÓ&/ówššß¿L ‹†ö\·a-ç9a^>~ÿfB\ñÌ]D¸àíìôš>o×þ¥à²Í±f_§;–» ”Žî(¿³¿F]ú¤\Äšˆ)ˆòµ!p°JQ¶`³KÉ vVLñÝ•|FW*—ì¸v#l™Ö·š^R;xTÏ|c¸}-w¤M'™s%q5Ô–_~§ð\§VœwXL/Ì/òZYɯ1“6 /ÛL­W"J N ›õ¤¹,a-dCC¿îÑe»Î;šÌ±„œ²©¶ÕÒwŒØØ` >XNBÍÝçWT,ËUë5I(¼¥è·Ã-XL¼Jë7˜àr]èk|ø½˜ü¬ßv£ˆÂqËѳ9 xÛv²„@q ñVƒ#!éÃc¿áÜj6©w‡ì¾SC=4N-ûºóIÛ ýùäpM'÷-…´¡§P-Șìÿ ; ÄöI\‡3ÕIÚ€ÍFh·ð1rœ'çj%²¼ÌŠ0g´3q0ÉÂkZ`“{ø6à[é<¥û”usÉ™:àâkú0©I¶cýÎârÙ¼ƒc[Ó`%AÁ6fUG”ž»Ü`J"–²aû-_•´=fæbI’©²j8 ‰ý°¢N±áÏŸy7¯ aâ¤.‚ž‹ô™Ÿ<¬LcM"o‰Úï«Îì¥ô©Úi?å½(Á¼¬ Z9(oyÅÅ++^í€é^Å«¡,ZÙeQÂHNÌ'iôáš žÑ§Óϸúà 2™ ‡r³˜´„C§K[Œœ•Ïò ¦Ðmö"GÕ¿»&`/™”£¤¢dN•oø7¦§ Éž÷žûdÙ™,I‹±ÃÉÂH¥/ŠG@ýÕåRêœMéGšM2GÍ;‰¬céÖ/ÙëS¨H60V)ÍcÇNNu£HKØFŸ-†Â{-g,O¦]¤·vù¯ ÚC Þ´{—lA  *ô¨Ð¼œ}MßH+”n}v-·tnŠÔs)pðt*P`érL—€/#T$-eøóß}…îèL”újÜ0›gÌž£.‘öXít~Õ‰jŸCÎBdÞ?ž­¢LÙGòO3=ΔºÍ&,û»)»n•¶Ñ[3¯Y>×WK‡ wÓ€1¢#»ù:Ï'›[wV̫аC8Ÿ¥-_‹p³ŸºêÔLíS~eô¶\ÒSÔ Ë9;:Ò+YÍ@ÅNÞâÿ!ôÞñâr’À¨ë?,ñ‡ÇŒYø{S¿Å tŠ$"lÉÁÊ•6ÁMÎ/{¥m®bõiÛa‹Ùn„>×ø'J T‹'\ÑÓÚt L‘Ë›ŒÛã3öö±¯ÊùÖ#˜Ì©Ð×(ÇíuVDˆãÍÚœJÎ#÷N dD}LLü3PdP§tëy9Ï€›¥R¬ÂÓ¥|^,@˜¹|„MôÔZb³NceM;£èÀøXï÷¤Pæ–LŠ$Òæ¸<º ¬Aüä ü=!o5”õj•R¥”_ÆÆ5Šz{1OÑ aÖì,ë¶„6åT™ i—Ò¦»'¸ &ì_”ÓF²²,c]ºú.↉˜[ qUÊ/¹&>G)Æváɇ#„>u€Š–ÿå°ƒ|àœ.„?ÍøÏ#ùëS4}¼‰ЈAÞsaëëÔ|È«Ò3j“ãŒÏð–Š8߃´¬ ñ#@ ²`ëy?(Á3QXÎ2ÉÍd}4''dâJŒtÏd—‰!¿k%s¹ø©@p™Î‰^¬÷ZÆ;gŽ[Ô†á Fgs#é ^Ш¶OZÀ®D'*¬×¬]ÇÀ/´_ZÚ@°£âs>å¬m©:V:ÿWVÖâ}ß×¥vSÐCªÐê’ýæKwõ¹i(?9pt8˜Ü’¬sVi§ÍÇû6é¿ 2¦o;êW±`´¤˜ÙD´ï$8¦lPý”ÞŠš(¤Þ2.¼AÍ Šêy­ßÂvCD§1"e\…9ÚÎC˜nR¶= I°z0D›{²‰ZBÛÌ8®f µØƒ45Œ4M«»OSÀn8®ttÙˆ¢}øN¶Ixû ?A:Ô˜°íý×A«äïjØ%ý |Ç"7¤úccŽöoFUÞIdÒ‚v ÷È5^úqcÆÍ<®Àf:NÒ¬$êɃ,€©Øìá£Oêzú[ÄT5S©¢Èiä¹õ¥#ós\wƒ‘nt„cå.2ç§œ’b½rpMû† ¬•gÒPÀ KÞ‘a\½Út¨<ýç+õŠ:Å¡XtL?Á®ñªKmèE×ø6:È"`3}Û`øˆÂ7ABÇ3ˆ×ŠÿÆcY)ÖXôö]Å‚6]_þ. «±É .À¼'©¿‹$z½û0ɆJXöå¤þ8“Û›¨>¯gš/á; I·Ïƶò&Òÿ—oÙfƼбç¾2²ÂšÑÙ•Ä[Ò¡Y¬9—pqZ%|±€™\æDíEµÒK ’G%dFK¡óô¶`ÄXàX-‰ €W4³þÙä”Ý5ˆO°9zƒ*ßExgóáåÍjÜÁLÈÕRä‰ê{2CPÕ’keÒ÷â€ök°¾¼«ü4$ÅFèþÆb¥Ÿð‚ìÕP¿`+vdçÆ›΀=,ØF—5«kÊè0]™NnÃþ±D¨gf\MŽ%p#(øð’…)šÙTh—Øx¡ÔQ&qÿ'~…«yj4ÂpãPœ²ÇVè=žÃH2ÑbûÆIíÆÚqΫø–xîõèºôUëësÃ:¸ÊîÆÅ練“P%Æó"£j,8¹«sæètQ\:!í<$(즲†ËeJ;zâž:ô% Ýj”®BK>þ©ˆª/‡†˸ZýFíFÌ­.½äHºg“qüÌeål™h•sZðU6éh>,O"þZ* dûÉ›v}a›Ñ© æ“1Ï€ý…vó0·j“ÙãaHß6Zº‚º)@ƒS…§UèçØ©ÌñzᤖªÎHÐú<°Êkwê4ÖùKD"†ÈÊu÷‚ˆ‚Q1ÕßGËŒžQÔ öŠE ž|Ctf6À:|•ý[=×ËãPØ@è端nY‰ýfa4j³!õcÆ0 læÛ‘BÓhÕ!¥k³$Ô²îLõ‘Ï“;y—„¿ê~`MÁ]ʺÐ{ãÓC¬CÐÈÀðÿGuýVlµi€ X…鿆Á¤>Ì8ÈsR}ˆ|¾ùfHg˜›T²1Å‹µ:óAÜmJ„uý_:þ`t›Jâ~³Ê_Íã¦êô7-·Oýå{ë½fžV%FCÓ¬ËBo ©„¤PZ…Á01^otré‘P%zwh.7Éuõ×eÀ?Vð >"ŽžßJ9cM*¿Æs}:D¾ñ&Ëãåbd™ø0/ºÅôAGNXO“ñZ—Ä®àÞµä ‡NnÍ endstream endobj 765 0 obj << /Length1 1515 /Length2 7596 /Length3 0 /Length 8613 /Filter /FlateDecode >> stream xÚ·T”í6Œ”´”RƒÒ ÝÝ- 5ÃÌÐ!”t§´twJ ¢4HƒÒ!ý¾ï9ï9çÿ×ú¾5kÍÜ×î}ïk?k&†çºœ2VP °"Ô ÉÉÃÈih¨ð@ È‹ÇĤA:€ÿ%Çc2è“èXÈÁÁ $J&B¢ 5 NU€GP”GHð"ÿ2„ÂEò Wˆ@ƒ   u#ð˜ä 08ÄÆ‰Êó¯#€Å’À#""ÄñÇ ã†C,AN ÒìˆÊh rèB-!`¤Ç…`·E"a¢ÜÜnnn\ Gn#ÉÊpƒ m:`î ¶ün  rÿÝ@Ï‚øK¡ µFºà`Jà±;!P..NV`8• «¢Ђþ2VÿË€ð÷åx¸xþîoïß NœA––PGÈÉâd°†8€ZŠê\Hw$ädõÛ䀀¢üA® ˆÈeð§t@QFBuøwK8†Dp! ¿{äþuÍ NVrPGG°÷»>yl‰ºwkïusòú²†8YYÿnÃÊÆ­ïqv«Èÿmƒáý#³#@a!>aØv·´åþ@Ïþ£äù-FõàãƒÂÖ¨6À>k0êÏ rp°×*þáñ𬠖H€Øâ„÷Ot”lýFÍq¼¢èÇþþüûdŠb˜ÔÉÁãó?#æVVPUÑ4dÿ»å+ee¡î/N>^'¯Àä¡>ÿç9òwÿá«âd üö»^ÔEý«f׿IÀò÷†°þ;˜&E]0€å¦›€–¨/žÿg¾ÿqùÿ£ùï(ÿW¦ÿoEŠ.ô,üô GˆƒÇß(êº Qk E-ƒÓÿš‚ÿÚ] °ÄÅñµ*HjdœlP”æäáçòÿ%‡ !î`«ç¤¥í_´ùK®ÿ{á NàçPä÷#åþµe–ö¨ÇÅÍ¿T jåùƒQKõßu(8YB­~o¯€ ‡ƒ<ðPÃG!€jM­ÀîØ àær‚"Q.TÏ>k(ï÷ Ü2¿E €[ýßHà~þâpkÿý®Ûê? /€ÛúßP@À CÍú/* òDe‚ÛBÿàÿjÈÒGuü‡‰¨nÿ…ÿ<[À`w°%ÞÌ4ÔR,È®&¨íW• µçú¨8Ö~Ê/#^ÎÑüW8È>… ³•8ÝÌŒYµÅ™^ÅWvš²Î¿²¿{­ÕÒ×yðŸqÒ+nÙÐ[ÄLßÝ›Š÷:§y2ý  ía’,h¼í9mq®”•MŸ.Óïg5=ßâݘɋ…TƒÛ4;ºªŠ3Ô)hD ~|×A6[ ê­ œP>Ëþî¸i–¬™öDM¼ã/έ’xy`hpž¤—¶;Â_Õ5`ý€1I¢ 6H#Ï¿Ò`>—è:»Èu7ÔËB‰Lzת¯t‰5éWæ‘íÚÑ®)KB—­y‚u$ÏÏ ZØ<¹l <'o#Üj.+”£q@2þaГ Qþ°XþÖ^54XÍcvªg|ùÚE-YååX ‡FœÄmÙÚŸz¦ö(Wëô–gUI$k ì¬;>Ö¹ýŒ™óg,ÁS†¼/…SlÛô$ çE‚ZüŒHøø]!)úDÜõ›÷ ^œyyòßæwtÈ2Ï:WF8E‘Fz.×Î{§å¿»ÜçáþXg™Z)ç鿏ræ]é¾bª>à-ð)÷lsø¹ü•äm$T@Ÿõ~§3<(Š’«%ìIùÜjï›Sº2ô+´bÍœÒËŠOýÐ64><×bÿÈË]Ï›]ô4€&¬Î«äùC1ƒ‰NÁÜ>|tÉŽ»CÉ–d-?U~GàÈ_Ãt3ù W{.EË©ÉJ0Äe}L#aMKú­'ÙË[ÂríÁÀí¸èÈ6™å“æìÖÉj꩟mÅþ8\"ï73vOøl¨gHÑ¿ì0£¿³¸ƒš=<¥1È_ºì¾ßpdø„þ'úZCfú‡eÐÑ6ÔX¡Ë”Ï´oÅ{Ôì©ÙZ>©,y*ïsz€3—Û÷"‘¨íg]5qE M1v'EGs†j ÈÛ¼Ã6ªÈâ5k·Û‹À}Ë—Ì@»„ƒ#4!_6xd)¶TºÁ¹ÌX¯}Ha·œ;ÖÓ¯ «i3¼>j~Oƒíã-'ãåNZ³(°te-º§wRl¢!„«Qd„õí@jºlˆîÛ%ßXt´}Ç«H‹¸´Ïáfþp0¿™,öêéüUÿè%Ï>ûø,Éä½? ëkx‡`Ð ù«ŒÒ0ŒwÉ!ë¯Êµ—/éMõκíÒtÃ}¹Ù¯ð×Ö(vi)Ä ÂkžFóq°š“ìôLeƒóy«†?1+þÜ<½‚3¢«—®äO-Õ¢Ùæ§ÅØ=ÇÞ7Ь$õ$´<Êמ\rë“9÷[®óD©\6ª3K?9•x³cÝÜ ~`§výv’ѾÉál‘Éìđє8Ud•³70gý‘=H}øõãù‹½±ç<^ŸýÉ“;儽ý’¥8ëe¡×>ÒfòýgN¹W˜úÄ.ó›®.¼!£L‘Õ¡ÂåËó½ú%I)²Ùµ:½œoƒÐ=·´ÉQ¼Pºtpó>÷nXË-M7%…ÇÕÏ&"Ÿ œP䯬Qn`Ë!¿#gdвõ¥OéÆxkUˆ0¦®Î¤Q¢Ç#Rñ D¯]¢Ö«¶•Àb¦.‚hýÌ–àe/É©(Ê÷rŽÐ¥uà(S™Ï;ØÜ#«M/[ ~ÉpÒðû¯Üä ¤ÁÚ'VD½; ˆÕ‹ñWËÒõR80ŸM¿l_³ -øêŠnàä”cüI¹šåö†Þ‰äõÇk=è¸D> YÓÇáK|¿™§02lÆTýQP¡__¦€6¯1Ÿ(ef#õ ø ¥q/ž_w–*TU‚,fp'¿ÂÁV~~ %š»!¼¦–ÐÊÿñÄ>í'xj««Ç\¥í+¶neµ™jo““o/ÂÜÈêkìæñq°Õ÷†» øp•ˆ>ªÊ~"j«#!¿ØNó‰Á|Ïë£Ü33¨¢m¼?7Â]$Øå;<²—{Óë°'é·h´#þ]ùETU?¦»+i;™ßš"'cú“t r–zO{ym ¤XíѶ]~So¦=þš&Õù$6ÿEêÉRíü [º¹ÍD¨vIu .Ká¦Ø°•6¡>}Ìb듴د94ð6³âK–¼Üëà‹˜‹B©QÊ(8ZøÏ”¶³“Šàû$ÖZ8†‹ŸÑW‹³‹].€ ç±QöÜqÌ•§'Š/ê¿|Ãõ¯æ\Ra`\bñƒß(ëåÐeÄŽBRaʾƯ†Á¨¯K=¦£á×»Xý䪳ôU€F¨Ã¥ž2Í ÓÄ­Gz/X¿¿ÿî,ƒ9Ÿ æ£õ6¥Tš¦®mP{6û/hV0'>NPú¢Ï#]ÂÅ-‚.60®rogLÑ3±°ÃOÿ·:†ÃWkAwçåZ\¼7ŸêeeîZ6¦Ë9‹DûøÊëÕP÷Ï v{Éîy5ºí)&õ¬N¤Z² ¶T¨è.°Ùé©íAÁ9/)<çG¬SªýH“¿Z«°-¼´¦’@× ¥à›dej;|_Aï\RÑ Å‚ÕiÂiÌIE—µ«Úƒ§ÌJ×>‹©§Õ8Ë{­Gi¡îÃ-9*`Oúƒò\BÛ-WëVˆBàúÍSjÑį¹úfêÏ¥bë†iÊUlèjœ}ì!œ•L$"é;³N°~ÈÇöÕî©aO¦üŽðVãѤ÷QC£bøÒÐHxÓíãíYõx1³×xVÚIª*Œ -I=/Y¾QR8ê8o‘穾¤Œóµž&ÆáH*¬ýþÈŒç2oÒ× €ßºûžF—KŠ'Z*ÿxZfªoÉÃ%`Uý^ó²5‡c_?†tïÇnU©£ôÅUŒ¹HÌœB3z¡– çlÒtwäƒ*åmØ%H›î މgþÍbî‰Iº ;,¯Lž°cž‘@½êDõ› C5oO¿‰ãÕäïÙäý|;Y«í`‰ ϾÙ.½iUß¶—5õ·_øÌo\snaNð@} Ã’ô3®M²œÈ­Ô”íªò^ÏÌ/‡±Ah¡x⺂Hžz‡ÞóV‹´p´ì4•]ŠqZ3ÖLãÔã)30±‘.’°@ßRàÇ'¹éˆhŸñ€»ºü§N™”ð†×7}š…´Ÿupê?3¬ûÝ7xåY’Fœrjf§3æ óQ%cãï#„=3mQß/¹à‹8UtÇ /ßsb”Ý4þ8%Ú ,ö÷lOZ†W`=ØYž`,-ÁWGçÙm’¥8L/~eöS¢Îšåqš"ÌýñâN½ÓZâYª)ø³—ŠX¶dkn8IìÛZ›³ú“ì VN®ZÕè*#¤Íòežm|í2n™ì"Åá`Ôã:NÉ¿Ä(ꊂùT„ácÍÇËÜ;ÊxΜnf`ZuhŠ=YKõ¥Ä+î€-µ%?l¢’S*$ò‹×üœ]õ¶wÉ[  vO¸Kfé|jÀÜ|­ÃN”ýšqm´ßÝ­~!Û¥ µÉ·ãÙ•øÙXñ¡õ瑌0 »r¿®þm·d0;¤xR‘¯Z2•Õx=h×/è>@l½hÉ´ öÉÅ3ù€T–Û¹¿?tA—Ê'¿²hÂõ‚€{W R1ÊÄßURwìŒÝxàòJ¶¬ uø|›÷†¥ˆböµN ûÞ'š&šã¦[#€ùTô ŽQ¡$NQ9ÊuéÑb>VrIg’îÀdr·g¸‘KõÙÞ4ålõ±÷U—ÞüYöpXI¢÷U©í·VûÊôf®°Ådì/iÄ«G¿Ü•î¸bCpìRj‡¤GìÙU®*’ëÍ·}&ä`í>Ö™«ºDX'Ôåå3qô³´çV³o¼Æ ÙXÂôëVØ µØà«p>îa¹1"ÛUÉKïŸJÁ„·›Ì5|øx÷ýJ 5w[i[=‚Iý›ª¨Ì°þ"7ú»úýt³!Ö,dêØ;7ptP&‡ž˜eÆTcê+É\bò³ù˜Wþåã_´«Æ>{HМ¿òPˆô§òd¼ ¶ü¹¶× ‡E·Ë ÛÁøÁío̱T?ÅßÚG´5()ØN1oI= ä‘-WP›'f®J‹D0¤@M¤ÕãAzɦ:Hü<;+Ÿ=fë>× áT¼mÕ³ø¾Ð)°VÙØyÝΛÐ!YúCÍÝ™¯§`ù£²ˆ¶<};æ³÷¸áW¦7À¼‰ …XéÊ–®}ÞWËðÚÑlZeÉ2ðÖìó‘…Ú)±Êóo_ßù8flsÖk¬ÈŒz"Ì>1Y‘37=ˆ&ir³xD7zrÖªâ›Î Zq J“ö"mM”Ì-îè„óÓY_éó‘U:§ÕMî¯Ëa=)½síŒh:µ»%A‹’Jɾœ–¡lÜà*Fˆv˜P‹)óV·×H9tÖÕX’“®Ý¢=/8?aãäÍíp"yÞ~ã~Ì=k!’?cŽ½=žMÍ! ŠþÔ±ú£@X‰‰$ 6Úöq·¿QãPt2ñÒ鿣¥®ß.µCI\V 01üû¬t0CRƒïš<îäSa1‚×ïŽê´Ù¯vª$lärcëü¤.¶v¿zÞ‹23oƒû¢^2•ã+ø‘×ø=Ç[‚rï…”lÞ6§\|¤}p!+!Âxzÿp`—’1­Q0öôrÐþà”!—\&¶5Lä7aØÇUlå{®t THYÅEË_”æYk(ˆr‡T…”8ÄŽ4U–&”OÃ6mò5ï¹y˜.M›dÌ#x÷n¥²¸¾¨5\ž‰yžê5ó‡teˆ.ÒÌÝŸ"^Æî°ß]îµZvïV±U,zS`g èÅuù¶ì©\ýLç] ªxJXŠ™z»Ó÷·*ïKœ¥ËG³¾Ž¿ý2F êIýPué'ÿÎ ï6£çS9í},Ûž‹ã;Ž^®ío{4‘lÙ#‡i–Ähò©Õ#ãðÍÄöS‹œé™;ü´LEE XŠÅû©T¿~Ö<¾‡!£•ÍR‚øh]ÍÄ2•ŸS~ÂËŒ• ÇWÛ÷­ ³X=ácpQ8ÖÞNHÆaÙ•«µ«êj¼\šQY¿àEÓæ6,]ÉÔÙ„(ÅÒÔ·ìçºnù 'å YXú"÷ö•œlÎJÄV¹ÄU/š÷<-S§N*Ç8Y!臎ÓK,eêiI«†6ïïÝÂG%¸«t2ó(êù(˜¶ñ½[*Òe¢aÖhòˆÊ{!—Ÿ€kq±ÚTÅŽ+ãöP-ï¼@S››§ ¸Fë`Çæ¿ý¥1döØTïMªï³×JÚ+)m<»åàÏYù+ ¯»ñS¼9«,Õ‰1ƒNêô0I²÷<}IHÐ3î¨Õ/‡M”+±w gËFV/…wîH4á°1øë • û¾yš2±ÜßéøA˜þa}M_{“­êUcawM.‹]ÔÅ:…„72’šÃr"HÚthܯªû„7hqC+à™H8GÏF­Hx”ÌYÜ3W{AòÚ*8X0_ZkU†A¬ð:þjˆ¹‡<àvQþ¯×êÍ\RÀºÎ/«³ºærhBÎ`½´|Š"q‹| YÓ¸8Q…Ô3Ô2¡™8àçÒrgtsß$9|û˨‰*§lØFXM‰ÜlXËà? =ñ,4 <†ˆ`¶±a&«Õ¶u^Oëaºm¾G8‡ê•uØÂgwŽÔã™E _„÷¶¥ÆVmJòëÕ­$#ÃBÑÕî§J_ñ}1ÙÓÕ~—GñÌs»p G_j‘umJÇ‚iüjÙè—²%.H¸Ú;àËš‚«‡Wú~ÀÈMà÷“áoûÔb0#7å¢ji‡~Ór<ÝÀiw PãúÔ6®·ÍÔ{´~S'‡E²€môw¢øÇ ¯ÀÛ¶­ýo.—nsíçyçÓ¬æ‡ï“µµ¶Y®ïŸóÇ P&Ö¾* \ ×Xª„¾¡ÅPb3—ú¤£¨QL¸ÜãwûeÄfõí¬Ëzv Ý ã­C ŸçUY~sìOµÞ]Ò—êxMθu²] Œ=ÒÏ¨Þ n3î.ãÆ\*ºO9 iÞ¸3°´Í2¥t`ž[z§Ø³ ÚüX+›ñé`8ƒ¼h1Z Z0+ú}råjº†{üÍàÀ3õäK)šV¤l—¢¡ÓÀ}^S!w–-ü0üŠçÂml4\˜®´Yˆa ñÓ·µ¦êÚ!À}¶_ j?¿²7JK‚¹8g¡%“Ñ[·rTT0“Þõû9 ï÷›øRé°?dtí&ɤÎÚ„,áÜzø_ìälhh…5ý¬–{íyˆØóò¹ºoéÛß§ÿŠzJ1 Ma™§^J¡¶ëÓ¬ ÜZ–“õfÉíúXù½Q¥iR¿¼8pÙ߯§ËT7©,Ö^Bœ5·[KÉÚÅK“-“ôënÅVúXî'„…ÈÞ-WñEÉŠÓµ?¹Qá2'ìQB‹y~@¨….]ÎÞÕ‘H{þ|z+ŒýEvvÓ8ª$Øã{ô2dúêõ€²¾_y QÚx Œõ}|pAb£ÿËhJÊá½BÞí@~ó’œËOwÅh.xk¦Ç»ýºkøw>´Ð‘0øgO¾BU…y–sãc]ÞjË œ@[ãáÞ¬ ÁdmÃ<¯ª“u¯î` Öe.ZtöÇYâúQ†ö§ù³Wác*¶tR…a—ŒÙ!BGŸTG_Ý@ Ž:h¢µÓñ&Û>Ä?4ߎ4ʉWO¤&Ø4»¶25c#Øé•WÀ_Ó,U7aP·¨ç° ûñðé‚f¥ŽçOºÞ£oè¬e)ªßs1¦}Õ _^`Ý4ܹ g >àe¾hïÔ”;Ú˜ $ÖPJ†¤~Ó9zØU?ÏFT:SpJdEãvççÞÐ'/@í8xÝÒÚ-ÐEþ¬Ã£<™†é­(šajêQº‰ üBÁíx(§ýãzGÇ[nX¯ªšé0 Ù0þ:•Ô²öÑ›R–‰Æàn_Ùí‰Húöä Áxç–8{ÚÆC!9CŒÞËËȼ§‰?îÒ¬•têöå#’¿] \û]bý Ø ·D'Ú3+÷þð¥žiç¦!OÓU‡ó콦N¼'þ»^¡MüAãE—æCºäá߯-éè'Z:"9À¸w:ñ R« 7Ñ¡Ë \ ú%Ìã!DŒK Þ{=ñ$ŠXMª*ô29áÓi9~µd]t¹u£ÓŽ7hI­à'á*´?õdò4÷x“ík²‰[MËåó1ð]Óœt<¸q=I•¦Mb]iOn2ò¨B³*“Ö{ê ·>Sä2Þ¶N%,%B“•òžŽÔ˜CŸ‡ºÏoËlj΃òaË*ߎ²ZxyGî…ˆešµ?«?%»6‰ÞU¡LÑÕÍ ¸cgwîØŒ¹µ³t|‘ãÀgžäÑêÔ~œ¿¼bû&}©9-ˆy‰ó]ÒÐé³0ÛÌA篃'd6ü¾cñÇiÉ]ÕœCÆÑed09yÑ­¶‚Ñ’ÀÒ ‘Íûé‰ ”c„ü#Î<*¢+ÂÜߘes>@‰‚‚Ÿ¹ˆl¤Zv÷Q•‡Þ)´;-zÂo±öKô.VLTc3£UØ`y+G‚Çøþ…z ßåÝ'ocw]Õ1ãd縌GšUÖÙ\‚“½vîª÷ûÜen‹÷_+ŽTƺ œ˜½nß‚¦¢å{Õ²ßõ ì_¨`DU\ÿ ž\†Åfí{áf5YàKÓlººùw—¤>÷“|È$n(É.õ‰]°õî:tr¥ZÍSë}QV¹â4 QlŽÒ±~e <¾¿-9üë¬nKQÏ”xòݯj]ûÿ]òÑž endstream endobj 767 0 obj << /Length1 1398 /Length2 5888 /Length3 0 /Length 6843 /Filter /FlateDecode >> stream xÚuTÓýû6("LAB¥a”Ò0º¤$¤[’±ml£AºD@º;%¤„$DAB:Dº‘þ3žßó~ï{Îûž³}?÷}Ýõ¹¯ë;NV=C~E(Ú¦ŠFáøABÒÀûÚÚê a ˆ€0€“Ó‰³‡ýmp>„a°H4Jú!îc``Þ¦ ÆáÚhPÃÙ‚Ä¥AÒBB@a!!©¿hŒ4Pì‚„µ€h à¼vtÇ á¾Îß@.7$%%Á÷+¨èà !`PŒCÀð!`{ !‚„áÜÿ•‚KÃ9J ººº €°h \Ž›èŠÄ!€0, ノ Ô;ÀþŒ&à!ØßC´-ÎŒñ{$†ÂâCœQPˆ¯4T×ê:ÂP¿ÁZ¿|À?— €þ“îOôÏDHÔ¯`0‚vp£Ü‘(8Ðiêªj àÜp|@0 ú¶Ç¢ññ`0Òlƒüj TUÔ‚ñþ™ Á qX,Òþ猂?Óà¯Y½vp€¡pXÀÏþ”‘ïî‚–û…vEyþ}²E¢ ¶?Ç€:; £NÎ0uå?¼ ð ÃÅ„$%D$Å0' Ì ‚üYÀÈÝöË úiÆÏàíéˆvÚâÇ€y#maø€'ìâ0Î0oÏÿíø÷ ¡Hhƒ#Q€²ãÍ0Ûßgüþ1H7 ¹ž~  ÐÏÏž,ñ ƒ¢QöîÿÀ­XPMOQÇÈ”÷ÏÈÿq*)¡Ý€žü" ¿°˜$$,”À?xÿ;ù§¡bÕQ¶h|Äï~ñõwÏ.HÀõG!ÜÀ'ÓAã© rýÃt !1!þ ôÿÍ÷_!ÿ7šÿÌòÿdúw¤êloÿËÏõðøÁH{÷?í›x,"Ö ™˜ù™-þÌ*;­jàÛ\?Ò3Hs4~e¶gÁþZkÿ®4v/DiÑžÏÓІávI¯ fü&Y°êìwT<®¡kGõj DY·ŒŽ¼½¤æ icäàx¬ Gë_í + €Æ¦êmý1ð–Çg‹êjà 0•ý“®DÜxQÁé™t_‰Ä¬TÜÕ¸ø8š¹­(/A«ZùØ(iFÚ5’,]è÷¥µ= 'Åu%÷å/ Ë&5 ƒýd¶³ ·®UyôãŸ6÷·÷Fš¯O–l 2:T µ-_ò£®ÏÈë¤ë¡ÍÜ›Ô 7¿Ç"ªBªÕPpgítž<¼xGBüÖ¹½óše®RïI¦GЕn¾l“³x%lÎ_lò¨q© Õ‡_ëYoõ›Öz.±ZÁ½Ê\f@žþn"1”åïb+;²4I—jæ!#Ó] .¥te& Ú<°Ž°…€Ù2š?Ä‹B¬\éI¤Tj°À#•Æëý$ã>å—š 7 4U[¿Ü\ݦRO”iƒÍŒ%ÈæZžz‰¿ZT9uŽçª+è^®Br«4)ŠO†=•_ôñ?Ÿ¤•LfÔ¢æ›]ôªc¿#U˜F ˜ÝÙfˆ™è}ž‹d€ó?ãì÷–ôñfµ|ª/s/Žs¬ÕU{@RØcsË+aÆU:¹•hû;®’¼®‰\•,iX ŒÐRìR’l%ªux1dûä"í%q‘Mê’†ý|á“KYfØfÊ$£eí“7ºQÉk.a+;zËÊ ñêTLù‰ý;„ÆÓã’ß®Q±ðV·z<ŽàìDô,2¶NÙ|¸ÉNóÕèŠs=¼:l4ö`Pxo-W™©übÂ.—;œhøæi÷+»>ú ?ɅŶÕÎSp.—‚wn•CÒe`aßP³èÀJÉ^!M$´ŽS£Í|{º¿Ø1‡§K‘ ‡‘šügã ÝÇwY2³\ Ð=ù¦ïÌ€|…Ç0³Be›¬éý˜µ©€= £~BFǤY œ0GF·¤¾BÌÑŸÇÞÖÅ–LUTÁ}N^4š\aAT|ÕÈìå~ÌüÊ“4¥0í¨l©3ôЗñN©eì‘ Íníï¦]/a& ,Åå^/+“z`[,ï;©®ˆ–Þ_`Dyé²…]søôp¥'µJùú„⻌“žUf²ÝÜÃÔ‚)©Æ±¿‰ü'»oíP•ñ^&!®–Ã`#ÞqÙNOMUyI‘+PNqÅÉúÇa­hNî23µAšÔÙg÷cß­Û]ë£'õ>)ÁÒ§:¬MúñžsÍ£c`ØD%³LuŒˆ%KàÚ:ƒZŽ$nþ‰þDð ‰N³Ø=ó¡^Ç$céUßEƒ× ^q›ºí6ÆŽŠ]ŸÞ÷½æ¥üï9k-ï!ú ›>i²V´@‹ÂÛ’ ¿˜ôUŸ9](Wõ‰„ÄRÓ(o’|@"Δ¿‘ïèùíŠ9KË̼kî7×¾ìLƒË8Õ>×ða<“Pb9^{ÞÔT³s®çé^Å  VWs[í1ÍM£‹MöÝÜØ½|‡¨:ìšÇä`Î @n]êz”(¤Î8¯"u¡ÝɃî:˜L7HkÛÐ1WÎ^V¡¥÷™aó’X ¼BÖ¼eÙØ3ňè¿Ð’Sº(âT:U‡§O™>y“²ŠÈçi0Bê†Ú OEg½K×ÉTÍSÑ$ù<î« .Žá~‘ºuséè©%UcíñƒœÀÝ…1UѵÎú½âï_ˆ® tâ JŽ,j‹ Û]Íðä⃒µ·ópÿ»ƒ7–j]¨@ªöb©pTÖEÍFN_çtà$ß`Ð øÞgëa‚•ýI¹´òÖ ÷ã7r×0—oˆÜ¸eÁaÑA›5ÒÓYyP£±Aä}) ~ÃiîªÂÃw6ésÏÔÑÜ|_+Ôç3„<’||/Zý.Ïô ‰!3ÆÉÁºt‡d#Ìd=Î?ÜpKTXXã-¿¶ìG5ªLº7vÊp©*rPéÙ©™˜èNž«¶Yñ² ┪ůªjvONF)ž÷Ò_çpù!*&|UÓûÍïa\à¢[QV oÏ„âEú\ñØÁxAœ‘ÎGrUvƒöúšB=t+bÅ­ƒ…·ÁHÜv¢ÄDýfýhc_,!B©ï¢«ÍÿÕíß=»eê>Ðd«j?ó…ñ¹žnW˜É»\¢–ZéýñKk¨’"žˆ¬°gÊ%±w õf[0Ûõ^ň®|µSu_? (Â51ÿzkEƒÏôW×÷ùêa|f ´m-‹8Rè JÚ´¥„ÍÆR3áüÃàìDØö€òÉøb¥[.êÓØÊ–£E?h‹ŠkoA€Xc\²òfVÅò¢Ë^ð,ÆæîZtm^q¥MY´‘{¬ç±¨|#—òÜÞ $ëÇø ƒâ*ˆœß­½SR3èa¹Ý20šOûšÆh£ã{n7°}ØñéѨç†ÙD$ÁŠq$‹ŸôÝ)âÔ‚£²ñ;G/òï9 ŒÆìRÚ»^Êóèì ½ÿ*öá„}<¿9Þë[f¿sL«Â^`-iw§mf—Ù,'<@ÞàÑ{ŠÔ ñô+ì‘»ßVùvåòÔFÉ,(Å*Cd¬gÝ),¨¥V¤cŠWÛö¶ 8>öòSö) ïGÆp`V¶O*ç>&%Oímotí g_ra:#¶2µÏ"Æ—òê 9æžß7øòc¼¸K‚µT¿“Ü£Á»qaé÷ ^à<­kè%ˆu“mߤ5ÃzëŒCvè ÕMNŸ êa€úèá¿À ny@‘ŠçÂêØ ±í>—=³{¸ð†râžÃ›Á ¡­ i¸P·½èJ«6F[ëüÂZöºÕ«b&ÛWU=ÑÔ“§BÍ}k--_»=ä .úHÖF´ÉüŒ,`ZzWM<€Y¿wöܵuØDxè†Ù=@5Ì3’6S”Sèqvd S“K…°¾éOèÅ3#|íè’VH^ñ–«.­kk]PêwG“ÁÌ@ëjêàˆ@I Ùï«Öü:Åörg½áù /®,ßOx˜ˆÖÊ×éÓM«ìøx™ó1A@лó8Õœ§3GvcÑ‹V;:4{‹ÀfÛ×yÄHœpúQ=ÈVÅ©ºÛ\ñmÄY„ peMÑÐ2Ø48#ò¸¢d6­°c-6RÌõ˜*þ¾Çû‘RŸ%i§sÕ‰G«<,ÏLÁ/ìjƒòQšê ñ–&Õ°.šÃÌB?vFÖ5‰¼l± ¾ö>‰WKÁä'ÛbV[¬ù„Ó÷ëIK_ic‹aÃ9 ºÚ,Jh¥~±û$Æã×ëÚ3^Õë¡ÈÜßhÖ§’}ÐáÖ¦¿»À¬¼·R§Y(ª÷3qüâ]LaÕ¢Ø0:äw²“‘R]@g —Dº‰Å­37AZ‡hx*ëlÝ?¿TÊÏ ì"Q\]”|!¢hΖ·‹kAøÒÃßM$æÍ÷ºå€C$Qä>”ùÓAâ%ö~¯bv®sñ#¿>¦„bR_ººçùÅ7TÌ¿xùEǾ§6 tk@Ôˆ½1:cèm$i¤9M”ýªU}íÖ-„ëù@Ù3·§ò?ØôÔnꦨx¹{¼ÐìWÊ8M ÒßäHŒ4›õ,ØØë ¾CY<V('®^—uÄ}±ªgw2™±¾Ml¦TÏí¯Ä>Æ8Ñÿ–=zÏêǦô]0ˆlûFÚ’ZR)…þÝ-òég”ÈB(V½6‰nóŠþe›-ã1¥ÜNþ›¸LØ{c#‚°lcþñ^®Ëö ŸoÓg„e¼Õ®~ÄЙ;Ødº<Ü©þfép/#°œy=Î܇Krþɤe¾#âc¤MZ€_Ò)Gb‰NrZâxÅYÒr@zNMÆ_“„LØõ€Ò*»o\¾/i‘Pa T+L,¯ióªN—Uuz6‘~ ‚ì,×›X_·*ÛYU÷-\&,ÚøX9u{Ջ䘌½YtÍað)¶­L|“‰@!ÚÖv3Ã~¿4¦Y];Ó-²=×TLÖÚ¿ È­~)×&{%Äm}Ü„4d³¢Tsµ Œ®¼„´ð*ò®Ë¶‘A·’§ç[‚B=ǯ$£Ú AOÚÉNŒ›wew\r¾m_v?ÙÂ=ÌØðyyUà?3oÒ$çÏjâHî¬ÍIö 6°#Úd°4d–]+Ö$˜„Ù?R}O°¼óе`;åÍë  ñÔ“NïÐp)},ƒì¸…šÊÁóÓUãŽG—ö߃N£i£¤ßN3õêT–—­WŒ$è]5˜Yjçc¥¶ÃiójØ|ahZ—蟅«Â9 l핯ô¿ÞH&n&Hó }ó âMx“ÀõHzÿòRk•Ú^i>çp?³Œ¨þšqÿu ÒÆy*~=‹£ó/íýUØåÑ»ÃÊ2_‡öRÁ•ÎÅ˘a‚üGì쬶MûijßF‹6/OnKÌ?}" Q ô·§|NÇeiG4í”OÙ¾AòS¡UxtI^¶5fhÙ"ªs7ž’à‚“—*=«|öfJ AȸJ(ì/BOrg h ³©5ñžàÊ5ÉŒ®jÞ„áá‰ÙÂÚîµI>Óí…ëeõÍ,¾ôåÞ<¼60å)_¡¯aUì›.ŸK/èÅv=ßPÉŒ›Xõ1,4§Â¸2zß3>o«…¥Š©$@‡*~°ÖKù7}2¡SxœPé8êý‘´Ä5÷”Émh1Œ>mÇ«ÛÜ–›_ÌgòºyÁ$îŠYÄ_ªóo(öhJ/ÂÚöȼÀ=«Ê¢€ð S ^¥»Y(×N6oY~ßqZ¤ßZñâ+"·à׊ ;"]PnÅ)µÜÖlÈÆP“÷Ö’I‹6ÿd‹ÆjŠg¹¥âǼ`×ÌœYß’Ä9ÈeÊñг!¥å­1‘˜«‹¥7  ªÙ “xóõA?öPÅüU¥+øÙ‰§ùD˜vì/Gù¬¼ˆ?ß°?ƒ_¤jƒ_šìœ¨µ×u++<§3¹ Ï•-'æ›2ᡟE/µÊŒªTDõ‰‘3mc* Ÿ&|T²-Hyt(uý³1½‘ ”6ö×븽Ñ~L©nY!Oí$ÁqÄ×¹ÁZñÉöû}nãôgyá˜dùÕôjÓÍDLK~â«dâKô$ߘ¬œÝÝ™P×Ì +˜sX¾ÌIÓ·LÉæ®|þØöó9¯û*Óëº_øµ‘¡t’¸tV5æ<êIç™l vÚ­‹ç „^3Ç}<5ï˲ïÂ¦Ï  m! +*Ú|i#y4Ì´Ü~›RP×y'щË$ðìÙ1 ƒ€”-O÷À„‹·Ô.:5ßÛº%lMá’'Ä¥ŽÇ9E' —ÏúBJW%ej¾ä;™Í C/‚(__‚‘xÕìîŸÈtEÐo­¦«i´õm’j¿z(ЉÊR·½°r‰}2×ò“éêùÀ&md›‚Eè/½dÃÿÃQ <Öê/=ä&|ˆÂ¾kï xpímTëýX²ORcÑòÕ"Ô|°è$“øÜ§kåÚë{‹´/¹:âÍuÖÖŠ›»n]^{¦›Â ¥=ÃTd~@Ý $1Ë™jRÅ)\u›.·8¶Qëk —kÉóÆÎÜË'¥*ESÛÝ#È\®W› Á”Ï{îôb™ê¸ ‡‡.Ž4+ &±›ï6wójóë> stream xÚtT”íÖ6ÒÄ€¤ ÒÝ "!ÃCÌ3t— J§€Ò Ý)©4H7ˆ”JLJúžóž÷üÿZß·f­gžëÚñì}ïk߬L:úܲVpKˆ†äæãŠä55UÅ@ ÈÇÊjE:@þ¢ñX .(&þò.òŽS!ïü4á0€š«€OÀ',Î'"ø@±9Â]Ä 7¨@“ ‡Ax¬òp'O¨-òî3ÿzp€9|bb"~‡d!.P0Ð!m!Žw_ƒúp0‚ôüG  [$ÒIœ—×ÝÝäˆà»ØHq>¸C‘¶=ââ±üj r„üéŒ`` EüáõáÖHw pG8@Áâ.ÂfqÜ} ¯ªÐv‚Àþ8küqxøël|<|ÿN÷Wô¯DPØï` wtÁ<¡0€5ÔÐVÒàAz @0«_Ž ü.ä‚:€,ï~W(Éê@w þÕìuB"xP‡_-òþJswÊŠ0+y¸£#†DàýªOêß»'ïŸÉÚÃàî0ï¿€5feý« +W'^CÔÙ¢ªð—Ë…÷7gA„€¢"¢‚ˆ3â¶åý•ÞÀÓ òÛÈ÷‹¾ëÀ×Û î°¾kâ µ†Üýáy#@nÒÅâëýŸ†"<>>€ŒXBl 0¼¿³ßÑë?ønø.P€)ðN{|à¯ß¿ßÌïäe‡9xþíþ{¾¼Fº²²ºO¸þtüo›œÜàÍÍ/àæø€"B‘»ß¦ÑAÿ*øw¬*Ì~ñ§Ü»súWÉn)€ã¯íàü3™üN¶Çß*7 Áw¾ÿ³Ö‡üÿ$þ+Ëÿ¦òÿ.HÉÕÁá·™ã·ýÿ1ƒ¡ž9Ü©Öy·šð»=€ý·ëÈŸ­Õ„XA]ÿÛªŠÝm‚,ÌæNÍÜ|‚<@Á?<¡õ€Xé@‘`Û?šùÃþÚ5( ¢G@].wQ@àÙî lw î„ùÇBÜmò÷aÈÝ>ý³Enõkñø…„ 'ÞÝèïÀ›ïnC­ ¿¥ àåÁ‘w!€»ž}Öp¼_c¾Ó>¯Á/ê7ð‚þF¢^Ë#¡;ät7E¸Õ¿)>~ €×ã? €×ó7üG`W—»&~Kë®áß7âãÍNÁÁCìªBšÏ*dï»soŒH`¤œósä?ÃAö(ŽY¬$ègfÌ©+Ívó)=³kÓ’s>ËZœþî½^ÍXã)xÂͨ´mÃh7u{‚:‘è}JÇ+‘{U×L¢;y¡’ˆZh³Vk{Ea†%˜ÑÞª²Á²ß`Cè5{öªclðZ”ÙËd­4fu‰Ös¼÷râå¾þy’núŽÈ@5· C–HÅÇýt ‚ØåFóo¯²ß¹}M#õ¶T&“ùjÕS²Ä™tV¥ul»~üÕœé¡swVu7Î^†r‚_ZnÌ@‚Ìp|Å÷x³©÷a°Er¾‘6iûÜrš!ƒˆ˜ó¡rê|ÍëÀË J–¯+³eû¡ôwlüÇ=½ÁïÛŒm„mSŽzmôÍ8•f|ØúžÝ =Ó×ää|”4&‰«š¬#´P6¹¸£›…‚E§#»‹çoùÞk¢ˆJEûøx=ùaÑò‡é KLA.+Dø·ôš”ðS—/QÇÞƒ›+;?ü >=U×åX Þ>FêrÒO{ ZéÒþZíD®ó¨ ‚`BDõ“.,£9Ú¸gÀ%4i{Éóa#ÒqÝ hò‡`&øÕo›ŽƒD»Î2>Ê}8µ=ž2édNm,_p]¬˜ÅgpŠYüE<â‹ £ÒIîc—î,~Ý:'{®ÂƒÉÅž°âŠX¢¸%ÈGl³,9ÿ¸ð[ÈØ‚ƒJI¥ûÿa½Ÿl|ºÄy¤Gôzb”qíÏ¢põr4†ˆ×˲ïïïÈlw–z±ŸÐ"–aÕ4iÈLͤ¸¿8dÎÛL0W€ÒÂæ¯Je­TÎûtB'm\ŒÓë }KSz›Æòt}‘ǯh7*‹|à EVÝNíe»²éC<¡cÇÅ;8ÞQ*¦C¶Z,¬êTÉIã|V‘)Ù{Ó½%~Në쫃1ŸúE8Öë¸mÅ©ß <­>¿ná¶¹Ÿ<^Hv Úv#£ "ß¼MëQ]»Ÿm8^½ŽÒ±º°ýÄżŠNƤõr"˜¸P_õá›ÌT”þPåqz¬@²¤Åä£Ú‘Ê57Æ–[Zy€ºÅ#ñlúü’epôòæ~¾¾ßefS‰@õg.mVéãVÓgÛ‹Ž#òT$ò<{ã—J£È¥VawÁ‡ïY,3Ü ‡´UŸ&‰Û$J…RtaëΦ×5zŽw\Ú"”Å^¾ßºoü ÿG˜Y¬tc_Yiš ]'ΑŸáCÓ•¦œ˜'^f#+EÜÕëB®ö¥€èo‚æƒÔ¾[ÅÏŽ_Ô| [Mé3`ª™ä¹ýçX= H™’Y9Tõ5yÌÁzáT¬Þž] ,ïy~&æ9«{àTy.~I¹õ°’z#ÚöÑ®Èç{[fâ£Ä¯®®-l)„ xjžÉ¤ˆk*߽؋1‡—™“??.yŽÓ`*6r(ö”Ü.:¾2¼håÚ͈kë`ò u¸ÁyPÛkÊ4׎T#ÕÕ7hÞ àX®:ÌbÊç•ÙÐì2×êåæq±G‡ÒZI¾Xp§¬†‘>Ñ)$‘2ÉA~!¯,š†˜¬¦2¡ŠQ©ÇŒ~ì([ë¹ –Äò¬ó ZŒÇ£¶ð²[ÖÏ´eîßQ³ÎFœëÛˆºöÚ1ØíÛÌ/(Ù/JeåºÊ¸JÇÄ£šE¾÷‚¯¡q·«÷ÞÔÆü„M–ó+u«ê'ÜÃØŸŽ)5Éyïb± $º9v]fí–ŽK)³M5?ëïyÄ–‡ Ýó\=%¡8z*Ã!(¹yj~O Ó“'^B¹ Û¬¾õoêÛ =½ä‘´ ¸ðóÍWW½y—í”ÍÄÙ¡ˆÝoeÒÁ ûq ³€ù;ÈÕIC©Þîi ÉÒaZ~Ì3œ¨ÉM —І+x Ù' eQH¡p}N.TÝæw1ZÉdRæzG—¥ƒ½,wîýçl S¶S OŠÏù.ø™üèjõ =Ñî}ÏEc¥ÞÕbÝÞ I‘L½Û÷|-Qúç9'7/¦ü¼,¿»ÂSç§eâ<]1‹ÄUß©w}B”æ,¹Ÿûø–vÇ-šÊ±5~þø°>©N¨F™~%ZɶÆ["À ··,˜gИ:³h³VUM4^œ§â%Á®1Í}T¿hìQgãÞVAçwcÌ_3ÉÈË’J)ÇM„¯Ç­kCyºÿ¥Ëm7(Ì5üÑæ°S/:Îi<àV+zRhõ>ôe±®Š6Ø.~íÇÙý¬é–òŸØ…x¡§2TübhÁÁ. ¾êñtFJƒ ¬¯š—ßžù³e´øèœ¤|:;âà»ò Œã: vÍûîýAŽm‰é‰sYpuÑÆec‹¯x#Õ%‹o&Ö"ËpÙžë˜ÏIÈS*ììòWF´XX£2×® à¤xtÜKÍå‚ò®JûËÇ,È®ð®Y¸æ"ŸkïÝÕF»áªQ-5mðºŸ:ÉɰÔ/ê¦?æ#ÑDÈ ±8нo@ó–¦}Ä‚WÃ'õãó|g"lÛEÒñtçUù½Ûx®•ŽH]L¼kœ‘8ÉËolœ] ³Â\Óß¾7þ|®ž½G`-‘cŸ/´L¨òû(9lÊ#L.úÌ¿[·ÿN]\žbQxoCب0”êù?· à¦¸Fœpðbõ©D_VòPn%zcäg\1è½Ôű·¨[JØsìÐŒú Öë,1Íà'} ±6ÆàÒYõ½'µ…ÓŒBM¢ ú¤kŸ=ç^ÛÑ´öÚdå«äGâÿ`dAð¶iiMŽK¿åLO—)¢¡(_$9wV¾ ÓX§Ö§Ñ,ŸÙ5ÔŽ‘~“‰³'ˆy µš½õ8ËÂj’w~jë7!³&~ázô#Z-Üy$Vœ“K%ñ'É7¥!ÖpÛ‚ú(á¥f“¾ê‡æ¸ÃöRW)­,ÖÊ'.ê,ØÍ¥íä1e‚…JˆÏ\h É6^Q}q§ «Hª;QžXïÐýªÕ®sŽ•›‰o*޼ò74 ºî‰°ö¾ài0S ~SÍÃŽˆÅèÎ%.AáÁ- a’ÀßÇ uS¤˜÷ µeÃüžýüPû”KŒqL¦áh˜êXnR¸%Çq]]Fœþqsq·â–|u"ÝŸ»nÉ ]¢®#ç×àóE×¹iI_T(2’f@ù:0Ÿ´9±ózjL,3¹¼ZHfï@"ÔMu5Yï!\èÆý¥`È›£2†Ô)”ë43’Ix2Uü‰ª9 #•WÛ ’ mO!ã -j‹H¦wÑÌ&€2¤u…çs”XŒ‘À/˸׎½ [(àëûއ ÁÕWµ6…Žr=ü¶Û©´ò‰Ï9‰‚tÚo©&ûî:÷.Íí¾—¦±Ïuµ¦˜R&šý¨,Pª†Õ’â®3U>!ÅÌb˜TM C‡_IÿÔ÷ƒJä­Ÿu£643ë¨q%ÊœYÆ^0 ú ”õ§'qÌNÕøŽŒ5·Iµ¹©Ø·ÔD4‘öTf»®§7„Râ)…ꬊç8ÐÕý—Ä_TŽÒKgÕFÞŒ™œ®ï ¢Ožå<€<ËúÑÞ*ÝëøÀ¼NlàÉxcÿˆ¤l³¡þëL)ì{híÖ` *ßZÙ2¶šH1¹òz½SRÅy±Ãá gÔë²­¯$Ü{®×OB£e+en4% 5h“0ñI¾có2½K¾¶¥ëa¨pPò[bŸ Äá:.öH!|tþVp*7hÑdœ›"&t¦ à÷?~óñ…•ìž Vkù%å›WÓ.”}ÅS+t.³ täåYù°§¾"¼ L&ÄØ…áÎßÓ\—[h`Õ{û[â5_Mbß~4YÆ'—šñWÍxô>”àá:S­§K4¿Œ¶#þF¤ºÁN8O‚  ¹¦§0ìÌCc¦wóËå§#oõ4€"™1ñ„2–ywªÉóýÙ‘|òKQŒ#»̾°Ï»þFã8ŠÊ>®*޲5IY/² \<ÎLî*`ÂWÒ®S] ”Ú½G5¦áôbuvMÏéú<ÐðÉ!. x‰7ŒÎt%$¶fÛyN°º¦‹‡™Ê-u>â1¦Æb Q»p\^ŸÞ‰ÖP”7 u*ÏzÙ‘ÝkÚíØº)\ªF£4;B¦òÉTIÎyn‚÷äê|ýd*¦¢c}_”Ï·•!ó^Ùڭć"þÛRtÕÎ •ugd¦yÔ«·Šo¨YÍR‚¬²XÛ’3XyXƒ\‹ô¡Ä4%Œ÷õQ‡~fN‡%À*hùq7DpÙkoDHü©‹¾¯^Ö6U1Ò:!ŸCigÚÔ)a<²™5Åaœ»^K€ MUÇ@ÏË*áž³L7—5ݨÛSc6{zÙ‘v]Piå_ùŠN¯îƒy=6Ü<ÿŸ°Ñže¨ C"Õ?JW`]ü Ê]B´8Hó›6G›´Ë@·:¾ƒÜB@…œ…~ºÞKC¿úB‡÷ÑÀß«|ýR{¹p»Rïs‚&ñ-ž„|#lñªööÕ׃¡—èiDmøO‘ïÆ4§™MP>¯¿x ‹_þÄärðrki4ÆCÎ(¿ÉÔÀ›5àíöaÈ/”4µ‚™²(IÑZ±èÔ¼þmM¹Ú–äçLgV𔫍úÞèÛ‘Ûý: Ö]Î QC™•ÉN…m’Y¬µ¹Á7‹“£¶be…&Ï®‚þù«Éž÷èÜ…zuã‚AËlé_©ˆàãK^ uO0ƒ­Ò9ªüúì•ÍãÄz™åm·ccíâDk¼tÝ =¶å—VŽŸ̺ØT2dÔf­;µÜýÆ: ¨GaßæçÚÙ~Ê”ÁÚæX‚?MÕ”ÝàqÜûιRëqÁî°]´ðPêãdR•´æWÜ7¯š‚$êfÄlK'tB‰bG3ëEøËù?²jôäÃq:`Iº\Ç ²= a=M¡¥ŽÜ¾…¬Æ{ùÒ:XŠ íZÈUo%hL¾ÈŒ·IÖ`h£‹˜Ã“ü°oo n+A 2Ø™iÄ2$šZ;cŒ4“éŸð?€œYr¥^y’gÛq}}5±VâLFìM¤ÁVª7}¸U·‡Ãâ²Óù:›],¼Lîõç¹"·2~Ì™¯ö¦Å#ïí-´`åj¯Ž’³(µù„.¥ b” c ´ÇØôþàŒUGÁŠOû\ouq³λڡšãÞöÒ•¢ôñT:ö¦s;-±'hì:GìÒŸ+¯zaÉ6ô•é“k]¹Ui¨áJsR±«ß´fi™}‰ö7fu¨}³¹~Vw÷wj»Ç¿ ¾úxØŸÆý¥+ïÓÀþAçR*^È·J,¯I—ðQF°hcŽ--«÷]81hóÐÅ.@|ÕäØ3(;Z¹ Ç®&ŽLb‡]Š%aøÕ³ÐÏÊfâž"l°ózø\‹5<òE6p´…M¦ítGCƒÞ³õ”ÁH…k‡¥[áæðXÙ&ϧš÷‚Ø0·Q¿ýƒÓuqÿp Nt㊵Ù6¢ùÆïeÈNðÆži«»³:ƒ¦ÙBà`Åž¥Ä“r í»FU –JuDrÿy!OA´†Åô‹>"ƒ¬JõÅ:¸®ª&§m«É¹Ø/ß-Ó‡GÄGv‘Û™µÒBöa²h(6Ã.Ìq&\§‡*#Øg¼z&B0 qW÷~pÙíäÉg#¬v½W4á-39‡SÂmà¡Ùå$Ó:[ÊÀÏèÒÃ7Eñ4Õ€™Ó'³[þÍ4 ‚”£ Dmï¹bfîY8ú˜Œ ´at:j $‡´ï¸ ]M1ö=_­{±­¥q6íÄAß6ÈX½Òv²R‡†å_{š¨ŒCžŽ/LgÉä£âY¦|š;üílÍ6ÖïyÞÍxL€Sù圮5)ƒ½ŸxZÚR³Éý½lWÜö0=Èœ—•‚°ñ½ÂPFêZ'€a@vyÆë÷¯n¨>IFwCK$~vO¦_8>—Ÿ†|×év¢¯#ݜՉ~ŸÇ¨Y:RË\H†º=(=Øÿ`;‘CN Ûü,åäoÏm~°²úRQ·YÿH×,“\ØÂïÕÙÔ\]ˆò6µ&ÄÓ§(ÎÁ—h{pÚ $¸aˆ¦^À÷x,j—LÈa¼µz”x¤Îôy2ýÈ0ð *ŇȶÝÍ–íæùÜ&¦­Šat{u›§³÷?̆øÿ|¹K³é×”˜âIYE‚oùj+5ø4oš»5pµJ™o$GÑ÷å¤ÉkÙDå|üžTBï~$ÀÅ?o»ãtºNwàÖ`=¯YïÕF“Î3¬ÞÁ¤T¾Ü’÷Ïô}® ÃʆN\2T%ƒ£•ºr-ž—SjÌÙ¦ 8j¤`ð¤@S=Ózb”§Fn"\‘HPèÄUeÀ`Ó@[ˆXúÄâ}-óýÀü˜8Î_úÔo6 Í$¶¬2žÑ^“oTJ÷بáðƒD·XWy¶=¿äØò„ÚœmŽÍeÆd4£â!Wœèã£;éñ‘S@tËŠ.H6(òzÇøœ×k&}l—es,/f#%Ò9 fx+9ݢѕÒfb`c’ðÉɨÔïctèV{óÕ2âÑK§ì€H¢RÜ–›ÙUÃ7Â%3;Î#˜dì]¼º@“f€},!‰r?ÃGS6]ÃéÌ3ž×a’†M¡¥y%… €R!m#{Ûú@©L•Ùïöjžöu-¨xUÏÃéíÌò££×µ š3íC^LPHåœçk‰!åx•~¾|¼áó¶ÒyÃ!*½ 4É” Þ÷‰t)•j©ƒFg(×›¬R<±ÄÆL®¶K*½»7ì³ /dÎr½«—ü´T+”ž3_YÌ7z^³LJ€ I=´©vžǮ› ûq‘8•2ef.»RJj:éûT´OìYO2*Ä­rælõÄØb²Û8%j˜ìÂÖY,Ü¿Mè.µ¼E®—©§·º¿¹vùq2rTq!š®27µÑ›@n;¹ïJ;·> stream xÚŒ÷P\ ׊wwH qww îÁ¥qw÷AƒC°`ÁÝÝÝÝÝ@p·33ß$ó¿WuoQ½¶®mç4äÄŠ*ôÂ&vF@q;[gzf&€¨œ23€‰‰•‰‰žœ\ÕÂÙøž\èèdagËó‡¨#ÐÐ${oè ²“³³H»X˜YÌ<ÌœZ9 ‰…‹ÍÿÕJ9‚AØÖÌúß6Z8‰[¸M-œÍÿÞ–¿åj¿®ÌÚ¨hçdñë± æÿè@§elzt8Vò/t9ÿM)fklgòëÄXØ9†ŽŽ†ð !ƒ;À‹t‹&@÷¿–ÀÈ`kç r€Êó˜Ú9Âÿš(;€Qø—èoÄ`ù8Œ¢¿€ñý¿ˆ€ÖΆ¿ÕÜF±'€Qü7YKüF,FÉ߈À(õ±¥#9™ßDNö7‘“û@ää#…ˆ‹âoâ¢ô¸(ÿF .*¿ˆ‹êoâ¢ö¸¨ÿF .¿ˆ‹æoâ¢õ/âqùðü~wägôx9[A¯%SçßrÖåŸÖ¿ P"ã;(˜±5h­þ'acû%±±ùð×¾1šüA)¿#€Jþ'3 (ÐÆÄÐÉüˆh+ÿ”qüŠãàºåß¡A}6ý A¦@¶_Ð☠ü²³þ‚®¿™1ÿüÎþËÜÎÅñl ³? (þovl Aš{Ø›mÿ°ÉþÈÏ*Ýò“ÕÔÚ?KõÝæÒ@=ý™äj :ä?ô Úí~“9ÛýG *Æþ·Ìô~¶ýÏ °1ÿ#ýï°XÛƒž¨vŒôW«~ær:ýõ¸ùwoX~ íœ&FÖÿIÃÊö[ñVãÍí¹ÿ‘þטù×xÿ3¨×N¿rrÚXüwWÙÙ]ÿ;(ˆèøo± Æ:Yÿg™A¬~§½jÍ,4¨™Înv8€b¸üAsuý‚˜¹ý±“ o÷? (¼ÇÔDÏßä@‘<ާúÏãÚØÅ47ç¿^¨ «ùþëëè4†_š·3æ ¶¬n½¯&p£ßçŸ!ßÓH¡¦÷ZrlsyD†I¤®HÜp¼NêF]Ý£ºZ&úéuÒT Ú¯Ôòäý¬«<µ×¿8‰Ý?‘w"\Ó÷î-½ªÐ¾÷Ooõ+ˆ&°iò¯.\ÈŠ9÷n½î5}Å+£!ó{Jû2ÏÅÓôQj‘:³äÙFs¸$ÐÎôï`iÐ/ÝQfongг&^‰¤ciá}N£Xó½>l²D?Ìy®•ª²8uâ‘á}À}qƒ>:Eá%r˜$³àU˜¿Ú¿èÞÄ—O”…D—¼JÊpÈ’Va¡aÛÐSå:ºÔμû5LIб_UÔ€©ïH¢€UÑ¢á\Åj|wØn*²Öz«Þej™üv™{ºæ0‹¤e~âߨåõTë°64ÜO’Ü|?Ô0¼Óå£Q Ø'øÖÌ™FÌ\;|u…'í]2T±óx§P •nÙ5‘ëÊð#ŸWàw‘G|æí<&¦\P=`£oÏÙ¿zö)«»”oßœE[°vC× z â5êH¾¼ÌÃ3g3H¡ÊNëú”½C©Ä[ ¬› *f¼Ü,Ãfx_äA$·Í¾ø}€,ŸMJ¢go¡|(\'ÐÃò;—á\½L­å3{®ñîiýØa]À HÐÇ^î[“ÃíÛ’=¬#;õ‡Ë2·0‘¡è-UÎàìOíÊþYN ©ÂàßîvæzàŒHÏTE\‰mbP4TùwÆ:¿=»ÑK½'§Ì_’ë“9â õ^Ò]|ŸßƒWé/„ýé¦ÁŸ¥ºMážê b:êZ4yúþ ©~ÛPƒú÷|ÕûRÏÍ7= Óc;Ä#S;d^Öe:l½^öÈTëX â…ÿ/×üT‘á/¦áëjnµËo«Òfû§ƒ£"¤0m¬L˜ã§’€¼"ÊôuÙ|ZÌ×ùøLËmÏ ¡G¢˜Fþr'êu̾%ü:Z`dïÃÔŽá&÷Ÿ9³¦Ý%²•lJ¾„ãíZTÏ'd/LÁ˲¼Á©ÒÎü‚öc'ßš8Òô£f ¬ñ!Z웾9JÌÁ꘤ïÊЬbÙÄÁôd~¹þ5x£ìȶ®®²2MpÏ@ðš3éAô+”vbû5—»"óÜ»k~ç‰{É7Ë(H¼©M>Ž2.ÌG¬O_ÔDß@Y|Á®•t.«žšñ¹õÀ%œñ5&$×Ùp¸ð×inÞgS`s%ÖNÓ¿“jΩ¼¨©xÆêß7ŽÀgÚxWr%'ý —¥ÅT:ãêű›0¯sßwÌrúBŠÇ‘¡:­%ð*ƒ{Æå¤ŒÛ¥ýÙ*õl.ÿX;ﵫ€@Na†u5ž³Á‚²¨ûÖI1H"wzlÓ+Ô 1R†›Wf³jDδ”Eóhðå¦7;~#žÑô¦'ú\QŒ%›‡P]˜ZED–qŸ¯ûœ£X4S8wã.Ú·Ük¤Š´yQÊV:Ž6âMÊ›`./åE»8´®^Uª]}Kp#á?o;9}Œù™d ´—·±mH»r‡¯þ%_«ôÚî 3‰`…˜O²3Þˆ'J¨gõ $MÝ1F‘“[˜”èûðsM¦ôµÙs"RÜݺø¡„¤[Z ¹¨.£!òÖç@ú3äªÊàŠ]öEÀzÁ…2:v#v~[‹xÔDq›bÃa›,䔿û=ä7\}íqMõ04œëJ_+T_o\ƒ¾>À‡éâì_–ñƒýÌãã]°¿Ž4 µö‡½*ÝÍÖ2Åá`Å—ÜP4tòÄSÃÒ¯ÌÃìÿPÂLHS¼;…^#G;`dïÂëµV< P¦ÄŠ}¨®Î»˜Ý:6ƒŒ„^®À ¹iA×ÊÅU2OtÚòÑ,‹_‡SˆD|óQFü^5Ûè)%¶]= ÚšÊÚ¬¼+cÙhº,j¸ñ°x.inDgëçƒ!›3Nå¨/ „{ÛA=¿±`4ç¤gu–ãdf‹ìÛ S–{Ç3ÿV6ÓO7í²Ø!®ùÛ÷£Õk}$©Ä„¾»%¼´œö:ynîxèZÛðzkìbåc«‡ñXèo³ôW›’$êî¶.ü©…­0¦Î™ V¹\®]hÏw–H¯x/éü<‡j§ÈáíZ*6¾ºC 2¥8¢Íâ¡k0‹»OœÏ&oÌ^lb£êÜÕ=nê–Ѧ2HtI=}q“ ì]¯º2ޅĦÞ.ö28Šp"òmÔ-e~ìu.6"½+äz3i%:!S öu†7·óx6Þ:@ü‘ a1Rþ:üïæV¾ÉKi÷ÓX\êóMk8_ÿ·ìÄ>Œ`Œb§ÎoÜ|u1H¢bÕrÌ7Û†zɱ”âÇÅóíÛz·§Ð‚üÈŠ?·‘L±²¶Þ)r/pŸ~ˆrâ£4Ø)#D:u\Öxà‘OÈ?tš¹Hh ‚6 BL×{§±ö‘‚…Í ½ÈÚaŸl–Eã£Úmícÿ©·Ñkî‰Â·,Œá1qtÝ5ÆoÅ‘JUpaC :J‰Ýâ4Å«ªØß£õä·&ú¹rAy!*äª5òÍ2œ1°´Ê©ó§ÚŽùiσZ7}gZ@ŸÖªÅ·ˆùw‹Z¡Š?àÇÅÁÔÄrN¯_"/gd‚:çP$#)«ëÀ>( £H-m:“çî¾&¥wjRsöR´?5·Í@¬Â;Ò¢œ]1ì®WíùN©éè7»‘Êh«o›!-›K•$_}ðudò |Yü;/ñº•K=«4£õnÛc_ì3ÙŠ\]ØÃ<µl°¦>¯ç0t×í ÙÕæý¶øÌ)d~Ž6¯çN‰˜Ýý×W¶6 hR[ø‹î†n.íÒ0„¼b=æ`‰EE‰"¼pŒa4ü>ÔŸ^î3áØ"lÙ4sRL1!£ŸÒ¹­ŸM£å³ï€DoD±Æ@ônòM«å:|dêMª§5ðô(t "ÚÒ¯ñ,Í ùÁ"è:Û ~|Ýz³Ú£ f˜KÌ…7—gŸ´Škæ¶D {Ϲ'§%ä¡¢ëûýcxjÙƒµÈüQi<QR†+1ÓÃaC¸xB âÚÆãy‘؆¡vX é½¢;›¿äǯXÞÇ0ϵ¼+„ó˜¨Z$¬"?Ø—®Ÿ÷ï·$uHfJ´¡ï™“ÆSÏŒÙå﹋íX8¥[D~^×91Bœ‡×›Qý(rÇR¢CvÐ.ßæ‹—pêk à!R&ãÖåÀ¤{´ñ(§¶¨Ã w:²ì¾Õ(ŒíUÑ{§,bhÝqâ^£ÿuA+ƒ§š]® rcÿ|ó"#º¥ ¥ŽÀ¯ð‰Ñ2ïãfßR6±ÏºAÂùÉ{ ·þƒÅ»óJšMdÐ’(£ÎRye­p~ƒs KZo¿ -Úb•8&¡êÿ8µ] è†EjWxÞq–‡¢—E²MŠH„Ò_ÇÖÓÿ¸b†W盉ÝÃe@X9yV(#º~Éì­ïZ%ªˆm„H8´îP² Á/Éñ›¡î ©Ïx¨Ë¿bŒâ…QÁ£DÔkºáÙu†”®²:Æt/© £b’æoÆZQr.H°R¥lºÌDåÍäûì@`»¸ëàl-+ʯ٠`ÃO†wˆ]èu˜ÎܘôdU¡í|›«ÈÜãKWaC`-‘N’[N´¦ú>SGKØ RÚc´±—g—áÓø ÷¦îYY\7 —L*ÛüÐ4SÁæ¥æÓÑ×{Ðó£S 0E<’¤•xzüæxL vVk¯p& O†üÐ8_¬¢ñ”ð)_diTJ—À_šù@z=ÓŒfŽ<ª­"k^¬E¿è«âøâaÈSÔ’(š›ä%䆌z« Y4…£õ;⣻ÜÚÆ>ü}z¬BFOPÃÐ{IËÐÔ',G¬@÷Õ$ø}†nåÉùŠŠì «äòeë^^Ф R¾ƒå/•WÀÏÔ¦S»âži  ‚9;RÆo„T$)’ø^¡ZãÎ!®¶o¸02Äßêì¨W³ö]– {x´îð|Ÿ¡ÅÌ4&Îu¿„J 4š{™ÿ´Åhêú‘”v2òm`‡D¢( ­ì€ÒTÎi f–HSCí§Ïóm]C£Vo]”‚ÿì¹åرdûE„‚ä+ìÐX4‘þC}ïahõø•_ì¶t£k6ru€î*)<ÙL1Ê ¥¨¹`{*_° îÏw-g#•]ß…âËp3ྖÖúÓc¦ û‡‡YÛi€ÕÊQ]Å@;¾i( ]1X˜´Õò²\1`õ¶w}WnÐL)eýõ§ßfñ^ísöÍŒb÷ð©WB´XEÊÿ¸½á¡BÀ¢ù‰‚„AFÃyÚŽýý#b—‹Ç*™ãUÒÚu¢ ¼©±C-{—‡/ñÏ5ݹŒG‚ûÎSd5º2°vç¯Ôû<’W_Û>ö®P•ëŽÞ‰«·¿8LBc ”ºnöÒKð„m}ïõ Êü˜&ùA‡0]¡ ¹ƒE½é& ™[^öè<·“È])G‡ áBVSáÀ -4 —RÿîµÝž«¶©‹Óit-GÔ£wïonyb¢–Ma”ó!ÖñÂÎhˆ'ôÅŸé0©·› ‹ó†šÍ·'¸µg \^aUp¹eâð‚ÑzUeŠ 5ÉvÝ̆âë‚´·ÁÝ#‚r= ¥¨’^[-QÙe Š¥:ë|¼Í ;Éb=ßoc¨MtvkÑŠ¢mûYúgüâ w"¯/¹ãªÎÚo ØI0fàr/Žï YzJ„5¿vXû¥_o™ƒàœ1ÓcêÉÀð2ýÛ R¸vÅx8ªÁtû¨Xfn·~Ô©!!b¶ç¾Å•¬a0ºåpåÁÐSnøžOŸŸ;Êþ…F=Lêžm¨St “- ²r…µà‡"ÏëˆÄaôÆ®3"{zÙ)ŠÁÜ'ˆ €Am!y·ARÎùZÇS±`³ëHK¿žÎó'š8¬ùŸJÃ[…òF¦iWZÛ׃3íH࢖ ÔàZ=§®ÍŽÍÆ w£?»ÔŠJåëÁÐ|ôXk,.¤i4»}eÔdÑíþÌV(ùe,'máê‹^פƒ,Ю:=EíìÚñ.?.n’Sà”º?ï:UÒös&xsa™0'É‘×ûe>FçŸr}?œö¾ù?YqKiþˆ3Í-JŸ‚Ø~øùD‹±ôMSì´ uáx‹¸s²‡„FzE…¹sY‹°öí!Ô…å Ò;Šé%áCiDÚ’ý°Ž¦Xôetþ›$ùì=2×j|U-´O¤+¸å²É¯lãç‚io&(oOïzüÄqLÔ%dçéh°°J%^ò6õ‹j{ ‡nÁÌ#ûPJ>–z¿/rBd½¢IË:”[°¤æÓ07Ø•k x]ÈzõÝnž©¿—žóNnnÖDñ™*u ÄéW‡q¡>«å§?ºQ—_ša„`9ÌòlšX’æ7U¬b…™Ã8 ä§·:Ù!Ñ7 ÅÁË@HpÆì”y+M†‚ï?î>\y:y ôÉí•«UÁÏçñ7-ž³i-èf½ˆ™¿TA`éåNj׮1iXŒ–N×Y­Á&,{{…m|ºŒëÿü€â =âÜnÉ<ÕŸ&|àøŽUÞ9Uþ‚7*íÚM'Cä wUûq"Q}ýóçtø”ç4¥àZíÕu>µ.Mž·Ë+‚Æ´·ä›Upgò-«"*ìÜ!÷A]5`QÅ™$=ó½é5f‡ªG­k»zFE}°Ð+TÕ4d€H7èÒûCj¬ðÈøz˜òÄŽe=Zžù|ù!8ŽÉ¼Â&R¢Œa>ðô–0Oë+”ÑŸáé2lø4c2ôx kù*{ŠcåÂÅ”A½Ø½«85“Ó£b,‹“’Šœ]8„gZ»CôÕâCèbr± º_E>mg‘¡¿ÑýÎBΧԴ¿í»a®·E¸s4zZé—;@º<àeòÍÞm*øÝ‹G‹c";XnÇø15/[ÏÝk~Eý3ì€Ouª€V%U{¥|yeí‚ð;»¼Ÿ Å &ý[eøBÄ ɇÂzøå82å«¢ ¼äΫ£ó[¡öUh5º´1²H'ˆVã’"¤F3LðD¾b¼ÑÅ„ƒ©òÉÓâ­X?vMìîÌûÞ/z€‰6H²*ÙnïÁúïÒ"›kc‹R ÁÕ÷e½±Èò~y¹Õ:o}"e£ -Û"¬Û.ž‰Ò?O—n‰=|—IöVÒò"çò¼nntêef¹:‰ BuGȲ1ÞÀZ)R‘K£ã´ð€kdC ø‡šÑ¶¶ºo,É•çåý¢Z@nÈ©c‚Œ-/?È–4ê(ÜШ„"c[WÞ K7Üx´ É䨲Óud|¥XõœÈŒ6g!ÝÝ>Dí®‰ˆØ_:E œ4éq“"~BJTÈèMªÃÒqI™_@Ü2Übé%PQãoóp Nš*@Eú«KsìÉÂVd|w; ËFöeE¼ ºäÄoÑ`»p““¹´D¿g ‘é+¦ÔäõÅ⇠kÓ¦”Š5öö‹MÃ3çs_u~¤áVŠU‚˜ÜÌíjVõ´W¬y-ðˆW±}nã#N÷'Ð7Û‹8Ô ÄZŸÌÞ`[d[oÙÅüªíåc°Í«ùàìác.¾ÖÔÌW´cÈ“»Å‚ˆ6‹\šùl3ÑõWK.fÃ9”n‰²!íÊXÜ %45@æã¶%o § 窌B à+À-h¬‚#lÏÅÄÉú›› öm€HBë°ä„‹ÑÜ|zKÞ¶Áfчàwy1cxñÀ"7…È*ˆ«M$ˆGŠo¥Ö¾ŸY“ïÞaÎÌ6F™~רÊÿ”`µYÖ9ò¾µã=æ[GjÂllŸƒ/õ'Ä6ÚHÃÅaözàÇ[$A@Œ/4b…µUº:Z­:VxqNa"=tgRJHÕãN™¥6×”( RíT3kÙ‚ Ñ[ à&·¢NÕoÅáø¬¯ïüÌ$ëymTØSIÈ%õGE­µ‚jIfŠ&H<”ãêBDŠ2lóCÒ$`Zö .Äî DR—žÚÈzcy öslºèUPiˆ´®]] —Px/ ÈMÓrÕ3ä0N7:Zݘ”îPŸ}(ñ¦yÒ|5ÕæÕØEŠºÆÈõ Õ£ùðÆš•GÅcËÍ r­cï5âF›ËGúD¥Òí¥µðÎäËUÉ+ºàÓ RÄZl/ú”}f:ÖGZ6öTOÀ1ñbrå^L¨Ð˜W÷¬Pœüì™_Ñ=êµ=KÌVð‹ŸWu4…Èj,ù$Ó7™ŽøÒ€pY œš1"}À7”®sjTפžï¬,Õ·’ÙZ•¾sC¢*{°ñîS‘º,Zëœw{º]ò;‘a¬4f)ìfi²R/Ã]x„ç*êo?ŒiŒr2g§ÊL /Z ç’èÆ„È{~³I†›bzxaäÇ~4{éÓ•l†ˆ8&øN^ »ÇÆWÐÄë$ûö› ‘Š 1Xgä4q¨ ™yÕÛ›©;þOPé0UT¥þqˆâ-Ùß ï:’ÔËÙŠŽ> Óÿ ’¥Tt¥ùº܉@-±CEqŒDX õ½¤ö"\/âZ"­¡mBQȈúÎO ?R‹S}*W;ô ê*Íä°ÎK9Æ€Ò»­Ø¹Y¶„ÂCw!ñ['„wìì•ÁC ã²wæóª]ë˺Ôk¡PA]ÿXŽ¡{Ûˆ†Ôkd2:¿ðc'ñÄÓbuËòÎcEG0ÖçŒlM»z×—P9¬‰·žýeöt‰a~îä) O+— ¼ÚÉø7×8½ÈŸN“”ä=5pדùÁ®”îaÞþûËËù‡4öØ5Yê`¼ YÊØG?¿—\¹83èO†Ûg鉷Í&Ï3è‚{ã7:vôõ°F®:u¾ÃÄFü’0€á+~ZfÓ¶æÎÀ=õ9Tì°´/VôŽ# ï">æ §¨¼5ýþf\7=Ü­®/Ç™¨ê4ß©‘cû[ÛÄ8U~úß„°…ðé¨-%l,ÝeÎÛ-ï·‡IJ!zãw–d†©ûs–ö!m^#Êp¾½q˜ë¾‹ed­²¤êýæöªÁ¤ ¡ÅÞ?™]Ã’Ý—Ö¯úÆíþ†ê•›ßycbªº¬è€t´yPYîSOêùe‹<=,ÄùU~DÁ§rX+:à–N{¤J=Ä#â?rè ‚pBÁ úçóŸ¶xã8 OƒÉm8ñNÁÝ4Gâ}woÏÆ8©`ýP‡rz‰¹ò@‹Ú.Y¬7ûdH1Ö‘ÈF9A¢±žÍu=¦Ž=_1Ä1¦Qü»"ýp>›H¸¶¾ôŠ¿-Ù ©Iõ0@¦ aÀdütÁ¤Ð¾ -¦´(¯6GfC¼ÕgmÐiÇÖ­uÀ\œ7ü¹5Ì—ša˜\,3†4µÍÅiÅw»³ÆTÉ!||}ƒñ–!·}¤\ð‹÷ógá'ð˜.‚åí„—œÇÂ+|„÷¯ÏôqšD ­eÇ¾ï šåÇ£±nè8Î.‚¯•Ñ´#¸}/–±3f|“dÚ']*ðSé¯lgÆÈÁD¡§ ]=ï–Û_xÌïšã?0ϯ Є«Å«wæòEmrлV9G 3Qh\7n-‘ž » fð&¼Þ©³Éê»Sß‹’•¼á $åu~B§¨òÝ4$#¶Ò°uDsÏ“kÓ¥¥þ.­MsÔ½3â0"iiÿZ$ ú"Ü}üñá¢È[¿çSlÄ!Ì)$WCê$©e©ó8WUSÙiƒ9àêÄ~œ¸ýqÄ7 ƨ@ŸT†åpWµ¨ÙnXpB7@W‘ri/N«iv< ?ëÓL@É{ýÌØ Ÿ‰ÛeGB'àx5¢ŠP™]'r?D¯£çºÂvĤÑ^‚MøÕùÊ1uÊ|$ ®>)>8ÆjàšŠõš½=êðS(9±9•—£å®†ßAARZKa÷È…/Üе”à4ŸuÈí€Ñ¥ñpâ_»åœ@^ðÙ¡~®³ßQùàZP?bå&A8ø)›XÄ„õX0ÇÕjLe‘iø*‰V¿c“ƒË¾–1ñY”N8sI·©VûÑù¡þ¸ýëH;‹ ©*@䶯ôuŒ6SÅvoˆçºü¼Xyu]W£ ®³B´ìæ©’YUe¹Ê?^N‚K ÆÔõ©Ÿëž©š|Ë„G·ô®£µ¯)ê3Ò!zG9âÐ7æ‹M0“r[÷VùäÏ3Ÿ}QÌÎwå¢lÒ>YF‹9«À+*¥ŸÚv Š¢°K'w¢…•d_ê ùVŽ[yPÙv·¸q±ß«p§&;4à?Ô V?R¼óåÄäeÐ$)ûüãÎTtº…·£EÔXfhój³žº(\3#ýÜå4¬ÿ°M ÷(©£Mf©Ø°ßâåGƒhálj¥£’ÌCpOÔP>HIâ貺b5Ùª—J¡{oßškÑ >‰)à{Û‹çð$ôœ Ž£0sA¡ÞÛE2£þ¾+K_ì¢*ÙÅøÃ‰f¾OÖÝþ.’Cƒ…Õ>–-9£ _úq¾²ß<œü´ö™äÊ–p»«ÇÝ<|ýS¨tÌûñœ!ŠXÞˆÞºò~ëTë=DÔEg½æ¼«ã`9•ÇÝÛtgiŸËŸ 0ÞÆUmß6w-¡aŽ:ß&Á¬Ø¸Í£Ë¹4ʦ@–xš¹] %À[§J3£ õÂbœÓ  Pî·QYëÕ/¼U±7b+Ò‘ô•¹7‰‚Á߃ñeÂ¥óÌ•Ž²Eï@ gc¢;\ÉÃOÙùºûÄ®uÈÃ.\³¡gÊP\p:)F Ò¬óT‚NáO5ýÆH&“軦ºƒò$tŽo…®åíüDY>Ö±¨å0äìártò¼oG%†¥±lé¿eTItHƒÞΪòž‰Û:*2ÞÒb’Zgû(iSH9H®¾OŽ=HNìþ4;\Àx+ù3Ú‹p ‹M1®`Q™wÞņ Î[ô„fñÖÀ­ì娼½‹€Ç ´‡fæq¸Ô¶u ¼wS³†)±ÔÁ¥sÓ_ u$FówsŠmÖyÁœ,,0•à5ñÈûqõb?"m9L…}•J‡—B„=¯‘š2Ð!³‰Ü¾Ó3YÏ ·¸þ6ð¹D/4ÓFÆKi|_Áð”Íù»bèóvq±ï<]F_dG¶9—Üú9_ß»šƒéFùo’8<³R<Ýäjβò¢Æ¤·ª’Ѹ®‘ý” /;vÙÃ>Akí_‹‘i^ŽšaM8Môi¬H4!°9¦ôxá)Q‹¼2%t Jñ$oɧTùðr6IÆ+ÜT_óê 3[*5RÃ ÞøÖËuÍŽÁ§T'@ê1ÍO‹%Ö ugЕ'$^äýõ~L™áÚé¾}\ cŒ¹ß†$ã,È’M4 ²ú†›×zñ´¼*õCNváã†iä—(.FzUã›ÆêáxAû‰h=ãš\»ÝpïQªÎ›d2¶Q¤B{½y_Â@ ÃçùÆ‚™oÌj2~ªØ¯P¹ 3ÆÜŘ_ßèM‚Q)¨™<.ºÈ¶ béÚùOY­¨ÙëRÏ+Ho\L„·x{(›Ê"á°„ŠdÂÿULw‹ºo¹Î6R޽ zÞ9È^©GÜsK'-wcV¯úÊû>>S¶÷£œ=‡ƒ‚d*]­évXMB­Ÿ<¨{€^`±;Òç˜<ÔÅö9’n†`¡€Àë XëÄbp}NÙ”càC ˜x+ü”÷PŽª¸#ÃI5U—«†öÝ ¨jãdÅ<Nµ–Åë&ØxDK«ö3äxÃgºYa‚ßz¤vÞ¨ÉtÏb·¢ŸRã†c;=oÏ:ËâÏÖè:ä¡GC&ž?´:¡×f%ˆ.:<‡•ãÑ©,~•7¦HþZ -@\9Å*Á˜µI?~iÕ|sO{¡gm®ì²Áîš+i:Mç¾t 5X­cÄ÷ ¯—U3T³¡ûâð ©hußI>ø†Cüv?ú1þƒœñ‡ Õ'Èð7 ó«9¬anv¥ßŸbÒð÷WV¬ðËÞT¦(öá³Óñ=Þ!šÇ`×R>åvõ¥9†§¦4sa’?âghHà ÜÃ;uŸ7×¶¯Õ›%–Ù’W6I;è«RòvgˆœLÜ`µn åèÁèðþü0«Ã­ FÃQÉj‰«ä5³NJŒô¾Ó˜)šÏãⓦþwó9½‘c“Uü¦ÓwôBëWÙ¡öp;ù‡—ïH*_“IsŠw{ýÒ 3¾Ü}Aä6/*÷'$à&«)’¥*RKÑãÒz¯?CV'p±H°o:)Љ&%l¬h\ç[üä.~Vz­X¶G¿[jUeOˆï†ñƒg¤æŠuìxÏÅÃÍõ­w!nýbØ-ZyhŽPøìƆ…Œ¯MÓnêo¦NoJ^Ä-ìÓ¦˜ƒåÛ-B#ýÚâÄä Á Ëü×Ê€.q%Ê•QjBñÐð°‚í¤q4ݳJÌhŒžaÆÔsìQ}Ç  ÿKÊHõnµ*ìSQƒ_4‰o7§à²ðhšØñ—e¾Ö¸%& C:Cm q|ERÃ`±ô ˆA^³þÜS“wYO5ÊÓI›óúE,» ·‚¶˜ýMëN~/3¥œÚX!°Fµâpùò"¡yv¹µ’§‡è§•$jŒ‚ûüéâåƒ >™Þ=ö2¿ÇgʬŸŸÈ†2!’RŽ´çãTT’ÞD\æòU°ópÖi©ß1CÒœÞЄ;ò}(äŠm¥U—©ÖÁ}ÔL¨Ø·^¼ ¾ “öRG)ñ+‚¸°ñ.QïüÁm¶‡ÿÄ BªÐ´ÑˆÖ dn±†j¸X¿n™{}¾«žw–ÝëÀ™É‰Ü&±ù¡s½ðCmÅ»Øj'¯]y·É”$”%ªºþ¥TSöK22CQ†êÊÊÑe¬{6‡¤;:™;t—|É\Èø¦¥àÛì/„ XŠ‘=ŸâÝØ‘—ñ'îM䀖¹ƒ¸e†×åÀؤ2ÑÆ˜‰¦ÚÏÊÆ•[Áx°.¿U,KéEâä4» k—µ¹n­ÒÖ'B‰™p½LÕ°>‡m*Ÿâá­Zî"ImqK¶bCó’¶ó‡*BÉQíH>öÛ(¾•íX»Ü˜úêߋƄ}l<ÖêáËÊ å•[ÁÖ}=££Ë6#Uœ±ôßa&ú,zõŠc®ÈïÇmPh8÷3bj&¦™1&nÙ=Îä$-þªf ËØõ{ï]üT*n‹eÓ~# Ežõ§.ókÚswuÈö#76w¨s¶¶ÙÉ뉲êuíšx`Üg*ä¡”5Ö*Ƶ?? ¢xÄuîœ`<œÀŸ ¯Ê-røˆ©¶¤?aõöq» +¢k‹¬¾ïOâ8¿ø¸\‘ñëŒÆIî«c½5¯niyubý#>{=FS@“D«ùm‹ÌAá½Ï÷C¯¶‘%ùvÇIQûµIdÃCßFÒáâÌ£ òR+ÕŸú5Öðž{`¬§êãÏ„Œ”ýCvÏ e¢4Š*Y( ŸS‚屑­E'k˜`ºóÍ2«õ H2„óÉdžªò¶;±ÐCÇ*ª/´Qvu›ÐâÐíT^D#áܰا®´ äJs8‰ö˜h—ýÙ5ÕPGH|ß±uõ·’ žiã”üaÆGÙ /yÙ6ÆÄ„QGóBù¯\ééép* õÞ á"ÚiøJ)kåÌΡè²)PÑЉ¸–Çp}Ú—t—./ •»1æï OêŠelWŒ”ä5ž ±ödˆ.ýŒ—’×$7š·DuàZs~µŠ©”-Æ‹æ¶ß¹¶ –ÏÕDy6Ûû!¥ëv“Óº¦eV>Øô§c²¸CùÊô“øoúèK°¬þi q´ÔÊ"è1*x“çã5…~£Ÿc). }`ÖÛŽg{%£ò2?[k»8EÊšÙÉ#ÕQ‹0!6‹³Á=vÞìÖÎÔX~O¡žð -öAB4`Á0è‹ö-¹ô>áRw}Ï[—ñßfëcˆ Ä·ìù晦(Ц‰†×4ã1%ù®!òIgbàFÖ©c—Xë{q+¢a¦M³çlÍ ´k½Ù'V:^fó''ôK"$—0¢õÍî #ox×ŸÚ 5º.²š]D.Õ+yJ¬ „×VSÄpB-‹7ev =URk-tÍ â–×s¬h£Û'NBj¦hŸîNüKÈÞŠhÓŠ¡Èˆ©°-†âÁ¨9àñMá@|EA„±Ö¶6ïC\²!T<ð[)×ôuV½¹H£–•“M2\1ª¼•¡ø:iêÈ¿ôc…-õ ·Y\h;ƒÃH³è1„´Ä^MNvsãšËöEàÑ\”ò“rgýäàŽxÖ¼Äí¤Ùçq±›«báíŠN ªM; ÷p^€ àÀ*Z¯4Ω•d…_”è% é.Ô‰šÒ¶#WúMmÕi¿C1ûçõF¼ÿèmf¥ß!ŠÌ×èlz¨&ˆØòºåV¨ª¡¬.o°Ý|Eyýž1:^/6ýØ} LWÛŽ“>Ë>3âT‘¼l—ûà¹ôº!‰ôϧŽîPÁ-©8y2ßU~13™Bµ(²ŽPåŠ{ÿh9üñ¥7C¤éŸ_s¼?()eä_tâÿ€ÁZ"Bö)®r ¦¨ÄQÉŠŽX,N ©‘»¤‡»;³ý4mÅ\–+Ÿ%íoÃ}sªQŸBH[óõ -È•?Å‚â-´Ý6Ä乄ÊLò¡€œZÛëO=ï$®iµåõÑí µT–¹Û&©¯î"ô¨……Ô*ÏMlïè»%1¼ý½¬RKû G;–à„x/çÚ{€´ò–óÚ¹|ñÑ= ±P=FŠÌNÑŒZüƒ/®ãV^™úßôu·.pO´E¿/²¼ZWjÊI»i\©¿ŽÝAת£#Éú‡0û oêG49·åp›Î^À—çY\@ŠøÜ…Ÿ3Ϋ %î¥ÐŒ‘£=tü© Khêg±´"ñBÏáûð«à¹ÁhwmœÀ”!Â…òNsÃp¬Po2…¡äë”X¶A~úâZpJ !„ü÷`U¬ioyï¿,>“ZEΗO®GfY…šösÆjŒc­œ¢IÉ‹ÕVôós?§Ù¤ÚGyTÒ²Cز1ÔkøšΗó=yݶí 0[Ó,ÔCÉé”’¯ù€·?”ò.ÑÉ5i™@¸[ö¬ó$žø÷õ]k»ûÞRìgž}\©4¼,ká˜!i#j­É?uîGIÁ58s=±5ÐÝ3 aŒK_ªÓ5Á¿ñåc„TµmwâÅÇŸ,?`¦^å)2h¶w†NOOs0¬Ë;Øu»ÈÙtÊŽ(ú8«jÐé¤}‡‘;FæI’²eDëϰ%e~KD¹FíÚ“PåßDÌàÇCôS!·—Ðo!±‹#îà˜o2òwƒnO¹³ðÁ ³WNýßÕ»É/­áSV(0…ïLyñKºØ1ÛeÒf‹,Ñ%› dV`º²ú‚Ä„è|{=3€ƒ±ð‰E=¼ ƒP­“µhÂdéq(¬VÇ#•?|a‰NçÐfÏɳûÒY­¤R,árX#ü§CœûÎÏiqÏv",ÕIòK}{4/ÝYžþ;kˆk¯ƒ»Ý'Æ<ôJ:V]^mó#þf2.¹JÚ=j<)%ÿ. ¬šrmXì\à¿Pb‹—sQZ¬=þU]Õ  ʳÁ‰ñìĈ•z¥à0 QŽÇÆoÎç|>GãÃók¨#Âhé!Ì#›ÛqlÓ’k c&xó“ØÎ}å9ÉZÒDàGŦðEî'Vu9§CÖÁ´MüÜŠCLŠ©Êµíã‹è±åÏP“¸¸q)Cþ¾´Ù»çé dÔÔo,h¨5¡(£•âTŠMù=õv=ºžü…ÈÜxÒlšõ>/nšyοx´wz|¶f+ˆrËHÝ=©·ƒzÕª]Ñ9TJŒÂá~¥NäZD»Âˆ/ÓPA"ÖXz-ÿôèÃ*WnóAŽÓä«þ„>s½¿+ßÙsÔÇMfÛ$¸6à?=Û“ºål¦~ Ñ•Ò`YîÒfaL¥p–úÓpÕ†ÊÖeøKñ€,É’ªvøw[qF <Óæ%Îü65ø_šåM³g`m˜ÁpLíAÆ*™w·sß¼ì`eí.=VŠ¿À(iÔ® ÑÉc€äu~¸ì±Ð—áû¥™_.óy ‰&[YÀШÎR©!Ó/$¥ŠYÝoæÈü`û]êL¿.%Ùøîõ}v€k  H¶s“pu°wqñbiÓÙÎr½ð!óÛ5bå›”øHbÔ:BЉ•.ßå>È8¾3¢5‚ï?&Λ…ùg<_Úõeig‘#J<Þ¡ë—4|ë€H¡­Žn^‚õ ñ§Z#sÜh:k‹ûœ>p+U$,W@ßG* ]S@P#sñ`ýfb!8â¨ß±D­ô[Ø yã“uhžL¢²·­¶ÀùA0¦,jEð‘W\Ðû¥•ÅaË‚T'¥µó謂5€g— :ÂCŸ@®–æ‚DúI“.Æ/í1ZY¿²£ÈÃaæá%Oùc–Jü+–þ‹½Ã4¼~u¬*‚ßöÏ^™iâ,e¬!ÆgQy®"d¤Ô~¼É7&Å€1Òq*éïZHÛFÆXé, ‚(¶³¹1ë·]ë}Y5‚o "&)2°ƒ*›fx\>Kd+×ÌwÉÓ¿ÏŠÅÆž8炳W£rI?ŧ³<Áù‰·ˆ°DgõpQeïQ8¾@Òäĉ:ýþû§ÖÈV•ÄTÌûxY_¾ÑF§) J¤³Á"èN§$Š´8ì¦ú¢:$ÊTÊ*Žæ´Yórn¢åN§AÚä­:åCê°×OŸs]-W­ÚøÂn|~U½Õ·-£IªF]Ûd&›ùq Žßî‚§ª !”.yØ ¹ý0}´,†yb²zQÛÈ^*ß2øèQ¸¦ñáEŒågù9i¸;1Bøí½]ƒä‘$WÈÊÎÞ¿N^ç¦J§­zó n¯=šDl¸” f÷døÖv\;\áÍ¥f9Ò1­#UÛ{׳ ®ZÑ…Ýw(/„3z ºÖãƒÏž©y~Ó¿šD9%ùù[f÷ &Éû¹íl@™­ÛEÜTwº áÿ} ÿû·6ÿ0Òò˜^åOWŠrÏ+0=¬'°cp1P€ŠúyÁr%R¡.¯Ó„¶˜»š ¥u!pÍT ÊÎå!/pƒ‡jˆ-P áS²ëOÖÐ;ßéúÝ•ÄêÌ ûU6ONnÊ­¥r»Ì[v¿¶aa³.Êa^Õ­æ¼j6þ)&TS×0ô‹]¾†ÏK¢4IS_‰›€nbÕ’üá¬ü¿õzÐ;uÕ^þV}ÿ¥3ÇêUê ï“z4ƒ$Mtã‡|RD&pÀö’ò¹¨6ª1>#Â$Õä‚QÆ%‡Z§Õá?J]©:Þ`!á9›Üf, +ŸÕlñYöK*w¸sÂð$@]#õ©C Éx *ØÇ¸¶!øÍáñtÁ#°‰½Å"0Í"Ó¯ŸÏÌ'N_ÿŽò)bmáö¥éÕ©ÓxØ.@´ YËÑ{2àtõ£Íp9âî=+ã,Ì}ßñ޲%>²_¿ÓŸ×b[Eç]éƒ0ÊUM#êvΛ³vh‚_vTü2Bfâ\}ãš0DHÑÀÙ|ðˆŠVóE#.E<*h³·ô¿J©Œí¾ÁÜÞ(€.*76G¤_ À°€•¼ìÑ~.×ÀC¾Ú¯¤S;ßvë5Xƒy½ åkLÅ(è Åtó yÚ ð±¨äo¹æKúý‚^’³Ë‘ÏÝ+­py ðÁ+ØÀìÝ! pw÷¸„3xâA€ºñ"6$ÃT4\DLéDŒ×Ð2\AVtòuH×îŠ÷e’ZÀ® ±h‰×.꓃[ܹÝÄNzUJÀkú׃Ë3N{(í<î‘? BÜ£àÝWÃ?·q\7[ÕõeÈæ¼œ„)K–ôÅVß·³÷ʉ&I‘ Öeäœ01Â}ð@|ô7„ƒ#‚#Ùí?ÚDnYÇÑ¢¤Cô.c&m)ë¦-çJrŠ3.ÌYä„F†»lI‡¦óÓO[Hû ß5Ñ£K*ꉱž`G–naŠ02Ø.®í?¤äV¯•ä<ƒŒD¦r„ZÔK¦áâÏЀSêãj´Ê“ˆ”¸N×f/G¦FMøYVOŒŽÑf$Éà_°#¦äJì®åª'*ÃDĈÜ4†ºvð:?ÖdLæxê|‰ëÔÚ|Ì3•ŒÒ[v`‚´@=ü õ”´§6.¹I'‘SeÂÈâÚ ÎF»^´[*‰·)IÒ*@:œí¿ pÔÎ^m¡´ñ§.e=ïÆ „BßÿñÏ!v&8›Óã’Ïå™Õr—€ÕÒÍÌ‘'%ù ô™ÐfæuãßINyŸž¯j ÐÊe%]nGЂ4vøáݽô ˃k_àoÅ,}P¡ŒV¦‹E·4ÝjÞ°¶úü‡v[¼ìVóhß,÷sÄÀ8ÃŽàkïE¾YrGt‘t™ô•ÿÀe]çÌÙ½è Ñèì¿GîÆR=÷¤»ì¸Ò†Pk,•ïâî¤ öq.ÃL´âåUߢ#<@ï¸ÊÞÒ”Jìuêþ‡±p¸á‹/¬ÇƒïÅea¾:=vLƒR£É=ä¹yàZ´UÅ®B·ˆ¹þ#‹‰`ºñܦnq.ŠzkÜûó˜Kõ¸1àm–ÑJÄýʃ.44*Ëœ Q*| ½s ··ö %]‚ï­Ô ÀãOj(|0Þ=p“6ʇå<¡“ÒœmV}ÁºJ²ÓsÇ$RvŒêlþ©:VÅ1×›œx£« íZ¬š;m…#$wÇ{¸ÓW…MkámE@D·§Åbly¤#¡wáqš×Å â…‡56ñU¸¯ÓÂ|³°ò†g%ÿ›Û=-ÉT„®A£ùäz8UÐîXïˆl¤€@Q5]“ÀVÍ5¢ó#5iØÕ5gÍÌ(öÂÖчE ?cÔª{©ÅÕ"òñJ]¯‹À±´~ÚB¥c j\ßÐŘc|TÛOíBÓZG2érgXcÚØøÔØD£µz“Õ¿7蓸jVͧ)†¨Îöyu¾®ÀtWWyÕþa@`=œèî”­ÆŠ il±iaI@åF¿ ÌPiò\‰¿q&aËè©‚{?9ÞM*‚ÿfH~9’4Ÿ#a;ïg.iÄNÒœgçTýdW­h>!u!ç¹4=~k%:‚bŸùY.róƒ(ÿK„|\›Ò‰îjúivÃlj°R+µúªÂ÷°‘:Óƒ‚³}¥C¾þk•mó“s72ǘÓÑãog”bìK 쨸d“xÀÐ/ôDÓ©;\c*³iFÒÓ/0þ†~.á—Sj1y .ŽÍ•¾»k_¨§{í}4šOÞ•5ìˆÖÈTäÆÎÑAød)Žü®vEÃWJ0‡6pïûÊÆ›š ûs"Œöê/…IÆ…w Ô1”ô²7ŠMÈáÖêwdÁ© ö»-GÞ‹r×3ˆ Ø·Ãéû?2Á7àk\#Ù@­ilyo¿‰¡¢£^Ÿ)ˆÓÙ˜Gg^OÅÆ›Æ†…m ¿ñ@£´E€i@h³ %ŽDF¸ÞÕ`ÄçÕR¦ø»² fœ¼ñI¬„¢•OmhÑ#>V x…®1Þx¦ãdLcuhc)Ûçïš{™¯¡Ô‡LL^pLÀŽ¿x&,ŽuøLnâ…š^ž4Ÿr§Šç£²˜T Ε PHµNÄ#%d´»d2.Ÿë.d\Ô5Ç·l f\}­-%!èy,OѵTm2޹͚q/¬|K\^ „;“î¿2ø¬óD=é.êõn%‚’0„£aÉbÔŒ æ®ÐìV¥u%mŠ |Íd¡—ƒ~XhJ؃YÜáܱ PG¾Ê±Ù&HÖËyVf Ür—’*@„Y‘Nôm š/ŒU°ô=ª×ƒÅÔûy]ÇrÉ.¶÷Iýp¹)Õ§lZÔ¦zÝ@EÝ ïèælu¹TàΞ©ž$ïø8/á83¨ŒÌc3N{þ•¯©Wb.ŸïöKv\Œ5‹[|š Î”šád_Åü^Å!hXSRì-‚±'ìñ—³ž¾– ²Éˆ_¨«MgÅÔU!Ô¾„Ò6&·<µï¤k€÷µ`oHZíh¶( ?G{!Í1É ¼ä*ôZ›ÙµÇ¥ÌsZLÆä¤`ŸDñÎa–/žS2ªš=þ×0C|oqõ!M®TF,d{Y0>ÏâÜÆtfƒÝ_y@'~e%e7ð 6p³æ~ÄFâ½AŽâ¼ —+k9ºH‡öî¥R“ßÙ†kóhCO…9ÞCÝeLû“’*±©ãu@IA€x.¸¨¹e2‹µ!RódÁ }-ÓZíµIÀ¾„Y“3hï~›u•qaõ®hør°'Ú’-o Ë7x­¿ß¢‚+Ñ”nfÐÌS»,¨gXªq^M“ç/Ywõ: óo?%íÆöôÀAgÁqX~Ó¾ o*¨ œ@H'…B1´”E“Ïh䦿nZø-YÀˆH–Ô< åÜ’éU Gâ.k:ÂÙÿŽJÃóöŸ}îÙ©°¨®Ôª°bŽÕ ’œ¹@4?‹QCøÎAæ„os=YÕSÀdm³¡Ÿ{“´Í_2¦9¼)q'Ξta=f/I8ËÍ£)FƒÖ¿š¼E·Jú¯TÞ7|W\Õ)û¨<ø£˜`6cF¯gº]%Ö`UïýA¾*F55mEÂ:©ñ˜É}Ôïµ7%”V´Äj5ʌЄÝwp/s¥F7‚ÓD¦ï®Ñ¶øØ$—&ªSI8ØÅ)–uÿÝ—€$oÙQŒÏ—pH-x:{_ñâ;ØÒ")C4¥b6˜þ*¯5N¬ä¨Øéž‡_%]í¹¹ï<9Óé\î«J‡«LíJ„‰ÛaQíq¼²ß>PŠ@ó‹ð<îó™ÇÈŒçœY2ù¬#ƢÈÀ,·JJ¨ã6u^,í­H¤†B¤ŒÏ»4†Æí·d§>¤±Öâ¶ö2y"\~¾»ù¼u.ØÛŒEeöÎëÅ=Ù3­ õ¦‡° ~\8þ¹cD°«½ñ$‰RîËbÌðÖ"Þ†!yÿÁRDSvIÞ~ß²ÕQûÄŒž¯oé$ïsÈ…ÅÕöÄýÊ-•m3§N°^G‡,;n½»êCmÃ:´MÆšˆî)ŽßøƒJœG˧45Î,ÐOc¹6ñ•®~oM Ê†Š¬¼x"ΫջÚî³á ¾—÷ëÞ6/‚„šÌÄÈà¼cï3øa”$Ü}{šü>¼¯c–¿u÷S•"p4ö.>eú½Å»ûì,ñF]Ix]rGv´,ðuMI¯£„ÅÜ}o//M+†êUzó²-Tôåv¯Öû\p*° ½u¥­H\%N!M_o›x2ºsæ´þ0\ã"Jì‘~¬ºáѽqª×üÝýŒ0ÑŠÉ»%Y»´míÕÚ àá÷Ew8ÞzùŸQÞOÀ†»!«r÷J¸¢ÍвÉ…ÄdkÏ[Ì•žj‡¦Îm¬ø–éÔ§šÒDZ !°!K¶:¿*ÕìX¤*ùWÿûX¹"(mx?<—ÿÙˆ]8Fà¤èm‹¯•­{ÿLª`¨4 ‰¬gñ±l#$eR@‡²ºÑ‚Y˜VêV 6ëj¥sf1ªf`êyi‘«Ÿ’JF!½±=2œp«ó5öó®Ú¦ñ(œáӨͥ0ЦÒþÃxé*·à4<¬FÈ”yÎߣ\#0±jÑp6ÝŠ‰>ÊþÒƒ1ZÉä·=<õº†¿t CñéXÜbUÂ[%¢¸owUl&Ω}± 4;¸ èrh fÖÉü.Ý~^U*°ÐV_âÝÔë ,s›ù¡•×ã›7å/ªã#0'â¡R÷•ÞU<“0õçÉÕ{ä´ŠŒ`còÅ›ÂøAÿÛˆ]R—%¬ësP×ý¡ÕăÓ6Üâm-ú§Óõ`-`?¾Ë§ô÷ØNYÝrMzZú/†Ç ŠXkjŸјˆ£Q¡¡ƒñ^–¨+œd¿T·Ú$+O6ÌŸCo.³þ݉ètÐeÆPŽÖ)]ZËÚŽg(•I4b² ÒùtG,pHè4§-gòǽ}‰,ª Ñj,– K+·#ÂÀHú—0扌}AíôԻѧ8‡Žômy¸"ÚÍõPøówŠÁ‹:R²ì…ûÊ»¶ŒŽðtût|‘‚ÔµSjWÿ8¦U>Í'³(ê„-åØWvøªöõ4 ùÿ¤íGF¶*1„«Ãê ±Ô: Àup¾bª÷ºAÀþ–³Ãíaæ'Ûÿ±Pš…Q¾“·ÒÌ9ˆìô-¢Ÿ…?÷m%Àìr“”ZðÅ`3–Cºˆs:©,Û±vܬˆ½®Á irïì#¥ % ÷XsÔª Zj² Ä9êú™E‰û°ŒÐ½dȘ1^m‹jQgeê¡Ýˆ"ך8|I/•ŸÔ’€`§6u ݒΊW’Ê8¡%x¹Üã!øó¤‰ì€ +}éWÄX³šZý‡dVŠ YüøvkÏ‚ƒæ)º¤L&VÞmë…dC/›dϵ;÷!.)3}& : öX¬¬{Õwç(÷Keÿèʳ¾ctÔcökÉv)»µh˜ù7Yºh¸µ9¿ž«ìgíò Ùoræ¨éYü<´¶}Ö¨­G‡ÌÌ”n¼^:Åt?³?½oFèft»w6ºšeGü™ ‚1›Û&Û%SjóÉA½Õ@ \²¼ðF1­Ç°Vüýðð¬4ÄäKããÇ ¹ÏÊìÓXñ²þ»Q™Þq;V–äÙ'Q1VÒé°Q÷Šô¸¸)dc_s$s™:–±È[üøn÷ç\*ÐpRÄJ‰§9õ(Á|…=nBH³.ê8m³S‚iìÛa} Ÿ–®4Ìe©_*ßøÖV³o®Ü £¥iõ‹hÏR‡A³¾÷8°­SƒÚتœÉKùÆæ Í„N3gÞM¸ÁÇ"ü_™¢pO.X²†Ï8Çq•þÉæUp­Û—}÷ÏÕŠky¿\tœ=q}dužbŒñ ¬Ï.Úк=|É؆Yß9îØ¼Sÿ{Ó6ÕÆ®2@ÄÈKlËlTß.ha'ù¼n-µ')>¶´ñÈEõžx´«¥ýÚ~ŽÔ DA6*ŒÅÙR¿¸Ãy„ÀL¥r‰L@>>FŠjnÜ(ØÖ°¼Òâw~Nî'HäfE;—7ó8ïHe3f¢\]r›gR<žKGyÊ—‚R3®R}ô­wÈ*K àG|BoSWØJÃlÓ´Æ´œàD BøËyK’ÖГD° °?Òg{ù¿(šcþ¿‰¹³ÖTB„d’DÄ7‹+nb‚ó}ûk®XS¢`Œ5x7`O´{BUÅZÎ?VÒšÈBT+¥÷bĪ/þ`¢ÖÉFÏ86y&Ù~#ü=´™a[L„żEjEcMO%\k ËöRÿŒ†²èhET5›%u:åo°±ý6ÍùêÅÂæ'êŸ{è:ÏÉ/Y? :ÈZuÛÿCœä‹s„=þ~fÙ>NL~ê¾,Ò—[äû½Óº‘§ÛlN^»U«ÅùkàS‡@ÊðçÓ_¦Ü%Ÿôô5¬’õ'µÃ`Øs‘c„¸Š–yÏ[“<Û ‘êúeÔ9íÏ ïÀŠi‡ú°åÉ«tæB>¢‚ ì©–å i[·ÊKXÔ÷|Öñ^£… ÈÚ#zÝG‚Zqé%§m–Î’¬ѪqRËKõ«9$*G÷HLÂèp¯^î§¡JÒîH•„×ð´cù¦j^8((1-ž<ó†ZbÒ"xŽ¢WO[eIÿEz¢ÔV÷@ âßû>Ë7—zX¡Ÿî›Ÿ»JJ%öˆ¨^UÑÒ:AaéžhÞ=ÌͰïH>-cÓ¬Ú¼gÆ/q‡®gJ¿óX¹MÒsRÃ'| ß]]5îIð‹»×Uå].ÀSÀkc÷786V‘¬G2¾Ë›ÿhi9V泞~é¡?n¦\Q;Uë:.ÕåÆtK^xi·Í`á_‚³/êHƒÐú}`æþ9ä CÚiŽŠ½Ì'yTØ*{êh[ %jÒ1(p—ýxF6§äO#Ö\±3Ì«®à;ü®ŸÙÄèÉH]±âá›Ø©;Œ‰€ÿBÍnéî¡ËÍJ ÝýKQ(í%ý±ÜPZ©8,[JTÆCÐy‡:VÂðóéRsM¹Á­~xñ¨Æf—í -?žÉ@Û$ 7oXçï­‰ê;­†#öeÔvÀ6œ¢*f H¾UóQ‰ÄæFj¸„ü‡3SÏ%«Ìr:N½3`âë™%Å~7‡PrïA$zg‘[âB#¾E?Å〸äÏwéæ§y÷')¢F éÁíAˆ(“Ìž¡íæ®;ïîíô3‡ #Ãn5xó¯`Fy'Šƒ §_x½ý‹¢%ƒ¿`šdk¨æ• wI}O8šÉÑ-øŠê7 < ?àš3½O^9?>ûEùL—{ébƒR²e9¤åwîáê°«ú6h‹à„8±1mäaþñ0M>»”âØÈ¢ÿbR§°Ä±±ÅÖ-O¸yÁÏ —íj¾SÌD ÐteݸEëµK7 §ÄäMUª¸ú†5lAT·êÀsê0©°ø¶À,ßé6Oíê%ÆS3RgSß–€ïEä«Ä<Îå ŒÇ(N‡=n.ó,8+‘ÔYX[tËòpÖÿ‡|T2´g;5?ëßàã°U¯ËÅBÖçA[ÜÁ]ÔÞÛ‡¦ô…h1ZH¶D²ö«®,@ˇ,ÝT]¢ÙzØr@fïZ³z°<Ë EE÷S­’èýBÎ"™é°ù°ÙY- 8¼€üs?½ÝEògx ÑCtŒ„<¬¸zp ¿:ÄDÇåß¾bîâÁuåjÄP—ƒúÞOLHZÝÒOE:Ïfpòî€w]_˜ŒÍþìB‡_nmH,ˆ„¸^I﫷敪ÛO¿«æ_Dž‡'(]ÙxI»sº-+S¸7êð¬‰ïÿÞwÁw¢7$ÇÆ·n_½AB‚åÕØpžõr€D ¸A%³f=êZÚ,h¤ù)sb÷ZùÄ/÷Üw© ¿²89¶üdž;c‘£¥þ!©Êj}U3·êñ¦:å¹ÌM­Î©„*I(6¯d_ÓÄ…­‘ËÏ/N= ±‡¿uª@«¾x7ì‡ãbn¿^‚l;“|<œ‘Ù!¹¾¶;Wt²%ˆ]Zå‹àlÏ©°}{.ulgòÀ5«‚É:õ«&Ó6âah?Žzæâù¯ ±~$ÿL=ýBxv],9r”ó´.™IA[àuY¡q¦hOŸ¾}ø›{q?áGÍl¨¤zò6·Ê¢xüí31Èð–qé3ïQ{Ðýk! #%+Š…œéƧ¡›è~FÉù³ƒÑ@꘸ušiÀÉž¼ã×YúXü¥2ÏCj˜o@—Ô4^0fWf652|Í0Ä ¤ú@<¿ÂóÎÛ£å¯už¬ñ?&žOØé£zûbKÚ)s(|Ê­ùVÃn>Õé”+ O«™ÍB¢ø$Wäy²å‰ެEÀ µÇ­<Ý6¬©C‘«C0³}Î_xëeâ×ö7 ?±Ê<ÚÞ|r{”/zíù•h‰?ô ‚¿¶Y,”õ•Fp‚æu§Ú Õ©öl@ß+¸/so<¿ÿ¨øe¹KøÄ‘“š)û‡¥Æ† š*O"&lðì°L7Ü(z~‡Y RÖ-*“FÁut' çJ}· endstream endobj 773 0 obj << /Length1 1426 /Length2 6611 /Length3 0 /Length 7586 /Filter /FlateDecode >> stream xÚvTZÓ-RB/Ò‘HQz:(½÷‚´%j)JDŠ‚Téˆ(R¤WéR¤W)JUŠTù£ÞûÝÿ~ï­õÞÊZÉ9{ÏÌ™9³ç¬ð]32QvB;Â5Ð(¬D,TÕ7‘‚Áâ¢`°€Ï ‰u‡ÿA|pŒ7’û_¼*Åâ15(o¦Fu|Üq DJ"-ÅÀ`Ù¿ Ñ9 ÔéÔê QpoŸ*Ú3ƒtvÁâOù{ ä‡ !²²Ò¿ÝÊp Eõ¡X¸þDÔhІ!áØ€…à¿å‚ÅzÊ@~~~¢PoQ4ÆYA@è‡ÄºMàÞpŒ/Ü ø«\ Ôþ»0QÐÌéý6E#°~P ˆÜ‘08Êïàƒr‚c€ø³¦Úz@CO8ê±Þaà_W„ˆBþî/ï_¨ßÎP íá E QÎ@Ò4ÔÐÅúc…P”Ó/C¨»7ïõ…"Ý¡Žxƒß‰CÊÆ@(¾¾¿ªó†ažXoQo¤û¯ A¿Âà/Y夊öð€£°Þ€_ù©!1pþÖ@¿Ûê†Bû¡pÖ$Ê ñ«'O9 éå×VûËþÁœáX $ ––á^@¸?Ìô+¸Y€'ü7 ùãóÆy¢=| ð`$Žÿ༡¾p ãÆýoâß;tB°@G¸3ø':†#þìñÇ ýwÀxáA€à_Ÿÿ¬lñÚrB£Üþ1ÿÝ\•Š¡¹‰…Ðï‚ÿC©¨ ý81i ˆ˜$ˆ‰¥ñ‹àG1‚"ÿÊü¯6 ÊþIK'ìûW÷ùÿ à¿c ñŠ…ùÿ¸ X ÃAþ¿eþÛåÿ¦î_Qþÿï|4|Üݳü¿èÿƒ…z ÝþâñzõÁⵯÆOê¿M-áÆUî„ôñøoV ÅÏ€2ÊÙý?—ˆôÖ@úÃŒX˜Ë©üÁÍ ˜;7B{#=(@ü_~ª`nøGïÇß?4ÿ>RC;ýš.1I) ƒð-Æï$8~ àþ¿ ‰¢ÐX¼ _^0Æ~õïúSþƒˆA$^IJ@þåúÇ@ò†ûâ_„ÿ ` ë‡þ½ÿWv0 ?›¿ÕƒOýïýï‡÷‡Ã“ãhØÍ{®oî5U(³û‰¬ Èð­X¦ ˆà&1>'Ԥɯ2Âç1‡ÊÉ=m´3ËêüJS\ç¸woI£ê’ŒëOƒÎìM†WêCLï_l(Wvr’sˆ˜)­{Y„¹½»Ô¬Ã—íå#Cm”Ëpäסé_ÙY2Ý9¾b¼úJJ—â¬ä£ÈCó8›°ÂQ¾Ççc,Ü$XN2Aú]šÑƒÃú¬Á .D!@ðæCñ|œõ‚Ø£ã±ÀÙ231ïV^VkN¢ú¾áë8•õæO¸¢ü¹¼QŸ‚ñ™[Íñ%ré[ÈD™×ŠÝD×Vl6SÔö¢„5£Ë§R^¬ž —Þ-÷$”\];duß¥ÝÆs–ÐW¿án>{!­zôöé•%©˜Pžklòò7žpíbLùr)Lqi”_‹QqSiPë¿ éD€<®² æ ðgr_C·ftC%(;óÎÈ’„uìJ«î³³ ïÚ†Ûåט™Ù> ²“¯Švs)!t5ô[oœñÚ$$ßu».œ´j¯ú´ïgO4ì*wJñ°``Ì2:I 3)eìC Û'QùC·ö”ÕØd‡­‡Ö/kž´ƒöãMé©(Rû“«Hî‚H??Y±ìtF7%n'ž±}(ãØŠ”q{5UÓ OîõÔIhä$3øÖ~8|jDi±½RÄ4‘Ðâ‰tK¬upÝÛýìÐ’^Õª^j.€&ÛþZe¹Káªb€xÐ:ÝRaÔc7ARWðjÏ»ó…ö%Ušc䄸#c²ÃTVkSD€åzf‘ÛBAÝâü°Áñ­ŸYq öK9·Ý’¥™G´Óß)𱟭ÜLܘ^1{z!Pr…W›oàÂk᱑6O¥ˆ>}Ò຅¿Ûu›ç¦Ò\Ãètƒõ¼Ž”KèÎË¥)y婊ù>9Úfž´ã¸oÝ#ÞdsεO“³u©-§“œÔ³~ùfôJ%×É–‹ Ÿ?ªv‚Ä~Õ|v×ùÔ¢ä4 pÓ”¬VnhP¤Þ#:˜0#¿‘ÄÏgWÔ³h©e¨mb{þõcg×gþùÝ-:VD+éez“Gb`‡¹˜3=}Ð¥ÃÏÆ ôà§ ÔÐçôxÍÕŸÿ:?c÷l‚\ÈîKí¸¯re­ÞûSÓŸ«Ä—csëv¶¿2aÏžåÛ¬¤Ý'c þSªm%Í’ÃÄOöw®ùåŒØ}I¢‘¤ÜZäÆl¥Ô4ÇÝ´‘Ù‘ô Ù^¹#Ç%¤©*·ÿFCˆÛ€04Âvw#Ê:̓5U«d:´y8˜å1-$_QbÑÁ Eb™m4´ þ=è”0ÛÓã)˜»>¿ÉÜIz­úSk÷‹Û™;É¢ØÆWš‚1cÕï¬B²óÞ² ¦ª‡Æø®tGrÜ×Ô_0•dÔ»£6èNðy_Î̳Ëê½§Îò!%k´=lÎø¹Üö‰ˆÙý`ìxfËO"ÂÑ©‹½AHÈÆõ$='ëþà}±H˽t:Ñ ‰ÂG¢Ûõv|ý‚ùCœ•L½j“A;ÖŠ•[÷¤ï=²„ì^zI)H¥vËhÒëj{³@¨ÓÄp”œ=Kòõ±ç7F5¶,E#û‹ì:§O769A/ö¬$ö †“à`Ž|†c>*û £)‰c«Èó¸ ž ÄG”7ï,Ý1­Lå>HvØT))¡«PG.» ¢£ã³B½~â ³Y©ŸLnÓðpÖçÊæ{J|»Ãý†Çq‰ÆH— #ˆÔ5xI@°èJv#ý}\¶qìh"öÝ!DZû'³)TȶèVið^s/{rP‰}çU†]–ù„ÚŸnƒü/5.<¨eÁÌ3+ñcnQg‚/â¦*e×úS¿÷{ÏÉ4 ,ÏFR¥$#Ój'¿¨I¿ëaR;«?.ßãYyu0Ý‚V?Õ7€=‹Q%}ÔmÂ:&ËO…&8¥S>ØSÔÿ Œ0鈡dAª¡UgÈeg£x‰Ä¯X´§7YríïT1šìúì>³Û|gûVZŒ'òesÔnÀ_šq¥ÆT©^²"/Ù0sbhÇüƒœ"ú¥e%­¥ ÍÏW¾­peyÅ03Í|ÀÞ:¸âri¹ª­«ÑDØ÷•ôuG‚ðÎÕ:kIFy¶…öôãTÒ§»ãŒGykïõ[ÌR³S¢¥¡Ùý’€•aÖîŸ1ŽòKè£áGLµE°‡1П€UŒ‘•Wu 'C‚ýJÖ„¸9¼ ÓXÊõ1©ív̵*ªÄìÝ+=aõ¯?}#zÇÏkeCi”†n}¡»ðP,Þi¿÷l©­ö|¤Ùj;•¹EzÌÎÕõMß¡iò¶ðdÏ!š0°à9å´mdÑÏ™SjUÓÝ\OÇñÞ‘æî ›îA\ôq'‹˜0d>Ï캎ɎªÏuòsÚCž xÓ@RPïiðUÓ{_–FDÐÏYÒ ¬ÌRTmW‘£] “÷_Oº¬vUQÆ$ÐnÕ«È\ÉÍK‹/ŠéIï9FmÝ(UZªÎöþp‹³ÒZ }’ É»¡3Ùq0š”jX¥ +FÅ!¤1½'JÁ§;³•{ñÉrІzêËœ¥õeÊd‡1mîé˜É#Æ‚„5³̪ÀY…ÌzÄazÊVlÜM¡«šã…ßnœ7qʽé,Îsº²Ét;j¤Ýp`Û_”çïZcEÕy# x=SB?zÖÜ2w<óô$kilìWÞèš¹dÅÿª{H¸°7'¯ƒéCx›YÁ ™úÏä¾@ïäBA˜l‡<‰ò9±,ÙèqUGk©lÁÏÔu^·ÎRÜ÷ðõ¤ÈE‰«tžŒÕбk6[-\C.M—Þí÷§šb‰f¯ ©ÈÉ}¬§õ›ˆ}Uߨçþ™E¢‡˜D,Åq÷.R‹«å;[ÇýE‡â¼;ÛLER8£ -Cs³ˆ[½¾…NE\ sÍ­$q“©›»w¶v›& âc¾-Gq7#p)›ì,!ÜO7£?&asý,Zn΋iߦåA½‹jThGïuo;AûGÇë• .Ó6³L;¼Ì×­] ÂHo’VVó¼UÖ”RQ¬æêìÑ_Àí®1^/ :Ûб/ÞL¥žTn¼ÔªUкmv—æ;¶C£Òá{x]r¹'pÊ“úêCÙ¬0´6]@:ñ8e¬,wÊÕopvU”ît²_r•¢»˜ëÑ?µéÞ»æc^Ã2ƶ‹€:{U$½)8Ä…S^kÂ&VGÙÑ íX&ÖÈsIåaŽø@¡ ¡E¨úÊî$H7ÑÂᎢªò®cÕrÿÛ7 ð>©¥üÐYc½µœËîP# µG¶Ñ¤Á™W–¬$¾(‹—ñ /¸Eí÷¥¶_¿”»þÎõRŸ\¹A¢ç˜g>Û"ýä±òiEUÜU”·óûá½ÝŒ~ç‘£AÔ›âõÀ©[ŽoJ¡{“QKìBôoðÿq.ŸNƒ4$’Ö·#åßI•¡_•1?~1F]Ήí·OJ°ÚhßÖ*擨ÒŸÖ"Âúm±‡âZŒ‘ñ»‡îuL5@CTòÎíüa‰â(œP.Íqp/Ü^ô¬¯ÍùìZ°lÃDKOäòŽÜ|Ø•<_ëRoGqüm½pãñ³‡9.ëw Ц™–Kt(ÀUØûe*AÃB29ÉŠýÍÌgËÁ‰AG+Öõæ]?m\ã™§2þØH£Z‘’©Ý x²ŠfÿA Ê$Ž]âÕ…0 º‚üe3ꢷÆd_,’~ÇAª/3ë2ƒtÃ$,ÂàxÅ3„¬g‘‡L‚ˆT ­ù@7‹3áWÚ4Ñ5M§Üuê¡\lÊ:kWø$ÈoM…¹Œ3Ø‹õn=±¬r-©wÒ7loæúL»b:í/foãnoœ§”Ïõ¸T"› ÛCô8ÝRœ§\I®Xq“(µDÚ¦¼e5sÉ}²Ü¸ýÍwº9É ÐsFô}R¨%é&J7c^¶V/¬•!®\±Ô¡Nä!„2Tè5Që÷Ôô–r×Ρ¾i­ï{–X›¸Ûk¶èD ÜY7Wš6”Ÿ~Gì# ’jª´¼ÅRï–ܚΓ«%v@9‚ i˼ú ì¥?=–œxI+“ŠxéÁqÄðÕqwi(tæ¬<šŠŸ}ÛO<ÚæËS›Û™ËÊÝÍéw%Òúl_m¥%ùF.GL‰Ašâ)2Ïïg95J‹JkÔ¹©®‚ :’Né«,ð Íö×1'l^áå)ïB¹ |ÃÍØç[æ3 º׃”lùˆÞ“FÂUí7ÚxoÈÀT¾×Þ@à(ó³PYÆWßX¼Ç›TÆ£² ‚M s¤*T«_ž2ÛeÄ}z¶Ö¶&B3B¦žwàæº:¸1ãrã~ÌþI²Ðõ$R¶ìø þ@½ü¾ì^4O«FЇÕtñZHšçËT33)k¾o§CZä0Ú³N¬kÉ÷@ñ¬Œ)›+@Á'´• pG¾¬ çô÷¹âíc Ø‰Éñ’­Dݹ³Wv•w)ÅwøTØ”xKôª7yeø7¼“}°„X]ìʉ%\ÿîEGÜ?#‘vÀ›(²°ò­l{¯UMòŽÙΪ‰¡RŒ/-–êù¬°äÛ½^S^¬Du;ŽòóéžÏþôZZBj|q¾Ö!–†-ÈÄ;ʼn (4î„eÈ]"ÍÜá¦ä®¯Âx”Á3¢S7Òzq£?Åõ¸Ø¤ãל3žwU¦6l˜;ëʼæ²9ÚÝžJE€]²_Co•_È0æÜ§ ˆ˜xîµi0š?ÞT‹|g÷² ¢7é»gsŸ—€¶BµIÃqgÏ]ßøRàCQ®ºÞ¥œ]íéW2µ_ÊR‘ÉB¾©Ì|ð3‹ÇÄÌZÅÓVÌB-ž:Á¦€ùž7žM:¬â‘E=V÷Ï¡¹Þ”³YmÄU‚¦ÆVzu*Föwµ,‰Uè;Œ«@‡Ý&Žvº¢G›wüû¦‰âAÄ„žË€Dßl$E­Bz «ÿú‰®Ÿ¡^O»Ž&¥§<>~C·$–i…/{—x¾l»oˆ«Gìg«‡F+! ²œ©sD9œ¸;«"èYŠÊ0K+tlÞ˜: IÖ8S‘vsÆZf{ÿg„ }<Ôó+Í ¸‚ø[æsEæùÞð»‚\Cè׺íÃÓün¡'¯k$¤»Ôùvïzl4dï]¿¶¨©þSÃDøëf ô“J¶Ï[ë<ß?N›d?¹{Rì)zçó¶ùk×E¿‘íøØ¼$ïÉL Oïv+”WêÆÒ’ç-’6¼yt›+kfžv.¥ÆCf^b­‰tíïä  ç!.Ñv„ىŋð‘©}ÞcƒžÏÊ7è\³d¿ÕÙà ­O?7Y9!ï×HØ wËþþ•¥æ .f‘1þL ¦’¸¼“™ »ÃU¡6“œ'ƒÙü~Ë"y×eE¯Vîæ\±çL%˜Ê.&~MÙ \lxÀ‘±Í‚ïäA“ù ÆÞî¬d¯Eãrâëϼ÷qâ“A×ήîÍ4KÿÔâ~¦I¦¤#{þÆ»:Þn–¼%yíY˜k–UɱÕ;@õS£û½°ŒR‰¨°GÓ=¶SJÉ廎«[WGSFà^#"SÚz£ãã+0i#SÁ6õ¸oŽ‚ªË÷¾çÁµû'Ã(aÉNë~³™’ÚŸ›‰lWJ±¡jò2ï½j0‹ä2XŸ¡ù”ûLŸ¦Ž]HÏ}ÆgMWÍœm†¾>)ak7ú²¸ýü»ñ¬Äy^fájw&ƒ¼’aÞ;JÒkdù3”¢‚Rf^+"ÔªšÞ û7=¢˜¾kÑ=)eü%pC,¬€Õ“¸â"_fM°ý¸^Ø»l[íÙ›á¼%•µÚk˽ÔPSaÜá€Øóä^ fàH5¹2êÕÆ1Š«K/ålr6¬w¯ÜoKH—˜2Ñìú´.©ðø}"³ë'ýGï?zœR<®ÍòœˆuD>k 57+³ØúÀ–#‹ #÷²Omу²ªlW–ë¹Zsó ‡§]ÆxNÇÄ>¡að¾Tk^?ã[€™4éŽL¶©—e4¡|&š„ƒãôbƒ6N¢+¦ w•-…e7-+2‚uˆççZ@gÍûM¬zA:ºÆ?£ˆJkŽœYÃXèø“tý3ûšiGØãÓ×ïéT¸€fÝÞXì}€ß{ù¢/xˆ©Ý_ÄûyÃrSVƒ´‚É×ëF1–Fg‘ÓGÚ+OYVÌÃ6Þ<¿»¾ùú¼­M—æÝ-^ǃ‚¥ñ«Ðo~r‹ƒÒíMkóÖ©z½o@(Ën½ Ö2æ»’ðBƒæY;ÿK½‡k&ŸTºüªhÛ \•ô’Í~bi‚”­©ý>§25£ÃëQFfØ¡zeÃ[Í"Õ’µÝÙa4¬Y'~ýñPj¦&–!&ãÚ Bñ»º–…«fIE™@ endstream endobj 775 0 obj << /Length1 2512 /Length2 20338 /Length3 0 /Length 21779 /Filter /FlateDecode >> stream xÚŒºeP]‰º-Jp îÂÂÝÝÝÝÝY¸»»»“àîA‚ww $ÜîJ÷>;Ý罪{‹ª0ÇgãÓ9ù2"E:!S{c ¸½ =#7@DN™ ÀÈÈBÏÈÈ OF¦jébü[ O¦tr¶´·ãþ‡^Ä hä’‰¹€ÌäìíÒ®6&;77##€™‘‘ë í¸¢Fn–¦9z€´½ÐžLÄÞÁÓÉÒÜÂÄò?J*í_î![ “¥‰‘@ÎÈÅh b41²¨Ø›X]<ÿ‚’×ÂÅÅ›ÁÝÝÞÈÖ™ÞÞÉœŸŠànébP:Ü€¦€ßåälFOPµ°tþ[¬boæânä€6–&@;gƒ«)Ð â¨HÉ€vËþm@ øOkLôLÿ ÷ïß,íþr621±·u0²ó´´3˜YÚ â²ô..´#;Ó߆F6Îö #7#K#cÁ_‰Ä…”F úþS³‰“¥ƒ‹3½³¥Íï ~‡5YÌÎTÄÞÖhçâ ÿ;?QK'  ¨ëž ÕÚÎÞÝÎûïg3K;S³ß%˜º:0¨ÙY:º¥DÿcÁÿ‘™]lŒŒŒ\Ì #èabÁð;¸ª§ð/%Óo1(_o{€¨ ¯¥ô ÞÛÙÈ pqrúzÿSñoÏÄ0µ4qÍ-íàÿD‰fcÐä,=:Œ Åc0þþùï“h·Lííl<ÿ˜ÿ5\Y15Yaš¿ þ¯JXØÞàMÇ cfc01²°8@¾ÿŽ¢hdùŸ,ÿøJÙ™Ù¸þNÔ¥ÿIØí?Ó§üÏaPþKÞ´±@åŸ×edc4ýÃôÿ¼æ¹üÿm÷ï(ÿ—ÿßùˆ»ÚØü¥¥ü­þÿhl-m<ÿ£í«« h÷åìA`÷¿M5€Ÿ«ÐÔÒÕök¥\Œ@7 dgnóß&Z:‹[zM-]L,þ^•¿åj¿ÌÆÒ¨hïlùû… cbdü_:ÐU™Xƒ^Π}üKÍ¿)ÅìLìM_3;ÀÈÉÉÈ4bbx3ÎÐèñ×èíì]@.Py¾3{'øßódg0ýýØ Â€Aäâ0ˆþA\±ÿ"FƒøÄ`øƒ˜ ’ €Aê±ËüA vÙ?Ä.÷Øåÿ »Â'ˆ]ññ)ÿA >•?ˆÀ úØÕþ ŸÆbÐú/âéŒþ P.ÆÈÒ俈ÄzåÙþ±þ=UÓ@Pw€ÿ… ¡1ü½Rÿ5`¥ š³‘³ÅŸnÿöqtÝÆŸ0 2Íþ@Ù? ëohù˜ ü²±ü†n²`ú-øœí·¹½«Ó?Ø@æÿ€ ø²cõÑÂÓÁôøc’ýƒŸÔ@ë@PÿY ¨…¶ÿ¨Ô°?¡Ø@®v [ø‡T¬ýv³ý¿Ô ìþ¨AÁ@_7; ÙŸ&³2ýGêô¯Þ³‚¦áz%Ùÿ™+¨rWçÄIÿŒÄæèjï45¶ù ëÅ¿Y¸Øÿ£ù·=פÿ6fú=ËL‚ ÔØ?ɰœœ¶–&ö6öÿhÙo Û?æÁ â úšü Êá è­ÌàbáüÇ^‚ÚæânÿÐ\ÿAtûåáþuyÿƒŒÞóÔ2¯? Eò:ýMõ¯w›‰«hB.}{@ñ?ø¯?#€@  üÊ¢½ OˆUCHÇ}ž;ÝÞ$ßÙžÆ'*:ï§N×G$˜TªÚ¬ M§[¡Ô‘^”õ1ÊÁUÂ&˜ð¯ÉJíO>ωÊ3{íðËÓXƒSEGBpøtª‚û>/Ž>êÖmﺥÉò]9‘ ÐïÝû%<*ÖÆÃ÷”ökÙež+fébÕbtKçÉò³pˆ¡]è`©ÑÎ=çonçÐr§Þ¥ià}cYнµ·˜ã¼6ªT™{pIqµq nÐÆgȽ…Ò¤±—¼ËŠ×—=Úx‹ siÓ×éPè˜3k-•£íZúêÝÆWº˜vóR!xƒè»Éõå-NÄ ˜µíÑè.õ,Ö@‚ƒ.3áŽ[õofVéø«\³o€¢äzÄœH÷‰ Mîž÷,ù¹EÒîgE'‰Ÿ¤d°¬¶ŸÌp5ž±_¤>Ó[»‰Œkl°ÕÇ–š¯ihߤkÜ*<û­ëÉ{ ÷ -GÎ8¹KÏLjO¬²=Hgc;F‚ñC]ëΘ!Qð2w%'î&á«TC{aeCò3´YoîuþéR¬&¶ºè LZÇqÙòÕA[%ÁL×qØOÜ3@6@€9¹(@<Ô‚9YÁ¸%i{ržF$tõ[_‚dˆà”Š0Óx'.zà “R7û?­‡YSe·Ô‰>¼g™J‰RKëDLJu{8?LfHèK‰Jª*ä€pMQa~»vkߘ <~ï±ïér;&cJ<ºgF¤=*@ÿ«yh¨øtüFÕöKð‹Í¾äuVÞ˜˜šNˆ¶xPC¹¡Òµ'•á÷ìõ{sS ®¸Tz±“Ý ´ß^´Çù k˜Œæi5b¼÷·ÿªÆ»äŒTÄ}ŽCÒצ½‹O ‚rO…º™cДx²‘?Êã2`½Èr!>ÈÈK?'öWÍú.j°·ôçáÁÆ*â¡°ËÆdGq¶w¬'».Èêœj ^R[ÎõÓ¾zH­eQ+0§õ ´À»0ñÚ ¿‘!âòŸHò…i |—VÚŸî1)ëJ”UôóŠ±æǾ|6 ¿9¬ƒ¡ìòËnÀiºE"Ajë) ÙÀ¨Zë©X¦œ‘Â'‡ìEÍÝß™Ø%ô¤ÛþÄí½ç)FÚjË}I1ê[2WŠn¥¯ûë­ÿ+ÿŽóËO`Ú°ùÀ¶íú— †×ó|ºw\Í®¾IÅÀÄ/RžPSsÍΤq¦? †—䕦縪xñs‘f Ͼ!†|¶åYeuM02Áôpª&êÞ€•~/ÒÓ‘àJŒŽŠ##ú+NÅ>m¦ÃäÁ‹×ZÕ¦;V7k[èiãóÒKÛ÷ס±ËÍ!æ!)…s¡V|üøLõþ)R¶\D†OÚäùjù¨˜*ZYJcö@Խḥîƒ÷Œ%ü€—úLîcú‹ýBÀ¡¼é`¾^f÷½Z[meßi÷,ä]9ÞÆ¼×GBväÄlHóu4r¥:m)/¼©†ͤ}ö~è¶D»Šï&NDù‚¯&c‘ÒÝ^ׇˆ÷wo~ô[Åj«/ dÅ”?pÕÖnÈF–UvP:¹ì(´¸¯ ĵâÙ;2¹ÖR®™ÅÝ«{G1ÞÀ 5j‡¥¯{YÑç!_µs5Wß*Û(¼‡àsÎ¥®-b×mð/øõ.¸6úÊìiósZGÞ7Û‘-le]wi7¸)e‡Ûº‹=J¿°3€57B~D¬ò/c@K]ÃîïÛIùéÆ[b+4'Œ¨Õï„LL5_ßeWfÊ¢›È\Ë4Ÿœ.¿ÄIÓ¿³‰õ=íõ$^µ­é!2 Y-õ0ž½s`“×y¥VötNO!=â6f8ih}•y„D÷6+[ÙôûÄQ3Gx÷»ÍŸEõ­œrùÝø{ ¥¸È}v‚6 á©f*³¬A›ÈóV¾éÂC°˜—Æ~ÿªâ¯ðC$èby¡GqÍ_ãÓìÉ,-_S;U9ña{ÝhÉȽٗ‰¥ˆ]ùÕlÞÏ–ØeúžåæþÚ©(ü³äú öÀ *Ý3YR_?('3A €8–S¨¾/ì]\L×w™W4 ƒ¦:ùuÇý‰ÞuJò_–ïZ?°æB9Ç|ïÊ®$®bø5bL»3³ŽU½sà•‘s´·ß¥Ôk^hóåwÓ  J¢ÌÊjÊCD\µª¿Pƒ¸ƒÉ ?›<=Y[ÐW˜3E£´´àëˆK—¬¹ù3ôÝ÷ç%¸ [‚x_›!"zmó ¡Ü‡µ*Âñˆk^.·©¢”3¦\S´£íefX§º5úóþñXûÅÎzø#Sš¡m-•æpÆøsdßʲ2?>ŸÀGŽ\•AúPB¤3óoáQÇâQ|ˆ";ˆÊ—|´È>_àÀŠx©á„ÞÍÓ9† ï-»ÂMSÇß÷R|EÑ7‘–vÓÊ­7v Cudq9Æ[ºá²ºì^lÅô^)§†ŽÅ÷sj!áº*<†Š+$õ9š¡7íJõæéöŸy„›%´«nMÝ}!„D4ó‹Úz%×”'Äšvá–½dµÁ)¥ZCWò|¢žm,†²Ø®ÐQ,–ÚÆžWÛo¢~Öš,s³¨,œ’Sö"ŒSjÑ3`ßhw«ûDGÓpÍù²VÀ4À?m¶½ßªóìhC_›ey §ZÞa[&VPsÈð±mÌ—n¥d¢”"²fÊË¥?§÷óe=æ;öwÎßÙÓ_o•wEŽE­®JQ¹³1+N V²S1tBuß«C&3'oêîÕ;(nÀH*9=·Ô?ð²JR©ôI=&q6[7Å÷O(?Ýøð\OzAÓHfŽûëàéäˆ,Ç9|òh! >ÂËmLb|˜¡£—‹±[qK”¥…ÍF[$N›W‘ó5Ƹ[À*‘«¸™7ªê|Z’ùù<ðr³äJIp¢ùMàÍM‘QW2ð{‡–_þ)ãM®_+ÅþìFDkAò*mäêåo/¼mEÞÓ—”|ÌøUÕ‘èܬÿ´QRcë>[*̈ùKY+ëý¡$9—ydLÿà ӸåÇÚô>)ÁôÆáf¼°ÞÔs-Ϲ s{¬‡•Ò¯õOíàV‘–?[õŠ«5ž”jz= ºÙqeò˜ 1%½ =¢Ä{\ÕÁ˜7˜ëHµ¸DžfÖÇEG°Ùö“åñï|Ozð!üYT-½Ü!ƒwO }GÓŠåoöJ_·_ßåàK %îù(â4EÀ¡f&9ËbŽìcôžý+b€{îéŸ)m©ùuúï%¸šêN¿™ÐsˆA­„‚ûVwUc¨\RŠ-LHûM‹ú#)‡zÀÛù¡>¨Km„k‘@="H·¦jÈň@âÀ$JR þ5_2ùºihÿ^†ë¡&²ÔÂû§x¬5—0*¼,SÍÝQµ§=¥ŽD")ãç¥:=–j’_à´ Ò%œ>~Û§Ä1gS§m C} öæ”ýí?D6ÍORÚ¡Y}?Éím:p“Fï(z[Èüµø'ÕÛå퇖£C®m7`­røx<Îb^û«¯3G{Y÷¨ Wˆ$®\ڗͤõpC)aoF™½×©,˜b9ÒL³´†µ˜„ÌyÕ–RÆ-Õ^}¯wœZ›!ôéä¬i¢&7ÀŒwülÖÝÙ葺빌PT;a㩊*û>¢åu¡˜RpÁ-4pà!êús¼‘ðq‹Ežq†U׿ñ9¶I»:×,ùS°ðô$$&å(ïË»PÚ%ðÃ#W ½…ÿ €üöÕM(=ÚÕÃxäL ñz6#SR:n£õºÁeF"5dÈÂÈĘÎòêè{“ ×T³^¥IK'ÔÉDÕù=ÇÄZºè‚--IÖ‡wi­ÛU#KÇš|k—8‚1&É1„5¡“ɬŽü»ÑDÇ{™"ÊSï¸Ã>êR^9I¨×KAŽ~±`™.­EfJ5^ÁÉ¿‡_èž ¹VŠt6vk‡wÁ‹˜éëè'å÷<å;¢ûáó3ªJ´›p]R¸òõëøÇ–1†Þݽ (óÛÅH•~lñ<±ovsßÕ6ã¢Ô’™­l,uˆ!!O{¼TÛ·÷u…­Î|ƒ*-R6:Â_ºß´Ãý6I½Àwþ£Öm3u“ù%éxè`ë¦dÉåÁÄO Ì~4lǦ¦O¼«U`€mòu‹wrú…‹GË0²1æâ·YðdrõÅbÑ€RÉaÌ…WÃ?Õg¬Âïlä;=¯º$‚HF¥æ Ϥhl“¤0ÁS<‹„¶jåT>Ÿö”KÌਵÄÇR%ÑÑ{œ‘>ÐÃRýìà£M!e…ò:ÚC²1¶>ÇwˆVóbÜÔ40W!þ®ºÑ-Ö5Ÿ*0n?Õåg\GÎá tSÊÏ‘ý‡ûÝ3^'=o¼ä‰Y’ƒóiŒ´Î¤ˆ‰át"ËÕºÜY%z—ÂÓ('··s—kqnXÁMy5:!-›ô¡ÂØžŽOHØtmîï«Æk׮ϯù¡VÃÞÐ+VË2/©#0”1hLzhÝSó†~¨—Úæ5Åûu\ ͼÎSÜûHízfû·dà bÃ$¼ ‘Åf0ÚYaÛyãXDñô+ð¢ùdÎç+´}©„-÷H<ïL ¥É¬·]9û¿š/k@m|Ó!T&Àv‡@ã™§*Â~T×Ú œ þÆèJ‹€-£šþ},î8ȆÝbŠò>AYšœ5r¶to2ÜK”òލq“p˜*ÖªHƒ>i£4–”ç:ùU„&6yËì8"ŸC!åp‡·ÙˆÖa9ß+»äÁuÄD‰`âí¡¯({³t6?«¹a®B"©™vgÜ $*G…,¾²Ð6P(Û+RW"Éù%ÍÓ_…[1òŽÅ‘}YF3Pɬ|tîyL¥Œ·þñÓó!²b«ét¿Å>Št~gP<Àr[zxUPË^/¼ €»·;cÖ·,ä9åªnI2uuˆÏùÆJ^+ÊÝbª@þ®GœW‰ÉÀ!Üz qW8||Kd5QÎýµ’.˜qo¯6לÇð>Öö p<Ág‡_˜†1^ ?êB76ŠÍXÔFç»F+J{–Õ!¿ôžëe¼òzÙÖtú@xŸÜÓiO°šxÝôÉæ—òåvv—~Ê«ž±=ÐJ¶‡¾T¶píèM‡è_;-›™œ¶6ÞÙ%Re)åœùG¢.7u÷4Nv¹3¤xÿj¿*J|ުnjbá™b3ß¾v¦­ŸÞß‹ÄÉþöùÛÚ‰©’óûýë‚ãPš`ÏèwIu%¡üÞËxç„¢Å2,tø^è"¡ '´‰ÆDøåH’fZ²B3~/ŽÁ?±OÖèÍ2â˜ínLìi£kÌ7ØjFHÂZo}ClkپÌíÍÚK_;ôKÆ\ˆ4µØ»z#œ ½*2ùb-ÂYâ«"Z+ :·ÖvŒÚYF1>\q†Ù:ú#-Ûd´E#3o5¿&â”je¢e µ;Ãø¦×‰ÅbÉŠÖJL©PS ÊsF²Q‰ ®Ñfâ¸ßÜ™Í`åëœg'–ór‰ËÑ[’¦Ò“M΂vò¡–²K«ÍÑÿ©D$Õ‰VŠ¥¤ž”Uwþ9j/F»áÍ$Šyu!A %¬hgV8&½IÜøB|¡65‘óÚÒN3÷KºA¤,@?æ&‘º7(3Äžþ0M÷QåtûöÃÞ d¼–”ë±'ަsµ:ÂÇq¦‚žî«éxî" ¨ÓÚŸŽïÊ®åI¥Í+ ídw½…µFõ¬pS¿˜½j ¯:ÅE„Ü\ZváŒ]±58¨Ä@W~ilÈs䆂àâòš@ë)Ïy{‰ÔC„ðTøª²H¿O³¥Jbø,MÝD]V£à4±ÄÀD×Ð!a„B,®iÜÃüi@Aœ†°C ï€1¤J¥Fi¤þ&ÿ¬¸¾];i&<öI0"b£K;»aש^?nŸ[®„˹âýkh`µhÒ£Ö'ÿ9^0)c~‘  Îi\›àt©YAÉp‰ G4aöü¯Çƒae«Ä,kf¡Lþ=rü`ý†\e¯>3ÔÈÃ4ª{s+¡d pcaESÞÚbýÙ8Ú9"ä¾|·…=Ûei¢ÄzjÞšz•ðá^p>¹q._M5e–íG!fù`Ó#ân`âìpb7I:gôÈù“sÚòòA¢x;½? -p0c }ÑÎe~ò³ÍFÓ³QÊl?bÎñÓÀ„Ó°¶{.–a~‡ÊŽ›^8ÕÑ"líH¹«" 3|FILI¼˜H$*.¥ó)¿QV—sb‡3%EµŠ½«t¯~ÈýZ{BIFoH{‰èÒ“ oˆs1ì‘spÛoÇ´g@¶óšY*goØ=Øîb|W¨] ÃqïuWp¥–ºG²ó0‰Êþü¦^8ÿ«J²×‘³Žy¤h •å¢`òòrÉ!óº ˜>P%šf[¹3*Q·F¯'ÛXc3Ÿ¨@þ{±Ã ¦Qß)c’Y|‡Mü†]û¼˜hìû&˜'+Ô½ùc%H¾Â]°ÄŒãÙ_ð °8½?&ÚŠ¨-·ð´(¹¼âídëÔDioV ¡Z f4ùhA(±ï‹ðbj§–O±íw÷E9ïà>Ò±IRð·íNÖ¤ë÷¾€_ݦ#›@sô¯îP:‘äØHÔ0 ¬NáEˆG¦œ&ZCŒb°}Ì»‹',ÍqÛiˆb…A¸§Ý5‚12„¯äƒf9M¡nŠÓ0(}İó–ä.@/ÿ¨Z>šÏ€}¼ C£wÐ@>»:w$ñÄÃa¢àƒÁeà@Gã§P’ÀK(šb/rÀÉ^|hûœõtâ|´„¸Í*r?¡~0§„(Õ1ÂXblbOÜ–ÌBYƒÁdÁ£–àJry~÷í£gÌÙ„¦arÎwƒ‚¨~HJ6ñ¥@™5w«s£’ŽÚ·]ZüOb”œçL:Çž^¨¶PØ4"`_<ì<±–_¦U^fm‚ŸÈÊ:eý5”æ×Áâ‘ï»ô2,LZ¿ËšLF{Û³RÛŽCˆåUÆ;Ñ"Ÿ{]%/íccxcè8°¨ÛDLšèŸÊÄsžn«D³IíKòÂÎâ^Ì+üI˜+4ýí‚îk`‰({·ƒ¤¼þmÛ>âô«5ÛÚm“ É´uZù´ã3“h"8&w¾ÇÛhrnß³°RNy±Œœòïxü¶uîׂ„lÍÒªÂÄr©ÞQSv4§D’ô³¾ž”ÒFEÐ^Z”÷56¶®‹ŸwrkiJ¡‰‹6I¾7¬!#K¡k Ó^«,\G'¹­Ù@\¿VÎ48±DzfÔ,䯡±yê&£ ¿Švž[HÑ9/ól…žƒ:c ùáËGGdd'¦PÛ:¯;,ÉŽÄN¾ª¶Y%¥Ý¥ŒÀ&gD'Ñ'¬¹Ñ?€B»FÄk÷u§ëYk¼w}µ›z§nó=ÊRì9>ï¶gO­ÌésÕ’ˆEg…¯yb%GG‹[1¬øÌìÖbVàí#lZi¾ˆS¾æëÒçÅ4³æÐÜo«ŽôŽhjÕéóäçÎrÎêé¯û ¢ûÔ+ÖÕè7鈵<6%E¶ˆ%¯â1 t>ZW-Õð··K?ÐwðEOz™²jË28ü” )´ƒâLyG“ÉKo¾[pcw–ÛÊS……C!GŒF%Ø ð÷â¶Y­Æ2U» ú Úë%î¼.~Ðvž÷“l¥“®µ\)ýr §Suâ±Ò¢¥{•¿ö*ÒÒ<ÿèÝR²£Â`òMÍ¡kÙ;{ÂŽÎ{”šè›¶ðæTãà‹ÊŠeû¶òö×åo$ŠÃãì/é~2Û…„3B¦¾ jnwûöL_XÂÔ”›Û>ù¿«JÚ²É Þže#ÎE§d}ÓM³œ… A¥((Ý úæ6Ѽ¨‚¶rž–5$šWA}ñ)ÙQªò¹K2ük¬å/ºñ ~ɰ‘ò q‹ ‚]Íñ§)œ’œ}ÏÝ%w5žw<§cvˆ•”éT¢ P68@*)-‰bƒÂÙÎZ¹ˆ°_áÑùå—oýÝE›&¼]†÷M±UÔXÄlÚ*vAJÆ Æ ½äê÷¯Ä@ F0{n®&ž×½eä1Dî`¿Á –öí:¸ZTSzâêÁb“^©+þ{Â6 ?j4‘1˜|Ÿ$EMËΗýârÛÉC½ aí¬¾ÈÉrñ1GºÔQ£”6&Ù­NiéÅÚÊØ­ÔÜ>jê%$Pœ+V ’òùx‰Þ³(’º¨$*µþkÄ”.¤çå5åcÓ$@y9ü£I>ËûŽoñt•¯.)½f·‡ UηИfŒŒS€*ÚW…aYD”¨^¢Ñ…Œnr½*—@è²Ò€Û\̲O×'qqêÙ||ýÛYÖu°ôV±cW_8f:ê•üóáóŠÏŠc%Ôƒš×gûGù ¨ áºoúûlÒ{Ë{ÁjuØÍ½ Ý.h,ûÅìè‘«>z²å¼§p2 xš£Rþxµ7®.À¯þR” '/ˆP•'g>…{zÔÚ!b½çÏÕµ:®—5è?(s©¾´à9$µ,èSüSVïdìÌôµé\#ÞÄgóaç%u%!þh÷Ã{«.‚RŠÈšºnæ¸cmƒìläµ4MþìïìSS_Æ q)“3J:NDÕ²`HM>bîuÝÊR|&#N>ÆQn¨Ã™+¼ ÎÎêóíDt|{X1YŒ[èbfÀSvr¢~TðöáöXÊ”¦oÏ{žØÅâa ä²þgT¶mï˜O4Á©õ÷'":[~ºÏR]PrPMpVL¼âDùvè'ãð2mEOîÓG›¦k{ƈ¹ßްy_‰XÂQMHt*Þä ×6ÛïÐky­$!-|‹T7#û`6 ~‹fÍ›`mAý%Ú*ª=o‚ÍïÇ †M}‚#q*LoÓÕ£»åšóOíU:*K·Ü ÍælVƘ·?¸V‘\–2vÔmSv!x…kQš‹Z‰¼‹ÝatšyÑJÖ_eØ/Û¥ùðî9éO0ç§è²Í0 IyÃí–áZœ]Lˆ`,né¡(Å}»m+FÇ×"Èmí Îxºwµfíš0¯”q÷…¸¢¬í[jJÏÖ2Ãó~ÜWä˜`E/ã~¦•_¹ENÓ—êH¿÷È‚|Ei¿e<ȼ¥£ÅZƒ8‰{îLþ¾¯i}šLÜ#Ü ¸ô†ïLÅÒU'dZÏÚó„[¢Jô\àEu¨€ œ·I«àGùÌÆ5¾ÖDzéÐüˆ(ÕåÖä8ƒ°ðmY&õn\K¯ŽÊ”µŸ©P5ïtx`t@Á瘮£àt!¤ÖjYI×aQz×ð“²äH?¢m8kjÿÒÕĘŸ°cLd¥Ê¤X±g-)[Ctš4/¹ÃzÉŠš­Wñ%dNxÒ8GRTfýNCḧ’Qª11°|ú®™a¡ý¡ É ×8bÜÀ¯l‚XV9QÙ+#8_ †sè™<×µ”¨üÑ®ÆQ†O-OÉ¢cEDc÷Eë 6 E¢S…?:ãl±DäH¯Ë¸N» —cÙæ¬JûHö€kn´Ÿ‰IŠ'n…wƒ2Pt¦Ì†­ºäÉ Bk‡MB»‹ê>(¥°+¡çóáÙBE­oŸ_RWÄ ڎàUçšêqƒÈKŒ»ÓÊ«$Z[Q$-MÉ×ÏG/AóòBï@åÎCNŒ´ûó”(“,ñn@±j=þx!«!¸u»†ëi÷°IrýhuL`ω"Æ»ÂU1ôäÜ܉x¨0lô+rL_ÅìøŒm?_õ½ßãE°¯üÊäÐŒ&BmÉrŠb#ÉaYlzsEì4ÎEi†ûòkMZ7¼Lm‡'ÕÀMí6ÕšÔ8: ¹KûfØrËERÙùà3eÅ\sÊy¦qø+äʳ¼ä÷̸}VY„ÂÛ[ù0ÂÀ6üõZ79+ëµÖ,šmW©™ï<œî£.‚í šègºWÉÀ~g¶IHSÊ£úES/¶+ÒPn0'¤Õf¹O‚Ü&d„)ANi9š­™cu¹U/%>‡”—ÛQ‚®\6UEqÙ °9ûm¹ÙG´w4ÜŠ…BKÕâÈD˜êã’ØœúSÖáF …2Õ®R¶$ÅèŒEB€7Ém²†òƒ¥…²Íð"ewÌ—CºdMÖÐønTÞÙH0B‹$6Õ‘ImÙ\ÉDnˆšÑgKC¨tQ²”üÁR–yÔçe¿ïf+5©¤_ŠY\çïÆw8¦g ³¦d™_J`ó-*“8óóG$&9¬Ñêìe`Y;Ú0Ì®?ÐöîK±sÔØ³=¹vN ¦‰õuç–Óßyo•Ã0¥qûÌ4§¹(|Žf"J{«ºÐZ&Bï5t-ŽH9©qŒ™¶“ú¬ÜX·µ4—P㬼ZøîìÁ[Œâ€uÞã ojõ}­1‰º\„ˆ×9dÿ‘æiÚ7!ÅU}yÈkrªnœ=‰·Œ!FñÌCd“ôH|+¾»Ý-‡=ïe*L«/Ìg -G)C†ÝøÌf*Ùj«¡øö¢‰[Vºâ»êY¡"iÌT)Ág¼Îî3Zz:Æ^:Q2»×õsyžÃpŽ”®[ÃÎ ›<œR¦ø½ð¾e”8BW¨ØGë2)GÚ©âŒBÔÏö‹Õ¶—Éý¸ñí9‰;C:\ÂÇÒï­ ~ʉƒ}çÁ‡¸ªÌ~´â]'d|é® çÉ„™ç”a{|8+÷1(Ãï‘Mi=|fÝ Á-Àƒ „7à-cE|jì"i"õ­Ioô$ e5K)Hõc|_»?úÚ<#ÿ?]CˆäLóP?Šu2Pz6G÷µ¶ø½ø HjûÊVýˆ"\âRˆx6²_ñªðöð[«›cx Çü08I§ô”7ëEŽîËϪ Ä¡%j»êóÄò m¦t»•ðL’rtÄÏæAY¸¶;êïë1¼u†E‰RGV1J8wjè(šc«´<ÓÞïРì”C¥¤]*ÇR>—ì[lU÷%òŒ—š"± këÛYz†m{¦ ~» £¢æ¹&}CÑš}¾æ±–¨ÓóÞ‰?ºnuXŽœ\‡E Ó`;cjRW#‹À¶ZŸ"‡±².G;° ÿMN1¿èN»aBì'¨>@­ñlÁíø¯®O£;Tûé’o?Y Šx1Jùt„±£756É»øçcI:rÊñ\Ž1³1¹4~è2l1– u‰Û2)ÍØ>7+i~wŠÍ-W½®á¾d£“)“ÞôáÌ;‹9Ã…Þ ]><æø¤ÿ…]³<¡J·97Ë£O‘bùò(­M«¯Zé3/Ü–0jÁù;Ÿo¤TƒÅ~ZÖtAþ‡â"Œ©îOP$b¸AVÊìÖš!Ûv™nZ†åPŒMŽ¢HTÜâ%?æ«´_œšöö†mÁÞÊ󪬆•×;ð&“3«v²Â9Ûèøøà„b>¶¸éŽ9 ˆ‡t€½|½åú#âŽÍ=—4œOÌZh=úÊ|‡q#í® häeÒ/’lª¯ül«k +šB×¾=M¸´‹Í-‡b7Ü«¡R´: )Ñg¶¼Ò+× öô±¨ù‘Sy@CscíùpØÿÒÍäÌó͵¯°71HØ8šµ8fÆ t¦>»Ïaç®üìýE™¬ïha›;&æŠ{&”²&Q0ÓM«þ$ô ¯ÃjyįDuZaRô_ ´rë_NŸEbQË”ÀÝL­à‰­kUùøÙ ov¶=;H>xæBÄÒù¡ ¯dÊ_°Bä¨Ú g­W×x›ì»-õëßH‹^óÕl1êÜåæ±;×'=s)}2#6šµÁX^ Dü|ã¸÷ÖwUë)÷d>*ª¹!I"Šá£Ýz4â<¢ºlÙ­¥H:áòå™ÜèY¿¨½yÓéÙ å;”P‰‰–Å‘òÌg’´Â#YﵕYã좻ØÓ…—LåÁ–JT˜ujuVÁPm ÷¦¬S w+xJ÷ÑíÐ{"‚=™’¿ò IßøåSQC‹&ýr"W¨n^cÄ­æ¨Ukvü´îª7~~òc; f(KÙ­èGð+[Rc°Á¸û³ë—¤ûp”W4Í%9ËKÄ-Qò›iÇJ4+d¾¾‹bã§s‚—78Õ>ÞCòÀôêxj„ÝpÄ6~Šâ[ Bõíü$êà ö ¾¨¸¦Ð_@nE/kF*Bö\'úiM­g!ø}jE$¢ž ²w€WkRÈyªÝ)ñj_—H~_wÜÜnnà AV»‹Mž½ù5‹*S¸;Þy\Â{Eûñš _Ý*šx3±­ó@Ó,î7›#´–$Îs ¹ÛSÅÀií—ŸÕ zƒE³¯ÈêkvúÆ£AR¡¾`£ÖA îúÿ¦ZEòNÊkŠ|ƒµ¤y2ûËòG3±yx„•[R‘Æ•]z"cE4B¡ÆôVq„ϰÝ"¼ÒŽ  ¹W:*$ŠhGl¢°o²½3ÃÒWò…ŽpZ& Ó9g©¢ÕÊ„PSƒÊäH2Ú§;¸~·°B:|Qp…à-ùKwÂæö9ãö½¡Õu2s¼Œ Á¹¡LpU^¨ÙjH^Žãë9B—õ™¦"¼ù:Ë34N8>4øaË:„t¡ößgu…ê;]PÕK&ÈØ QÚwŽò‹9)ë#Z[33R0·ºe§:Ð5ÛT¿íb~ÛŽËIŠö×Ðù¼NâÕè™ojU»«+^/}XÍí‘/XPñ¡¤ûDŽŠù¾ã‹h¡,ï¹…þBê›,±Ñ¹Õ¨Ï‰²t.¦ç©Åþ§âÉ_Ýd¼r°œ4‹+i>1 3Ý:N?. « mRΙ^2nÃaº\æQ%ã¡_œ åÃ_”¬KÔuÄFœD¶É$ ¤oMB¤½?ƒõÖûÊ¿»ÈƒÂòü F]£gÍE»TSíã›Q¯,ெ¯Ð4h h‹ËÊý¨¼L D-š,•MO ü6—äç‡eßu?X³ËØúëh¶îp¾ý0kZ30·eŸ¢×lcÃ?gîn¾§%×*À© ưÉ@|aêV,ÃeŒ <Ñ–/ÛòI™ ýxÚMõ†gÇ|¯Öü²„v¿mSI´6‘øc “Y鋦wnaÛøÅ@©:ª' ^4Õàâ¦SÁHš¼sÒS§ã8q ÄÌ’›ˆë÷ÆÆM¥¬Ú"yEFÎ¥õú×óg’~’OÑÚ.”¤Vò*„Ç”Œ¯ªM¾‘ÁÚ(oaNú̬©òÞŸCÖ©¦ò Ê7<Î~ {*åɳ(œ,rÊll›/æ_âiì ÎDŽ)7¿ÎÅ×s¨ÐÜ’Å—¥Ïoµßú×Siýš*WrOÐ=O€ú˜cë tÊâ§Å ÕòàêM“EáÊîE P}i¼ ìå{0°ù%.Ì×Y”‰ÃFðéƒhÉB-Ó¯zN¸ÙtÛÐ!Qqí‚4¾iA\Z¾ zl& øæ¯NOèÚ#Xs扃ë¥ñ/‹Ì¬ƒGÔ^bzƒµ=®dªÉÜÎ.y­©Ÿ² 3ѻѢ~‡y…Š„.XÖ´G·Òì]\̘ O²™,xŒî%¶œÚqÖŸ‹š*:„áOê—Ž¢ò´´K:'¬ó!,Õ2-"HÔ›~}Á€çüºcÍ›x"+?t6zÞ,Ž·¤ˆLQk†‰$%Å1wΟ6ܘ‡X°ßA˜À«Ä†qËëk ÓzBò"üÜó&;Þ‡©çØY ) ¸Hr§*ãx’àŸhœx‰º(y䙋ØhÜùpÖh)Y8.Ùù §sj¢ýèì;çFÐü櫆O„|Iâ*isu’âk±ÝÀŒ‰R“!ôYï³i{E¦èœýó ¯¢°Ó›Åd£¯Ã)«Ê݆OoäcNŒÎ´AÆõƒ„^þv½¤÷ªA°`lÂEÒíÁù_U‘Â-|WJ?êÔV0­/t1Lj ƒ¼ [çM^nßì’„¾º®µò‚Ð/¯¨¶9ˆ°¨Z˸+*šã÷õ‰„îÏ–•"Ã}­îB 6²#„¾Ù/õw›Q]v¿‰1Lùj × AkTFœ+Ú3.ÐbNËUƒ" …ôö£,f0KÃâÁ½®UT·ÑÂ!¢~a+ü}‡ªÄ}ßK§Þ<é}pYÁ­¨w!!wÌ)Ÿk•þúáM¶{Š8À;OÕ<ë… ÔÙø‹1wÁBD¢^…X.å3P•ÎEºDé†Ï˦=°ÝÒW áÖŒ§'ôAÔV÷CŸ¹‰¦?á¸AžAëÆV-(ø¸[îØÔ³VKüZúfj”…ˆÝEZõCᦑ5ì¬YSõˆr?ʹבe°Äc+Ð"׿Ý=íO#TÆÁDv9cÔ4ˆÂ Ö~´£v‘MºÚ“êû(L÷øK1.Ñæ¦\‘²¶©ÔïÛN'îÐüƒ³ÐÒÖ’÷èˆZ_eÍŸÅìó–¤r?‹!ÃRðp[Ù' )•E¾èéû€A=2ÑPAjÚ2c.8Ûè{Ã{«‰G =R]‡†™÷Ì (QSlKßVÔ¹²\ƒm§z”Ã<Éφ ‚Ô7± ›ƒ,®E°ÚTåÐݦ1~Vryë½Ýé\)› æ–ï|“¿Z<Ϥo~Išj«TýáºSŸhTúãñª@çBw}Œ‡OÎË>hŒ’Á)¬zó9¬@_óCùî;ý¾Îªäò«;Áú‡ñš—>°1 oYU-‘!û `פڎǺ/çaò¹Zå]z ú¨rˆ8ÑG.ƒæ¾b AÖr\Hȸ§ÊÕ²ã÷J™CfQ¾(Y“’ð¼<ÕƒËô4’)½ ´? ÓŸhKàmÄ“+m·x”“Í'¡Rl6ðå8?÷m°O]ùVJ¾¼7uƒÖzñé@)q4ý(Ñw+?Pþ#&¦¼˜wO°Ï>9üÖ‚¥¤è8C.Ú\µuŸ—Içõª¤ÑÐqû`ãRNYб&9Mæ;õ²MÉ-£C?c³;É yÚâ½Í²¢Â~ëæ{ÐX•½•5à‘Ü6±Àõ&³0Ë}ÌŽíüÅ~BoÇ1ê óvå‹Ñ™ôn˜*œAÏ:˜ù€¢Lt €GYýž½+QùlŸõŽWÞ8Þ/}´¯:„[ÏJ:O«aÓ'Rñ³ïÙW¸ýÙ™àY‹SÖÒáOÑ—rBÊF u2žïh§)8-Š´'†Ž³õª0kͦ+/ëÖ3!¬¡ŠÁyCô–ocÑ%%Ê~E1ÔGhpŠŒª2—6Ï·)ÀÂëyâs9oßàÔ?‡'9Gkëw Ž=ˆ(ýð¦ÒÜÀ&™Ÿ™7A±4*ڵߟ¶F¶ LëXUüÚ"°Ç¤‘ÜpsÖ!fÌà¸ð1n\¢ÃW峌ZDQ5ׇbfâÃlÃSÔœ–ΣŠÚvô©ûc1+ËÜaç †±zuåµ6¯Â†yú’v×* ’Õœ:GZlÇ÷(OQ|ÿå Ü—¼ch½§C7DN™/ñˆ« /匙[£\#ýb™O¼¯Ÿ …•a5,2âÅ*ÚOF ™ î“žeoVütÉø}ð‰Œð·ó2™?rÞPUU;ûv€MÜYƾ=#£#ªèt9e¯‰Þ¤dùU]ëìa&ÂÆÝíýÁÊôº}ÁåIû¸u§Ò”Õ?”ÙŸð­r,kJ7ÇA uüJüû‘óÆoû–j³’ŸšÇ{†+Í…u;rÔòÏž«NŠÕÐF ŒY¦GJ¤P@¸ŽÌïÙ§…vLmr܃ø…tŸ½¡ô 0’V-,Ë’xá¥Wùt㬫uMÂŽk,tpm|ƒŠ"ú~¼•Ͼµ¦a0[™(‘­¦zû^Ò×ß»‹ÓÏÑ ½xvÏ -µ¾å«tå…A—à«ø1ÍÛ¥Ð+9›+’ B«½‹9S]ÃÛÃÝÓÅlÍåÑøás8>/âúgåNáÙÓÙñŠ[z€vø±)JÞ×ì´,û´ë£§Ñ]©–EÆpèISŽ¥<ÍF:7²ñIƒ†,à ú0‰‹½È {nBáˆSã`˜À£ªà8Õ>Ý ükUmiÑ "J¶ŠºzÕNÓ­[wPÉX8r ½éª½Ò'‚b÷­°Iéñø¹'µ§„Šg÷2K–öÓrA»˜(tè…‰ƒdGÚŸ¾›}àdº©ü¤5C‘'üY¨äî=ÙÙHuá篯ΤYdâÆ‚á± ¹èü¾rKÎËe~º¢íéâ]:áp“ß­»¯ÝÈ`ÿißø Áçý]eP£Éßí J¤Ð‚¬<6õøÊïr¾?ÛIž¶N=b—Ù ÜG=¼Õë—ÇQK›ïª|†HZÄ}Êà¥Æ¶¾b¢®«ûuß‹1ày/8\”¯õ ¬AȂ¸[k)—¶ˆ§ÿ=ýšý~TzA|Ü¢—Ųb¡`{RŽ®ûõ ÚÌ yžûKHPÊጀ6ôö@–c³às*B´*©6û΄}=Ö‹ÙàÆ©¬„‘¨ŽlÖ$KΩv"o0µƒ°z±gsCÙ„H —¢‡@ACÕmŠß÷z´ðskÔh’#ì¾k2ëç1(C”Ø ­œ¹zO DÜ%Û:¼w†;žSr4l¶£t2Um,ÂÝ`•—!âÃ^ù:?Òˆ2Išøêİÿ&Pô)$ 0­rÐ.”*Ë?{iz!£úC!Qymûø8±jŒ<•÷ŸVYð(w‡mOç¿IÂD'n<°9ÌœHÞ ™YDzEoçg5—÷ž+J.ŠIÆ<+;6‘ÇÒÌžØT ¯®B>“q‘ì#ÙÆô´îì½ûõBÑ3‰,{”áv¶vG[ƒ*;«$¥€½kÖ—<ûœ×ŒN§Æ¦Xÿ¶Ó,ÛWNÉVlÉÝÝköÚ]ɺ<¦T¿K35¯…–¿ÅÂ%žA¡Ábí|ͨۉq»®ð³…2kk±@{Šxdœ{RWW׎9‰å`Å×l&˜Pg“îŠøœŠs©#ŽŽû…vNÓ|³Ô_jw ¡¯ÛÁ6‘PëxXÆP³dýC—–©-ïôqé –Å|1y[{p (=ññÍj÷SÌHZb {wL [Êî­KÖ…/›>Ùu黜·z ÝûMÞ~~_È)¿¼ô‡øÙfZsCÊêë#îS74c|jð”©{¼½Û²-í|Wޝ•¤Ó?êÜY¿Ï©chIóݳ¹A÷^6šaûˆÝ\$B•(ŒöÄJîA~½å—žc“ÜÏÌÐòÜ0W¶ºCBsê óþœfÂÙ*•Çms”ë¡ÑdËŸéŽ~Bש¡ªÅFÙI´·d0ê˜ã/®ÐšâÇ¡KO¨µrhÔí™Lfêsú…`¡§U Oix Ý#4—]S¢…ÆkñeÃÞdÙU)¬ „—ž£5OïHÓ>“êßCCE>§“Vbq½ž(xe΀ï×W ìO8¥÷­ç¤•ôþ“'}þéµ›”Á¦8š´cJ²±{fBÿôòEΗÛE½çÈEÀ×·—·ÊØmÑì͔Ԛ§Ôâˆ:3« ›¾7ÕØiDß][®ÁY‚gçnT5Ì•8ßK\ ŽvœT*o‚ˆg¹ƒ2Ž,x4Q¹Â¢oÃ4ã'8Â">ÌrFÃÅMæ¼ìOlõº­•ýIÔr»…Ñ}¾–YO0È6ŒT&‘iØø< ”¨¸OA[X¦}ª\zc\ï Â®A«Q˜ÆvÛ=^ •Û>ÇÏZ½ÓÆ\tRJ´àÎ ñ,™é¡svػŜùæ›G6ò/þÓÓ¶`•ßô!ozÒˆ”°UXrBô°åºÛnV÷Hë\î³ÓôdÎo½eâ3¿¶ó(8’`Ûé®M”•ã¡·+hóyÞt…HU%>GÃkË‘Ì «Þûœ¥‡ ÏïÐW$†ž§"Ý/ž=Íãת¥ÄšÚd'ý‘‹a°f¼^µ(®kÊE©h\»Ìfžp.7éá µV6£¶M¼ob±„8”ëü]AI1W ‚sÏ»µ.udfÚD÷šªŒ_ØŽ ·’ `ÀýYÿßvÊLe¥¼§º©&« ìqvœEòI½)À>â˜Õ<6µf. –tF —ÚÊ!Ž–oY€‘Œ§ôÚ’a¡ž“žþö@:©W¾ÐÕýÒ4|¯ß… â¦)I1™¿ZÙÄ$÷ã:+‡Zû!«’ëdØ6˜¢ºF9LšGÉÐo2¶–j€Äf"° Ÿ% !ÁÌHg£à ‚š{Úck¢º ºO!á俬ÂÔQ ã8¨ÅoZÜ4<]ß.¬hà …æÐv©5C–…=&4ÌMMýæe5ô¸FYU_XëÕ(}8UEðOSQ%àöíÔLÎKãü…4Ø=eÆ#(Ǥ0ÐÛìyX¾E'ËKc¾Å.»ÂoÆÀÝÛÚÝ×!µ&8ix…eµì¡ä7ÚïMî½A±]¿¹/P~ @"fd[îõfWß×9WÕ8†ò§tÿñ Oâ*ühËúkž…]»®‡Pè1Ôoþæ²OŠyHZ¬èÇtõ’DcÔàH»OÀ>ý”´Œ§ƒ¬N¸;aË’ó>;*‡£ÜìÂÄxa±áR¯@ŽÈò¶þXø{ilï»”…Y°a‹Õ>i°Ghðd–:¥Ä8ÿÁ(ªcÖxx}‚¢Žã° >L»_Ÿã°¥›’à$Li÷,„Šk'¿5BÕ}¿œ…!ß9zz,ŠKZBÝf…]%!LõrqKŠ6±ÀÈ´ð8Û\±ë1Ð rc\`Kâ•ê(ÊÙ-t8e|´?È>DðŽÅT´…ûw $…Ú&i \8Ër.ˆ©‹Ýÿ(P6'œx$˜P#ºÔÞ–ƒÀa¶þ@•Èþ­Ø?'TU}°:5.·8|"ù‡µ¬9ÚSµøh§¶ã§P—¨úKÇ(+oV›­1î¡Â(öž[Ü(X /E+°,æAõ¹)Â=òÃêèRHc6¡?É;øUP£Øy¬:M–{Ö{ªu‡Ü}@0ã `õeŸ~>Ë.žÂPq Ðþ¬;Ë ½>€bã~c<)ßðÇá(::üa‘u{GÛKóÐEFW-Û÷HåÑg)WÓ(§ÊnH ³bWíSó ^©ŸT­y~•6貤mUôÚèE×:Dø-Zæ ½¹©×:›{äùî€Êr Žo»CƒÀBžýÔÔCF$Ü$“8rŽy\^dþ‹/œ’Öíû ´‹Kaú¥äLT™ü_aïd~Ô ¿bŒÓ-<‹€$}òþñ»¶”`訩#yl¤]Üe]…GæŒCõ,µ^¨ßûÛ…Q›Ù‡$¾sŸŒ`` בH*aå'@ Cm|^Pøz“ù¸;K½¼¿MÕ$õŒ®Iïð¾.:†ÄElDJÍvÞ¹ÇPª…Ö(?¯¨”4kU,·ãj8KJ£±¿ö’û—ÞzËö3ÔÍä Úyzý/qœÅª?è ówé>`!ä`ÖêôZ;XÜ{ÖU“Õ WÀñƒûçg[ˆÜ„¬*_þËòú€S½±W±„²°UÂÑ/[ó…[è]”{ÿ9wÝVët‹,qùªÊUdèƒVé8Wä¿¶¶¡NêÀ?”ì*u:دiÀvç[4Ñõ(èþ09jydlï™´­µÇ;OÎ-†–K}V£álA³>‚‡Z)mf‡ðŠ^*7YÙ¯ =ƒoŽ¢]Ž»¹ð'zÏ1;dýèµ*t- 'J$ãÚÛöêì÷e×Ú³ V:Ú Ž4€ªÊ‡ÚÐìÑ&²åŒObPÊ#¼¤ž8£¯àŠ®UË„x¾ä!y_ ‰ä9´0 aùYå+h-;•¸+5?>‡9 ¥_¾×W%ý$âTÃ<„)!#|Ž>7§ü"Å­­£®±Zâ2軓SÒS×±K–Wóf3&1ñ—ÛÊž§ï'¬´ˆ¨^5ÞŒ°cå’çäß^ØÆŽê˜Pë8©*ytˆ0æä:£l,Oð'(çî•ÊùöÖÒ5:yÆ0ÿ¤Ûû3t`tr%¸oØ«äã]Ú‰— ¬u¥5ùÙW2ÍÈé£ -¶c¦<ñÿ;ê²ùºÌ¦woæ†(uy­Ñ¦¾mI;ÛHµûcYÇáEÉ¿wøÿšì@( ÐÄàLuÿiúszSi4$Y†ÂóÏ¿O˜Z' b#‰ÊgÕåÀmâ[ž˜§äˆwØXú3M-Ò=Á5JŸÂÉ‚ »™tÂ\—ÅÀ;!K°USÛÃ;¶ãi ÅTx¤§WÀ€µ*.‹%ß[fr‹>ÍS2À ™.G }Þi>š˜u®¬C0”Dá±ãåœÖ:ÑI,0‘Y5¢Ïg—âíŽé™Rp*lg¬ÃJCP»5¤:ÁŽåîO*PúÓU—Ù¿¯ÍÒk—‰yr ÷S]…~Ƭ qOÕTYʶWêkÄ)&JSt:ÙÚ:¬ezkMHbMäØåäã Ô3o&¤È ‘ÊáááàÞÈî0WÄ»$@•‘åT"»„1˜PKN1Â1Ç¥=s*Äu«CcuÍþþYÆ6zñ»±yqVÒåØ,tïje:ëfsµÊ )H»²óiB¼—Ó×2#zg¯#bíÁö=V5 ­õA„x½D@L 71ì&Jœ 3º¢¶É/;Õ;ÌÙÿ°Ó4ËŸÛÌ;vM‰8ÐûíAh©r‘wèäܲ‰:ÉYðˆAöœ„5µ×—ùé¼.0¡2, ì‚såÚtš§ýë‹éž²Ö“HC½bëšè/µ¸I  °ë,·?õÁ]£cуv#ð¾yûz¶_ Ó«œ!JñõoÎó/ ËZ¡¬È^ÿ×ÎÄâÕId¯Ô¬ÊYGl»ïÕÅî:P¢zª=s,eLå,4øEfÆ«C¬­@sº9¡é`ãÀk(+£¤¿»lø€wS¯fÕ‘¸põm\_þF삞äõGÔ-G ì’4'¡B²ÛݺÂèàêF¥•,žµS–6Á¶' ¿M+y\„[ÝØ÷HÍc«”ÛÔüe̺Qº™¢r¸ØîK:#¤É?ÝñÃ} –ãCSˆ-µr)>Ê4ø`'W+ãZE 43Wh»Õ‡&´­vªûÕi"jô5c½Œ,ÈnËMY NM è׳¶¸ÏiXè„·uôøæ9°¾n,avÇKð“iÃõˆ‘ ì5„Ï- ˜è–ÄW3M÷ö"É ÁõXØ1Èæ`üaZ¨*§ŒOº€Ûú’ÀÉÊ/%»Ðó6ÔÃ<[d-õ–ú²ª•Hñ Ä/­GC (é ÿNíúMMä̉ŸÎÒ‚¥)>œ¯=ÝʇlaqîæUŠß/4€¯¬@^ψûAŵµÏžbâZK:ö B µqeԲ̫ſÁÃØˆ2eNÕš¹<Æ¡$£ñN÷Þ×ÄI{Ò‘EQL'ТY¯„ªe8 Ñù»ÇÛª£M€Õꆮ«à‚xÀÏo•׎Q¡©ÙäÞ†>WÅÓAƒù ÖÅû]œúºÎo›¥?€þÅ7ÐU0†µå%¦õ‚ë¿·*L­à§ãœ{¸àÝ%ê‰E5Ü íY¤#qcì°}¬”XòÍ"O«7ÿȉ.Qµ¬úð×>þåê„P“ºLzsŒY©¨Z!|Ë>dê ú÷ Ü ˜À|“D-˜§2R¼ë8¦Èž5 Õ«û]ª*2ÚT×~l’"qíÞ wøóC[l#UÀíØ4ˆ3ƒE÷ÞBi<Æþ>ËÄÇVbp·‚ÆA–úèZÓÌïØé %±ý#GZÜn£lm©_§‰ /NOÈ1î=RÑøC"EvCäÆlxLøóh׌ŠoX‡~„Õ;m¬J`2ÊI>£c–Ýo­ð˜óE$—Ú .PÓ ¡Á±§Œ]» Sù5ݘ„J|.X4æŒäOÀ½¢CCMW¸*ò9V¹ËÚã|ÉUå¢ÿÒ˜æKù˜K{§ŒÖM.Ê5U6 ƒõ„o½(Yk=¦5]ç|‰Ðz¿lsKÎhNxK–, Üz¥~$eþºó¨à SæœÙ(Çy˜zò`¥qüF#(OÐÁµ¥Ò ·ÉQ9NßøG… ¤æáŒJœ«®Ïûà^[ökÛ"“ÇTçû§¯Îöd¶J¦‚òÞcš \œ =aþ$€›/—”áÛu2;W<‚9HOy#„$¦ÔõRõñk0&£É?õº¢ªDÉ1˜û"Š|'ƒØÒÈ~rG“4Ÿˆ»ø}¤’ÕÖDáy.µd[£[N„«£txou`®Áëÿf,[_o6êªÕYSOßu°gk¶/‚ù⵸PNû…«ØYsH?7ûü ÝfÞ]ÛXþðšr¶M¿hi÷¦´?{¤×«?´ûGiaš0¿ ÑEw‰Æì‘ G„±ÙÁÝ8íâxv¿×(6²'ÒX—ò endstream endobj 777 0 obj << /Length1 1834 /Length2 13095 /Length3 0 /Length 14239 /Filter /FlateDecode >> stream xÚ÷PÜÛò ÷àn wwÁÝ!8 0È îîînÁÝÝÝÝ‚‡ Á‚œð8rï9÷ÿ}UïÕTÍüV÷êÞÝ{¯Þ3CE¡¤Ê(j 1J@ÀŽŒ¬L,|€òªr¬,v&6d**5£5ð?vd*  ½æûã£=ÐÈñÕ&näøJ”‡€2NÖVv++7 €……÷?Dˆ=@ÜÈd gÈ@À@dª[7{¹…ãë:ÿyИÐXyy¹þ ˆÚíA&F`€¼‘£ÐæuE#k€*ÄttûŸ4ŽŽ¶|ÌÌ...LF6L{s!Z€ ÈÑ tÚ;M´ P0²þÝ2@Íäð—Cbæèbd¼¬A&@°ÃkˆØhx] *-P´‚ÿ"ËýE`ü½9V&Öÿ¦û;úD ðŸÁF&&[#°l0YŠrLŽ®Ž #°éD#kÈk¼‘³ÈÚÈø•ðgéF Qe€Ñk‡÷ç`b²ut`rYÿÑ#ói^·ùØô#ÄÆvt@þ£>q=Ðäußݘÿ>\+0Äìñd›šýц©“-³:dç”ÿ›ójBþÇftp²°°póò€v «‰ó ¨¹Ùÿt²þa~íÁËÃb 0{mè2¾~ {89ŽöN@/;þ!³²LA&Žc 9ŒüOöW3Ðì/üzþö WÀg–Wù±Xþxý÷IïUa¦°µÛ?ô?˜YSBNVGþï–ÿ냸<¹ØŒlœ,VV6v÷ëƒ×ÿæQ2ý]Ç¿b¥Áfï_å¾îÓJvþ[4-às)@^• Ðü#t]N“×7ÖÿÏrÿ3äÿŸÊÿÈòÿ*ôÿ[‘„“µõŸ~š¿ÿ?~#µÛߌWå:9¾N<äuÀÿ—ª üktå¦ '›ÿë•v4zQ°ù«¢y™8¸þ2ƒ$@®@S%£‰Å_¢ùË®þǸYƒÀ@%ˆè ÀÈÊÂò|¯3fbõz‰8¼*óOðu„þwÙO`ˆé³ÆÆÉ0²·7rC~=êWÄ ð`}JS ëŸZ03!ޝ!€×½f{ä?Ε›À,ý‡é/Ä `Vü/âa0+ýƒ^™ªÿ N³ú?ˆûU„ÿ ³Ö?è5§öï+ÓèôÊ4þ½2Mþ‹þØ fÓAV3ð_ Àlöüþå}-Öü¿ãµX 7[‹×+íÆ«í߯•Xÿ ¾–bó|*æžÎ13ä_ðuqÛÁ×µíþ9Ìöÿ‚¯ë:ü r˜ÿ_·Çé_ðµ*çÁת\þÕókU®ÿ‚¯U¹ý ÿG!&Nöö¯·åŸ“ü*Ÿÿà?¯f Ðh‚¼²1á´¬ 츫%vaÜ›bã@º ¿FÔÜýD輯ìÿQàþŠ=?bY´gáGÄý&Ö1[ÉK³•‹•þwÏ´>¼•†83ãÏ,Á‡c9'¶²ÝÝ:†ì`Ss¼³•—k‘yZ|»‹½¯™‡’Ô-U·•gš~2¡BOEE ðð°£BvŠfvV‰ÕŠÎ/tI¿w¸™:I •8¼OgãÜZ-c€m¥¡ÙÊ^g ¥ôqÉÎæ©vû><ÆÒø_wúÑ;L¨ ¿ãÏ’Þ¹”º<ÍÒjÀx™ ¹—cÀ@iàý ^l×R”Åéaß•Œ“·Š8»Å–âhµQ1ü ‹¨x£®Ý)òÏò0ôÊQ¯Æ“}å¬m@_G= šõƒ¦ÓÜZ…ÒÔÜ”¨|e (%œy‘™-¨˜u9S[ r´T÷¸< ‰­ºqtÖ¾ç9'5Ð#}éµSÄDôA5¢¥+4%£a²C¿7‰”º6£• ¢è·Wû üº4ìÖT¯×Êøý‹9pV·´¡ž2Ô k`È»Ýß yÖ~1Ñ bgÍ<$:ª3®iƒÊÛ\³TyéC?*ÙjÒëò5¸h;y÷ݪ4›»F;ݮӎïŒ_i,˜ŸEsÍöÐÅú2so˺xä÷å¸ÃÓU”üÚ¬Ù#”Ë}8DæÚlÑ8ý¸m Mýø8T­¬æ²½|øžíEçΈh¥)ÆïbÊ`D*­êÒÓ1‡ó¶`7‚)š³;Ÿ„ ×1Æ”¸ÐЀ”#c‘Å­a‚_:°àeºˆvý²÷T^l¼ ²Ü%p\PD‡_ôWÒ DWt”ÊE„(ˆ2n… ²=qètj»qg+È ‰ «…ês=«æðäøEáŨE”Ï  9ØF"i–1&ÏÄò\e`œ9à…ß, ãG|Ò‹qQx¶rhfþü±öëKÊ=òn!¸æ£i¼«Y}Õ(¬™xQQ"Í<„jìþl,´’‚', ³Qxä›NÚ<2ˆ>Íþ«ZÖ²éפá4‰¬S%˜‚ãЉµSpS6žxüBT¯‘²ÔaÇö"êçošO”G¡iä}ÍÝ; ‘¦…ÀÕÀ¢í•w^éÓ°ôq(9ùeÐdÝŠûÂ_P6èæ–ú§7É}Íø™ø47ýe3ºî׋™¤eð—¢”Í~» læâÞß^˜ÛôÔ\°Y øy‡mÝà…Þ¹ýbi¥ ¦}‹ KCyj~DÿqNÉöÔu&ôÆUñç‡È•%!Ê»m5™ЊÃPí§w0»¥Ö ß?}^ìÏ(œ'ªW`© AöÓCgüFùpyóþ»ê9«Í/§àh>Q°WÉ,’ «ôËàQžH¼Q\fÍvËwüŠl˜Ð«Ç©ÀUÞÎÎãÒ9ÖwØðTÍèÕ92 vGó7IrG’föA§ôqǤùí$óõØ&UؽO€n"®•ÐlÙZ´žFºŠåqIK‚…m‰Y8çá65O½†ŽzÍyN¬„F× îF×z¸"^âV*/åAL.Y—ú¸”G£HqÂG¤G”syÉHQWü‚u[ªZýb'ôJe“/¶Æ2ÀÔK‚@w¬x-]טéââÙ†5V;ÚP‡üŠ– ¯olp?7­ÑõÌøaÖ§.ÁwÆŠ#ýqV÷q–];串bMFPóí³£Ã>Éž0Ümc.¶CŸòÞ_輑úFçä›è¬¡Ê_ÒÞ)‡ËJ¦ÅE£aæãì©»æ‰AÕg=%«ñ²æuïZ<èò(r£Ú‰–S…Q~á.D”"mŒ3Ö·«ƵLnï—N]>ºÆjß0Ì_ zÀ/•ÍΙÅÉ{lI2»Q•Æý+èóUJ1Ë`…`èâµ|`´KD÷·"#~åI³LE¬ÝR†âä0ø|™¿gÄ;  ¨‰kJàxƒXNÄdÓlQ~ߢÀJ;3(n.ýEE/ñ(ÿP?EÛ´_Ë“^hݿԞ“ ×ðU&ÞÔ÷ ¬hW¾Tý’ó=}µgjñ"ݤ¹é¬O¹iwÇ8“Œ±Ôª‘qx/@Ó(âÉ›˜?û=5”jÙ¾(s¨Õ%O8F&æ5™[Ä©Ú#lí@Ò 3ü¹1ÝÝ’òþnd†µzÅbþk+U+É;çÚnî!q¼“Ÿ7Ù?¹è-;ê–)–ÄKÇž“'ï.¼ëDg·H¢µ‡|öà”r`š‰"rêÚŽŽìK’žõó‘ùt¶†MO¥~ðÕ êÇpâçõÌp6Ûz^¶Ü]®‡ÜS4‘õÛý[8~å¦ú©I}x¦<Â\ÖÜsaRï/ŶkøOSúfÅK|Õs'ÕA‡é=vßÇLž ›Š×ñÙˆó»ÝÊ ˆƒƒ4žê•V|Æœ¯ 6½Ë »y”ø„}Ñ›J‚.W‡ñåã®áÊûÁŽ%S0]wCØâË–¸ö9/Kè9B Šo2^•’w•§ 轋?ΓN"ÂW".ð´=eœPeqPíÜ"v<:´~Z.ß4¹JÈ ÓZ™;˜Ö"g¡LR‘š?²ý>N‰§ˆº¸úÄËÀÍ 'E”¿gm«°Br Ÿ§³'﹤§[xý9gÑÞÿöæ @ôNS0&§ˆ2Ñ65ÿBÈÙ®)´¯ç]©ÅtfÀ”Ÿ–™dƒ#íׯ­Z—1ÿéé¾p¬†ÖZSÐD+ö;Þf~Î0ðïÄâ­¡B]¾öÑ>7»ÙÏ©AEµ)¸ÀN´.¸Ã®äu¢qÕ…§î·ó\FYî®VÐÝÂ5Ä?ÌÔ%üÓ,ô%?år2Š’g«m¦)}§®ëñ¯ÊAš|YÖ6µC<²&"úĽø( T¡šÚÇÉ@J_g*¬.mÕ¨M•*:.¶5í2~™Ãnmð‡i9 [¿ñ ±Ì±ð}+eÃï_þô$¿0!Æ]Hͼעgt,³0ë¾ê '‰÷ÕZ dF*}—»`áüüó¸8&5ˆ©.gjà0îÀÃZÛ²Ú ˆ4ZÇü‘×Â_<œbsºÆ3Ò”Eü¦Q7­M¦Ø¤r«õb–f‹Æ¿>¤³=¯” zЖq?NÜ‚¡ì%^Ãáßg'sÀá]qJ20}Ä©œTíé¹²@çÔ´ïÏßqz™þµÔÈGkÕžÁ÷´÷òÏáÝ·•Iª%¸J,”ìÇÉ,%›]¬\5>rÞÒÍã Wù'ø\4säB)3ˆÃJ@ÚìS®‡ôF2¤}¬”yÜ—x6Åd yöËrpZBd’¥2ç'ñ@sŧÄËt¢Øt:ï<¾B$=à*Ð%窇 4£"sdU%æGP½#YÜ«M”šÍ=¡'´^ÄàK&ÅòägÞ¦âÓüîš2ŠpÏ'ˆüæN²¿¸" =î×åWÓɉÑ÷¥õаŒ‰Ž<÷b¨*)‰2.¹>!› MŠæÅ}ÂÌ(-Ïéª!k wÒõzˆ¨¬“üÜÛžêÃÝZãàŽíOr!ûa³×ÉX#‚S“¨’ämœŽý­ì gÛLÕt$ 2Õ½²˜¹Æ×}PD†‹¬³¦SÞÅÕá¦Ý¾¸à=`@Ó{¸•1)Ù`Vw»žÍ´Á.õg–±K¡Ñ—µPBo¹ž ^ŽS÷?ìR‹È}8«£ïåUtr-̶dÚÇóºªò€X­fo]ýäw¾pîÅ@ L+ûWâÇ>gŒe:6²ÌùÖl ÚÖåOM.¾¹¹”úÄy³ûû…öÕûgÅœw±理ܙùiøv´\3^ÿñ§|À/ÛñndF³Í†Þçô kVÅ®ÄX×Ù‘[‰Í¾1csYBnul |Š ÌC>÷OÄ?šçôÑ›=#î_·‘Ö~šÌdUÉñìͦ8n„n 4 Ì’;}fÌ|л\„Í—£kˆÝ99‘~‡/8w¹.xU½l—=|0UÕADP¤û¸ .Н#âãýZvéÞôb¼Ä:3–ZÌáé€{×(°5’e B…ó'¥×™åσ+³f ƒüðJ¶yI¹Nd÷‡Ôæû ¤Ø—ãrYm¸¾T¯unº¹ËŸ/¹áî N÷g^ƒ9ßfIëC…>cj¤”à¹âè&U‹®ÒΙÆ[Й3¬ÙôŒÙâgánëÑ»‚ôÚîi)À6é }!³é° ©bËEõ–¦¨Zatè¢Åšª$Hï›èØOø*íY¨Ç* « ßkdAWÀL?ïÅåñ丂&²hòûÆìLiXwîþ8¾êJÌ‚ÂZ<¥¶Bù¼„ éªæø DI±“×—­^wLBF-—køxŸ~³sd}Æ  Ô´æÖÊÈm´¸ã1è(håÙ¬`ЉhQö×QÔËŽ«ü8¿†ŸÞ»vz»«QÀÿ+k,¬”ÏÊ›—ÓóM”–4ÊwøùÆ/§+Ý¡Œ›Cw¢a±Î“ÜHî.BêôîM²'AdÜÀF´¬[»hÇúÎ¥<éY»SÑR±Ñ‰ÑQ„(ÁfÞCí^3j×ýð¨á“c®iò=¢†× V4¾3W“¹¢·–GÙ )vñ¯É9= ß¡€¹;óÛßò 9 Þ ¾yì¸Ï#˜ïâb̺?VÈ'Å v>®*°ä¯ØSmª]<ÿ>¾F/áøÂ*>a„ 3l ´)›É¥õ£:—ÒRÜU:ït7Éj~ƒZÙ]«`SyÁ—ð„x^LÌ𮕱âtHÀü&ƒŸ ä3ÀÏWIæ˜ÒJí0ç9+Ô7ÔÁœÖ&à˜[8Ù\_¾Æ›gY—(Í=}‡†¹ç±ìÂß%o…=ñ·ÇPµ-_^è16¶j6C€uDÙLKuùܧ@¸Å];Xß¡N:ð’zŒVó©)ꦂ õ%•uÆƒŠ«Öb9P“”Âvp›Ô'{;«6~2 öìGfÎpc5KqvO½vYCCÏ}/=îœ@ñÊ&­ÒÇýН›@íJ;8œÔSïÓ°w÷3*a#kͬâµÙa - ÁotÐã#RëGP(ÏC˜òc›ÚFq°g½†âNÖK‰°«¥e"ž#ç\Ž£˜ó’]LráÛ8ÔûaGy3\‰º_öŠ;f=Ë5E5%|–l®X05Þç¿ýÖfE·k^ìg‹3Ó}@•õ2!úÉPåp×^úy­è“¡kÞiôg³†ýÆ”Åð(÷j)AJ:ßÁ§`›"ªªD ¯²õi…W=œ+RC€'²“#³ÊE‚/"hvAì`Rrtf,K3Ô¤±vø¸êJ}éê2ú¬Êm´ÂÑ@÷ÿ¸Ùr“Du"3„?vc™ú$že4®mÎ-Þ!éf0ëqoµ*!YþËüÓAgøá…ª«fpÉA¤uµ$Ùq¨žº_!­EòügLg4õ.-œ–wG‚þmŒÛœßfÒß P6Ezåߨð^¥´éÈòwZ÷¹¿H¤Â”_mh@sõñ™šOÚ;g:q} CÔãÝÀ‰Â7>ÑcÓ‡ºŽó€ï+Z‚kð„?`ÆÔ£¡<^X{a”Ö/†ÏíÂwTBs±¾YŽÜðDz)–Ï6"º$È=† Š³ÛŒà% P؃’2<ÝÔÔÿI]ñ`š}Ö<Ü™v’·Íá'éAgÃ/›ïðu4ª,—XÐBKVïNYÙž•׺™ w¥:ý­y¨B{ðj>Jë¾Çkiâ¤Fž ]Ðî¸ÿÌóôS"VK4ekF)ú Rža»ߦÿÄpr«-¢bÎm®pÝLEüïJ z‰»´’ “I)8ƒ‰bù[£f¬gÕ6ÊœHT[™‰h˜v0ŒÉï°kGÑøE|)êðCT¹îL8}oìŒï–bm8MöÌŸ(öU:êBT;"§uÞÞÙáf0 ¬&«Í==P²=ó,m“úEÁðžòënB •ìz\©. ÛØìÃÄ`’¡bb¤`ñF¶龤§^û)Üj[ª¹$+É2ÍíÞñ'|Ê–ê|R‰ Yjê¾sK=A™0šÁõ‡·/Õó¯¿Á7(Ç©²ZÒX¬…)]noiJ\beà„M‚W-’ð[¬KT7§z¿_£Â—K˜ ÕˆB“²ä’’S%£7ÑQ¨¹<Ì:T÷€ñˆÈx \=¨œQähw몡IÊ^ÌÅ·F¡YðD×™S{TèŸgCƒèÛèsâÛ-Úì}%5:Òn6TyÝ]~{­ðd“t¿ãÆ®ßVŸ e¨‡KA÷Ûù)¥Ëž*GÀìø&+ð‘Î/^§Ÿó!RÅ_zÁ_©(”¿‰CC·£7åóîƒå^Mnw"nÅü¼ÒýøRè|°pá÷4bïÒ¥ÿÈï%s¹ýRÝËËþ·$9ÅIª†ò&Gk|-·bŒùE^4J \ÜÞ~¡5Úú”Û÷»n^8X¨í!ŠU,¥Ù¢¿zŠÇ}ż+¹*™Z ÷òPæ0gBãÍön:P„BºÚÇf3 {Ó¸‹Ý¾“¾ÇäïÙRB}Á¾®ë>ï[`?0_+`t\6€Q”ÆyS… ?”>Çz}˜‡Ù{s¬áWµdH¼ß+®®uå](vV9ˆ?ô·•Þ±[I¿ðàΨ,¢é¶6O…ºkñV#µÌ6ÑmSé<£}$/kxLÌ;¿4]fá˜6¢hTRK,ë§.#ý[×Õ^3×G5׸m…ò“¤M.>¤ânþáºY=®dŠ«¤FÖÄT+Tjݽuý×Ôo}×ɱwasĸêŧ:R:u­e:þ·Ã|Ú07ÊÎ4z ¹QDlZÔ[H(û(?§y¯}Ó6Å% ææ»RA:¬ðs¦¹SN¬A!h„©%šu z}ê/HPhPjv濱)%³=æùCÞÖ߸j¦#ò G«m¸* ç­¨²>ú¹sX¼IWñcË…Nmµ¦WZÞqD½“cE%L‚ßolOÞGÝŠ„ïdêÎÙ"$dÍþŒÎCuÿ{Â|€aXëq½\kr%˜ÇtF’µ3‰âý˜6¥¹þ{Aœó|q„œxû£åátµ0üz ¥ÿøc g Z2ꧨdßpºk;ã{ñSJvü.ŸŒ]—EÖK¦Ê¢l¦þ™Xç…%Æ9Þcå_äÛÒ;Vuƒ¢l'“MÙ§Í L©ö¶ªÐ4Ï•¢Ó6>TßN‰DÃ83hµ÷!lU{08#Bƒˆ«W—ái`„Eê_®QÞETÞ; Ž|bŸ“•¿~(IõÀž¶ }Yq,&ܘ;IûY­x׋CÀûIÍS³T·àz¨geRÒÄÝc]!5N”‘íR„0À1q2VœN|_Û‚žU¾Ö7âÕAu æ¬cond‚’Ž«úÄ–i‚;m_E½´šEÛ¬î+)æ¡"mõ Eþ“8±ý÷no;*ŠDÉ&¨„]9Xgݯ ü c/z¥ZRSݼþ•*ôz71BŠÎ®³rP7É5¬Í/#šÊŽÉìtÚ _Jm1ƒ´hk¡æ{Šyò“74bHá,•„ ÚãÙÜ·f}Š ·ÌÈ<¨Ý\ÁYP«Î¥á¿LÉmÁTK„9æ  ¿Ê;gĆqKR~ˆQWNò´7mÜ.±&ô=–ÇRÚW×ÞÉß6áuå›+Qh!èµw£Ìå9ãxÉ9Z$Ĉð2}UO_šÛ ÐÑ–|ÈU©¾|÷°s'éVC(<¤Ú2P;›â®2Ó*/ŠL‘Ÿ)+ìøÃW¦ úwáUÒ‚·‹ý{ܲR݆BqÌÑìÛöšÙÁ˜­âBUUá.L}Û¶§ÿ™­ÑÒ¦ÃZœ¾ìíug+6ì¤aGTK]˜k\09†Ò e¾6Š»ïô6òQC§A°;ƒ¢ÙË"¬Ò§õ–ëy1æ^ß°âÙHfö(I¶:ÑïÄRÛŽ—ë|‹=5wjÄé :#lüÔŽœ€ßÂ|Ü„ñ-õÐíüøgS.IÝžºÄJ´žuÚ˜äÇÙ··±Q:I¶ŠùMk+°Cˆ™ Sm’îXï+ŒOàÕê¾ 6£ºl÷¾Ñ"D¢,ÁñðZÁõÕ™ÀüÂ)Z#Ë#ÖI®E%õÅ”àar<<ò‹h\$xK×íÀÓé…aŒªHe?eö;ô"Ü¢ío|±>A9aàÕ¨é-Þ—Áði³ô¬vØ/°•<<é4æœp¼Š"w>m-tß[ð|ˆl&PEë3‘÷Œ‘´ˆj}ZÉFÍYФùoírIüeN¶:Ô‚ªúüR¤ íaSð ùBÀ¶kÆ')£4ÎÑß8VM™> ñІwÕÝÝß—ÞY—ïŒC9vçr¤j¦éÓ‡©´ð?©i¾i¿‡åMð¿šx\ÙÌ*(úE8îÍ9µQÔZS£#¯Glˆ¢Ð +5"ÁˆóÐ=ÊÞ¸èïÆ ¯ø]âÊæ 5ŸktPy1û¸ÇD §ÉwQo½Æ…<áâ›×÷çÓÿ.}ËCÈÌèM2¯Á4 ]»\ï*dv‡ QúîífT݃;” ë@m§Ïì'’âí5ÎÁna!›J¶Œ:ø$ý.¢á½µ¶³ó ìr$öqØl€â€ˆá^f±£™&íæá„+ƒ ‚æÓúŽ´˜Âx‰[CùÊý™qç¼òµ~v«x>îwËàMSõªóKî/´,²0;å·'Tüö!͇™¡êÁRKç#ÊÁCrL$g΃†é±ôì%܈Ïñ ' ~‚@‡FtÌŽûÅŸ!p6ÌÎbÎl»ƒêë^ç=×”Lîü éÆ·V"ŸŒÐl.Xâ—ãû:âx3  )°y‚®è`£­G©\õЉvI;¥ÏJ§¸”¶Ýë•9˜i,ñšÛ%ãìGì;V®Í¤ 7™{¨Íâo©Ï5—=SÃÁlÌ̲”ûØS4Üïû±]ŸÕ÷ˆúa°k!opV‡oE½èÈí:1k‡ ñIöôèDYÙ<Ϊú{%ü™x™K܆îOë&ÞÑA›òú†êÇÍgzÊKjÝõpor݃fwÎbŒô”®kóßÎxÉåC<29•­»:çœæ~ëžD³‰‡ùË šµ 'Eúøð‰[ášHï38{Ežƒ}cC&?ÉèäÎéÖû4¾/_?v7H„X„à/ââvq-«øG¬›Gä?·]ðÆk`t¨òëÅ>dh{^]‡|ÙøF¤ZµNºpŠñ”†4—–Ç~ÿ6»)¥Zý³º¢?¹‘:¥kLamþa<·´ÔÓõ°UQ^4á{—CèÈŠŒÀÁ—ë²:ö„©„îEí 1‹)–áQÂUß·-ºù9)ºåÖÉUtíÒ=¬a¤\‡$öHÉózKƒÏ&Vìfc¡Uk¹²žoNMÂU©´Ãçeö¨¾í™òR[¹{H]èf¹i溥Í*61 ò£,_n8ûu]Ø|5¡¦Ø5DSÅP3 wvõÌŸòhw%DŠÚ¢WŸ§Y™øýöWRQßbÕòWhÙ…|ÐÐú ]RÙ‚6¯È¶ä/}ø(¿Ýµ CÊ{sÆ_R¼%Õ@²ïšm…]{KZÙ;m2\G΂ £+º¸wpbé'p“>y¾9Rtíù•ý_Ù–W:Mì‘]çs)³Îã™2×:cnå?m´W~£&:L|h~Ã脚!X‰ïaGèY4ç]*Á ¿”Øýуb»¦†ó ôK.(\zvoæÚ·ÞOVkJùñû”ŽÝhx.ç^xÉ|ÛçÆ¹¦žÙΞ*9箂§ ½‹³\Z^Gb‡z;pØà;‚¢Õ–³H.‘•’”ŽM€tü*së÷æä¢X£¯B^FÞ€îl;ÌÈÖÜ•àü9ú³Y(ˆ×Mÿ§ÉGTïƒ.G€\׋¬%‡}˜­2­sù>ž©/FkjrAÇX„[rŽ3ÂÂfRÙXoŸÑ€¨D‚ØppZ†a8BÖ™öÎÁLÝÂù Ƶ0!r Bg¨òaþ¹3£5E1+3¸öûüe>B:Æ®*œgO½–Ï ­Û6z0“»÷¹¬èýÚÚÜ3sT 3¸ïÄOú94‰¢½kÉúàt©Ê½×…óê§‹4‘Ô5µ5ì· ‘¤|ÜIÔö­@írº»Ä+l DB0ºtS2i¹¸_Ï4š‚×4ݳÿÊÌ7~wëK¶ÏÓå9Š€Æ“8KaÉ<‘F.iEk¢æ:¾¾d,§ñF5ü¢çòg6Ÿ›Ã. ëÆgß;)£‹ÅÞµ½ªó}&¾éšÇPÃ<΃SH3’¥™Ì ÑDiæýÆÇʶæ¸^CÅ÷Aí ‚.S¸*YÁˆ\S$ô:w`{Æ74l^D½­lk}¬{Çf1¼µÅÜ¡FëÔ6#¹Éa>†tv”—‡JòK—¾\ß”í²ÈUk¯ØäüyuâÒ[[2ùˆ2âxØ«7Ÿá‚Ô%’„Þ†ª2{vJe  ÅQ`×´ ¦T”V> JX3­r4³ð¢á>?Šæýð\Õ}Êÿ‚’ $©c³ÎV„ˆöåmÒgŠ>ml©^-ìáz»7‹å•/š»;×›é…"Îso¾˜ç³´z<ÊXååŠÆ³O‡§’M]Âå? «+§·?ˆÁh<ÃOò6:~AE™˜9±²ÄëoK6ÂèAt·¡'šlý¼¢s¨æì¹ÏDf‘.ªï匬ˆû,ë8Åc‚wå´.ÌXÀìéTƸYÂ;"¼¯ø¶°Zi• NÜý›Æ#¾ÛœJø²ò aÃíiÆe…ÒBEd£VÓ½h"­úÍûO²ª¦ž>Ë{‘ÛK&øâÉìÓRîß*-MòFöw}›Å™æžS›6!w:\a€Ð½‡€/p¹›û“i}»«Ö»;û™zBŠ~[/œMÄ_’fØÐßgÔ?LiÝæ}0Gï!ŦåÙLÑM¤Q‡œÓmûöD5.hÓ’åO|HþfÚŽeM‹Š˜ç$…Ûîãõ1‰Nãi¢‰ºÉ?¤Ý›ÓÞuuØôNµ¿Ô#-(¸°¡âc„$ŒSã” ;ÒÖŽÊéKú†þÒÔ^ç™õU9mˆ“„°e¡V As¼£O} Ö(= æ’õ5y¤åwž°Œ†JÚ¹>>CT²)ç|ïï’¨X¤V2%e´M˜›T9ºoÄÚØZi¾·mOùhªhs¼Ø<Ì[B¨Ú.U[$s˜¦<¼‘šK¿›Ð: tìK»h.9´|y÷úiZ{Þè–¹§f¾7ÍAd›¢¬<Òu-¶=+—G'µrÞ‡<*íOÉÁ×}°±Yµ— ©ˆc8ȱãy»Î³ã‚8L‰½NI%¼¡­ÈUºÓ˹^…јáJx¦Y lí2˶]lÎ@Kò•+ŸE£ÅF6}ñ¯Ñžõp×îEÓK÷FÏž¡Scù1%v ŒÞxhôó"=q¬¹g‚.1$ªUß5¿r¸Ñ®`µ’ ÙÓ™òµw5@ˆJ¶¦Ajòªô£³dmoñ.Þ£ãx—¼™±ÍeöJgðªöpM\žS]˜Ÿ‚%I„ê(@êá=›¿2’lÊœ0æÛ÷•B×i/tm¡Á ÆYñ2áËÎWYN4|°Ð©#Ú=ª Aý~[׿¶³•}Ú )Å“÷–6°û¢„«?ðf—¤¹­ºÍQ/6 09Äg%d–óƒÍPÕî;À¤w„jš8Ÿæ«a¡û6IÜé{2¾—­m´|¥Q8H>R@ô}Î)ü±ç)kÛãÜEt]š_ÿg©OEÅ'ës'yÌbØ¿°üêò—ƒÈèÔV£ò9†ÙÂ2c ›Åî¨8±Û`á@Ý?6¥,ɼ.¿Ç“÷RíP²uð#—=è6&f×’‡3 ÉAb!~P"͸÷þŠj—t‰ûªGl9ìF¶„F.-(—ð—"Ø’É¡Qc™ª«„!•¢‰¶+®8ðü¹·ê…ÑÉ;-Á¶¥¸ÇÍM½]=;_ñ¨Jº#:öš!HŒƒ'[Yì*?"Oô† HÒÕÄ㫎NŽt¯¥ÕV­ÔÅî幨ðÍü­kn±ŽLÒT°XŒø äÙ’ÌåVÐïSæg®î/,VòöÍDœx:6›zé³/ÜFƒŸÀgaL%“0%ï½™XnQ4Ø¿tîËø|Tæì …H_§å}ýIºÈ×AÀ¸[Y°j¶ñan …ªòópÂì–ÍüZ?`eÛxQMþÒü{å_ æI2(/G-<³fwªüø¹Ód°y ˆ˜2ÝG‚^‡Oè¼T=án':,i{v‚Xw§aÔ4á<4Œ³ÁVÙDÖ¡-¿(Üùæ3y‚ êùb qÐOˆ¬Y¾Üê æ•ÀäP¨ÃÙy-F>øO½ëüš*¿Æ y ¦P[‘¨"?W[… ¶û¡{ ¯oßÁ"Êg«w·½/ÜðŽ)<£ÏZÚ|>ðAãijÎiEêm2‚›Ø­Jä1øò¤95¶²Þߦ ¢$S­\ˆÖ=ÐíÎÝâæâX+¦$‹ á°‚Ú"5•¦+CÇÀÝ¥/V|lõ§Ic¯ù2æT4òØ©)»&NàõŽW±j¡Ú1 I ÜB“öø€EªÔp;N&ò3™Ydd‰4¿u—G.™ ”he/ÕÑY³oF œ+]­ FÐ>¬P8„ÑØX1Æhãó‘/Û‘•4"š –ƒKz3¹ú=&1 Zy)ê—‚ÝïÇÝÚýYbôž®sÇEÞýgukŸ˜x‘þ²ÅÕot,±ÿá.u Pºàqàû™îqJþؘ¦¥‘§|Å[Ôàà÷î¡%‡Ê/Fjú9¸ú²O‹ž&Íù³8­¯ßžË¨"y¢oj=ëÎ~7oê×HK¾S´Î‹E>þãmz…Í[`Ålé-âÍBc°g骚ÔÔ/!†‹ÔÉ—ôe.Ä2ñ6Y é’ýw™ügâ®xέöw NiÂz¿Ö–Áwó„½´˜öÒ~µÎIåEaWŠî±*i3¬“¶¤ÎÂT *»;KΖ]nœ¶ ,M’ú–Yj'ºsäw€Ô‚ííÈO‚FUù3Wf,-9h®ëðeóÿõàD endstream endobj 779 0 obj << /Length1 1427 /Length2 6879 /Length3 0 /Length 7850 /Filter /FlateDecode >> stream xÚuT“ÛÒ6½+DŠ¡w]ŠôÞ¥HI€P¡Iï½H‘"¡ ( EšT©Ò”Þ¤J/ê¹÷Üsÿ­ï[YyóÎÌ3³gö~žNVCcA%ÂªŽ€£E„€2=c]i(&Š’pršÀP®Ð¿Ü$œ HO.ó$„ÂøTA( Nh{¹DÄ"’2"R2@ @”þ”¨‚¼a€ž@‡z’pª Üý0G'f™½xÀ¼ii)ßé%7(Áz ”Ô ³"ä 0F€aP”ß?JðÈ9¡Pî2ÂÂ>>>B 7O!ÒQžWàC9Œ žP¤7ø50@äý3™ 'ÀÄ æùÇoŒp@ù€PÆá Cម /8Š`ké Ü¡ð?`Ý?À_{ùw¹¿²‚Á'ƒÀ`„›;îƒ;`®P€º®Ê%Á!¿€ WO&ä ‚¹‚ì1€ßƒêJ÷ Ì€ç FÂÜQžBž0×_# ÿ*ƒÙe58Dáæ…£_aM #u#þ?ÿ;¦¬Œðø JŠE%€ÌC ó ügCì¯6€çjÁé?Ýb¶é_{ÿEž¿ÄÁ øg-}†µPÏß$·JÁ˜‡Èÿ™ê¿Sþ ÿUå#ù7¤îåêú;Ìó;þÿ„An0W¿¿Òz¡0ÐC`dÿo¨ôhõ ˜—ÛGµP Œ”àŽ2 J ‰KþqÃ<Õa¾Pˆ! vúØ?~Ó_Js…Á¡†Oد« (þW #/° æúðÄÐòwŠQÏ?—Uƒƒ_2•€H æ 1–À_£GÔ÷7‘ÂBp “ÀŒp@ I~*†é _®ßÖ¯„!ÿaJ„a›"âaäߦ(ìûÛüGK`/$£ÌßÄÁôû/û÷5…úBÁ$3`ÙçWmg5JŒ>‚kc¢â7ÞÆ™­ª1x½¦"w~$V?­Ô9¹¾Hµ-úüºÉÅœèb³/C7S߆ï`¿"0NuïǶ§®—èºÎ›7–vbpˆ#ÝÞk£ŸcżôkS¹›r\¯«N_:ír7î‘áŒ%ÆÞº{WŒ '¢])·½J¹VéÃd‡‡ç¡âØn³úæyvß°¨ÄòÛÏåذ¥lÆ­­î:ǹ[òYÝ’·uìÆ8W»Õn]¤ð„·E„òØ{Ž+°Ë¢µVÇ5¿¡Íë)®'’£Ïu(H륹mà[Í th:ÅVõúë¹ÄïÒökŠ7»ÙMá|7µhIPœ“qÞŒ9B=l $ÝkéU¸…ËUÅdˆ&ÞÁåÊÏeú¨ÇlO‡ÑâTK–~>‹éÝÐÆ3 TËÎîüÞ…/ŬÑ3G윇ÛðfT•óXfÝ-Pò\, U»}Ä«OYúÖô;«ª?#¸N˜Â+=>²ÍÐóLlÛ—Ù–qö Y9 'ÇT¤>u^øFS©‘ÒX–%öçx[ª—}pr&Ül='nÍQãûÚ¯&vLpË _´ÊÀ6·çmz^³Ñt¸RÎáF^=Þ1 éc$éûPø{¯ì”[Pâ ÖóU«§8Q„Ý+Å…šÏÑýB1#p….Ã&ø—ÒgÌX‚ßcÝ!ÁŽ”d#²2P† êËr$Jdq\5QZ>§Õ#=õˆoAŠ:ua–\³àY ì> øÇLF!¶Â­X¦É;Z;”ÄJáŸ&cÏdø´bǃqô×ÉÛQ&Ímr„e§µaøHw¬ ³”ãUê"ú5± {ǘ‰Pž¬›H²ÀÎü»7¯Ó¼è±”>÷Gžht¯s‚-3„<àáÝ–ϪŸ8ÜÑù@v©km@€÷hê ¾øö¦dáT/ôsÚ4™4Ó&jtþˆmVÏ–ºÛ§S÷0:Zq‘k¯¹Ý8ÆX¯>7‡H¡æó!ç.ITLø°šÔ©1ED,2£NV{è¶Š¿ãÜ“8:!¤ÄÚ¸êLœ ÄÈû´Fí‰x X¥Åñ™lšüÃÛN`»Oö:NR§—¥‹÷ªêÜͱox”&%%’äTÎs7ªÞ¸>æ5å‹Q‹4ÞÅ×Ü¡o9>õ]í³(¨åqn$<¸_æqô<)Qgh%“rš3€6]e¼233þ(íñTN ¾‡.Ý™`}ô–ǃ\[ÆÏâ`ÞJ»Âpb9µ×îÐ'Ä&h„ô«s×YIÿ€,>B\=6摵M7Š'díHà«­\±”(F1¿zµðÞžt¹`E¼cr»Nаžm»öTŒ\~ãØXP„ýÖ°ÃuŠêmamÐÝ:W±9y÷y{éîåò‰GÕlçHÙOõ]pë—žr•ÙÝ—<Ó5£^!†ïF×%ÔEÊz­š~?ˆ ¥aljnŠG h¢ãà…C`cPÿænB9.;îlŠòHZ4£ âœbÞ=ƒ@m"üjo+pªy*å V¹ioLkÒ¨<ƒ¿‘" ò±¦¬žmLÿ‰D£ýUAÀ„Sq1+Òï‡|T€ ñ ± †ft€ì=0•Þ»8—–žÅyœR3o:Òà­ÀÀÎàôQ>»ÿÝŒ¦‚¸Bã5Hו €M/©é³âV>œÓáý#àlx°ë£ŽÑøe“öƒîä||¯x 7ZX= “¸6yóÒÉŽ «ÞëÒþø ÖdAÎ"Ó–2ÁeÑëG ¿ÌØ`û3B[(N6‡s8²èø6«Rõ e&ÕÄ—¼oòB¸ ½ª}ÌHÏb>tÐkí½zÇ‚µ'Šú5³‹]a ÓÑéÐ-s˜¬Í+‰*bsŸñŸ¸ÄA…_¦zøùçWìúJ™­teÛêfùÄ’'\¾û«í¥Y€A>ÉÂÖ"_÷å¸Ó£êS*‹3ÌÎBÞ£ƒàÍÌ–ÝW ,ç ó˜Gþ6AеØamLvÃä1Më‡ {¬vª2½×’‡:egQoõ ¾¥R?;úJMXCqJró’¦ì —ˆý-¢ú¯ñdúgë™Õ¨ÁÒ5ó;ò´º(±`÷oÄFq}§\ŸÐñŸv§è‘?ýöë}øð–Ô¦ƒ~±­A‘­Á¸s2£î¼UÒ²÷|“÷¾è*nž&lô¬Õ•îAuã˜:p¸Îxì'4ÙÝY)§x™£œÀݯo¨ÑYÇÄþ.ôHºª{Nà§ZÙí‹·§M‡sR½áëfJå)ŠdN͵fêãZ[5ùÈ^êìbû51à’¶×W¥s8WCëJfM•6ø,Õ˜›¬HµxfIŒÚ'´ ×b“š"µõS-Ï퇪cl]Zê™#í´ëÌ=tÓ t¢ˆZhB™ðV)½ûuBç§½ËpJáë·FÑ’>g’UÒ%·øùY”}! YVŸs=.& ‘Ò1É &ôRxl((9ÚµÏ-q…«Àqp¿î'Åê̶sÚÑð¯t%µ'c‚0K`fªHÊÒífu^n©î“}c­âG§ÎÂÈñ©Ï¹qÍœ?g¡„NBª}/Š·^˜´Þ¡h ngŒ²»¾3áÚÅ&tVÿ^}4M#rkßFü£æÞ+aµ„l=g—”ªÓ³µç‘šy›/DZʯg¥^ÄIÝÑÿ9Ï ›&Γºõi…F^¨NÛ¼Ý 5ê’ñwàà4$rü&q¿qj!’‡!êV<ÙKÚ‡WÃ<ô‰øîPSâSMÊU>š·ØÒ^»Ñ.LîàÈ8s Úƒ<ËzãÉðèQ%¹4¢´ÀúΓ]-!k“=÷,p|_ÝUâëT_¼êrDÖž¶ø¶¤Ð’·mQÔÔÜN{„¢ˆxoÄœ-z±9qìeDßߊˆRGpv±¤°Èà]Z{§l~NËtºèÆÞ¶µåÌE¾”š¥=6•îj6·Uˆ<©, ¥¯m$c]¬~ä#þý€,@v±‚®”"^—!щ'0³³JÜ`Ѥ­0ûNPnŒÿtO,Î"ÏÒM­ç[­y©sNc=ýa>2Wàæ¡©{ w˜"êâ"£tý“Æ m‹ºÕ4¸@î+ÿ-zÔÖ¸^‹Ó¬`v¤ó‰Ê³ƒ×\Öê–{ql>™o£•øhe1ƒb³×!áån“;iGaSžÜ'‰ ”söQ‹þÞ"͵O00s§‹ÔL ïôµáÙMì9gòw Ùùž·>ç¨ÒÄ—Oݰ¤×Úf)²‚3Ï¢Uƒæ'ÍÉ?³á+sßÞEŠÔd<5•fšÑà°Ûn/\°›7v³¶åÒÕÌÜLŽí/Êߎàäž¿¥ÐDÌʳqUÚ=Ö]{å¡…‚ºð Ô©‘Õ¶·ñÙaçu£q‚t`òI¥’ԙ͙“ÎJ@;æùôj´z:?´°ñ ñHÍf ƒkç¥ÈÕy—Ù9a%ºú«ùéô²àΧˆ•«ÀòPS?ÜÁN¦U&AͶ¤×k•= ¦2á¬{Ž©g%MKäDq]½Ðï_8!®ào¥lø!Þu=Û‘ÿ˜òLþ¥Qèék…Ø€ÈRI•“.ƒÖ6oGÑ[—©G:¨˜™Iè©Ë0,-ù{,žpÃiõ­.S!£ÃÙ cÿ:ÊÆE_ºÅ[çblß2:ÛycÓÃy? G/NW#5÷yüUkÁ#¢*–qk0¦I­nÉTäõGs-´–6NÒjwsäõ„”™9+T>*¡"­²§×:_KÄ]¶N™iQf#™ÆM÷xë3»l[â°o{÷ú¡¸»ÓâCQö”±÷ÁF#Ê‹¯êã!?Xè"õ8Î8狆ÔêveOÁ¦nÏö³›ï†ªÍKÙˆ™Òç&Åß‚N¾bOÂw±ù©øWïB«ã´™‡Â\‹½¼e£é™Zo†iAÒ›™¿[¹Á‚t‹è3À%€n,›¦¢’Ôœ´ªQ7늳èf3Nøzh ç÷'¦ªîFGyœõ½nEéÛŠ-y/Ö%iÛ‡'¾§Ü,1ÛW´0Âÿt¤.XHäå­êC7:¶Ó“K“•ˆðãdCҠť:ØÚ2õ AâºJ{cOÊ—™7)UúLý šæ4¹°œ=¸ö.C>zpŠ[×’¼êÞKëêÓ—3SbŽø¤ØŒýž‡mÙ{Œä^Ëÿ¼¬$¿>­ªØÇ ¦þðµ2’QŽƒp¥¶ºÝŽ-” Q Ižû )W3yQíÜwhîAâqêÏê½’ƒéÍc0+iCqæ}<Ç|¼7-#'7Z*Õ$ÚJnÿL‡ôˆÍ¼šó•mËøøf.!•Ë $ÄtXKŸ•Gù\å—Y~Ö7˜ÙX‘þ¬‡².æéŽÂã*\P“ÅàKCxZÉäxŒm`NC”À\(¶*@}É÷9‰å!( 5ûÕ'óu[•¿á3OÖÄÒËÜÏ@Ùƒ BžÜq |ǽžÝg]Ãï’s³!&Jµ—)Òþ­Ôû‰!¹²uù_.Œ ©+WM ÆŠ4$¸¤}ÒcýÍ›#ž±A¦"ÈŠn ³bˆ^<áÙ‰¥¿PÐMân™ÿv>Ã4®sŸÄ¤UB¹{ŠäT¶7dþø ÝÒ]¢S¥%…`ŠLl²ƒc¸CX_‘õy± f"КzãŠZ¨Ù—×4àSJTû«àÈï%MN<>΀훻µÕ ]QVn•ŸTÐTmU!ª!Í37ú¼š°0ÿf.Mn_.3œ0Yxr”B°†?ú0)rSzçÁ$èí{IÆç: +dÙEIûb¶jÕ‰UL¾¬.‡ãòZswe&ª»c¾¸´ýÓÕMPÁÛÃWTçIãßr1ÞÀ¹2Ÿ*켦Yx~^1 qWpGÃGHùØt©è²JJL&Q";XuôVê¨ðjhô0ŠŸW;óˆ–AN“ÎyÙ«Ñ˹Èã®ùª©d/ù«ŸÝ®~,Ie‘Öõ5gßLñƬrT+=ñ¶†uñîìM»oˆ šƒµTÖˬæ1ÿA‡Ct¬`YŸj¹³ÿSçØÚLÞ¬ä’NàXØS§Á·8åËfƒv$Âo^‘3ðÿPT­ÓÝ·™ßê»yâ¹Ã&Ú_3ì‚ýq8v(Å%=4®øÂœÂ¿|X^¸ÓÐÿnØçöÂÑnÆáQ‰k½Íø¦”h^½ýºZOÝA|ŸÅ×ä‚UçÀ¸—cñ—„_šîíÃ~<ˆd±òщQ8’û$§’qBœ3™wf)€fÃo 8» îÛ&œr¤F¸‡´6E}«Œª”Wؤ¦7’[¢¥|©è0=<•ï~ gë’ Ì ²èîN¨Ä©gßV(ßP*NýæïÙVR+IýNÜäïyè“×ÛÝ\åïm N^_òƽÊÖ²Ók7^Èã^¹~è Ü4ÍN+ð·¡Ñú£äMòqá%;Ñ×Û8¸ØJ='Ý áLkÕä#¹ •x8¸ª “„_:N¹t3ÛÆÓˆíQ1æ3::`òÓ’ÇÅEƒÝç$ËYtÙsæ¢owÐ:éŸJ†g‚÷v·"o”j'S$Þõ(,\…Ák|£GŽ¿FïáãWQ1…»žs;¾k£OÌf Ë'J´Òô«ÖÍ*Cß>x-ò œÌ}Ó&cÊÎØÏ]q—Fh ú’«tçÊ^f©PO>gðTÍY汯YÙÒsu´•Ntã×`xJ­76Ðás\›¸©î 3Õ(÷t5"rD@OØ?Ì´(¨”Ö2ørXÎ>°³Hj|NlÐõ™¬=åK*¶jŽdŒ9ǶÆÒ?ý½úR2š®,ª®¢Ir¯† 2ùð•ÞÌ‚k”ÕCQÈÛ&ÉåxÍÅ¢ÖàËî¢Ò›HÇ“caq©ò®üñÙ´#ØÒ8™Lß¾†ô¥ä܈ˆNmÀIMÛÑÂ_Íq™dÿ$YW`*Ï)Íg¶–QLä%;H+gëxSæ¡Z6$ÿ¬IÃ.r9ÜË"b?=œ&Ö™˜ˆ^iÔpß#D µãdíG!‘<¶OðÖŸ¸Jҭƾ«aÀã佤^7 ;ðÖ:9é§£µ¯ÀãÎ+ºpÝê›xô8ô5ˆØgœ­é£úøeuÄ]½b¿€œ¶¡ã³"“‹þ0¾[XãT«°M³i4oDJë‚ÿ­ …ÜŠ ð˜ž¾¹””ÂGñ³U”ÀTž«:qùûJ¶Ÿ1 ¼•QzTÛg[eõ´èP ~× …­¤I±¿Úó4àA Þ=æ¥æ¹L¬±˜7€è¾µ/ÑþwÉ©ü¦? Ñc·xpábE2äß¿¢Ùf}~kÖw†p$+I Üréμܭۭæ«ÏEÍU­~c]¾Ëžð×éÏjÖ÷>íS¯eë™—Ž˜êOT?´/.‰ìvvÈ$Ù˜Ñ08sÒ ò¨_Þ1¡tž{TOìPd~'Ñ h‘ œ*¸_l’¿`ÌKѥ͌ªˆŒù ³p¬·'´¾Ë*)a¶ŒG_"ÎAvõ„Ì¡žø˜ËI‹°`£Rrš/a­’õÀàZU×J«0+n;hXÿæÆ>™|ÛD'‡+ßÁ›H;ÏéìÀ?pùæú,Ó·}{Èê硹’Ýáz†ÑSœ¥é†eÅOšÌÙDŠqÚ>Éõ5»ðf—´~9–¢åŠ;ƒ†ßÏœ jÞÜqÏS“ tvlôÂêCUå,¾|h%Ç$÷ê)A+»dúÁåï\ˆb¤è ³hÏî(oJ ®U;Þ$‘B˨£sð¥#ƒ­F³Ÿc¿±uqN½\…ÆŽmE{· ùZìlèÓx¸<ürÓâ Œ¼s„Ì÷¼·ƒÝ‘ˆkÞ˜½´g|t7»ÛÄì]ò#,‰«JJTòSö£ú…°áÛìd/ÇÁñíÂ>ŽŒ@‘”òH=±#ˆ´››8Þ¶ kèc}ÜÌ)•X‹D¸59œag­PâËÄ£’Oô ¤ªÃ"Åï(eç ™—%´‡p§èÎuKt•ždÆ „Ò/ =#@t|x¡ÍN ¡Åšªã?Ò¢œqÓ‡ŽúeÝÚÛ òz~ky&½ø-’¯©'¿.Ù#@ñÑ´§j]Ü6š„ò,XÆfÓI!€£”€F}Y¾Où·ô÷6™Éäʰ'ùÎíºî*@q$›»³>%÷æ·L¾MÐ"úÊ>á®(<žŠ´Æ™X’ÄÝ`1Ø=Vï-«(göàïî™\8›ÑbwÖásÆ© ¿IhÏzqd‚v>¿©¼¨6ºªÅ=ÿÄçþ²­Ú<¥yY |ù#õŠyO •G¿u²žÃÅSv²îÞ$­‹Ïl¸[å×RÊ é=Tˆ¦ÊÕlèEí:y­ ¸WÄ$Ob±â<}‘%ª:T[=Lϰ7¬Ó¡Ií¼Û²l‘Ÿ°¢"ÛÂ\“Ôœ»xÚŠn7סi„&¼î» *;szPö?(ÛÊ¢©˜+0#!jnŽU-{/'I +‡˜iôfÈ3ÎÞ %Ë•íÙ[Xë÷Ñ=KŸRÄ»ŽAƒÝH#&îˆCÃY}—Ùˆãë‡z&ÙŸ=¨CÑ€±uT¹:„ˆµûßS6ÑóÚ{$½;ÖW˜ôÑk¾ £"Oú{Qܱ½zƒ2ÈUû‹ç¹AJ6ñ}á$•Þ¯âÞ\gJÑJ(n­e…Ö¢”TcÉ@åÔÅÁÚìN͆4#}–tì©*ö'i…¶§d¶|­÷VfS—ÑeÍÑ£|ü*¿ Âë}1½~·žÎÚ‘W¦)bG½)ð¤½GAÑ—_/´&ãrV•Œl<òÃJhOž½œ1]b]«p7F,[ ¥TÛiGh7Øoª'î(žœ`£¾ô8'œ±}~ÎnTr&ºÕ.©Š)õ)MðØÛÎè¥<3»/>&Ø©·²§–EkŸ¶ùZQ*¯IôU§s²L£žÛ…ÿ ¹1õõ Ùô»Þ(âñÈ…™1²w«ÜÑE…ƒ I#õ–0+ÕAY»µ,Âr…zýê|ùyJŸ§Q½²,ß>O™Ó‡Té:¿¼A?2ˆ” våò Ëh÷³帞âhŽƒ¯÷gv#µÙ6¥Tþ-VTòEïÑlé>½gÒ"·Y…1£sRšò=‘ý@›šõ9\+ø¤ LÞyB6Þ-¹À„Ñ¥ö©u+âÆLm³Æÿäw&ÿ endstream endobj 781 0 obj << /Length1 1835 /Length2 10300 /Length3 0 /Length 11447 /Filter /FlateDecode >> stream xÚvuXÔ[.Ý" t ÝÃÐ Ò!Ý) 0ÀPC ÒÝ JK)!]¢ ÒÝ!%JÜñœóý¾{ÿ¸Ï<Ï̼k½kíµö~×þý˜è4u¸¤­a–˜3œ‹Ȫé¨êêò€ âÅabÒ…Â!¿=8Lú7w(ÌYôެ GØäÀpU æ PñpððxEy„DA /$ò"ÌM ö„ZÔ€˜3ćIæâãµµƒ#VúÏ_«€GDDˆó¯p€´Ä jv¨áv'ÄŠV`G€Ì ûüW Vq;8ÜE”›ÛËË vrÂÜl%Ù8^P¸@âqó„X~µ P;AþmˆÃеƒºÿíÒÙÀ½ÀnÂൂ8»#‚<œ­!nÄúeU€† Äùo²êßNÀ?Ûàòü›îŸè_‰ Îƒ­¬`N.`g¨³-Àêh(¨áÞpNØÙúìèCă=ÁPG°%‚ðWñ`€‚´ŒèñŸÝ­Ü .pw ;ÔñW—Ü¿Ò 6ZÞÙZæäq†»ãüªOê±Bì¼÷¿Gìà óröûm ÎÖ6¿Z±öpáÖs†ºz@”åþa!L8¿m¶8@ #â €x[ÙqÿZD×Çò—“ç—ÑG€Ÿ Ì`ƒhµ ~püÜÁžÜÍà÷§ã¿ÀjXBl¡Î8¿³#Ì›¿1BnPo€ !Bè×çßfYÜ}~Óÿ:hnEeYý§ÿ6ý¯[Fæ ðãâ¸xùø‚ÿpö€#ÆA † çÿ¥@þžb5ˆ5ÔÃé½Êp0b,¤mÒæò þm†º+@½!ÖšP¸•Ý_2ùÛ¬÷kì¡ÎM˜;ô×UàâþLJ˜5+ÄuâŽPç_.b”þ{Uyg+˜õ¯™ã€ÝÜÀ>8 „¨x~<ˆá´†xÿ¥g7ÐG„l`n8¿ŽVXÀmøËôpƒ#„Ïò7p[ý‹~ÕÊmýäpCþ€¼n›? €ÛöÈà¶ûò ‹ââùÍ@Ø @D%Ž@D)N¿!BõÜÄ"&ö;;‚‹¸‘ÿp#JsùíFĺ ®DgGˆ ü·•çëß2þYÑâÂpÿë¸~'DtãöD”îþpÿ΀8Fn¸ì7bÇ=þ€ˆF=CÄðr{ÿeùü.Áõ…¸ýì¿Daåᆨþ×ü"óü×­ xC¬pæf`VbaöuaíW5Ò”^\[#|õ.ï=hùqâ‘7€(ÔÉÊ)ù .„Óóä4í$ߘ ª¡"G$QÊÇ y9ˆÈt1‰…¡(ESëÅÕEñN°XÇNA)’ãÈ2_îÉú|R:¦«¼4b’”&Ò‰€?§¾2ÞÙuÕÀ ¤©,ªÆÖØa!ùòUCÉ1PKcj Sd™‰«ÒÕ8~Í¢bŒÛxøýQu‘ÅôLÌçSŠ8ðºKJ£r!ÑÎá.ÞvOŸt"¿ç,‰yŲsÎY2ð}N5%QÂMH‹¤-àñ!­TNaæh˜·õB9^ÃÌÅKrtŠ=Lt/ËÛÆ+ø ÄNék‚o¾PùÁ@à¤ëñK¢‰.èÄÃÚKõXq’ˆeÆHÙYƒ˜QÛ=¥pé–¦CòË{Çä-Áägæïȱn¦Óúà«ø8ýAº*ú•;„GN\t7T ¹îI‹§`“"ª#Ž1ÖœÁݧk3åtM„ÛyZÀÞi,sEÓ¢V=žfÆ'ÝUÛo|"êGÕÆy8’Ë }Çß=§ñå3 ‘®&¿kc”H!6›EÞ!Ÿ*¤ùq:©Â©î¢Ã' †îF5¬Ôå98:ÆëTBh1îFº¯bõiG“|ƒk•Y…Ã!µ}=f½ÀÂl5kòØ”Âzé6zÀ04SØbddHY>š&¼ŒÏžór]92ø³$- —(¼E=.%©Âz€ß$CÇÜžxôÀg_ן®¦ÊÛ4óÓ;ÚŽP.öºª…(ÿw["Ýøøš¢8c=Ñ^ÃŒÁ8ÁǾɨÈR{á ZLTÈú$;Í[JiP ¬èÎol+ÔÍOÊxˆÄš~ÆYŒy¬áTß×Ô¹8†®ÿ-Wÿú²Ù>L"Àê½Þ·ÙäT?œ‰Lh=åèާʘÕٙú;¢£©d‹º(à"ÚZõµ}äÁ'pÜNoËOá"–¢—Béö1Èê²îüùVæŒ2?T2ì7M‡7HÜŠ½é¢ÆÆ,º?´ÌdÕxñ_ùaäf– i¼Èr$U¸b±¶âc84KSа©ñÍ®ºëµžM2Û¯x¿!ún–ñsJ]ö;±çFûGi÷²ž/›„Ï<°“ —î9pà™ÄYºAé‚C ÏôqA_ tèt²ÒkëZäøh²Ï:jòˆ¬ù¡•D¿ò² ¨äÅ;èUÄ®J@åGNI Ø‚uáÑ# ß›·ž…RtY™Î°¨‰¸z­¾Î4 4± 7['øx»Ñþ¨¬üþ\½£¥*Wªñ®¢[«4*Î!ËM‚»ÙÔ¦ÃiÈ.ßÍdxÒzé‹óÍá¨GçuõïtAña"œìGá´”*š`—ã ‰ÌùB,2w&CN ›½Ô ƒK­°³ñKäR XSHðtÇaM›"Ó7±›7{Ÿ'ðHfØèÛf]Ì;u­‡iÜt„U7 ç»ÖÊ<vãl½ŒQÍç4¥µZÌp¥³%õùl:ö²«ûR®„âËVÀÊŒRz²>‘»ÑÎŒÓðE¬Uy ¾Ñ?+,#ÇÀ¼äaØ7}(E@¡aítYî<<›7ì%¹[¹úôn-Kc±-»Ì›<;—‘«hžŸ kpÜèûÐWšbú1JÊó¤O?f=­ w¯5‰ôõF4žº&ï·+âW•5 OWX‹â5mi¥æo_¯/Ù©(ðÖ½ÓGs À;ÈÔº ÌS—i}ñå§7Í8ÍÝφ-_~ŒÛï"j2…®Ïˆ$Å0V‡}e3n×8Ì.ùò¼…MXŽÞ~¨\¾|þ­äŽwþá«¿£K'UT ™zÈBF`wŽ/az‡§þÝ •½-;÷`Ýõb6–‰I‹ið®ë³Æ$V"&ËÒÛas¹ŒÚ}YzÏ'ZD9>ý楗‹Y,Ÿ•é@0 ÑmÌSæLmB-Ù*¥-¯ôznÒ‚ ]“=+¤vëd]«8›„ Hš—¾ÀÊüBå'ÊhÏÆë:ÍÛ^Ã(øk;xÝiÛoÖCUïdV‰¤îðʪ¿îZKw3ŠŒ¿ÔNöŒI^’ïè¶Æê×$ m'yYÔÔŽo7)(Ný9¼r¶7'o¼¾Aéõ'q‘æa¢0uÎÖŠP`Ù1àOhÓ´b!&û†ô’æE®jôð6ñpám Ÿ(RõœQÙYI8 N×éB¥PHßq#ˆzö.øÍÍ‘ºl4ë¤SñäõÒ‡œZïYðqñ¸SFÌx·‰ ´öG·X×Ü&Jl^"µïõâZ©“vO^-W(®ù<ŸéÝñô'Çm`f÷4G'Ú0ó£“ûÏVÞ÷Óâ8 T –ƒ7à“¨æÑ½¦ªê¤fò™þiûÅCþY9ò7-ºšƒÏxgسÇÍ·' eÛ]˜ˆk,‹GÁwdŸYê=½oµ¯ù¼å|Œ.l®Gдéü¤ôïý¾²ã 7AòË!t|·FñêÇšõëQMO6Ö-Ë›Â1²§u¢zÑgÝ6%Á’ºûÍáçù™åx3ú%Œ°Åh³RÞ,[dºëFBfŽXïë`ùóÁÑîêœ÷Äõ*e…"ÁUÑ âéù†·S-³mÃßqßÜäY1²,Ú^öüáÎܼ„sIú´%9‰7¼]»–"zœ³òÁtkï5*1´OŸQ‰,î¦ã6ù6z¬YŠpkšxxÛ‰x§Qh]»qõPA¥×º¯Rñ4ÈlŠö™ý´5$$UŸ]µ.6½È o©|P³tãêÛ%_Ø4ÓsZwÎ&-znÈ&½ ï÷T±µýümÅn5 ß`C%ºXLg”ïúc£)+fSuJdÀd•©Ì&qØÔI⎅³ðæ(“µ÷Y0¯?'*âa7Ûz+‰Ò¼¤wùŽî{~`ƒ¿±£‰Tä–VÊHŒ»‚>áGú(Oiº+]ÿ÷x-þ0pŒ+ïÇé¹Shëæ>>GŠ’9ÿpej_§Ý,å ·<˜ä>ÖÄ©+‹eeqWF‹BÚ·%ʤÍQþ$BLEºón囕šÙ–åÚ¼!by•ÝÍyØü´ùs1ÓK&„<Üdöß+5r­ÿ˜˜Õ2´Rƒãf¾B•J¶¥äâÂ1àKFÉÙn}Þ);|pum=)!o^™-Ã69"lÜ àFr£4²CJŸã8WÛ*Õ«ˆ+×Hnpånù(°¬HÒf4¹'Ȧǵ‚ú}¬“;£É¸‹P½HãPÅQ÷Ñ…úû»GQfÌÀ`«;ËË28uK .^O](8üé2G’h‰Âþá"U ò¦ˆ}ðÍ8qÓXË64Á†•Òˆñ´Ütýn ó|d7š§|éÆ ÷Ê’Í#qôÍòÖËHTŽìXV5fŸ®†Pjq÷$èßfgL)õɵU*ÑD¦PÄ>Nßà {ïã^Yô%üï®äI­ŠçRÀêbä%j5ç^fß¶n:]å«çÀ<À6¸ç)ý@°)ˆÌà½ó¸h- m,Äò5Vÿ’|öwWˆ?ü*^š¼7Ujü,µ0­kÕ ã³'ÓÔ‡9¤–ºe7¯w$Z´`ê;õÑÜŸ{»~«“]­7”Y˜lTDEZ–òœÊxhÀ>—\Nþ )ݪõƒü÷”q³¨~KzÔoÜž~èõÛ¤zߦK¦šà¡ðyŠžæô@;;8÷Å“YHˆW‚Pƒf,QK6e¹j«ïÄ;¼Ïx¢wðäøyv·w‡ònšpjPiP2®éy¨W6šP»Çfí¾ÔçðàWÌÊ‹›Ê+¯ü™&9¬NpöòP…SîàñÑÉ·î(1¸°ÜtSèp«Âç×=W<ë ÏB¥Ô¶°“û‰„¤Êë{²3bá¡W¢‡¦âÙ»îg]g©ªvW††Mèù¾~CÍŸEeÕ:h/†F†âômïO%±[ß>0E“0þÔŽëA€{Á×_i¯7}h|ñÓC÷€!_=0À¤”ªùÔey¬çJÚŽÔ2Û”Z É“RMÜù±ö†Ñ¾YÒ¨¹œpŒÄnô”Oùgñ½ºTÌsÁúùÙTåÑ/=;KÁ:Œ“éôLÛ´š§iU”Y÷ÆgÈ¡³O|‹ñ­;[l 3OËyûõ;V¾jøÌÆëˆ>wÛ²*_-“Rº?Éõh 2*™ï'‘¨ýF&øÍÈ>ùh«¨ cAóJß#XaÖfæMw4õðóϵkœ—ݶ¼|²Á|Ÿd{ß·“eÏÐê/(Mׄo\ÚDPÄC±ÛÜN‰†—ΛŠRΙ›`­WÐùÑÝ·M…ø^¬tTN Æ}mDÞJáãƒP¡÷tDÐT¦P­Ú™” cä\j^NQ9E1²ºŽ~«ä2åµ^;\/óÊZeãÇÁðHžåº!7Ñ6¿k"öžÉ?¯Û1iM>ÿ™¿Áà™žY S~î-6É•²¢ž480*j?Iƒ¼b<¼‹J”´z@‡ï9ñY\÷îéÔ;Ç»Ùò]Ùð÷ öNƒgõàÀYù½~O‰Ä,k"ßøR½¶…³Áù¼ÇíCÙ $úƒ Úù9qÖÕ ù×6x_VÄÞÚ­¤AöJ¶Ü¿e'£šþšÅ%7;¾2©¡8$‘­Ç€6;‚uDd-Ò\Ÿ(þÑâ Üx-ÿALS—QÜyÝöPÆu!Rÿ‹&¾Ž£ðqnZ™˜\´zR"ÍÍn¸XPØØÇ@Mwü1:êp+¦ØëÏa½ Úeµá1…s‡{8¶þ5¦õ>3ežo–ÖØ0u#Wˆ¡ó ~œW‘:h]t"s³XèUy{’^~²ÄMsäÇ9è¯wM]‡­=~MƒTýR6ûñ*iãyVz¹n‰ÌçW1‡ßá Ä<…sÍøÄ‰üÖÌ2ñ^tÇ¥3D.ñ´9#uyÑ=kë­¸ãLÝh2l æ„ß÷ÆW qƒ“OKr~_K¹vá1*V}Où“ŸþiЊH% [UNÕ‡½ù]ß(Y@͆’+=|,ÏÙOj¶ü-ùSd¼¦d¤Ï3œ1Ã0a44©—8´Yô\ò©ö2tÊ—COÞSÚ)†ì¿Ù_“ùNÊÉ)öÊKâ ³×y¢åØ|ÞNOµO›5æÃ« XsºZ86 ôË0µõªÌîñÝU„)+ÔŽ)ª€Ãç0†qS.‚¯É=hÜG§fkçoÝŸ³rWCš©{7¿bú%™äà®i'L¯,Îs=òÇÝÈ~eÝÁõ ޾lý„$¯éûªºíñx7-Þü@ ö æêžTÕèp-Ì ›Ê ÅõSÖ¦Bl y‘ŸoøÝ÷ÜÙÇ!¤†(^ƒI:Ÿե:%i¶íÇeºŸF©Å’Qõ½p+ÞbÐñ~4M1äîìŽNßž¯ŽñVxð£w1qIˆ 'DàÙ@´ç§àuU W½¡|ÄÛee¨Öö°D•׉rÐÊ®®Gdјp ¡†@oa¶[æCAüHRk©zóJjz/âUiNÔ‹·Êµßæõ7©@4ã¨Ô˜ ¶™WŠáZj2¸°Î[›-)fìÒô«k1U3ÅçÕ<šf´?Îf†Ø;19`7RXæ8­ÁªTßR©¥í´ÎU×Ês´½Åí˜x0]åMHØËÏRð À$ÈË”aHjÜ6Ì'Á·:žù­Ó§ÆÄE¾«ÑL˜à¾»PsØèÜ™q‰’Eï踘¹&sœÖ®r£¾7±•;k©ÜÎö³˜Nû 3a­­³ÆILØ ²0ùkÕ‰t´Ý—:ß~N"äEôuçk߇°EUǺK„Žp‡u æÛÙ)N¬ÆÈQøFuÊuÒ¾ÂS®®Æ(ôø†ò½„nk^ÌÙkÕt»ä•® ŠÂÊe­uÉË™—8µQh %s{‚Vá¸E¾…·¯›ò-T2Ï€²1Ó~Ð×fÑwôö&uýî‰ C‚;ôZò,î¹æs³${à¡iÑn©¸ÓÈv‰­ö¾IÖCÏ—OUERÞb@T•¨byjr7üj\‘ÌÚñBBÌÏ8€k¢ÃAt·8˜g6XŰqú¤}JÞcß<”œ^zp®³‰#œrÌÁW¯•Â?LnkY뇒X©3sÊ)ãþiì‡>6ÞÏrÙïUógc¨¨ê× rÛ¢ý`½¾ï ‹Têóon\öߤ½Öûqlö5º¿ùm{Ü‹$þŸ´yQ§11Æ„@äöÍP¼bØXÝÈA'‰Økí'ÐvEn=ZÁCÛacÊZJÐ;+‹ f_€ê6Ó»På^sŸ§é–œ×AÙƒÁUKØvPC$ö¸~Ñ™ X/OØ!/žtIÌUs½ñô¦ÄpÛyÕ‚Á††ËÑâIßÛ;[¿-#lGÅ„ É{u€uý$Q»ü5j¹ &‰‰6v ï=Ž~íOƒAA9rÝ.kÚݶÎÄÐs!2M–â57sh½»åEâÕô)„ÆåÜ, »‹à|@Çb´Æ„I@7¤·ÑGG6Ü„ü™JY˜c¯„C’W¶BµÌ!ãBcøÌNI¡Ô¹%Sl:·BDˆ<Y’3ÊS„;Óæœ*XÖÇl¤)CÒæÍæ’ÒºL;©9¼ldª®}"|q@$†ìI¬üu€>÷;¹ýùèW5µ³a›C"ëÙúù[ÞC(ì}oµ|ùv_ƺiˆ >øL<üùHSa3Í7è’€3D“¸9ò¡]þÚ=¯M;)9ÈÆð;ÚÂð[°ï¥éZÖ?´^î’MÏšìåna–nzú ½Ò´R=WDoõœAèü’Íý” Çñ¼ÈÑWÌÍE*Wà—çxhÓĸä 3#¨¸!âDK³zü]ÇÒ>PãŸ<"˜w:åñ—â=Ë{ôŸº12ü7.C†/ͰÌ)hÅÎÛ0ØõJ¦#eæÁwPç ûÔsðôSb¢ß‹ÈAþĦqv §á:! <'– ¸¦©/²„”¾Òåp¨>ˆtHŸ¤ç*Ö‘Ö]úMŒB“.°ÕæÍHÒûV¦§öÐÓBÉjYvâlÑÜI&$¥!ΕößMRU¥^ë¶»Ú9X_´áâ-r“a6U`¼¢ï{@Ô–»oluì`Z”é½Aöe"ôµT|ÞÓu¼;“†r¾&âŽ÷tb+/Ð{)x,çtN‰ám^U»ö áã2ײ‡wC¢‘º¥x%ŸQ|OÉeUÔ\Mû­ó€·­úêr&!ìÇ  *}NûLÌIØzá±ZÀ4(Ö½òökùNÕÖç ~$—"[”Zfæºm-úÍhDߦ´ÐÒ¾š$YÖ3A¹çeŸÕÏJ¼Q"µ£zȪI“Dý@Óõãv%³þˆÒµ©Œt]w‹9º«m7·écÓxO0NœÞj•ax ; û†Wo ãgrn 9ŒÚäÀLf:AñÓ/{Ÿ$vÂB¶0zè[*Å $;˜“×Où¤ê5Ú¨ûP/Ò›7¶ã-Â÷tp¹Òõ}¤ž3†²Tý ­'?}Åà(Uòý`¬lyÞ´ÒË/-–½DfÐÂA÷¹ž‚uR`qõH¶Cìpl!È­ëRè}ÿÅ"@ ¦‰çQñÄؼâ\QbWäD¬53úˆåSåW‡„Õ+  °×PÒ®®:YIbŸU;µÚî)zoÆ­g*øµN ©‡]û\Ƹ E›ð°%0ì‚ý±hi5‰ßK¡@Tøj„´®¥QK&bïk!8á¨yÑZ8ªIúª†süƒ\$åh»˜¡j˜ø¥]2Îö‹c[Nr…Æ7{dú”J^ŽÙA³tëîõÉ—¥Uh‘²l—¢óæ'"CÙ™W‹Á³N{²ü"‰ƒè±†É,ȒƯé58Á6X‘‹±?J/9œÞÌaª‚¥U\|b[Ÿûn‡Mæ_ç®O®œd1í%×뢹`²^†qh?dðÆšÞkV§ø+Ñ á@Ãc2RÐ×]#ó3J¢,óƬFL‚ïÍ‚˜hì‹‘‚2üešž>"Ó¼µrÖÏáü‰ÁÛ}e†±òá•NûUÛÒØ*‘û5Ÿ§¸1 ‡ÓÊ5®ïÄ“rz¥ÇM 3Åo‡ˆ\¿i]-%åµ#KÒ‰Hø~-™\r=3¹.õt±ÞW7W5êÝ}™é,Â& ¯œ]–ÄV`‰Mçm£Y^Å n;}sëË ¢+%Gçc™oôénÉÛe-vØénës… z©á,„H$ŠÙéhZØÈ½ñÔwMÄ®wÉßjóÁiôþ@1ˆúƒçÀ»)}ˆ²‹¶I{öâ8ÿ^R©DAÿ1œX™ø¶hy ²¨¬|R#·›žà|Ò9ûMEu‡¸æSód¹ ç.ÝUóËj+{‹¢ÁäÛHFÆòäñE«’ãOÔq¯½ü0à}òÉ"?e–o.UMœ{qøâÊ>NÏÍüŒ(\]©? ´d ptU`ÃÞ?eš Ô²é~h$I\0$«sE¬ã­9`Íñ{éRTnzòçͽ;VfæB®º£`ÞÙU­ºÌ'g5œ ¤Ë¬bŒ6Òžä&ê¨uFd²«‚¯mzxLƒ®ÔSfÝ㕨ˆ²øãscCR÷É%ž¤–Ñ<:¤S±÷ñÒ48Œ¢„âÛ¶<˜›ãv\çúáénW'a­óÖEÁ©RÊò³~ûSwÛËUÏ>j» G4¬íã@9:!_qRœ€M¡wç‚v6Ì»Œ3°WL¦¨o?Ké ŒlsY¨¡œ¿‘«w(7Qæ79$ªR£ùIÄ|ìÔT\¬l}Hy#Íbìz"oÿi"á{´¸5ß?l3K£‡aÚ~¤2^Ìe¬ÚÚ¤5>³ ´ÄñR©ñ¸ÏK‘Û;ÞN‰¾}fFÃ]®:Å7În!6„d<Ч{•aÆÖ¨ì[i*;¾k_.,ò¹ñÑŸhÇå­?` û äÇÂì]‘ý2x¿ÜuD,³•šTüySI=§¦†™žÀý"íÆñÀÆ%Ž';ƒ§†ã >DP”öknÁ'W+ï<µïH·¥ï—qh „;ö‘îïš{+R‹ï ±,¯Ø¾”Î[úiD[>ld^ÓÇÖï#réE~ÄÛ—øîyíˆ êë˜Ì•-±Êȱn­Èú̶nL›3÷8ïºæ-k“ÉÇ?¼ÈŸbWÌöÔÎî7ìêþtUb ¨~ÔÈR67;—g«OkÕ÷ |7åGbKÇcÓXÓf»í[6O²¸Ñ“éQON{Öt{.þjøtT„¡˜|çmñ6#÷usGyǽ –RO„ï8´jÊùÈ3:Ø'¹¶U©ÎŽ9ÐIï§G«èÅá3È}àÀTPóSnHHD4’L0<ä-„(@æäÔ÷1h,…ì›ißqħ®òàì&z [î—fA€ÐHc‘~枇¯Ėκ×@’dE#Ïn#S‰0ÍßÔR^KȲS<·îhñ33r[ç\ã‹„¡¨À’k_….=‹J©ùvà…xzW#wú\Äi FZ}ÉÎvÞ!p Ú|-/ÄE^'WnÐnuGò™ü¾N#üªÄD BWMrÁ·Þ‹Ÿ@²ATü¦IŸŸÏ¤é\¬‰ €¿Ï5ÞðqºËmÌ'>ÜÃóõÎt‡¼OGnJq>" ?¶˜æúÑÎú;4»ÏmK‚¬Uêüº¨üqö 1NU­œW7-›,S›–DV°X‹ïX;\nœ;ïh>îðÑ ÎÒ/º±_YܓӻÌÊß‘ZÀð¹ûzgâÛMœAÉ©˜g›Yüô€¶TYs=ýæû¨ª#3¡d«W¹j_Ò“™]èÙCoƒèH±hä,å]†ºû§-´%­šu_1ŒSFÁîMÑ„® Î%CIüª9mLãz¹VŽÐÍ tiGáG)‘2tr"*ì¼Íw1_KíB¡4`½ëç´(Ãzqy·àÚsø„Q?=Íiñè’ –[.Ï9ÞY'L\1´ŽÈÕ0 {–A5G‹½“,£8Ì#‘$_Õœ%oÔÏ\ø5<@WîÙêhð¸&è•íKáê铿¨ÒHš'ÜgKK×qijŸIä{p¥Á/&öèŒ<«$áJÓÉýrˉô¨g‹­çMµÆúñQ~'5BZï'!÷j.ߥ _UÛ‘Ì”ì¾=òy( »ob†á«¨Hhsœ2x¢¾î9[§¼ìûžj.@Ý,:×U+Ƥ߆ôU¶5v‡ »ûM Óo˜'å¤,íœÒ•fzSAšô.²Ú´LälýæV4ULHûÙ ú¬7>rÅï{œdŠø¤ôgŒ¶¡ž4|é2æ{úæ5ã“ýÓè€gã>×™¾|Û°&C)4ºã\9áaÐxxU-–1gð[|µd§S5;µ/lÝÍF†î'X½|À¦E–{y‡Üɹ}‡}V-¼èãËO ^µz@Q¸‡¶ÙZ…Äýù®<^#Y®»|·™õ#z¥³I‹–ÂÅóÝ'kXA_@ü‹óP^¯?Õ]x¦Öè†Fé]y¬¾ÕÝe-©ÇP‚ˆ|‘0§bÙêJ·ª¿$™]W ±`»üõ™„*é¢èrg iy<8±ǡŀ©œVî¡™kÄBÖª³P{™‰?õO‡GϨ‹Ï……y%dn2#GRÞ+²dòNG3øaÌð*s,©VäEw/9¶[T”Ê:ª¾¡ˆlš¹Œ†R¸ /?_uVjÌnÍF¬P¨šfQP[<á †iêèYpzå°¿~!ÜöÚs0– Vû´û–µÙ¯âd|- QŸu~VÐ>o󜉮1”%@aEušZH†Vù©ÙI¨—³ÞÛ„o*Æ.ZWˆÓÁdýÝ|å«§½¶—‡X$–êrŸÐLã*¦$á„ö¸A‹p)pg;¾_þÈkH®é³¿Z6—õrí:ÒùÖµ®!?Ù‹BêœceOÃ7¿®Ë\&ÜÂx ÒÐÙPÏ…Æ §8v†sóÍ‚ò½¾ºÑ"ÙºT OÓÞÙœYH¿4ñù…ÀÓ?GsӣȨ¼{|Èðq!ê˜,†Quµ¤ž>ƒÏGë“;¬om•çS2¹JÆLOŸM¿8”Àe¿2§©úy>ã  eqBU§µÞu{¬>°<½e´£+ôXÏs¹Îï4eI]y)Þ„1‘;e‹NÜlzžø4ºM3ü$*eB¥ 6 xùà[ö“Á÷8஌¹Ü80§ÊW¹ç¾¦Â §†Ë §ˆF¿ËꈨF§ìemRÌÝ;' Î`ƒV7é+ÿ×ùµª€xùc›ë·žÄ¤)dñB©;íj ÒØ¤*¯´+PƒÎ`³¸ÇíG®AâÿE­—l—Ð&wŒ'WQÇߤÅÜ„,N–„™½ÚGöу1-¶tñ-´y77 ·Îš »Ç¼|$$¡†In»#8J^ým®ì›å³’­øçܹWžweRLéµ+Fߪ®ÃÑQdâÀ/õ^ ¶J%§eoê͉–ƒM'Šëå¢,¬¹ÂL(ì)¹)¾×(ˆåñ¼c¿í_Ÿ-£iÃ(âMÄзÓKrÁ·@ `ð_‘(ϼ¸Ò £힣ý±“¨½­A”Øâôér0©‡ pLÕpÄÃ]8ôÇÍß/ØÉ™ñÒ2ùzCo i–"ÃÖ¢~Ô=àèèÀ{ùÉ›iA '°Ø¡¡jOSÕ?EY\œñ¥Mì2-Ï•%1L£EqÿÛê)e~…¥¾áÑ+:>êh ވØ9¬f%î-ÉZTü àî«ûsõh€} rpÌ^‘¼LM>zÇCµA•>Ñ8†ÿ¤÷ endstream endobj 783 0 obj << /Length1 1441 /Length2 6269 /Length3 0 /Length 7256 /Filter /FlateDecode >> stream xÚxT“[Ó5ÒAz•j@zM@@zoÒ{“š„“ÐAª4éHG”Ò»R¤K)J/"è˽÷½ïÿ¯õ}+k%ÏÙ³gÎÌ™='Yáæ04V†  HF$”¨ê™X€ P\#åæ6…aàпpRns( C"dþƒ¡Š‚:b°˜š#KÔC"·½à8$)’’b@ ô_D$J æè ƒôD·‘(š”[é釂¹¸b°ûüõàó@ÒÒRB¿ÜÊP ìˆè9b\¡ØÁŽp€  ƒbüþ‚O΃ñ”õññqô@‹ Q. üBÆ` ECQÞPàgÉ}GèŸÒDH¹¦®0ôoƒ Òã㈂°†"ÐX/Š`w˜hë <¡ˆßdÝß!ÀŸÃ€D@‡ûãý3 ñËÙ Fzx:"ü`€3 hèŠ`|1BGä'ÑŽFbý½apG',áWêŽ e#€#¶Â?õ¡Á(˜'-‚†ÁÖ(ú3 ö˜ÕU¤‡A“þÌO †‚‚±çî'ú§¹î¤"௕3 qþYÄËSÔ »ëÕVûÃÁB¤ÿ`.P @(-))@ï ¾`WÑŸ˜úyBÁØ‚<‘žglÐ ˜3ûA€vô†0(/hPÀþ½"p‚ºÀ¤ÿDÇÂPçßklÿQ0_€ +?øóõ÷“-Va$î÷ýW‹Eo++›¨þ)ùo£Š Ò ,& ––@ $@JJôï8†Ž°?yü‡¯6 þ.öœþJÙûøþ ?àß±ô‘XåB|ÿýPƾþÏrÿåòÿSùÏ(ÿ«Ðÿ;# /8ü—ï7áÿ±;zÀà~Xåza°S ‡ÄÎâ¿©Ðߣ«…À¼<þÛªqÄNƒ2«haÐMàÍß8 ­ó…B a°ëoÕüÆÍ~Ά€"ѰŸ7 Ö ü/vÈÀîØ[•æ/;CÿÞWFB~›˜„$À…rô#Åö»’€°S úþ3@TÄ`]؃ÎHéÏÆ‚€’Q'GÔOô7 ÃP`8ü³‰˜¿ @€¨ á…þÃ^p Ì›ÊOì_y½P(ìþ6é¿Ö¿n(Ô &ŸA‚e#ÜžG´ŸÕ(³ø!\ZîŒI²ê‹–ÀðÌ>pÕ%ÊÖœ¼«â©º6œa8W91È"°w6ê{çenèbºV>G½oUå@¸`ðëÑK(;Éì2&•³J½ŸlÄFé`ƒoÛj1sq_ª[|ýÙ§§—èukém€ ø„Š#¯œ×¹ûÀŠƒk3du‡*e“éeªm6v‰û–pªÒÇôÕoÕ&!kèýûW¹ý}⇅:=Õ’U‘´Ltþ·9ò†S˜è“so7¡qxT$NTËÒ’8™Š<"yñ¤¿Mö·%ˆ{5¸è«†^5¸÷ºÑ«)1#Ÿ×½xÈj¿–cúU”üZsJŒ«PM— w5çd(s¿ZžßƒÏÀ ¬ë\ø¡7…,)=µÒÅ}ÛGt/\ÜîÓøµ3‡øìd˜mš<üÖÀ‡'*’†pvÏag‹·riZfnZCm<}·e¯áB"_žôÁ*,¯§"Ž7š_µuG ¹öØè'C“,;²·{·’›´%NÞP› ¨Kbjuf‘]öü‰y‰SÁÆùyø†mš²ÖJÒs㜉æâ”¦Ô³¦ºë8™ú$V2÷•C¦¨(hÝ÷ÊØž½­”|ýX>¬Y>íVðÞÂøÁ5£DªÚÕ«FÝ_ ì’œP¢bÄv:ùÖ®%ú¼·17“`ÛI*V“¡R3‹ù*ßÍ‚íiKïÝÉwŽÿ–ðeý¸a?ßR¹.Úó°k2xÕþÉk¶ëþÖÌã;=¼ië¾Z ç'ø´NCš2œEðŠÆD‰VÕ÷ýô1f6ýŽºíÇÍĨî×ÎÇ_É@6§²7×B=í6ô÷=¿•ßUQÐPòÎÝ—_­Ò á‘À'‹6V#ÿr‹†Üq¼!Ll!‚ãêÜHºWÔyËP¸mÃõ 9–ºî\Óóइõ=mk-«èíð)^Q˜Æ­oÞ†âï>ˆZH¾òSFvÕîÝÛ^·µ¸Ë¢¦×Bmus©ä(²™ºÐ*qúu¡¥¡úî¥Øª½XËÕª–2¤VZ)ˆÑw’‰np‹·«Ý‹)° I~vrn¡Í8[ýáañnVKâîñ7ž‡«™ðë?îëR㻂ž±kä9}.® Œ‚“«žÙŠ‹ºùˆ#X½§‘á‚Îc×rõ¶w¯×ÂYÁ‹Ñœ{UvÁÆ•ŸlË="רÞÀJ"tÊ '8´¯Æ=ŸzþmýÚcêïö˜) Ù¬®×Ÿ3¼”øn”c^—ÐN]5{œ¸úå‹Q£øGR8^ZçÑ-_üJ¢§“˜- åÒîªÙ:Ž·æ‹ãßÉU[‡èÂÍ‘u Þ­y;)ŠÝu¯Ë>Ì­•~§ Ñ¿ZRÑy‡³âkcZ6ã„ñ.·±jÚ\~®‘š+)Å”’½PÞÃp.e‡; C¼“3|]YûÌз¼.Ëg>›¶¢=¨åïÎ>÷ý–Ä;ºc2df¨]ç 3Z6‚f¾O¶7bUÝ^°+ºãý2q̦ åÛ{³.·AÒv–Vxd*Ü¢!oÂí'à ÁÞÉÓBý\õœ®f%zŠÇuÛŠË©ž3RÞ³Œò † tЪ&eªÒSý »ñ´Óu·œ[#Ì~FÅQá-üõä•@©©O“Ü÷I"4Éžž§û?¡=:rÞ ˆ·£Vs}w,·V•µ¢’6¼5tþ¢>-æÌ«zä·¸Rc?ðlê™’-˜ýVj-‚Yê.o8Ó§+:Ñ7Ý äw¿W(͘RJßÁ…Þ"Õ,2~rÇ}“%@!E|Ïæ-áÎéyÓèÜÆÔd[˜Ý,WOÜÇ£C[ê[ð´Äµ&t ODÄKѤ•;þlÓ½!ŽäG¸Ë•{óãuË ¡&œ²‰i^v8&1¤Ê‡Y’*òÔ …Þˆ…,ÓU⪬ÄÚ±vÎû§e´¶¢„#ÂÁAÑýƒJùSé‚X³aW.ËÀŽ£žˆÁ…Õú©Óåäúea8û®Üè¯å›yœ–Ùeý§ ak+Íß®„w9–eÛo(N ‘áî:a à©™®T’É? ¢½»íK7_×I'™ìð w9Œ5µÈüèxÃ?Ø‘ ~cn£Â[Ùó±‹E¸¥‘앎(K€ûsBPÔ|KÜÜ;F2áûÕÖ̽…º·Æ^Ïǃ‡Æt󸕱9ºZEoZuÞ5æñg~!º›'8»¶òKëi+ÊϹBJk¯÷:îÒAX©ŽHcNxÉÂ{œ;V;~R†1)|J Q|_kIOËn~¿÷Ô]ߢÁêŮƜ܆JP]ú¦{ÝBÑ’ñ.ßÛé1;±9n* ®òÅåŽGDNÜ(å&<Ð#9õj§ì&“ÑÇVúªˆ¿G´©‰o½¯Óì ÞKzšÏÞûP½œðæù<^Š^ÿö¬hÕ Ã6fî>Þ…4;rÞPµ~Ó[oSS2ˆ¬x‡|(?϶T Ì˜ô"î¡`àz ßZ‹ùôç¥XÍÒJ¸T˜Ž3‹ÿ"*ß~Wþ›&goùÍáHK=@1_×µž´ÚÈ}&Ñwuóþ“º=Ö-1jWØûo S~]ªïz6Æ2[›œ7),GUG×½ZfškV^{Øò²ï¬Õº,°Á1 õEê²Ý7Œ¨ …–%;wâø¸¿ºÆ~¦â—".M„qÆ÷ì‡qÙæ¾‡ÖWô˜+ºhhbüÖoõ÷v)@~¸ù™fLJö4˜{ |ÊXfº[òÚEuˆ)ù(yîEköi‚¶¦Ñª‹Á¢½˜{­É}™‘%H6Ý é¸~ÔØ´öƒ¤[µÙ®Î ­¯[A«‰áÈ™ ¨fæùg²í¸šî¾‘5žxèi£¡0yÜ~ØÁ+7nÕ±DÞ‰žQÄåK…Æ ¨KÜÈ€D}~ŠLH°U-WàúާAâïÂ1-ðÙŠ3EàûFXÿ[èîHÑHòðVbŸŽ‘ËûxÏ\-E˜ÈLlô£ÑîíZ2]ó˜{ǯ~\œyÓÁGÉm¹évD8‹’ÚÊìŸ5ÁXƒ™×<_œô%°¡Sp%üD,ÃñX'GžñþÄZhZ°‹S|éäºWT¼Žu{\QHÌ‚ú3–k>c[¾~7¦)qÛ±ÌÂh“Û?bêÚíç-s–O™ »Å1Ú~ÀÞÎ'"øS7búlRoÊ` 2ŠB\}J=‰ç,.PͲc)ó¥s]a =[F`dQ—Íw$ž¾G:…Ç1ÅMV-€¾ EÂ?þV9Å¥§FG`+ÔR§wÁ¼‘×Þúèµ2Û[~ÄÞÉØÕºiÓö‡Ô=YI º£K··÷7íÔ`¥—6Å2h¹GïšÅº9>Ó-šEæà¤ß ü*a±íRÉÚXËÙQ.­ Yî¸û|ì`˜òúҋʼn› D±ìQO“Æ÷@Ï ¯½!©<š1éË—<^m'`}ŒzZb“üþ¥·Ã²ö†ÚoñŒÇ]Á¾§š\?òY"жÆD‚ ZF¯¾~ØTÊøn¬Sc$ë!¸¦6;9LþZÕKgÆ+׆;ÊEE×}{cŒoµò)ÍÏ?Èö'7w(õèóh{dä½¢`ÉñÊ# úyHiÎ@añƒsÒ\UkãìÑ­7îŒÓÉr~g¹ú^䎉¶ŠJ;úDŠû÷q1úõE½Ñp±çTÍîÊÚ¶QüŒzg”Á&…Ÿ~X¥Ï#˜Ãâ ³§yJìØ’y/ÀJ8”+×.xšå–Fûžfœv²O0ïÖÐüØš/|¦¨ i”+¸çÇ뱃–Ë2Û •öä°ïÄ-1jûe·X?G³~™ S·¯tä…›m= âHÜRáv¿â¼Únˆ¼þÙý+Nr¶ø€»ŒNV| œó·6tޏ—ú‰Ÿ!WbÏpÞBŽb´V»ÉÕ|VZÎlŸ†u°$ÑoC¨§Ðõ<ð gZ΢á¢7_^weÆäžø»s¹»sÙÞÜ®¦Ç?;7œWSµ©â[¤+}t’áynTý8ÕèSV ¾Ór)½¨çÑ•†£Ç¬¦©w;5&náÛŸV¦NéBlÓ½!úQè¡“Àã/+7Ý•Gêq¸j“z=ÆP¿ûä3¯Ãå]ËÓ+ˆCŒËtœû¡(±b™˜Þð˜óqKõnÚòJá™ß ¾Õjî·å,T%íFì¹¢@ô’o˱óºJ…`å4êÁ¾úÒ¾ fâ­‹k¼Ñ®s®çòtÌÂfs· Jâ`~*[ñrætŠ­iÖin½ -Öæ¬Í¢¦†^É èöÖ±š3ü‚ÂªÊ ÌdÔj|1;3älÓŒ¬hŸ´ê„JÑ*+øÒNˆa–lÝzYw"é—4|VÚÂIqp‡g_öd¦é×?)kÉÔ?{¼l¥ÅæJmXiÓhö 0¶³šÈf¢"}Ì¥Qú&]KmþМYÑóÈo"£…Îp‘[C¾-¬{ _%Šðdþ¤@SgÎеîž~½M3¾öýVtˆ*ñ)ƒÿâ¤3É:‰ÜTúø‹Ð+7±ßÊê ™Û¼í—Ë﹂ŒI)ÈÞß) ¡^Ñsw.t¸ø¢z¯N±ëvx›hЧ¤™H Pa÷XðŽÑT‰shªbB~;ô3zsq7ÜyÛvy¶œãµÏ…¤Á{‘ y!˜íá` êƒBó•á²:ÁJꢦʪlR±ufè°ìg3eý~ë‡zS‰LóãT%.4Q.+f„½T¯¹£2âxkºb‰ï¥½×,_›»•—±E^PM¨çýq‰ÏS¾º ÿÛÃ8–G¢QLWû?SåµÍ&ÐA˜½™XáFZ¥Ÿ|¿îƒô¤=ÞÌâÈRï5|$¥¡ˆ¼6ÖëfH)½rXÅ™óÒ%U%öQÜhß¼á^±¬ŠQ¢AYªø×.•«âuá^ˆ6<®¦%í~Š­ùö„ÐïoH¯gr½Xr –¦7í-ú¨W ÉSœ{90¸5YÓp…jÇu Ï6¶Øé ‹är³m«Â~KLnâl$½_ŸjÃÚ]^c3–[Ít»à{™ÒSn½dí°ÅMrLqÜ7axäôæQ§Õ‰žC=s ú! ÄQAwíbÒ ÎéAeMªñ³ÞÆcqLTcÅÖ·òÈâž@Î’úOÇ{I3¤ùƒ6ôSº±®ù¸ V4ôuüsH )wú¥ï©7¸ƒ‰´RîàUúŽ£«Ñ¾»EZyr:Ô«kQs#»®%W[¬%ǯÝÇñZœp5¶°¦I¤À½}·©ætH¾tíþÇGuŽðr™®3‰%õŸûñu`,‡Î¢xÌø0§Ýlj¯.w¿KkÕûùd=9å¿9ƒgErÜ5ѻӪÃÛ¡«±$_?o;Ð —x¦d4/•jK2ª¦ë\ªâ‰úÔ<ò #ªx7dò†ë™Ñ7ö UÝã£äfßL’Ål÷5šsxÈïqF¬©§*ŒD6Ê:àSö‘yã>»þ¶ÚÔfž±§ý‰Ýô³‡×ø§³„š [j fÎŨŒK»ë)}_ml_6ê#>öQqO^i¿4¹lËËáœ-‡ç8œøË¶ÔfjûMßQŸ%x9¼ã‰*u×#kR"Tê†ò¼x,ž– ïŠÁ˜œ~êåf Ýåßõ48[œQÎyM¬Á‹4Sš"q&Ø;_ƒ.±>äe&¦«m)ù’ùaÝ)Úè9óñA œ&ß­ïÄÄìOäÍ„Cµ²r[„VÇÿŽ>]AlÄúÅê)ƒú‘Ð*Ô\l’Z^IËO'z<`þá©Ì$³Ù¼ØD³Â (zöU*'e—‘EëãpƒË/É7 ü¿µŠ€›ÜÀ+¬x.–ÞÍÍÑ&îlÉoKÑ<´º–Uröê`KHY1¤½¤›&š«xñ:6k™ÜÖ-R¯/°þÜ´µ0!ôc¤QQÞ”}’ùç†Ç€½ÒåÊcTù¡7ä½¾/¦wÏUHmñQ]·}i÷†7éˆßgVÚåLÁÍy E$>D6¤âk#OΫ åGÚ=îÔµgÇ?ߦ½ð¾v‰®Þøâ)á7pZ¼¿Gß3ÏÉÎLh˜¬¿n¦¼Gñ3ÕÊí(’1rù.—-›ŠbvÕ@»ãšx©ö¯æ…¿»röIG)ºdí FKYĦ\Êr¾ÃLx³¹æè[]ª*ƒ¬1ÿÅáòUwà:†ƒê¹üæ«Çñà}<;·˜áÙIòM¨Ž{’¸B÷J߂òêqÍÇÖ„ù©Ö%Ï`›Wƽ³Të .[»­TÄ$¸ŒÙº(«…ƒùª½¼»cuÏnp¢X6ïùŽj^\{u£[ÕÀò•eƒ¦‰à>7…VÃ9£ˆ^óÀÓ¿š¦ÀöobÕ¦{q‚9ŸÚUá!z&ü›#¹_Õ@;óÛù6ƒ3ìñ¶²ýrg$Ï‘Dæ„­ÖÌVm |‹J®{[8kíø©MûJNæ7ö Ó¥·Ä…HãYcŸ´;«™«›ÁQZÞÌ+#“'f~«jËeèŽcŸæš*U“ÒÛñÁQC¡wÖéãžYßb¾d…ÄÃ{¤&¸Í 2!z¼Ò°)”>Ȳ.mgù©Þºú±Ã©äpd)pø (‡ËF5+::«‹ ÜŒ'z¯üêy]Jê”A]^~\ÏÝ­a÷™Øb•þªi)ã0±Æ zm½Œót' "²·/t¤Ì-ýëQÊ:deæçÝìfO€)ןû½.ÊpPJšŒ¢õ?›q ™ endstream endobj 785 0 obj << /Length1 1371 /Length2 5904 /Length3 0 /Length 6848 /Filter /FlateDecode >> stream xÚtT”ïö.Ý(¤ƒÂ0´HHw#ÃCÌÀ0t7RÒ%R ÒÝ !Hw7‚ üÇ8çüçÞµî]³Ö7ßûìgïwï÷}žEK—GÚ a U@ÀQ< ^>1€¬º®‘€O€—ŸˆM†r€þ…‰Øô¡H.ö¿²H(…ÆäÀ(4O¨¸:@°HDŒÀÏÇ÷è_DR vƒYÔy*8Ô…ˆMáä‰„ÙØ¢ÐÛüëÀá€=yø; íE `8@Œ²…:¢w„€º ŠòüG q[ÊI twwç;ºð"6’œî0”-@êEºA­¿h€¡&ã%bèÙÂ\þàºk”;   wAg¸Â­ Hzs€®²@Ó ÿCVûCxø{6/èßåþfÿ*ƒÿNC G'0Ü·XàM5^”ê! ·úE;¸ Ðù`70Ìl‰&üî PÖ€ÑþÏ‚„9¡\x]`¿Fþ*ƒ>ey¸•,ÂÑ G¹ýêO†„BÐÇî üs³öp„;Üûï·²þ5„•«ð)æì U–ûKACDÿÁl (€ß#aaAQÔõ€Ø•×ót‚þ‚~Áè |½NkôP_˜5ýGäívƒPHW¨¯÷ÿüsE¬`Àjƒý§:†ZÿY£/ ó˜ð¡µðýúýûÍ -/+ÜÁó?ôß÷ Ô2”QTRãþ3ñ¿c22€7HÀóHñ£"¢üß–ÑÃþ¶Á÷Ÿ\e¸5ðèO·ècúWÇnÀñל€ÖÒ@ U püGä¦|B|ôôÿ-õß)ÿ7…ÿªòÿù7¤àêàð;Ìñ;þ„ÁŽ0Ï¿´h]Qh¨#Ð6€ÿ7ÕúÇ´êP+˜«ãG•Q`´¤á6h1ó€yùÿà0˜ÔJ †‚Øþ‘Ìüé/«9ÀàP-„ ì×·ÅÇ÷_1´¿ öèï‡ Z—¿CP´}þ¹¯<‚°úå3~!a‰{ñ¡åÄ/$ð¡ iõø­dŽ@¡Sè}Ö$ѯkåapW—_(Ñ?*C\‘H´Ã~ ½í¿Ö¿í …z@!DÓ“Èã»ÊÆïåÒ î<ëCx‹ËÍÏ㌺"„PìS¯¼mÕðÓÇœežY•ÜHÑúò6ltÒ‡ëàû°‡i[fàB²R C¾kUæˆ'·ïâk› ”Ù Ao3"’ò|•ü0^›éö3“‰“?CEÚ6K7ò¯š]6í…ßÈX’P1ÒÙÍ»XQF,¬Ë¨~#S²X ¤Iª«žòÓ‘+¬(Xì¹Lc4Ý…çªIlZÿü|ofwWŠÀÉkÕŽ2á’0J:*/–ì„:êøL•Z v¡o²o“âîÑ8†±/`;VN€Yc;éøEŒvҰ̤æm•‘ê†ÆÑA~ö^q–Ÿ^žx¯Ø$†n5"õ’4ÁXà^X dÛ³¨?¾y£ùø¹bõúâT’ÛpÀ.؈5+R·çèÎÀ~;‡l΂a”ó‘Ò- ÍËȥͶ´8§ ذÙ]íR!¹QãÝYµJmáyhtþgÛ¯¦²t/((îÈÞs86ܘJW<ÞÝÄ œ”ñ¿ÄgÜ5ÈÀ-{€!¿i²¬nq©¤~1Ð!ü–B¹l9㔽hlY#ÿ‰¼Å? ÷pÀ1'¸V½=ÜÿŠ$Z±\w‰oÎôÚ8÷õÓ‰ýkµL??ì1?ä£d„ïÆ¾Œe³N4V…÷Âú»yÌJb]ªNÞêG´8þýóÀ|÷º†ÅQqúû5ÛÙ@“ñ4Á/ Ev^M^ÎK£Ìi”ñ’ j‚fòh¼vÊ<–¯ 1-Sy~h(½  M¤é?¤I‘ËrD‘Íûcüœ|êžLzxý`§Ü5õ$ãFªˆc7Ï“‚2¾®jqüÈê´šåÒ5‡‰¸«+{`¯£ï*—1`îŽÅ‹\Ri\eÐ/8»Í©ÔWõýÌœÄ*ÕŠÝþxŠðnl\¡]VåëÑçiäíµ8¼’|(?úð'X2"cWÙÕ%’åý(Ü÷G¥†n“ Yƒ(®TAm'3ùqÏÊ2^uóõkÛ‡‹%¡i#žñÝl·-__Ô»/ÿd à÷'’F å­¯9;Þ×S±Ã›OÈ ï„œö¯™9eTjÔrË#à9Ò7á Û‹ô,YC“Õ&bf+ø-û,XŠÈ@öšA¹‹/bïLu}&,e2 Ê­B,UµZÞÎZ÷3KkÎÅ?“ö`Àá÷p i›~5âá«1WÑ“½;3˜ q3Ù4;å=¹‡uq ÁqƒÔ±.ÜO»É˜<|œ&g¸l:+ò‰¡LñX:[l"¹ÀxGTBþ–£0&õ%ø d_gp.ìdû%ݘÎÚËëD*RµŸ˜jšî’5Âè¢FŒt>é$kyy†½1DprÀûd}Ürþ1„4+A…J†|Üý`݇@©+2_¹`»?IH¯±„~JrRáÊлU‘Zyq¨·ÉG´ãл 9ª½²PøÁô]D^b^j•’`çŒà7% Æ»|r:Å ¦(ðãeJ;ÍýîPœ®C¬ ),?JÓäÈ!íÙ~úÑ7®þ3×-gU`绘ÇÄG8Ùäñ&ÐWDè<"Ñ2~£»¨=*AŒÓ D}Èîíùpt­2ýÎÜ­íšG©¥ ŒãoÞŽm½ JÝ:Â Л§¡,qÉÁyd‹pfÌJÔß_ù¦‚‘Mõ°Æ]'Ñb³A[ïs1M²ð_Ï ¾ÇÐM[¿WLé¡«~R¨8`ÅwÔÆ1Õxëe=o 2C]ÿŽÌŒ­¶×§f¬Ç"gû†Ãt{Ø,Ÿ÷@—gG®¬f 8ÑJ “OC„HÜÞçÀHžÂCùÓ#L;¨Ë[$„ ƒi—ãöÙüg¬îneT+°Œ®e±'È”_âvÜVñûv§àøOôNÞÙA„IÈ7ÞuÒ¿+4Ç&[aÞÒñéÖ1™Þ[xDõW.g~Á5ößü4!ýAÀ+¨›/c]“™úÔ|×x"ùáZu‘gœëycÂÎÓo² rëá· ˜>^„Ùj“{ÌQvÌßÀ%ga?éÝ¢ˆØ­yÎöÉ&×pð5êxà[†÷8’u#æävÉlT¦P`„ÔÀ佊Q \:[Šà·';~uô2Ž’0è#+£×ë¨K —˜}=Ï·;¤4Â’Öå5~]¡ìPá&Æ›lRûÆ€ø5¹»'Â_^§KÐ åAR¨¾ö)¾3 5¼ç·³0¹È¸¯™´Ã¥µvøø±}f“cÞÕ˜)Ó.;ßüE²ÉEø²ËGgñyžVµ†PßJ¸ðÞ¸Å^s¡uvq8Ò„ÎIW 4·Ë=<8J¨ïRö> 3¿õ¼d‹FØå u žˆàÏÅ Åð×.Š,¹ØãRczƒ*…&#fH,â0º«s¼NëhmwŽßtj”d'R.’vØOȦÎ3«Ü0Vl“l©Ù0.i i^©ï˜òW5fÑ®Ø0p‹'øvJ­Úù<^ÉÔôºËØZmþÒ¶«{¥5*­ ~HàK«pªh¤‚Ÿ”µè·KïÓ3WÛ/lc‚ñ+>-øÌ2óá§xËÒ°6»ºq6mQ“®ËÈ›š!’šH›]=ï1¡h'¿ö(EªY÷‰Ê~Í÷„'t[Öw é>|P?[\ü/¯™Y@û¦Š8|!Zk7ñ}P”¦åãBLŸÎÊ>ŽSîOµK«_ßïXü„UöIS×¶}95¯2¡àÕàÌ#a4Î{¼^5S°ú}äúgæ€ÆW†Wd•Ê£•šNéB­¹à7¤a2»lÝ_½ù‘g¶c̲@ýeæ1ÀíÊÿU69Ny j” –#¾åÖ'¶ÙÂ.o8ß[ôžÝâ ·çVÒ$;Ä-_¼2*¼‰<ÑSä§9ôŒ–,u.æÀ_8zD/ˆ‡;ÆÄaߌ+óõ2Ò¼¡3ömaÐèWÁ(ëÏ?ORy²…½ÏfO¨^¼ä[ãüãcHñgÿM¡'P÷ÚhF© ¦ÆóŒiMŸºÊÇkÍÉ­=aKž ³{; £w¤GÀ)†ÛBC» ][÷Dz=õš•Úvsj¦¬´~óž¯'ŽP,¥W­©X[˜àÐ/OžÞa1þÒkß"ÉC#Á€ÿJ¹ReƒGGšKëI-‹kËó£š}ÎþÙŽI73hbÞ‡«+V¯¡©-q¥ ~ ‹3¯Ã«Ä¿SÈ“v‰©I¸ÒÈn(/žñ5'UþÜ–½Û¹æ5ÓÓ²õ~RdäÄ?z¦ƒÏmU‡ÞäY}5sôÏó™.Îî1ŸËoáŒÉ(‚J—XÏlP‘Ÿ+‘nvîs£^سíi/¤B‡·¢¼¹RÔ;‘@Ž|ß8õ±é }žÊ2®ïVÎTÃ&;‘æ#¤SdkÀiOZÚÎxÒÙz °rq£7p ù ó¡F¹·»Ü½í‡Êá—_Vž7Gsh.²bÇJ‡ªême¼»ÇÎËÌdäýÍf×T6*;sÉÞB¿r«(ô£bW¹˜¡QN=óH§înÊSG„¹pSðŠSm[2ƒ!§ßÁ&fÎ(5Íàè˜ÇT F‚´R 1^2¦svõC8j¢%äù<øHdLsÔOÞóÛ…Ìœ4^¡w~´I¾iªûé™ FÛ* ŸW¸ñpÒ>KzXS×xs¼y y•Nu2À`cPµJ©š Î|MvÜôúfçig‰&’ik'’çûákQ6¤›íE ¶Ž”ˆ–6EpãºàUÚÜ(Bõ á ü¦iæ /ŒÐ;ÁUæ8Rm+4èT`”îa‡?ËbÇ€t7Î׬q³N¦ÈÞ”í‘ûmÄŸ=È¡òYªMÒºGyèGÒ à§£Nøp¢FÍ5}‘»»N$ñÞXvK´ éí@’~Txr6£Ïï š<ƒ¹¹0Ó°¢Ž%äDz^ŸÍŸ?††ÌNðv›þäéǨP:&±oeáÂr#ÛúšM@õqº…R#?_«Ë¸RÕþ§¹;ö7.p~Yæ –åòbšz’‰È$šJ·—}$¬Þ^ò©:´íPêEÇÛÞ~õìLö2çº]ÝÞZûY½¥¯»d~®oôa G°9fcU e98¶ï öhßž¾¦’XT­y´Jn[$I‹ˆý¨{|r˜~Ð.•œÄäEÑ]RÌóvåw>]Ã!dµ}S!2>Çáta¼$K$í8-,Kî¨ÌmÖsÓfíÒ‰Ä9Äçª}-˜©‘lÓKÔÊt*ÏÌV~ûT§µ<¹?Àz/–»!)¾9´žÔÒÃÕà>ü>hÀóÖû”õ}œ¢Êá0Îe_=xji6«šáj–?f³Q"v¶èÝ`>G³O<‘0lNZh¸.4¢(£ÞÈáu†«‰Ï->;Óæ9ñ’„Yâ&•¸i{OHÝO8;E;™-sä„3-œûJœ6[mÞ‹ßG?äÔ›IÉûéù×sœ]OFP<¨Ž|¦wÙ²²ÜŸò&ï^a¯ô:°h€.«îæ2ÏêÓüÆ6¢Ýç0–µÖË<­`}Ïc**òm\—IÊWråÖH߫ËiJ&TÜGºB©ä˜ÅÖ˜®ªÌ'2¤„ø³m mè¬÷L}é™Ê­¯•<_ªöž%zTèËý,fÇJ{ætHÌÈýðõVgÅ ½&†Pñ.¦~…‚bójVSRËÞuQR$—¿êìμpÓû5Þòý3Òe&‡|Ã*]Ȫòú…‰ÙPêÁmöðâ(–ðë^ÃRTIæYÓ± 2]•Q'°ÞB°fºKgŒØ;/‘åî'6Šy^Ú`ßE¢)™~îÁŽ…´›Õ—?ºa3WÌþ~ŸƒëÅÕE>L‡õ:¼lߟ‘pYÃpôÍömêäô„ã½Ð{'*Ø@‰]¼æ'Ð¥'Lö¦¨è¶Ã·Ìñ[üˆšz–î2¢n çhvòŽZM2›Œ¡®¶Ñm­ðjÂkF’fýâ̶GKv 4·.`"ôo÷…˜E¨22kIƳâžÕÕ ÛáI’I×¶CÿÕ“M®‡ß€¶UUZvÍÞkÏ胉[ädOÝ-(miOë€åNP% r¦ô»>NØQ»ýýuO‰Í°Ÿ•°#îq Ú 4Iâ'£qS™÷¾J<RÅi"Z<©‘þäS…¥È½ 'µ¥³q4L* 9y,½*SçÐ>ê½áâprøt.X¶ï£·ˆ‡®òPÜÄi‡i+hg|¦ÃÌ zy|Ãkî”Ø®Å žSÝãªÌ¥Zb“P/apÄ k5)Ê5éU n÷â½g„¾,&ÕBâåW‘X¦‚(yÉ)jeþÑù*=Rë/“_ÃÕˆÏeïÚ¦¹Ë|%¸ÝõÞ* 9òÅç{µwF¯ÞºP®6bž¿y¿y7KJ«hÓñ)${–—g`¤xÝÌ¡²»¥ï¤D4÷F0ƒšêZ|Xk—G±h´ó‰AËqãð@ñÑ™y’ýd%Dn|R]]=¿ç‰ÜnÛ²†N/çµ[޳öqQðgh7‰Îf1ëÐG­~핳’5Ë ªVèÚQòzK•°D0”·ŠîfQÁ¦¥¢M^<̘ø‚¥Çxóù)=}—ל´ý ™Ðý+Æí>z"réû¹V›¦kæ’ù±ŽÆxÝÓ ‚b,Žíëcœýíè ÖX”ï±83‘î% ¢pϳÖHÒš7ù¨‡,áø­NÏJh1ÕÇ»vo }ßQs“Åi•ÛÉóæVM|7¬£{U<`#ªªHeqÀWÅ8‰8õ*4þÉ%hæÑδ×ùn³­ŠpwZÀñ¸Iøõ9¹e—[?”ºéêöNÒAÍÀ½€QKÃ9k]q!Æ•ÿ”ðúåÁÓãù8¯Nå*Û‚|‰=åV•*b&¢ù¯:?3[37 qi¹kh0²JÙbÈ:'u@§^ÅDxcr½bX´+6•Q'ÞåF'¾A7’—‡ó›$Äݪ)GÚ¶g$E_ºn ™³LŠ:Ãèžoåðš›C|©y]ŠÞ0-™Of*JÞHW\ ¨ ®žBO‰G“Çp¢½¹NváÝÔc^oÜZ“i+†7^ özξGi—Nn<ž´Ø ¾ØÄšÎîssVµXÉj½çY*™µ¯óÚÈ{À³Û‰]øÖz&m:¿[d9ô;•žÜ9õçõER$¥è«©^HLé¤@ÒWop;¦ò ¨Ù|Ý!ñ+x®ôR6×nóÔúa‰7´j(nT)õ(ÛMå½óy†”gxåEÐ&]N½¦ô9>e}[u›âEšpnŸ2JÃøN‘Q¬w亪J“¬%Ð%•BM43kºú!©˜ì%Í_{ª ~“!kF=jYW¸–=ÁÍu^M0Ò@240dß¼WÚÜý3_¸\ ¶à Ãf\34i’Íkó?Š2Iä endstream endobj 787 0 obj << /Length1 1674 /Length2 11132 /Length3 0 /Length 12204 /Filter /FlateDecode >> stream xÚ·PÚ.ŒCq/Npw‡âîîV$@ ®Å¥Ðb¥¸[q‡â^ ·ÅŠ»?ŽÜ{Ͻÿ?óÞd&Ùßòµ×·öLè¨4´Ù$­-rÎ`(;§0@ZUG‘‹ÀÉÉÃÎÉÉJG§‚:ÿ%G¥ÓºA@Î`áXH»- /2 è‹¡ª3 äîàâpñ s sr¸99…þeèì& ±ðYTÙJÎ` •NÚÙÅÛ dk}Éó¯#€ÑŠ À%$$Àú§;@Ò è²²T- v@§—ŒVŽmg+êý_!ߨA¡.žžžìNvg7[1&V€'jÐB€n@kÀ-Ô,œ€·ÆŽJбAþRh;Û@=-Ü€€#È †¼¸¸ƒ­n€—ìmE€º ü—±Ê_¬€¿/ÀÅÎõïp{ÿþÓÙÂÊÊÙÉÅì Ûl@Ž@€ºœ ;Ô Ê °[ÿaháq~ñ·ð°9ZX¾üYº@NR`ñÒáßýA¬Ü@.P;äøG„y¹fY°µ´³“ … þQŸ È hõrïÞ×ìì öý²­mþhÃÚÝ…C ru*Êümó"BýÌðqrr r €® —•Ç t¼]€*¹þ¿ôàïëâì°yiè²¾ü úB,<€¨›;Ðß÷ŸŠÿF¨\\k` ´QÿýE ´ù ¿Ìß ä0æ|¡€óÏ¿O¦/ ³v;zÿÇüÏséèhjë³üÝò¿•RRÎ^_6>7'€‹‹› ðrðÿï8 ¿ëø‡¯"ØÆ ôW¹/÷ô¯’=þæãß ÂøïXjÎ/ÌÿCtN>N«—/®ÿgºÿéòÿÇò?¢ü_‰þ¿ɹ;:þ©güËàÿ£·p9zÿmñÂ\wè˨:¿ìøMõ­®*Ðäîô¿ZE¨ÅË6H‚m_ÍÆÅËÎÉû—‘y­5@P+»¿Xó—\÷}sÎÐ/Ì‹'çÿè^–ÌÊáå¼PóOðe‡þ;¯,ØÊÙúeãæãX¸¹Yx£¾Ìúñ|¹^¶Òèõ'™ì`gè‹ à¥G€³êƒpXü!ú 8,ÿƒ„VÿFTÇaýÈàþr8lþy^ã?´/ØöÀa÷Èàý¾TñOß—2œþ_(Îþ|)Ãù𥠗À—Dnÿ€/‰ ÿ€üè?àË]¸ÿ¾äõüä~Iäý'ü¯X¹»¹½¼FnÊËtþ…ÿ|ú€@/ êÂg+‘PûÚж›jIRO¶íqn^Œ³è ý-YbÍ`é7·ç<ù1ó’]3¿bn×q¸Kž› 9ÌÖüRc„ êÛm,7Yý&qEï *îÜ¿”;;Þò€­m ›µ¾y^HL3½fu=ÝžÍØ“Cß\y]awŒÌÐø›n<6™HP.´]2£½RªFrz¦C‘r&1~˜H.·w›Ú?ÂÍ÷s`ñ +,h#•tÃEù"c_ìón?‰òÛIÀ4ÝV,ÑýGÆà‹¶ÐwŒ–Qmq‘LÅ­É3…³­XE-Ûf…ÁuøþxéõÔ'ë¯$³½,~š‰0wÊ”|^HÖ)ôáácøÒSV&'*÷ ­oþ•ÜÔïÐZöle?•š¡©3Hrætj!ëH:^£†ö¹ï×”Õ«‘˜·8«T;ùf VLV,²ýœ£ùJð´F· ­KŽ +úôžâ€&X¯€ÌâhT^”K2zÏÑÆÀÑò 7ã¦æˆx°×ú.Çù×ù@ŸþHŒ¹|dßÔž¨¬ tj xí»Ol%ÅDy¶;þÐ³Ö _búäÒIÃéËÌ·QЍ!~Kyœ)ÍôcË&ÙH„éshݸH"Ÿ‡šß çôOŽ™'ú)Ïaäº5£6ñÑheþ¹®±fV¬aåɾ‘u#ü=ÇkâÑJÚµ_úê<.i“ê.@uÔ´§µêïQóÒ(³õ4ãÅ`VvQ¸aÎÊÊyø¿¸À–ŒŒ¿õÇ­uȯmƒùIQ±™ÿIè²s»·†fLU´Ù†Ý÷lú[Ù&I`+†<Å4zÓAéï­w¹3ÔÊ”ù¤¸‹wÙ_RŠ©&juÌ»'š9K‡Ìðø"}ò¼$HØø¸ÄœFŒ´ã{³$Ìúï!±O àÊWvOº"$…ìý”ƒßùà|US}vÐ:u6°’/틒Ń^÷Ý“o¤!™¡ÎªØUTÝ+B ý±ÉSÈ›øô;¬’7XZ—'¿Õ¼ß‚„T76'wv¥m°£5½¨­Þ¼O\\ P³«ˆ¦ã<~»!S±½ÎçztºF‰ç8½2hÈ)ÉP…ù ƒîid] â9îÑ‹IýEÍBËÈ7‹éÇž¤u}÷v^Þ¸ŒÀkbžLUBß8(@äJ‡Â,:×xA—ø˜…⓯Ä#'Iw ñÑ!'î;åúùwkŽ ¸2Ó,Ûó¾wÁÜ#WƒEoLî£èÖÁúŒ!ø|kôßW­ó_ØèW·AËLSnM;öy¸)/á,ÏöJ³õ0ᦴ‚Ô/K+0vé“Þ>îÙ­@ä%©ë6év°âÆR¨§ìŽZß<7Äé àVÚÑä$Ó¦"ëLLDçBÑT¤a)l3g¾ji=òä-ù«Zù¿í9û_ðø.U¾´Ê„Ãn ìfúëNˆ6ôÚÞ?~²Ÿö6{« c°óʺtRoô²±4ß°D섹ø}ïx:܈Ý[a[RMÛ´‚ d¨Úú§oBÔ-4…°2̧´ƒ_Ú2pz{›äJ„Ôa d±}½©?fjJz^pœNrHX¤|MˇiäççŽ×Âv£ánº„ {…ÇrnzØÑ?ìAX^û~í`¾¯ûIOÔ]óµ`ÀèøÖF,>`éì†7‚1ˆoG„üœ°³EÄ~~S)ä‰åf¾Å9“*fçK1“w»Ù<”©ýìç3[5G=áÓýP´å;Æü;Ê){Zö·ñxÒK¯‡Ä¾ßX»mátæúôð$ɘQS2Þ¯|ñN(ÿRµt)ƒ ‡È„A+y)øÈ•Énnf\­ óŠõ ?7ø¯öi,(2BâÇfõÓÞ5Œ"å¹Ü5ˇû£ló7¯ûM±/ßí»UÓk&Ïqw¤OIªšfÙÌüoô2¥ˆµÜ¤þ:ëŠÝ¿Ë[¦n~dœêÒ'IcÇǰàRA`¯÷lY„‡­*T”=í]ÓHDz½µ%y\i³Â„ª“X++xñ˜®è.‹â,.Gj‹6Í—Ú úÿ¡“*èbRÞЭ7˜öGî/Àqö¹ÊVWÿ ~»`¢ð=9èU†Ì¶Y„ ûÍ‘ãaU–Ÿ£Né‡ù uáüä÷ ~lÓ`ï0‚|°ÀÍ™â$J νlÔÄX-Ïb faQYòMg_2˜òkiG…Øf*kìƒK# 7ÜhÀúñD§Û“ˆ’HKÚTäºwÃþwoSv®[”M`Þ{Γ’}\Õv¨0Ù‡w¶]k»r,NÁûnIq‹}^6´¶4&x£ËgÜb>¹Ö=Å´wDuÞ¸~~l暉Ŷl‚Ã)z|í?"÷6þGgçµÕNÓ8Ok9¤Kñ*Ò¥Þ¤->êÃç L¬Ó¶v={^€¢Ÿ143•ôøã6 RÅœ¡|ôܧ§y„mMFú´OªšÂm£]&G]ãžEW­çöÍ¢ãÏëæ*Éá…×_<{Õ¾7#…úË-[ˆ ´ÄGyÆ þ:§ûj¡ZbÕ›xÀ‘wDvjiI¨ÌBžÎíºZfcƒ£ŠÝý¼‹¯‚5çÌÎໃ†RnƬ——dQ[R˜åÜxz½AŽ™œ„åxÄMÌTOÄ»#a™¯»î°}ÊOD{|Ýï ªµ­Çb°éw­ól‚Îe(çÍÞC¯/é§àrXßÐÀ<2ý4üÌêóù¶ß'f²3ùWQUrÌ`Ncu]¸>µ‹ûÄ ÉéÂBË«dmÓíá¡OB:‚Í,³ Ú¸ñ¬eÆY3¦ Å=öíIJ•ª»§ž]+¾>–±¹¡Z_õ‹I(ÕœC…ß~8Mdì|eÝP" ñ °LNt(Ó@³%Ûä8!ªEúu~õÑÜT†"§±;ÙgŸ2]瘕V¯tJÇ~ìhÉh­áâÃ36ùs ßÏŽµ¦bhè숦ëhåáBêwy«ñ«#ß‚ÌW~ÅZ_oáU`±Ñv_˜â{HKÚíÒ`1òåz ‰ H :ïcqÜ`Vù•«=¬þ ]ÒC\<&%)g­un³%^Ï"êèa¹:‘ '8äWû­×¤ÝœÎ÷ä{I=½™"2AÆe5¦þ^»öHW2öX/Ÿef:ö›ŒzÛ¥üåÃn&PÔFÅkÀrȴi&ûöªéKÓÞ²¢Gîé‘Àq Žr[ ¤5WÆ'‡rÚXòÔ¸ÏËÒ½ØÑµ-,& t¹Óáø±ÐLoð73T¸’»¤Ç*¡&âY†öt]:Cœ}TýÅç[Ûtñ:áľpö~Å!ÁJÔgðäÒbëVáíì[Úן®xûpî°P'bÖqäÍ28 (úÏúSÃ;ãîd|Ì–ýðÈDBj?‡àcëégªü›h2™Q–QÜ…‹îDpøÝ5HpgÍŒèvQyJ¦ü&uø6Ä £úFB{*84¶²ÝACІ¸¬EL¼l÷¼"l°­Ã¤ÌѰ±Ó©Üi‚!¶FK›2³0=7X£¢­†Á×#'ºÊ5@E3' ôšKœ±­IF2W«ü¡ ׌w¹,L’[’YŒ˜‘¸d¢+ùЇhýFÂüõpýJå ê†^¨ˆjÎê8Ÿô NÕéøShà©])rn¾ÆôÀäÔ½Û«2Rœ{µaU¤Ú4•ã –  X€/†™WÕ˜ßïžÀpà/+œÐ)L ØD%ššã¢S‡mÀþàûÈ"$;ù—[§y´ùÛ/éú“8õãðºY¼Ê錳ï0¶·¢oN$Öë¸UxÌ:á;f‹Ápf±‚ëø n”VÀ}O)ªü‹„ë{°é€ ‹"Ÿ§¡©‚Þrm»ˆ.õàgÊ‹õ÷jÄDÝˈ¸-'¼géá+Ì+H}—¢¾F™¿uù?8³¨Ð­ˆ>Vß²è[ë<†BpÜýË\!ÕÁ]%¬š?«åªÄµ:ä,2;o–Aë$ÛYâÞèÞ–!^“6º¯U>~ÐÇѼ.À ×]fã¯.í-´|eQ$¬H†žPéÛ{59Iª¶©l\l¶À?ÍN©,©Ÿ\{+•k&2‘uiÀÂsÃо1l³c~¥NQ0IŒ™qDù\G( 6Fš îŠÿ 8.pH¶Åÿ»R¤ F–¡ÚIñ×™Ù·ì-’y½Ÿ³®U,OPãuF_½ø©®Trr]pU÷´ë–23-%>(HáÐòÄ-A¤“ŠpÄz§Yd¸óJ±å~/´NJvQ©ƒÞ­ÍÈòápµºö€ÈL€«œÕ7š›¢2+«â¯?R;¬U ,9>tâĤ­ÚõÍÔj…à+Ęgä¿ É}X Þô‘f:*Z8pX3æ#øó~¤ÒÿÌ“uJ9#IJkÉo>I†k¿„ öìq§ê“û¡*‹¤Ô —N*1Äà½>ÖßSÝäÅ ¢c ©ŽI^¦ÎˆT]ÏFûcZ>oò`täqp/}ˆ„01™á•,#\®J?­ÆdphõÏ_'ˆú? T’}ˆoÞ¥´å¥œªåuäèî7Ђg™ôS´± õ͵G—Í 6å 1³¦û šRTIç°¾n“š…Õ¢fV .4šiJ±MªZe~[/þ°ô9³P#cN0Þ#ÎÈøö-Ö¿#2›‚ÙÊ ÄÃT˜Þ—ë°ê[T“!>Yý¢Üƒ$Nl†6&ÕFÂMTá Jò'%)©Ú‘~r’½–w1ȚɹÚÌ1i%Ùr'Í5§ïDk«­4Ù NÉÉËxî JO|²ùâIji*æ÷öù,mtH²#Ý(³8“é»å3™CØöÆåÃ,©ðI ßë)g+3—÷í”Ë1W?ìÕÐ/ßZþt!F°9åÑÿÕ¥õá^ìâI6Ó2ÌsÈ„É÷mkƒŽ lÿJàÕ;FG„,ä°¬‰(hˆÁ‘xÝþ Tç÷7¹…È­wwiðUS‹)–Þ@âÔñŸPî÷"¦ÍÉŠ\¦Sæß6±ò‰Ùàê+ÇÄMÆ?ÒnçòÆ6—{ mê‘®ÝÄó ·¤žÙÜå$TüH«ÚRÇ?‹X.õdÞ—` ¦„ç7ì)¾;H0}âÊÁ…ÿŒ³ßå¢ß‚û :~ÜZîìí4­;Nsí{‹1îvH²Ùc™‡¤ú+è»H*[ »Œ÷ 1“¡dÚaŽ,Ó|}šì:άÌU?U6Èë¬`%mNbw\[‘± /¿3ZS;àŽ-í*ÏbâÛ€ ëfõ\ªT8Q¾µ˜4ÝJG™þšqƒ•ÚXƒö&·“L§ö_|wµÑ„¨\2‹â‡!:«ôce’97zÂzÏÑ'u¥»áËpœï„4L1.ÖÅnÇ›2ÅüÕÕ·ˆÙjñ™Al¬*½Úë²»@¼W Ë ï ¬ñ0‹Â jš(%­Þ h^ê 4Y ‚Á$¡QÒökèÁŒªöîı¯–$›Ão7°À¶n"H]”Ù9·özòl€Mˆ¸ûD¦Îø“¡¸^ʱ3\0Vlþ,!ºÖÝ3L«¹Ç1ˆ,U, všR·­"´T£ˆ—–S¹Ù?ܳRÇÀ•vPòÑÊ!œòŸ“g>˜l,­P±æ·†ÝØuXSmõ¦›+•„UÆÖךX•E€U¹Åi½Ÿ#¤ÚÒ&j|«ù^ÝB&QcÌiQÄÇÖ ‘¸¡é²”o œA.¤NHŒ‡es†ˆbÞ-¾!eg¦ž¢k¦‡V}ï¡)4ï´@©5³0®ê_#¡Y¸[º¶TŒ=¯[s%BÊ?N¯Éýt+A‚.oJŽARévïÍo%Žè]þz:—Á):‹›Ö­DÙÏs|ÉÅf¨éwøFæ"òÍÝü¸¤ '‰"Lqž N²êD(jTí´¼qÞc˜ ªg~©G®Ò½P]‹—–<"—82BÖ3€ÇbbÄ#Vv)v¹™‹¬]˜ÏÂHCë°gfÁ£ ê–÷Ÿ7×ëfØ´qºi"czk¤ãÐ^4g¬ñm)ÿ´=N+‚FýUïc'ZbÑ}!úÁÏÆGħ³à‚–HßÉlRÝÀ'ªíì·ÔÚ«îí>±iaÝþéüâÊž­Îšõꊣ¨¿ûYíZ‰Ú»"Ï-–Ï­MíúyDB§ÆDõVÄ ’¶k‡©4l•Óíê¾Äm$,pczÙCÐS.UÍJg†Ë4U—m>ýrdsF(HGn§Ìor±(\)±TE÷.ú?)t:Yk+ÄD ‹_ç·]<Å#ÍKJqYL Núf«ÁèÎC:–†¸ém5;¶\4ò‘#­:é u+eWq^ì¢aà¢í‰öègHaƒº,Z„µÒ¶€%&¤Mô=\ÞˆmVlƒ·Íõ{Ëï9¤I®©Ü2Ã*&±“ŠÝ¼Ì0ŸU®mÂ7Imæ»çv‹‚”*M7wóñ¿©^Ntø"µNÃ9N°(!!㑊£&C«Kí‚y\ß{S ݉B¤5-°#zß”ù¶½[´eGdcÙƒét¶“@¦áMëÒxV.¾Úq8Á×Íp¼£Z€[Ï~€fKÆçƒÙµHœ–/æ8§€¡ÍÀ°éV|#*òˆœsƒ˜ÒÝüÈzÜO±¾* K:o ¾ÝÑôÆðn­1ÂÔP& ÅE"u–‘×vïûLìiNG݈fX‡@]Ñ‘¼Ž®QÑõKæî~ëûnµ“/‰‹-›çòÉgÝѾ ¶/[² C«WÛ“¿±ùk¾ÊáÄ„Y…úM_i E]WôÙý<!ÙU¦©ÝØE?ŸÆ¶¹v0±¯÷‚é7C×*dm²BQ‹ÞUwÏP›Áº}y«%.i¡Íô”-iK…ªtX(sæ ‰Ÿ/~îØL¼JP`¬ùPÚã±[B³üù-åügqýn¼³ªéõ‚û$+*ýªBº\$#tþ 8õ¡«ÖñGáÈÇ™]÷hɲr¦ß͕§l'qÐB¸$±2XÞE°I)¿w|\2Rˆn¦ Š'ÁÇrüäMšaÚPæ"¡]gK’Ïn‘6^bŠúèixmÏd6!©ùYß·¼çÁtg¶þ¸?¨Êsš“ã¾Ös¶C Q±£iÜ ø–ô]ÈìEš à+ïÒG©}M¹gÎGûk}Cå}rCÏQŠÌx?W?[‹Zz_‚óán7<`€æ°¹µ"\ C!xs«Á3mŒÊ4­=Ûñæö¾DTæç¾#éôâyph€97I½ŸZ’¬gMeZz­áhÆqv]+§VÓ¨C¹×Û²†ÝÑ OF¦˜þÙJÛ 2Ä›»Ñ‘F\Îh{Ï6§¢JŸŸ¿¯¥2ïà×QK>/ÈÃôˆ¡])É0KÍl¾¿‹Éß—ío®ÿÎÚY A Âks"!xù›¡åyht$`1YI€5)rèÁ+_ŽûÅ‘H˜­<…²_whÓ¢±¡6 טƒœ ¶knÕmŒü³0åXóUXKêˆä)ÜŒ\Ç]Çgrž,Zâ7ž7Žm뾦 ØïˆY»ÏG*OQw$ CO)R¾Í]¸æ´GDÛ]”-æOf¶=”·6/bEY¡ÐW•Èô7£|d§ë÷ w䉡ø퉬×ežzØ2—•â®þv,¯¯ãËÉñÆ ·CìÄåBÙ:ŠŸ*»þã+y¡#š~Ü3yrfíîqEîÍkÇÃÝœáïªjÌE&ÃÇ̼߯ׯÿÑÜO±ÜZÄ*W¾½$â‡á$èÆŸë;ñªì?Z’2dÛYÛη齧G¯Ÿ$­[bñ­½6 ÔR,¡Â‚¼H¨õIÑÐ>ÿsÀͪt }Z¦‘†€ ¿ÉúUØû`>Ôv´¥xÆ EÙëÚÉaâõá~úç1U²ÇN™»u›†š¸+”@Ø4­¶:æQ€Ì¾Î73©ïÍw¡%™i‡_ú*ѤÝô„€m)㦌ÐÄÜÉ/.ä‚:–$•Bõéb?$Éeø‡´U8³X¶k:USõ‡ §¢Ú(H qK^½M3(5WTUÜÄú­”Hþ±S^ω±±O¥?69›ùr¶IóŒÕ-,Š%æ×[ é¨..UÇË»¶ËwE×Sç>.µĘq++C¾yÎ@?Ö_ŸaaÝ\”^ôÞÑà¯ñìµØüäT‡o(ÇÃÈOáõ¤ÌG—¥KyÓÜq1 ²/itü]~ ´í „&|,¦YÖ ååãìœ.‹,ÍKÙ·JÙ§k,='u;k¦KèWYœ¸ùíjýÖà[Êñx:ͪl™ëPÅTi‰Øu´’~O¶¥Q>¾M¾e¿4j¾5#õjƒHÕOµ0û\<`ÕV•øÑ­ñJd í þBíÇ(ø yÛÛ‹“\$¤ºWDe0Í)ïTNjHʺ.œqÔá |=£rù<â$ù|K­ÁCÀ¤…_õ˜^›®ÏÛ}Huö¥ædpêrá PÅçý:™!¯@-éæÑ§Å,U 4%±Ð¶øl«ïîØ;§£Â~Û´œ;§U·tjvS•_µ¼ ä­h ÷ «O­ûܯÎauérƒ`¶ݹµt÷ŽBý©]ØÍIç\Rò‰ìüi©öù¡×.HDÞo.JÝ8®d— “1"b$Vþr'rÙ‹«Œs9ä“àñ‚ôíE yo©IUæÈ@Kð›‡#¤©qrm"¦}€%g¾é’qÛ!üŽi$.¬|8ã¢È!sî+‰X8©o§Ty_pØâÕ…º’#OÕ‚õi‡ˆ/1¬wî“ÁçZVc;ßd—’ô©)Þyiåf¤›0#Ô:.I÷ƒ š? —Õ/”™ä½Èuo  s¯¿%ÅãÝnì *FkÖæt |Ë@§±äÀO§þºRŽPœûyýј ¶ŠŸULéý5Éâ±ûD¨Ž„ˉT3“hõâ;éMYßÂ`^(%y™áµßUnÀ@¨èúrº§×ÔÑCú":¡q‚3_]øðÉ!S iØ[ ÁÙpüÕª™5±È÷wÚá6Pt,yæ;buø«›K=˜›U~AëÅ:[Ê#°a•Ûï•i_¹çô¦¸ºX‚}f0[yŦGÕSˆ¾#îõ¿‚·UØ7Ž™õJíǰ‡N±‹ ¢Wô´­™€ÚGrÎj ƒK&©'ê!ó7|"l®úË4®¤ƒêÉì?°Ã…Bˆ15FÍð»*H×’~çK—bõ¼Mgb‚®UÔ•3±RPS9xïÌS~Ž2lOäe5(Ih‚«Ü〛Eö·k"‹ÚÙõn‘’_ð˜|Gk…ï¯oZ*ÈÝ×QÈâH „£ J›|Øm[>É3!‡ØôN˜~‚Ë9øãÒc„Ø_r¯owð¡2•Wt¯­¨ŸZ>¨âáí’šD˜ –«0 5ýLR1~T·Ü.þÜ{<÷•ÏR‚ÈB^èÜÖD27ñá=d98S¾iÏÜ6‚²"•VžE²×¥þ¼wP“êäÊ6 t°$¢:P–+úÊð”3$î+3¶®¤ÚbÍQ]ßé¸T^eËzê†ú#"‰n2k¼Äñ[c¯<Š©i©à ªò(ŠqlÒGE9Òa”fV¢ØM÷úŸ¢TŸë!x§¿—ì.‰"‹H´}9Q8aft&”ɳV¢BeÑVìÒ°ƒ†Œý¨Ï°³0Q‚3ûQ9ì.]}¬õ<ÞK“Šözw0$ñ½‡ºÛ9ºvöÖ+ž˜Ã‹i ¯ú „®nŒÃöÝŽjë„õù<}\eQú˜åÊ ‡.Igjv?*ïX}ü5ŽòPšr|Ò5–™+šÑšÇK)ß—í¨©yV̼ÝÙ„¾ØÖ°˜‹’bW¾^|D´/…8ŠŸŽÅjr65“TIûŒÀ”ÂÚ»¨¦ÅÛEÃI£IßëÄU oÙ4cyƒh(P+•I—š8—䌗öÕ®¤$ß›¢îÔ÷×r0¸³Ð–Õk–MrÞâc¼ó´Ô!ütR`>e&ÛÏÙâÕÎØýQ¤`gÐa?K‹ÄÙ~µÍ)”ƒÒ·ZôA\ÓKýõ%êù!BôPÛ®Ù³<¦ósŠ‘˜,!§¡c yÞšÚlðoê°»ˆžpC”¯ü½ß߬`G¯‹¾6Cekß'Ÿ+V`×Ê(‰K!(`áÍ" Œ‘gH¦Uëóü{a ëùçÛ‰ßõ+–+ Ã’!ßí·ñ B<˜1É`MºÓYÜ¿½‹úÊFfÚ8<¸sv²X.VÎóŽxÀëUÅ’ÈØ¢ôùêd¯×Q„‡yž({‹òù<õÿ8µzÓªÔöû|F‹Ž±ÅIãitwѶØì»Ë©Ê \İë ÎE ØwØ‘(5½§°D?(ÜÛ¢&vÍÕf¶‡?MOÌRçŠ|2t` Hj€OJ=íÃŽ@=¾ûÞXínÒÿKkò.‰¶Ä«ð¢ßc ‰ï§Î…A†w2¸u&Å&½-Ù=e3œ7ŽPÈêk="FÉ´%õ„bŽwô#W”C ßµ"›øBLt=—ï­PY6U¹Ìw6z˜÷a´ÁñÒ5¥Ðs­‹¨±øVJú°™¡oMœ­9–¬äT?‘ðÔâ¥ã_Òw#ÜÃ!¥ÊÕM“d©©{PžÁVkÖ«úùÑ ˜9 ÅÁšÔ·3ÕLÜ}íTI'>©î8ùvnŒ™Ôt8íÒ-?aûƒ™íÌÚë¢Þ¸ôµm¿!¸ìËg¢~ëešÛ¥ßkdTŸâ¶äO#ÎÙ½ ¡1:j½VùÝÙ^J’ …ï÷ÕÄ v*ÓÔ¥ÎTßox½GƒYWÜm)D]45zýJ¶¸ endstream endobj 789 0 obj << /Length1 2819 /Length2 20095 /Length3 0 /Length 21699 /Filter /FlateDecode >> stream xÚŒ·PÚ-Š®!ØàînÁÁÝ Îƒ»{îÁ݃»K°àÜíMÎ9÷{ÿ¯z¯¨‚Yݽ»WÛÞ‰‚2ƒ°±!PÜÆÚ‘…‘™ *«¢Â `ffcdffE¤ P9Zÿ#G¤PÚ;€l¬yÿ°µ8‚eï Á†²6Ö)'K €…“—…‹—™ÀÊÌÌóC{^À{g1@– ec t@¤µ±u³™š9‚ãüç#€ÚˆÀÂÃÃEÿ×q€°Ðdd` 5p4Z#X”mŒ@@G·ÿrAÍoæèhËËÄäââÂh`åÀhcoúކàr4(€öÎ@cÀï”rVÀRcD¤¨˜þV(Û˜8ºØ`%Èhí>âdm ´€£”%eò¶@ë¿eþ6 üS #Ë¿îþ9ýÛÈú¯ÃFF6V¶Ön kS€ È—attu¤Xÿ64°t°Ÿ7p6Y‚ þ¢nV€3ü'?#{­££ÈòwŽL¿Ý€Ë,fm,jce´vt@üÍï=Èh®»Ó?͵°¶q±öø2Y›üNÃØÉ–IÕdç”|ÿ X„ø"3:8˜™™¹ÙX@;ÐÕÈŒéw7[à_J–ßbp^¶6¶p@/ üÑÃÁÀp´wzyü©øo„ÈÂ09 ¦ kÄï`1Ðäo î¿=È Í ?óïŸ?é€'ÌØÆÚÒíÅü¯3É«ËKhÈÓý“ò¿JW€;€• ÀÁÆàäáxý·Ð?,þ8)imbàù›,¸Jÿ!ìüÏPÿ³4€ÿö%gž[ €úeÌ?2s0±ü?û_Gþÿfü·—ÿë˜ÿ/#q'KË¿ôÔüôV K·,ÀsëäÞYð&Xÿ¯©:ðïÅ•ƒœ¬þW+éhÞakSË r¹@ŽFfÍÆßbÕß{f ²*Ø8€~ß,fæÿÑ—ËÈ|{8€Gò/¼;ÿQÌÚÈÆø÷’±rp ìí Ü™Á“ÄÊÁð`o£1Ðõ¯!01ZÛ8‚ÀÙyLlì·”“À$ü[ô7â0‰¼ .“è â0½A<&±3€Iü±˜>¼ V“Ä b0I¾ v“Ô s‘~A`.2/ÌEö¹È½ 0ù7˜‹Â sQ|A`.J/ÌEù¹¨¼ 0Õæ¢ö‚À\Ô_8ºæ¿ˆ]ë- ^8‚ƒd²7r²úWÎÂÊùÂdi üWÎÎú[ EƒÅ‹pê†/lbh`dá`ià`ö‡Cößbû3p íÁv@ð;gâø"gûWþ÷¢þ«'eô/âÇ4²±Ïè¿ÔØK¬¬^’û=¼LÆÿB6pJÆ6––`ß_L/ÙÇ• ø_A9ëíœÀ—À¿^ÀüÀÃkiðG±˜Á)›¼x[˜€œÿpû[mãôgX°‰éK°Þô÷ üÓœÎKùØÁ½7s³5Zÿa–þ€`òæ@pŸ-þ€àz½$Á .Œåï~у«ûGFàËšé%Ø—5x÷_ŠmídeøûÖ5ýƒøa²y! öióÇ)p¢¶/jp [ð[oý_ýggùGúßÝ?L¶@{ð›þ‡)ç_2ÍKÙÁ…µµtú#1ð÷!&»—Ä#' Ã_·Û¿¾Ù mƆ/%úëÜo¡诫óÅ!Øú>±€KñŽœ²Ð ôߣÉñÛèüGó8ÀNÀ¯é¿¼Áéýϰ€³{ÉüN19šÙÿ˜*pù]lþ8öáô².à˜}qr0²±ÿ“>xœÿ€`Â.l)Ø©ëÕíîŸû g°'w ýß þë0r²7Ðñ¯Gü<üÿõ t!.ÌÚñ˜W´ÜT ã»0l LQl©'Ó0x,Ø·:Ý¡À'ÐT¤û¯Ú_ ' t¡-oŠQ_ -?z4ÖÀ5Å)6ß{>èÅ(Ml5#Îãôåë%D `PÚö|´óTó³€n„l—¢È¶sâFQÈżqéùàú­·di8pvKq»‚SúõCÉ$C„jøG¿ÂiŠÃŒ™7¤pŽ „¯h1N\Q§/¯¦0²Æž‰¥bè½#Øò=´ÖX#ogÜW¾ª°:tà‘ãi½!„¾Äž ôÙM”Âó(*_˜Ëd¦a„Xî%öj'9âÕ–‘ÄÀe¶´_àù0LîÕüÉO£ !}KYß–¶Úöeî ‰‹‹ø‡\ù†‚Ýíþ „ë`{:cYç(x97íõ˜K̓K郣ê1m÷Am“ Ä ìåz‘•÷Av^X²pÛÜžyæiÅäUÝæc‡¶S®Û®Ê­}¥b¿œPáóRPÑ0óRë¸(b.«0Ù?"Tð4B |ì¤ÑÀ[W]b´;Ý~b?ÊÖJæ–¾wwq!¨u³Œ+ä0Ĩ'67Š9ÒÂþ …’JÇ••7;P"]Å{C&$µd\.4Ñ,~9"´sÝ©W’soŒNfJW}w P¿ûî fZ+#ÈÀ§¡>I Tî+T‚C“iq“_«º/o7/'¨7_l$_{h”2;BòuûîÌõrøO¸DÔ7f¶&õÁrÚeé8"ƒgâ]‚¦J)ÒÅßtBF¢ù•§ü:žQ£¾æ \–lhtÇ-èT’y'kMujÍ» ºöW„WU}÷S§|¯3µ‘F‰Q»Õ4ÃGÊCÐüYÁëÖ«-fµ½{ÂàrÖœQïq4"{qH‚¸vÅz;Bwÿ¦Ï%j`J¶~ŠÖÕªag[³< køÝá22£ýæ×h[æ÷žœB¥;Y{|:ûLmfžcãŒ7…JÂ0?*¥§¡­Ò-¯t—)Õ—}qÃV¾{ÕçžDvÑlíNLÍÜÊ`mÑvŸL\ü^“.hv‘Ú`˜¾þD»@Eî‹hÜ—¯JPøŒô9-„×Ô?û´˜&²ØSuⸯø Üî¶ó}mžã Ú´qRWa¶À×´tŽ‘ó:üº¼_æ\ ¡ç$œ Ì~t<ȉà!&ˆq»à·ªËãâ{U×Ñ,ñŽbcþ“õ+¹Bȹ¾¸,xÝ_ªÅu•22κ ìpàuÓIîáhYL]®wX;rØ™ ²³ØÚ…J7>Vr¹/¸ïO°ìÑ„Ô3®¥œœû…‰¹úkR5õ—\ïs‹ùX›·±n´ÎÀÍaíF»° E<Ü ï²ùfIꥇvº5TóFÿD6™Í)^Þ‹ÛÚ?-¸/21=¤h·Í¹çËQSyGÍT¡¸”>)o+Ó¨¸ß?ŸMào|cíØö"º/ó™)²™ŠhŠ9ÂÔ…ùÔ™ôK« îõÁÂ3UBtY ¤¼Ç„xrH·Ázšz¿ßýÍÇJzž‚•ðt?]¶ÚÜ ûÊà—Ø4#â 7úlº*(ˆY Έ”o++7;÷¿Æè\+)¥•ˆæ‹ÂèVp<ò]­Ó ~9 ßYþN³/[Í[H­NµMñ$Òû¡ Á>vX%'0aGä ƒ Bo‘]´C‰æ3Z*FšætÚ¼ ¹vW¬ü}BWŸ¢†:¡lŠ Î*åŽðµ4ªôÆ2Õ»,ôt±59z^Ù]Pe¶¬J(Bœ³ÖNftq4"¨|—v/}ÄqíÌ’»a¯5ñ³Îî-ý JŠ\†äÊUmG õËÊ.6Reyªà~êaI™Nºl$! ·8ôø ªLÆC”½ï€6ôàU·#Ññõå¸4Çé?ïæÃÀ‡Smu鯙éÂu!©¨DI–ZK„-Ö墷ŽÄžE^wgëc¬\Ínú%û^Í­¨ŠˆlƒWQ¨`J5Y·¯JC²UÛ'¾1ÊßÁª RèSxP¿‘îåe=Hóä¶»Jô2`:oˆ=L³»êqoEe/4=„¦öÐ_doXrP®ØÑ'J\1äã*w¹{×ä䬯µz>œÁÂÛ9Õ¯š•‡j»è4½ß›6f‚†b„·9ò¦íiMÄXojClbÙÞ Õ"²üªö²Aõ•†8¤N<ö~;î »I¨/@GʬòÂCóÄ8KÇ€À(Ò\,¤¾_diwÎ’…Ôx˜6&Qƒ9ÿdÁ!°ßG™¦™s"Zp9òÄ-z“è,Z¦t߇©ú±§/þiC ^ž¤£ôɽ/ç{÷1Fî/ÂéŽútI£6û ûñ¯ÊË}?¹céo“x>ù”Жï¨¾Ž†§at”$0³‹™{ &¢e†Î¶ûåÛTå[ñn'@û»*B/[qÔj/¼c6›gÄ ‡=3ôy£mßüÓý<7üj‚z2Ý{™ÞÖ–Hå#ýj¬¸~c—x|ϹäRÏîLõé»TmZä! )ó²£yÜyk‘Q}ZhÃÁ‘y¯ø¹V=*dl w_«ÑP`b¬ïZ .³} 8LQ±É{µöbW¯õlß_éÑlÛ©ªõÌ#V’5;ý¡|Ý)†gñÝš¾ ž]Û“Þº÷ŠëFb”ògÏt⹯‚§ŒNý"®& Å]Ôùî?§ØÐw àæ‹ÈXXH×zÀó˜¼25} ‡´Üó,¥lÁ÷|ƒ"Ûo@ûešü*„°Ý™l¹îÝ!—ê¡ÑžÏHw|)U=VuƒêxÊ(KxêNú¾Ò'ø¢…gµe¤âd9'8:žçETv.ô0·¨Ô]O««ÈE~È]¡¤eîƒ(6ò]zñž_´žÜEò¶? Õkù ¯´Ý® |º&ná Fï¼#ÅN€|€×ìø|ü+}7dO¥ÀT¤Æs!‚GõQ|_ªBCÛV§ëõ"ì í¨Yø|göhGlÑi *·ïØLœ{ÎÎ6™@Áo¾wPq¸¼DÒa|å—w9êÏÃñ—0äóA¼¸†<¶›5âºÆ©"£D³RJÔœÚ *´Gì$énšúT²µÔЯË^U Êb–*“õ™Äøªš„“¯“ž4 )c•Úzľ¼Ö)b•ñÝìà„A:4£á¦Æf1@3ùt•G‚ÛÄ\{âˆV/Ëß­Á éÞʲJÎIŽ]ïuï§Î¿Êb¾ÚàâÜy$oc¯BVÖ|ìËlÑ;æ¨8)îÚ4ò®œ œzÖŠÕ Qo*03ƵWD²ü ym|ö‰ì|Pn„¯ÙWA£u ö´G ²ý)áa7¡Iš>ž´_0-#ÎïjÓP$kl´ÿaŽÛsyéÃXæ•ã|MHˆÖ}ëpF¬Á«®Ä£pXÙ,$‚¼kØëè‰[h8ŽdDÝk8‚× ¦¡Êí@m÷Ô,àÄg/ÀàªMÒÝûC$hs†»Ï¯zå8/Ýò¢… ?!„õ"€\kŒúVôí—0(í;vQ$÷á0¢ð¢õÞ¡¿òCfQÞW6†½€x³¥Iþë³>M^WÙåDÏ›9^ØPœ_í è:¯o”0tÆÅ%ËU,\OÒÌM 3%âŒ_1Ró"vn—¦0†C%QäÙÚµ—\¼ÃñùúNwÏÝ•~ÑC7vÄHÇ>mƒÓ¦¼>°¶ñ2§ÿÇWG‰8•eÑDZ9@‚<߸݆Ÿ÷-9–[C½H°Œ=²¯‡€IGÝWr*€øM¯íå'Š[Ú0Œ»’;Gc‡\œ4QH9w£ºæÔÂ{ŽÞ#>ó] ™@À>ká´q)d覎¡ƒ;U{?ïÖ˜ºpMIÊ;ö7tˆPN«RD*gweqÁØÜEšëõ8Ö ˜ãcU ~¨-7w¯2Ÿ'½ã{°s ¥\¿%pÏõO),­3â~ôÔwZyÖÆÆ'®-¼ Økdë ŽzøÌÕõqÆÞÚ?PNЏvÿ)lì,å1[¼Ìâkõëo°gmòæíI­oËW·éjàÕogÆŠegÔ’ÂhJn’Ï;×àK¤N5ÕN‡Ò¸k;X:áŒÉ¤dXp1ekú1I{Ó ‡;QŽÛMŒêǧ²ìkZ+^ó›ZzG'ÅphVH ø)oê# çùêÁsÌH8¬ùß_.c÷í3m4… [¨¬8m›þô‰Ì ›ý…æEÅn™0¿%t[Ñ®'/¹ÚÈ…—6Æä­ ãîÆ`l?òÆÙ?§u˜øƒKjuböô&`nªãºF9£x“*ë-¾»^ãamþ”‘…‚á+ï>?ˆyD未®î›‚wüMÉ©2’d•O aJ%äSôùDþE‡LÙ»"y‡~”bÉpÜßR¾?È"¸¨^§²'Í/öЧ¯ ‚4õWió:štv²1y´õÞMøîËMü?ÜüT·EÇ…“4¿âg½×iZµrÊå¼÷’ßÃcT1¬ÕBŸiôNE×c UË­ù…— WƒÏ®´GEˆ“W=^»²Ž‚‚\l(•©ÞIÙŽÝè©®E}°?.!ƒ0 ´4Êe,ßýe{0ÀN=,Ð æ ¯b¹ 7“×—Þ™ˆ–T–Ž(ÙmonÜGNò#lrG„ÙÌ *ÃǸÐÛŸ2D†ÓØô¦òÖTÜØý%eå$¸oŦ©øŸ>³à‚6Ó}¨ðÎ ´ú–;ES_¯¸nIsF }U&…Iñã]lGÍÓ°ãfÌ4X®¿ñQ]ÃÖèØ¡òQŸûÜur|èxäFÓ‹6Õ}O¬‡`œDgYªBêAâ¬Ôs¶W“_ÂÉ |m—¸“å_böiÕ”)ŵ9§Rnâ¨oJ•UðÌTô–¢_)™-¢—¦$¼´¶ÿmo0}ÛÔµpò±’Â01¼‚ˆÿZ]r+./yí@?ØqT>8V¡/Õr8êJŃö#³Êë"Š~‘Å­l¹l¤jAXæø$[¼ç£'™“šxš*äÅ·ïã äà¶ÞøaØ·°ÏÅÍáÝ·•$uÆï8Wp`}ƒÚoJçb÷¼7Q¢«7PA=;”.iÄp>¥N[Y…ù¦.ñ‰•UÈì÷è¤Kx–)ÇuUVÕÈ.ûÛáÛ On†k ·v*;šûPK,wP.«ñoS6ý×EgÊœ(8·¡Û'À¼_í$l¾¯D4ULÑ’aà᪼pTrT ’Gƒýƒ³JÇ L°Ó¦M³ š§ŸN4 ôèãYrXi„gQÍUfÇ”¹+Ð*')Ï)mÓïXÊáÎGbšcA¹´:éõB¿!`^}Ö¯×nÕ-Í´»ê£xzñÍÉäb#ñ”JA&·yCpÓμä4…q0ò uªš.³.Gãûá¸}îFs1'¥Äx¼(Ϭ•=¬g7—}5Æù‡[ Þ 3)û§:þÔ¥¦t»zj¾yW¸*ìÁéúJoü˜ÆÃí\Ó¼Óüü~(Žô¦!žKФž‹(i1uÕ ½1Vcè§ÍnðÛC:ÕÊg '×¥w–ë x[ì,Ü` Ë qø89´ùÊ ‘GÎ0ö3³ÈhÛaä§”¯ ¢‘–g]',¹h¿ö(txòéõ$é5Ä}õZ[ß[6OáwñuMö+uøye‰Ád©õÂÌ=ïg,ŠôBCívtyÁîÓ^>ì,%— ÕÆïbe_I3Õ·<}ùfÊ%9E@Åk@Q}4Ý•¾½pðb ÇóP¦qy+µï¯±‰ bs WÂ`ƒRI³ãˆ1ô$ò>¸‹åßc½ïàÂ3öúì—•ò6_FcZžsçž JŸ—xlú´ª¦½&¦ˆ¨ û”Û4\’üò}Â󰬾›×‡ý‚tÜAA£ØeØ物Ï\ëÒ¯I¸E[#-!—‘ l.‰Æpjgœ‚¥ë”G˜µøK[Îdu3mÄ Ögã‘ù5‚ €ÒȺÞß×ê}éHPÚÖø­>4:G¸™2ó¼+¬!%bÙ+8úXý*Y‡¤ì€> "©R>3í|†±Ü­Í!FPj¶p¶$÷,]2ÛÙž´"*ºBLØÛlJÜ)Kqv?ÝIëýt ^8eÒ/ú> ,6¼Nn,U£ª0p=Á&Bê¢]ÁAøžÙì&»%*z‘RÉ -ûkò¦©Å€”7f½ trÖ¼¾A°“¾-\!êÎèÆ++ºèÎqšI»GhÓ“O´`BÇÀžssFã9@½ªE4,Bç*Dñ0DS¿hG_JO¤bȬpÚît“‰„o€ñlì;~;mO»Œìõ×ïÇ;i†íñ²ÒxI†6Òi’ÛÖª6 ø.3¦„gl±3ž1Jmv„‚è'¥TwŨÛÊw³6’³j{à—t@³*¦ýaÚz«Zµz‡æå_žâ9ò*Ѝä¸]Peƒ)àéÄxÃCI ¦JŽ‹}Öã \qøÆ4‘"õ¿Y!]Wö#ÎŽ‹I Ö@vïè{ÞjYv¥±mw…LJ©ó«Lûæmî °[ä‡J·õÏYµOË_ï`+²¨ 7¤xÌKØ üMXåbkyÙDE£ùäÑIù}pú¿ ò´OÄN½é÷Àº»“j­»¢ô’Ù¶vÊ(ðy“Ͼ”¥¦=¼Fǘ«÷Ùp¿ˆÜñª4šeŸ±Îk`öûT§ÑÄC…ÇÏR~þ4çÃëå†Uœa÷Ù‹ þ»×#§‰ýã_V x†íá~¼©õ#M7ôw¬KL&wÛ/™ÍQ;è¨'¾éšœ~÷ee“:ýÒ‡X!O$¶^–PKt /-T>s_ÙÏá€ùÛžïŒAn“ÿèlGÜ–r@ÇhÂ5ƒWˆÿ«é>œ†Î4ZÜIÑò(–þÆ@áÐäU­Þo?áËñìåc¨?¼zýÖ:ƒs“«%*—´É±jˆþþQ˜ˆÊE¦ r‹£Úœ4aBÝù››ì¨¡‰sZcÞ-%ýL |yà'´‰º–Úþ&Ÿz°)ãŠ:\j(%1Þ¤¦<äE¨Q‡’²wÝyýµ½©äûwïfa&tjrv$-ËÝ.ŒÃ§´‰ ýÑ›Ü'\~òM˜Aåó$Vìi )sbxdÄ Ìdh~•b·Àvh<¡"·§KsL} Úæ¢  Yµ¢ “QVœFޔኣ)ûfzå[ï8w3SGÊÜÑòlFK{¤Ý@D­Ä•¼òçå"¨¸4k•– TBRKUÓŽÅÖèŠÕƒÏ¯møõ³æWH6ÞuôŠnŠCÓo–n’¬G7X\o=ÖÔ0÷ĊȦ#ÿ¢:ÙÁ7u‡%¶X¯.4¿mo19áÇ ïãÈþ{ñæ‹ç‰‰a6»Þ`Š)fàÁ»3ôÚ-ï÷ŠâxõÙ™Æqj-•ò$à”tF]n>¡%Ðæ3Ä[v)ûŠ?EøÞaé­J8”$q·³ér`ŠÅ{]—“3b‘K.”õÀi†‚¥ÞwO/“ÕŸ,âLì²§<>ó~"Ÿáë”áåNTÕÙÓc+`§ö&5+KÙ=_òÁ+†e} \רk'„Ú{¶[Eêè­\aæ›Ïñ·ë¿A>°²§M •¿ƒZýAµB˜»H䟕ó®ZÒ ©‡¡ÙŽZ®{4HxêT_¸\ÿcc­óE¶ç|tûÔEÉ£µ¾=tŽºgáE~mkÕŒ°<_¬É)éŸ Åm€:–){»T_Ÿû46_IÑ5’kãÅG½Õ«¨^W2È2ß{’ œs´5ô­*"f»Òëô7|Õ°Ûén÷Qðb*ÃÑj ê×7“p˜ke&Æ´¯r_îãC FÛ©˜ç1ÒkoT噉É^×Á¯ªk»n±«Adó™¿M7@Ø¥u§áá~L"mën·ZÇ̱ÛëžñN&”¤ACEq– ‘«(áüv¹ÒùÄ—$¡¨ŸgP‰g5ú¡¥SGÀ’uË£ŠØí¾öp}tò˜eÓÊ«-Ï2ÕÔÙ~SĬHˆ.æˆ\mE GqD ïçðsÿ)-¼ãg½1Á7|ÖH9þŸ$å|‘³²÷—»$_‡‰Ñøê¢tœkZ—Ý¨Äø#òÀx‡?O~Bð4ciº`îo%ôs|iMîåÄ7!ÍÌýT8‡Ë§[ƒèÔ€¾dËT:!ˆÛ;RW‹r€³¬» `¤jW¢_ ½4¡}G?§§xk²'Ì.3úÚ¸SjLbäQ²ËûfmÜ=£DF¯i¥í§˜ÂSF­”ž×‡ºs°çÄÀTåÕBÖ$Â-Éçƒ(¾&ù&rT¦vgÄ1s:7ûد¶dãHDŒ°vù¬¨XĽi«Z”Aº¼QªDµtÓu6®ßëGW®ˆF>ÒñBbºÍnMWƒh²™Ñš‚˜;œ§Ë¯—mȽüÞ\'ô¸~,{7Ûäáø®!°‚Øø6íÈå-¼LºíYovGÌàÍxc 0"õöç^ÐŽm^¡b©Bh‰3õ׺Œ¬’A 8$§ò‹Dq >óFšNÇ:ÓÓ¥•°ÚW¤}s;0q®ëu:Âpc¥=„‰_îžŵ¨zÙ‹ÈüÓ#žÅÉîçOhKÔ]< GW» ¾ÕãKßÇ,fÖÒ À ·Bwˆ1¾ ß6©†D€‰ÆÃóž×Ãli‡iÑ Àä?yF‡pm¶Ç/qŒ·-Ï®Æf=Ÿjá+±KSÇ;#/w\4ø²´µ®¬€üš¢Ó¦™Î›g^ÙV.SœmJ¢ü¬)€ïüOu&S«k:˜QU³Nð BpÙ1[E|§²ýÄ«á #rÄ I1®ë“ßîmU»¦vz^÷U1 ô=-•i“‚!îVŸ`¨‰™âçÒÜÅÈÁWsÌIh9Xö ’Y§·_zmŸjsõkP‘n…ì¼ÙƒN6ÁÙXík%LçÓ€Dœ·hð{e ù‡«Ýq‚0„É4ztW)PmS½rËŽä9ï$gÈÏç~O>³zB“"Q‹Ñiþ:±¼…Û²  «<^² ·= K¶éúã[ìUc‰¾ác¦Ûò©&ùáþfYí®†^*èÞDÏÑK>ŽG—&í§‘Wê÷ƒX‹¤.°U ã”0.…¼]ýË¡ã)sßIˆc¤Z‘}ª•…z„‡€GÄ¡[C¾ÄH¸~@ŠùÃLç4f]ÎRdÑ¡$cµ%ôÚןqºw“Õêo¬¦Qî“̶ÞakkO•Ôq¿ákõ]ÕÏP6ï2á§Hˆî(¸óyžU"Â6´ß[×Ü ôžµöZeÖaS9-‰ÞõyŽ®ZÏú•ÒÂrÄy“÷ܯOÀ‰D; „¸û&Ëâ}cŸu]÷m}ñ´¤aØ$‹ñÑèS èÑ„Š‘Zé¹ßœl€róéÒLüßAÛɶò‹ÈóÌ'ø)CÃ5—l¾®¯ƒ‘Uä™:Z¯W>Ûÿ®o¯tëØÔª%£F›²ÔE#yY=¬Iö$s¦ˆÁZPËš9Ú¡îoÀØèË~Iv…¤÷ñ‚‘"½ÛØ,AûÄ ¹t5Ègü ž(²ñ‹{§¸¥¨jí Ã™º“söI#4&3›çª3ú䮾|væü Aû×È‘ 1WBRý‘Ÿ¡³œÌ=1Ž MÙuåGåXŒjÚM‹„7NC—®ä'¦ì«ž‹Ã2í4ê7Ëg™Ðèâ°Ñ. Û´)qãåâ±Ú‘¯ïOˆ`˜9¦]ì“QZ ¬N@ö{óœÆêu6òŽqøò­í¿Í£Œ‡)4¸±ØRØ”^8”–=°]ÌÚtŠÓdÇÀäp¤CÅfZ¨,%p<ɵÈ.Ù÷h’4>ã%-“åoXÓ¼’_/Îr¯ÞÑ.£éµ[OR¡â+ç‹rAš:‹õÐÁ‹ߊž ÌÀ¬³1XFÍTŸü)™ÉÎ*˜ó‰iô =¢â+<–Op}ÚÀ¸„V³¨ñ½âÒ÷{ÇcI‰‡óæØ”°¢•Ås%GOº‰Åθdtñ*Ý¿l‹ÇW2Äi®uÛCà~ñô,¡Xñ©AÔúD— ì8ÓLížè(‰ü!ÁØ)èêÈÏ(,5Ÿ{^ /’ñœþ5?öÈÌB#r…oTö'1M·YéÒéȳf¿DÅ"óq¼rOæ«îu×ÒÚSŸŽK‰²qIõCVK`ÁÉ”‘Õ‹âZr¸kù¾uáÝ0Ë![Kâ¿fí\éÕ®ä®l"‰ö-Öì5š7à¶ÔíþÄù(QhŠB‰ÚˆßCKvßH2 ''Á.³cäþB 1I·¯ÛG*>ƒß«Œˆ¿õ†N>ABö¡JÞ^l2܃wÞ?l‹³QÃù!uÁû|PgNÂô骪ùQl’ÓV£%=Ó›KœÔØ»`ýu¾Q: 1vÄÁJÓé~ò½¯øzcÍòu³ÏgZ %!>ë—Ë·Êt*]·Q†p·–®ÞšÑÈÓU×mŸêê?ÅÆž)¾aì3åf»?‡¼×uñY¹Üé,‹á`þˆlF€¨½h‰)^íàL+¢ôä}¾¶)Ê&šGéò÷7-¤øš×Ӳآ&M²Žê ëŒÞ« /:{»lf)¾¡c$‹h¨`7LÈ0¼'\bTÛG…¨箲Yd?¡a]¹þzÅ2æ [W Ïäzp êÈØÏ+F´_»:õÊS‘±s*8wÎhÑh?-ÌÎ¥BR6°Ñ¦ðßÌ5ˆÉ(-sK~é€õ°½Ñ¶b¦:VÌ1?ë¾9úDžCR¹#R¯è—âÛF µÈ\²kvúyF¸Éý\™8£ÏìàúÐS:ÂÊ5>Ì‚…·ö£c4ub»©jlN N•Š¥j2k‚ «8"[p™¥#a’ÕÏgІ\íyT],Œ¯7FhƒŠ‚GsÏdºy}é»ïËT2ù¯-{#â_…µC^KYŽËù>q £í´‘ž¹£Ô¡º–1pïPŽD²÷08 î%óŽI0MaZhÎú—' ÄÌ»l¶í>ÜÂ3ôБ6ÜŒ¹ôW;|‡SJ(O©ÝÉY-ÐE>Ÿ»m<#÷bB±Üd=> ÷ÿA5}ŸËÖÝœbCtàb†Ç»€Š¢øCÔŠÆñ;9s·äZŸTù¥óWžÚB?2E.Б|ˆ˜¸™F<‹šCµ7GJ²Ù`®í.aŒ´í´D(¿)A,9ëcY¹ê,âW²éÖAk-\l’ê‚\k˜õQƒYkÅÈÕ {™©À®>aýÕEö÷Ε‘±´©æ$¤XâV»Fé’éJYù‘Úé¦OJÖµ‚´cm'r·©‡œúçW‘AÓk ÖþgvLïhÕ^×%Z¼Íjד;1BÓ|/µXíVÿ ™%ˆ§îÝL‹r*)ÀÇÛôÙzÐAµ¡öA™2—$,åñÒ«‡‡’ bù¨}µÊB2°CÔÉ=U?tt»=²bn¦©ÎŠä=iS\jCкH_ V±R°® RÔÎ/b³6Öuæ-·žcVvÎúÛnGCL¸SA$Çj«²AÁ¢áàHêú±*à{œC¶õóè6?×É-såiBØ ͆³Õf‘‹Gí‡;Ûù¶‰hzÝéÓTÜÞ[@1»*&AƲ™¹®Ï>Ý^Pvè&Þ]„Ýç½g~Š–mZˆçâãóœeP$Ø®¦Y{qý(A§â Hí.ã’½:†hôѰW×4Ï“ÍA=Z;šl§ÇhçðË;QQ<Êêi¸6KÂqÙÃ?­öÓ œµ¡’œs/ïON*(H/¬]ßfþšïщ©è?oéÔü¤˜ÿÞæ’á'ãgETÁäE¯|5¯jUô ¾Ÿ(ŒJQ/˜«>÷Œ¢Ð]à EwAgr.iY\άàtâ®,2‹¥üÔ7š7Á{öN*ÂLyØßZƒ'—xÁAöfÑ)ºÉ"˜jß«YsÜnQ‹°(*pGž>=4“Ÿ_×#É~ÜY¡ªž’W¢eê+_rz2Á‡¼ˆ-N)?˜&èü65ÛO·œœù‘v¸“—R³hÈçÓJšv†˜ÛáÞ)³!=«¬…}îä†ß½;Ž6nË~Ë2Ô2ùßdL³YNÒnB£’—#âBœßWIYD‰ ~W´Â ,º`5üÔб-H[Ý™m¼ü3[© _L‘LlKÄíkÔª‰oжQo´UŽÖ–_y+ 1¯6œ˜WØ<¬Û~¾_YG ëþBÐ$Ȫ"O•_ªƒY°¬ ž+m.Ö;7/ˆ·Ô´ —#|–VµÓpùVV7dêf˜bþ’vÕá %åù:6ë‰×1¦Ôy×Ý ë Çbj³þÂÂû®Ç¸óŠ ‰§ ª ½¯H„fÝŸ“/ú YÝEs¤kl´ÙåWÙj¸€%nùº£!Ø?Ôç~¿»…éî´~õó4³|ËG©†èÙ*¡³vî™ þG?ülZÁ<ÂÄ$€Ú/ïªÌî tñç@\ƒ f¤JV§ºø["¸Ü÷AÉ!¼Óþœ²Рr®8ù¸t‘ª2ósÚãšP5¯þbÖ·Ò^èߪ·',Fë NpçìNÚÖAYª{)0tóèã¬ÙÖEÚ”©ùès¨È•'žG~BM§§äG»"ÊsÃÑ v5ele¨S<Çзcöêºv1©¤L3ut†ÒkÐyxXƒJv~p ªc¯·V§8T<>y)3$òâ•n\IÕ"\ãys¡”G0*“¥ F¹à?ë»mǹÎÞ¼•<r†ÔQ[!Bˆ[Pà-ä.±Â¦ú^/RçhJú6¥}cÍ,ûØÄžæ\]fšÅˆŸb~P†L懾Ô:2H¨• af 9Ç¿hð3ü¯#Ë0=›Œ~¦Ô>¯MV~Øüñå€í%Ô«~»|øA0|¨¥¨9\ªÞyEÈ{ñåËâØÜP…!ù…àŸލL¢ )Qixânb›òݹX]¦Ü½ßºèÊcót)bàg Pt(C¿^Ó‰©E˜vŠ6Žx;Yúzº¨Ð•ÏU¢m#¢¸¦ no~|êÜ"”Geù1ÏL-úè‘›³%'\± aµ“mR/Œ®à!‰`µØï ÷ƒÚÙ5xÒÅ‹}#.JÑÍùC¼qÔoæ7±!sGþÌ‹Š)¥Yj!ï>§Ã)w¼‹;Ik¥x݆­´”tÝŽäËÕÍE (µÄ©‘¶°¥¹‚áo}ЕÝã„^>‡jGgÉ?ZVsÝ Ö9ª‚ŽåÕ‚/—`ô¤Wóp·æ¾cÙ~Ý·•Њ»X®\Ë„ |Æ»¯"%§Ø#Q™ž´IzÏ"•}ý$ûËe~m¢Ï¸Ç gYÙ8ì3ÊVøË&ΚÓDUÿùAŽQgˆV¦Z×@@&šjâ¼Îò×ÓïØ;”NJÚBym'ÂKá,¯ˆ_“n0†ß*#oÜkôÆFQj~rÅRìimë ø&Úmƒ¤ØÙr/àWV/ûV°3n +j¶ÁJ?=¼Þw‚þY¢àÜõ¦Ç¦ ãÛíÈ97 ö™Ot:‡:óÑöW¶ÚÌ¥«øPZŒŠÖb¶ŠŠ,ºØžÇÌ$>_(ëŽ*¡•‚§hþ÷´]ÔB¥: ì¦>è£ö\WHD¹°Vì'D¶©\¼ú©ÍÔ{È ÉIÔ\ñÎÞŸkA3™åž–5¯ƒÓgkZ=¹ÍTèÚZß³2ÙMS`ßSŸšé8*·‘_N-uñ“£°‡Ém6"ê‡Ëí4ÿ;ö_;i+dYS3(¶†z÷Á2)7úÀ%R™^íqÝV†#ÓŽë@uýÄ8WöüWÀÌ­o7ä÷~8i˜Óã.,„y âÛ9½æ'L¼ 9k 7 ;ìdí”m}¨\çðÛbÜ}Î7_¾I}޵‚ÕòÙïÄê€à&¹åI~xlŽ 4áî|e½ÞÉÌùʘhµæùæ#, ô¯ @!-q_]£çØêà–D+˜ëõ \•EX'¸ËW=©Á¶# Ð.ƒö?¹ÅíŸ<[žÓBdr™ù Õl.÷®LÏ1 p{ Ñœ8WðšÄº°Rq‚"X]Ç=éûÜ{6¾ U•žÌ†IÑ*ÝÒOG Ô:˜/°À•X¶>Wõضžêþ<;ñ2¿›ÝÒ«ùjyà]sA’ñ ñšåС·²Æ¹Tí 4µ7^jpé9B‹“„9."!›ÚG¯†KÎf³!&†ÁÑû茽çTTc˜BúúÄ[ ÝÄC]Þ¿±ƒeÇj(!‹W¡ú9ÁW£ÿÊ•­á`ÅCƒ[ǧ^î+ÎÚ|„ª§·Jí¾úDíHe³FGNͺGÞS åk6™Á6C¤Gû\K‘%]i5©>?C*œ<™F ÷xWK=öµ†äcÔ÷ ñ[Ò0N¯û¥¦}Á´ }Tï·|ŠŠ<{bݳu· STÝt*Qx”í94=r³˜×=g•|96s(ÈhbØ'ŸX>ü¨·„e, ùuu/a¥y|dƒq´sº ;!tš¾'ÍdðB†0Æ=(ò:ÖPÀ!VÉA÷HE²%k‹ñÀÇÿK´Ýdwa—µ[/ulæ4Uq¡H´_oöòØ9¨Y&ø»Ä~tž;™ìš\í˜sžD/…t×¼wW¡ÆÍÏ«ACôÄÚ.>µŽgÛÂi¸Øº¹÷?HDiÖœƒ ¨ÛÈ'…ñõî_2ºÐõP5RD=ÝÇPT/òñ+—ŠÄ|‡ü*Âl4î‚5Å¿6+¿¶;Jö6äÙ DTâŸ2„teÊß0nÍL4ðt‘g{Xný%!£¬uÐêz:ÿFʵ§õ€nž$Ío2.úª|WLQ+†ÉFäUÉé}käu]K&e9„,ÁæøõR•ú[ªP„F¯ìç{µ-(¼Šù´£®è»jξOÖ¢ž’Ѩ$E˜;åèæÞ¨Pxøð +ÚNóãØ˜ÜȪýˆ@h[îÑM–³‡)Å9­»sÒ„«0ãöÿ5ÎmI’ˆƒ¸G¨éŽŸ VfNÔ ý«³š¨^TQ›Q0JëGÀ›áMcwÛÄqÃIÂøWϾ#ÁQ×´ÇŸýrKܳ Ì`Ãq&ÊQ˜_»|LÇp±W¸2¹±”±4›¦f8y£&yª?ƛԴ¼Æ[:XMÖ™M6NŸÌQ ¬¸ïœ^óo°ù\TVzK­pZÚ‹¹¿߈ÇêjNÎ}?¦Â_wj…™§‚.@%éíQvaó›Ž^÷™v­Ø‡')š´®¹Â]‚—–þÉï¡gåh­^”Â"õ~]€Þ\û–_HèñÍ'#+»Ù¾<·ÏÞ5IùwA&®b>¹ž0TÅ×óâK­gTn;8QLwi¼hˆå%ž~ãÔ½ë8Èñg<]ôý‘Ûæý\ N^èPžÁîÁr†$"{jÛDmôŒÆešã ÒÄÈOïY¢ås‰ŠER"¼· üž€þ#Ò㊤W_5_­Ø“ñ@ Þ;~_Mºf†›)ìn²-)–±e™C¢ûÉ…d1´/#ÞÏan?Œ«];¥°Î„뿎µï,¬kõÙ#Œœñ;^=óŒ1 A+°BvÏa>îˆ(ÆTð>ŠoÐ .±Ï‹ùƒ³êÑ@0FÃWØþÿÊ5í¿¦ó¼•ø{Jmq"ÖÌôŠ6…´ƒÕÚ~øë+͢ߡ„E4,Å.ê?a7åú4 ½Éµ‘ë!·.4j&l‘»‰Ää`,•tþ¾N£#´©úi´íY Χ"Ù­¸6ëÅü£·eˆîFE¼ÒÞfµÿÙâÎÇCM6Ì;ÒÕ8–w¯m°}C®ñ7Ä5’ˆÞ$Ø:œ-r6dÅL— „’u Ê]VÕH+njæˆØ‡úìÌØ¡?“r9/dŽÆA”0oÄ ˆ\sÆÝ ×ô²þÍ. ¸Ør~k[V”jõ„Œ‹mJߣվu¬¦ÛjZ’i 5­ h[Ñ]k–¤¶”¨€à'ðÄÒíäJk®ÚÈ”°=Ä€j]*h ×Þ©÷~–Ôì—4r•\|(jþtUSÉ$ÛÚCà5(ÐnBº©‘J„œÁã™âÉ÷ $Às{ƒXÿ7$4ƒªÙu‰­³2³œqTмäÔÅclp5°…j˜ è,aCV{ˆÎ„&ý(n€_¿—±¶ÑqYEŽ…5æø¬ÛªfñFûh}Ü)¥ÿËx£CÏ:æ}+eJƒ.•àeˆ1Á`»ÇI…Fz_ˆùÓ¢Ÿp›ËKÚÝjv56ÊŸ¥ž„‹.]rXºÿzÛü~´™Â;]Kf3ô”î8…F5ب҉¬¯º~ä Pï0‰ŠX^í=Àâ¢dDÍ]º‹iÞ6„Qã±ÒPð?|{®Ò.@¼1Ÿþ ‚_í ÛËP|ÇøúNóds¸à í’®Öåf18ñx:’(_Ý´8°«h Þ[ê÷ËÑÂk}Öã …åUü9NRÛ%ͪ“ÞÅ£n›lojÒêXô²šÀ~ÖÁ›ÈñÈýß®Rý¥õ.’rè’‰ôå•¥'§c±ê`ÃÌÎ:sÜYÛ… ﯰ–ðo>jy•¿Èc'f0ÛJtIóØÇ…ëíièˆû¡âëÇ1’¶§¸Â“Ll‰On Ê•´.ä~ bUš*±üÊ‚ƒåAüÝ‹ä±w—†ƒÎFs܆â„Z,ê!–YîÌ¡A6Ê *_)…Ó«13 ïbP8 —Ú€kp¼’qµÑ×~ ñµI¨½E Ç ^ÖAÆ;òÒÕ³iSC¼õLÃcÄžÄ\ÌáC£ÕøºWŒÄúPùsAI$þs£¸q¬ê½ôÖ:æÎÆxùsG¢dëÐ{¶‰¹xqÍŠ²¶Çº“ j÷FÿbÜ!T/‘ü¤ú&ÂXJ½[ÄQßÄñÜ…¶|b,ã—Áñ2¾¼o³½‰ŠYÂx©þ%¯;¡Œ£XnÃ|=ƒšNã¨S=î;8pˆÖŸæKéI<¿ZN1ûz—ÁÞ¨0î±²„ÕºUFåý|Ïß\Ž+@¸Ö•_“œWEÓ›ÞùJÄwÜn¯±„–ƒ§u†`¢F?¤?YÓÅ¿qS-7&Ã7z[’¡ÄæË¸ØÆ™¤%L‚™†ÔšŽ_Ý“¼ÖW§×c_£8ÖWÜbÞBþD˜%›Û^€øqJ.~‰BƒýÕɰõï–8 $é¹î·ˆ„e]’óñW«ÀÔ–2y§õRŸ]:UaÆúK ×jï¥V:P—“ûZÒMvWEË%⸄‚C¨DAy%Ï7oä5¢±„u-àÜ])©Ûö×祘ÇSTLJðSa'hÏÕnLÿ€ª{HÎJ=ÁòÏÁùúá‰`™Ã+ý*ôK"†ËôVb©tb HM¨Éih5ðF\¡¨·ªáµ[Ú­.w?ÿU2£hÇŒ–òØ«Ùy‰¬Ú2´dgE_`W^Ã<‰Åˆþ›*Ž9¹ÔŠHÇììÕFäa¥00"ÆÆzüaqUˆÐ"uqtø©ÌzÞS?¶ØReÂ4EWõSùÒZ0ªs_ÙýŒâNgåö¸åp½¤­LŸÚÜre!;}W¨tYP6۬ΚëÐNQµ•ˆÀŵžüKwňÒåÿ—O¢jžôøÓ>‚i⮽¹¬9¦ˆ¸ÀÕEÚ~xâ•ðLÙÛumþBJ1 ^ÊsïŸ7Ø`sû£û]•~‰CŒJï…Èè"=Prv‚2Š•8ƒÈ¿Iâ70ø„€ú¨ÇŒF“ÏÓ ]ÚÀÙW†¥~·I’7ºé8 ßJ•?WÇ¢‘‚Ñ$M+¦pvlWG»t †ßW„팻ˆ KµËZH˜O•FÁs—‘윶d?¬ÉÃPªÖGºNíe“ÛêøWûDBÀ$ÒkK(î§;TLÇp–ñËȼ~ó/”’+Ó²Ìm[{ÉBôH4EZm×Ù[0˜5 6Ô]›™"Æád9´izÙ±+KÕ®„„@¦uŸAä ò¹²øñ§M-㹘(ON.¿æán) Èç %Çô˜±5–þ'ã‰ÿªC‘z0Ãß­1Í~@»óÝëÞYl½À» Š"6Õø¹à[ºXG§$+ÜWÔPW3G\a~G³TLVÑ&þ­rë% á*û•\Â5ò$Ê  èÄ£Ø}Þãç–›mi¦FŸ ³âÏoVåAƒŒô¸^\|˜Ù.ÅøÍ>èjWɃ> €µ¨jfƬ7;QmëenÂçDrœDa+|“<›#³ØƒËµ“¸¿¶¢Ä†ëÃÔrV7vúvp\o"¸ÂÚJ)Àqn½½¸¬Þ›ÐçÆ/ÚÛPîf2v®PÆ/SÉú|vü5`/´ü¯¬|&ülÇ=vDÛe¢Øˆd )Èô‰œv["‚:´~å ÿh †\r‡Ýî´·4¤·bh(ð€>±¢a}®h.mð¹ïýýdÅq¶ž® ˆ–²Ã+“³mÃOÿ«•ÊHDîdëe«KéjIÁ µÙæÏ}ÖàhoÊÇsE^WšŒ;ãà›».º@VöâÁÚ§¿Ý›,J>µƒ›¨÷áß…Š{t– =# ïAä´¤†a<~°ÜkŠÕŽ1ËoÙ¶–Αi% m{I!7r¾à쯀³å¢@:Ì`pûƒF!µSÛÝ­ 2ABŒÜÙ0„Ÿ½ ·Ê]vÒ†ý%x°¡ŒEm½mÚ¥š×Ä¥Ü8]QBð¾¬UÏB¨5wÍ›1«B)~Ƹ±Hµ™L ÛÕÝIýTù?¤Ÿ>Õt1 XèÀXòÃ7{ÊëXÔ²îYªIûú“Ù°[’‚ Ådî SŽ‘¢>„þ{;† gÃ6;õW,n[Gwѹ ã®Ú{z 1vÏ‚ûu,ßW‹°ÁR8¸T€s^É'8?e·W Al ¾)ßHµw3·…û%Ĥ#äÑ92O0\]¦úf´>Fš Î=¹Á–NõªqG‘&¸ûˆKAš"•] Ȭ±E±pÛÅ>Œ"á_(.Ó†­fe”²&{ÄŸèñÐ(Aþüwg*ozø·C^1AA"ƒ[d\N­,ooÑôCå}­6ƒ«áôA»&আЩ1oòó)츤辷‚J+f÷ǪÞ·äò‡-±±˜™Döß4y¸¾˜,Y…'¥MŸÞgm \ûdÖHââ%PEaüÔ2LŒÎ[²9ô{éçCÑCZ|…- Ù_n·ÁSüˆ·ùØœo' ±ÿoûŠ©÷ùAòh½„‹úSÔy¿\[{wü·OÛ.ûiÖUÌž‹S©á½ú[­Pàçý9Ñ%“è„pkii`e ‡í–Á½0°ey`»N¨bjhNû禋²v4GPºåN6.$׎Û%i¦ Ÿq1ÖòNHÔﵸÅE*Ah?É-üaÕÌelV·¥ÆW·–‰>Œ4¹¥šæÎtxT"÷ÿþˆØžÜàT¹Û¤ç…rªŽÍk‡6^Tqž–œÝÍ|€—FNåí:+¤;©â‘i«/MdMÔË$Ë¿ãÞÄ''Ñâ‘…=MªHðt2®[Ü‘UJš2àˆŽe8aù§!ÇÁ«¤= #Ò·+Ëä%›”%Wª®WË`KAO¿ÊƺÒ«ŠE^Œx ãm›~óƒ2©]„ &l‘£Yï맺gH¥ÌŽK?²Ÿ-@d<îÉ<¯"·þ¾Œ€ uš?JÙ—ÂMfÝÈ)˜05|ñÌ4}i<0¦Ý˜AŸ*!Ôæå–^£mN–{ÕažÕ,¶ÙSì²rÉñÖ*ã¡8Jû4½ yu~–}Üw‚I[l qGиþ í‚})Ñ/ê— €`²ô<¬“ÜýCØ0™:<Õ?g 6úvørsßò˜ „¥Œ o‹Mj©Veß ºóa€ì¾/Gë5ì(Àˆ¯Ñ«Éqr¦×`KZDü¸·©u!^l`ÓËÓcãßQ„ê‰ÿfE\`#^ü-qLˆ^ˆŠî<ôùN+Usú‘2ä?͵ÞoÓôdµÌ"£ë•/ÒžÓz©+aU5F¦ùž|=wƒ¡êTá!Yö¼@Ò«&’¨x³Cýg¹Ð'{ ¿ÏæÛu@„ÇØ#¼tr„Ú‹Á^9¾hÑ€=‡úÍF[ ÞØòˆìÈ (dûFïFp=S0sF6¼^½lNxMxÁscwqáù87½g¿ZÝÈÖ ˜\Ç$ê•oÝjCûWtܕ͌Šðcç/È®ƒ[ã0Q\ §2Õï¦U¢Ÿß×ò݈»¹!õ¿‘É{±´V‘U>3”0ˆÂU<+wJs±ê¹_œÎœÀ5*œÃ,Ãü¬Žn’îØ´ˆ¤ @Õô×ÿ†øËÒÛE¦!ëcñŸŠãÜ81 ñzÁHjðÿ>´›¼Ã]c(»h"ÙÍÈÆ¹öz(Ö†³|ô»å²ÁÊŒøç¹ó)¼X±Åû&n*Ân¾ÀÂr„obß\â{f§´l_·R>öò˜OziY]Ï_‘q„|È«§Ó¦ëäh´kKVCú—@%mÜÏ ŸSˆ \âg'o}eÃcúw‹áxZ¬ô%À8¨åÐb–PûZô~[Y•ÍGÛôKeÒ)K¿8U4Ñ›qÒÝs=só¦¨ÊÙÙÄwdŸu'žU“ fOæyoÙ½ÈuÀ>†! oêF¿ã2Þ®( endstream endobj 791 0 obj << /Length1 1469 /Length2 2187 /Length3 0 /Length 3135 /Filter /FlateDecode >> stream xÚTXY×Þ•ÕÕŠE/(Ò HSzAºÀº„dB†2RH(Qi@\DXdÁ"¨4]Å‚"JQ¤«ˆ¨Ô¸ê~CqÕýÿçù¾gžgfÎ9ï9÷œ{ß÷ª©¸¸i›1ÐÈExÚdÉX8¹»“)€DÒ!Hœšš;Ì ¾øqjž‡ £ˆá7 Dãa>K:¡°ç‡² ë’7’H€B"|¢C`I ‡À‰ìQââÔ,Pvdñ°u¾ü<] 6jM§³PˆÓip¢ñXP(¶"ÜP: ñ"¾+7fñxlC"Q h¡\Ê Ü¬¡0\!.Ä ‡`jd°… ÍŽFÀ©wÌ ¸¡Lž€ÆæéÂÅRøâluàfçœÙ2vœhÙÍdùŸr³ÙS…`d:™F§£¡l#€ ‡@ÀÙÚ‘Àò´ aLi!\˧…ÓàZ˜n¬Í¶6áì|\:fó¸.25#qª ¶ÍVà …7ÕŸ%ÌèØ¾Gg7AHÔ‹ # æÔ >›èÀa|ÈÎrƒ¹p_}PI$’¾Ž€Â$¤³ˆS ¸G°¡é yÊÍ Šb£lÀÄÆ€D0Â>¸(.-<E}øÞ‘ɀÓy „Ü×ê˜bÎØØùs`!ð%aô#ÒÔóÏß/Ã(ñ>}ÄD­.ÖfGþ'hnŽ A”6hStt•¢ ô ¨@ô}<Ûék¦ÂDÁL³Ø.}i8|–øYyh€ïkmA1ÞBÿ•æ~$*‰Ž½Èÿ3Ù§Sþ?ŽOUù¯4ÿwGÖüé8~ðâ´P8$bñ–ÏÃ4à„bJ@þ õ‚f„ë1`~è¿£v<¦3$0䟄¹Ö°b¸À<:kš3n)…Àä‚rá©›h“I¤Å0qу±Ûƒ‹Qr:aÚù~E+„Ž2¦DF¡ê‡C‹À‘0&Q¨TEÆÔÈ€„Ó$D‚ò°€M'L”ƒ›:R] Ҹظ07x*2ã¤"+‚Í´ÿÅE&a>ø«I&â7Q2å~cê"ïs# ò§Íïz§ó9LÀÓôÂûbOß$„踮”nt6¾î}¹ÙJöP3EW¶q,ÖúîË^92"ËvÙœõ슞’ƒ hU¼bµü¯T|¬¸.>À½í’Z¤«Ät¯~QÄwVáÔ¼<;h{·äeྉØÝutc¼f oÚaÑCGóù§kû9”ªù©.ø:ãmÚV{[v˜ž¾ó¶Èdí6®i¾]”wý›õ«›;:=Zð:"rŒ<5ø¥k;}Í^øô7ⱂò¹{“ûÆ?<ˆþp”mškos®jàÖ¢ L@ã“ãknõåÿÕƒ¿/쟰-‹Ä|µæ€÷»‚‚GG‰>šå£Ç¼+üZ% ÆK…Ë­›Wª32r;bÃ,9ªšY΂MÉ¿'–¹*¯JÛ¾\é5ÏÈÚº®fâ±æ_èD«¬M±ü¾†Ã¹Ý´î7í¢1§é×Ç5»·ŸjU«)•=ù(C,uŽ×p+éÙ$åíÖZ›®yªˆë 2•Μ·/¾´÷•”Šã’ª¹ýå9Þe+÷Ü]Þ½ lÏ!Vd˜OP‘üï~ç,ø§ç8ß+HyÎRhôë]‚’ˆ7$b#¦¬¦_¹j€iÖúá±ÌŽÏ÷6—¯5[ç@vù‘wŒ3‘Ï<&½«“¾·À­ÇàÙ"CŸ·ësÎo]xþDaÁÓKNãÕŸÄÇ=9“†øó;”7ðá‹VžÂ/POáTïr<#®7úÔWX#¢mˆA1în¸ îióºm?ªwZUX¯ø¼ç¹5#@þw­¬‚î2#aXcæäû?–lÁœ xôÂo´mU«ŒOKö:g%ìkýù1~k®™]ËØù*S)½éRî¦úCGjá™kÃ//ZòÍC§Šý¬è¦ø°1o1Ò»óïöT#ûŒ´´Ûç¯ÍÆ?X¸¥/Þ(®¼æV`{ùõÓuOöKNÙ º¬ZhXÙ³)ᘑu-ƒ:P¡ªEjçë]Îø¢'¤Ô„â¶ë±Õ‰Ôæý—pÒ¥óZ:¹«5ƒå´P¯ór½ÄÎÂì1߇ÞqnNQ»wµ´ÎÓ|ýL©Î£TÎ4R¤™² {ÉÆ]OÕZW(v¯vöŒlÖ{0_™á×”œ­‘ÐÝu$iJ¶<Ѿͮ[xˆŽW…?%lè÷6—|^Qèàk¡üÀî'¯6°w‹·­Ñ Åí¢Ò\Me¯‘aÒ8‡Æ‰hbµ¯à±ûÍR¤†Ü_ý˜¤Å):®pÄôÞÃ=ã¹ðþøIMýË–îþå7eÖ¶—0‘9Ö?¤‘ÒÔÍKM–“ì‘«ÜÓ+: 9Ö{Ó•‹Z*²˜÷G•rÝ»•аÅ6SÒáWbS"‘ží½Ë©kÍS‰ÆS(ŒîLGí:ƒ¤5Z›äùì‡Áþ® ÐëB+YÛ.SR ûQåœX›QÖ™%£¯…RÛK»¾#—G£÷c~sÉtò`]ß ÇÅõy>¶A¬>®91Fÿ©õϼ„¥9—³q/'žù5úzµãŠør+&âE:þN¾þ׎¯Ëà„¹—ô«¹µŠçm;« žÛîq2þÃÕ|¾Hrõ·ÁùÆöÛ§beÂ>Ÿ¿`÷ØôI—ëV^'u9¯ÐÑ+:sHئ!™|&·S%˜ú~·ÊEùwíxñOÏUŽ ²J(£ªðf­ÀkŸùua6‡ÚÞxú†U^ÏÍH‡+Ã;ÞZ K]ë·Ë`ÎËàç^‘««’#Ë:Ž´zÏ]}$BÚ³o^â¤RyÓdi38&.´\ÍýF¬Äùý§ G®+½Œl,SRT¡¤ÜYöävFä¡öÞYªÊ4ÜJÕß\!D±Üæ—ây®9/[¥Ú_Qà¼6ã´%U‡¤×°|*ç%UÇ«¶â®o¶¹cd¤ß¬e·›U,)Ië÷µ*Ý(~~å¨|\ó&Û?ÆÝ»Îã^zAæºØHg°Ð¡8p‰"Õ(i•”g´n>ê4/þPwU‹ªe2ßÝoþO9Iqꎕ{}VØùæ”ÈÞ¥¼•#w›p uo÷÷ºvjÿ*Q0Š0 û©`4­Ò¶ò?h{pµª§^vÛúû¸ªµùmR·Œ—û¡;‰*{Dƒ=R×3¬U,ç-Þ1¶tÛ>ÁhÃ}jŽœÏð¾lO×ÃyvÇßÑTö\ðI¥Çåºô‹GþõxÉþ®ä‘}i쫎ù]5'5ÞçZõÇú„ }1Žô?k+$ôDÉŽ¤¨+V¤»qÇûÞ™¤¥&-Só0ëÓ¼ŸžUŸ•žvrÓ¤·šó§+gcœe­uKàØøÝ^Sªœõ=ê?¶Pž,tMHŸÐìjZe´=÷@Ë/¢?WnýóüJ—5óvV_ÊÛbª»g©%óH­†LWqSfD°FÑæwõ»ö¸Oz5šÆ ZÊåÅi­Ã/¾–¸_ÆVY$§Ï]+%9.|m¼†—úÑ'H’Â0^eâ˜y!ºvÁÙ-“p§ü¡ñ†jåj§ ëbÏ~^É ­xtñFÐeý…' ‚ÿÆÓ”b’’RÃ"Ë2ŠóÊýá–ô«?&ÜÊÒ¯Ìy»¦²²ñΪ÷Ôí£EŠ’¿£ìW’Ù}lÇeÂçÒÌ›ÖÚh©ÊÝZ×vÖ„Û‡IióñãŸYL6ÔÈ¿(Þè¤à[AÛÚý™žÞb_äëz­÷”D†™˜-"ÔÙUÌ#«ÃŠ;TVöëÖŸí–Ø¡~(ðsFÿ»µŸÒ˜£qJ&‹×;5i6<@ãÊvåØä‡˜^ø¸Y)üÏE'²eñ¶ŒÜÿ&r endstream endobj 793 0 obj << /Length1 2279 /Length2 13602 /Length3 0 /Length 14958 /Filter /FlateDecode >> stream xÚµP•mÛ.L§´t-º»¤Dº»Ar±èîîFI‘îîî”îîîA`¯'¾Wßïÿgöf€ãì8Îë¦"SRe6±3IØÙ:3±1³òDåÕÔx¬¬̬¬ìHTTjÎÖ ÅHT G' ;[¾? DAFÎ`™˜‘3ØNÞÎ ãb `ã°qó±ñð±²ØYYyÿÇÐΑ fäjagÈØÙ‚œ¨Díì=-ÌÌÁiþç_-ÀÆËËÃø·;@Øäh4²È9›ƒlÀFÖU; ÈÙã¿BÐ ˜;;Ûó±°¸¹¹1Ù81Û9š½§c¸Y8›T@N GW ெ F6 :cF¢¨™[8ý#Wµ3uv3rÀk ÈÖ ìábkr€“T¥åŠö ÛŒåþ1`ü;3ÛÂýëýW Û¿€@;{#[ [3€©…5 (!ÇììîÌ0²5ùËÐÈÚÉìoäjdamd 6ø»r#€„°2ÀÜà¿í9-ì˜,¬ÿj‘å¯0à)‹ÛšˆÚÙØ€lþªOÌÂ݃åŸÍZÙÚ¹Ùzý L-lMLÿjÂÄÅžEÝÖÂÁ$-ö¯ X„ô[frp±²²¾ã`€ w 9Ë_áÕ<ìA+ÿƒ;ðñ²·³˜‚›ùX˜‚À¼œŒ\AgGןŠÿFHll  3Àdfa‹ô;:X 2ýƒ—ïháÐes Àú×ÏþÓÓËÄÎÖÚã·ùßûe‘ÐQ–Óbø§ãÿèDDìÜ^LÜ&v';€›÷À翃(Yü[ëoOi[S;ï?µ‚‡ô?õºþ»~ÚOƒðß±ìÀœhSü#++ü‹íÿ™è»üÿñû¯(ÿ7Šÿï‚$\¬­ÿVÓþ­ÿÿ¨l,¬=þ5SÖÅLy;ðØþoSMÐ?'+2±p±ùßZig#ðÛšYÿgŒNî % g ùßÄøG¬þ׉Y[Ø‚”ìœ,þzSLl¬¬ÿK¾+ øÝpóño|6ÿQÜhgò×}±sqŒXâð›o!Óß·ñŸ…pÿ%´sýWRÞ¥ÿ” <<Ç? xR¿Óqœ@6@;ë?p‚Ççdmädþ‡8çï àŒÅÙÜôç\À>.¿Kgùûûé´süÓ ¼ ×? 8½ÛÌOÓýÎâñ7ü¯kº8‚Gëü÷s ~ þÿýiÜA@¤¥y; °eMpÛC•0¡ÓÞ¸à Õžf2“×’c»Ë#*|"]ezà†ãpâPúêŽ8íí‡eÒg¯“æ:ø°–åÖ'ï_q*S{­H‹“8ß'òO„kû‰‰˜Ô>ì{?;xkXA7CvÊPe;¸¼CUÊÅzpë“t¯í/Y ßSÞ¯ä–EþU2ÍôYýÓÇ€o³T9ÆsxäpÎLÄô˜îh³·w3˜Y¯¤2q H>§Ÿ9 ¼t6Ù£Îy®•©±;uáSâëàCßbŽNQ{‰~•Á]ð**ü´!¸ÉJÇ ±hÛ{!b¢ÇR@ÆÎ$¹Àà{Uh<ÁS Px ¶z1p‚ºMÞ¢²ãj¼àPhz›„Qªòž«3~Ñ>©dņ•«é¼;¨fPî6hVÊ0s8;$³ø˜i¾ážÏ/Âð«^«™z5‹ÎÏ®&驼ÃHúÒ² PøóVwˆA?`:°Ô$#Eoé´øƒS´=YïÊBçÏN†_›ç`‘|š:€Þ¦ ³{:.—“ߎ2ŠT½.HøEœ¾ü—´$RÜ-ö0¼ sY«zÞ ïÄÃÝrE²Þþ;2”$U£¤o­ù8¥Gäƒw¤ÓœïÄ5PÞ§(ð§4ÌÀg®îݵëòŽ&ç[DÍ„RB¨LÍãÎ%O™õ_#¼r‰v/šÑ7?•£äP‚J^9{;½äÑŠÊ•^ö–±ÓŽ|’‡&ü …îL ¦v’í­é®VîªS¥‡1÷ØÕ6£o'£á—0yëñÈ‹â*ÁÜâÞC­¹ê;q0 ŒÕ>ê(´¼)G Z½D©ÙPKg2·lJž…éŠGà›¯95öÏäºþô4#±ÂƒaõKÕÏÓùª7^TGý‰ƒÃìÓ%Çþ±› û=LW´½È§téQXÔ>߇2 ÔÍ£À5}<ˆ iqÁ ú)™Iær·Ðià9 GÆü;ÂSíêyf6tKYa§ÏüÍ}­Ñ÷†ã*ú³¤¢Êœ­áÑ냨{o¨½ð]b.”Í$&ñ \­k”r~4WåŽvw! ƒú%=¬ÝÜõ\ó[0"áò¨;1ìxM—-”Ûìëzú×§<àm”g-p,cG$ W>Žu©ÃcŠ@¸” ò9‡•§xðœìæÂ·Åd¨Ð쩵ÃG´†LBMzÓY.ŒO#=M]F=n›Ö¿Ãã1È>›/ûfœpîâòÊšfÊßÑ&y&~2õ$£x. q]ÓqiÛ€ÐÙ'×èUÊzt+xfº$‚øÐê·8‚ÂiX²ì>I3$#«£vV+}}-ìà×jpƒÚOˆÓºÎ-#@ úõ]<—¸wLú–ñ¹Ûº?Þ.ã#˜EDWñF¡Gp”¿Yì ùŽ+VÜMÿ3<Hõ¦ºi1eÅ£RFT°ØöøË.Æ´®3À5%åËpñû@ý~Ž"›”× ^ÜîÀ‹ AMûÂp†ëù˜nÛ…0R³ì" žï|ÃÊxÝê•|§™N]>ÌT‹ýÐøHè¤ZÏÿâÎ$SQ6RAc“y…Ôâ!4ú£/:t‹yõS¥2VJR;ÛyÆ%íèã ®\º%Õ³iYú8´ûÀÑ©*\üò'ÇÓµÕŽ¢·¬/ü‚™ÖüU»½þÙòSÒïí¢GõäHˆ6ß×kcZoJ¤õù†±½;]˜õ·§0\® ÒÝŒ O§x[¸Þ×ä?¬#˜ÈÈ„¼©ê»`=»¹ÖŠ-¼"¶¿Ë‚Ñw¾^ÛÄ"r9$Õ§Z,¼2$¦¹EbUóËy#í…HÂm)˜ƒÿ5깈8Ô^йÐ:ÒÏŠÿ0˜üÜ7±rŠÕÿs™Ïë±ðm1ÚmVK˜µT][ ÝUÒÁ»Å Óü\-[ÆÈZ’ä‘$¥T¨v ‹—Å!=-jÔÄ3‘'w/‚d.â2S"ñŽðõŠ1BçÍÏy^Û‘’þ>@ÚŽ3â.ç§p˜—al4ÆlûÊÜîÔÏÞ$?úŠ8¥|91Ï?Éð‰n¦ ä¦Mö”¾­RÚŸ„Lèöqñ<ìñθ7ëÅ€tdÂIÅà#È>tÙ…¼ÎÁ¿ÙÔí;üÈк]5t#˜a!‰’6×›ªRÐóØ¡x³¯l5þzµÇÞ¢Æ!Fê°'÷‹,X¥˜“”C JdÜ‘hgÚ}öAèN.ÇzšÙú?Bwól&>ø€ T1I2ƒh9¸þ™Åh ž–gç岫[¶ýönVYš ˆMéTùuFåÇç§bô„‘1æ#ד«f=ŒÔ;é ?Õb4 ¦d&ÑHsµw T¤D"gÊ“Àü|¬‰ÃóÄw*çò™ ð¬ìûiëÖŸ«ôó¬*äùJËÑåHi—gÉåzgß¼’ FÞgª:Z>¡'^"?{AóÙ¼zeA.màÚ)ioY¦£F,b°±õ¹,ý‹Ë&[ãS(ž%ë•×V‚ô9uå¿~—Œ< °ämð4dNì¹biÙæ”À%ÝMÍÌÍ/XÙ@ý"Ìó„ £êK‹·pàÝÓäÖŽAí®N øPëjS_` ßߘ I'Ï#‡ „ª|Þé¯ g#žž¨ñþâÐ4K “Ž÷ÌÇEzÙß.YïtõùKVÿâÐoðf=e”P2„lD$%Õ^? KàWòw±lï\"jûš'¨µà¡$A{¼ ´ÃvÁµHŽK±½W×£Á¯å׫lHßOŒàT„lž]‰ú¿#@ d›è~íšgG*”9!uÖóm¶Â‘Xu©m‡ìË Å2—‘rôÍí„)j9K(üòyw:W9;ól ¾ŠqÂo9}R2› ¶”ž•¬éätêÅ'ŤàÀV}Ûò ´.ÙØ²= [¢³äÝF'ÎËKÉ]tVðíQA¬Ó%«sœ—ïzš]]¹r+Fåš8óB¸k®à¸od"zúÕ æ‚wÇøRp½‚(C]íñ^Á²Ï+1ÆÃ”F_ß4l,–ðv èzc ¼ýØâk§©·›<’í#hϯ$¥ÈƒŒ¡Q8Ñ®Õv E©Z Dq`ñ¼¦zc^ù½¹Ìj±N%sKS”æ<Ý UD©­jnñ[N|$ò`ÒÅÂõýƒ»}·{Òx$TøŒ~\ãÇaÖ×õŸ»T –B— Â(*AŸŽ>øyÉv)ýDçf G¿ò¯fÒÜÏHÌ8K>ÇÔOZ{«³+ÍÄ›7ßÿ9[©Ò ÿ‹EpB¼ô…öζ#i)ª¢|5׺ãk)Y˜ t–ÙØÖ¤¿;£O0ãý ÎYnª„”­x;Icª‰ùÏT½ìÈgkJjÌÍ×vfí÷>˜ÙÕÆêOÒxª^)Cì<Ë‚—ÐÅÓ§ðo$DÒ¬‚×i üaÐ̾ä}ƒ~7»ÎYgŠxžL*Oh‘ûK:cºIIq ÔÓ;Cæb/÷ÞUÂÊ’¢R¾4‘M†FŸ§‚vØ›ï¼í²ßúÀLRG³>7o´~á…V°²éiŒ#ô³‹òÓ£k S³CDûdØ0Y²¦ä*5_P’µVC5ùù“°Äˆ·½>Àoï–!åD½‹ªûÍ‚¨Ú´KIy™?Å]Õ ¥]ã¥B¶‚"j&üçP{•¦î~Hs2úPd{@ˆ/†¥ÜéQ©¾}ºXÆôaìVEÌ'ó£÷ëf¾Îƒ˜ìšì¼7ÉzMŒ«‹¯Ø˜×CZ­óPªÝ†:wzûU5]u¶„k.Óšá=êXtDu“5wåžz…vËbšò¢Ÿ¹öT0ð?«~ééóY±úñŒ;a9¦k\] >¾ÅÄ$Y‘¥†VØf<Þ²F}Pˆ£‡ÀÅrò™åòä°Ù\L½bù~[TY[–…_g€qíÛy4)iz+yZ—Àù%± <êX°ëé*g¹YoW¡À³«ÀÕ‚‚–w®ðà/I«üQdfx%íòïS3$ŠüE­í"*éDtåÅveGÇU½ª/û}ÉüFýÊ$lŸ\Þ8Fθ¨íˆ¿>ã@o󳹯ÈY÷Ÿ.+ACy“ú6·›%Uü”‡A•а~–§Gx6y(œ%7Ë7=>W´÷)²Q:íš‹NµCk‰ÔU!²”ž2ˆ(2]ÑiãÑÑgÀ6Ïéü«ÿò,û~Ö:‰Õíë+‡¬’ÚöÏՉϘ壽Ë gÚ<DÇ[•„éQÀØ?›e¬’òH"Òµ;oWénjDL)ät,¾ø(ê†%|šE!†r5Œ,ýåj8fƒ†Ô®•mÞTôœôÞ§º“/ˆDȦz£ zºI Ü_| z6úö–’´§Q-GŽ=rBTqí—F(K0ña@ŠgË%/ Ñ &ÕË=%q™ò”BçÊ¢ƒm8¬Ä:Ù¥·Aß[ù)3§Jn"ØI?)eO·Š€8Q4üsÐÛ„׋·†Òås‰š&ýÐ"?qƒ;¨9wAÆÀ¤Sv²Áh²^âašSdã:›¦çŒøÂCLh¸Œ`W·ˆ¯÷%RSª ³êlSzÍ—FIÁ°EÕEć’1ãÇ\âŒÜÝìîu£à£šM-« ¡úìâWë€äp5E[gü<îyr­‘ ¢»‡¶=±hSÖa'^!â¾ÌTƒÔ˜}[)Ãáá ›éÔ|¤ùÕò£ø¹_!?[šÚŽª/®¤|êÍLk6Êsndù´zзßq庲º°±¬ä@$N© ¤o°hòóеºéî9šZ„¨.à¥Ó»¨µÐm:€Í›ó&I„jæµáÐ44W³ü3¹I×7‚2¼´QûýtF(j¿8ó–@‡j†EúÏî$¬¹:¬9†úLäQªÉ~mC~Ę¤È .²0Y;9ÕÖ$…9’ø;s%ó]±‹å•¸<¦ŽàŠfÕ«£ý¨àƒV!Ä€«Â½¹|ÕwO0¤‘d%IŒÃ8ÈÁ¥® ¸D5ºÐmÃ!rx£ýø®yÒŠh|·ø#M*mëˆ_\>–ºÀ÷:Eü Y‰n/Šl¯é3Ÿa!3$¬ds|ÕÆÜ7›†Î:…äoèñq•E©eà\¬‡geS½Ñ¹ ,Ö)ÃÅç%´ÌÌÆ;6¨]‡¥ ¤K éjÖäTð¶è£« a•{̆´*!\R5'ãÉK¨ b‹‰cåÆƒóÉ9]W› z–Š]ý{[unÉ`‘öæFÏŸ6´?<ÈEF¼õòuÝh‰c€W ×ÆIap°Ð{@8gÑ—£Û!‰¬‹$Ž'´ñØ`#¼“=®ÇŠFI©ôõ²¨wöš¶]¢ c¯1!`¬ßmOǘt ?wŽÛ¨ºÿrÇÔ&±R^ˆ™.a,‡èmú}_BHþÐß 7pÞ¨ãë'ÂæE¨¾n®¹–Ý™öÄžOd­ey&ßPØQ£vÆÓP-‹ÜXÈ'øL5¯È£“ô*vX)1Ìì‚Ti^ç¸Û0ÿËYéb~Èôâë4!÷~lÄsxÐSò…¿ §†·ræ¿É±òç^ Fu ‚¢j™CÑ×bŸ’ûd¦—ÿ@x2ªaSÙXY(oî~¿›¥DýƒvÒ+‹pÿ*Ðì)wR>wð±/6~Äû¬º…öÔÄjp ó”%g|µå³”ÿìh‡ ·2‘ó<çŠvÂoþI~™fŠk†ŠÕÙÀÙ›æ„7Óeé¯Y’Ç0žêÐ+šRÚÌbkxuîX]wEâoH4e“üv•ãôŒxÑ&º4˜ÊåAÆúÞëþy„y]ä}ú£ ÔÖXÙÞG1NÇf¯SÊ‚ ¤]˜G·Ž30{]büi>HG9Ú™¦ë`#­žôÔ^iëúRPäÃ̳¿Û÷vœ)h! ›@Qu¿ÐºÇE”_qó1‰üÖþ]@~}Áo%÷m,Ãâ'›!”ªös„ˆ„j]ð¸€7,̲ÂâcÈ$ûÜ_cÐ.Ë GŽ{ Ç”Åp…'J&‰iæm ¹aà‹ž%§w(·ÄÆâoHu•[Þ9 (ˆq'›ñU*$ùļ‹kwIðÉ3B@ØÕnÒ:¾å|}CzåÌû³cÙ¥Š\©·Å)ÜöÈ.žLÖ'õÛè½R›Ô|Žô+[á”9ê#F;­ENÀMÂp^àÊØÑÄtçÆfïr‚mZ}©Þvïnã³J{Îj;œö‹gk»T5¯†×¤ oü=¡ G…ç0|=-·ÎßxmBæwF#¬Ö‰Ð…œ^ h2nr‚^1 ¼”…ˆqÂD‡DCJˆ»˜SWd4Ø…P x–äà3o*dÓyndŸ?íN½æ5‹¬Ã`_(ØuŽ­œßvX'=¹ÜäÕuÌWïTRò{.°˜Û ôÑÅN/˜ÉK\Éî‹XOVõZÓ3©¡__=žëU¦¸‹˜Îâ=ÌQJ¤ää`Ü+F÷(~±0§ì–œQX˜·ú\{âÏ‹~·ÿ3ë‘S8T`ˆŸÖ?«×ì\|×'¬ÝGÙiv£Zd‚ÍK`˜êë\/½àSË0/1OÆ×)0NëXßæ:‹ÿÔ*9¹ˆ|ñvÓÜ;ù™Á¦b•¥:Oèâ"ï×ÍR®›*£-ðbSwôñÉl4d2QF¼[U0 v‹RÞ“¢hf=: ã#@£§Z \“(vUšô%`’]7hž³ù1ìˆ%ìñ%<âóÜKœkBÆÝKÙªJöëfùÈÌÔuC¢Ïóšë°•Ë×Ǫ¨Xæc£kö檮gfv|"“ËðWhˆÕ¾^H]ñ'~¹yûžu¹¡:FH«Y ®bíuYÇ[•^àí•lØ«Zpña>â"g_©­<ûˆÓ̰•RÈb°³Ã„Œ=7²p‹–?:+$‡*›¬þþ¶Œ«”/¨9Ä„V~3ÓŠƒíx\ aåCwhó0nC¢|¹³ÚM'J!Y iŽêS†¥Ç åùC–Fõk÷ ?Î*tHP²ÒxWQˆÉÓ’þHß[“71t²‰Ý)~Ü}F4& 0æÐ$ гÇ\,»¾ÎŠ¢²<é]ušr©šÚbšu†Øœ¥MǾ«‡_ž`ä–ꈔ×Snê0•ÖÜ[Õ7¬-0aÊ£Ÿ%ÞrN>øÙ“ve%‹ÃŠTÇÓ¿™bpéuãI‘àû?ŸÓëKQ}:.<ÛÏ茎ðƒfîgÂâyÒ ´M±Å?Ø®/Eóù‰n1–ÀN4­4blÿy2–//Ãò”X~¦—·ÁcžRž>â†âÌ¡.râKRAÿÎÓ>^¡æh–tn’U`=®^ªPéE°ÿ¼íF„L]Wã‚|ŠNÁ@n°k©]<ÕYY\µ"•§éûŒT³âýü’"Ó­K˜ç+ˆ2I¿«?•ëjF˜½Ìš-ò ´·®bxxرl¥Gc‹?}J¶wgɾþôË»‘Ùy‡&¹÷Æ\ êÙfsê٬ݓw½“Ô¶K½TD²žÉ½ä¸GñlÃïb‰éí+<¶¸Yé“.«N1Äå¶lEÔ6Yõ#Þ,ÚeŒç踤@ED[aù™N ,lS¾Àgí9*:wá0f7¡ „‹Ó’oâ‘ 4uZ!Ó2ýa0l©÷/§ú“•:ÜØ‘›ÃTÚoÍ8”!Dµª‡»Lps«Æaž=s¬8òl%¨~ñ÷ûÖ#w¨¸~ >}%LvTî(?š$…Ü%MSÀA7{³N>P^±A„bšÛ»¼½fh°ŸR,I±LyüR™l“‰ƒG¤>«ÊÔDfí8c–éK:Ö¦¨E㹡*ªÐÝÁB:C·n+8 ]fr=Ý)Ú0V9Õ˜“@9@àZzfò¶·ÇzÅdm?çŒö#zÜù‹ Åt V„áŽþ#äÇ”ö-”§Ñü.é{IùV÷Vx¦iè£!"‚Ù÷"dÑ0Xš‰Úr“«è­|‡0î˜kV_QÑ£ÓÈd b3wÎyN^ƒ'\•¼ù P['Çd¡Ky¤¹#^(N-{‡µo×´Ð& ¢Éª¿dìÊЇF‹‰øÐúj—Öìß~ÌžF®Š5ÐP†ÆãCºzC—}óÊØ}™y§Èb-}Õ““±½=s÷:|éé›xIߥM!NWz¨DTq©Ü3G±ƒ‘¢@«Ž=m)"ºʨÉéüD¨n5,ßÒ[Í(LÇ[¶ôbpètýÃ8—å<{¢]Tã”ë /¬™·ê½]Æ(~&õ*µ‚0#0‰”´¾3…Þ¹™ì{_÷›OÝ&¼‚ ‘1)éÀô´ôœŒÛÓàœ×ô7,ž‚-‚¯Õ?,.²[:¡"¢ðú`½?7Ñìi˜&!9¸*Þ­”S%§ôçœ8íüŒƒ_É+§˜7üˆ{puÖ2Ñt›\FµÄ|¬}´ïE¬²»Š[øòŒ;…–Ò .‰ì×C4¾KJn e54s¿¢ í>N°1óIhd0í0¦ìÒ£½]ŠÉ GSl‘®mzí  #Öë(Ô®IïSΔ!—×àTJêZž3I&ˆ÷c"0%sÕeLxVdR;«÷¯{ðs{÷¢¹¤K‘8ç$ôC7$–Þ@­ÌyÌ¿ý†Ã?ð%°?§ò«—ð|–'û<œMGH®³/Ïj1Œrsƒ5¡OÇ{o¯5ýøƒ|üG·Ô–NwA&¬Ë lbØ£–²鹇ŠôÀÍ7m_‘ÚÚ‚×¼ø%}¯á·>íC øoÎÙSó™RpW‡¤$S0!àOÛyõ«ô—§q ø|Àsš)›) ¾Hìö8_•ÂÿÞtfua.•­ »J9Ç ’PY»¢jƒ»ŽbÙv¬Dñ+ÌûÆëÿ"Ko€74ôX¸0®I•ÆfƒÎÔpî¸` S{X*ëé\ŽF×ͦufýŠ@¥ÑÊbúÂî/´žÇë}¬â"WFÃ"'D; õTò¢=lÉô†˜b§#åj;!¿ÖŒ”'ŸŠ]Òzñ¸â–¨; ¤“Å1¡õ^<‘*@+H>Ÿ6~GrË« ï4N9\h›¯ìð¡ù17;pHÛØ ÅÌŠá k©´«Ÿã]Û{ÛC8©ÐeÿO\ãm±ª±]©–䫚n.ë*bëbB\Ò%O"Ð%/¦š²žà5Qç¯sùæÂ«² Ñ¿´~£¢ŠÆPpâë¼}¥ ŽõÁ©+OÐ$&ʲpß²D3¾¢ˆnEælŒàl¹I”:†Ë—ú\í½y-MÕâK«hõx” “.0\áÉçRZz•ñ›ç­W 4o°'€/gê•IâÔLúÓÛ izp"³²ç0ÌöÌž­¨¼ìç:ÿÑú}†ciÁª:°™•dHÇ„>.V 7Ý´"¨bÝçÁ¦Cû°ïXöˆÒRQ¨¦û³™Ðjd?_)]¤¢[+/1Ȥ›Lµ /‚ü@Kû¾ôŠr!œòþâ0~$´{¥¤ ºÒEm<~_P_¼û›¼™E Màûïd•14x˜†Ñ'Z‡d[®XÖåoYÞ/Xé3ÅKý§.H&(Dn"ˆó æ|Òw•à²ozb¶k;6'M»™È‡#8%Ãâøñé¨8‡+ªç(…àkö#‚#íÛ9ù­žu¢-gÉŸüûi!㙪ÞÐÎóíöË-1™¿y±pùç¼…4ÊÅ=*Ôð>«Un<Íw@uŠH‰­,¢Ësž.Aè!s~ò¾ ¶…VDoÞÚ^ÞùÁ:oÏ33É gêZÙUŒˆ”>þ_¯?Úw 0BÞÕ+ŒnуN_CèrЪm°¿@MPH5o¿¯‰þfKjFÿ4¡÷Æ»DŸÞK™Î)?{{OôqјŸ¸V›ä‘í-f¤Ü 3H^6üíˆöá§¹W¬©FÎàTü@QÖÁ‡é%éÓqÞî)ΔF‰):»úÊ@ßðZ•»övaÊ:ÒUöšÀ<ˆFE¸¾‹ô¦“l†‰@çÉ”A…*ôûUæAZ™Õ†Nï _ÂIƒáuÑMm²-Íx’ä`a&Ôâ<˜¯Ë …ÿt·Do_()Š*£a+7 BF‘~mõ©Œtzƒš²5wÐÇA†kè½Yˆó9úñ Í¥Ú¦ƒ¯=ôT.;ô 9äÚ„ˆ aï»—3›ý7®Ê¥òKŽè”ø3ì³+ퟚ$v±@föGÊK ebįdÄûá£&,ƒŠ$/„Œa[jz¼ñÉ žÝöùV»ï¤ ±çpFG´Ïqéüï‡ [”qòÂ8$L_ª€qTÅß„áe„)ÎkÙÏkŸ!y…áòå¹6Ñü ѽC€ &J‘ãm¸*´Àf"‚ìÒ×m€f»Ww„f™Š­EÒVRÛ,Ö#¯Ðpiúõü ²ŽB1)´¡»²XPÔg²Â´ zQ–Ší+Ç‘D@AÖ¥XæË…òöj\"Ë t©¿›JFhŸ®¢õÙŸ„JP8ìñ ?“v1!Êêƒ>º<ìÜ©|ÙF$¼å?±E)¥Mò·³-ŽŸ“YˆÂ¦‹J0mÆE¹k:ŽbԬˣÑü2`ì ÞßJ›ñŽ +9Œ’hiŒD,nî9i‘p)̳~ô-Sð´çlÑm<[ðø}u Ì 8¸€ƒ+¹ŠÐÕ}±‚ÏmÊ…ÌÄúÊ|)z;·Ðh{¸þ±zŒ¿Úêê‘æ4üLó_£)É„z…‰‘w½Ô÷Ä÷ ïe£Q2E?6ê p  où@|¯Ø,pâÊMTND"¯+º<Êá\„儬H²^Ðz/t˜æ˜.;)v)r+vÐuÛF¸VÊ„{:f™fÅ1uòlc Ðìþ‡3€^½hgnqæé̬H¼Aɤ¾…§õã·°@Ånšgĵƚ¥D/üÑ/j:P‡ÏTvZ%¹>S¾ù^}$÷OEy¨vÇéÅ7z#fí(Å$ùë²_ÙL)xŽæðT¸¥¾;ª© ÖT`ÄŒ!œs¿ç-‹ë<éWN0Ž˜)ö-÷ïZÓ_λqe"ÏÃS#i´€Ìøëý W*ý½0þÛ®UÇ Ãûi«l”&.D"´éÙ6’gë‰P/ò¹Ó)ÖÙIµ×°ü¶± µñD¨sªsÎ u2¼{³˜ ÓŠ”6·àà¸`ßA]ù…—ÇYÙ H!©pwM©ü5™;UÁÑjûÞ0ƒ–Útaâàø º+ž(ÄŒe@øHÓdð㜬•oóÓI•[üBì¢ô™©wÎã}¡WwÔHñ—JŽÀ%˜÷¾QE“]¤ërzp$ŽØÁ'ÃéR¢Ú‹„ÝtäÖaT$bg׃۲Öé±)9ÜpzÊ2Ÿ4{¡Ü1 Tî/(éâŽÛT>l߬˜6b Ûr9õ¡ÝØL{)î$…h$Ht/p«þáÙP¾yÉäyò ÛÞ²;\¦pÆºÂØ3I¼[0‡¼F:Y™SáCMÔ5Σcü@ý6³séqŒ®>hYñíË%†§ìdÀéî:û8ËQ*¢dÑcØZ+'¨mêd›}ôU¬¾^Oåe!y %ÛHf ;ª+Œæ;ŸZb¼w«òý—o½@«8mÛ÷÷a0×gÓ)KkñOƃ1Bx!úWÉ ÊýÄ÷ì¾B‡ & ±_¼wpb¸ ó”sò<1p½'k¥©óŒÉ(ˆú™¦;¹Œ6åZ¬ï´¸*å­¹ft^pïñȈí-jÐi]*¢ò2é4“ÅÓÛ{j¹m[*Ùκ_n†m/‚ÓcÛ!É·½â®WüÑV®hÕáÝ"dÔ q»‡}þÛiéÜÍ•¬¢  •F‘ÒÍqÅE”Éë¤ÏÞöúÍ„IU ÷+5í÷†#Õ}ùp« «+…ý—%«>«íe«íðiuwfgé$£{³Õ0RVj y£¶N•ÄÈGó¶!ðïÕŸ¦‚a%@,òç£×Êà ,jw¶Ë)ø§Ô²ØîÐÐ?¦Ð S„„­gI-b|&ÜFÜ>½SÞfžÇu1ãïŒS>Î)òaPÁVÞ¸XûĈùIHrïôÞ\7¯ð» RAØAñÓÒÔŽFG"®Ð—ã1fǨ/° cúrk;¯˜ßS(ݽˆü‚ʘ‡sYÞÛiŒz¹ËZÊê@êã‘›î]îæ¥,s«n¸Í@ ò‚€¶]<½îÛMä½7Ôí…jðëÄrÚ—DÙ£øërE£XcæÙ»«oP .„Å'[š[Üà ±pªçÒ®µ€’>ÕéԦˇ=62¡t¥Óår#*\vboÒóºJaѸw‚zÊ„uG‚ ëJ˜5ä°,^ð—™ÂóŽºâëÛÃB!U ¯Öfg‹¨3cࡉaßþl£•í¹Ä&ÛÓy1ų¦ÊŠÇYlÇÓò£Z‹÷ W¾@'æ,T%†÷¬*Ï”k9yNÒ†ÀüT—­TÉõá¯!Ѥ´ÃM9ÑßÜÄ<ëV©}¡)êÿ–Fcì}ý¡1ÈGôoHb~b²l¼}SM$S'Í{n=Éí÷»”2®æò,st&"çs%OS2c_V44Y›š³&kW¨u5¢ˆhv5lÞ£8®â˜Ì%¢x4eÚ÷¶ÕQ$¬œW ¢ÛSQœœ=¥^÷& N,C¦¯®¤û†žê¦e/A&åä;f$  8ã¤ç¥ŒS ïÅ#‰hýe¿µ—}"iüuü$°6Üu¼¡ö]Œl¨]üd•dE³1#À_Òi¿—Û|Pš‹‹ž‹ £ ùì%­Ì…F,—?^¤zÅ8YÅ¢Á~ï)ì"…&G : ç® ÌÉÓoê ZlåS%”eØtﯷêvX,•5ïu†noJj¸éר«ç¸Þ²T$h[« ÊSëÑy†êL.[Œ[”jªëwh]x ¶u`|×T¬udñòöóŽ’µŸºQsÕ48 Ãbq³'ï/c¾Ĥb½4o—ðE¨%r½ß„Ü‹D?8¨|ü2òÀ/ôô€{‡ !›½äR*iÇÓ ÌmÓà2ö#¡—CÉw›´íÇÞ.µóeÄý\÷|²4ú°GžŸyµ›W¾}@X»CïaÄ"„ݸD<Îá&¨ÛÎå€QªáY8ºˆ ÝÖTé<ßá f“aFQ^ø µ#O@LÐÜÎJ@Ñ|*uô«å»æaìü|gÛE¯üåñDº³ dmÇ®F]Âúi!ÚÕh—5áwâó£æù+JÉÝfCáϱñìø¿iRîÄùësÔ.A„*–šÁ¾/i¾-j¯æsWœr펋úXÌl=[Prvh]ÒŽO¶ô3é1%¾‡x’yþX`àÅdMz2ŒA­gÖ™Beó¥í¼œö͈„fŽ Q›µ¯ Ç´5ÀmÁc™eÿWm2 4m|8#1Œ ¬ÆÈ eŽá…&’×ÈC®i2emĮ̄OXTmúžLd19>x£þØ\/xm XÿPå%ùºœ÷¢K’i4DãõÇ0טÅÆ.ÕrÃP¾…á¤Ìýbµkê"íEz¶¹wƒ»{oƒBÁ$CqŒ}0e3$‚YdË–ذÅq8â£m¬²ïNà[ˆ5 ’G zá?Qî6š#AqSà­°(9ãÿöyHÛ¨N;Lƒ .¥ž¹)äéû<4}:vç‘ër-WO)³ýØVT­ÌJ³E}Ë}+ ZÑÞ†Œl¦ƒ×„[æ[ª·?>¦÷+¥><3y¤ø^RÕ(Ä"oœkFÕ”p‡ÍÔ¥è áž*Öõ¨l°>:so?îõaL™¡þr¥F¾í;èã½aýN‹E”š$æ“^?qÞîÅsSn]PÇŠÝ{S‚r,(›Y1®*!¡ô½èõ"ŽóÖî¨Æ’Öé„ IÚs¦Ü§¢[)'Á„¾d.d»{Þì-Z£æJ]•×<77»ÌÐÏû®}xÛ;½øè#\F×qßM‰…à rR2 [w<š‰ÅÌn°lö£›„Iµ±U/9?¤ë: ­*¡=sµ:P”DaøÆ¢cй§9já?Û±²Ú ‘CŸ)Í ÛU.ðv×a…Åûkжú.àSÚM&sEs)š¬ñ…J¢åØm²=½õx–‘<÷ûçÙŸ¾ ÉûÊüB M: °‚}åâ)‘pûȬ#íù—1Ót©pö‰õà5Eë¨'q·S ¿žÒÜ®tЊ³²ÄÖaí¹D¼Ž®£Þ 6å xO•Oÿ˜ðœtB¸…p3ˆè™¬€‚‹ž¢Eݲ½Þ~«Ù"Žðs+„§ˆ^9YF•SHÝ"MhµîøÒÕdÛÓQ_è/€ÖÍ:vø™â nØ«­L”JJŽDG^ZV#¤Õ>OD¼sûÐõvFê먰[6lÍhÞ½Þâ:}×ýw(wq Åõ­*7ìÎí/Ýl½sd7 ±Rð8¯©‡©êøèù1é'“û>hyô¾h Q~E†¦R6/ö¢ª+s õ듸ÀÐýd‚ˆQ9RÖêŒjöýƒgü‰A¾®%êÉ1©0r&_yÂÜq‘S¦IPá-#{ăõq®ûñ %’+¢®_™üá.·Yew(gÂ=]NKÕ2ȲFb¢…DÔÍ=ä²Ióy™X`R/ža;±§ÕšU´ø)´êvyÕê+£|.Ä«Ãã\ë^ZîSJ”Fùij*M ñçwµ,ÙÌ·?Þ/W¨Ñ˜gÎiK¥gW;×±JªC{ ¼”‰’K¨G.=sÇ@j7§`½CÕ¢F`¸ŸóTùJ¨.{åæeO„Qž¶5c–q-@`£(a¾»X§*‡cð!J¯ÃÀcøu9”€2¶,R¯$â$ºe3œ.ÐmQ!GLÿQ}¦/Rε¨'”à[AKö§©¨~¬,è¯è„㧤³Z.Þ ¶†Ù3|ÖrîƒðÕ1Y骙36‚‚¹å„R÷ªî'ÇN<,eTJX˜Á‰ÄöhŸx¶ª6%þÞ¸Cƒ–€¢X¨)ß“/$°"¤.ª;ί?ìµ$5–áÓ Õ¨Tàžg½_\¥´^ ~MR±Lon|ôc±ÄÊÐù¹a$+²˜¤£^“ü.l"/B4jª»¯Ët´l(cÜŽ¬'CúTéõ%$ŒÈZ´•`ÞøÕÂ+äf§«.׿j £sÌÙ­m´ò8Œ\X$ÃXÙ§”:Œ®%űz ÄJ¢U¶¶pô-¡Ÿ÷:ýu„‚h’›‘ßl T™»?¤èßgîŒû_§Ä-˱²¬±†(¦˜tKÄá=;M¶z'€ûÌÁÍÞŽë4·$£8]YßhT'ñórCœîTt·–-‚dz-ò[X•/8e^¶ÛK‹$—ó.•…?t8­ñeÿæY endstream endobj 746 0 obj << /Type /ObjStm /N 100 /First 942 /Length 4338 /Filter /FlateDecode >> stream xÚí\YoG¶~ç¯èÇ\˜µo@0€G¶cÅ›d[¶áZblÞP¤LR‰“_?g©fW7‰ssa@¬®îª:ëWçœjJ FU² FWJ)¸šJk W[èã*k\}圇k¨¼pUð1©Š æYY))]/X…„`¬RZà ¤µ·Ð •2ˆÙ€«R¥‚…Žƒå1§*m‘Ó•ŽŸ˜ÊØ”zÁHQ'x‚2y\å+ëvBe“Á¡”×¥ÊY C^V^JàîUå­Õð£@¯€2… zÁû*ªË}¬¢E™ƒ¬¢'u#ÁVÀV_%¯©*'0^Då Ò «t¨Z´Ð‹AöBôh K#¬P†UJ92$´Ž…+´AÝáŠÏZ0¡åaÄHÐXƒ8@ ‚Ñáj”ëi= j0¨Á€{Aƒá`2Ñã(p´RA T­BÓIìiY{ðƒÅ{¼:ð ]YŸLÏ€‘”àv@‡² TÅÊÉà*#±§°FSNc(+g°¾³Ð³è:‡=ƒ£{E Áõ|µž…„+"Á€‹úe\¶På`‡;kúÆi˜sPýðC%N*ñhz:­ÄÃêîŸÕ¿þÕƒŸ{²Ó¶kvF÷ÃßÌNYÐN1;­A;õ÷°MÚNº>`Ù)Ú­ggâ~Ô³^õ%ìCä[³/eXËOÀ.2;‡ìÜZvaOì,²óÌÎF`çÿçIÝw ’÷1@ëC´‚eúzƒ†~?xY²D ·°SrOü¢ícG~`á¾ ëñ¢ì~ÂGãÍL·7™ƒžI©Š(Gû†ûÈßA¯¸2bnu ‘4*åÊ’1ŒXk"ÞÈ7«IÔîÄ,I,~¬‹–H£¦WÎ21Â:n‰|9V¸N´M½"SµEç–Ÿ`5@AS«åQ %¨ì*0¶Ð<Y©6?¯öàܤ|ÏÏhm¦n<® “gú8Ë&©—ìáã’níö ±ì¢_øž¶¼ªÙ®=›g˜©Z¢Ç)FYîS ˜blr}5ŽË>V_x¨ÔlAÀ N<½xÇC §iQBÈÆ°3lB9=ŽÂѨy¢™0~UQ+4iÔ03¯UµÙÁq,#Ì÷´JQÖØIXó'ÜM8¦ó®)Ûìœ|±šl Vv”º-YÏ+Ë3§ßªœ©ÐwñŠ~¿':˜Ÿ' ¸=ñãàêñpôù ÜFßÈÇ(|²ŒGç“Ïãa%{âd1¼|îI=q–Á†_3ü&çâ@ŠÅCñ“8ÄcñD‹_Ä3ñ\¼/Å+q"NÅkñF¼ïÄ@ æ‹ál4ÿM|çâ|:žNÄ… ¢,†“‹Áü‹~;.ůâWøÁÏïCñëôz&>‹/âËŸW_†1¿‰±¸1M†b*¦Ð^‰+ >½Wãë¹øz=œ/FÀàëõt1]poF¼fb.æÃßÔ|ôM,ÄâËl8‹?¦âZü.þßÄŸâ/ñ×p6ý'ÛöhÈŠ_fµ¿©Ûì«Ç?ýüäÙ[ðÕ/O”\ï+£ÑW|l¼ÁWf›¯([{+èÂYFµuLn¹ëÖ¶‰Ù—Ž’n%½8xvzÆJn¤Qµ’ÚïIIï6*ÉŠµ5 »hôæåÁÁKv[Z¯NµBø+3ûñšÝ¨Ð)lœOµ¿˜mÕÒ.ªýòôýáÏG Ú«M€´²VM¦û¨¶ >m#ÇŽ‡ÃñbPDŸÅÓQä âÈ{2ȧÙàü·á‚vvîóÞ®#ËùôòrPÆ—KŽ/9Ì|½Œs”¡0“#ÍxM°ùß áf0Nˆ?õ˜{öÓ×Nºø4nbÜðä-±érÄZ4Qj>F¹o«øùÛ"ãÝáó×¯Þ 2Â̇ ¥õ^€6ƒýEþ@K³ @á¶~;Åâ㟞¾>>Dý6ìi³ÜÓÆïG?{#ðÈ—€¯áÎ)“3eÉ»CxgsÝxoÛ²ÏÛ£ã§ï_ƒ[OŽ7E4¯—À5÷ ÖéÈ}B&U7¤+å@S<áIŽûÐt3$H±¶>;…±÷§§/Oã§›O nÆì¾Šè¸eãqkL /CV°þ諸S°zþöùã3ìæ}my[;s¯m½K1z»2”‹ÐÁü|4B„__r1_ ËSî'¨K¹nÃÍpë’õb:Ãüe¾§Dߌ‹#ñçÙpÜV«Õñp>o2þäúòÓp6}žÜ˜üц+E@§”åÎ|„ÖÝ©^½ž\€çÓÙp[ wJï_¿|qôša´áŠ9~ÆÝF›OŸKß/Ý1á½ÒR0íØÞ¿<8>#7%õ¼M¬ýâ½õ»E銛ßõ<£r‡·EwC»`¶®Š­ñ¼¶PÝ©F½ùUÏž-P®dÛQÒRñ›ÙøLt8˜é÷¤W^ѵüJó„$ÅÑh6_ a+ôÊñ ¾Ñ¾ßŽ._æôÍ=¾ž€ÃJí.O÷5TWß•G»R©yœß}÷Q—}ì²w±`7Kîawî—9æAne®´*¸ßÁô÷-]îz -æ¶‚ÚÚgü®0+°Äz§ñƒ/,ávçÝ>wyûÛo ·-Ñ=6våYÁ$"w,ä>¶hûØÖ'® 4…–8²Ǧ=ˆ³zäêJ´‚\<l0éJt‡˜Ú=ÛtåYoKY‚7íνsÜè2÷Û˜—¾¹Cüêž º¼W‘j6:Âv¡w—§[³wäIòy Ox¹`t‹¿®<«@míd ûÄ=ÈÓ©Õºâ¬àÔ˜M!ßÞFœƒÏÃ9ÔgÓk¬özp?£3nâ-žŽ.æÕºOÐ…VŨ­´ÏWŽÿïB^s¼¬4oC¸ò†iF\M¾†;ó0’iÉÊ•ï³VF1O£åÝyèLÛ¨|­ï_­Í×twœ¿*ã³üÙþ&ÿ ù>ÞC˜m’ý`R¦²ü‰õÁ¿Î߇/yXÉ´­Rùjó5?×:_ÃÝy˜LÓ0¾¬Í4­Ë׬‡»‡.Ëë3mŸï³?œfÞ^ú›xèM<<»§Êg¹†) %‘lg3~d¾fùŒ«qãn”Snâÿ%€ î³1¤øÿn Šõ! µ¶iÅž_/Æ£ ®£X¥\¯` ¤ÿ*@wKAëµ£œÆt1`f|©HŽ–/fÃß锡’Wçà ­6[Wçbûþ}ªî ™–^Òª+®õ´rίi­“«ôHËm¥eZ´Ô:Z¶¡¥¶Ñ2©¤Õ©L2­ÆÚf«µkÑ2kh™Æöf«íMËöfíMc{½Õöª¥£Yg{ÝØ^·m¿\Í´ô:­tcm­Ö¯fÞz}uc_µÍ¾*µõPE ±,o Ì(o ºÃR5nPm7,™dÓ­—j /Ó¶Õ²zµÎð²1¼t[iµ@¿V.Ù¸Aªõ´xµ\ç¹tƒJ[ÝPŸ³$©åÙrCV¹vƒm³TuºF–º-pÍ${^® ¬òËC\]—ÿëW×XåÚ³M+¿°'Zv+-Ý¢µN®üÑ’ÛhÕÇk¦ýZù+B¤U¿èÒÊ«õºÕ}ƒÞêRÙÒªåÒ¥˜äÒÚ|µK]—eã·±ô-§„uNñS¼ÝJ«å”°Î)¾qŠ—Ûh¹–)üÒ)ÿ(è© endstream endobj 822 0 obj << /Producer (pdfTeX-1.40.18) /Creator (TeX) /CreationDate (D:20171031221629-04'00') /ModDate (D:20171031221629-04'00') /Trapped /False /PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.18 (TeX Live 2017/Debian) kpathsea version 6.2.3) >> endobj 799 0 obj << /Type /ObjStm /N 38 /First 325 /Length 1514 /Filter /FlateDecode >> stream xÚXMoÜ6½ûWðè=æ§DA€ÄŽ‹ ®ÄI‹¢ÍAÙ¥"Zi¡Ûé¯ïŒ4\I+y“)ræÍ{Ã᬴ÂXÆ™0š%˜JÍ„N˜TFÉL(ËTšÂ¨™6 FÎŒ„}™°„%K¬8²TþÐ̰‚9ž0ÁÁ—Kâ°É]Ê8‹T2Ë1¢R0Á0Órà¡5NÀÖwb90J +*M LÓZvq,“&ŽI ËVp&5 ™&($“ÎáŠbJ*}b§2Ù M“„)§Ñ&ešK\±L£+Ó\­ä0q°Š´òäÕ«“óO¡É=vÎ'ço`šôÓY勦Knÿ\ùÇ.ãøôúõÄÛ ÞrÙûÆ?ã“]ò{om'Þ©³ãØÂޱŠtªºÙ;¿Îê!ÐùEÙΙ<©Ó!¤ž“Z.†RÙ{ócÞjBX' XjH¼JŽbé Ö/5ƒ’G±&‡¢–E ‡"í1,™L°–ÊCÙ–G³-å‹/a ¹—/ä¾÷–KÙC¶Er´ÔĤlù¤Ô";ÔèXc©¥‡!‡CꀰX¢(÷öÜ£ÈÓ1Å(ž(ŠÉmˆODQ„äviކT“Kô¹°Ä,çÆP¤åŠG(—.#‘³;ßd[_³NÏÄŠõ͈žÉ³¶ŸãrBS¾b ™XOÍÁ<ét| †mh" n}9Œ$˜rÕ0ðæ)Í“S*â§øw,ØY4ŽY4 zTJ¼%J9ÍAP*hzÒåØÈ`{çq0ÄÄ­Y0à&-á+£iS '%9 䤔mQ¿Ô>î8fvæ¡@Š‹¡@ŠDYGºhq¤KGy€H&EÄÓ…H„8â®A‡#îthME §6Vk|ˆffº÷æáPLã¥ø@Ê4¨Ññ(5Ê¡ÌACe°ˆø¬<÷fÑ ÞG" žŒ&Þàa(0QµEü~Šu<+{<](7›MhBYdù¿\óëråá¿ W\’·ÙúûSVmj´¹(·;0øòÐüXA›&oÛ7g¡@›«¶X#F½Â—¸~ü¶Y±é„Âãø¹ö`À“½Á.ë¬ñÑç"48¾{ÞU¾® MÓY^´´¬5ýïÄXì1Qƒç,—Y“uìCî!–TtÚ¸þ5«;Êw?Š&{†MCÙ¾ô÷¡ÅnÞø§È¹Z±`R9¨Ïª‰¡™FùסîÆ7y hoËØúï²íoŸŠ1ð¼Ghü9È,KïŠÇP•Å~0ÐêϬêrEé¸ >ïŽï¯°i¾­ð%œ6òì ãi_•Õ6ëîv~îñàûªãÔ~»ùÜ1­|—ùËrÝbÐάÏÌÚXA2vä÷ÅÆwg3»h‹¤É~¦ð}Ñø*ƒ~W©Œ1Ëï£3Â4ÇNÐU’r´0Ü'aãòÃA\dùºÍ³xYâÏݤL.ÊâÑWû0ëYK|_F˜É½i·_aí²z,K’,0ðUXw¥Ñ6»¶Ka~XŽ$êv$š²ê<©òo›o¾z±ì õ·[àöütNÂúüÚ?…þÊ]ÏïË,/i8Ž4K¼A­CM‡EE…oU¡l;Ô¾ns_2>úl“S7»kw»²j°#ÑñßµÛžRßö.Ãý½ÇÞã»Õò~’l:ùO~Û%²­üüì ]}pZ—›ƒ¨jVõ#9K.3ù±çôM!Öd¼ÁË Y¤Ó]ìW]%‹a½“{ÐyàÃýîbø—öäp¶ýKm÷¿A?JšF³øþ©ç€ 9¤4Zû[a)-VˆÅwˆƒÞB ‚X bEEf…ù¥Ký‹¹DÎÆ »¨ùgh—޲ûŸcü ñcçÙùxäå~9<@é¤ñCú^‡zô)ÑÕ–¾)üP‡ìEkÄþδ¢ endstream endobj 823 0 obj << /Type /XRef /Index [0 824] /Size 824 /W [1 3 1] /Root 821 0 R /Info 822 0 R /ID [ ] /Length 1928 /Filter /FlateDecode >> stream xÚ%—Yh[†×÷ï½›fhÒ4i›´™ç4MÒ!mÒ Ò4énÓtn“6Iû·‚8ƒ xaAÊ9ˆ‚ˆÕ AÁôp\Ç ÁO/”çB½9qâ\‰GøAôÂñB4Ï››‡õ½ëßû_{½ïv!üÏBh ²ïï ²²ê ì”5¯ï”Y1N‚Y m[Òx¤2 µµÒ¦)+`¨{A-¨õ ì  ìÍàh­à 8ƒ6ÐŽ€£ t‚.Ð z@/èC`Œ€P¶Ð0¬ßÛÏèçÀ$˜ØÑŸH'ÁYp\WÀ*¸ îƒÇàI¬šý Œ“à ˜WÀ5p“—‚c` ã€aÔM‚à´Ðê³¾ôØOwË 4ƒ€ñÕf|;?¿Ô­ÉžgÐFÐ俲Ó)4Ù3ôËO£É·Y0G)/çaH³h2ù<¸€¦çäþE ù[DS,Áe´e4åe hŠWФe°‚vM » ªhwÐÊ”×Àu´hJ'FÕÝ@{ˆ–Q®æ>m¢)í·€ }Ц)¾î2»%bñœò¸ÖŒöŒòxˆv-§\ræ8ÚSÊGà1šVÔÊM°…v m›RPšÎ¢mQê r´4}L/޶Œ¦î¬Ú7~Ãè“ѱBïMüòTB»Ž¶Aɬ¥ Ú*cNÌxªA»…ö·¹ªÞFã÷&œNõh÷Ñ´ HÚ‡ö¹J„+Çê#´»”,öÔŒ–£1ωeŸZHlMV°$¥x%¶‚t­M6²)¤v´ýhø›ØÒQ4¥°Q¤N´ChZÄl©McV|Ø<ûFêìi°VS¯…ž mx²ìQ§k5±ˆÓ1 ã,ìÄJNã¦Þ•6ÁÃS€å’X’é„…ó/Õ«…xÆÂÊ´JVYš±ð`A¥ÖÖ‚…í]§õZG-|èÒXiÉÂ'>¬‘ꬤɩZxñi=§ß«‰•37-|v^ Ã= _xK¥2DÓ†…¯þ^AOÛ¾1¥RITꔫg¾Ãè­ª\4ûö°J…«bá‡o©ÜêÀ^ ?Ù'MYSê-üüsÒ€‚t4ZøÅº:ÚîW o¿¦ŽpØÂï~­’0T0–K´º@èþ<©çºyä Ðv=v<ÿû«êý` Yøo‡:†Á10FÍjæÕqœ“fÍß•6 ¦ÌzV59‹”³`Ælì]=rœsfÓ_—¦_0»|SåEp\‹f«›êX7@ÕìÁOõŽÊ;`Íì}ÒôYí\wÍ>’é³Ú ÖÍ>U«rlš½ò7•lUQ­gà‰Ùç?@1>²¿DùûÜìå{êÈ,ïW Cc#`߈{Í^Ö0nÄÕØ`ö£OêaŽÏ¨uÞbö³ïI;ÚÌ~¹¤R+^Ëù¨ÙoKÒð8Åóóà¸.+€ó<çìί‚*¸8»sëüX7‡uÎéœ+*ë–u¼#-»úMµî€»ààØÎ9óò‡`lÎéü1Ø[`<OÇvþ .¤™' ÎmÉqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqßqß±Û±Û±Û±Û±Û±Û±ÛÁe°•%ËÎ~TsJ|Še˶;U’ 'N6œl8Ùp²ádÃɆ“ 'N6œl8Ùp"àDÀ‰€'Nœ8p"àDÀ‰€'Nœ8p"àD Ð>N "PèÂL Ýæt}#(ˆ@¡ë›ÜŸµìöôõVùØWÔ"‰(HD¡{.r$¢ ‰(tãÖmŽD$¢ …zQtXöþI}i§eo¾T«Ë²wÞTkçúÿ×?©Õc¥¦7ÔêµÒÇ_¨Õg¥/}M­~+½×¯Ö€•»æÔ´òÂîßá!+ð‹j [ùÕ]mÄÊßÚ}Û¨•ßþ±ZǬ2üOµÆ¬2õµôAu -0´¸f•W8ÐJÝûA38Z@+8à ´ƒ#à(è  tƒÐ ú@?ƒVùÌ¿‚U^Û ÿQÃcG endstream endobj startxref 362589 %%EOF units-2.16/configure.ac0000664000175000017500000001210713176043417014361 0ustar adrianadriandnl Copyright (C) 2006, 2014, 2017 Free Software Foundation, Inc dnl Process this file with autoconf to produce a configure script. AC_INIT(GNU units,2.16,adrianm@gnu.org) AC_PREREQ(2.59) AC_ARG_PROGRAM AC_SUBST(DEFIS) AC_SUBST(STRFUNC) AC_SUBST(UDAT) AC_SUBST(HAVE_PYTHON) AC_SUBST(PYTHON_VERSION) AC_SUBST(MKS_POSIX) AC_SUBST(MKS_RES) AC_SUBST(MKS_DRIVE) AC_SUBST(HAVE_MKS) dnl Hack to set correct CFLAGS for cl compiler while still dnl allowing user to override the CFLAGS setting saveCFLAGS=$CFLAGS AC_PROG_CC(gcc cc egcs cl.exe) AC_PROG_CC_C99 AC_DEFUN([AX_CHECK_COMPILE_FLAG], [AC_PREREQ(2.64)dnl for _AC_LANG_PREFIX and AS_VAR_IF AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" AC_COMPILE_IFELSE([m4_default([$5],[AC_LANG_PROGRAM()])], [AS_VAR_SET(CACHEVAR,[yes])], [AS_VAR_SET(CACHEVAR,[no])]) _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) AS_VAR_IF(CACHEVAR,yes, [m4_default([$2], :)], [m4_default([$3], :)]) AS_VAR_POPDEF([CACHEVAR])dnl ])dnl AX_CHECK_COMPILE_FLAGS if test "$CC" = cl.exe; then if test -z "$saveCFLAGS" ; then AC_MSG_NOTICE([setting special CFLAGS value for cl]) CFLAGS="-O2 -W3 -D_CRT_SECURE_NO_WARNINGS -nologo" fi if test `expr "$CFLAGS" : '.*D_CRT_SECURE_NO_WARNINGS'` -eq 0; then AC_MSG_NOTICE([disabling CRT_SECURE warnings for cl]) CFLAGS="$CFLAGS -D_CRT_SECURE_NO_WARNINGS" fi else dnl The -fpic option is needed with gcc if you want to compile a shared lib dnl and causes no harm for regular compilation. But cl.exe accepts it dnl and then prints a warning. AX_CHECK_COMPILE_FLAG(-fpic,[CFLAGS="$CFLAGS -fpic"]) fi AC_C_CONST AC_PROG_INSTALL AC_PROG_MKDIR_P dnl Checks for libraries. AC_SEARCH_LIBS(sin,m) dnl Check for readline with various possible required support libs AS_UNSET(ac_cv_lib_readline_readline) for termlib in "" -ltermcap -lncurses -lcurses; do if test "$ac_cv_lib_readline_readline" != yes ; then AS_UNSET(ac_cv_lib_readline_readline) AC_CHECK_LIB(readline,readline, [LIBS="-lreadline $termlib $LIBS";DEFIS="$DEFIS -DREADLINE"], [],[$termlib]) fi done if test "$ac_cv_lib_readline_readline" = yes; then AC_CHECK_DECL(rl_completion_suppress_append, [], [DEFIS="$DEFIS -DNO_SUPPRESS_APPEND"], [[#include ]]) fi dnl Checks for header files. AC_CHECK_HEADER(string.h,[],[DEFIS="$DEFIS -DSTRINGS_H"]) AC_CHECK_HEADER(stdlib.h,[],[DEFIS="$DEFIS -DNO_STDLIB_H"]) dnl Checks for library functions. AC_CHECK_FUNC(strchr,[],DEFIS="$DEFIS -DNO_STRCHR") AC_CHECK_FUNC(strspn,[],DEFIS="$DEFIS -DNO_STRSPN";STRFUNC="strfunc.$OBJEXT") AC_CHECK_FUNC(strtok,[],DEFIS="$DEFIS -DNO_STRTOK";STRFUNC="strfunc.$OBJEXT") AC_CHECK_FUNC(setenv,[],DEFIS="$DEFIS -DNO_SETENV") AC_CHECK_FUNC(setlocale,[],DEFIS="$DEFIS -DNO_SETLOCALE") AC_CACHE_CHECK([for locale and UTF-8 support], am_cv_utf8, [AC_TRY_LINK([ #define _XOPEN_SOURCE 600 #include #include #include ], [wchar_t *out;char *in;char *res; res=setlocale(LC_CTYPE,"");res=in; mbsrtowcs(out, &res, 2, NULL); wcswidth(out,2);], am_cv_utf8=yes, am_cv_utf8=no) ]) if test $am_cv_utf8 = yes; then DEFIS="$DEFIS -DSUPPORT_UTF8" fi AC_CACHE_CHECK([for isfinite], am_cv_isfinite, [AC_TRY_LINK([ #define _XOPEN_SOURCE 600 #include ], [float a;a=1;isfinite(a);], am_cv_isfinite=yes, am_cv_isfinite=no) ]) if test $am_cv_isfinite = no; then DEFIS="$DEFIS -DNO_ISFINITE" fi AC_CHECK_PROG(mkstoolkit,mksinfo,found,no) # assume that if we have the MKS Toolkit, we're running the Korn shell HAVE_MKS=no if test $mkstoolkit = found; then if mksinfo > /dev/null; then if test -n "$ROOTDIR"; then DEFIS="$DEFIS -DHAVE_MKS_TOOLKIT" echo 'using MKS Toolkit' MKS_POSIX=".POSIX:" MKS_RES='$(RES)' HAVE_MKS=yes # if the user has specified a drive, leave things alone. # otherwise, prepend the drive on which the Toolkit is installed case "$prefix" in ?:*) MKS_DRIVE= ;; *) MKS_DRIVE="${ROOTDIR%%:*}:" ;; esac else echo 'no ROOTDIR... cannot use MKS Toolkit' fi else echo 'mksinfo failed... not using MKS Toolkit' fi fi AC_PATH_PROG(PYTHON, python, no) if test $PYTHON = no; then HAVE_PYTHON=no echo ' Units will work without python but the currency update' echo ' script, units_cur, will not be installed' PYTHON='' else HAVE_PYTHON=yes fi dnl Check for path search option AC_ARG_ENABLE([relocation], AC_HELP_STRING([--enable-relocation], [look in program directory for units data files (default is NO)]), [if test $enable_relocation = yes ;then UDAT="" echo relocation enabled else UDAT="$datadir/units/" echo relocation disabled fi ], [UDAT="$datadir/units/"]) AC_CONFIG_FILES(Makefile) AC_OUTPUT units-2.16/INSTALL0000664000175000017500000001705110232761036013121 0ustar adrianadrianBasic Installation ================== These are generic installation instructions. The `configure' shell script attempts to guess correct values for various system-dependent variables used during compilation. It uses those values to create a `Makefile' in each directory of the package. It may also create one or more `.h' files containing system-dependent definitions. Finally, it creates a shell script `config.status' that you can run in the future to recreate the current configuration, a file `config.cache' that saves the results of its tests to speed up reconfiguring, and a file `config.log' containing compiler output (useful mainly for debugging `configure'). If you need to do unusual things to compile the package, please try to figure out how `configure' could check whether to do them, and mail diffs or instructions to the address given in the `README' so they can be considered for the next release. If at some point `config.cache' contains results you don't want to keep, you may remove or edit it. The file `configure.in' is used to create `configure' by a program called `autoconf'. You only need `configure.in' if you want to change it or regenerate `configure' using a newer version of `autoconf'. The simplest way to compile this package is: 1. `cd' to the directory containing the package's source code and type `./configure' to configure the package for your system. If you're using `csh' on an old version of System V, you might need to type `sh ./configure' instead to prevent `csh' from trying to execute `configure' itself. Running `configure' takes awhile. While running, it prints some messages telling which features it is checking for. 2. Type `make' to compile the package. 3. Optionally, type `make check' to run any self-tests that come with the package. 4. Type `make install' to install the programs and any data files and documentation. 5. You can remove the program binaries and object files from the source code directory by typing `make clean'. To also remove the files that `configure' created (so you can compile the package for a different kind of computer), type `make distclean'. There is also a `make maintainer-clean' target, but that is intended mainly for the package's developers. If you use it, you may have to get all sorts of other programs in order to regenerate files that came with the distribution. Compilers and Options ===================== Some systems require unusual options for compilation or linking that the `configure' script does not know about. You can give `configure' initial values for variables by setting them in the environment. Using a Bourne-compatible shell, you can do that on the command line like this: CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure Or on systems that have the `env' program, you can do it like this: env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure Compiling For Multiple Architectures ==================================== You can compile the package for more than one kind of computer at the same time, by placing the object files for each architecture in their own directory. To do this, you must use a version of `make' that supports the `VPATH' variable, such as GNU `make'. `cd' to the directory where you want the object files and executables to go and run the `configure' script. `configure' automatically checks for the source code in the directory that `configure' is in and in `..'. If you have to use a `make' that does not supports the `VPATH' variable, you have to compile the package for one architecture at a time in the source code directory. After you have installed the package for one architecture, use `make distclean' before reconfiguring for another architecture. Installation Names ================== By default, `make install' will install the package's files in `/usr/local/bin', `/usr/local/man', etc. You can specify an installation prefix other than `/usr/local' by giving `configure' the option `--prefix=PATH'. You can specify separate installation prefixes for architecture-specific files and architecture-independent files. If you give `configure' the option `--exec-prefix=PATH', the package will use PATH as the prefix for installing programs and libraries. Documentation and other data files will still use the regular prefix. In addition, if you use an unusual directory layout you can give options like `--bindir=PATH' to specify different values for particular kinds of files. Run `configure --help' for a list of the directories you can set and what kinds of files go in them. If the package supports it, you can cause programs to be installed with an extra prefix or suffix on their names by giving `configure' the option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. Optional Features ================= Some packages pay attention to `--enable-FEATURE' options to `configure', where FEATURE indicates an optional part of the package. They may also pay attention to `--with-PACKAGE' options, where PACKAGE is something like `gnu-as' or `x' (for the X Window System). The `README' should mention any `--enable-' and `--with-' options that the package recognizes. For packages that use the X Window System, `configure' can usually find the X include and library files automatically, but if it doesn't, you can use the `configure' options `--x-includes=DIR' and `--x-libraries=DIR' to specify their locations. Specifying the System Type ========================== There may be some features `configure' can not figure out automatically, but needs to determine by the type of host the package will run on. Usually `configure' can figure that out, but if it prints a message saying it can not guess the host type, give it the `--host=TYPE' option. TYPE can either be a short name for the system type, such as `sun4', or a canonical name with three fields: CPU-COMPANY-SYSTEM See the file `config.sub' for the possible values of each field. If `config.sub' isn't included in this package, then this package doesn't need to know the host type. If you are building compiler tools for cross-compiling, you can also use the `--target=TYPE' option to select the type of system they will produce code for and the `--build=TYPE' option to select the type of system on which you are compiling the package. Sharing Defaults ================ If you want to set default values for `configure' scripts to share, you can create a site shell script called `config.site' that gives default values for variables like `CC', `cache_file', and `prefix'. `configure' looks for `PREFIX/share/config.site' if it exists, then `PREFIX/etc/config.site' if it exists. Or, you can set the `CONFIG_SITE' environment variable to the location of the site script. A warning: not all `configure' scripts look for a site script. Operation Controls ================== `configure' recognizes the following options to control how it operates. `--cache-file=FILE' Use and save the results of the tests in FILE instead of `./config.cache'. Set FILE to `/dev/null' to disable caching, for debugging `configure'. `--help' Print a summary of the options to `configure', and exit. `--quiet' `--silent' `-q' Do not print messages saying which checks are being made. `--srcdir=DIR' Look for the package's source code in directory DIR. Usually `configure' can determine that directory automatically. `--version' Print the version of Autoconf used to generate the `configure' script, and exit. `configure' also accepts some other, not widely useful, options. units-2.16/UnitsMKS.texinfo0000664000175000017500000005175213176223374015161 0ustar adrianadrian\input texinfo @c -*-texinfo-*- @c %**start of header @setfilename UnitsMKS.info @finalout @setchapternewpage off @firstparagraphindent none @set EDITION 2 @set VERSION 2.16 @set TKVERSION 10.0 @set OSVERSION 10 @set VSVERSION 2015 @set BUILDDATE @w{19 October} 2017 @c %**end of header @copying This manual is for building and installing GNU @command{units} (version @value{VERSION}) on Microsoft Windows with the PTC MKS Toolkit. Copyright @copyright{} 2016--2017 Free Software Foundation, Inc. @end copying @titlepage @title @w{Building and Installing} @w{GNU @command{units}} on @w{Microsoft Windows} with the @w{MKS Toolkit} @subtitle Edition @value{EDITION} for @command{units} Version @value{VERSION} @author Jeff Conrad @page @vskip 0pt plus 1filll @insertcopying @end titlepage @contents @iftex @headings off @everyheading Building @command{units} on Windows with MKS Toolkit @| @| @thispage @end iftex @macro label {text} @w{@sansserif{\text\}} @end macro @node Preface @unnumbered Preface This manual covers configuring, building, and installing GNU @command{units} from the MKS Korn shell on Microsoft Windows. The process runs much as it would on Unix-like systems, and much of what follows assumes that the installation will be in the same places as they would on Unix-like systems (e.g., @file{C:/usr/local/bin} for the executable). Most of the discussion implicitly assumes using Microsoft Visual Studio for compiling. If Visual Studio is installed but Unix-like commands are not available, you can probably build @command{units} from the Windows command prompt using @file{Makefile.Win}---@pxref{Top,,,UnitsWin,UnitsWin} for details. A binary distribution for Windows is available, but if you use @command{more} or @command{less} as your pager, it is better to build @command{units} for MKS---@pxref{Behavior of @env{PAGER}}, for details. The system on which the build was done had @file{/bin} as a symbolic link to @w{@file{C:/Program Files (x86)/MKS Toolkit/mksnt}}; with this approach, there is no need to change the first lines of any scripts in the units distribution. The most recent build was for @command{units} version @value{VERSION}, using the MKS Toolkit for Developers version @value{TKVERSION} and Microsoft Visual Studio @value{VSVERSION} on Microsoft Windows Professional @value{OSVERSION} on @value{BUILDDATE}. --- Jeff Conrad (@email{jeff_conrad@@msn.com}) @value{BUILDDATE} @node Building and Installing @command{units} @unnumbered Building and Installing @command{units} @node Overview @unnumberedsec Overview On Unix-like systems, building and installing @command{units} is simple; just type @example ./configure; make; make install @end example @noindent On Windows---even if Unix-like utilities such as the MKS Toolkit are available---additional steps are usually needed. A more realistic procedure might be as follows: @enumerate @item Create a @file{config.site} file that specifies several parameters for @command{configure}. Alternatively, you can pass the parameters to @command{configure} at invocation. @item Start an instance of the Korn shell with administrative privilege. @item If you are using Microsoft Visual Studio, initialize the environment variables for Visual Studio with the @command{setvcvars} script: @example . ./setvcvars @end example @item Prepare the files needed to build @command{units} by running the configuration script: @example ./configure @end example @item Manually adjust @file{Makefile} if necessary. @item Build the executable and support files: @example make @end example @item If the build is successful, install the package: @example make install @end example @end enumerate @noindent Some of the issues involved are discussed below. @node Configuring @command{configure} @unnumberedsec Configuring @command{configure} The @command{configure} script attempts to make the build process system independent. But on non--Unix-like systems, @command{configure} often needs some help. When using the MKS Toolkit on Windows, @command{configure} depends on the environment variables @env{ac_executable_extensions} and @env{PATH_SEPARATOR}. It is often easier to use the Microsoft Visual Studio C compiler @command{cl} directly rather than through the MKS wrapper @command{cc}; for this to happen, the variable @env{CC} must be set to @code{cl} or @code{cl.exe}. The variables can be given to @command{configure} in several ways: @itemize @bullet @item The variables can be passed to @command{configure} at invocation as name--value pairs, i.e., @example ./configure [@var{name}=@var{value} ...] @end example @item The variables can be set and marked for export, e.g., @example @group export ac_executable_extensions=".exe .sh .ksh" export PATH_SEPARATOR=";" @end group @end example @item The variables can be set in a site configuration script that is read by @command{configure} at invocation. Such a script might include @example @group ac_executable_extensions=".exe .sh .ksh" PATH_SEPARATOR=";" @end group @end example @noindent By default, the script is @w{@file{/usr/local/share/config.site}}. If you specify a location other than @file{/usr/local/} for the installation with the @option{--prefix} option to @command{configure}, the configuration script is expected to be @w{@file{@var{prefix}/local/ share/config.site}}. If you wish to have a fixed location for the configuration script, you can do so with the @env{CONFIG_SITE} environment variable. For example, if you have a configuration script that you want read regardless of the @option{--prefix} option, you could give @example CONFIG_SITE="C:/usr/local/share/config.site" @end example @noindent A more complete @file{config.site} might include @example @group ac_executable_extensions=".exe .sh .ksh" ac_ext=cpp prefix=C:/usr/local PATH_SEPARATOR=";" INSTALL="C:/usr/local/bin/install.exe -c" CC=cl.exe CFLAGS="-O2 -W3 -D_CRT_SECURE_NO_WARNINGS -nologo" CXX=cl.exe CXXFLAGS="-O2 -W3 -D_CRT_SECURE_NO_WARNINGS -nologo" @end group @end example (@env{ac_ext}, @env{CXX}, and @env{CXXFLAGS} are not needed for building @command{units}) @end itemize @node Customizing the Installation @unnumberedsec Customizing the Installation By default, @samp{make install} installs @command{units} in subdirectories of @file{/usr/local}; you can specify a different location using the @option{--prefix} option. For example, if you want to install @command{units} in @file{C:/Program Files (x86)/GNU}, you might invoke @command{configure} with @example @./configure --prefix=C:/Progra~2/GNU @end example @noindent The Windows ``8.3'' short name is used because the installation process does not like spaces or parentheses in pathnames. The short name for @file{C:/Program Files (x86)} is usually as shown, but can vary from system to system. You can find the actual short name on your system with the @command{dosname} command, e.g., @example dosname "C:/Program Files (x86)" @end example If you don't specify a prefix, or you specify a prefix without a drive letter, the installation will be on the same drive as the MKS Toolkit. @command{configure} provides many other options for customizing the installation; typing @example ./configure --help @end example @noindent gives a summary of these options. Running @command{configure} is discussed in detail under the section ``Running @command{configure} Scripts'' in the GNU documentation for @command{autoconf}, available at @url{http:// www.gnu.org/software/autoconf/}. @node Administrative Privilege @unnumberedsec Administrative Privilege If you plan to install @command{units} in a location where you lack write permission, you'll need administrative permission for the installation and perhaps for the configuration and build (@pxref{``install'' Programs}). The easiest way to do this is to start the shell by right-clicking on the shell icon (or a shortcut) from Explorer and using the @label{Run as administrator} option from the context menu. @node Environment Variables for Visual Studio @unnumberedsec Environment Variables for Visual Studio Microsoft Visual Studio requires that several environment variables (e.g., @env{PATH}) be set to include numerous directories for a build from the command line. Visual Studio provides an option on the Windows Start Menu to run an instance of the Windows command interpreter with these variables initialized. @node Initialization with the Korn Shell @unnumberedsubsec Initialization with the Korn Shell The @command{setvcvars} script included in the units distribution will set these variables for the shell by running the batch file used for the Visual Studio command prompt, writing the variable values to the standard output, and reading them into the shell. For the values to persist, the script must of course be run in the current environment, e.g., @samp{source ./setvcvars} or @w{@samp{. ./setvcvars}}. These variables must be set for any command-line build with Visual Studio, so it may be helpful to copy the script to a directory that's in @env{PATH} (e.g., @file{/usr/local/bin}). @node Adjustment for Different Visual Studio Installations @unnumberedsubsec Adjustment for Different Visual Studio Installations The location of the batch file and the values of the environment variables are installation specific; the @command{setvcvars} script assumes a standard installation of Visual Studio 2015 Express or Visual Studio 2015 Community. For a nonstandard installation or for a different version, the value of @code{vsbatfile} in the script may need to be modified. To find the appropriate value, go to the Windows Start Menu, find Visual Studio 20@var{xx} @label{Developer Command Prompt for VS20@var{xx}}, right click, and select @label{Properties}; the @label{Target} on the @label{Shortcut} tab should contain the proper path for the batch file. On @w{Windows 10}, additional steps are needed to find the location of the batch file. Find Visual Studio 20@var{xx} on the Start Menu, click, right click on @label{Developer Command Prompt for VS20@var{xx}}, find @label{More}, right click, and select @label{Open file location}. In the instance of File Explorer that opens, find the @label{Developer Command Prompt} shortcut, right click, and select @label{Properties}; the @label{Target} on the @label{Shortcut} tab should contain the proper path for the batch file. @node ``install'' Programs @unnumberedsec ``install'' Programs If you have an executable @command{install} program, you may get an error message to the effect of @example cannot execute: The requested operation requires elevation @end example @noindent while running @command{configure} without elevated privileges on Windows Vista or later with User Account Control (UAC) enabled. If UAC is enabled, the system thinks executable programs whose names contain ``install'', ``patch'', ``update'', and similar always require elevated privilege, and will refuse to run them without this privilege. If this happens, @command{configure} will simply use the @command{install-sh} script included with the @command{units} distribution. But if for some reason you wish to use your version of @command{install}, there are several ways to do so. @node Running with Administrative Privilege @unnumberedsubsec Running with Administrative Privilege The easiest solution is to do the configure with a shell with administrative privilege, as discussed in @ref{Administrative Privilege}. After installation, testing should be done using a shell without elevated privilege. @node Providing a Manifest File @unnumberedsubsec Providing a Manifest File An alternative is to tell UAC that elevated privilege is not required. To do this, create a manifest file containing @example @group @end group @end example @noindent name it @file{install.exe.manifest}, and place it in the same directory as install.exe. Sometimes this has no effect; if this happens, adjust the modification times of the manifest and executable so they match. The procedure is discussed at @url{https://github.com/bmatzelle/gow/issues/156}, and a similar discussion for GNU patch is given at @url{http://math.nist.gov/oommf/software-patchsets/patch_on_Windows7.html}. @noindent Last access: 16 May 2016 @node Embedding a Manifest in the install Program @unnumberedsubsec Embedding a Manifest in the install Program If you are using MS Visual Studio, an alternative to having the manifest file in the executable directory is to embed the manifest in the executable using the manifest tool @command{mt.exe}, obviating the need to worry about the time stamps of the files. This is discussed in NIST link above; if the command is run from the shell, the semicolon must be escaped: @example mt -manifest install.exe.manifest -outputresource:install.exe@backslashchar{};1 @end example @noindent Microsoft describe manifests at @url{https://msdn.microsoft.com/en-us/library/bb756929.aspx}. The Code Project also discusses UAC awareness: @url{http://www.codeproject.com/Articles/17968/Making-Your-Application-UAC-Aware}. @node Fine Tuning @file{Makefile} @unnumbered Fine Tuning @file{Makefile} @node Behavior of @env{PAGER} @unnumberedsec Behavior of @env{PAGER} The MKS versions of @command{more} and @command{less} do not recognize @option{+}@var{n} as an option to display a file beginning at line @var{n}, so @w{@samp{help @var{unit}}} from the @command{units} prompt will fail. If @command{configure} is able to detect the Toolkit by running @command{mksinfo}, @example -DHAVE_MKS_TOOLKIT @end example @noindent is added to the @code{DEFS} in Makefile. If you have the MKS Toolkit and it somehow is not detected, you should add this manually. @node MKS @command{make} and Suffix Rules @unnumberedsec MKS @command{make} and Suffix Rules The MKS version of @command{make} ignores suffix rules in @file{Makefile} unless the line @example .POSIX: @end example @noindent appears in @file{Makefile} before any suffix rules. This target is also required for the currency updater @command{units_cur} to run properly from @file{Makefile}. The configure script attempts to detect the Toolkit by running mksinfo, and if this succeeds, the @code{.POSIX} target is added. If you have the MKS Toolkit and it somehow is not detected, you should add this line manually. @node Install Program @unnumberedsec Install Program If the @env{PATH} at shell invocation uses the backslash as the path separator, and you have a BSD-compatible @command{install} program that is detected by @command{configure}, the backslashes may be removed, giving an incorrect @file{Makefile} entry something like @example INSTALL = c:usrlocalbin/install.exe -c @end example @noindent Add the slashes to get @example INSTALL = c:/usr/local/bin/install.exe -c @end example @noindent If you will always want to use the same installation program, you can specify it with the @env{INSTALL} variable---@pxref{Configuring @command{configure}}. Giving a @env{PATH} with forward slashes in a file given by @env{ENV} will have no effect because configure unsets that variable, and the file will not be read. @node Icons and File Association @unnumbered Icons and File Association Two icons are provided: @file{unitsfile.ico} and @file{unitsprog.ico}. The former is made the default icon for @command{units} data files, and the latter is embedded in the executable file by the build process. The latter also may be useful if you wish to create a shortcut to the @command{units} program. Both icons are copied to the same directory as the @command{units} data files. The installation process associates @command{units} data files with the MKS graphical @command{vi} editor @command{viw}; double-clicking on the file icon opens the file for editing. The encoding is set to UTF-8. @node MKS @command{units} @unnumbered MKS @command{units} The MKS Toolkit includes a very old version of @command{units}; if the MKS executable directory is earlier in @env{PATH} than the installation directory for GNU @command{units}, a command-line invocation will run the MKS version. To ensure that you run GNU @command{units}, either change @env{PATH} so that GNU @command{units} is found first, or create an alias for GNU @command{units}. @node Currency Definitions Updater @unnumbered Currency Definitions Updater The script @command{units_cur} is used to update currency definitions; it requires Python (available from @url{https://www.python.org/}). @node Installing Python @unnumberedsec Installing Python If you want to use the currency updater, install Python if it is not already installed; ensure that Python is installed @emph{before} running @command{configure}. If you need to install Python, unless you have (or anticipate having) applications that depend on @w{Python 2}, the best choice is probably to install @w{Python 3}. Python's location must be included in @env{PATH} so the shell can find it; the Python installer usually offers to do this. When you first run @command{units_cur}, you may get a complaint about a missing module; for example, @codequoteundirected on @example ModuleNotFoundError: No module named 'requests' @end example @codequoteundirected off @noindent If so, you will need to install the missing module. The easiest way to do this is with the @command{pip} command; for example, @example pip install requests @end example @noindent If you have @w{Python 2.7.9} or later or @w{Python 3.4} or later, you should have @command{pip}, though you may need to upgrade to the latest version. If you do not have @command{pip}, you will need to install it manually; see the Python documentation or the Python website for instructions on how to do this. @node Python and @command{configure} @unnumberedsec Python and @command{configure} The complete pathname in @file{Makefile} may contain backslashes; for example, @example PYTHON = C:\Progra~1\Python\Python36/python.exe @end example @noindent The build will fail unless the backslashes are changed to forward slashes; for example, @example PYTHON = C:/Progra~1/Python/Python36/python.exe @end example @noindent If a 32-bit version of Python is installed on a 64-bit Windows system, the @file{Makefile} entry may contain parentheses as well as backslashes, e.g., @example PYTHON = C:\Program Files (x86)\Python\Python36/python.exe @end example @noindent this will usually give a ``syntax error'' message when running @command{configure}. A @file{Makefile} entry such as this must be enclosed in single quotes for the build of units to succeed. The problem can be avoided by using the 8.3 equivalent of the Python installation directory in @env{PATH}, e.g., @example C:/Progra~2/Python/Python36/python.exe @end example @noindent An alternative is to install the 64-bit version of Python so that the installation directory will be @file{C:\Program Files}. The backslashes can be avoided by passing @env{PYTHON} to @command{configure} at invocation, or by specifying it in @file{config.site}, e.g., @example PYTHON=C:/Progra~2/Python/Python36/python.exe @end example @noindent A disadvantage is that if the installation directory changes with a future version of Python, @file{config.site} will need to be manually updated. A better approach is to give the normal Unix/Linux pathname: @example PYTHON=/usr/bin/python @end example @noindent This file need not exist; it simply tells the shell to use Python. Do not include the volume specifier (e.g., @code{C:}) or the @code{.exe} extension; if you do, the shell will assume that the path @emph{does} exist, and will complain that it cannot find it. @node Running the Updater @unnumbered Running the Updater @node Updating from the Command Line @unnumberedsec Updating from the Command Line If the location of @command{units_cur} is on your @env{PATH}, you can update the definitions by entering @samp{units_cur} from the command line; you will need elevated permission if you lack write permission on the file. @node Automatic Updates @unnumberedsec Automatic Updates The easiest way to keep definitions updated is to create an entry in the Windows Task Scheduler. The Task Scheduler is fussy about the format for the action, which must be an executable file; an entry might look something like @example C:\Windows\py.exe "C:\usr\local\bin\units\units_cur" @end example @noindent if the Python launcher is in @file{C:\Windows} and the script is in @file{C:\usr\local\bin}. @bye units-2.16/locale_map.txt0000664000175000017500000001270611747125613014736 0ustar adrianadrianAfrikaans_South Africa af_ZA Albanian_Albania sq_AL Alsatian_France gsw_FR Amharic_Ethiopia am_ET Arabic_Algeria ar_DZ Arabic_Bahrain ar_BH Arabic_Egypt ar_EG Arabic_Iraq ar_IQ Arabic_Jordan ar_JO Arabic_Kuwait ar_KW Arabic_Lebanon ar_LB Arabic_Libya ar_LY Arabic_Morocco ar_MA Arabic_Oman ar_OM Arabic_Qatar ar_QA Arabic_Saudi Arabia ar_SA Arabic_Syria ar_SY Arabic_Tunisia ar_TN Arabic_U.A.E. ar_AE Arabic_Yemen ar_YE Armenian_Armenia hy_AM Assamese_India as_IN Azeri_Azerbaijan, Cyrillic az_AZ Azeri_Azerbaijan, Latin az_AZ Bashkir_Russia ba_RU Basque_Basque eu_ES Belarusian_Belarus be_BY Bengali_Bangladesh bn_?? Bengali_India bn_IN Bosnian_Neutral bs_?? Bosnian_Bosnia and Herzegovina, Cyrillic bs_BA Bosnian_Bosnia and Herzegovina, Latin bs_BA Breton_France br_FR Bulgarian_Bulgaria bg_BG Central Kurdish_Iraq ku_IQ Cherokee_Cherokee chr_Cher Catalan_Spain ca_ES Chinese_Hong Kong SAR, PRC zh_HK Chinese_Macao SAR zh_MO Chinese_Singapore zh_SG Chinese_Simplified zh_Hans Chinese_Traditional zh_Hant Corsican_France co_FR Croatian_Neutral hr_?? Croatian_Bosnia and Herzegovina, Latin hr_BA Croatian_Croatia hr_HR Czech_Czech Republic cs_CZ Danish_Denmark da_DK Dari_Afghanistan prs_AF Divehi_Maldives dv_MV Dutch_Belgium nl_BE Dutch_Netherlands nl_NL English_Australia en_AU English_Belize en_BZ English_Canada en_CA English_Caribbean en_029 English_India en_IN English_Ireland en_IE English_Ireland en_IE English_Jamaica en_JM English_Malaysia en_MY English_New Zealand en_NZ English_Philippines en_PH English_Singapore en_SG English_South Africa en_ZA English_Trinidad and Tobago en_TT English_United Kingdom en_GB English_United States en_US English_Zimbabwe en_ZW Estonian_Estonia et_EE Faroese_Faroe Islands fo_FO Filipino_Philippines fil_PH Finnish_Finland fi_FI French_Belgium fr_BE French_Canada fr_CA French_France fr_FR French_Luxembourg fr_LU French_Monaco fr_MC French_Switzerland fr_CH Frisian_Netherlands fy_NL Galician_Spain gl_ES Georgian_Georgia ka_GE German_Austria de_AT German_Germany de_DE German_Liechtenstein de_LI German_Luxembourg de_LU German_Switzerland de_CH Greek_Greece el_GR Greenlandic_Greenland kl_GL Gujarati_India gu_IN Hausa_Nigeria ha_NG Hawiian_United States haw_US Hebrew_Israel he_IL Hindi_India hi_IN Hungarian_Hungary hu_HU Icelandic_Iceland is_IS Igbo_Nigeria ig_NG Indonesian_Indonesia id_ID Inuktitut_Canada iu_CA, Latin Inuktitut_Canada iu_CA, Canadian Syllabics Irish_Ireland ga_IE isiXhosa_South Africa xh_ZA isiZulu_South Africa zu_ZA Italian_Italy it_IT Italian_Switzerland it_CH Japanese_Japan ja_JP Kannada_India kn_IN Kazakh_Kazakhstan kk_KZ Khmer_Cambodia kh_KH K'iche_Guatemala qut_GT Kinyarwanda_Rwanda rw_RW Konkani_India kok_IN Korean_Korea ko_KR Kyrgyz_Kyrgyzstan ky_KG Lao_Lao PDR lo_LA Latvian_Latvia lv_LV Lithuanian_Lithuanian lt_LT Lower Sorbian_Germany dsb_DE Luxembourgish_Luxembourg lb_LU Macedonian_Macedonia, FYROM mk_MK Malay_Brunei Darassalam ms_BN Malay_Malaysia ms_MY Malayalam_India ml_IN Maltese_Malta mt_MT Maori_New Zealand mi_NZ Mapudungun_Chile arn_CL Marathi_India mr_IN Mohawk_Canada moh_CA Mongolian_Mongolia, Cyrillic mn_MN Mongolian_Mongolia, Mong mn_MN Nepali_Nepal ne_NP Nepali_India ne_IN Norwegian_BokmÃ¥l, Norway no_NO Norwegian_Nynorsk, Norway no_NO Occitan_France oc_FR Oriya_India or_IN Pashto_Afghanistan ps_AF Persian_Iran fa_IR Polish_Poland pl_PL Portuguese_Brazil pt_BR Portuguese_Portugal pt_PT Pular_Senegal ff_SN Punjabi_India, Gurmukhi script pa_IN Punjabi_Pakistan, Arabic script pa_PK Quechua_Bolivia quz_BO Quechua_Ecuador quz_EC Quechua_Peru quz_PE Romanian_Romania ro_RO Romansh_Switzerland rm_CH Russian_Russia ru_RU Sakha_Russia sah_RU Sami_Inari, Finland smn_FI Sami_Lule, Norway smj_NO Sami_Lule, Sweden smj_SE Sami_Northern, Finland se_FI Sami_Northern, Norway se_NO Sami_Northern, Sweden se_SE Sami_Skolt, Finland sms_FI Sami_Southern, Norway sma_NO Sami_Southern, Sweden sma_SE Sanskrit_India sa_IN Serbian_Neutral sr_?? Serbian_Bosnia and Herzegovina, Cyrillic sr_BA Serbian_Bosnia and Herzegovina, Latin sr_BA Serbian_Croatia sr_HR Serbian_Serbia and Montenegro, Former, Cyrillic sr_CS Serbian_Serbia and Montenegro, Former, Latin sr_CS Sesotho sa Leboa_South Africa nso_ZA Setswana / Tswana_Botswana tn_BW Setswana / Tswana_South Africa tn_ZA Sindhi_Pakistan sd_PK Sinhala_Sri Lanka si_LK Slovak_Slovakia sk_SK Slovenian_Slovenia sl_SI Spanish_Argentina es_AR Spanish_Bolivia es_BO Spanish_Chile es_CL Spanish_Colombia es_CO Spanish_Costa Rica es_CR Spanish_Dominican Republic es_DO Spanish_Ecuador es_EC Spanish_El Salvador es_SV Spanish_Guatemala es_GT Spanish_Honduras es_HN Spanish_Mexico es_MX Spanish_Nicaragua es_NI Spanish_Panama es_PA Spanish_Paraguay es_PY Spanish_Peru es_PE Spanish_Puerto Rico es_PR Spanish_Spain, Modern Sort es_ES Spanish_Spain, Traditional Sort es_ES Spanish_United States es_US Spanish_Uruguay es_UY Spanish_Venezuela es_VE Swahili_Kenya sw_KE Swedish_Finland sv_FI Swedish_Sweden sv_SE Swedish_Sweden sv_SE Syriac_Syria syr_SY Tajik_Tajikistan, Cyrillic tg_TJ Tamazight_Algeria, Latin tzm_DZ Tamil_India ta_IN Tamil_Sri Lanka ta_LK Tatar_Russia tt_RU Telugu_India te_IN Thai_Thailand th_TH Tibetan_PRC bo_CN Tigrinya_Eritrea ti_ER Tigrinya_Ethiopia ti_ET Turkish_Turkey tr_TR Turkmen_Turkmenistan tk_TM Ukrainian_Ukraine uk_UA Upper Sorbian_Germany hsb_DE Urdu_(reserved) ur_?? Urdu_Pakistan ur_PK Uyghur_PRC ug_CN Uzbek_Uzbekistan, Cyrillic uz_UZ Uzbek_Uzbekistan, Latin uz_UZ Valencian_Valencia ca_ES-Valencia Vietnamese_Vietnam vi_VN Welsh_United Kingdom cy_GB Wolof_Senegal wo_SN Yi_PRC ii_CN Yoruba_Nigeria yo_NG units-2.16/README0000664000175000017500000001726013171001613012743 0ustar adrianadrianGNU 'units' converts between different systems of units. It can handle multiplicative scale changes. It can also handle nonlinear conversions such as Celsius to Fahrenheit (which may appear to be linear but is actually affine). ------------------------------------------------------------------ Installation General installation instructions appear in the file 'INSTALL'. You should be able to run './configure' followed by 'make'. If you give no options to configure, it will compile units to look for the units data file in a standard location (probably /usr/local/share). If you try to use the program without installing you will need to use the '-f' option. If you don't want to commit to an installation location, you can invoke configure by typing './configure --enable-path-search'. Then no path name will be compiled into 'units' and it will search the current directory and the directories listed in your PATH environment variable to find the units data file. If you are building on Windows with the MKS Toolkit, see the file 'UnitsMKS.pdf'. If you are building with Microsoft Visual Studio from the Windows command prompt, see the file 'UnitsWin'. For full functionality you should have the GNU readline library installed to provide history and editing of data entry. You can update currency conversions using the units_cur script which requires Python and the unidecode module. The documentation is available in texinfo, roff, and text format. The man page is generated automatically from the texinfo documentation. This man page produces readable results when run through nroff, but it should probably not be printed with troff or groff--no effort has been made to ensure that it prints out reasonably. To generate a printed manual, use 'units.dvi' instead. The distribution includes three icons that may be useful for installation in a GUI. Use the icotool command to extract the png files from the .ico files. The icon_ms.png file is suitable for use as a small button. This program has the following incompatibilties with unix 'units': * The '-' character is a subtraction operator rather than a multiply operator by default. * Exponentiation in numbers requires an 'e', so you must write 2.5e-2 instead of 2.5-2. * Prefixes are listed in the units file. * GNU 'units' tries the -s, -es, and -ies plural forms. * The default output format is slightly different. * The units database is much larger and more informative, but with some differences. (e.g. 'g' is for gravity in unix 'units' and grams in GNU 'units'.) The comment character has been changed to '#'. GNU 'units' includes the following extensions: * Multiplication can be written with a '*' if desired. * Exponents can be written with '^' or '**' in units. * Exponents can be larger than 9 if written with '^' or '**'. * Sums of units can be converted. * The units data file is extensively commented. * Units which measure reciprocal dimensions can be converted. * Parentheses for grouping are supported. * Funtions such as sin, cos, and log are supported. * Roots of units and rational exponents can be computed. * Nonlinear units conversions are supported. * Conversion to lists of units (e.g. feet and inches) is supported ---------------------------------------------------------------------- When updating from 1.x to 2.x: The name of the personal units file has changed from $HOME/units.dat to $HOME/.units ($HOME/unitdef.units under Windows). The format for nonlinear unit definitions has changed. Run 'units -c' and add the "units=" keyword in front of any bracketed unit specifications. ------------------------------------------------------------------ Ports Windows: Building with Microsoft Visual Studio units can be built from the Windows command prompt using Visual Studio; see UnitsWin for details. units can also be built from the the MKS Korn shell using Visual Studio; see UnitsMKS for details. Windows: Binary Distribution A binary distribution for Windows is available at http://ftp.gnu.org/gnu/units/windows/. The executable was built with Microsoft Visual Studio using Makefile.Win and the same source files included in the source distribution. There is currently no support for UTF-8 or readline; however, command history and intraline editing are available via the standard Windows console facilities described in the documentation for doskey. A port of units 1.87 to Windows is available from the http://gnuwin32.sourceforge.net/packages/units.htm This port includes readline support. A Java version of units by Roman Redziejowski is available on SourceForge at http://units-in-java.sourceforge.net/ Two versions are available for Android. Steve Pomeroy has a version based on the the above Java version that you can obtain at http://staticfree.info/projects/units/ and Keith Flowers has compiled the C code for Android: http://apps.keithflower.org/?page_id=6 A Perl version was written by Bob Walton and can be accessed either as a units converting web form or as perl source code from: http://bwalton.com/cgi-bin/myunitscgi.pl A project called Frink uses a (modified) version of the units database to supply a units-aware programming language. https://futureboy.us/frinkdocs/ Jillian England has created a units definition file that changes energy to mass and seconds to meters: https://github.com/NinerXrayBravoTwoTwo/MassEnergyUnits ----------------------------------------------------------------------------- Ideas the future (may or may not happen): * Bundle up the units conversion stuff into a library. * Inflation adjusted currency? * Allow multiple definitions of the same unit and resolve the correct definition by a conformability check. (This has exponential growth behavior in the number of units typed in!) * When a nonconformable units error is given list units the user might have meant (e.g. britainpound for pound) by a conformability check and string pattern match of some sort. "spelling advice" * Allow some way of having units like '$' that don't require a trailing space so you can write '$5'. This could be handled by having a command in the units database that specifies units which automatically get a space inserted after their name. * Have a metacommand in the units datafile that specifies how plurals should be tried for this file. This would allow expansion into other languages. (Of course, the real work of expanding into other languages is writing a units file that is appropriate for the language in question and includes local units. It's not just a translation task.) Another thing that could be accomplished here would be translation of English words like "cubic" and "per" into their symbolic meanings. A command in the units file could indicate that "per" should be substituted into a '/' and "cubic" means the cube the next unit. As it stands, "per" is hard coded into the parser. * Represent uncertainties in values in the database. ----------------------------------------------------------------------------- Acknowledgements This program owes a lot to Jeff Conrad who made many helpful suggestions, found numerous bugs, and helped me to find the definitions of obscure units. Chris Madsen also made some valuable contributions. The documentation has greatly benefited from the suggestions made by Robert Chassell who kindly read several drafts. The following people have been particularly helpful in fixing portability problems: Kaveh Ghazi, Eric Backus, and Marcus Daniels. Bug reports and suggestions for improvements should be sent to the author: Adrian Mariano (adrianm@gnu.org). units-2.16/setvcvars.sh0000664000175000017500000000631112722427650014450 0ustar adrianadrian# set MKS Korn shell environment variables for MS Visual Studio 2015 # # Copyright (C) 2016 Free Software Foundation, Inc # Microsoft Visual Studio requires that several environment variables # include many directories if a build is to be done from the command # line. These variables are normally set by selecting 'Developer # Command Prompt' on the Windows Start Menu; the shortcut runs a batch # file that calls several other batch files to set the variables before # launching an instance of the Windows command interpreter. This # program calls the Windows command interpreter to run the batch file; # the resulting values of the variables are echoed and read into the # shell to set the variables in the shell. For the values to persist, # this program must be run in the current environment, i.e., # # source setvcvars # # or # # . setvcvars # # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 3 of the License, or (at # your option) any later version. # # This program is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY--without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110- # 1301 USA # # # This program was written by Jeff Conrad (jeff_conrad@msn.com), and # tested with the MKS Toolkit version 10.0 and Microsoft Visual Studio # 2015 on Windows 10 Professional. # variables needed for Visual Studio 2015 envvars='PATH=|INCLUDE=|LIB=|PATH=' # batch file: this value is installation and version dependent--adjust # as needed. It should be the shortcut on the Start Menu for 'Developer # Command Prompt' vsbatfile="C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\Tools\VsDevCmd.bat" # don't set the variables twice, because new values are added to previous values if test "$VCVARSSET" != "" then echo "VC variables already set" elif test ! -e "$vsbatfile" then echo "cannot find Command Prompt batch file '$vsbatfile'" elif test -z "$ComSpec" then echo "no path to command interpreter: ComSpec not set" elif test ! -e "$ComSpec" then print -r "cannot find command interpreter '$ComSpec'" elif test ! -x "$ComSpec" # this should never happen ... then print -r "cannot run command interpreter '$ComSpec'" else OPATH="$PATH" # turn off echoing with /q eval `$ComSpec /q < Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The GNU General Public License is a free, copyleft license for software and other kinds of works. The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users. We, the Free Software Foundation, use the GNU General Public License for most of our software; it applies also to any other work released this way by its authors. You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things. To protect your rights, we need to prevent others from denying you these rights or asking you to surrender the rights. Therefore, you have certain responsibilities if you distribute copies of the software, or if you modify it: responsibilities to respect the freedom of others. For example, if you distribute copies of such a program, whether gratis or for a fee, you must pass on to the recipients the same freedoms that you received. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. Developers that use the GNU GPL protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License giving you legal permission to copy, distribute and/or modify it. For the developers' and authors' protection, the GPL clearly explains that there is no warranty for this free software. For both users' and authors' sake, the GPL requires that modified versions be marked as changed, so that their problems will not be attributed erroneously to authors of previous versions. Some devices are designed to deny users access to install or run modified versions of the software inside them, although the manufacturer can do so. This is fundamentally incompatible with the aim of protecting users' freedom to change the software. The systematic pattern of such abuse occurs in the area of products for individuals to use, which is precisely where it is most unacceptable. Therefore, we have designed this version of the GPL to prohibit the practice for those products. If such problems arise substantially in other domains, we stand ready to extend this provision to those domains in future versions of the GPL, as needed to protect the freedom of users. Finally, every program is threatened constantly by software patents. States should not allow patents to restrict development and use of software on general-purpose computers, but in those that do, we wish to avoid the special danger that patents applied to a free program could make it effectively proprietary. To prevent this, the GPL assures that patents cannot be used to render the program non-free. The precise terms and conditions for copying, distribution and modification follow. TERMS AND CONDITIONS 0. Definitions. "This License" refers to version 3 of the GNU General Public License. "Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks. "The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations. To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work. A "covered work" means either the unmodified Program or a work based on the Program. To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well. To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying. An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion. 1. Source Code. The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work. A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language. The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it. The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work's System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work. The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source. The Corresponding Source for a work in source code form is that same work. 2. Basic Permissions. All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law. You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you. Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary. 3. Protecting Users' Legal Rights From Anti-Circumvention Law. No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures. When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures. 4. Conveying Verbatim Copies. You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program. You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee. 5. Conveying Modified Source Versions. You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions: a) The work must carry prominent notices stating that you modified it, and giving a relevant date. b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices". c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it. d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so. A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation's users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate. 6. Conveying Non-Source Forms. You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways: a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange. b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge. c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b. d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements. e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d. A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work. A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product. "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made. If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM). The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network. Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying. 7. Additional Terms. "Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions. When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission. Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms: a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or d) Limiting the use for publicity purposes of names of licensors or authors of the material; or e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors. All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying. If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms. Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way. 8. Termination. You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11). However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation. Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice. Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10. 9. Acceptance Not Required for Having Copies. You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so. 10. Automatic Licensing of Downstream Recipients. Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License. An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party's predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts. You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it. 11. Patents. A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor's "contributor version". A contributor's "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License. Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version. In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party. If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient's use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid. If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it. A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007. Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law. 12. No Surrender of Others' Freedom. If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program. 13. Use with the GNU Affero General Public License. Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU Affero General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the special requirements of the GNU Affero General Public License, section 13, concerning interaction through a network will apply to the combination as such. 14. Revised Versions of this License. The Free Software Foundation may publish revised and/or new versions of the GNU General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU General Public License, you may choose any version ever published by the Free Software Foundation. If the Program specifies that a proxy can decide which future versions of the GNU General Public License can be used, that proxy's public statement of acceptance of a version permanently authorizes you to choose that version for the Program. Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version. 15. Disclaimer of Warranty. THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 16. Limitation of Liability. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. 17. Interpretation of Sections 15 and 16. If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, your program's commands might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see . The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read . units-2.16/units.rc0000664000175000017500000000004412324067720013555 0ustar adrianadrianunitsprogicon ICON "unitsprog.ico"