summaryrefslogtreecommitdiff
path: root/glpk-5.0/examples/dist.mod
diff options
context:
space:
mode:
Diffstat (limited to 'glpk-5.0/examples/dist.mod')
-rw-r--r--glpk-5.0/examples/dist.mod565
1 files changed, 565 insertions, 0 deletions
diff --git a/glpk-5.0/examples/dist.mod b/glpk-5.0/examples/dist.mod
new file mode 100644
index 0000000..f3d66b5
--- /dev/null
+++ b/glpk-5.0/examples/dist.mod
@@ -0,0 +1,565 @@
+# DIST, a product distribution model
+#
+# References:
+# Robert Fourer, David M. Gay and Brian W. Kernighan, "A Modeling Language
+# for Mathematical Programming." Management Science 36 (1990) 519-554.
+
+### SHIPPING SETS AND PARAMETERS ###
+
+set whse 'warehouses'; # Locations from which demand is satisfied
+
+set dctr 'distribution centers' within whse;
+
+ # Locations from which product may be shipped
+
+param sc 'shipping cost' {dctr,whse} >= 0;
+
+ # Shipping costs, to whse from dctr, in $ / 100 lb
+
+param huge 'largest shipping cost' > 0;
+
+ # Largest cost allowed for a usable shipping route
+
+param msr 'minimum size restriction' {dctr,whse} logical;
+
+ # True indicates a minimum-size restriction on
+ # direct shipments using this dctr --> whse route
+
+param dsr 'direct shipment requirement' {dctr} >= 0;
+
+ # Minimum total demand, in pallets, needed to
+ # allow shipment on routes subject to the
+ # minimum size restriction
+
+### PLANT SETS AND PARAMETERS ###
+
+set fact 'factories' within dctr;
+
+ # Locations where product is manufactured
+
+param rtmin 'regular-time total minimum' >= 0;
+
+ # Lower limit on (average) total regular-time
+ # crews employed at all factories
+
+param rtmax 'regular-time total maximum' >= rtmin;
+
+ # Upper limit on (average) total regular-time
+ # crews employed at all factories
+
+param otmin 'overtime total minimum' >= 0;
+
+ # Lower limit on total overtime hours at all factories
+
+param otmax 'overtime total maximum' >= otmin;
+
+ # Upper limit on total overtime hours at all factories
+
+param rmin 'regular-time minimums' {fact} >= 0;
+
+ # Lower limits on (average) regular-time crews
+
+param rmax 'regular-time maximums' {f in fact} >= rmin[f];
+
+ # Upper limits on (average) regular-time crews
+
+param omin 'overtime minimums' {fact} >= 0;
+
+ # Lower limits on overtime hours
+
+param omax 'overtime maximums' {f in fact} >= omin[f];
+
+ # Upper limits on overtime hours
+
+param hd 'hours per day' {fact} >= 0;
+
+ # Regular-time hours per working day
+
+param dp 'days in period' {fact} > 0;
+
+ # Working days in the current planning period
+
+### PRODUCT SETS AND PARAMETERS ###
+
+set prd 'products'; # Elements of the product group
+
+param wt 'weight' {prd} > 0;
+
+ # Weight in 100 lb / 1000 cases
+
+param cpp 'cases per pallet' {prd} > 0;
+
+ # Cases of product per shipping pallet
+
+param tc 'transshipment cost' {prd} >= 0;
+
+ # Transshipment cost in $ / 1000 cases
+
+param pt 'production time' {prd,fact} >= 0;
+
+ # Crew-hours to produce 1000 cases
+
+param rpc 'regular-time production cost' {prd,fact} >= 0;
+
+ # Cost of production on regular time,
+ # in $ / 1000 cases
+
+param opc 'overtime production cost' {prd,fact} >= 0;
+
+ # Cost of production on overtime, in $ / 1000 cases
+
+### DEMAND SETS AND PARAMETERS ###
+
+param dt 'total demand' {prd} >= 0;
+
+ # Total demands for products, in 1000s
+
+param ds 'demand shares' {prd,whse} >= 0.0, <= 1.0;
+
+ # Historical demand data, from which each
+ # warehouse's share of total demand is deduced
+
+param dstot {p in prd} := sum {w in whse} ds[p,w];
+
+ # Total of demand shares; should be 1, but often isn't
+
+param dem 'demand' {p in prd, w in whse} := dt[p] * ds[p,w] / dstot[p];
+
+ # Projected demands to be satisfied, in 1000s
+
+set rt 'shipping routes available' :=
+
+ {d in dctr, w in whse:
+ d <> w and sc[d,w] < huge and
+ (w in dctr or sum {p in prd} dem[p,w] > 0) and
+ not (msr[d,w] and sum {p in prd} 1000*dem[p,w]/cpp[p] < dsr[d]) };
+
+ # List of ordered pairs that represent routes
+ # on which shipments are allowed
+
+### VARIABLES ###
+
+var Rprd 'regular-time production' {prd,fact} >= 0;
+
+ # Regular-time production of each product
+ # at each factory, in 1000s of cases
+
+var Oprd 'overtime production' {prd,fact} >= 0;
+
+ # Overtime production of each product
+ # at each factory, in 1000s of cases
+
+var Ship 'shipments' {prd,rt} >= 0;
+
+ # Shipments of each product on each allowed route,
+ # in 1000s of cases
+
+var Trans 'transshipments' {prd,dctr} >= 0;
+
+ # Transshipments of each product at each
+ # distribution center, in 1000s of cases
+
+### OBJECTIVE ###
+
+minimize cost: sum {p in prd, f in fact} rpc[p,f] * Rprd[p,f] +
+ sum {p in prd, f in fact} opc[p,f] * Oprd[p,f] +
+ sum {p in prd, (d,w) in rt} sc[d,w] * wt[p] * Ship[p,d,w] +
+ sum {p in prd, d in dctr} tc[p] * Trans[p,d];
+
+ # Total cost: regular production, overtime
+ # production, shipping, and transshipment
+
+### CONSTRAINTS ###
+
+rtlim 'regular-time total limits':
+
+ rtmin <= sum {p in prd, f in fact}
+ (pt[p,f] * Rprd[p,f]) / (dp[f] * hd[f]) <= rtmax;
+
+ # Total crews must lie between limits
+
+otlim 'overtime total limits':
+
+ otmin <= sum {p in prd, f in fact} pt[p,f] * Oprd[p,f] <= otmax;
+
+ # Total overtime must lie between limits
+
+rlim 'regular-time limits' {f in fact}:
+
+ rmin[f] <= sum {p in prd}
+ (pt[p,f] * Rprd[p,f]) / (dp[f] * hd[f]) <= rmax[f];
+
+ # Crews at each factory must lie between limits
+
+olim 'overtime limits' {f in fact}:
+
+ omin[f] <= sum {p in prd} pt[p,f] * Oprd[p,f] <= omax[f];
+
+ # Overtime at each factory must lie between limits
+
+noRprd 'no regular production' {p in prd, f in fact: rpc[p,f] = 0}:
+
+ Rprd[p,f] = 0;
+
+noOprd 'no overtime production' {p in prd, f in fact: opc[p,f] = 0}:
+
+ Oprd[p,f] = 0; # Do not produce where specified cost is zero
+
+bal 'material balance' {p in prd, w in whse}:
+
+ sum {(v,w) in rt}
+ Ship [p,v,w] + (if w in fact then Rprd[p,w] + Oprd[p,w]) =
+
+ dem[p,w] + (if w in dctr then sum {(w,v) in rt} Ship[p,w,v]);
+
+ # Demand is satisfied by shipment into warehouse
+ # plus production (if it is a factory)
+ # minus shipment out (if it is a distn. center)
+
+trdef 'transshipment definition' {p in prd, d in dctr}:
+
+ Trans[p,d] >= sum {(d,w) in rt} Ship [p,d,w] -
+ (if d in fact then Rprd[p,d] + Oprd[p,d]);
+
+ # Transshipment at a distribution center is
+ # shipments out less production (if any)
+
+### DATA -- 3 PRODUCTS ###
+
+data;
+
+set prd := 18REG 24REG 24PRO ;
+
+set whse := w01 w02 w03 w04 w05 w06 w08 w09 w12 w14 w15 w17
+ w18 w19 w20 w21 w24 w25 w26 w27 w28 w29 w30 w31
+ w32 w33 w34 w35 w36 w37 w38 w39 w40 w41 w42 w43
+ w44 w45 w46 w47 w48 w49 w50 w51 w53 w54 w55 w56
+ w57 w59 w60 w61 w62 w63 w64 w65 w66 w68 w69 w71
+ w72 w73 w74 w75 w76 w77 w78 w79 w80 w81 w82 w83
+ w84 w85 w86 w87 w89 w90 w91 w92 w93 w94 w95 w96
+ w98 x22 x23 ;
+
+set dctr := w01 w02 w03 w04 w05 w62 w76 w96 ;
+
+set fact := w01 w05 w96 ;
+
+param huge := 99. ;
+
+param rtmin := 0.0 ;
+param rtmax := 8.0 ;
+
+param otmin := 0.0 ;
+param otmax := 96.0 ;
+
+param rmin := w01 0.00 w05 0.00 w96 0.00 ;
+param rmax := w01 3.00 w05 2.00 w96 3.00 ;
+
+param omin := w01 0.0 w05 0.0 w96 0.0 ;
+param omax := w01 48.0 w05 0.0 w96 48.0 ;
+
+param hd := w01 8.0 w05 8.0 w96 8.0 ;
+
+param dp := w01 19.0 w05 19.0 w96 19.0 ;
+
+param wt := 18REG 47.3 24REG 63.0 24PRO 63.0 ;
+
+param tc := 18REG 40.00 24REG 45.00 24PRO 45.00 ;
+
+param dt := 18REG 376.0 24REG 172.4 24PRO 316.3 ;
+
+param cpp := 18REG 102. 24REG 91. 24PRO 91. ;
+
+param dsr := w01 96. w02 96. w03 96. w04 96. w05 96.
+ w62 96. w76 96. w96 96. ;
+
+param pt (tr) :
+
+ 18REG 24REG 24PRO :=
+
+w01 1.194 1.429 1.429
+w05 1.194 1.509 1.509
+w96 0.000 1.600 1.600 ;
+
+param rpc (tr) :
+
+ 18REG 24REG 24PRO :=
+
+w01 2119. 2653. 2617.
+w05 2489. 3182. 3176.
+w96 0. 2925. 2918. ;
+
+param opc (tr) :
+
+ 18REG 24REG 24PRO :=
+
+w01 2903. 3585. 3579.
+w05 0. 0. 0.
+w96 0. 3629. 3622. ;
+
+param sc default 99.99 (tr) :
+
+ w01 w02 w03 w04 w05 w62 w76 w96 :=
+
+w01 . 2.97 1.14 2.08 2.37 1.26 2.42 1.43
+w02 4.74 . 4.17 6.12 7.41 3.78 7.04 5.21
+w03 2.45 4.74 . 3.67 2.84 0.90 2.41 2.55
+w04 1.74 5.03 2.43 . 3.19 2.45 2.69 0.58
+w05 2.70 5.16 2.84 2.85 . 3.26 3.34 2.71
+w06 1.99 4.17 2.13 2.19 2.52 2.06 2.00 1.51
+w08 0.21 2.92 1.24 2.07 2.29 1.25 2.32 1.55
+w09 0.66 3.76 1.41 2.47 1.82 1.66 . 1.87
+w12 1.38 3.83 1.68 2.53 2.39 . 1.96 1.94
+w14 2.47 1.58 2.40 3.59 3.85 2.25 . 3.05
+w15 1.06 4.95 2.48 1.39 3.41 1.96 . 1.02
+w17 0.88 3.39 1.46 2.00 2.67 1.45 . 1.46
+w18 7.90 6.57 7.79 9.59 10.81 . . 6.70
+w19 1.42 4.12 1.96 1.99 3.52 1.88 . 1.26
+w20 3.03 1.59 2.34 4.76 3.98 1.88 . 3.73
+w24 1.58 2.80 2.27 2.87 3.19 1.31 . 2.05
+w25 1.51 5.05 2.74 0.57 2.98 . 2.95 0.27
+w26 1.75 3.61 2.70 1.54 4.07 3.52 . 1.03
+w27 2.48 6.87 3.17 1.59 2.08 3.45 . 0.99
+w28 2.05 6.83 2.97 1.13 2.91 . . 1.26
+w29 4.03 3.68 4.46 3.20 5.50 . . 3.20
+w30 2.48 5.78 2.99 2.24 1.79 3.10 . 1.39
+w31 2.34 5.41 2.87 1.67 1.66 . . 1.39
+w32 14.36 . . . . . . .
+w33 3.87 4.27 5.11 3.48 5.66 4.03 . 3.05
+w34 3.26 4.80 3.21 2.70 4.14 . . 1.77
+w35 2.34 2.84 2.89 3.35 3.78 2.68 . 2.52
+w36 2.43 5.69 2.96 2.95 1.02 2.61 1.07 2.54
+w37 2.23 4.64 2.41 1.99 4.30 2.61 . 1.44
+w38 4.66 4.36 5.23 3.04 4.46 . . 3.82
+w39 1.11 3.51 1.10 2.53 3.07 1.12 . 2.23
+w40 2.99 4.78 4.23 1.57 3.92 . . 1.80
+w41 4.93 4.00 5.43 4.45 6.31 . . 3.81
+w42 3.86 6.55 5.03 2.11 4.41 . . 2.63
+w43 4.61 4.45 3.77 1.22 4.31 . . 2.35
+w44 2.05 4.48 1.06 3.70 3.46 1.10 . 3.21
+w45 0.92 3.42 1.58 3.04 1.82 1.94 . 2.52
+w46 1.36 2.44 0.95 3.08 2.78 0.39 2.16 2.37
+w47 1.30 3.39 1.60 2.49 4.29 2.04 . 1.68
+w48 1.65 3.78 1.03 2.97 2.21 1.31 . 2.74
+w49 1.96 3.00 1.50 3.24 3.68 1.00 . 2.99
+w50 0.90 4.14 1.60 1.95 3.61 1.61 . 1.52
+w51 1.59 3.95 0.25 2.96 2.58 1.00 2.41 2.71
+w53 1.59 3.79 1.28 3.12 3.10 0.89 . 2.98
+w54 1.72 4.36 1.61 2.92 2.34 1.91 1.97 3.05
+w55 2.45 2.73 2.21 4.47 4.30 2.57 . 4.48
+w56 1.10 3.73 1.59 2.74 2.33 1.45 . 2.44
+w57 0.95 3.39 1.37 2.30 2.47 1.15 . 1.95
+w59 3.29 5.35 3.32 3.81 1.52 3.38 1.34 4.08
+w60 2.41 6.12 2.46 3.65 2.35 . 1.37 4.06
+w61 3.32 5.50 3.41 3.38 1.23 . 0.99 4.28
+w62 1.12 3.00 0.82 3.22 2.95 . 3.33 2.53
+w63 3.59 6.36 3.25 4.12 1.84 3.59 1.46 4.03
+w64 1.85 4.45 2.17 3.43 2.13 2.03 . 4.02
+w65 2.78 4.79 2.81 2.94 1.54 2.90 1.07 2.94
+w66 3.90 5.79 3.05 3.65 1.36 3.39 1.22 3.57
+w68 2.61 5.20 2.90 2.34 1.68 3.19 1.48 2.31
+w69 2.94 5.21 2.78 3.43 0.21 3.26 0.68 2.54
+w71 2.06 4.98 2.38 2.44 1.59 2.97 1.05 2.55
+w72 2.61 5.50 2.83 3.12 1.35 3.23 0.88 2.99
+w73 8.52 6.16 8.03 8.83 10.44 7.38 10.26 .
+w74 6.11 5.46 9.07 9.38 10.80 . . 8.25
+w75 2.66 4.94 2.87 3.69 1.52 3.15 1.24 4.00
+w76 1.99 5.26 2.23 3.36 0.58 3.17 . 2.50
+w77 4.32 3.07 5.05 3.88 6.04 . . 4.15
+w78 5.60 2.59 5.78 5.56 7.10 . . 5.60
+w79 4.25 2.32 4.93 4.57 6.04 . . 4.58
+w80 5.94 4.00 5.60 7.02 9.46 . . 7.51
+w81 5.39 2.21 5.10 6.22 6.46 . . 6.58
+w82 8.80 5.69 9.29 9.88 11.69 8.63 11.52 .
+w83 4.40 . 5.24 5.21 5.81 3.91 7.04 5.33
+w84 5.87 5.43 6.17 5.70 7.63 . . 5.70
+w85 3.90 3.65 3.38 4.57 5.64 3.05 . 5.04
+w86 5.48 2.10 5.70 6.37 7.33 . . 6.19
+w87 8.88 5.54 9.50 9.71 11.64 8.85 11.68 .
+w89 4.62 4.01 4.03 6.30 6.30 3.81 . 7.77
+w90 4.35 2.72 4.61 4.01 5.60 . . 3.20
+w91 7.61 4.42 7.83 6.85 8.79 . . 7.66
+w92 7.15 2.69 6.91 7.20 . . . 7.06
+w93 3.17 3.95 4.37 3.74 5.05 . . 2.40
+w94 1.21 3.07 0.90 2.74 3.17 . 2.63 2.39
+w95 5.82 3.29 6.55 7.06 11.47 . . 7.83
+w96 1.77 5.20 2.72 0.59 3.47 2.48 . .
+w98 3.04 1.92 3.64 3.70 4.90 3.05 . 3.88
+x22 4.08 6.25 4.15 4.30 1.77 . 1.77 .
+x23 3.39 5.74 3.55 4.08 1.69 . 1.47 . ;
+
+param msr (tr) :
+
+ w01 w02 w03 w04 w05 w62 w76 w96 :=
+
+w01 0 0 0 0 0 0 1 0
+w02 0 0 0 0 0 0 1 0
+w03 0 0 0 0 0 0 1 0
+w04 0 0 0 0 0 0 1 0
+w05 0 0 0 0 0 0 0 0
+w06 0 1 1 1 1 1 1 1
+w08 0 1 1 1 1 1 1 1
+w09 0 1 1 1 1 1 0 1
+w12 0 1 1 1 1 0 1 1
+w14 1 1 1 1 1 0 0 1
+w15 0 1 1 1 1 1 0 1
+w17 0 1 1 1 1 1 0 1
+w18 0 1 1 1 1 0 0 1
+w19 0 1 1 1 1 0 0 1
+w20 1 1 1 1 1 0 0 1
+w24 0 1 1 1 1 0 0 1
+w25 0 1 1 1 1 0 1 0
+w26 1 1 1 0 1 1 0 1
+w27 1 1 1 0 1 1 0 1
+w28 1 1 1 0 1 0 0 1
+w29 0 1 1 1 1 0 0 1
+w30 1 1 1 0 1 1 0 1
+w31 1 1 1 0 1 0 0 1
+w32 0 0 0 0 0 0 0 0
+w33 1 0 1 1 1 1 0 1
+w34 1 1 1 0 1 0 0 1
+w35 1 1 1 1 1 0 0 1
+w36 0 1 1 1 0 1 1 1
+w37 1 1 1 0 1 1 0 1
+w38 1 1 1 0 1 0 0 1
+w39 0 1 1 1 1 1 0 1
+w40 1 1 1 0 1 0 0 1
+w41 1 0 1 1 1 0 0 1
+w42 1 1 1 0 1 0 0 1
+w43 1 1 1 0 1 0 0 1
+w44 1 1 1 1 1 0 0 1
+w45 0 1 1 1 1 1 0 1
+w46 0 1 1 1 1 0 1 1
+w47 0 1 1 1 1 1 0 1
+w48 0 1 1 1 1 0 0 1
+w49 1 1 1 1 1 0 0 1
+w50 0 1 1 1 1 1 0 1
+w51 0 1 1 1 1 0 1 1
+w53 1 1 1 1 1 0 0 1
+w54 0 1 1 1 1 1 1 1
+w55 0 1 1 1 1 0 0 1
+w56 0 1 1 1 1 1 0 1
+w57 0 1 1 1 1 1 0 1
+w59 0 1 1 1 0 1 1 1
+w60 0 1 1 1 1 0 1 1
+w61 0 1 1 1 0 0 1 1
+w62 0 0 0 0 0 0 1 0
+w63 0 1 1 1 0 1 1 1
+w64 0 1 1 1 1 1 0 1
+w65 0 1 1 1 0 1 1 1
+w66 0 1 1 1 0 1 1 1
+w68 0 1 1 1 0 1 1 1
+w69 0 1 1 1 0 1 1 1
+w71 0 1 1 1 0 1 1 1
+w72 0 1 1 1 0 1 1 1
+w73 0 1 1 1 0 1 1 0
+w74 0 1 1 1 0 0 0 1
+w75 0 1 1 1 0 1 1 1
+w76 0 0 0 0 0 0 0 0
+w77 1 0 1 1 1 0 0 1
+w78 1 0 1 1 1 0 0 1
+w79 1 0 1 1 1 0 0 1
+w80 1 0 1 1 1 0 0 1
+w81 1 0 1 1 1 0 0 1
+w82 1 0 1 1 1 1 1 0
+w83 1 0 1 1 1 0 1 1
+w84 1 0 1 1 1 0 0 1
+w85 1 1 1 1 1 0 0 1
+w86 1 0 1 1 1 0 0 1
+w87 1 0 1 1 1 1 1 0
+w89 1 0 1 1 1 1 0 1
+w90 0 1 1 1 1 0 0 1
+w91 1 0 1 1 1 0 0 1
+w92 1 0 1 1 1 0 0 1
+w93 1 1 1 0 1 0 0 1
+w94 0 0 1 1 1 0 1 1
+w95 1 0 1 1 1 0 0 1
+w96 0 0 0 0 0 0 0 0
+w98 1 0 1 1 1 1 0 1
+x22 1 1 1 1 0 0 1 0
+x23 1 1 1 1 0 0 1 0 ;
+
+param ds default 0.000 (tr) :
+
+ 18REG 24REG 24PRO :=
+
+w01 0.000 0.000 0.008
+w02 0.004 0.000 0.000
+w03 0.000 0.000 0.000
+w04 0.010 0.002 0.000
+w05 0.000 0.000 0.000
+w06 0.010 0.008 0.008
+w08 0.030 0.024 0.024
+w09 0.014 0.018 0.020
+w12 0.014 0.012 0.010
+w14 0.007 0.007 0.012
+w15 0.010 0.019 0.018
+w17 0.013 0.010 0.011
+w19 0.015 0.012 0.009
+w20 0.012 0.021 0.022
+w21 0.000 0.000 0.000
+w24 0.012 0.022 0.018
+w25 0.019 0.025 0.020
+w26 0.006 0.015 0.021
+w27 0.008 0.010 0.015
+w28 0.011 0.016 0.019
+w29 0.008 0.020 0.013
+w30 0.011 0.013 0.015
+w31 0.011 0.013 0.017
+w32 0.006 0.000 0.000
+w33 0.000 0.015 0.014
+w34 0.008 0.007 0.005
+w35 0.002 0.006 0.014
+w36 0.015 0.013 0.005
+w37 0.017 0.016 0.015
+w38 0.015 0.009 0.012
+w39 0.007 0.017 0.022
+w40 0.009 0.014 0.020
+w41 0.003 0.014 0.011
+w42 0.017 0.011 0.012
+w43 0.009 0.013 0.011
+w44 0.002 0.012 0.012
+w45 0.016 0.025 0.028
+w46 0.038 0.062 0.040
+w47 0.007 0.010 0.010
+w48 0.003 0.015 0.016
+w49 0.005 0.016 0.017
+w50 0.011 0.008 0.007
+w51 0.010 0.022 0.021
+w53 0.004 0.026 0.020
+w54 0.020 0.017 0.025
+w55 0.004 0.019 0.028
+w56 0.004 0.010 0.008
+w57 0.014 0.020 0.018
+w59 0.012 0.006 0.007
+w60 0.019 0.010 0.009
+w61 0.028 0.010 0.012
+w62 0.000 0.000 0.000
+w63 0.070 0.027 0.037
+w64 0.009 0.004 0.005
+w65 0.022 0.015 0.016
+w66 0.046 0.017 0.020
+w68 0.005 0.012 0.016
+w69 0.085 0.036 0.039
+w71 0.011 0.013 0.010
+w72 0.089 0.031 0.034
+w75 0.026 0.012 0.010
+w77 0.001 0.004 0.002
+w78 0.002 0.004 0.002
+w79 0.001 0.004 0.002
+w80 0.001 0.001 0.002
+w81 0.001 0.003 0.002
+w83 0.009 0.010 0.008
+w84 0.001 0.002 0.002
+w85 0.001 0.004 0.005
+w86 0.001 0.002 0.002
+w87 0.002 0.003 0.000
+w89 0.001 0.001 0.002
+w90 0.006 0.017 0.013
+w91 0.002 0.010 0.013
+w92 0.000 0.003 0.002
+w93 0.002 0.006 0.007
+w95 0.001 0.007 0.007
+w96 0.000 0.000 0.000
+w98 0.006 0.005 0.002 ;
+
+end;