From 0937637cf3ecac5b9cbf7acc95c020d3e1594da4 Mon Sep 17 00:00:00 2001 From: Andrew Knapp Date: Thu, 15 Aug 2013 20:37:01 -0400 Subject: [PATCH 001/230] Cleanup removes class files and subversion directories that were hanging around --- bin/org/javasim/RestartException.class | Bin 503 -> 0 bytes bin/org/javasim/Scheduler.class | Bin 3218 -> 0 bytes bin/org/javasim/Semaphore$Outcome.class | Bin 1134 -> 0 bytes bin/org/javasim/Semaphore.class | Bin 2029 -> 0 bytes bin/org/javasim/SimulationEntity.class | Bin 2915 -> 0 bytes bin/org/javasim/SimulationException.class | Bin 512 -> 0 bytes bin/org/javasim/SimulationProcess.class | Bin 7369 -> 0 bytes bin/org/javasim/TriggerQueue.class | Bin 2182 -> 0 bytes bin/org/javasim/examples/basic/Arrivals.class | Bin 900 -> 0 bytes bin/org/javasim/examples/basic/Breaks.class | Bin 1579 -> 0 bytes bin/org/javasim/examples/basic/Job.class | Bin 1224 -> 0 bytes bin/org/javasim/examples/basic/List.class | Bin 399 -> 0 bytes bin/org/javasim/examples/basic/Machine.class | Bin 2085 -> 0 bytes .../javasim/examples/basic/MachineShop.class | Bin 2884 -> 0 bytes bin/org/javasim/examples/basic/Main.class | Bin 1022 -> 0 bytes bin/org/javasim/examples/basic/Queue.class | Bin 1272 -> 0 bytes .../javasim/examples/basic/expected_output | 19 - .../javasim/examples/interrupt/Arrivals.class | Bin 925 -> 0 bytes bin/org/javasim/examples/interrupt/Job.class | Bin 631 -> 0 bytes bin/org/javasim/examples/interrupt/List.class | Bin 411 -> 0 bytes .../examples/interrupt/MachineShop.class | Bin 2405 -> 0 bytes bin/org/javasim/examples/interrupt/Main.class | Bin 623 -> 0 bytes .../examples/interrupt/Processor.class | Bin 1702 -> 0 bytes .../javasim/examples/interrupt/Queue.class | Bin 1300 -> 0 bytes .../examples/interrupt/Signaller.class | Bin 1150 -> 0 bytes .../internal/SimulationProcessCons.class | Bin 904 -> 0 bytes .../internal/SimulationProcessIterator.class | Bin 917 -> 0 bytes .../internal/SimulationProcessList.class | Bin 3280 -> 0 bytes bin/org/javasim/simset/Head.class | Bin 1563 -> 0 bytes bin/org/javasim/simset/Link.class | Bin 2145 -> 0 bytes bin/org/javasim/stats/Bucket.class | Bin 1811 -> 0 bytes bin/org/javasim/stats/Histogram.class | Bin 4296 -> 0 bytes bin/org/javasim/stats/Mean.class | Bin 3164 -> 0 bytes .../javasim/stats/PrecisionHistogram.class | Bin 4910 -> 0 bytes bin/org/javasim/stats/Quantile.class | Bin 1755 -> 0 bytes bin/org/javasim/stats/SimpleHistogram.class | Bin 4194 -> 0 bytes .../javasim/stats/StatisticsException.class | Bin 524 -> 0 bytes bin/org/javasim/stats/TimeVariance.class | Bin 2580 -> 0 bytes bin/org/javasim/stats/Variance.class | Bin 2727 -> 0 bytes bin/org/javasim/streams/Draw.class | Bin 1025 -> 0 bytes bin/org/javasim/streams/ErlangStream.class | Bin 1401 -> 0 bytes .../javasim/streams/ExponentialStream.class | Bin 1079 -> 0 bytes .../streams/HyperExponentialStream.class | Bin 1566 -> 0 bytes bin/org/javasim/streams/NormalStream.class | Bin 1467 -> 0 bytes bin/org/javasim/streams/RandomStream.class | Bin 2036 -> 0 bytes bin/org/javasim/streams/UniformStream.class | Bin 1191 -> 0 bytes .../tests/stats/HistogramUnitTest.class | Bin 1264 -> 0 bytes .../javasim/tests/stats/MeanUnitTest.class | Bin 1871 -> 0 bytes .../stats/PrecisionHistogramUnitTest.class | Bin 1897 -> 0 bytes .../tests/stats/QuantileUnitTest.class | Bin 1359 -> 0 bytes .../tests/stats/VarianceUnitTest.class | Bin 1429 -> 0 bytes src/.svn/all-wcprops | 5 - src/.svn/entries | 34 - src/.svn/format | 1 - src/examples/java/.svn/all-wcprops | 5 - src/examples/java/.svn/entries | 31 - src/examples/java/.svn/format | 1 - src/examples/java/org/.svn/all-wcprops | 5 - src/examples/java/org/.svn/entries | 31 - src/examples/java/org/.svn/format | 1 - .../java/org/javasim/.svn/all-wcprops | 5 - src/examples/java/org/javasim/.svn/entries | 34 - src/examples/java/org/javasim/.svn/format | 1 - .../org/javasim/examples/.svn/all-wcprops | 5 - .../java/org/javasim/examples/.svn/entries | 34 - .../java/org/javasim/examples/.svn/format | 1 - .../javasim/examples/basic/.svn/all-wcprops | 53 -- .../org/javasim/examples/basic/.svn/entries | 124 ---- .../org/javasim/examples/basic/.svn/format | 1 - .../.svn/text-base/Arrivals.java.svn-base | 62 -- .../basic/.svn/text-base/Breaks.java.svn-base | 87 --- .../basic/.svn/text-base/Job.java.svn-base | 67 -- .../.svn/text-base/Machine.java.svn-base | 132 ---- .../.svn/text-base/MachineShop.java.svn-base | 116 ---- .../basic/.svn/text-base/Main.java.svn-base | 48 -- .../basic/.svn/text-base/Queue.java.svn-base | 107 --- .../.svn/text-base/expected_output.svn-base | 19 - .../examples/interrupt/.svn/all-wcprops | 47 -- .../javasim/examples/interrupt/.svn/entries | 112 ---- .../javasim/examples/interrupt/.svn/format | 1 - .../.svn/text-base/Arrivals.java.svn-base | 62 -- .../.svn/text-base/Job.java.svn-base | 34 - .../.svn/text-base/MachineShop.java.svn-base | 95 --- .../.svn/text-base/Main.java.svn-base | 35 - .../.svn/text-base/Processor.java.svn-base | 85 --- .../.svn/text-base/Queue.java.svn-base | 107 --- .../.svn/text-base/Signaller.java.svn-base | 62 -- src/main/.svn/all-wcprops | 5 - src/main/.svn/entries | 31 - src/main/.svn/format | 1 - src/main/java/.svn/all-wcprops | 5 - src/main/java/.svn/entries | 31 - src/main/java/.svn/format | 1 - src/main/java/org/.svn/all-wcprops | 5 - src/main/java/org/.svn/entries | 31 - src/main/java/org/.svn/format | 1 - src/main/java/org/javasim/.svn/all-wcprops | 47 -- src/main/java/org/javasim/.svn/entries | 124 ---- src/main/java/org/javasim/.svn/format | 1 - .../text-base/RestartException.java.svn-base | 45 -- .../.svn/text-base/Scheduler.java.svn-base | 267 -------- .../.svn/text-base/Semaphore.java.svn-base | 160 ----- .../text-base/SimulationEntity.java.svn-base | 237 ------- .../SimulationException.java.svn-base | 37 -- .../text-base/SimulationProcess.java.svn-base | 629 ------------------ .../.svn/text-base/TriggerQueue.java.svn-base | 116 ---- .../org/javasim/internal/.svn/all-wcprops | 17 - .../java/org/javasim/internal/.svn/entries | 52 -- .../java/org/javasim/internal/.svn/format | 1 - .../SimulationProcessIterator.java.svn-base | 77 --- .../SimulationProcessList.java.svn-base | 209 ------ .../java/org/javasim/simset/.svn/all-wcprops | 17 - src/main/java/org/javasim/simset/.svn/entries | 52 -- src/main/java/org/javasim/simset/.svn/format | 1 - .../simset/.svn/text-base/Head.java.svn-base | 113 ---- .../simset/.svn/text-base/Link.java.svn-base | 156 ----- .../java/org/javasim/stats/.svn/all-wcprops | 59 -- src/main/java/org/javasim/stats/.svn/entries | 136 ---- src/main/java/org/javasim/stats/.svn/format | 1 - .../stats/.svn/text-base/Bucket.java.svn-base | 179 ----- .../.svn/text-base/Histogram.java.svn-base | 290 -------- .../stats/.svn/text-base/Mean.java.svn-base | 195 ------ .../PrecisionHistogram.java.svn-base | 304 --------- .../.svn/text-base/Quantile.java.svn-base | 99 --- .../text-base/SimpleHistogram.java.svn-base | 251 ------- .../StatisticsException.java.svn-base | 42 -- .../.svn/text-base/TimeVariance.java.svn-base | 171 ----- .../.svn/text-base/Variance.java.svn-base | 167 ----- .../java/org/javasim/streams/.svn/all-wcprops | 47 -- .../java/org/javasim/streams/.svn/entries | 112 ---- src/main/java/org/javasim/streams/.svn/format | 1 - .../streams/.svn/text-base/Draw.java.svn-base | 82 --- .../.svn/text-base/ErlangStream.java.svn-base | 106 --- .../text-base/ExponentialStream.java.svn-base | 86 --- .../HyperExponentialStream.java.svn-base | 119 ---- .../.svn/text-base/NormalStream.java.svn-base | 127 ---- .../.svn/text-base/RandomStream.java.svn-base | 166 ----- .../text-base/UniformStream.java.svn-base | 98 --- src/test/.svn/all-wcprops | 5 - src/test/.svn/entries | 31 - src/test/.svn/format | 1 - src/test/java/.svn/all-wcprops | 5 - src/test/java/.svn/entries | 31 - src/test/java/.svn/format | 1 - src/test/java/org/.svn/all-wcprops | 5 - src/test/java/org/.svn/entries | 31 - src/test/java/org/.svn/format | 1 - src/test/java/org/javasim/.svn/all-wcprops | 5 - src/test/java/org/javasim/.svn/entries | 34 - src/test/java/org/javasim/.svn/format | 1 - .../java/org/javasim/tests/.svn/all-wcprops | 5 - src/test/java/org/javasim/tests/.svn/entries | 31 - src/test/java/org/javasim/tests/.svn/format | 1 - .../org/javasim/tests/stats/.svn/all-wcprops | 35 - .../java/org/javasim/tests/stats/.svn/entries | 132 ---- .../text-base/HistogramUnitTest.java.svn-base | 50 -- .../.svn/text-base/MeanUnitTest.java.svn-base | 59 -- .../PrecisionHistogramUnitTest.java.svn-base | 53 -- .../text-base/QuantileUnitTest.java.svn-base | 65 -- .../text-base/VarianceUnitTest.java.svn-base | 53 -- 160 files changed, 7611 deletions(-) delete mode 100644 bin/org/javasim/RestartException.class delete mode 100644 bin/org/javasim/Scheduler.class delete mode 100644 bin/org/javasim/Semaphore$Outcome.class delete mode 100644 bin/org/javasim/Semaphore.class delete mode 100644 bin/org/javasim/SimulationEntity.class delete mode 100644 bin/org/javasim/SimulationException.class delete mode 100644 bin/org/javasim/SimulationProcess.class delete mode 100644 bin/org/javasim/TriggerQueue.class delete mode 100644 bin/org/javasim/examples/basic/Arrivals.class delete mode 100644 bin/org/javasim/examples/basic/Breaks.class delete mode 100644 bin/org/javasim/examples/basic/Job.class delete mode 100644 bin/org/javasim/examples/basic/List.class delete mode 100644 bin/org/javasim/examples/basic/Machine.class delete mode 100644 bin/org/javasim/examples/basic/MachineShop.class delete mode 100644 bin/org/javasim/examples/basic/Main.class delete mode 100644 bin/org/javasim/examples/basic/Queue.class delete mode 100644 bin/org/javasim/examples/basic/expected_output delete mode 100644 bin/org/javasim/examples/interrupt/Arrivals.class delete mode 100644 bin/org/javasim/examples/interrupt/Job.class delete mode 100644 bin/org/javasim/examples/interrupt/List.class delete mode 100644 bin/org/javasim/examples/interrupt/MachineShop.class delete mode 100644 bin/org/javasim/examples/interrupt/Main.class delete mode 100644 bin/org/javasim/examples/interrupt/Processor.class delete mode 100644 bin/org/javasim/examples/interrupt/Queue.class delete mode 100644 bin/org/javasim/examples/interrupt/Signaller.class delete mode 100644 bin/org/javasim/internal/SimulationProcessCons.class delete mode 100644 bin/org/javasim/internal/SimulationProcessIterator.class delete mode 100644 bin/org/javasim/internal/SimulationProcessList.class delete mode 100644 bin/org/javasim/simset/Head.class delete mode 100644 bin/org/javasim/simset/Link.class delete mode 100644 bin/org/javasim/stats/Bucket.class delete mode 100644 bin/org/javasim/stats/Histogram.class delete mode 100644 bin/org/javasim/stats/Mean.class delete mode 100644 bin/org/javasim/stats/PrecisionHistogram.class delete mode 100644 bin/org/javasim/stats/Quantile.class delete mode 100644 bin/org/javasim/stats/SimpleHistogram.class delete mode 100644 bin/org/javasim/stats/StatisticsException.class delete mode 100644 bin/org/javasim/stats/TimeVariance.class delete mode 100644 bin/org/javasim/stats/Variance.class delete mode 100644 bin/org/javasim/streams/Draw.class delete mode 100644 bin/org/javasim/streams/ErlangStream.class delete mode 100644 bin/org/javasim/streams/ExponentialStream.class delete mode 100644 bin/org/javasim/streams/HyperExponentialStream.class delete mode 100644 bin/org/javasim/streams/NormalStream.class delete mode 100644 bin/org/javasim/streams/RandomStream.class delete mode 100644 bin/org/javasim/streams/UniformStream.class delete mode 100644 bin/org/javasim/tests/stats/HistogramUnitTest.class delete mode 100644 bin/org/javasim/tests/stats/MeanUnitTest.class delete mode 100644 bin/org/javasim/tests/stats/PrecisionHistogramUnitTest.class delete mode 100644 bin/org/javasim/tests/stats/QuantileUnitTest.class delete mode 100644 bin/org/javasim/tests/stats/VarianceUnitTest.class delete mode 100644 src/.svn/all-wcprops delete mode 100644 src/.svn/entries delete mode 100644 src/.svn/format delete mode 100644 src/examples/java/.svn/all-wcprops delete mode 100644 src/examples/java/.svn/entries delete mode 100644 src/examples/java/.svn/format delete mode 100644 src/examples/java/org/.svn/all-wcprops delete mode 100644 src/examples/java/org/.svn/entries delete mode 100644 src/examples/java/org/.svn/format delete mode 100644 src/examples/java/org/javasim/.svn/all-wcprops delete mode 100644 src/examples/java/org/javasim/.svn/entries delete mode 100644 src/examples/java/org/javasim/.svn/format delete mode 100644 src/examples/java/org/javasim/examples/.svn/all-wcprops delete mode 100644 src/examples/java/org/javasim/examples/.svn/entries delete mode 100644 src/examples/java/org/javasim/examples/.svn/format delete mode 100644 src/examples/java/org/javasim/examples/basic/.svn/all-wcprops delete mode 100644 src/examples/java/org/javasim/examples/basic/.svn/entries delete mode 100644 src/examples/java/org/javasim/examples/basic/.svn/format delete mode 100644 src/examples/java/org/javasim/examples/basic/.svn/text-base/Arrivals.java.svn-base delete mode 100644 src/examples/java/org/javasim/examples/basic/.svn/text-base/Breaks.java.svn-base delete mode 100644 src/examples/java/org/javasim/examples/basic/.svn/text-base/Job.java.svn-base delete mode 100644 src/examples/java/org/javasim/examples/basic/.svn/text-base/Machine.java.svn-base delete mode 100644 src/examples/java/org/javasim/examples/basic/.svn/text-base/MachineShop.java.svn-base delete mode 100644 src/examples/java/org/javasim/examples/basic/.svn/text-base/Main.java.svn-base delete mode 100644 src/examples/java/org/javasim/examples/basic/.svn/text-base/Queue.java.svn-base delete mode 100644 src/examples/java/org/javasim/examples/basic/.svn/text-base/expected_output.svn-base delete mode 100644 src/examples/java/org/javasim/examples/interrupt/.svn/all-wcprops delete mode 100644 src/examples/java/org/javasim/examples/interrupt/.svn/entries delete mode 100644 src/examples/java/org/javasim/examples/interrupt/.svn/format delete mode 100644 src/examples/java/org/javasim/examples/interrupt/.svn/text-base/Arrivals.java.svn-base delete mode 100644 src/examples/java/org/javasim/examples/interrupt/.svn/text-base/Job.java.svn-base delete mode 100644 src/examples/java/org/javasim/examples/interrupt/.svn/text-base/MachineShop.java.svn-base delete mode 100644 src/examples/java/org/javasim/examples/interrupt/.svn/text-base/Main.java.svn-base delete mode 100644 src/examples/java/org/javasim/examples/interrupt/.svn/text-base/Processor.java.svn-base delete mode 100644 src/examples/java/org/javasim/examples/interrupt/.svn/text-base/Queue.java.svn-base delete mode 100644 src/examples/java/org/javasim/examples/interrupt/.svn/text-base/Signaller.java.svn-base delete mode 100644 src/main/.svn/all-wcprops delete mode 100644 src/main/.svn/entries delete mode 100644 src/main/.svn/format delete mode 100644 src/main/java/.svn/all-wcprops delete mode 100644 src/main/java/.svn/entries delete mode 100644 src/main/java/.svn/format delete mode 100644 src/main/java/org/.svn/all-wcprops delete mode 100644 src/main/java/org/.svn/entries delete mode 100644 src/main/java/org/.svn/format delete mode 100644 src/main/java/org/javasim/.svn/all-wcprops delete mode 100644 src/main/java/org/javasim/.svn/entries delete mode 100644 src/main/java/org/javasim/.svn/format delete mode 100644 src/main/java/org/javasim/.svn/text-base/RestartException.java.svn-base delete mode 100644 src/main/java/org/javasim/.svn/text-base/Scheduler.java.svn-base delete mode 100644 src/main/java/org/javasim/.svn/text-base/Semaphore.java.svn-base delete mode 100644 src/main/java/org/javasim/.svn/text-base/SimulationEntity.java.svn-base delete mode 100644 src/main/java/org/javasim/.svn/text-base/SimulationException.java.svn-base delete mode 100644 src/main/java/org/javasim/.svn/text-base/SimulationProcess.java.svn-base delete mode 100644 src/main/java/org/javasim/.svn/text-base/TriggerQueue.java.svn-base delete mode 100644 src/main/java/org/javasim/internal/.svn/all-wcprops delete mode 100644 src/main/java/org/javasim/internal/.svn/entries delete mode 100644 src/main/java/org/javasim/internal/.svn/format delete mode 100644 src/main/java/org/javasim/internal/.svn/text-base/SimulationProcessIterator.java.svn-base delete mode 100644 src/main/java/org/javasim/internal/.svn/text-base/SimulationProcessList.java.svn-base delete mode 100644 src/main/java/org/javasim/simset/.svn/all-wcprops delete mode 100644 src/main/java/org/javasim/simset/.svn/entries delete mode 100644 src/main/java/org/javasim/simset/.svn/format delete mode 100644 src/main/java/org/javasim/simset/.svn/text-base/Head.java.svn-base delete mode 100644 src/main/java/org/javasim/simset/.svn/text-base/Link.java.svn-base delete mode 100644 src/main/java/org/javasim/stats/.svn/all-wcprops delete mode 100644 src/main/java/org/javasim/stats/.svn/entries delete mode 100644 src/main/java/org/javasim/stats/.svn/format delete mode 100644 src/main/java/org/javasim/stats/.svn/text-base/Bucket.java.svn-base delete mode 100644 src/main/java/org/javasim/stats/.svn/text-base/Histogram.java.svn-base delete mode 100644 src/main/java/org/javasim/stats/.svn/text-base/Mean.java.svn-base delete mode 100644 src/main/java/org/javasim/stats/.svn/text-base/PrecisionHistogram.java.svn-base delete mode 100644 src/main/java/org/javasim/stats/.svn/text-base/Quantile.java.svn-base delete mode 100644 src/main/java/org/javasim/stats/.svn/text-base/SimpleHistogram.java.svn-base delete mode 100644 src/main/java/org/javasim/stats/.svn/text-base/StatisticsException.java.svn-base delete mode 100644 src/main/java/org/javasim/stats/.svn/text-base/TimeVariance.java.svn-base delete mode 100644 src/main/java/org/javasim/stats/.svn/text-base/Variance.java.svn-base delete mode 100644 src/main/java/org/javasim/streams/.svn/all-wcprops delete mode 100644 src/main/java/org/javasim/streams/.svn/entries delete mode 100644 src/main/java/org/javasim/streams/.svn/format delete mode 100644 src/main/java/org/javasim/streams/.svn/text-base/Draw.java.svn-base delete mode 100644 src/main/java/org/javasim/streams/.svn/text-base/ErlangStream.java.svn-base delete mode 100644 src/main/java/org/javasim/streams/.svn/text-base/ExponentialStream.java.svn-base delete mode 100644 src/main/java/org/javasim/streams/.svn/text-base/HyperExponentialStream.java.svn-base delete mode 100644 src/main/java/org/javasim/streams/.svn/text-base/NormalStream.java.svn-base delete mode 100644 src/main/java/org/javasim/streams/.svn/text-base/RandomStream.java.svn-base delete mode 100644 src/main/java/org/javasim/streams/.svn/text-base/UniformStream.java.svn-base delete mode 100644 src/test/.svn/all-wcprops delete mode 100644 src/test/.svn/entries delete mode 100644 src/test/.svn/format delete mode 100644 src/test/java/.svn/all-wcprops delete mode 100644 src/test/java/.svn/entries delete mode 100644 src/test/java/.svn/format delete mode 100644 src/test/java/org/.svn/all-wcprops delete mode 100644 src/test/java/org/.svn/entries delete mode 100644 src/test/java/org/.svn/format delete mode 100644 src/test/java/org/javasim/.svn/all-wcprops delete mode 100644 src/test/java/org/javasim/.svn/entries delete mode 100644 src/test/java/org/javasim/.svn/format delete mode 100644 src/test/java/org/javasim/tests/.svn/all-wcprops delete mode 100644 src/test/java/org/javasim/tests/.svn/entries delete mode 100644 src/test/java/org/javasim/tests/.svn/format delete mode 100644 src/test/java/org/javasim/tests/stats/.svn/all-wcprops delete mode 100644 src/test/java/org/javasim/tests/stats/.svn/entries delete mode 100644 src/test/java/org/javasim/tests/stats/.svn/text-base/HistogramUnitTest.java.svn-base delete mode 100644 src/test/java/org/javasim/tests/stats/.svn/text-base/MeanUnitTest.java.svn-base delete mode 100644 src/test/java/org/javasim/tests/stats/.svn/text-base/PrecisionHistogramUnitTest.java.svn-base delete mode 100644 src/test/java/org/javasim/tests/stats/.svn/text-base/QuantileUnitTest.java.svn-base delete mode 100644 src/test/java/org/javasim/tests/stats/.svn/text-base/VarianceUnitTest.java.svn-base diff --git a/bin/org/javasim/RestartException.class b/bin/org/javasim/RestartException.class deleted file mode 100644 index 8c3b0f948fe30bda32dad5bce57fa142e19445f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmaKo-%0{O6vn@!tH!EnnwAkk7lnVIg}OAnv4UdhB5UtQ8*F0TjomSNsV=$_y6^#d zh+d&LsLrSq7&I{F%$fP-_nn!y&(|q{Lu_S`AZ&-x(76|nB32{kO2%45`t)faAG8XC z3@k#~oI1V;hR)9cp%}|Z3Ez`Z%)*=V69Qcj^4&0CMxZ_6k7eqM$NTg2gOEN}fzlm9 zvfl6rRyVwrHj-G)!A6!)a8)2L$D_WCu0`LMgpwN$*g&ui*NaU{->I0eY-K z2#SxNCX)C=e;5)aLE5CPHjzXUV~jDHXpAu?Cj2ll{!kNQG$MX?cDuXfVNKJ$Gxwgy zch33Fx%1gSAASU28D7)i5~xdMdV+_IJ|k-;f{|#ijM;IS(clr7thR%3BiR$|?9E6c zCQunM6L#FNWUSLnNCB}?z}LZ}{++h8xzQXhwPz+RnMoS)U|!8kC3j>}QJKw#&8!uo zi|m-k4m+7NlRY%KkJ|@`M){#ahs;V#K(~5j0iM9LaefL1H0fO(jhji+S|i|YY}zg0 z*^r9K3JBEdC_}l1sRDujkJ5)JsMj$K)dJ_N0>S>ma3i#C1937M3^YN)( zz4~?Ns1&FUn@QPjCl1O?r*SaOEY*fnQ6s+F$e8Lqzd0#tXEHKrm3U0Y28GStBP|ue zCLNnq2$igkosfAyKDe<(N2@w1>o;XQrewG22&0WGG-ImrEbBgnbGwcm*vZUq$Q7L> zogjM}BBYellD1{WgYBt^9qru|mkDyFP3Ek>7vy6R=v5LrtbQox>Kraq!FvpF&NPpIn2^~ie zXO>bnXHZ=(1Tz)fkzvdci$gIH@**j)pa{W#RE83k*V8&qU_QG@ z_E{XzUOXePur=9d#Lbw$2ra-yRpHWTQMJHa(!tG(u?#+SP4LO5CcLw9zB?s)m{RiT=C zllis_F8%^@s|HasiYZ;gs2jv|_aJ8SfA%N@ckUZR!xaj-=nj~v+z2=CS`Vs3IckMQ zqE^62A!ylW1Ts`mvhXH1X?w8xcCFpPt@C|q zo*c%htGP|`D!`|AFv)q}=(*&+GQ{D0nUQHZhOHu>fKOQOPkHh=>hT4``;x5s zij4XiE%=5L>szeHci4jO(T*R;o*$`y-HEK8n0-8Xo?HPnb%!g$;YA(FZqXpyGoXGt z^r_SSB7jEq6~tAwe>c@t&@~J-FoZLEF2WP$!}2Rm#=QJ8979^m`~W|5=NEeUmFmBh z#wPOO<-)vCZ86SMP2k$)i9Owi^{y8PuwA^d~m)&N$ZhKD^P5-2;Y1 zrFwjrsqN^;6_a7<{Yar`soAz{%iCs9vbh>r*mXXND8g|tOlr7~BtxV$2uWr2Tg#^B zT6U|rpR2_v_JM{lB2lOkJk+2{5S3t7LlhCYo7WISoMA$@Y*FoX8p1u|jkaJ&>Q0ll zYuvRY_7CGwFiC#A6RS%W&Uw2hXtSKnjmj#H44$cYN(ltqUUWUt(eNBuh8TBUe$jN! zE*SE`oQ%e)XnMu{K$?G#C{L=pZ^QV+@G3|flp;5x+%lzA4LQ7E*bMS_+q~N?20l6z zyiGt(2z5SgIz6{3-deJ3BU z&ux%NX;aOw%wJ*gZj$syAtXV*$@OC_59nKzo1~}un5!Qs`I~x4`Z-kQuJL5`Gu;F& uu%U$*bvr-M$Wx5ek0)9F8Y@4*{>@Xc=4%$P?ynp4Um+&(Y4osJp7{;LUHIt$ diff --git a/bin/org/javasim/Semaphore.class b/bin/org/javasim/Semaphore.class deleted file mode 100644 index 5e43cde5e7a5b130397395cf5ad1e6204e87d90e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2029 zcmah}T~ixn6n+*0OTt3=F4h8}RtZ6gZ7H;c@=-o2G?3CzptUo)q%UD>vSD^NAl^HU zju+agbSb7H7Qh2l%5LpR);JQ#-@OzVEwd&-$t$ZS_^5*VN!BILw8d}7h$eDIFk=lBuGMhL|lWuE75W`3B*ba{1P%e@y8{lrnF~fzF0PQ%TiEg7N<6= zNO~$(Er^vb=1k8j*z>k$c?aWz)t^t;UrrUhOd&6YkIa9WQM+=*)p13`#bA@L%AVUPIp*!su9_Qx)JTixb7j!7IqfXy~oR zJM}HqK|Gy^M?c@M=N53WnRbpsm`PhUx`m9med{dr!nWZs%9QVmO+5@*r2l{1?& zT~|h4FEA>5Q3y5C0zB2oT>Cqx+TS_T+;w_#_PI9kZH2cq?j7+z(HsxIMoT>M z8f~(4{Ndl~;@U+_aAHD;@gFgWX2j8sA)KdGka!>6c!#@SUnpa55?eS0u=@m?%m1*i z5&Jr^M~OW~>>ECI7qd9Umeae;fqy_;tYomto5G+i{t7MO7r&tK2t94@9pioBUrX-% zMjv2;__uj)60MjDaBnMfAM*XRR*I?P!*UV{QV{q$f&ZO{8XvLVH!cQH>dGkn(kS#w z&{vp!?Cbn96%;K-2-6XM@f&r1#8X63ip<|4^L};1&ts_hw5+zFI zhcI8xr5|{$Uz5`}?4obchwm_e?{Nh` k;3l54{yzn3HWR2k6CUVf(wihyLtP(pm&u>z^XYW=e|;9D@&Et; diff --git a/bin/org/javasim/SimulationEntity.class b/bin/org/javasim/SimulationEntity.class deleted file mode 100644 index 9cf68bdb88ccc33c093f95c625148c17c74c2927..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2915 zcmai0-)|IU6g|^!JKOE_2Ngw>o9Vx9%o}+t*FRz93R%Om9DCUIERPW(1>4t;IOjSkGoM!wnX&R0 z4a>9ajDj7>^`ndT9aW&sShi=nZeh+d(+ZSnxxjO+OvZF&BRq4fbXWMAWgA)RHB&)t ztanO5XwXTU5!9kZLnAZ=ElJBZ#|ycuraNg|%`&hp>74HK;Fwc64dz#x4c*$1L0Ojw{#{OG@?nvxc4NpP-O-=4kI! z1M@toA%buidlWnoTxvUBG?2GXLV7i*2uBddJ{5a;*&2eWSuEv&IenM z(J!zCF-W2IYc$#c1&yhK>zcMVY2}L591 zpj*f6dHOjWr4Vc`)-#FIbi7ogD2y`1jv$?`|1xLEX>24_j*U2O7;K?VLB=mpawru! z>e$h|nZ4G>(xn{RbDb=UNqJrKWQsC({Z9)NOE9D1C2UmC9Hg5pwkpTM+T+3g`GQ$6 z{odrbXbFfIgXc%NdSqed#Z-v(cU$<%4vGe7QB>`GYKvV5YRbUI~Neq z`MiR|0;3iJLnm6GmrQiR*vmBg*p>a*L)>v3=4S$ja018KwE{C*Odr4`5F8~yfu6uI zvai8&e6B<7hSqI7aJ($TLB5i(dY!lu)jACG$Vi0_^<^D6EO<_Y{D9m=v$(#DQ{SUo zmK6-i5-?muIJt;WQdjQd6y+XW;sO5Upv)cq8l{j$-ratsCb)YE&6sAyWpbNgl~dTw z?$ME{fD;ek2saI(%PKksRo*3D;0y}@o+SyPxP__5iWqdgcKSYg_?uugR#~_4AaH}9 zIZjZU@SKWtTY_{UynrL5AT9_KxVRwcYjKa?a@>>-ku9$@0p5+T;H=uKrQb`t?`hr6$H_YKPNCiA>SU%rDLyi0Suhy8fp$5$-> zK)L(_n8b^`v6(kc;UZCqM8tZA@0s$+j%$ zc#)+P+t)KjZqfjE(O5}qBP+P8OlyF30X`(HkI;g~ZiwqExaya9Ri$Ml7SJf0iN#8dN?l)c|4-EBXBO@k z>hmiH&TrU?-|6Q+=>9(|V3pj@)?-)9vfNT+He)yciG_vh0l*O76vtE|0H+GL8yBm2 i|3%(^S0qp?c;AG}Yif{ZiW+z*aFu~Nk1TGV==c|J%Ta^? diff --git a/bin/org/javasim/SimulationException.class b/bin/org/javasim/SimulationException.class deleted file mode 100644 index 768acaf6e6a89e1898ab6d2fec8c7b0b341de4e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmaiw&q_i;6vn@!SB~?*4>Xb*u?!4_fPavEm{dJe1IOJ zSLh9@Gb#lYG%)APnfcB4otc;S=P7^#Y~+w4YzN`kx)t{#Ql2$XUgC;a1^&syNZ#p1 z4hEsB0m~Ks*!nsklp`4`;W{#m7`!?=CeS&d*bn?D7JlpqH<6hS9l)BdOPE}_=4 zzdIkqq4LMwwxd03+Ox_Hvr^?ZL@)u?9baZ>P}s1m<;a0ssI2 diff --git a/bin/org/javasim/SimulationProcess.class b/bin/org/javasim/SimulationProcess.class deleted file mode 100644 index 16a7dc812c181189cb17a60e36ea7801ddf3ca9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7369 zcmbVRX?RrC8Gg^rBr}=ZBoKB2VFH+t2@pUtAePlid3ZvNCJq8iq>kiwsosZUFuS+?eo|l?bBLY`hNG`xpOBB1REZ5*YlnC zeZS>==jOTpKKvMfDfqJ&n!?C1b$+bflx9R3sidHxUmT$)pz^g?{q5 zAsULUZdkk~VT9Th3KujlXU$6OScRp;&53D4I43j_^l84@IN44I`;AzSTWV zB$hG~u~78r`C22%)HDVE`p`Nf-I6|Gs!3s5i2~VsU6?luA{!#>1iLl29Td*Y-`{D(V)ETyDtNppH_M$=P@v zCGA@ZqsR53UfmKgJ6*?_GMg_mQpA|4V-{vpjD*nRH9ZK+Ur-TY9eEu+T@MoQ5n3Z1QE9?nuI30sk}*bLR8n6V+% z+(o~QtLp;|rE(@^nk`fam?4`^MWPK0;%({hn&zm{!60;A6RpnEu?TI{YPFF%FKwhL z%*0-E^^sj7?)f^Fh`3%_SwP4>EMtTn72SbYJQaw?0*Q1iaH&i-(T_%~kTAV~aWKx6 zWNoQLB({2*#D9^|WocCw3a88zZ8TQJ6HJMV6-K!AUu2kx>mpc*kdBoIvw%cmNh6W6 zhAPbN%lm!EUAMvqYBjocrHQ3B&}kL8KqP6h%!FS1MAny1x<7+`_9~Vh(JZ24tpF>r zfSLDwh|<@!A$jMxCjE{%)|A3=O)Kh_c)@9gWXqJLU}HKGZ8s7=B#7bcSQj(5Js@%h z{D^~D7)M%17uHkfP-mwRV?7)(uBq-QSJ;N8$%xBzT#m0XXi{-&7KMQfn%;Bs-Aa62 z$2agzTDNF2Ec#NOT=@Fzl$8R7ory@C;5`Jz>{hr+M+cZ!j-pLQG<2CfxkksexK5#% z1tYx98ZN`=s_!Zc$gpph_cIzy#SJ>XCz;ouv73!pdveG24|HsjS$!Gdxr}k?$_Yrp z@M9fc#TjyTvyNM&`j#crNzv6_y;x_nl)->`l*gP z$%$K#R4=*w! zC42%t{FYAw5i9Fh>*9Dxa_wb>3HfTBi&{?dPV?bag{o|D+M$%GHL|GEb)GfxXuA)u zv+~d7S%B#rjTp@KI3bvkY6RkD@4}ZA>qfED^GMkILC1CslQrQT9q-EeS)O#(GYV+X zZx^A8p^z}uv_Z(w4|IGe0v4L(mjT)CWCkzV;^{=#Xo<+mKlmsT6D0&tO)CX#8~hlC zLKN}J%PS2&{$s;pp0k%Qk8C*1Bijx0NLQFgy2(7!Nj&O$!Mu_%zeSiE33C%+UQL+S66SSZ0w&koJTQ0At4tC!_ENK!fpyC^ zREl&55no<$={_WDdywkE20>`59jv9kBKgQ3T#=P_G&2>riI{ID<}H+LD|28Q@!rNg z!R?IqJ51aGx`H!1@;2g1W{QMkBiWYmsR&(&f-+K8Y#P3uhrmq27c<^qZ9xwVB6>US~G1J)4rgAdlhuZDm?|DHE*ShpV@`l=)6RW%lFx+VFAI*-w54sLnyE z^9a>>jOrZXuIF)be!`_ri-WfX-?!Ci$*0by6HsS!Z*`uhIxieU9cwlvtw` zHMX}pl7+03b8YUPoX8l?`G8l+{WWrbozeUT*Wfo<58pCTSl%CNa~AJ=pmA|f_+j28 z6TeA{jCJU2xt?|mu9LKjT+%h zu5iiKt0xP#SUp*_d=?{KX-Vf1sW_>eC6TM*+?#JjVZlz%PTsOw4q4HluA);mp;TSt zvR>|zfb>ggr`)mIz$>vUom0J7b2WQvv&%}hb1Ka{xUTo$EqMkPV~5iz3ZF)kTeCpt z&p?X(jNMTEO!@#`@8W$o!8;k|ccGu!Zdw=LNg*e#epH>`$Y@mL8f&`MY+jCKMQO4&XX2}zb(F5E@Jmn}em|i`AhY4C(41wnejViD3@uJ() z z^#XN%k+@&NDD?`rK(Apeug9x59Q=VC{6kUL?+BOQqX~GZO=fd-g|OqSQ-b?&ICv1d zxWjs?8&AuY=$TB~aiO>ONIZMi+6VnATk@7c z)jn`=${!%CZI6d7Nv6}wM&OOo2olpwE72!OgUSpmF?-M*AWFMY{k7eWRs5z0zq7kl za|7^7Zf9+F1L|YefKON=KjjDXzjDv~8D^-znV_uZf2IvecAPC{|7G{2Lq>3G#x^E{ z)Y?^9HFG1M2-fjZEVrZBOqwAX;iOO9Octz}*3RVjxxlQ-`7Z+doMqw*D)%2o<$qDl zKhD%^nhV@`2i$lzQc~A#aHRtT+?zQOX+c}Scof$TkYcixWs}&fM(M3=?KTUQR>VEC z7ZsY%<)Z<)g-SNq{6DqYA(yTS#S_x;nIMtx&2qzdz?{_2LL z_z{tfH|19&k$CV&CtF@7RY~$T)6Hc;euA(YVDjVVgfn?~b}N?!X3w+q`}>SmVeTk$ ziLJ=3@LP&JE@~7}jomanh2?l5%`e1x=FutvQwajvG}1kjpEqWpzcw2~wK*82HDj#S z!a$ivx~-V5Ex;UYA?ERVk=6$J{9(~3YsRLVo6v^^+NI$clv9~ zWKr|%Ea@&$6g@9CQLHF|m~TR`l2RHwA8z?-Av7eAK+~G=;Sfp+4T>$C7i5W%fDh5f9j`|dgSoO_@D{QI}x0UX6W4Q&GZ zJik_4u~w}>){Aq#tkrD)YQt{W8qxwg)SIGXxwYcur4_pp3Z$29t17Uk6uoMM(kYgt zd(W=8oHmO!#3qreYz(hZz zyaol_9g8Bp;uT-IVL9||t3K9&_XLi%LYh@O2>nJS^n8;H~b^aSCG^P754-R~H#Lql(cICOXD3q2a7R-`1zD z_+G^h0t1scC(v1G_&#f#ll9o#DFr)aU>X+$3>sDm<*F6hlTmq7`FRbW{fE&tx@Y+t zGHLi+Ah$L8x-wKLu*1370RgeV5@KmMa)NjiPt*yF1F$hct57&iUTOJtIDY-Ppq?fxYYb)`-!@y@A3r^t?u& zTAJAR6L$WBgV}*54i}mzJVCnjl;`&IDls`DDJY~v5yt|*htY#kA{7~Nj1ebT&*>KA zfdsk8Q@q{pXw1P7wgkbCax=~3BT<3RnLN#%V#4GHbiTw0t339KOpagb{T|wI6Q2zK zicgz3{{$VgWHJh!7td=<6cwYtRm^ejD7V@R=_W33c%&kM z>vVd)MWyxxw_ja&Z{_-qvM6DO5@8-qPqN%9(PNd#oZ~6`Yh1+o$H}GW( z)0xP^DnnI$y+hA%^EJ9&V&-P{)(d?7N>Lwb;?9i?X4$ByyKIXZaU}n}Rw6cg;uPyv z^rA`wM8tt3&_itA&@I?;`E}38O%8 zH?;Rg1K$%~B)QX$T@M*jkEAD~#|&DfQSFe}_4~p=5_2YWm<-8EwWDL6q4ZxV4P=p1 zq3H}57EN42ieaHCJ@IVlc13W=yACm2Z2CR!ba)_@J#}i)v80Adf3W|@Xo$P!3hptm z2C)o=o+^Fa#2VHaGDjl1s26w8Fo?_z6Prj=*s<^Qb!;(g%(nDboddsXpny3QSu$}G zWd?)h>`ISEq93Pyt)ohLXS4j?&)%pf25M0{ZZWLQf?kR+;z2ZnxXrMn-hwTCd;j^b z3x;ev;=Q*mKA4WkX#2yUC!R_*#O%*^QdhCWmRQjXV@Rm6la?TzRzd#^SuOIa`@A)Q zVVxuUsyxBMN9509=o0=XlqyI@x*J&#nfrK7T|!=h88t{H5)NZ`&7JPyaf diff --git a/bin/org/javasim/examples/basic/Breaks.class b/bin/org/javasim/examples/basic/Breaks.class deleted file mode 100644 index aa51dba07c7d27b267874019af76e26d27005719..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1579 zcmah}ds9Wlv}&!xsLRGhWM7O3*~LAs$>|= zbXxlXxvBce`!!W`y=vBovkW~Ob?K3pL)m)Or)q)pyhc5cg?(Rohsq&eY?mQ&UDZ@D z&k!1)$T5T$-GYoGgbz64NLcvrtujuG7)g&&+4PH~cUnvwy%^9gK4Rz|Us{^T#lY|} zM>isov}zee(!Zn)r|-^lScqtDm?Mf9LvKda%>jLKp;=;uL?9<1-Z&lxUu z;{R5db>WmK=WNNXb9{j>3F38zu{Ts2uVnwKmEVQPO5xgm6IM#Kl-9>dI3tF?maZfiR(Vk3gtsAk$ku`d! z;d!zawDc+5=g8>>#f3v7E&{m_XgA+*>}bc)*J|zKTaNE^rg578s;ZH3!NT`6Zk-kW zzjVt-j;!nLv+$5%u+wNu`hoC*4vRcPpI+~za+9|={=1-H#g3|bvVm~Q>!RMC*Lc=# zc#d2lT&U#M|G<=XgJH@yL<4Y+Lb3KL(BBoE>_Gp~uF{2%Q5I0~9liQJldTF5&_%(>Y37-ttS@3nbCd zzmCb~=#|d#=VJu+?>O7UrB$1lbHp@p`3aIuTruahCzxwu;WtF>Fa@?-*S9V?PjSl_ z+@WVfk1#-jk?;P2O{ae_Nt5nz)vMVU`ituq*;jU2%hsxd{HtHfQy9A>dd=Njf|)NbGb(LF4{A#IsP+{G$< z+(AITe!_;qW`Mdv^|!G};2~MB5k>{lo<}tFHzq@q-LG_SbbIL7TePrGpU_ZBGV4O| EU$P--KmY&$ diff --git a/bin/org/javasim/examples/basic/Job.class b/bin/org/javasim/examples/basic/Job.class deleted file mode 100644 index e80cea0906b298189bd1c5c866b768c96a4a48a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1224 zcmah|+foxj5IqASn}p%2;Vwi#E>Q`hfRcbB0W>617>WnpCd-&CZg%7DhQd$5AK)1f zw0!Ub{06^8?b)O#^dVNNGCh4c-KXd5k6+)u1DL~>h9-t#+bJdv#gTB0azY-9a>bNx zqCi(Yk+BOJ0t}rho-l<~Ol%hprS38Cx6-ZHmMeFSvSeUshSpWbF^+^;^8{0dWq2zL z%~R8R41qQKKt|9E&JjX542E`&76c>cM7M@6hUm>n@_I=gR88q{+`?@F*Q<^rEw2Vn zm}v#k!=WJkRHM!`TylC(ahu|pMw}tMYkR^Z zze@|xsK^73hnS&Tj$ynJSe-l(nZ=xjN5r}Tk$N`AV?`xWaco_>u3;5b`8>yha<>`o zc11eEGi*zkD)N-$8Nv)9p?f3*PijaqjNELLH_BDhFIhjxh~zz?zt4$E z9VPURl6%@=?iP39|_#INTvQs zc~HWQ(CsGzeqJvA1+C4gc>5*V;$P8miRd|cuW%O z8&6KqqnMWT9+4KmyG3v8TGOpOh+`x{Au6GShT{pP$@TW`+r+Rx7X0S!VJ AYybcN diff --git a/bin/org/javasim/examples/basic/List.class b/bin/org/javasim/examples/basic/List.class deleted file mode 100644 index 0e64a3bb751a95feb31a486f87e17ceb8ecb6227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmaJ-yH3ME5S+73OpHl_d6k3?Qg9M2Q5pmVvOoxw{_L#61>1-G2>C4vghasy@KK08 zD|MRLoz*;a_xtz#1K<+JJ{*A)Q_kf=Emfs+Nh_7VWmL(8X)0q~)jm9dffdM16?6HJ zEGVr7ymwQ+3Jl{7{yURgv9h2Q8%{SVZ4*m7V_oQaBH*5#PuY2GW)#51Zip^|E(H1^ zw$QQLUI-uCe2H~I_f4Kq`K*$R1ftlaDx0cOTfRPe^^2|qf+y3IDcx!-3?3V5=)yh@ zLymO$UmTv?z?-o7?G(11`3|$2Rsr-!UkFFy6Fm!qkJcJ7M(`LFW6HJ}dLZocCFB6M M;b0wl$jrgfKP;3}_5c6? diff --git a/bin/org/javasim/examples/basic/Machine.class b/bin/org/javasim/examples/basic/Machine.class deleted file mode 100644 index 1b48f25dda91ed09fa3d09bb9fddddef533dc581..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2085 zcma)7>rxz55dO|y7#M~SNFW4BfCK`&8rEDi24YNP7Xi61K|^j1vj=vg}>_u~M)@*Y_3z-;w3AKs>wb7Nx+@ zOub<_45VEwr!w0m-;-YG+J&rEjR`dSB^hWCyC5J|1&nX~VAJ(Bc$*gJ`w!Bg)TaG4 zLNwfRJvY295F1V>Rw%~(oHP-|NedR*1fs)<6$7UP2LD%9Cfd=VTw9tTaK=I$4eE5( zf`LYLde1^r^>ogHiDrS;8B#P?DXz(2*r$|JSHD) zYvCqFnaML1E$eO8)elxG@@+LPj;gGgvAh13(8YOt*4e;PA$2blm;!i%zU2U zEl+FZ*Oz>Q*5vPKzd!T_r}xmAjP0Q-8Qnv7QtYAUl}0$vXSYW0XQYcbi2-zAkh)9g zwGTnQdU5dME7m>20lbM-EpOu?HsK?nj6zkqgwuRp<}F1AuaLcKXvKA$q1OOz z&})p|Tu9vEFU?;DbC}@N&f*d6*RepvWg@O1B+d_vq!{Ycj6bh2)JmVnnxQn#;t5Yt zd_${VG)9dBx<%NrD1?F4w1J1>FZ3)cNhHYS+7FnYtN|+2kiWv{kjL zg%(&l0zozYFoHvb+>r7{w^(6g%30igiwh(>EtmTb1;{%yp&DI;d0fP)Eul) zz|K!3s?sfFHEd$=WfIZuy7q{f&R4e?Y)1Ztuo0~?Da>tExT|qMLmT^}jEPbJA#6pf zhE9R{GRka)5IRsN-E`}CTIN1r%JQ3@rC~dhUgoq9ErcFvpaSLB{t?7}Jgb4dHcJj=G;L;w zqVZFC&&udHh(l~Vr{K|VOl{jvwBNO}Ufg4sW|}oTC$M1BL64h59R)j`wA=tpjTs0KLTZ_S+>ey9Mv&|6nodq<*Y1K>%zT_ zQqvj z(g>iyjQC0fsTjoYNFfrt4DEyjb5dgHni|jqh5(-Dh_{bet~q2G_uFZuj~B_KB%eWZ z&`#UlDZ@*do{{m{)3Ec#3CA5KYNM4d1zyteGR_E0PZV62Y4^E?gwhqjtK}@E%)D__ z(Gx8N@H(4zBBqBFR66X#n>yZ-{Wv4<%oC>V$%`1ZwJBbq4%KpVNnyggh7L?Zmzk-tEl_bL}Nq$$7?5-ra zT}d*#lH_$I$?B99lAtN8Xr&hOXn#I`Ib4^2P2vU?jAP;cTUdMp^)qh32;M*gpXGd3 z@(FV-!e{k$s#jnw-w|c_2u%+1VoB1$Q5sEQ5sslAX*6&sS0YEfIz-he(CreeD>?6` z9qB$4xrOzS#W%6xp6wY5{!-drM(7Rd{Cr;!0%1>EN6*W%C8K z85zaup)s7Ey8nvWUpS@X|XvHOL!FSXcrM!tYjG-Mr@oN2r@>g`?cXZ)T%D=D;|Ds!juuasUN6bR6 zsKpMk2z_E1ug(?dXOz1|6nn)w>{G1~@rzz+jSA6-i};w0Q6uW{2|i`)4I;?7xI|2s ziDm_~+t{R`N5e)99n-4+!EbjsX+o3zq~SuRM*RH#Y@)LWNOl?!h!k;U3|If(s|Ojv VAr9$b6_D=hmI4y^nkOsp&40U%!7Bg& diff --git a/bin/org/javasim/examples/basic/Main.class b/bin/org/javasim/examples/basic/Main.class deleted file mode 100644 index f0377dfd1d4f0346d49424ad934f02253d45799b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1022 zcmah{T~8B16g|^!*>+t7i-7W3K(H+>i}jnf5JgEyikeiL2;pH`C+)y)x9)Bg-~AIl z`sA}dfYF2>zz^`>_;F_;8WMsJGjs2qJNKM9_a6QFb_k$=6&(?VN!M#yJNymzrDKUb z?sRP7TXk|9)&`et9U4QwO0aC+Zdy<4JE9RV^ps><2Fnc5bf(6jt-7y-fhZCtV(4M$ ztH`!^(sk;>d(P{&U`STn2DfY6lgd8{YC%i-3{#c=&?pjwLv$F1(p!~(bgF?T+s$I8 z7RM!qSiU9fj)4IT>bQK0_i>_$Aq-PoyzX+_UvIWuPpopE*bS!7sJfZJRgCHwIbG_V z9|*_97{=-QZkN;;Jbo-)>lyJ02uyIN7{?^T_zRym#ZpR%ncB+N>1Nm8CQDJ>HZX-5 z9n%a0;ipblFmVmD40=ZuwdwO`vaA`z^16vMGNh8&lSD{MuPaUF>G27qjy%KMxiU9e z)U#^KB?WV^R3jHvrOgZ>8d74gV6aGnZ`(3~g|=JUt)egf319RN z_=1TfAc-XUXyPyMpZH?bGusW}39`xEnLBgOJ?GrrpMSr812BynVfX|_?B<5CWxh09 zR?Uz*X01_`Eu+kB#aM33whSX6(4%e`RkOZfJSlI()qSbO{1VU9= z-*7es!~!?>th(jQ3i#8RRl>~K>r#UsQ5_Lz5eUR|1QAlJUL9eaW2R`;I;FO>L_ z^@h#Jl*Gg9(#^3!I&)f!1-r}!T4ARm8;)hyTVW(%{_WjD9k_-wBJhSQ`#S@#4c z(`VIWRyB5t3IrY7T<3S7mF#x2BIhkN9nE!lQYpqLW%>ER`S@_G?utX@JIE7`oUx0$ z0&fYvW7$LKS#f~wY~%nvdu~A=V;=&H!;Ep3CD4r#oM%Swl%XFNxD(1i5AqT3D#&Pd zA3c$G9}o=e`gfV|6AT1Uyix=kCxeL-U{Me3l6zNl5#=%lJye526lzeRe&WLCqJ`XK z{sckw`*4MK6`{DR_bv7Nn3>Fe!N_}b9U;DUh_UZP?Jj0j+(%Nmu*No;q!qb+ zq(8Hw!+y~9a*995G-9~PUbkqP9)%8X~Z z9|-KJ=8GL#L)jyw$jeYnRQe+lc@kSx;m5z<`QzhcC(Xen^SJ}0JG@PAgdNUz={Yb< z7w)s+L(YB-@uO{B})IZDu2tJL{i VbzKMq{~#VlDlovqDHi%L{U1H%@V@{6 diff --git a/bin/org/javasim/examples/basic/expected_output b/bin/org/javasim/examples/basic/expected_output deleted file mode 100644 index 0f915d6..0000000 --- a/bin/org/javasim/examples/basic/expected_output +++ /dev/null @@ -1,19 +0,0 @@ -Output of Main: - -Total number of jobs present 1080 -Total number of jobs processed 1079 -Total response time of 8999.39 -Average response time = 8.3405 -Probability that machine is working = 0.999933 -Probability that machine has failed = 0 -Average number of jobs present = 1 - -Output of Main -breaks: - -Total number of jobs present 1190 -Total number of jobs processed 1034 -Total response time of 704303 -Average response time = 681.144 -Probability that machine is working = 0.865654 -Probability that machine has failed = 0.133096 -Average number of jobs present = 80.8097 diff --git a/bin/org/javasim/examples/interrupt/Arrivals.class b/bin/org/javasim/examples/interrupt/Arrivals.class deleted file mode 100644 index 06e40e42319acfd61711e868953d490312b91c49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 zcma)4UvCmY5dSTQJvfh+Yej8sRcI@4R!*xAMvaLnHE9ECq#?0y3vAle`$O)IhOgp_ zuRJ$VNNnN<@I&}f)Y%gi6Jxx~?##~4Z{{~M`}ym~PXM-YS4WDW9E3;CYktBb={aJ^ zy}m0VNBXe{!$CiGo`j)1;clcO&9FA>+>+kF<*^L>7h%v9QN)nnQ@APQKzf4WH)b(W z918A5&hD@u_`;7RcUy_+A;a7w>C5;rL%LG0wn^*+Jz+q@c@sKJ2CY(U>zHTQ{I8G( za>y%aCJTl|6X!6;u+WgccsB4lB0S(7ml!TKf-ZO4Je2A@HKyZZNd;B^VE>Qy5dX9% zxX-}q#55fED*Y7`t5{>m9*Ouz&ZLUEL4>ZExQ-0Ljsv%+qr^~}E$c72_JfXrA~sY_ zo2pHR)wYUMHc>&9!JyuI(&w@0C20f_+d;aT!A=ip|_f3=cr)@J@!6594r&2XG_w()46qcA1D|&ehDK!exQl!&( zXwTBANmg}l*%KJ{8FH`66D)jyb(**?(LSFz6p_X{^4P!yvR$Mw1VVu{^;x)t%M_Af z8Rj(fJHjci>Ig;Keh+Jml`*c4U^Yg`&`LMXP}C+^x5v2g_S=_J0%(-Zf}O|$wi3CF z8c9W^M7%+L*XYI~YXNsC;XSP2K2=(w|3N}eQJ}g<1qr@qsVUD6p`JTZ|hM7X~#1!@}LA-oVAuVrh-P;upA29^m2|KVF$MV@7(_ZXKGj>@xi zcpSCKqt-2K#3pr4vBONAyUvz_}U68XcrE+RosX!Bq*YEKS?ijYMPYEMEhGVL~!8;_)+4W z(0w=O-g7w*W`6&^e*m0gKZGZ6Sec2Osy9{ZnWTl9%?qlfE-e|;%&kmyZ9@bC11FM& zDkt(Gn^JBCg7?b23LK>?GVZGEg4HE0*mS%~?HXC$xzwe$R|5XY>4@Fe)tDmq*o@Id z)P+Dl#u_?q+lmoloiC{_>Asm|WS&)4kU)}Fxhh7=Xvdewz`p2OAbP4Alhdts!sxM~ zhR)n0alny2|B=U&8+a2gzn#LhGv8o#(<*@e@C)%!e4^)I@X=Zm#smSQV$9h#Mh}E- RzQi2BHtZ}zcbR$E`v;=?S;GJT diff --git a/bin/org/javasim/examples/interrupt/MachineShop.class b/bin/org/javasim/examples/interrupt/MachineShop.class deleted file mode 100644 index 1bef8a37fc178187e2e7b2bd1bbcd4488d739a90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2405 zcmai0TUQfT7~KQNgfM`3rLC8UR1-u~rM6bkf(TU_Pz*-#(soErVRSMxoeN5>z1!N_ z)(6|);Ipz;!YXU^2lNm1t*iUYBq3DR%EOs+@}2M7=eutB``=a&T@YaDn5xOs=J7Y35elB2A z#YF`>>%p`6MNtS$;cEC$T6TH9?)vL95oi6TG)&_XoA#b=_!G9vDknG8WnDcQp`lc+ z4Kv89xT0XI9L%(-TMOyzvgeDUhFM%?t?a<3Gnw$(u+x`a4s6zUgJ{b6YeUjvUPB&KjQKV_q$`}J2i#y){*t~{M{+tsgTkZUG}+b{2w(umKo}B!|YVj zCe!<~h9~l-UFI$ucu^n4vv%O-#e^ZbZEGDh9h2F@0YWx&)K$_ZnV6?GNu}XVA`N%a zXt?Q7UMSH|uYyk0x)Xu zP`L?*`0Wj!n;~G9z*o_OYuJN1BybabxQ!(C;&7-9KE^)*l_v+eE0k~PFC)1Q7Y{v2 z5Uw{g(;_9L&`)IrN2&nIb?UTG_Qx6q=62v%8E<9QFv#P{GTxn9!zmt5moXfMbY`x( zjQ6KsVtWba21*z|Qo_V4KIji6nU}b{hTPn?>t)<{iG3y9Es?g&7*! zgmMYxt-^l}E%O{Pu9nP;usn}h+GV=<7*Fva+@IkgZ)D!CUv$JxU*92;X2Bk8qagBSaptDEIl*|%j8s6`9C8odNTuobZ(L{Fm)>&Sk{x|aQ{UNQ>$0sW}x zjz$p#_Hyssxp&T-bME`c%Nu|LZ0U$GYzLuZcKIFeOV1QT?)6;JH>DqmFdXzE^NdSh zhsKaoL#E4p$Gm8DMLS|h9!g(EM-1_5t;wJr2e-mN9O(=aNHSzC>5KD$*An3sZ@Ge@ zU;=QKR7Wkk6~}R zx^GS-(y)U;*cK;Jxt3N-*jHjv0l7`<17dU{mnrI0nUopjM16$RUwXfC&L`fnVrP`{Yz7i-j0b>xVt*w{jPO>(;8+UIU{2%>L z{R8cZ=?~~n>NstmyP+6onBvateLLr#bDrm%bN~GNw?6>PVaq~HAngbB+#~r! zhK`$4+tO_{RhV-;t%9K4(z)A#UsYk~2NvQ2$9lCZj@xcZ?f727(~f>B&>yZlt`e9j z_UeT?P|^)^h3%H_DXPk5B|6Fr9GQ1KM_(0)rx!9CoNoCwl|&!jv0=d$=u2ldEDQ;p zd@GYl3}V<^9Y{c6)J8v!2plaso?30YTPj$WTTMndTJ)>3xgi6`?Dr1iy5WQZ**Bv9 zKTZfB?kedChy{ikv_0ehBOAx?u|T4(bk}JFVVZm*g z>@pSijg7N5ayUmxO+7Y-89+L7SO|5v+=nBW>uWJ zC!6I2E+cQ@iomd`(Ogq{^<3p?sFiDD9$zphzpVu(ijmmyS+A_!z498sHG$be5comr zOe%~_rmC`CZ|K?7R$He$KjpHxWnHD}&J*QLCUFC|EZh_rJHVig1r!)u%lK$A>l5j& z-)>l%$Mt+>!vI;b@nrCV?m?65al_>Ky-40Ml~uX~^`uk8z%phv8m zx5+Y9SrVxpW)2FNtut8Bvid_wwxag4@V&rPFMN@De7tGT#W^!}~NT@B!?uX>o%$jOoXs*g-v;{RJbt_;44;cQCn&ndi71EzT5o za6T!2#`z9rN;|kn*)t67;L_;TU0m;AG&(bCi$-mc^Ej4&e2%f~F23r(E_E=#KVIT~ z_1Ql^y`bZMHs)!RIX}QdRHC_tyV2ahCId6jR--XZFj-2@5#AgDT;Q8@k+&~l7FW2+ zb2X3axP~Q;YpnWvDA4K>YFI&o96G$;qBlcLstbCLniza)-zO!rr0*MiOJ5JDHI3ve h^jr9D>ZXPAD~xme3qyn4RoHQN`EQ!6J)~|7@?T6PsuutN diff --git a/bin/org/javasim/examples/interrupt/Queue.class b/bin/org/javasim/examples/interrupt/Queue.class deleted file mode 100644 index 30229315662ce2594cdbe51ccc7b59df6aca1ce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1300 zcma)5+fEZv6kVqmYKNAahzeN17U)ezP-7H>8d74g#bA*H-=^&e9cX82J5}_>pYTP0 zz!yv;0ZAm$M-#umKk>z=>r5wvH^?M=&e`YewbxpE=I7t9-vG?vMhHHEgx%cKw~UuY z%dG2i$EY`IvZb4rBb&{3!_imUvMoah2=u92dd;vl^(Un*S#|^hRcTZNCiAC&x5dgD^i0W(FnrO!Vu_W?6VbIjyTORlu* zCD~jvN;N4kkhjZ5ZQW>^YVRcjPStD)Or1u{)ka<+vz4nioYyXw=K|59W0bcGM#IAk zzfdL=%{OdFwj>{_NH@nO$<%3WmhBRoXt|xTY&fQEwL%yZ7$FLJA!F+(N#OLo3?tW?3$oYGRt}`ixSK2}<#Z1e+v-=@Vd45A2eAS9BBQGKM`=okA39P@#U} z!snuOxykGal;AO?5z_YI3hydHF<0+f>i01-lm3G7_vk)CY~v7DzZ115pH^`napl4W z+h~$jWcHE#%!&^CVb{x9{xoyw#ZC6QMN@7gg*z^Xp$@voVUYB*tPt=t^>TR)GmOgo zUnHZ zaK1~=fd#s7pA8>!_KWD}E^lWj bL1V2_=X2F{BM|(9SO|&05D#Zr=)>H9{dxXK diff --git a/bin/org/javasim/examples/interrupt/Signaller.class b/bin/org/javasim/examples/interrupt/Signaller.class deleted file mode 100644 index ec3f01b3e37ddfa581239db6040fc2ade8fbf1d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcma)5TTc@~6#k|yEM1mMLB$J-+}q`{Xc5sOJOCz|qQ;UY@L)156FRuJ>~0PI6n_EF z7%7P){s5o-J?fdY!9s|#$?Taqb1vUG=bP_8zkUPo5Gxu|40%7?v-bH19!b{{2iy%D z5n0lUMHtqD*s91qk2{VCHDnkDTdgb7tvfuHzPIkhGXBWW7HvvbFie(P?V>mo+>NaD zgTVI$nR2I+s7eg&OVX3^GD9Z6R;ZF#^>>AiG&&7vFc{MLLRCXI!}yg#>gYnRa_z{1 zq0c}Y+8KJv(i5-h?v4mI`Hn*f`^vt}ohlEdIyaS>xF#b8^Bnqr^@Iw@xPp5OY>l9X zbx-BLV_*<>8M1pK{*yE*V@)SSLk8}ngWPJqv#Vi*VWhRLOOn0xcXSM6Ocgb*`m|lB zW-*C^hCE^YkM{<*YgBus<_88$Oc4@0s9&MRH=%EfDDuOSf<0qk78aFsMhpU;Ki8*= zY$y><<@&%Nt`!+{Vw5XA9*f~pfKcw z>$Fo}4gDP}Va!q3hBbZO*1Qrr$Vv(c*HIbmt(`lLj&QSVUvYsP-k+`#fDdcIEPg}qi in_vgfN%|6jT%tI=XiLA-Fu$r{f!3nx)HBkju>2b?XA|N8 diff --git a/bin/org/javasim/internal/SimulationProcessCons.class b/bin/org/javasim/internal/SimulationProcessCons.class deleted file mode 100644 index a9c1da739d41c071ed9d6c2dd6fd4fb265313548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 904 zcmah{T}$IY6g`vHc3Y#}x_<8ZQQz9G7!XlG5u~6jl&+u@e4NHnN77_TQt@Z4pa?$f z57-|io=J-sE0&O%o4Mzld(X}Me}4K0U;~vrEP;9uUOLzEMn<~pXg^k=FFof(cYB_U zb>JU|fvcjZ5%^IaS%I$x>v+v&(FRZS6xE2PpRbZc$)(+JL05gAO_C}2_`Q?0cNph+8J$eC!$Mjl@TN=@ynRF+ikW8MO0O+LZN3MG+4xFF0^$!}pL(tg1y-xIRA+g^wJP70?6<;(A z)kzO$1k<=Lo&>$nRfpQRSsrTY7q5bhgK*vaa8x*p46lvFhoea%4u*S{nF5Mj$N6=} zyup>~kFe`M9~i7XpnR7QzHyx*0odfaMcOtdv4d%zRQfc`B%&0+EXxRHN|@uBg)-)` zFeu}2H@UI;JxYHWSTN#!!d@b1_W=XJGQQ)-2jud5^1+AXMJx@-`z&RdQpVgHU&Z9~ Xki$7j6lVLVS3kMLh3R@ZX?NuXu#dzM diff --git a/bin/org/javasim/internal/SimulationProcessIterator.class b/bin/org/javasim/internal/SimulationProcessIterator.class deleted file mode 100644 index 9feaea32c2e3076b8c7827d8bace6d0723d703a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 917 zcma)4O>fgc5Pjo>m;|Q{DU?EkOIm0X7sbFeh)X3zCG#N#<-T!N>9&p?*_-~ZB9$U> z;MhZd6k^u65>O%eGCQ+7^WMyxz54n62Y^@T+pq|OB%S%k;#6d6?yFeKG!~IRQuAdb zv`XSnX%fmTJLCtUlhj6)&@%acB;uL>adIp}O{gq%N_ZZWLpw;~Y)GiRRyPVLLCeM}!7JB?fpc&dH3obq#k3B>nuA;BVl_~) z{IHx)Wcpc5B1vcmNhqSRNR^3;%c?$78R13A0j_oA=_x2LSUxuoIg_k)x7YuR?Z&c( z4Lrt{4Y#xqW+4uqpvxTLls7r}hvWZ0Bj2SV+;Q*}n+8BI04)g3krv^}d$B0AYK)R) z8p^lIsOjEl`&yfU`CjPqE-L&{36@z1dlvgPZnLd(bjY#AXVd$JhPQu?=2x`8yoV0FKlt2&&q0fGYRt2nS5t@GJ$5bhegQbJ=Q;oY diff --git a/bin/org/javasim/internal/SimulationProcessList.class b/bin/org/javasim/internal/SimulationProcessList.class deleted file mode 100644 index aaf9bbfa18b7026a5bd55acea06ac821118fa97f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3280 zcma)8+fNi%9RAMkECb6ZqF`As2wvIcvf{mfsDM;0yIw#j*jk5W)Y07?oE@x9o2E_E zhc-=`J~U0!)HHpNHrf(3d{;Z}1N=R{NbZ%L-Bh3GB?AIp=r2%kO-< z51#yb55P8@)e#VgIqtdm1@p3*vomo!>sfBrOviie%vjp=Y$tonby8L?*JI~A9h$&0 zIX9j*v*+SRhc8$uPe40lnIi%XJ&P;V>11=Q0!3|h*7n*3f_2e;7U^_GtT2KoHK3!o z1OiJ8gis_<)?;U_60_zs2t7FxoZIIf95y2WM(prJ!LMZ0!{bGBS zC((W#>jat>XX9bEis?CS7}cniaMlaN=fZjMeoA~PXf-w(*o4h&gL4*LsI806fjr-a zFzOJ~5fxZF8|b`=2I|p3f33@&ongjJQ% zL$dfb1KVZsQos0tvlK}nH0s(8uVRROZmXfKbIQF~s2P>nsoJP(U1pI>JQ=;7nYx%T zM^)>~hG;XeSE-mX=|}|o4D81N0X=7VXFEr@`J%na_kyg_X`l-Ssa;A|XnM|@7o*M} z@!~$`aQ<`^&FHLWt+!I_Vyco?r^vN3&ShG#e<2GNY7K$#!7C|iROVJrM^d0hrPY{c zr{hVdcPw@OVA{%9S+6iHj08$4ljV<->ZnJmx|1G}D5a-;29DrWj1H*iQVIOYwR=*D^D$VY~@b#~FbY z|MS|wFjCx-EtK`rS++r4mrRy$uQTSRtZrN8;i`Ggck^rz)ZZ~iPfW*H|B`myeADH=m7Og)wV%W^p7m{q#P^ zwMjG&NZdh1{|NB_4aC=k3Z_OSb}+DZ66bEj(8AF+w4xoI*vE6yh2!XEC%l3ozCVpU zbZ$3nBykBx74LQ>zgyt#=6M4yEAON#)#$@6t_pIG9?Q*FY_+M9YI8)$|tDM zQLUqnf00UQ3==JH!b7f*CU=XZRIWuE$8O21wc#2zDh(qVMQjN*PQhrD!nBX0Bo+x# zR_#VaOUlU|Em}mIe)=GIqoBnuEa810N-;n!28m|~t9h-#DQskuHZ2kfvv_wGcz07L={HeQtt#>kkmDZW4zexVs7jG)xk?=3ozHtELjR&vM}&WmQOnQJ zBM8Zzft%<4GgpOJwOKMxj$<=hL-LL&-hAkg%(X^Iv0b|%2a=7`Pyd-kbF(@V7YO4b z;burR%N)$m7>6`R*}xYlc23dS;cr%;)m)&}jKhjnh;1Ut1i8LgkfvDt&w9)k2zw|B=gLiQBH<5VeYpe3L{u-M=Q+}2yW*y2>Bc_a` zt7=xFVPdYgQ!^F0iQnz*iqt#o_IG*r9*_6?Sc4Dw?fem<_?QlV!an?zPJKoypA+`` z1p5I_@H&VuW;tyZBr$PJIbF`HJmUd|MR(rm2*06@E2pCr;Y7jdRVXTZ0znG7WF^{I7Y2T3MRf73e!S*w4bsn}nW6F&ilT8C@=c;) z`srVJ&=Unint0fN@A>%ykzVI<`w<)P6MJfcp>&IpahuUINkOkOVD2dG20^&%+w7$QWdxG8qdv^ zNt|x<$9RAqK8wutECT$_9==c9Q^frT*7CXz)5Jc--)?^@oH2icJkAovh>Sh{aNgN)k}NojSH2ER9vZtUL)~?dIS2t-Bm3i+w&HAZiATc(0M90w(o%TPGtpn#&x1|8TaD%4oQEbq40O>|GMhelzj z+4Xg}rlUaCS-AtLBoI3Q}^jZaVjM@0$V4;MsgOfN# zvO%XA2y2pkBw6DQ&S049?rvP>deXs%IIdvFPmG+DGiM!~!w6$Lk?~E7Y;6;ow&}1= zbv4%h_LAPoDBDEbq^^?ZI=CQt#f@$lcE3|7`8sL^9UUh9Z_AmF9b8QM_jY~i+etKC z*;q{LQ#^HBz?k;VojBsXauR=E;ZIaWElPoF)YZ5~pX`y~H3X@4ehXFU@u z$M_{mOY?L0GUduAvQ?0Kg^FdPUZTaWkWA{@1ws*vRU3VLTK?%56s%|YXZrwBt9_F+ zN_|?*8p&Pcp$1rOZvPGZNTl*sCWTm2Es>hLMB8|ryQKEtXOSA@9J2vUygvCEO1?qK uH`&G~mo5JPY_muB7T3uPLLo7bK(sMN`xMz-U^xj_Qcc(@e9l-7^Zx?ei}4Bo diff --git a/bin/org/javasim/simset/Link.class b/bin/org/javasim/simset/Link.class deleted file mode 100644 index a7d926b1e9399343aa14306a321d00259120d1e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2145 zcmbVMOK%%h7(Ek@?RY$i6W4KDnl^1y+GJc}pf5<$v`OlKkV~pI3KYR&Vvpl#98a+) zX%R?(1V|u|00|JVZ@OSXr9LE(Shf;d{tx1OcP6$8jzBDC?(2J;bH4B1-~asOHvrG$ zQXD-R_Ii!g{0)24Zo2Dveoe>E7v1_=9J+=9Imp-S`f7f0<%U!8HRyHcHi!MiUHqnK za37HLiqlxKS89%ibkQr>wPm~E$~xTC{i@p}h~`E~ z!-28!f1y{Vskh-9Omx`95hOMAU3J#IO{Y+E)}6Wt<<^%x4Z~yILMig&%fjGk6UT9a za@pl_(H6P7yGT){lteWpYTq^AF0Ea*Z-xxwRK4Vgcp6Tccm@*`*R2N?ptx_y!Lufw zlVk}dn{z5&gL))i+Dp^fitjWy^}U7gJcSocOm3eqxQ(Wt zAem_s=SB5sWqap>iHowM*A%y?@6DE}o^j3FXq21Vp>98FrVGx#^TdW)7C#}Vrh`mA4(y8Z}*50JLB2gt}TE5GzTn)F~F|4*r4BMkc^ z@g7EoDfihYk9RmnTh0f&I%jt}TV0(G zwVY3fnPVh5Vzs>uasnpECEpPt)=GbroVI1^QMLoQ$LP;l4{^-Oi7cW^MCp>H+`uWu zIzySyq95m|&!mc*4Sd76zyQW*qhVZmYbi=-;Y66~7L5hgC{r1^hsgZ^LvU|l5A)`} zM_g7p{_^eYK~>JPtQU~R9J9{jAPTI@OC1PCTL?z^eu?mcAO<}dGjxJD^*=zI-U;Fr zf+!NiA`@RBh^qv#vEg<{e^a}e%0l#QSR3%<@JvEMvJ8JcbOAp z$XgxCJjYSGv5(!DevG)j1wHbUDu}ds(3NkhxN>7?7{(RJqUcFp)Ci9+7Z2qk{lS%( zRVCgN==V5g*(@^f%gA-&5bVe_D|d^w_c3MNQFiITZYtQF>DZ<1jJk)d8<}ZKG09#7 zR(Q=ze8wGiU4>Aq#OC58*4T$Nc0?VQ;Zdx&dF30lZekUF2fbYrc}_seJ3&rQkd)hy*}^_qa;lCMW!Z1@Ny?O4Gi~%1A0yy4C4GkyzsvXJ zJ>J{*aSR_2{fB&RKf*LV#wC2xQRG6a$OX){nkb6Ma3)Qhe53z~Ish!_mHZ*tHYWas|^ DD(*$m diff --git a/bin/org/javasim/stats/Bucket.class b/bin/org/javasim/stats/Bucket.class deleted file mode 100644 index bdbb571e255686d94c3a249922311644c7dc72cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1811 zcma)+*-sNu6voe`3(#rHj#$}IX@{kXxJ5%E6dwqS5kiC*lWDoYKs%M`lo%6V^-

zZi%moQ4`R_2mb*7DC2i-hgwO;@G^J*ecw6v-1+tU$4?>}qsz5aBd8;9ZzQ*jU87*; zk_E?b3dzZ0W?MS73Z6p`cTQcJaYOspAw6qu2r!B`eWkHab5#+awoJ2Rp zUHJ(6VzXZ48-jv2P0Ms91O?)$nZz;90=aro$Bb|kQ^K3q2WS0%w$(#EHnFV`R4HjEAlz zZNrv^BkiS41Fo7YMho^dBLvlDWuZ`7Z#e3f7bB*Xv1LwL&Z2VUkE<;DGHbS=&UnH* zAb2cDXNvcQ7V||rBX66WIjwZ-qkQ4ihv0lD5+BuY_R*{1+^ZIuM;pZsjl%dwFiK-* z0Bx)OouYc*AvNiPht#5rLu&h~PMyNHUG3>6KayDwjVSd~3k^^Q)_Rp*E1gz!kSGQ{ z!Av>>2R^0O>FV9XnEjRXLjToEKyL_o!_XUn-l)=RM?}m%uE$YzxhfB!!MkEAs-bVx z%|dAVy7cefya3 z5vMMy7H=VpNf=C3U?XL0gyJe?33Wt-aaYEEo18?%w62 z^$RLh(MqXU6_wJWMq4OCVN)BWYL!;3wLcvF;f$k>*<-_kGXvKJUjlT)*+cRRF8;x({U<7G$!C=Do&#BWIZb~9%bIa3XJyhQNe#ia_V%68osqU3of@<*4OQ)#H0`DBJ|meo%ef^qc%q$cF&S$b z%A;-f%8($+qg`sXT!SxV9PG6oFlnS)Lq*EWCOGzPu+o;@%7upRuEstZYR?RsL6oCb zM-ArEL_=d=fIHObn1PuUvK{}*WNDF(x52AnM#M^+v3zR4% zUR?Cpd#oI_B2yhN`P-twPoQ1tLGz%7N`yw;c`O4lMWKE)C13 zx=yET=7kl{mB26>`z5vvRR=fA8T(C<;(Sg+WWtwTJ8PvAEseW;c(;aG>VuVO?&>KS z@}W(`yzvj4t)$tLw}wJF!LdnUr-!VBFs= z($d%`)NIwU0TG6NLTa)xx*>RCI(me}ig+@Uqr?6of{qy}4r`{mPJ)Is%y&L;>&YH6 zn<^|>bPG+{nek;XX^RLt(XV3{mXY=YS<5yfnRG%{->2jKxQ}?$YL^pu7L3GqD|g8_ zyXZ7zXR=PXe2CL!H~X=Sy*ZOl54r+GXmi~nU1?W*2GQ=r9+!k*zeOT}y%K?a4ATU+ zE{S3QQaTKzH7uMEnq*4xKZqDZc?+FxTkda@)q_YNr^A*4@-w>z9p)0)uj2q%%RX6D z#Ic&XgtruV8)gdI0elD_@!`W7W-2OFrS=}m*(Py+6dz-NGI^HToD#BaqUL0Aiw{S} z8FCa=S!~K%$w4#g$Hy7_sBzFr@O3;U_2*MWB-4JJBnwe# z&Y`&Kdm$@Fl*jS7jt9`;M};2&KPvsG5)Qv2t8=9ppVsjN&afYCA$67)bS0Bko)*xR_JJ)-lEj_w{$#>XV|6VnbdG5$J%kqc5TD-deeVt z>=1zGCAXK0^$R+_jf-yU&RO<OpxQwq$x*{0QixP zALAMkrB%mcp(q+&5umIq&ERjqk5_rSD6uR&gmMQgJH97mX0w^>svy>(ou^=LCZCO) zPGhProv^E<#IS^%${oRrI#lpUxN@q)&w0Q#4{~1Vn(Lfbx#rdI$hCmF9=QwfT}fLt zn8oL8&K~BvhwsJVQOsE!Jb4NR zrrNn>C%S&SwM7-=Nx6qROlQaS>{iU6y-_L0W88H1!Rq5s{|y3Z6uMWEau`KQdvfgYSOur zyVem}AKt6z;k983vU?~agx4yj3b~^;Hjn@aD+Mi5L4u+i;&t9j#}K$ zJy}*fAICZH()s|VurMer43UL|uwW?`l8S}QR2GiYvq$OEWAx@ES$O<^U}3n(!u|N* zBo=sfPtQVlMFCkUB);>^TVdhQWEP$v3unl}Q`4}pgL?`KJWTkM%Keq%AIM(9gJU?{ zU-Qr?j!J44@Nfag3ivEP)O@ah&kOrcQv=wdo>IzE4nUZ{JNVluqFeS9nnyWu%^m$!?s&Rr>Iv z+E=F!L|%-tBzpiA|3*hJ803Gw;I4`LhLFk}v#6r796^8pW0M-da!4SnFAF4f@JD zZvoGbfLf6{Z?x&4B-!K3x7nC^27KOtMkvS&c86; zf8`D9Z#c~HQT!dp@DJwgKNX9usuiCovRKAD$W`VLPbWM=p3jiN0PjrS=ct@mj^YQ* zFAtII#1FaVRZXTI{+k3?!S?6FS?3=c-J4j$aiFH`Unr}RdgIlhn0L>qCJt<$NGoim z-|{DU72*K6q=%lNGJ%DVzdvmSZKADZMrR6lHHhWN)OI)#kL65f7zo%}#{|bj|d^t6-Hl55+WdCNwlTt4D1G-iZNiUV+jpmxd|C za5}D_d_tHh@J$S+vfnUu$Hif7GNx0b-->Fn5iMzmefH36A2(789_=p;Kdit{cOzOXO%LAoUJoMI&rZctH<3b6{P@HwlED*VpsaTQfq zA#OLRs6+)bnRB9658GPw#DJENkSn%-L)Q6Maqyo95B}zYxtfxyq3K~Qo`~tphcuBj zPh1eoHCgt=1>c^O;Mg0N6j!FSIi1dJrdHS9pU-00P8#M+xMR$RrxmQ07lsvz4CV6i z;Te*)bkS$T^r5t!NZYj3wRjbFAS^1g>miOud|)ke_Pv^|Ew}H%v%-F_f`%+G#&@fP zJ4Qs+_p8_jX4jb4Ds;v)1fD(>2W5XmV^)d@`=<$dP>ajPC`z4OH?3fu!wEwdX2`xM zx5S}asVFk}W;fCo5%l0i6)&Md!HSbf!`6GPG`mooA6D@)*j9dd9x=u1Xpe|SQ)z8m zNvB3Wj51F*<%5>pXQj<4S5;n7u-2^-F)^ZO;Bbwd;ZrGFr-h9)i(;k8aa|7BAz|ipE(tohM39_U&QsWzHeyqH z(vMRL);L2YU`+>7&T|Xw3{+tbVbPFps@Q@qu|1>WZM?(Lr6m%&DcOp26g{%6XWGu; ztcr6u&qlBkl)R`8LE z5V}S1PXydgMNNB)LoT88<8$Fmn=k3?s*0`X_Tw6LILq^~Kmg|afZh?T(%9{H7L{ZgYq{goKm)bcaqZ>qG3oLq zfe1)@+Jg7cc>NCi!L|i7ie1x<+s>{jIC>AwZP5iZi&cyF*aBLD)M)1amP^(GS_Ke~ z1R}x%o%|APW`HdW-G%k6)h2ZF-&X7N71=}reLsUoY4g^4>9HGsApQhPO=-O{Vt~7gGR>A)3PB)3)?;$B}6Is zEf;zH%!R|PfCcoqjLUPzY{HyzS=_Jh$zb1h@8%2+)Oqu) zIweZ6QEb%m9XDW}B|0r5ZgYI)nj?Vc5Fy}7w$t-?fzfLjwI2hF+Q1?YVo3HhKdD8? zlGG8c7VKnI8#6d0WK&i)XJu?^;1Zkkvc%~$aWIE7 zC^3m9I+Ek4g3*tnh@~;X(yL@?T(C4DS(=nA>BTHvVdhtv^EGCBgDl$3g#D16lf!EdBHlmINljl9hYl zf5`d)XYL|#A9JI%^NTpm5%)$0Z)Naq1{ant-ghoO%;4kY7oRy7SBfsaa4xPFUEFjo ozRX?Z2Z&SoyX5;f4y=3ZxdpODFj$m1IkWXlZVr4UAN-yF0B&+=qW}N^ diff --git a/bin/org/javasim/stats/PrecisionHistogram.class b/bin/org/javasim/stats/PrecisionHistogram.class deleted file mode 100644 index d043c25b270dd3b07659163d2543b7f9e1d97feb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4910 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 WMCb2B=O4E~M{*H#-m%&L$$tR#5SWPo diff --git a/bin/org/javasim/stats/StatisticsException.class b/bin/org/javasim/stats/StatisticsException.class deleted file mode 100644 index 828633f9628fff6f415188ae69b319507e4a5bf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcma)&&rZTX5Ql#Q1xx`&5EO4}41Y{)qDKrD)I`&GL3>~72G^9*Mr|kUdhN zGF?Kt+42ZhFS?dC(pWCQMxL)B7t*a9Dlua;0p23gKI zu2NXymnFz^Ebz)9XX2b`Pf&cCAuAkh#(-^D*g=WE3UdgnD07tvDjX9*m&t_9w)ZAj b`)O!!^XAM@n^Ow|^Qd8+9efD>JB9iuHfVD2 diff --git a/bin/org/javasim/stats/TimeVariance.class b/bin/org/javasim/stats/TimeVariance.class deleted file mode 100644 index 49165e0fa31c88d00da8d03c9102dd64aaaa1d8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2580 zcma)-ZBr9h6vzJy!9Z97;uEHrMp1!9iMDFB_y8EKR6s413iW9d*0{3C;_e3frk#${ zw|yF4wBthyo^F3C!!GkueLclX?L{^xhjJ^A~eKmP*o9-b!A zq9N;g<@{rF&GhX`-Ve;c&(GTxYr*tvvs$u}NNC73+iZQ;(Du;w{6K@Yq@jZjyg<(L zxu8KW)jZFt1`DQBoxJGiK!b!d1&L*lZ#Y^BhO9vwQmQqa(= zV;8!3(zASvLAs~ysx@1y6fJMwEIRbrJMETCN6F!H^fD1VvV9G?>1N^ao#F1FjuhHOUay9Bs)>?H3>8Ft>dF@-Yc;Uls-MK5hC{+M z@0itce#&vIvgu5C>W1QLSjPYkOR6I}j^Q{dn4V=SB!v|6IGMx=3W_H(XIE;D zDWPt9Zprd}oz>*Y&WN_8C>~GgIE}*!yXy)5wXh6bbAee}nK4%*TAfmri8aeJ%e3n7 z%{7Y_0rz``rWe+!c>AH?(R@nhVOOnSV7IiF10Xxei~u zvC=%yurF>hRgG2VKE{(M#VkbiTNXuF!k+o}HK@icBJ_`R+<~p3zhSh^l_Gy1*IC53 zK*oKMqaAW=*lc%`LJ_WxRXiae_SbTqAEyb6TLkY#Aon6AUqgC)m~(4h$qK#ij8B76 zp@W0$pH|MtHnhlG;I2hxfm%5o)XF)aR!#=4(s3MD{7v&|jH|}A!`MW(v4Nehl<98% zrj_FXByfZWk75ts>7g<9VjrJ)t?G_$Gq^a)8i{rE8AkfkGjKThHR2SX!DwjPBehiM(5eS$HLD&fz0QW8IH3~pk`c#Xan$QX;SDPR*u zX&u=?zRdje0zI#cR+01vMnw3K+r_io1qW zm{PL#QUn7=vSfFLU^INdw+XZibaH|kvrH0H*k|4dKvW= z)wc3n5_3#lD#fYRq->2gf^l?2xNKlv*8UCLmNgTtxoFLDH7Nh{hR%#?@(RIM(E}HK zyiz$lVX^#Jkw)uUN0lz&bf?Z~2Nm39>r0tpr0xqTlcb75YFUvgD^ib}Nqx!ezhd5B zGvj9@_09hvwGxqXP}xR`L#T|9*>!>#B?Eitd?)nhL)5FKRsOq5uE@ diff --git a/bin/org/javasim/stats/Variance.class b/bin/org/javasim/stats/Variance.class deleted file mode 100644 index 2b5244469c4528c85505c5bcfda7741e7a663dfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2727 zcma)8ZF3V<7(KU5yX~?B478LA5>RZL0zqE2;YFYnifusy)goH9$u=xacEe^jP((o# z@a2n+s78N_NOTkWoc$4b1?q1Q5#%|)! zYuYB|(Qh?pTZ?AiV2ygQ7yA|L6Ik0^m|d>8MoGf~93)lSQ9DT!o2k4GJ7~Qot2J;(0IvvLBj>)1U5ILTEQ|S7iCIA!=k@qb49yCO+Aa` zHKUjOt=d{OZbGrhv!u~vts)rEWy`^6P+Mj;E6)dFk-;UDHC&T>aMg9kbd7P_%B%_B#%ieVsKR&d@~XunLQD)j9b#*4_Sn! zbCHP9-rE`~xFfr;;Y16R?`{?JVPhktg^%>g47_T_w8E%Z#(fPBu!Y9~_j11J&uxxm zZO_RW0m$n5HrgdU!dA9HCqDoJ9rCo}(<(mmoaVKcZyDYN@4cxNsHqyX-}usjHN3|C zg~Ny;#qd$A<(L)(<2fYw#sM(BJWQEK7<)9rS8ed+;Ts|? z_}IWu>JgH$Uy$T|fWMdIZ%Gb5unY1Q%RjIm#vd|iXT+9Mq;wkFaVC;xC`>ct$BOOD z#A74OH|skD3`)!&pwa7*`1e1eEB;VE{)y4n6j?%_rwg-@6oZizF?6hz?!1ECVUFW; zP&%*vjy;K2YZ&us2h~)4cjrm_vX2+IU3Z3S8gBD|3-L-J=Yzz1jAL_&6Dv3=+17BX zhBug?K5;gfc(XCV(qx;ZNe~Dyu@P7KuSk)fs!~MM!A5y5P;9fE-u6p=my)`;I{6rL zbE7MGclt3d&Fxsh`!lJXHRuOoJ8H=H#eQW>Ahq9*_qe)B`))AnO>D+3KjXdtE6hk# z6mZ3tyMg?!5+T8MTO!9!u2aa<@=f45+Qw{xF|uXjqpayb4R(t3oFRQ~fbl*>F)`R9JszW5KSFB}N~ diff --git a/bin/org/javasim/streams/Draw.class b/bin/org/javasim/streams/Draw.class deleted file mode 100644 index 8ad8e49e8b1e85d82eea3022f9ddbec6c23adb0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1025 zcmaiy(QXn!6o&sPPzr9L&`PmVZLPHnYPYuNjZHO{svvDIP>kL!bi}Q|l4YyL7xBVZ z=#7b$L=zvthcf;%tfUuh49U!yGv}Od{(t%X=f^Jq>$n%im_XL`TGpZc-tIdctM7Z# z?)0saXMczyEHI^RthU{4S^JGc+4KcOUtp+X1*T9l)&PDC&!UQTD46JM9dQB#UOCeKm_9|nl%u` zgg~(Fi^RX#=zTo4NCR(XGPqaL+p;11RWVjM9PttZg?$(nCB-|gDHKybX~ z9(hgq*in|ml)_at6N~gN#DB&Zf3#9ZG?IImH!;MyUf}5^?NxQNg#nDhPb6O@k^`hp zFjH7LLFTJ&%yLb$5m@HBf)q?-kjEuvG6b+4bGXc1MLA;V1tIeRq`{2p&YptI4{+r? z${MTJN!;MHqNXh9M`lNqY(U{mO1;Kg#ajw^pI~UIxzoH%I5R%L_4AmUWNuN-1L}CF znME20a{ejHjhMNBscu*3h0>OzA0~|!DBvbNxy78a`nI-tPshM?;TvYY!{V0t`~{Kl nap;(ZA<6&}TI5rH|1vFprXOK&1lxi~Z0K5%VzS6^40rzmxnHQ` diff --git a/bin/org/javasim/streams/ErlangStream.class b/bin/org/javasim/streams/ErlangStream.class deleted file mode 100644 index 993e80650d09e28f5d1b75685c79109f66c682e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1401 zcmah}%Wl(95IxsU;?#9pTG|jEfdYjj<`Lenl0rmyv`RrVP_Y4IQq!6|j2ssbD;6Lj zHf-3jV#N|6Q9vyC0CxNZ5)1eNDCgdoz=DcMiRa##Idjg;#GihC_y}Mh#tmo!qkb@7 zxaHh&+FrBJ4g=R|whO0&hSQp_s*{1(3Q;poYtCPT@*#w(7bpYE(`|R?oZ}c9aR2r|;F=+p>Xe0|hoh4yxe!g~#U^DxobBT0laz?Z?IU)7reE5tp!bC5BEuJ1Q%HVU%euq9gyM$GCehEYN8yasg z3BL`f4YR>*9s-Y-*pNxM=YC|JJ63^Sc~1*iUQWqZ_`6eq(0;(sg?xP-WxR%CzW_xS=dl0) diff --git a/bin/org/javasim/streams/ExponentialStream.class b/bin/org/javasim/streams/ExponentialStream.class deleted file mode 100644 index d8d546a9590fb054a3bd0896f4b123b5ba27e625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1079 zcmZ{i&2G~`6ot>kZk(o0e@Q5XLMb#&Txg((wg^-S^#@WVAP9=sy6KRZCU%v$&2`Xh&BOh`mwxEE?V1i*Fa>5#D}CzvyFn+a5-_XM^##O+K=PjFd*K>mg^gmJ zpY>o@reR>nh6P)|C=~015E!;GfTX}k#q;H(gU*iZK67{4QeeCiG~9OG?Rsh-2hFhM z^#tZCr_r1Mze|{oz(8T6T&$<*ma}mdlLFR(@4X1R%#nk*cGN;mwq+yap)wy&AX5w7 z#$MIkkKHW_ZEq_n1D8}IGfG@V*m3niP0C#!+@^kIJ>CsAWf-+3kls9O$ox*jIB~{h5UE4ufq%#`@XZWuZo?+6jf|wah@v^7g#xp z#4$xo3&Icrq*H{`G2sXDsqXVm&deo`a8Y+|ET{UEDUnV6k8+*U+e8Kr$nX%8{LZ1Q zDc5ut`95X7PnnM?>B*jEbvJoj;VQ|K5qV0Jk1KKxRg;@$%zl+V3HpHb32GEH|0;D@ jfMMq|GOyKqzror2$Vha9>Sll^n$3W>sy6Wa%S8=$I diff --git a/bin/org/javasim/streams/HyperExponentialStream.class b/bin/org/javasim/streams/HyperExponentialStream.class deleted file mode 100644 index f02e1f47abf6d06d6dd9f62382506821a0be1871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1566 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 b=)@kAuTV diff --git a/bin/org/javasim/tests/stats/HistogramUnitTest.class b/bin/org/javasim/tests/stats/HistogramUnitTest.class deleted file mode 100644 index 2735cf060984dc5b746443a6db06baad9c61a7ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1264 zcmeHH!EO^V5PeS5Y`O$e0xg9CGPgvau7o%sf{+jj0%-*jO)GJ9HtxpJuD#ga2!4Sd zLIMfyd=z5b0y!jyazx@Xp7A_C&+dD>-+z4m3gA9&MQAV#jLnm|SO}-e#7pO0;=G{v zLOE}8E6O9S{FoXMnhe_kniN9k$?M5nW}cz-SP|k0!$yB_%+P#hrZU17LwAWCS!-+? z7a03^q^)$OSjZ{QOj)Tycx5!NteF(DbdPwvHJ(YX%F0;JX}W`XP5e9)S{u(NlK(#c zH$a+y4FmUv3+_Ku@{FsLerBdzI47+iy{kpx`i0T?Js#qKE5~a+l_yHm^e4u0Pm_k@ zeC2KZ1B5Z!xY)raE-~!%)1_L6-YT6BgPPrxp7m8-PNW?R5{RLfnoJbO!m3dJ+HCrn zatwFVbGvCsP6>8nh)3@;Sp^fg2)hhdmV^B1FzmmnwO6HlsTayAy7_6a!>M=Z;#L|Q zI&9+xV-L^cu>XEobu3A7Xlk3u=PC%jyMj0f%HR&@Q>Q-&(4cG+Es7CU4``Rs8h=6i zZ7=?W&bL!cmtw#Gd)TJfIYZ$xdQ_3#)ZM^U%9~W};2LECzenpT@AWmjx7YIS)AmGj0^Bbj)H%2P#%XACQ?og;?w3zNzSYYdG!wqvcaRa{}E z?}yq-XR?V*d1CUh%7j-&^RYGkOy=$hudVfllB;}dtmhedj|VGS^B?LBe+VY~10>@j|EaSZVr#V`I4|wSj`4 z{aKgCr?lVY6qZlfvj4dY>Z_rOt97j68pCF*J1_DBZ@PT!fnp*XJ7k>@aMtf4@_Yb`BDXIY@BVJ zd!d%`0Q8*D0|k_5wu%bHh_c7D%4n>8LG^vJ_6hZGQ%r+mzyMoVr&yn%uz@CJ7e4sf@Gh~dE4q%{%~;Z)Z0(s|c%UQm2x zWvrYs`k8XxBvxd{TKOI!N+>XFhMHC?bkcg+AIaD=6dx)=JYraD?42+ao|u6wVS}MI z$9AkWwv0tE0ca`23$BNt?#_eMd})<(MgksxW|>_xgN+r2}c^b;8BT@#D+L|7H_pNj=QRF2`Wdv+JL$zj2-43*BiSdN2vTnRTA zuFVzw-eK5zoolZ$`CL!P)+FI^u+h|Wq@dUh&Tf}+n?=drIP<@cF3SC@b?LdgeR>J6 z?5vb+51+z%a%`=Fn{sb*O>&F=GQokq z`=i7!t6G?Sn9@gIzT`_zP7e7_zHi?@e*y3icO%poVq+)0nV1Wwik_FwyPorc;+sln zuX1^;l^@c2ggV1^K=yK>C%xCBnM^%H+8RzJS4C;8=OpfMRuMl>h1SONk>tP5{|%7z zuVCQbaKZh@QZBd(>8B>+W1;f+fGfuMds~rv3;9ydl~Z)_vtXYy zuhG4YBsjX?#BIjZMI8CxKWp$L)$YhtHkB`^t&oMzf1|@tN$i7K2{kC7Mzc*cC`Ob$ zqE$v?>lDp*-PR|xzn)<_6axm>#WuzE0)?ySQbzuu-3?r)d7ZKy+@x8+-=gtP-rW_v N_g3=m(fJzg`~cDJohSeR diff --git a/bin/org/javasim/tests/stats/VarianceUnitTest.class b/bin/org/javasim/tests/stats/VarianceUnitTest.class deleted file mode 100644 index 64ec7af493b10bda50c6656645f35487e3cece17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1429 zcmeHH!EO^V5PeS5Y#IV7fk2^v%x#NMSE@J>goIF#kX9hkv=T>W<0g)F?Zx&+^dI;i zB#_|FNAM|#aRNjtIg|?r#AQ5Vzj+>ypZ(?Ahfe?wa63YcAvSiB%*0$cRU}?I?-J() z*<)dq(3w2a$`5HiLY-kdAd_6^N%C?ulbL5|JW_;s%&-yf9W&IQnz4+q#n4${2i6+f z#0AE_9%(C`$>(y+GgFi*7hW07OKV2CEZjrh+8RzJS4C;8=TzMOtRjA%39XIiBguc} z{|S)lU&Fw?;ez|qQZBg)>8EDQg>%ySp{-;*GA5To?{VdLrN{C_X)650SnjFFkjc;X zX${rjO(k*{k4;5qyw8{8Kgrob6Bpaq#3hDaoURmb=&jO|eo#m!r6#_pijlNKK@DN( zrX~~lqLCE;n5_G$at!y<^9r<2;tK+1Xbs+GvJAR%5w0;@S=I4tg<IeZPsDjJ-RLX#Y#>?>q&%-a}K_Og>XVJH4~-Z$Df%?t(rf`sRQd zd7EgEjVO9Rvy8^pM>Jn|Tkp~SyuftG1`M!+ZL;kp3YXEPh$KX-8@Nh-ouVGDlNazi TH2%(eV-4?}wYtrue if the simulation is being reset, false otherwise. - */ - - public static synchronized boolean simulationReset () - { - return Scheduler._simulationReset; - } - - /** - * Stop the simulation. Processes should call this - * method to determine whether the simulation is being stopped. If it - * is, then they should act accordingly. - */ - - public static synchronized void stopSimulation () - { - Scheduler.schedulerRunning = false; - } - - /** - * Start the simulation either from the start or from where it was - * previously stopped. - */ - - public static synchronized void startSimulation () - { - Scheduler.schedulerRunning = true; - } - - /** - * Has the simulation started? - * - * @return true if the simulation is running, false - * otherwise. - */ - - protected static synchronized boolean simulationStarted () - { - return Scheduler.schedulerRunning; - } - - private Scheduler () - { - } - - /** - * It is possible that the currently active process may remove itself - * from the simulation queue. In which case we don't want to suspend the - * process since it needs to continue to run. The return value indicates - * whether or not to call suspend on the currently active process. - */ - - static synchronized boolean schedule () throws SimulationException - { - if (Scheduler.simulationStarted()) - { - SimulationProcess p = SimulationProcess.current(); - - try - { - SimulationProcess.Current = Scheduler.ReadyQueue.remove(); - } - catch (NoSuchElementException e) - { - System.out.println("Simulation queue empty - terminating."); - System.exit(0); - } - - if (SimulationProcess.Current.evtime() < 0) - throw new SimulationException("Invalid SimulationProcess wakeup time."); - else - Scheduler.SimulatedTime = SimulationProcess.Current.evtime(); - - if (p != SimulationProcess.Current) - { - SimulationProcess.Current.resumeProcess(); - - return true; - } - else - return false; - } - else - throw new SimulationException("Simulation not started."); - } - - static synchronized void unschedule (SimulationProcess p) - { - try - { - Scheduler.ReadyQueue.remove(p); // remove from queue - } - catch (NoSuchElementException e) - { - } - - p.deactivate(); - } - - static SimulationProcessList getQueue () - { - synchronized (theScheduler) - { - return ReadyQueue; - } - } - - static double getSimulationTime () - { - synchronized (theScheduler) - { - return SimulatedTime; - } - } - - private static double SimulatedTime = 0.0; - private static SimulationProcessList ReadyQueue = new SimulationProcessList(); - - private static boolean schedulerRunning = false; - private static boolean _simulationReset = false; - - static Scheduler theScheduler = new Scheduler(); - -} diff --git a/src/main/java/org/javasim/.svn/text-base/Semaphore.java.svn-base b/src/main/java/org/javasim/.svn/text-base/Semaphore.java.svn-base deleted file mode 100644 index 6617912..0000000 --- a/src/main/java/org/javasim/.svn/text-base/Semaphore.java.svn-base +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim; - -/** - * Classic semaphores can "accumulate" more resources than the starting - * value. The ceiling parameter is used to indicate whether or not the - * resource count should ever go beyond the initial value - the default - * is that it should. - */ - -public class Semaphore -{ - enum Outcome { DONE, NOTDONE, WOULD_BLOCK }; - - /** - * Create a new mutex (resources = 1). - */ - - public Semaphore() - { - numberWaiting = 0; - numberOfResources = 1; - currentResources = 1; - } - - /** - * Create a new semaphore (resources = number). - * - * @param number the number of resources. - */ - - public Semaphore(long number) - { - numberWaiting = 0; - numberOfResources = number; - currentResources = number; - } - - public void finalize () - { - if (numberWaiting != 0) - System.out - .println("Warning: semaphore being removed with clients waiting."); - } - - /** - * Number of entities blocked on the semaphore. - * - * @return the number of entities blocked. - */ - - public synchronized long numberWaiting () - { - return numberWaiting; - } - - /** - * Try to acquire the semaphore. Caller will be blocked if there are no free - * resources. - * - * @param toWait the entity that will be blocked. - * @return an indication of the outcome. - * @throws RestartException if a reset occurs while an entity is blocked. - */ - - public synchronized Outcome get (SimulationEntity toWait) - throws RestartException - { - if (currentResources > 0) - currentResources--; - else - { - numberWaiting++; - - try - { - waitingList.insert(toWait); - } - catch (SimulationException e) - { - } - - toWait.cancel(); - } - - return Outcome.DONE; - } - - /** - * Only acquire the semaphore if it would not block the caller. - * - * @param toWait the entity to block. - * @return the outcome - */ - - public synchronized Outcome tryGet (SimulationEntity toWait) - throws RestartException - { - if (currentResources == 0) - return Outcome.WOULD_BLOCK; - else - return get(toWait); - } - - /** - * Release the semaphore. No check is made to ensure the caller has - * previously acquired the semaphore. - * - * @return the outcome - */ - - public synchronized Outcome release () - { - if (numberWaiting > 0) - { - currentResources++; - - if (currentResources > numberOfResources) - currentResources = numberOfResources; - - numberWaiting--; - - // don't set trigger flag - not strictly a trigger - - waitingList.triggerFirst(false); - - return Outcome.DONE; - } - else - return Outcome.NOTDONE; - } - - private TriggerQueue waitingList; - - private long numberWaiting; - - private long numberOfResources; - - private long currentResources; - -}; diff --git a/src/main/java/org/javasim/.svn/text-base/SimulationEntity.java.svn-base b/src/main/java/org/javasim/.svn/text-base/SimulationEntity.java.svn-base deleted file mode 100644 index 02c40ca..0000000 --- a/src/main/java/org/javasim/.svn/text-base/SimulationEntity.java.svn-base +++ /dev/null @@ -1,237 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim; - -public class SimulationEntity extends SimulationProcess -{ - - public void finalize () - { - super.finalize(); - } - - /** - * Interrupt the given process (which *must* be in Wait or WaitFor), and - * resume it. If immediate resumption is required then this process will be - * suspended (placed back on to the scheduler queue for "immediate" - * resumption when the interrupted process has finished). - */ - - public void interrupt (SimulationEntity toInterrupt, boolean immediate) - throws SimulationException, RestartException - { - if (toInterrupt.terminated()) - throw (new SimulationException("Entity already terminated.")); - - if (!toInterrupt._waiting) - throw (new SimulationException("Entity not waiting.")); - - toInterrupt._interrupted = true; - - // remove from queue for "immediate" activation - - Scheduler.unschedule(toInterrupt); // remove from queue and prepare to - // suspend - - // will take over when this process is suspended - - toInterrupt.reactivateAt(SimulationProcess.currentTime(), true); - - /* - * Put "this" on to queue and suspend so that interrupted process can - * run. - */ - - if (immediate) - reactivateAt(SimulationProcess.currentTime()); - } - - public final void trigger () - { - _triggered = true; - } - - /** - * Must wake up any waiting process before we "die". Currently only a single - * process can wait on this condition, but this may change to a list later. - */ - - public void terminate () - { - /* - * Resume waiting process before this one "dies". - */ - - if (_isWaiting != null) - { - // remove from queue for "immediate" activation - - try - { - _isWaiting.cancel(); - _isWaiting.reactivateAt(SimulationProcess.currentTime(), true); - } - catch (RestartException e) - { - } - catch (SimulationException e) - { - } - - _isWaiting = null; - } - - super.terminate(); - } - - protected SimulationEntity() - { - super(); - - _isWaiting = null; - _interrupted = _triggered = _waiting = false; - } - - /** - * Wait for specified period of time. If this process is interrupted then - * the InterruptedException is thrown. - */ - - protected void timedWait (double waitTime) throws SimulationException, - RestartException, InterruptedException - { - _waiting = true; - - try - { - hold(waitTime); - } - catch (SimulationException e) - { - throw (new SimulationException("Invalid entity.")); - } - - _waiting = false; - - if (_interrupted) - { - _interrupted = false; - throw (new InterruptedException()); - } - } - - /** - * Suspends the current process until the process in the parameter has been - * terminated. If the calling process is interrupted before the 'controller' - * is terminated, then the InterruptedException is thrown. If the boolean - * parameter is true then the controller is reactivated immediately. - */ - - protected void waitFor (SimulationEntity controller, boolean reAct) - throws SimulationException, RestartException, InterruptedException - { - if (controller == this) // can't wait on self! - throw new SimulationException("WaitFor cannot wait on self."); - - controller._isWaiting = this; // resume when controller terminates - - // make sure this is ready to run - - try - { - if (reAct) - controller.reactivateAt(SimulationProcess.currentTime(), true); - } - catch (SimulationException e) - { - } - - _waiting = true; - - // we don't go back on to queue as controller will wake us - - cancel(); - - _waiting = _interrupted = false; - - // if we have been successful then terminated = true - - if (!controller.terminated()) - throw new InterruptedException(); - } - - /** - * Suspends the current process until the process in the parameter has been - * terminated. If the calling process is interrupted before the 'controller' - * is terminated, then the InterruptedException is thrown. The controller - * will not be reactivated immediately. - */ - - protected void waitFor (SimulationEntity controller) - throws SimulationException, RestartException, InterruptedException - { - waitFor(controller, false); - } - - /** - * The calling process is placed onto the trigger queue and should only be - * restarted pending some application specific event which uses the trigger - * queue. The InterruptedException is thrown if the caller is interrupted - * rather than being triggered. - */ - - protected void waitForTrigger (TriggerQueue _queue) - throws SimulationException, RestartException, InterruptedException - { - _queue.insert(this); - - _interrupted = false; - _waiting = true; - - cancel(); // remove from queue and suspend - - // indicate whether this was triggered successfully or interrupted - - if (_triggered) - _triggered = false; - else - throw (new InterruptedException()); - } - - /** - * Currently, a process which is waiting on a semaphore cannot be - * interrupted - its wait status is not set. - */ - - protected void waitForSemaphore (Semaphore _sem) throws RestartException - { - _sem.get(this); - } - - protected SimulationEntity _isWaiting; - - private boolean _interrupted; - - private boolean _triggered; - - private boolean _waiting; - -}; diff --git a/src/main/java/org/javasim/.svn/text-base/SimulationException.java.svn-base b/src/main/java/org/javasim/.svn/text-base/SimulationException.java.svn-base deleted file mode 100644 index 52d7a50..0000000 --- a/src/main/java/org/javasim/.svn/text-base/SimulationException.java.svn-base +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim; - -public class SimulationException extends Exception -{ - public static final long serialVersionUID = 0xdeadbeef; - - public SimulationException() - { - super(); - } - - public SimulationException(String s) - { - super(s); - } - -}; diff --git a/src/main/java/org/javasim/.svn/text-base/SimulationProcess.java.svn-base b/src/main/java/org/javasim/.svn/text-base/SimulationProcess.java.svn-base deleted file mode 100644 index bc84edb..0000000 --- a/src/main/java/org/javasim/.svn/text-base/SimulationProcess.java.svn-base +++ /dev/null @@ -1,629 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -/* - * Copyright (C) 1996, 1997, 1998, - * - * Department of Computing Science, - * The University, - * Newcastle upon Tyne, - * UK. - * - * $Id: SimulationProcess.java,v 1.3 1998/12/07 08:28:11 nmcl Exp $ - */ - -package org.javasim; - -import java.util.NoSuchElementException; - -import org.javasim.internal.SimulationProcessList; - -public class SimulationProcess extends Thread -{ - - public static final int NEVER = -1; - - public void finalize () - { - if (!terminated) - { - terminated = true; - passivated = true; - wakeuptime = SimulationProcess.NEVER; - - if (!idle()) - Scheduler.unschedule(this); // remove from scheduler queue - - if (this == SimulationProcess.Current) - { - try - { - Scheduler.schedule(); - } - catch (SimulationException e) - { - } - } - - SimulationProcess.allProcesses.remove(this); - } - } - - /** - * Return the current simulation time. - */ - - public final double time () - { - return SimulationProcess.currentTime(); - } - - /** - * Return the next simulation process which will run. - */ - - public synchronized SimulationProcess nextEv () - throws SimulationException, NoSuchElementException - { - if (!idle()) - return Scheduler.getQueue().getNext(this); - else - throw (new SimulationException( - "SimulationProcess not on run queue.")); - } - - /** - * Return the simulation time at which this process will run. - */ - - public final double evtime () - { - return wakeuptime; - } - - /** - * Activate this process before process 'p'. This process must not be - * running, or on the scheduler queue. - */ - - public void activateBefore (SimulationProcess p) - throws SimulationException, RestartException - { - if (terminated || !idle()) - return; - - passivated = false; - - if (Scheduler.getQueue().insertBefore(this, p)) - wakeuptime = p.wakeuptime; - else - throw new SimulationException("'before' process is not scheduled."); - } - - /** - * Activate this process after process 'p'. This process must not be - * running, or on the scheduler queue. - */ - - public void activateAfter (SimulationProcess p) throws SimulationException, - RestartException - { - if (terminated || !idle()) - return; - - passivated = false; - - if (Scheduler.getQueue().insertAfter(this, p)) - wakeuptime = p.wakeuptime; - else - throw new SimulationException("'after' process is not scheduled."); - } - - /** - * Activate this process at the specified simulation time. This process must - * not be running, or on the scheduler queue. 'AtTime' must be greater than, - * or equal to, the current simulation time. If 'prior' is true then this - * process will appear in the simulation queue before any other process with - * the same simulation time. - */ - - public void activateAt (double AtTime, boolean prior) - throws SimulationException, RestartException - { - if (terminated || !idle()) - return; - - if (AtTime < SimulationProcess.currentTime()) - throw new SimulationException("Invalid time " + AtTime); - - passivated = false; - wakeuptime = AtTime; - Scheduler.getQueue().insert(this, prior); - } - - /** - * Activate this process at the specified simulation time. This process must - * not be running, or on the scheduler queue. 'AtTime' must be greater than, - * or equal to, the current simulation time. - */ - - public void activateAt (double AtTime) throws SimulationException, - RestartException - { - activateAt(AtTime, false); - } - - /** - * This process will be activated after 'Delay' units of simulation time. - * This process must not be running, or on the scheduler queue. 'Delay' must - * be greater than, or equal to, zero. If 'prior' is true then this process - * will appear in the simulation queue before any other process with the - * same simulation time. - */ - - public void activateDelay (double Delay, boolean prior) - throws SimulationException, RestartException - { - if (terminated || !idle()) - return; - - if (!checkTime(Delay)) - throw new SimulationException("Invalid delay time " + Delay); - - passivated = false; - wakeuptime = Scheduler.getSimulationTime() + Delay; - Scheduler.getQueue().insert(this, prior); - } - - /** - * This process will be activated after 'Delay' units of simulation time. - * This process must not be running, or on the scheduler queue. 'Delay' must - * be greater than, or equal to, zero. - */ - - public void activateDelay (double Delay) throws SimulationException, - RestartException - { - activateDelay(Delay, false); - } - - /** - * Activate this process at the current simulation time. This process must - * not be running, or on the scheduler queue. - */ - - public void activate () throws SimulationException, RestartException - { - if (terminated || !idle()) - return; - - passivated = false; - wakeuptime = currentTime(); - Scheduler.getQueue().insert(this, true); - } - - /** - * Reactivate this process before process 'p'. - */ - - public void reactivateBefore (SimulationProcess p) - throws SimulationException, RestartException - { - if (!idle()) - Scheduler.unschedule(this); - - activateBefore(p); - - if (SimulationProcess.Current == this) - suspendProcess(); - } - - /** - * Reactivate this process after process 'p'. - */ - - public void reactivateAfter (SimulationProcess p) - throws SimulationException, RestartException - { - if (!idle()) - Scheduler.unschedule(this); - - activateAfter(p); - - if (SimulationProcess.Current == this) - suspendProcess(); - } - - /** - * Reactivate this process at the specified simulation time. 'AtTime' must - * be valid. If 'prior' is true then this process will appear in the - * simulation queue before any other process with the same simulation time. - */ - - public void reactivateAt (double AtTime, boolean prior) - throws SimulationException, RestartException - { - if (!idle()) - Scheduler.unschedule(this); - - activateAt(AtTime, prior); - - if (SimulationProcess.Current == this) - { - suspendProcess(); - } - } - - /** - * Reactivate this process at the specified simulation time. 'AtTime' must - * be valid. - */ - - public void reactivateAt (double AtTime) throws SimulationException, - RestartException - { - reactivateAt(AtTime, false); - } - - /** - * Reactivate this process after 'Delay' units of simulation time. If - * 'prior' is true then this process will appear in the simulation queue - * before any other process with the same simulation time. - */ - - public void reactivateDelay (double Delay, boolean prior) - throws SimulationException, RestartException - { - if (!idle()) - Scheduler.unschedule(this); - - activateDelay(Delay, prior); - - if (SimulationProcess.Current == this) - suspendProcess(); - } - - /** - * Reactivate this process after 'Delay' units of simulation time. - */ - - public void reactivateDelay (double Delay) throws SimulationException, - RestartException - { - reactivateDelay(Delay, false); - } - - /** - * Reactivate this process at the current simulation time. - */ - - public void reactivate () throws SimulationException, RestartException - { - if (!idle()) - Scheduler.unschedule(this); - - activate(); - - if (SimulationProcess.Current == this) - suspendProcess(); - } - - /** - * Cancels next burst of activity, process becomes idle. - */ - - public void cancel () throws RestartException - { - /* - * We must suspend this process either by removing it from the scheduler - * queue (if it is already suspended) or by calling suspend directly. - */ - - if (!idle()) // process is running or on queue to be run - { - // currently active, so simply suspend - - if (this == SimulationProcess.Current) - { - wakeuptime = SimulationProcess.NEVER; - passivated = true; - suspendProcess(); - } - else - { - Scheduler.unschedule(this); // remove from queue - } - } - } - - /** - * Terminate this process: no going back! - */ - - public void terminate () - { - if (!terminated) - { - terminated = passivated = true; - wakeuptime = SimulationProcess.NEVER; - - if ((this != SimulationProcess.Current) && (!idle())) - Scheduler.unschedule(this); - - try - { - Scheduler.schedule(); - } - catch (SimulationException e) - { - } - - SimulationProcess.allProcesses.remove(this); - } - } - - /** - * Is the process idle? - */ - - public synchronized boolean idle () - { - if (wakeuptime >= SimulationProcess.currentTime()) - return false; - else - return true; - } - - /** - * Has the process been passivated? - */ - - public boolean passivated () - { - return passivated; - } - - /** - * Has the process been terminated? - */ - - public boolean terminated () - { - return terminated; - } - - /** - * Return the currently active simulation process. - */ - - public static SimulationProcess current () throws SimulationException - { - if (SimulationProcess.Current == null) - throw new SimulationException("Current not set."); - - return SimulationProcess.Current; - } - - /** - * Return the current simulation time. - */ - - public static double currentTime () - { - return Scheduler.getSimulationTime(); - } - - /** - * Suspend the main thread. - */ - - public static void mainSuspend () - { - SimulationProcess.mainThread = Thread.currentThread(); - - synchronized (SimulationProcess.mainThread) - { - try - { - SimulationProcess.mainThread.wait(); - } - catch (final Exception ex) - { - ex.printStackTrace(); - } - } - } - - /** - * Resume the main thread. - */ - - public static void mainResume () throws SimulationException - { - if (SimulationProcess.mainThread == null) - throw new SimulationException("No main thread"); - - synchronized (SimulationProcess.mainThread) - { - try - { - SimulationProcess.mainThread.notify(); - } - catch (final Exception ex) - { - ex.printStackTrace(); - } - } - } - - protected SimulationProcess() - { - wakeuptime = SimulationProcess.NEVER; - terminated = false; - passivated = true; - started = false; - - SimulationProcess.allProcesses.insert(this); - } - - protected void setEvtime (double time) throws SimulationException - { - if (!idle()) - { - if (time >= SimulationProcess.currentTime()) - wakeuptime = time; - else - throw new SimulationException("Time " + time + " invalid."); - } - else - throw new SimulationException("SimulationProcess is not idle."); - } - - /** - * Hold the current process for the specified amount of simulation time. - */ - - protected void hold (double t) throws SimulationException, RestartException - { - if ((this == SimulationProcess.Current) - || (SimulationProcess.Current == null)) - { - wakeuptime = SimulationProcess.NEVER; - activateDelay(t, false); - suspendProcess(); - } - else - throw new SimulationException("Hold applied to inactive object."); - } - - protected void passivate () throws RestartException - { - if (!passivated && (this == SimulationProcess.Current)) - cancel(); - } - - /** - * Suspend the process. If it is not running, then this routine should not - * be called. - */ - - protected void suspendProcess () throws RestartException - { - try - { - if (Scheduler.schedule()) - { - synchronized (mutex) - { - count--; - - if (count == 0) - { - try - { - mutex.wait(); - } - catch (Exception e) - { - } - } - - } - } - } - catch (SimulationException e) - { - } - - if (Scheduler.simulationReset()) - throw new RestartException(); - } - - /** - * Resume the specified process. This can only be called on a process which - * has previously been Suspend-ed or has just been created, i.e., the - * currently active process will never have Resume called on it. - */ - - protected void resumeProcess () - { - /* - * To compensate for the initial call to Resume by the application. - */ - - if (SimulationProcess.Current == null) - { - SimulationProcess.Current = this; - wakeuptime = SimulationProcess.currentTime(); - } - - if (!terminated) - { - if (!started) - { - started = true; - start(); - } - else - { - synchronized (mutex) - { - count++; - - if (count >= 0) - mutex.notify(); - } - } - } - } - - private boolean checkTime (double time) - { - if (time >= 0) - return true; - else - return false; - } - - void deactivate () - { - passivated = true; - wakeuptime = SimulationProcess.NEVER; - } - - static SimulationProcessList allProcesses = new SimulationProcessList(); - - private double wakeuptime; - - private boolean terminated; - - private boolean passivated; - - private boolean started; - - private Object mutex = new Object(); - - private int count = 1; - - private static Thread mainThread = null; - - static SimulationProcess Current = null; - -} diff --git a/src/main/java/org/javasim/.svn/text-base/TriggerQueue.java.svn-base b/src/main/java/org/javasim/.svn/text-base/TriggerQueue.java.svn-base deleted file mode 100644 index 4e4ffa4..0000000 --- a/src/main/java/org/javasim/.svn/text-base/TriggerQueue.java.svn-base +++ /dev/null @@ -1,116 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim; - -import java.util.LinkedList; -import java.util.NoSuchElementException; - -public class TriggerQueue -{ - - public TriggerQueue() - { - head = new LinkedList(); - } - - /** - * If there is anything left on the queue when this goes out-of-scope then - * we will place them back on to the simulation queue, rather than doing - * nothing - this is the safest thing to do. THIS SHOULD NOT HAPPEN THOUGH!* - */ - - public void finalize () - { - if (head != null) - { - if (head.size() > 0) - { - System.out - .println("TriggerQueue destructor called with non-zero list!"); - - try - { - triggerAll(); - } - catch (NoSuchElementException e) - { - } - } - } - } - - public synchronized void triggerFirst (boolean setTrigger) - throws NoSuchElementException - { - if (head.size() == 0) - throw (new NoSuchElementException()); - - SimulationEntity removed = this.remove(); - - if (setTrigger) - removed.trigger(); - - try - { - removed.reactivateAt(SimulationProcess.currentTime()); - } - catch (RestartException e) - { - } - catch (SimulationException e) - { - } - } - - public synchronized void triggerFirst () throws NoSuchElementException - { - triggerFirst(true); - } - - public synchronized void triggerAll () throws NoSuchElementException - { - long currentNumber = head.size(); - - if (currentNumber == 0) - throw (new NoSuchElementException()); - - for (int i = 0; i < currentNumber; i++) - triggerFirst(); - } - - protected synchronized void insert (SimulationEntity toAdd) - throws SimulationException - { - if (toAdd._isWaiting != null) - throw (new SimulationException("Entity already waiting on event.")); - - head.add(toAdd); - } - - protected synchronized SimulationEntity remove () - throws NoSuchElementException - { - return head.removeFirst(); - } - - private LinkedList head; - -} \ No newline at end of file diff --git a/src/main/java/org/javasim/internal/.svn/all-wcprops b/src/main/java/org/javasim/internal/.svn/all-wcprops deleted file mode 100644 index 04c4413..0000000 --- a/src/main/java/org/javasim/internal/.svn/all-wcprops +++ /dev/null @@ -1,17 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 69 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/internal -END -SimulationProcessList.java -K 25 -svn:wc:ra_dav:version-url -V 96 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/internal/SimulationProcessList.java -END -SimulationProcessIterator.java -K 25 -svn:wc:ra_dav:version-url -V 100 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/internal/SimulationProcessIterator.java -END diff --git a/src/main/java/org/javasim/internal/.svn/entries b/src/main/java/org/javasim/internal/.svn/entries deleted file mode 100644 index 7526b40..0000000 --- a/src/main/java/org/javasim/internal/.svn/entries +++ /dev/null @@ -1,52 +0,0 @@ -8 - -dir -34 -https://svn.codehaus.org/javasim/JavaSim/trunk/src/main/java/org/javasim/internal -https://svn.codehaus.org/javasim - - - -2008-07-04T21:04:48.213546Z -14 -mlittle - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -f3a3a722-c53a-0410-8699-aeaf0597c410 - -SimulationProcessIterator.java -file - - - - -2008-07-04T21:04:48.000000Z -ddea25ecc7bc319f603dd73f46e461e6 -2008-07-04T21:04:48.213546Z -14 -mlittle - -SimulationProcessList.java -file - - - - -2008-07-04T21:04:48.000000Z -82c124b1d5c508df73d4668f6ddbba5b -2008-07-04T21:04:48.213546Z -14 -mlittle - diff --git a/src/main/java/org/javasim/internal/.svn/format b/src/main/java/org/javasim/internal/.svn/format deleted file mode 100644 index 45a4fb7..0000000 --- a/src/main/java/org/javasim/internal/.svn/format +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/src/main/java/org/javasim/internal/.svn/text-base/SimulationProcessIterator.java.svn-base b/src/main/java/org/javasim/internal/.svn/text-base/SimulationProcessIterator.java.svn-base deleted file mode 100644 index 92380b7..0000000 --- a/src/main/java/org/javasim/internal/.svn/text-base/SimulationProcessIterator.java.svn-base +++ /dev/null @@ -1,77 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.internal; - -import org.javasim.SimulationProcess; - -public class SimulationProcessIterator -{ - - public SimulationProcessIterator(SimulationProcessList L) - { - ptr = L.Head; - } - - public final synchronized SimulationProcess get () - { - if (ptr != null) - { - SimulationProcessCons p = ptr; - ptr = ptr.cdr(); - return p.car(); - } - - return null; - } - - private SimulationProcessCons ptr; - -}; - -class SimulationProcessCons -{ - - public SimulationProcessCons(SimulationProcess p, SimulationProcessCons n) - { - Proc = p; - Next = n; - } - - public final SimulationProcess car () - { - return Proc; - } - - public final SimulationProcessCons cdr () - { - return Next; - } - - public final void setfCdr (SimulationProcessCons n) - { - Next = n; - } - - private SimulationProcess Proc; - - private SimulationProcessCons Next; - -}; diff --git a/src/main/java/org/javasim/internal/.svn/text-base/SimulationProcessList.java.svn-base b/src/main/java/org/javasim/internal/.svn/text-base/SimulationProcessList.java.svn-base deleted file mode 100644 index 8342274..0000000 --- a/src/main/java/org/javasim/internal/.svn/text-base/SimulationProcessList.java.svn-base +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.internal; - -import java.util.NoSuchElementException; - -import org.javasim.SimulationProcess; - -public class SimulationProcessList -{ - - public SimulationProcessList() - { - Head = null; - } - - public synchronized void insert (SimulationProcess p) - { - insert(p, false); - } - - public synchronized void insert (SimulationProcess p, boolean prior) - { - // If list is empty, insert at head - - if (Head == null) - { - Head = new SimulationProcessCons(p, null); - return; - } - - // Try to insert before (if there is anything scheduled later) - - SimulationProcessIterator iter = new SimulationProcessIterator(this); - SimulationProcess prev = null; - - for (SimulationProcess q = iter.get(); q != null; prev = q, q = iter - .get()) - { - if (prior) - { - if (q.evtime() >= p.evtime()) - { - insertBefore(p, q); - return; - } - } - else - { - if (q.evtime() > p.evtime()) - { - insertBefore(p, q); - return; - } - } - } - - // Got to insert at the end (currently pointed at by 'prev') - - insertAfter(p, prev); - } - - public synchronized boolean insertBefore (SimulationProcess ToInsert, - SimulationProcess Before) - { - for (SimulationProcessCons prev = null, p = Head; p != null; prev = p, p = p - .cdr()) - { - if (p.car() == Before) - { - SimulationProcessCons newcons = new SimulationProcessCons( - ToInsert, p); - if (prev != null) - prev.setfCdr(newcons); - else - Head = newcons; - - return true; - } - } - - return false; - } - - public synchronized boolean insertAfter (SimulationProcess ToInsert, - SimulationProcess After) - { - for (SimulationProcessCons p = Head; p != null; p = p.cdr()) - if (p.car() == After) - { - SimulationProcessCons newcons = new SimulationProcessCons( - ToInsert, p.cdr()); - p.setfCdr(newcons); - return true; - } - - return false; - } - - public synchronized SimulationProcess remove (SimulationProcess element) - throws NoSuchElementException - { - // Take care of boundary condition - empty list - - if (Head == null) - throw (new NoSuchElementException()); - - SimulationProcess p = null; - - for (SimulationProcessCons prev = null, ptr = Head; ptr != null; prev = ptr, ptr = ptr - .cdr()) - { - if (ptr.car() == element) - { - SimulationProcessCons oldcons = ptr; - - // unlink the cons cell for the element we're removing - - if (prev != null) - prev.setfCdr(ptr.cdr()); - else - Head = ptr.cdr(); - - // return the pointer to the process - p = ptr.car(); - - return p; - } - } - - throw (new NoSuchElementException()); - } - - public synchronized SimulationProcess remove () - throws NoSuchElementException - { - // Change unspecified element to "remove head of list" request - - if (Head != null) - return (remove(Head.car())); - else - throw (new NoSuchElementException()); - } - - public synchronized SimulationProcess getNext (SimulationProcess current) - throws NoSuchElementException - { - // take care of boundary condition - empty list. - - if ((Head == null) || (current == null)) - throw (new NoSuchElementException()); - - for (SimulationProcessCons ptr = Head; ptr != null; ptr = ptr.cdr()) - { - if (ptr.car() == current) - { - if (ptr.cdr() == null) - return null; - else - return ptr.cdr().car(); - } - else // terminate search - past the point current could be - if (ptr.car().evtime() > current.evtime()) - break; - } - - /* - * If we get here then we have not found current on the list which can - * only mean that it is currently active. - */ - - return Head.car(); - } - - public void print () - { - SimulationProcessIterator iter = new SimulationProcessIterator(this); - SimulationProcess prev = null; - - for (SimulationProcess q = iter.get(); q != null; prev = q, q = iter - .get()) - { - System.out.println(q.evtime()); - } - } - - // package? - - protected SimulationProcessCons Head; - -} \ No newline at end of file diff --git a/src/main/java/org/javasim/simset/.svn/all-wcprops b/src/main/java/org/javasim/simset/.svn/all-wcprops deleted file mode 100644 index 44cee21..0000000 --- a/src/main/java/org/javasim/simset/.svn/all-wcprops +++ /dev/null @@ -1,17 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 67 -/javasim/!svn/ver/34/JavaSim/trunk/src/main/java/org/javasim/simset -END -Link.java -K 25 -svn:wc:ra_dav:version-url -V 77 -/javasim/!svn/ver/34/JavaSim/trunk/src/main/java/org/javasim/simset/Link.java -END -Head.java -K 25 -svn:wc:ra_dav:version-url -V 77 -/javasim/!svn/ver/34/JavaSim/trunk/src/main/java/org/javasim/simset/Head.java -END diff --git a/src/main/java/org/javasim/simset/.svn/entries b/src/main/java/org/javasim/simset/.svn/entries deleted file mode 100644 index 2908ff7..0000000 --- a/src/main/java/org/javasim/simset/.svn/entries +++ /dev/null @@ -1,52 +0,0 @@ -8 - -dir -34 -https://svn.codehaus.org/javasim/JavaSim/trunk/src/main/java/org/javasim/simset -https://svn.codehaus.org/javasim - - - -2010-11-13T21:27:02.792449Z -34 -mlittle - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -f3a3a722-c53a-0410-8699-aeaf0597c410 - -Head.java -file - - - - -2010-03-18T20:20:51.000000Z -ca494c1c1494690c32d46e8f6d560b56 -2010-11-13T21:27:02.792449Z -34 -mlittle - -Link.java -file - - - - -2010-03-18T20:20:35.000000Z -4aa2f025c758e2a756f272e6c31a6197 -2010-11-13T21:27:02.792449Z -34 -mlittle - diff --git a/src/main/java/org/javasim/simset/.svn/format b/src/main/java/org/javasim/simset/.svn/format deleted file mode 100644 index 45a4fb7..0000000 --- a/src/main/java/org/javasim/simset/.svn/format +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/src/main/java/org/javasim/simset/.svn/text-base/Head.java.svn-base b/src/main/java/org/javasim/simset/.svn/text-base/Head.java.svn-base deleted file mode 100644 index 5fde1d0..0000000 --- a/src/main/java/org/javasim/simset/.svn/text-base/Head.java.svn-base +++ /dev/null @@ -1,113 +0,0 @@ -/* - * Copyright 1990-2010, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2010, - */ - -package org.javasim.simset; - -/* - * This class essentially defines the linked list manager used by the SIMSET - * class in SIMULA. - */ - -// Thanks to Jim Bean for converting the C++SIM classes - -public class Head { - - public Head () { - this.first = null; - this.last = null; - } - - synchronized public Link first () {return first;}; - - synchronized public Link last () {return last;}; - - public void addFirst (Link element) { - - if (element == null) // nothing to add - return; - - if (element.inList()) // if in another list - element.out(); // pull it out. - - if (first == null) { // Queue presently empty - - first = element; - last = element; - element.theList = this; - - } else { - element.precede(first); - first = element; - } - }; - - public void addLast (Link element) { - - if (element == null) // nothing to add - return; - - if (element.inList()) // if in another list - element.out(); // pull it out. - - if (last == null) { // Queue presently empty - - first = element; - last = element; - element.theList = this; - - } else { - element.follow(last); - last = element; - } - }; - - synchronized public long cardinal () { - long numberOfElements = 0; - Link tempPtr = first; - - while (tempPtr != null) { - - numberOfElements++; - tempPtr = tempPtr.suc(); - } - - return numberOfElements; - }; - - synchronized public boolean empty () {return cardinal() == 0;}; - - synchronized public void clear () { - Link tempPtr = first, marker = null; - - while (tempPtr != null) { - - marker = tempPtr; - tempPtr = tempPtr.suc(); - marker = null; - } - - first = null; - last = null; - }; - - protected Link first; - protected Link last; - -} \ No newline at end of file diff --git a/src/main/java/org/javasim/simset/.svn/text-base/Link.java.svn-base b/src/main/java/org/javasim/simset/.svn/text-base/Link.java.svn-base deleted file mode 100644 index 617f7e5..0000000 --- a/src/main/java/org/javasim/simset/.svn/text-base/Link.java.svn-base +++ /dev/null @@ -1,156 +0,0 @@ -/* - * Copyright 1990-2010, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2010, - */ - -package org.javasim.simset; - -/* - * This class defines the elements of the linked lists within SIMSET. - */ - -// Thanks to Jim Bean for converting the C++SIM classes - -public class Link { - - public Link () { - this.next = null; - this.prev = null; - this.theList = null; - }; - - synchronized public Link suc () { - return next; - }; - - synchronized public Link pred () { - return prev; - }; - - synchronized public Link out () { - RemoveElement (); - return this; - }; - - synchronized public void inTo (Head list) { - if (list != null) { - - list.addLast (this); - theList = list; - return; - - } - }; - - synchronized public void precede (Link toPrecede) { - if ((toPrecede == null) || ( ! toPrecede.inList())) - - RemoveElement(); - - else { - if (inList()) - RemoveElement(); - - toPrecede.addBefore(this); - } - }; - - synchronized public void follow (Link toFollow) { - if ((toFollow == null) || ( ! toFollow.inList())) - - RemoveElement(); - - else { - if (inList()) - RemoveElement(); - - toFollow.addAfter(this); - } - }; - - synchronized public void follow (Head list) { - if (list != null) - list.addFirst(this); - }; - - synchronized public boolean inList () { - return (boolean) (theList != null); - }; - - private void RemoveElement () { - - // can't have prev and next if we are not on a list - if (theList == null) - return; - - if (prev != null) - prev.next = next; - - if (next != null) - next.prev = prev; - - if (theList.first == this) - theList.first = next; - - if (theList.last == this) - theList.last = prev; - - theList = null; - prev = null; - next = null; - } - - - private void addAfter (Link toAdd) { - toAdd.prev = this; - toAdd.theList = theList; - - if (next == null) - next = toAdd; - - else { - next.prev = toAdd; - toAdd.next = next; - next = toAdd; - } - - if (theList.last == this) - theList.last = toAdd; - }; - - private void addBefore (Link toAdd) { - toAdd.theList = theList; - toAdd.next = this; - - if (prev == null) - prev = toAdd; - - else { - prev.next = toAdd; - toAdd.prev = prev; - prev = toAdd; - } - - if (theList.first == this) - theList.first = toAdd; - }; - - protected Link next; - protected Link prev; - protected Head theList = new Head(); -} \ No newline at end of file diff --git a/src/main/java/org/javasim/stats/.svn/all-wcprops b/src/main/java/org/javasim/stats/.svn/all-wcprops deleted file mode 100644 index bd40fdd..0000000 --- a/src/main/java/org/javasim/stats/.svn/all-wcprops +++ /dev/null @@ -1,59 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 66 -/javasim/!svn/ver/34/JavaSim/trunk/src/main/java/org/javasim/stats -END -SimpleHistogram.java -K 25 -svn:wc:ra_dav:version-url -V 87 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/stats/SimpleHistogram.java -END -StatisticsException.java -K 25 -svn:wc:ra_dav:version-url -V 91 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/stats/StatisticsException.java -END -Histogram.java -K 25 -svn:wc:ra_dav:version-url -V 81 -/javasim/!svn/ver/34/JavaSim/trunk/src/main/java/org/javasim/stats/Histogram.java -END -Quantile.java -K 25 -svn:wc:ra_dav:version-url -V 80 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/stats/Quantile.java -END -PrecisionHistogram.java -K 25 -svn:wc:ra_dav:version-url -V 90 -/javasim/!svn/ver/34/JavaSim/trunk/src/main/java/org/javasim/stats/PrecisionHistogram.java -END -Variance.java -K 25 -svn:wc:ra_dav:version-url -V 80 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/stats/Variance.java -END -Bucket.java -K 25 -svn:wc:ra_dav:version-url -V 78 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/stats/Bucket.java -END -Mean.java -K 25 -svn:wc:ra_dav:version-url -V 76 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/stats/Mean.java -END -TimeVariance.java -K 25 -svn:wc:ra_dav:version-url -V 84 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/stats/TimeVariance.java -END diff --git a/src/main/java/org/javasim/stats/.svn/entries b/src/main/java/org/javasim/stats/.svn/entries deleted file mode 100644 index bdb9fb3..0000000 --- a/src/main/java/org/javasim/stats/.svn/entries +++ /dev/null @@ -1,136 +0,0 @@ -8 - -dir -34 -https://svn.codehaus.org/javasim/JavaSim/trunk/src/main/java/org/javasim/stats -https://svn.codehaus.org/javasim - - - -2010-11-13T21:27:02.792449Z -34 -mlittle - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -f3a3a722-c53a-0410-8699-aeaf0597c410 - -Bucket.java -file - - - - -2008-07-04T20:37:48.000000Z -d499485d4c2d193d8f1c57f433d459ca -2008-07-04T20:37:48.632115Z -13 -mlittle - -Histogram.java -file - - - - -2010-11-13T21:22:24.000000Z -889f628d4568dd831772710dd8049f9e -2010-11-13T21:27:02.792449Z -34 -mlittle - -Mean.java -file - - - - -2008-07-04T15:42:09.000000Z -1b2b6a7a7fe1ebd219d4f8b74d69bc6c -2008-07-04T15:42:09.297640Z -12 -mlittle - -PrecisionHistogram.java -file - - - - -2010-11-13T20:38:31.000000Z -d4bba12d2939fb0183a57c9e978fd167 -2010-11-13T21:27:02.792449Z -34 -mlittle - -Quantile.java -file - - - - -2008-07-04T20:37:48.000000Z -476bb39824bc34163e79a4be5a526bb7 -2008-07-04T20:37:48.632115Z -13 -mlittle - -SimpleHistogram.java -file - - - - -2008-07-04T20:37:48.000000Z -5fc15770b962fac84132c56aaa02ed5e -2008-07-04T20:37:48.632115Z -13 -mlittle - -StatisticsException.java -file - - - - -2008-07-04T21:04:48.000000Z -cc6d56e073358ad9c2445ac6441240e8 -2008-07-04T21:04:48.213546Z -14 -mlittle - -TimeVariance.java -file - - - - -2008-07-04T20:37:48.000000Z -b630aaa17e6db1a9877b894057cb42e1 -2008-07-04T20:37:48.632115Z -13 -mlittle - -Variance.java -file - - - - -2008-07-04T15:42:09.000000Z -72f6223f7f6624cd2401b347582ee99a -2008-07-04T15:42:09.297640Z -12 -mlittle - diff --git a/src/main/java/org/javasim/stats/.svn/format b/src/main/java/org/javasim/stats/.svn/format deleted file mode 100644 index 45a4fb7..0000000 --- a/src/main/java/org/javasim/stats/.svn/format +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/src/main/java/org/javasim/stats/.svn/text-base/Bucket.java.svn-base b/src/main/java/org/javasim/stats/.svn/text-base/Bucket.java.svn-base deleted file mode 100644 index 98e7246..0000000 --- a/src/main/java/org/javasim/stats/.svn/text-base/Bucket.java.svn-base +++ /dev/null @@ -1,179 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.stats; - -public class Bucket -{ - - /** - * Create bucket with name 'n' and number of entries 'initEntries'. - */ - - public Bucket(double n, long initEntries) - { - numberOfEntries = initEntries; - name = n; - next = null; - } - - /** - * Create bucket with name 'n' and 1 entry. - */ - - public Bucket(double n) - { - numberOfEntries = 1; - name = n; - next = null; - } - - /** - * Copy constructor. - */ - - public Bucket(Bucket b) - { - numberOfEntries = b.size(); - name = b.name(); - next = null; - } - - /** - * Is the name of the bucket equal to 'value'? - */ - - public boolean equals (double value) - { - if (name == value) - return true; - else - return false; - } - - /** - * Is the name of the bucket greater than 'value'? - */ - - public boolean greaterThan (double value) - { - if (name > value) - return true; - else - return false; - } - - /** - * Is the name of the bucket greater than or equal to 'value'? - */ - - public boolean greaterThanOrEqual (double value) - { - if (name >= value) - return true; - else - return false; - } - - /** - * Is the name of the bucket less than 'value'? - */ - - public boolean lessThan (double value) - { - if (name < value) - return true; - else - return false; - } - - /** - * Is the name of the bucket less than or equal to 'value'? - */ - - public boolean lessThanOrEqual (double value) - { - if (name <= value) - return true; - else - return false; - } - - /** - * Returns the name of the bucket. - */ - - public double name () - { - return name; - } - - /** - * Increment the number of entries by 'value'. - */ - - public void incrementSize (long value) - { - numberOfEntries += value; - } - - /** - * Set the number of entries to 'value'. - */ - - public void size (long value) - { - numberOfEntries = value; - } - - /** - * Return the number of entries. - */ - - public long size () - { - return numberOfEntries; - } - - /** - * Return the next bucket. - */ - - public Bucket cdr () - { - return next; - } - - /** - * Set the next bucket. - */ - - public void setCdr (Bucket n) - { - next = n; - } - - private long numberOfEntries; - - private double name; - - private Bucket next; - -}; diff --git a/src/main/java/org/javasim/stats/.svn/text-base/Histogram.java.svn-base b/src/main/java/org/javasim/stats/.svn/text-base/Histogram.java.svn-base deleted file mode 100644 index 2d05c2c..0000000 --- a/src/main/java/org/javasim/stats/.svn/text-base/Histogram.java.svn-base +++ /dev/null @@ -1,290 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.stats; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.lang.IllegalArgumentException; - -/** - * This histogram class maintains a fixed number of buckets. When the number of - * buckets required to maintain all of the values given is about to be exceeded - * a merge operation is performed. This takes a pair of buckets and merges their - * values according to the policy selected when the histogram was created. The - * policies are: (1) ACCUMULATE - this creates a new bucket with the same name - * as the largest of the buckets, and it has the sum of the two old bucket - * entries as its entry number. (2) MEAN - this creates a new bucket with the - * name as the mean of the two old buckets, and it has the sum of the two old - * bucket entries as its entry number. (3) MAX - this creates a new bucket with - * the name as the largest of the buckets, and it has the same number of - * entries. (4) MIN - this creates a new bucket with the name as the smallest of - * the two buckets, and it has the same number of entries. - */ - -public class Histogram extends PrecisionHistogram -{ - - public static final int ACCUMULATE = 0; - - public static final int MEAN = 1; - - public static final int MAX = 2; - - public static final int MIN = 3; - - /** - * Create with maximum index 'maxIndex' and specified 'mergeChoice', which - * will be used if the buckets must be merged. - */ - - public Histogram(long maxIndex, int mergeChoice) - { - if (maxIndex > 1) - maxSize = maxIndex; - else - maxSize = 2; - - merge = mergeChoice; - } - - /** - * Create with maximum index 'maxIndex'. Merge choice is MEAN. - */ - - public Histogram(long maxIndex) - { - if (maxIndex > 1) - maxSize = maxIndex; - else - maxSize = 2; - - merge = Histogram.MEAN; - } - - /** - * Add 'value' to the histogram. If a bucket already exists for this then it - * is incremented, otherwise a new bucket will be created. This may require - * the existing buckets to be merged to make room. - */ - - public void setValue (double value) throws IllegalArgumentException - { - if ((numberOfBuckets() == maxSize) && (!isPresent(value))) - { - try - { - mergeBuckets(); - } - catch (StatisticsException e) - { - } - } - - super.setValue(value); - } - - /** - * Save the state of the histogram to the file named 'fileName'. - */ - - public boolean saveState (String fileName) throws IOException - { - FileOutputStream f = new FileOutputStream(fileName); - DataOutputStream iFile = new DataOutputStream(f); - - boolean res = saveState(iFile); - - f.close(); - - return res; - } - - /** - * Save the state of the histogram to the stream 'oFile'. - */ - - public boolean saveState (DataOutputStream oFile) throws IOException - { - oFile.writeLong(maxSize); - oFile.writeInt(merge); - - return super.saveState(oFile); - } - - /** - * Restore the histogram state from the file 'fileName'. - */ - - public boolean restoreState (String fileName) throws FileNotFoundException, - IOException - { - FileInputStream f = new FileInputStream(fileName); - DataInputStream oFile = new DataInputStream(f); - - boolean res = restoreState(oFile); - - f.close(); - - return res; - } - - /** - * Restore the histogram state from the stream 'iFile'. - */ - - public boolean restoreState (DataInputStream iFile) throws IOException - { - maxSize = iFile.readLong(); - merge = iFile.readInt(); - - return super.restoreState(iFile); - } - - /** - * Print the contents of the histogram. - */ - - public void print () - { - System.out.println("Maximum number of buckets " + maxSize); - System.out.print("Merge choice is "); - - switch (merge) - { - case Histogram.ACCUMULATE: - System.out.println("ACCUMULATE"); - break; - case Histogram.MEAN: - System.out.println("MEAN"); - break; - case Histogram.MAX: - System.out.println("MAX"); - break; - case Histogram.MIN: - System.out.println("MIN"); - break; - } - - super.print(); - } - - /** - * Merge the existing buckets according to the merge criteria specified when - * the histogram was created. - */ - - protected void mergeBuckets () throws StatisticsException - { - Bucket newHead = null, ptr = null; - Bucket index = Head; - long newLength = 0; - - index = super.Head; - - while (index != null) - { - Bucket newElement = null; - - // merge buckets in pairs - - if (index.cdr() != null) - { - newElement = new Bucket(compositeName(index, index.cdr())); - newElement.size(compositeSize(index, index.cdr())); - - // move on to next pair of buckets - - index = (index.cdr()).cdr(); - } - else - newElement = new Bucket(index); - - newLength++; - if (newHead != null) - ptr.setCdr(newElement); - else - newHead = newElement; - - ptr = newElement; - } - - index = super.Head; - ptr = index; - - while (index != null) - { - ptr = index.cdr(); - index = ptr; - } - - super.Head = newHead; - super.length = newLength; - } - - private double compositeName (Bucket a, Bucket b) - { - switch (merge) - { - case ACCUMULATE: - case MAX: - return b.name(); - case MEAN: - return ((a.name() * a.size() + b.name() * b.size()) / (a.size() + b - .size())); - case MIN: - return a.name(); - default: - break; - } - - return 0.0; - } - - private long compositeSize (Bucket a, Bucket b) throws StatisticsException - { - switch (merge) - { - case ACCUMULATE: - return (a.size() + b.size()); - case MEAN: - return (a.size() + b.size()); - case MAX: - return b.size(); - case MIN: - return a.size(); - default: - break; - } - - // shouldn't get here! - - throw new StatisticsException("compositeSize switch error."); - } - - protected long maxSize; - - protected int merge; - -}; diff --git a/src/main/java/org/javasim/stats/.svn/text-base/Mean.java.svn-base b/src/main/java/org/javasim/stats/.svn/text-base/Mean.java.svn-base deleted file mode 100644 index 1083d5d..0000000 --- a/src/main/java/org/javasim/stats/.svn/text-base/Mean.java.svn-base +++ /dev/null @@ -1,195 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.stats; - -import java.io.*; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.lang.IllegalArgumentException; - -public class Mean -{ - - public Mean() - { - reset(); - } - - /** - * Add 'value', incrementing the number of samples, the sum, mean, etc. - */ - - public void setValue (double value) throws IllegalArgumentException - { - if (value > _Max) - _Max = value; - if (value < _Min) - _Min = value; - _Sum += value; - _Number++; - _Mean = (double) (_Sum / _Number); - } - - /** - * Reset the object. - */ - - public void reset () - { - _Max = Float.MIN_VALUE; - _Min = Float.MAX_VALUE; - _Sum = _Mean = 0.0; - _Number = 0; - } - - /** - * Returns the number of samples. - */ - - public int numberOfSamples () - { - return _Number; - } - - /** - * Returns the minimum value given. - */ - - public double min () - { - return _Min; - } - - /** - * Returns the maximum value given. - */ - - public double max () - { - return _Max; - } - - /** - * Returns the sum of all values. - */ - - public double sum () - { - return _Sum; - } - - /** - * Returns the mean value. - */ - - public double mean () - { - return _Mean; - } - - /** - * Save the state of the histogram to the file named 'fileName'. - */ - - public boolean saveState (String fileName) throws IOException - { - FileOutputStream f = new FileOutputStream(fileName); - DataOutputStream oFile = new DataOutputStream(f); - - boolean res = saveState(oFile); - - f.close(); - - return res; - } - - /** - * Save the state of the histogram to the stream 'oFile'. - */ - - public boolean saveState (DataOutputStream oFile) throws IOException - { - oFile.writeDouble(_Max); - oFile.writeDouble(_Min); - oFile.writeDouble(_Sum); - oFile.writeDouble(_Mean); - oFile.writeInt(_Number); - - return true; - } - - /** - * Restore the histogram state from the file 'fileName'. - */ - - public boolean restoreState (String fileName) throws FileNotFoundException, - IOException - { - FileInputStream f = new FileInputStream(fileName); - DataInputStream iFile = new DataInputStream(f); - - boolean res = restoreState(iFile); - - f.close(); - - return res; - } - - /** - * Restore the histogram state from the stream 'iFile'. - */ - - public boolean restoreState (DataInputStream iFile) throws IOException - { - _Max = iFile.readDouble(); - _Min = iFile.readDouble(); - _Sum = iFile.readDouble(); - _Mean = iFile.readDouble(); - _Number = iFile.readInt(); - - return true; - } - - /** - * Print out the statistics compiled on the data given. - */ - - public void print () - { - System.out.println("Number of samples : " + numberOfSamples()); - System.out.println("Minimum : " + min()); - System.out.println("Maximum : " + max()); - System.out.println("Sum : " + sum()); - System.out.println("Mean : " + mean()); - } - - protected double _Max; - - protected double _Min; - - protected double _Sum; - - protected double _Mean; - - protected int _Number; - -}; diff --git a/src/main/java/org/javasim/stats/.svn/text-base/PrecisionHistogram.java.svn-base b/src/main/java/org/javasim/stats/.svn/text-base/PrecisionHistogram.java.svn-base deleted file mode 100644 index 205d2c1..0000000 --- a/src/main/java/org/javasim/stats/.svn/text-base/PrecisionHistogram.java.svn-base +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.stats; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.lang.IllegalArgumentException; - -/** - * This is the base histogram class which keeps an exact total of all values - * input, i.e., a bucket is created for each new value. This can take up a lot - * of space in a given simulation, so other (less precise) histogram classes are - * also provided. - */ - -public class PrecisionHistogram extends Variance -{ - - /** - * Create an empty histogram. - */ - - public PrecisionHistogram() - { - length = 0; - Head = null; - - reset(); - } - - public void finalize () - { - reset(); - } - - /** - * Add 'value' to the histogram. If a bucket already exists for this then it - * is incremented, otherwise a new bucket will be created. - */ - - public void setValue (double value) throws IllegalArgumentException - { - super.setValue(value); - - Bucket trail = null; - - for (Bucket ptr = Head; ptr != null; trail = ptr, ptr = ptr.cdr()) - { - if (ptr.name() == value) - { - ptr.incrementSize(1); - return; - } - else if (ptr.greaterThan(value)) - break; - } - - // we need to add a new bucket. - - add(trail, value, false); - } - - /** - * Empty the histogram. - */ - - public void reset () - { - if (length > 0) // delete old list - { - length = 0; - Head = null; - } - - super.reset(); - } - - /** - * Return the number of buckets in the histogram. - */ - - public long numberOfBuckets () - { - return length; - } - - /** - * There are two ways of getting the number of entries in a bucket: (i) give - * the index number of the bucket, or (ii) give the name of the bucket. If - * the bucket is not present then false is returned. - */ - - public double sizeByIndex (long index) throws StatisticsException, - IllegalArgumentException - { - Bucket ptr = Head; - - if ((index < 0) || (index > length)) - throw (new IllegalArgumentException("index out of range.")); - - for (long i = 0; (i < index) && (ptr != null); i++) - ptr = ptr.cdr(); - - if (ptr != null) - return ptr.size(); - - // we should never get here! - - throw (new StatisticsException("sizeByIndex went off end of list.")); - } - - public double sizeByName (double name) throws IllegalArgumentException - { - for (Bucket ptr = Head; ptr != null; ptr = ptr.cdr()) - { - if (ptr.name() == name) - return ptr.size(); - - if (ptr.greaterThan(name)) // bucket is not present - break; - } - - throw (new IllegalArgumentException("Bucket name " + name - + " not found.")); - } - - /** - * Save the state of the histogram to the file named 'fileName'. - */ - - public boolean saveState (String fileName) throws IOException - { - FileOutputStream f = new FileOutputStream(fileName); - DataOutputStream oFile = new DataOutputStream(f); - - boolean res = saveState(oFile); - - f.close(); - - return res; - } - - /** - * Save the state of the histogram to the stream 'oFile'. - */ - - public boolean saveState (DataOutputStream oFile) throws IOException - { - oFile.writeLong(length); - - for (Bucket ptr = Head; ptr != null; ptr = ptr.cdr()) - { - oFile.writeDouble(ptr.name()); - oFile.writeLong(ptr.size()); - } - - return super.saveState(oFile); - } - - /** - * Restore the histogram state from the file 'fileName'. - */ - - public boolean restoreState (String fileName) throws FileNotFoundException, - IOException - { - FileInputStream f = new FileInputStream(fileName); - DataInputStream iFile = new DataInputStream(f); - - boolean res = restoreState(iFile); - - f.close(); - - return res; - } - - /** - * Restore the histogram state from the stream 'iFile'. - */ - - public boolean restoreState (DataInputStream iFile) throws IOException - { - long numberEntries; - double bucketName; - Bucket ptr = null; - - reset(); - - length = iFile.readLong(); - - for (int i = 0; i < length; i++) - { - bucketName = iFile.readDouble(); - numberEntries = iFile.readLong(); - - Bucket toAdd = new Bucket(bucketName, numberEntries); - if (Head != null) - ptr.setCdr(toAdd); - else - Head = toAdd; - - ptr = toAdd; - } - - return super.restoreState(iFile); - } - - /** - * Print the contents of the histogram. - */ - - public void print () - { - if (length == 0) - System.out.println("Empty histogram."); - else - for (Bucket ptr = Head; ptr != null; ptr = ptr.cdr()) - System.out.println("Bucket : < " + ptr.name() + ", " - + ptr.size() + " >"); - - super.print(); - } - - protected boolean isPresent (double value) - { - try - { - sizeByName(value); - - return true; - } - catch (IllegalArgumentException e) - { - return false; - } - } - - protected void create (double value) - { - Bucket trail = null; - - for (Bucket ptr = Head; ptr != null; trail = ptr, ptr = ptr.cdr()) - { - if (ptr.name() == value) - return; - else if (ptr.greaterThan(value)) // bucket is not present - break; - } - - add(trail, value, true); - } - - private void add (Bucket addPosition, double value, boolean createOnly) - { - long initEntries; - - if (createOnly) - initEntries = 0; - else - initEntries = 1; - - Bucket newBucket = new Bucket(value, initEntries); - - if (addPosition == null) // head of list - { - newBucket.setCdr(Head); - Head = newBucket; - } - else - { - newBucket.setCdr(addPosition.cdr()); - addPosition.setCdr(newBucket); - } - - length++; - } - - protected long length; - - protected Bucket Head; - -}; diff --git a/src/main/java/org/javasim/stats/.svn/text-base/Quantile.java.svn-base b/src/main/java/org/javasim/stats/.svn/text-base/Quantile.java.svn-base deleted file mode 100644 index 46b193e..0000000 --- a/src/main/java/org/javasim/stats/.svn/text-base/Quantile.java.svn-base +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.stats; - -import java.lang.IllegalArgumentException; - -/** - * Provides a means of obtaining the p-quantile of a distribution, i.e., the - * value below which p-percent of the distribution lies. - */ - -public class Quantile extends PrecisionHistogram -{ - - /** - * Create with 95% probability. - */ - - public Quantile() - { - qProb = 0.95; - } - - /** - * Create with the specified probability. If the probability it greater than - * 100% (1.0) or less than or equal to 0% then throw an exception. - */ - - public Quantile(double q) throws IllegalArgumentException - { - qProb = q; - - if ((q <= 0.0) || (q > 1.0)) - throw (new IllegalArgumentException("Quantile::Quantile ( " + q - + " ) : bad value.")); - } - - /** - * Return the p-quantile. - */ - - public double getValue () - { - double pSamples = numberOfSamples() * qProb; - long nEntries = 0; - Bucket ptr = Head, trail = null; - - while ((nEntries < pSamples) && (ptr != null)) - { - nEntries += ptr.size(); - trail = ptr; - ptr = ptr.cdr(); - } - - return trail.name(); - } - - /** - * Return the p-quantile percentage. - */ - - public double range () - { - return qProb; - } - - /** - * Print out the quantile information. - */ - - public void print () - { - System.out.println("Quantile precentage : " + qProb); - System.out.println("Value below which percentage occurs " - + this.getValue()); - super.print(); - } - - private double qProb; - -}; diff --git a/src/main/java/org/javasim/stats/.svn/text-base/SimpleHistogram.java.svn-base b/src/main/java/org/javasim/stats/.svn/text-base/SimpleHistogram.java.svn-base deleted file mode 100644 index 6c77e40..0000000 --- a/src/main/java/org/javasim/stats/.svn/text-base/SimpleHistogram.java.svn-base +++ /dev/null @@ -1,251 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.stats; - -import java.io.*; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.lang.IllegalArgumentException; - -/** - * A simple histogram with a set number of buckets. - */ - -public class SimpleHistogram extends PrecisionHistogram -{ - - /** - * Create with 'nbuckets' evenly distributed over the range 'min' to 'max'. - */ - - public SimpleHistogram(double min, double max, long nbuckets) - { - if (min < max) - { - minIndex = min; - maxIndex = max; - } - else - { - minIndex = max; - maxIndex = min; - } - - if (nbuckets > 0) - numberBuckets = nbuckets; - else - nbuckets = 1; - - width = (max - min) / numberBuckets; - super.reset(); - } - - /** - * Create a number of buckets with width 'w' evenly distributed over the - * range 'min' to 'max'. - */ - - public SimpleHistogram(double min, double max, double w) - { - if (min < max) - { - minIndex = min; - maxIndex = max; - } - else - { - minIndex = max; - maxIndex = min; - } - - if (w > 0) - width = w; - else - width = 2.0; - - numberBuckets = (long) ((max - min) / width); - - if ((max - min) / width - numberBuckets > 0) - numberBuckets++; - - super.reset(); - } - - /** - * Add 'value' to the histogram. If it is outside the range of the histogram - * then raise an exception, otherwise find the appropriate bucket and - * increment it. - */ - - public void setValue (double value) throws IllegalArgumentException - { - if ((value < minIndex) || (value > maxIndex)) - throw (new IllegalArgumentException("Value " + value - + " is beyond histogram range [ " + minIndex + ", " - + maxIndex + " ]")); - - for (Bucket ptr = Head; ptr != null; ptr = ptr.cdr()) - { - double bucketValue = ptr.name(); - - if ((value == bucketValue) || (value <= bucketValue + width)) - { - super.setValue(ptr.name()); - return; - } - } - - // shouldn't get here!! - - throw (new IllegalArgumentException("Something went wrong with " - + value)); - } - - /** - * Empty the histogram. - */ - - public void reset () - { - double value = minIndex; - - super.reset(); - - // pre-create buckets with given width - - for (int i = 0; i < numberBuckets; value += width, i++) - super.create(value); - } - - /** - * Get the number of entries in bucket 'name'. - */ - - public double sizeByName (double name) throws IllegalArgumentException - { - if ((name < minIndex) || (name > maxIndex)) - throw (new IllegalArgumentException("Argument out of range.")); - - for (Bucket ptr = Head; ptr != null; ptr = ptr.cdr()) - { - double bucketValue = ptr.name(); - - if ((name == bucketValue) || (name <= bucketValue + width)) - return ptr.size(); - } - - throw (new IllegalArgumentException("Name " + name + " out of range.")); - } - - /** - * Return the width of each bucket. - */ - - public double Width () - { - return width; - } - - /** - * Print out information about the histogram. - */ - - public void print () - { - System.out.println("Maximum index range : " + maxIndex); - System.out.println("Minimum index range : " + minIndex); - System.out.println("Number of buckets : " + numberBuckets); - System.out.println("Width of each bucket : " + width); - - super.print(); - } - - /** - * Save the state of the histogram to the file named 'fileName'. - */ - - public boolean saveState (String fileName) throws IOException - { - FileOutputStream f = new FileOutputStream(fileName); - DataOutputStream oFile = new DataOutputStream(f); - - boolean res = saveState(oFile); - - f.close(); - - return res; - } - - /** - * Save the state of the histogram to the stream 'oFile'. - */ - - public boolean saveState (DataOutputStream oFile) throws IOException - { - oFile.writeDouble(minIndex); - oFile.writeDouble(maxIndex); - oFile.writeDouble(width); - oFile.writeLong(numberBuckets); - - return super.saveState(oFile); - } - - /** - * Restore the histogram state from the file 'fileName'. - */ - - public boolean restoreState (String fileName) throws FileNotFoundException, - IOException - { - FileInputStream f = new FileInputStream(fileName); - DataInputStream iFile = new DataInputStream(f); - - boolean res = restoreState(iFile); - - f.close(); - - return res; - } - - /** - * Restore the histogram state from the stream 'iFile'. - */ - - public boolean restoreState (DataInputStream iFile) throws IOException - { - minIndex = iFile.readDouble(); - maxIndex = iFile.readDouble(); - width = iFile.readDouble(); - numberBuckets = iFile.readLong(); - - return super.restoreState(iFile); - } - - private double minIndex; - - private double maxIndex; - - private double width; - - private long numberBuckets; - -}; diff --git a/src/main/java/org/javasim/stats/.svn/text-base/StatisticsException.java.svn-base b/src/main/java/org/javasim/stats/.svn/text-base/StatisticsException.java.svn-base deleted file mode 100644 index 3f9eef6..0000000 --- a/src/main/java/org/javasim/stats/.svn/text-base/StatisticsException.java.svn-base +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.stats; - -/** - * General exception thrown by the statistics gathering classes. - */ - -public class StatisticsException extends Exception -{ - - public static final long serialVersionUID = 0xdeadbeef; - - public StatisticsException() - { - super(); - } - - public StatisticsException(String s) - { - super(s); - } - -} \ No newline at end of file diff --git a/src/main/java/org/javasim/stats/.svn/text-base/TimeVariance.java.svn-base b/src/main/java/org/javasim/stats/.svn/text-base/TimeVariance.java.svn-base deleted file mode 100644 index 9179707..0000000 --- a/src/main/java/org/javasim/stats/.svn/text-base/TimeVariance.java.svn-base +++ /dev/null @@ -1,171 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.stats; - -import java.io.*; -import java.lang.IllegalArgumentException; - -import org.javasim.SimulationProcess; - -/** - * Obtain the average value given during the simulation time. - */ - -public class TimeVariance extends Variance -{ - - public TimeVariance() - { - reset(); - } - - /** - * Zero the statistics. - */ - - public void reset () - { - first = true; - startTime = currentValue = 0.0; - stime = total = 0.0; - super.reset(); - } - - /** - * Add 'value', updating the statistics. - */ - - public void setValue (double value) throws IllegalArgumentException - { - super.setValue(value); - - if (!first) - { - total += area(); - if (value == currentValue) - return; - } - else - { - first = false; - startTime = SimulationProcess.currentTime(); - } - - store(value); - } - - /** - * Return the average value given up to the current simulation time. - */ - - public double timeAverage () - { - if (first || (SimulationProcess.currentTime() - startTime) == 0) - return 0.0; - - return ((total + area()) / (SimulationProcess.currentTime() - startTime)); - } - - /** - * Save the state of the histogram to the file named 'fileName'. - */ - - public boolean saveState (String fileName) throws IOException - { - FileOutputStream f = new FileOutputStream(fileName); - DataOutputStream oFile = new DataOutputStream(f); - - boolean res = saveState(oFile); - - f.close(); - - return res; - } - - /** - * Save the state of the histogram to the stream 'oFile'. - */ - - public boolean saveState (DataOutputStream oFile) throws IOException - { - oFile.writeBoolean(first); - oFile.writeDouble(startTime); - oFile.writeDouble(currentValue); - oFile.writeDouble(stime); - oFile.writeDouble(total); - - return super.saveState(oFile); - } - - /** - * Restore the histogram state from the file 'fileName'. - */ - - public boolean restoreState (String fileName) throws FileNotFoundException, - IOException - { - FileInputStream f = new FileInputStream(fileName); - DataInputStream iFile = new DataInputStream(f); - - boolean res = restoreState(iFile); - - f.close(); - - return res; - } - - /** - * Restore the histogram state from the stream 'iFile'. - */ - - public boolean restoreState (DataInputStream iFile) throws IOException - { - first = iFile.readBoolean(); - startTime = iFile.readDouble(); - currentValue = iFile.readDouble(); - stime = iFile.readDouble(); - total = iFile.readDouble(); - - return true; - } - - private double area () - { - return (currentValue * (SimulationProcess.currentTime() - stime)); - } - - private void store (double value) - { - currentValue = value; - stime = SimulationProcess.currentTime(); - } - - private boolean first; - - private double startTime; - - private double currentValue; - - private double stime; - - private double total; - -}; diff --git a/src/main/java/org/javasim/stats/.svn/text-base/Variance.java.svn-base b/src/main/java/org/javasim/stats/.svn/text-base/Variance.java.svn-base deleted file mode 100644 index ef1e80c..0000000 --- a/src/main/java/org/javasim/stats/.svn/text-base/Variance.java.svn-base +++ /dev/null @@ -1,167 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.stats; - -import java.lang.Math; - -import java.io.DataInputStream; -import java.io.DataOutputStream; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.IOException; -import java.lang.IllegalArgumentException; - -/** - * Used to obtain the variance of the samples given. - */ - -public class Variance extends Mean -{ - - public Variance() - { - reset(); - } - - /** - * Add 'value', updating the variance. - */ - - public void setValue (double value) throws IllegalArgumentException - { - _sqr += value * value; - super.setValue(value); - } - - /** - * Zero the statistics. - */ - - public void reset () - { - _sqr = 0.0; - super.reset(); - } - - /** - * Returns the variance. - */ - - public double variance () - { - if (_Number > 1) - return ((_sqr - ((_Sum * _Sum) / _Number)) / (_Number - 1)); - else - return 0.0; - } - - /** - * Returns the standard deviation of the samples. - */ - - public double stdDev () - { - if (_Number == 0 || variance() <= 0) - return 0.0; - else - return Math.sqrt(variance()); - } - - /** - * Returns the confidence. - */ - - public double confidence (double value) - { - System.out.println("Variance::confidence not implemented yet."); - return 0.0; - } - - /** - * Prints out the statistics information. - */ - - public void print () - { - System.out.println("Variance : " + variance()); - System.out.println("Standard Deviation: " + stdDev()); - - super.print(); - } - - /** - * Save the state of the histogram to the file named 'fileName'. - */ - - public boolean saveState (String fileName) throws IOException - { - FileOutputStream f = new FileOutputStream(fileName); - DataOutputStream oFile = new DataOutputStream(f); - - boolean res = saveState(oFile); - - f.close(); - - return res; - } - - /** - * Save the state of the histogram to the stream 'oFile'. - */ - - public boolean saveState (DataOutputStream oFile) throws IOException - { - oFile.writeDouble(_sqr); - return super.saveState(oFile); - } - - /** - * Restore the histogram state from the file 'fileName'. - */ - - public boolean restoreState (String fileName) throws FileNotFoundException, - IOException - { - FileInputStream f = new FileInputStream(fileName); - DataInputStream iFile = new DataInputStream(f); - - boolean res = restoreState(iFile); - - f.close(); - - return res; - } - - /** - * Restore the histogram state from the stream 'iFile'. - */ - - public boolean restoreState (DataInputStream iFile) throws IOException - { - _sqr = iFile.readDouble(); - - return super.restoreState(iFile); - } - - private double _sqr; - -}; diff --git a/src/main/java/org/javasim/streams/.svn/all-wcprops b/src/main/java/org/javasim/streams/.svn/all-wcprops deleted file mode 100644 index 98bf85a..0000000 --- a/src/main/java/org/javasim/streams/.svn/all-wcprops +++ /dev/null @@ -1,47 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 68 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/streams -END -ExponentialStream.java -K 25 -svn:wc:ra_dav:version-url -V 91 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/streams/ExponentialStream.java -END -UniformStream.java -K 25 -svn:wc:ra_dav:version-url -V 87 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/streams/UniformStream.java -END -NormalStream.java -K 25 -svn:wc:ra_dav:version-url -V 86 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/streams/NormalStream.java -END -HyperExponentialStream.java -K 25 -svn:wc:ra_dav:version-url -V 96 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/streams/HyperExponentialStream.java -END -ErlangStream.java -K 25 -svn:wc:ra_dav:version-url -V 86 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/streams/ErlangStream.java -END -Draw.java -K 25 -svn:wc:ra_dav:version-url -V 78 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/streams/Draw.java -END -RandomStream.java -K 25 -svn:wc:ra_dav:version-url -V 86 -/javasim/!svn/ver/23/JavaSim/trunk/src/main/java/org/javasim/streams/RandomStream.java -END diff --git a/src/main/java/org/javasim/streams/.svn/entries b/src/main/java/org/javasim/streams/.svn/entries deleted file mode 100644 index 2839d25..0000000 --- a/src/main/java/org/javasim/streams/.svn/entries +++ /dev/null @@ -1,112 +0,0 @@ -8 - -dir -34 -https://svn.codehaus.org/javasim/JavaSim/trunk/src/main/java/org/javasim/streams -https://svn.codehaus.org/javasim - - - -2008-07-04T21:04:48.213546Z -14 -mlittle - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -f3a3a722-c53a-0410-8699-aeaf0597c410 - -Draw.java -file - - - - -2008-07-04T15:42:09.000000Z -f079d7fc9cdb980f9017093637fd93db -2008-07-04T15:42:09.297640Z -12 -mlittle - -ErlangStream.java -file - - - - -2008-07-04T20:37:48.000000Z -873c3cb7a8f6877a0a87c66e56fefaec -2008-07-04T20:37:48.632115Z -13 -mlittle - -ExponentialStream.java -file - - - - -2008-07-04T20:37:48.000000Z -7a9b84994630fc53458597cc5b7357bb -2008-07-04T20:37:48.632115Z -13 -mlittle - -HyperExponentialStream.java -file - - - - -2008-07-04T21:04:48.000000Z -b2ab32ae7e3e0db746c4708a7a96cd98 -2008-07-04T21:04:48.213546Z -14 -mlittle - -NormalStream.java -file - - - - -2008-07-04T21:04:48.000000Z -287926f163e01819e430aa9980b0537f -2008-07-04T21:04:48.213546Z -14 -mlittle - -RandomStream.java -file - - - - -2008-07-04T21:04:48.000000Z -bbe05ad4c26e4f5eb3c14b422810cfaa -2008-07-04T21:04:48.213546Z -14 -mlittle - -UniformStream.java -file - - - - -2008-07-04T20:37:48.000000Z -5ee8fb2c7376caa91bd2ca652305cdd2 -2008-07-04T20:37:48.632115Z -13 -mlittle - diff --git a/src/main/java/org/javasim/streams/.svn/format b/src/main/java/org/javasim/streams/.svn/format deleted file mode 100644 index 45a4fb7..0000000 --- a/src/main/java/org/javasim/streams/.svn/format +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/src/main/java/org/javasim/streams/.svn/text-base/Draw.java.svn-base b/src/main/java/org/javasim/streams/.svn/text-base/Draw.java.svn-base deleted file mode 100644 index fe332a3..0000000 --- a/src/main/java/org/javasim/streams/.svn/text-base/Draw.java.svn-base +++ /dev/null @@ -1,82 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.streams; - -import java.io.IOException; - -/** - * Return true or false with probability given when constructed. Uses a - * UniformStream. - */ - -public class Draw -{ - - /** - * Probability of true is 'p'. - */ - - public Draw(double p) - { - s = new UniformStream(0, 1); - prob = p; - } - - /** - * Probability 'p'. Ignore the first 'StreamSelect' values before starting - * to return values. - */ - - public Draw(double p, int StreamSelect) - { - s = new UniformStream(0, 1, StreamSelect); - prob = p; - } - - /** - * Probability 'p'. Ignore the first 'StreamSelect' values before starting - * to return values. The seeds to the UniformStream are 'MGSeed' and - * 'LGSeed'. - */ - - public Draw(double p, int StreamSelect, long MGSeed, long LCGSeed) - { - s = new UniformStream(0, 1, StreamSelect, MGSeed, LCGSeed); - prob = p; - } - - /** - * Return true with specified probability. - */ - - public boolean getBoolean () throws IOException - { - if (s.getNumber() >= prob) - return true; - else - return false; - } - - private UniformStream s; - - private double prob; - -}; diff --git a/src/main/java/org/javasim/streams/.svn/text-base/ErlangStream.java.svn-base b/src/main/java/org/javasim/streams/.svn/text-base/ErlangStream.java.svn-base deleted file mode 100644 index 80bc6c8..0000000 --- a/src/main/java/org/javasim/streams/.svn/text-base/ErlangStream.java.svn-base +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.streams; - -import java.lang.Math; -import java.io.IOException; -import java.lang.ArithmeticException; - -/** - * Returns a number from an Erlang distribution with the given mean and standard - * deviation. - */ - -public class ErlangStream extends RandomStream -{ - /** - * Create a stream with mean 'm' and standard deviation 'sd'. - */ - - public ErlangStream(double m, double sd) - { - super(); - - Mean = m; - StandardDeviation = sd; - - double z = Mean / StandardDeviation; - k = (long) (z * z); - } - - /** - * Create a stream with mean 'm' and standard deviation 'sd'. Ignore the - * first 'StreamSelect' values before starting to return values. - */ - - public ErlangStream(double m, double sd, int StreamSelect) - { - super(); - - Mean = m; - StandardDeviation = sd; - - double z = Mean / StandardDeviation; - k = (long) (z * z); - for (int ss = 0; ss < StreamSelect * 1000; ss++) - uniform(); - } - - /** - * Create a stream with mean 'm' and standard deviation 'sd'. Ignore the - * first 'StreamSelect' values before starting to return values. The seeds - * to the RandomStream are 'MGSeed' and 'LGSeed'. - */ - - public ErlangStream(double m, double sd, int StreamSelect, long MGSeed, - long LCGSeed) - { - super(MGSeed, LCGSeed); - - Mean = m; - StandardDeviation = sd; - - double z = Mean / StandardDeviation; - k = (long) (z * z); - for (int ss = 0; ss < StreamSelect * 1000; ss++) - uniform(); - } - - /** - * Return a stream number. - */ - - public double getNumber () throws IOException, ArithmeticException - { - double z = 1.0; - for (int i = 0; i < k; i++) - z *= uniform(); - - return -(Mean / k) * Math.log(z); - } - - private double Mean; - - private double StandardDeviation; - - private long k; - -}; diff --git a/src/main/java/org/javasim/streams/.svn/text-base/ExponentialStream.java.svn-base b/src/main/java/org/javasim/streams/.svn/text-base/ExponentialStream.java.svn-base deleted file mode 100644 index 132d013..0000000 --- a/src/main/java/org/javasim/streams/.svn/text-base/ExponentialStream.java.svn-base +++ /dev/null @@ -1,86 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.streams; - -import java.lang.Math; -import java.io.IOException; -import java.lang.ArithmeticException; - -/** - * Returns a number from an exponential distribution with the given mean. - */ - -public class ExponentialStream extends RandomStream -{ - - /** - * Create stream with mean 'm'. - */ - - public ExponentialStream(double m) - { - super(); - - Mean = m; - } - - /** - * Create stream with mean 'm'. Skip the first 'StreamSelect' stream values. - */ - - public ExponentialStream(double m, int StreamSelect) - { - super(); - - Mean = m; - - for (int i = 0; i < StreamSelect * 1000; i++) - uniform(); - } - - /** - * Create stream with mean 'm'. Skip the first 'StreamSelect' stream values. - * Pass seeds 'MGSeed' and 'LCGSeed' to the base class. - */ - - public ExponentialStream(double m, int StreamSelect, long MGSeed, - long LCGSeed) - { - super(MGSeed, LCGSeed); - - Mean = m; - - for (int i = 0; i < StreamSelect * 1000; i++) - uniform(); - } - - /** - * Return stream number. - */ - - public double getNumber () throws IOException, ArithmeticException - { - return -Mean * Math.log(uniform()); - } - - private double Mean; - -}; diff --git a/src/main/java/org/javasim/streams/.svn/text-base/HyperExponentialStream.java.svn-base b/src/main/java/org/javasim/streams/.svn/text-base/HyperExponentialStream.java.svn-base deleted file mode 100644 index 9998431..0000000 --- a/src/main/java/org/javasim/streams/.svn/text-base/HyperExponentialStream.java.svn-base +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.streams; - -import java.lang.Math; - -import java.io.IOException; -import java.lang.ArithmeticException; - -/** - * Returns a number from a hyperexpontial distribution with the given mean and - * standard deviation. - */ - -public class HyperExponentialStream extends RandomStream -{ - - /** - * Create stream with mean 'm' and standard deviation 'sd'. - */ - - public HyperExponentialStream(double m, double sd) - { - super(); - - mean = m; - standardDeviation = sd; - - double cv, z; - cv = standardDeviation / mean; - z = cv * cv; - p = 0.5 * (1.0 - Math.sqrt((z - 1.0) / (z + 1.0))); - } - - /** - * Create stream with mean 'm' and standard deviation 'sd'. Skip the first - * 'StreamSelect' values. - */ - - public HyperExponentialStream(double m, double sd, int StreamSelect) - { - super(); - - mean = m; - standardDeviation = sd; - - double cv, z; - cv = standardDeviation / mean; - z = cv * cv; - p = 0.5 * (1.0 - Math.sqrt((z - 1.0) / (z + 1.0))); - - for (int ss = 0; ss < StreamSelect * 1000; ss++) - uniform(); - } - - /** - * Create stream with mean 'm' and standard deviation 'sd'. Skip the first - * 'StreamSelect' values. Pass seeds 'MGSeed' and 'LCGSeed' to the base - * class. - */ - - public HyperExponentialStream(double m, double sd, int StreamSelect, - long MGSeed, long LCGSeed) - { - super(MGSeed, LCGSeed); - - mean = m; - standardDeviation = sd; - - double cv, z; - cv = standardDeviation / mean; - z = cv * cv; - p = 0.5 * (1.0 - Math.sqrt((z - 1.0) / (z + 1.0))); - - for (int ss = 0; ss < StreamSelect * 1000; ss++) - uniform(); - } - - /** - * Return a value from the stream. - */ - - public double getNumber () throws IOException, ArithmeticException - { - double z = 0; - - if (uniform() > p) - z = mean / (1.0 - p); - else - z = mean / p; - - return -0.5 * z * Math.log(uniform()); - } - - private double mean; - - private double standardDeviation; - - private double p; - -}; diff --git a/src/main/java/org/javasim/streams/.svn/text-base/NormalStream.java.svn-base b/src/main/java/org/javasim/streams/.svn/text-base/NormalStream.java.svn-base deleted file mode 100644 index 88df1c2..0000000 --- a/src/main/java/org/javasim/streams/.svn/text-base/NormalStream.java.svn-base +++ /dev/null @@ -1,127 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.streams; - -import java.lang.Math; -import java.io.IOException; -import java.lang.ArithmeticException; - -/** - * Returns a number from a normal distribution with the given mean and standard - * deviation. - */ - -public class NormalStream extends RandomStream -{ - - /** - * Create stream with mean 'm' and standard deviation 'sd'. - */ - - public NormalStream(double m, double sd) - { - super(); - - mean = m; - standardDeviation = sd; - z = 0.0; - } - - /** - * Create stream with mean 'm' and standard deviation 'sd'. Skip the first - * 'StreamSelect' values. - */ - - public NormalStream(double m, double sd, int StreamSelect) - { - super(); - - mean = m; - standardDeviation = sd; - z = 0.0; - - for (int ss = 0; ss < StreamSelect * 1000; ss++) - uniform(); - } - - /** - * Create stream with mean 'm' and standard deviation 'sd'. Skip the first - * 'StreamSelect' values. Pass seeds 'MGSeed' and 'LCGSeed' to the base - * class. - */ - - public NormalStream(double m, double sd, int StreamSelect, long MGSeed, - long LCGSeed) - { - super(MGSeed, LCGSeed); - - mean = m; - standardDeviation = sd; - z = 0.0; - - for (int ss = 0; ss < StreamSelect * 1000; ss++) - uniform(); - } - - /** - * Return a stream number. Use the polar method, due to Box, Muller and - * Marsaglia.Taken from Seminumerical Algorithms, Knuth, Addison-Wesley, - * p.117. - */ - - public double getNumber () throws IOException, ArithmeticException - { - // Use the polar method, due to Box, Muller and Marsaglia - // Taken from Seminumerical Algorithms, Knuth, Addison-Wesley, p.117 - - double X2; - - if (z != 0.0) - { - X2 = z; - z = 0.0; - } - else - { - double S, v1, v2; - do - { - v1 = 2.0 * uniform() - 1.0; - v2 = 2.0 * uniform() - 1.0; - S = v1 * v1 + v2 * v2; - } - while (S >= 1.0); - - S = Math.sqrt((-2.0 * Math.log(S)) / S); - X2 = v1 * S; - z = v2 * S; - } - - return mean + X2 * standardDeviation; - } - - private double mean; - - private double standardDeviation; - - private double z; - -}; diff --git a/src/main/java/org/javasim/streams/.svn/text-base/RandomStream.java.svn-base b/src/main/java/org/javasim/streams/.svn/text-base/RandomStream.java.svn-base deleted file mode 100644 index b2ef2f6..0000000 --- a/src/main/java/org/javasim/streams/.svn/text-base/RandomStream.java.svn-base +++ /dev/null @@ -1,166 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.streams; - -import java.io.IOException; -import java.lang.ArithmeticException; - -/** - * The class RandomStream is the base class from which the other distribution - * classes are derived. It uses a linear congruential generator based on the - * algorithm from "Algorithms", R. Sedgewick, Addison-Wesley, Reading MA, 1983 - * pp. 36-38. The results of the LC generator are shuffled with a multiplicative - * generator as suggested by Maclaren and Marsaglia (See Knuth Vol2, - * Seminumerical Algorithms). The multiplicative generator is courtesy I. - * Mitrani 1992, private correspondence: Y[i+1] = Y[i] * 5^5 mod 2^26, period is - * 2^24, initial seed must be odd - */ - -public abstract class RandomStream -{ - - /** - * In derived classes this method returns the value obtained by the stream. - * It must be redefined by the deriving class. - */ - - public abstract double getNumber () throws IOException, ArithmeticException; - - /** - * Returns a chi-square error measure on the uniform distribution function. - */ - - public final double error () - { - long r = 100; - long N = 100 * r; - long f[] = new long[100]; - int i; - - for (i = 0; i < r; i++) - f[i] = 0; - for (i = 0; i < N; i++) - f[(int) (uniform() * r)]++; - long t = 0; - for (i = 0; i < r; i++) - t += f[i] * f[i]; - double rt = (double) r * t; - double rtN = rt / (double) N - (double) N; - return 1.0 - (rtN / r); - } - - protected RandomStream() - { - series = new double[128]; - - mSeed = 772531; - lSeed = 1878892440; - - for (int i = 0; i < RandomStream.sizeOfSeries - / RandomStream.sizeOfDouble; i++) - series[i] = mgen(); - } - - protected RandomStream(long MGSeed, long LCGSeed) - { - series = new double[128]; - - // Clean up input parameters - - if ((MGSeed & 1) == 0) - MGSeed--; - if (MGSeed < 0) - MGSeed = -MGSeed; - if (LCGSeed < 0) - LCGSeed = -LCGSeed; - - // Initialise state - - mSeed = MGSeed; - lSeed = LCGSeed; - - for (int i = 0; i < RandomStream.sizeOfSeries - / RandomStream.sizeOfDouble; i++) - series[i] = mgen(); - } - - protected final double uniform () - { - // A linear congruential generator based on the algorithm from - // "Algorithms", R. Sedgewick, Addison-Wesley, Reading MA, 1983. - // pp. 36-38. - - long m = 100000000; - long b = 31415821; - long m1 = 10000; - - // Do the multiplication in pieces to avoid overflow - - long p0 = lSeed % m1, p1 = lSeed / m1, q0 = b % m1, q1 = b / m1; - - lSeed = (((((p0 * q1 + p1 * q0) % m1) * m1 + p0 * q0) % m) + 1) % m; - - // The results of the LC generator are shuffled with - // the multiplicative generator as suggested by - // Maclaren and Marsaglia (See Knuth Vol2, Seminumerical Algorithms) - - long choose = lSeed - % (RandomStream.sizeOfSeries / RandomStream.sizeOfDouble); - - double result = series[(int) choose]; - series[(int) choose] = mgen(); - - return result; - } - - private double mgen () - { - // A multiplicative generator, courtesy I. Mitrani 1992, - // private correspondence - // Y[i+1] = Y[i] * 5^5 mod 2^26 - // period is 2^24, initial seed must be odd - - long two2the26th = 67108864; // 2**26 - - mSeed = (mSeed * 25) % two2the26th; - mSeed = (mSeed * 25) % two2the26th; - mSeed = (mSeed * 5) % two2the26th; - - return (double) mSeed / (double) two2the26th; - } - - private long mSeed; - - private long lSeed; - - private double[] series; - - /* - * We do this so that we can have the same results when running on most Unix - * boxes with C++. It doesn't make any difference to the randomness of a - * distribution. - */ - - static private final long sizeOfSeries = 1024; - - static private final long sizeOfDouble = 8; - -} diff --git a/src/main/java/org/javasim/streams/.svn/text-base/UniformStream.java.svn-base b/src/main/java/org/javasim/streams/.svn/text-base/UniformStream.java.svn-base deleted file mode 100644 index 3c0838f..0000000 --- a/src/main/java/org/javasim/streams/.svn/text-base/UniformStream.java.svn-base +++ /dev/null @@ -1,98 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.streams; - -import java.io.IOException; -import java.lang.ArithmeticException; - -/** - * Returns a number drawn from a uniform distribution with the given lower and - * upper bounds. - */ - -public class UniformStream extends RandomStream -{ - - /** - * Create stream with low bound 'l' and high bound 'h'. - */ - - public UniformStream(double l, double h) - { - super(); - - lo = l; - hi = h; - range = hi - lo; - } - - /** - * Create stream with low bound 'l' and high bound 'h'. Skip the first - * 'StreamSelect' values before returning numbers from the stream. - */ - - public UniformStream(double l, double h, int StreamSelect) - { - super(); - - lo = l; - hi = h; - range = hi - lo; - - for (int i = 0; i < StreamSelect * 1000; i++) - uniform(); - } - - /** - * Create stream with low bound 'l' and high bound 'h'. Skip the first - * 'StreamSelect' values before returning numbers from the stream. Pass the - * seeds 'MGSeed' and 'LCGSeed' to the base class. - */ - - public UniformStream(double l, double h, int StreamSelect, long MGSeed, - long LCGSeed) - { - super(MGSeed, LCGSeed); - - lo = l; - hi = h; - range = hi - lo; - - for (int i = 0; i < StreamSelect * 1000; i++) - uniform(); - } - - /** - * Return a number from the stream. - */ - - public double getNumber () throws IOException, ArithmeticException - { - return lo + (range * uniform()); - } - - private double lo; - - private double hi; - - private double range; - -}; diff --git a/src/test/.svn/all-wcprops b/src/test/.svn/all-wcprops deleted file mode 100644 index 6a4c189..0000000 --- a/src/test/.svn/all-wcprops +++ /dev/null @@ -1,5 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 43 -/javasim/!svn/ver/34/JavaSim/trunk/src/test -END diff --git a/src/test/.svn/entries b/src/test/.svn/entries deleted file mode 100644 index d13050c..0000000 --- a/src/test/.svn/entries +++ /dev/null @@ -1,31 +0,0 @@ -8 - -dir -34 -https://svn.codehaus.org/javasim/JavaSim/trunk/src/test -https://svn.codehaus.org/javasim - - - -2010-11-13T21:27:02.792449Z -34 -mlittle - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -f3a3a722-c53a-0410-8699-aeaf0597c410 - -java -dir - diff --git a/src/test/.svn/format b/src/test/.svn/format deleted file mode 100644 index 45a4fb7..0000000 --- a/src/test/.svn/format +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/src/test/java/.svn/all-wcprops b/src/test/java/.svn/all-wcprops deleted file mode 100644 index 5e4681c..0000000 --- a/src/test/java/.svn/all-wcprops +++ /dev/null @@ -1,5 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 48 -/javasim/!svn/ver/34/JavaSim/trunk/src/test/java -END diff --git a/src/test/java/.svn/entries b/src/test/java/.svn/entries deleted file mode 100644 index 2620e65..0000000 --- a/src/test/java/.svn/entries +++ /dev/null @@ -1,31 +0,0 @@ -8 - -dir -34 -https://svn.codehaus.org/javasim/JavaSim/trunk/src/test/java -https://svn.codehaus.org/javasim - - - -2010-11-13T21:27:02.792449Z -34 -mlittle - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -f3a3a722-c53a-0410-8699-aeaf0597c410 - -org -dir - diff --git a/src/test/java/.svn/format b/src/test/java/.svn/format deleted file mode 100644 index 45a4fb7..0000000 --- a/src/test/java/.svn/format +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/src/test/java/org/.svn/all-wcprops b/src/test/java/org/.svn/all-wcprops deleted file mode 100644 index 0f55b4f..0000000 --- a/src/test/java/org/.svn/all-wcprops +++ /dev/null @@ -1,5 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 52 -/javasim/!svn/ver/34/JavaSim/trunk/src/test/java/org -END diff --git a/src/test/java/org/.svn/entries b/src/test/java/org/.svn/entries deleted file mode 100644 index a4924de..0000000 --- a/src/test/java/org/.svn/entries +++ /dev/null @@ -1,31 +0,0 @@ -8 - -dir -34 -https://svn.codehaus.org/javasim/JavaSim/trunk/src/test/java/org -https://svn.codehaus.org/javasim - - - -2010-11-13T21:27:02.792449Z -34 -mlittle - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -f3a3a722-c53a-0410-8699-aeaf0597c410 - -javasim -dir - diff --git a/src/test/java/org/.svn/format b/src/test/java/org/.svn/format deleted file mode 100644 index 45a4fb7..0000000 --- a/src/test/java/org/.svn/format +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/src/test/java/org/javasim/.svn/all-wcprops b/src/test/java/org/javasim/.svn/all-wcprops deleted file mode 100644 index 99496d8..0000000 --- a/src/test/java/org/javasim/.svn/all-wcprops +++ /dev/null @@ -1,5 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 60 -/javasim/!svn/ver/34/JavaSim/trunk/src/test/java/org/javasim -END diff --git a/src/test/java/org/javasim/.svn/entries b/src/test/java/org/javasim/.svn/entries deleted file mode 100644 index 5c991c1..0000000 --- a/src/test/java/org/javasim/.svn/entries +++ /dev/null @@ -1,34 +0,0 @@ -8 - -dir -34 -https://svn.codehaus.org/javasim/JavaSim/trunk/src/test/java/org/javasim -https://svn.codehaus.org/javasim - - - -2010-11-13T21:27:02.792449Z -34 -mlittle - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -f3a3a722-c53a-0410-8699-aeaf0597c410 - -examples -dir - -tests -dir - diff --git a/src/test/java/org/javasim/.svn/format b/src/test/java/org/javasim/.svn/format deleted file mode 100644 index 45a4fb7..0000000 --- a/src/test/java/org/javasim/.svn/format +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/src/test/java/org/javasim/tests/.svn/all-wcprops b/src/test/java/org/javasim/tests/.svn/all-wcprops deleted file mode 100644 index 1bafeb0..0000000 --- a/src/test/java/org/javasim/tests/.svn/all-wcprops +++ /dev/null @@ -1,5 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 66 -/javasim/!svn/ver/34/JavaSim/trunk/src/test/java/org/javasim/tests -END diff --git a/src/test/java/org/javasim/tests/.svn/entries b/src/test/java/org/javasim/tests/.svn/entries deleted file mode 100644 index dd54d94..0000000 --- a/src/test/java/org/javasim/tests/.svn/entries +++ /dev/null @@ -1,31 +0,0 @@ -8 - -dir -34 -https://svn.codehaus.org/javasim/JavaSim/trunk/src/test/java/org/javasim/tests -https://svn.codehaus.org/javasim - - - -2010-11-13T21:27:02.792449Z -34 -mlittle - - -svn:special svn:externals svn:needs-lock - - - - - - - - - - - -f3a3a722-c53a-0410-8699-aeaf0597c410 - -stats -dir - diff --git a/src/test/java/org/javasim/tests/.svn/format b/src/test/java/org/javasim/tests/.svn/format deleted file mode 100644 index 45a4fb7..0000000 --- a/src/test/java/org/javasim/tests/.svn/format +++ /dev/null @@ -1 +0,0 @@ -8 diff --git a/src/test/java/org/javasim/tests/stats/.svn/all-wcprops b/src/test/java/org/javasim/tests/stats/.svn/all-wcprops deleted file mode 100644 index 0f888a0..0000000 --- a/src/test/java/org/javasim/tests/stats/.svn/all-wcprops +++ /dev/null @@ -1,35 +0,0 @@ -K 25 -svn:wc:ra_dav:version-url -V 72 -/javasim/!svn/ver/34/JavaSim/trunk/src/test/java/org/javasim/tests/stats -END -MeanUnitTest.java -K 25 -svn:wc:ra_dav:version-url -V 90 -/javasim/!svn/ver/34/JavaSim/trunk/src/test/java/org/javasim/tests/stats/MeanUnitTest.java -END -QuantileUnitTest.java -K 25 -svn:wc:ra_dav:version-url -V 94 -/javasim/!svn/ver/44/JavaSim/trunk/src/test/java/org/javasim/tests/stats/QuantileUnitTest.java -END -VarianceUnitTest.java -K 25 -svn:wc:ra_dav:version-url -V 94 -/javasim/!svn/ver/34/JavaSim/trunk/src/test/java/org/javasim/tests/stats/VarianceUnitTest.java -END -PrecisionHistogramUnitTest.java -K 25 -svn:wc:ra_dav:version-url -V 104 -/javasim/!svn/ver/34/JavaSim/trunk/src/test/java/org/javasim/tests/stats/PrecisionHistogramUnitTest.java -END -HistogramUnitTest.java -K 25 -svn:wc:ra_dav:version-url -V 95 -/javasim/!svn/ver/44/JavaSim/trunk/src/test/java/org/javasim/tests/stats/HistogramUnitTest.java -END diff --git a/src/test/java/org/javasim/tests/stats/.svn/entries b/src/test/java/org/javasim/tests/stats/.svn/entries deleted file mode 100644 index b94d618..0000000 --- a/src/test/java/org/javasim/tests/stats/.svn/entries +++ /dev/null @@ -1,132 +0,0 @@ -10 - -dir -34 -https://svn.codehaus.org/javasim/JavaSim/trunk/src/test/java/org/javasim/tests/stats -https://svn.codehaus.org/javasim - - - -2010-11-13T21:27:02.792449Z -34 -mlittle - - - - - - - - - - - - - - -f3a3a722-c53a-0410-8699-aeaf0597c410 - -MeanUnitTest.java -file - - - - -2010-11-07T20:02:19.000000Z -f0b0444912319296131acaaa4419382f -2010-11-13T21:27:02.792449Z -34 -mlittle - -QuantileUnitTest.java -file -44 - - - -2010-11-20T18:54:34.000000Z -62756e69178d5d23a45359b5e62c48ba -2012-05-11T05:08:02.048057Z -44 -mlittle - - - - - - - - - - - - - - - - - - - - - -1789 - -VarianceUnitTest.java -file - - - - -2010-11-07T20:34:29.000000Z -5945009862b7785bcd1b7806be200e2c -2010-11-13T21:27:02.792449Z -34 -mlittle - -PrecisionHistogramUnitTest.java -file - - - - -2010-11-13T21:18:04.000000Z -c1f9589da8d1d839a9e997e91bbbd682 -2010-11-13T21:27:02.792449Z -34 -mlittle - -HistogramUnitTest.java -file -44 - - - -2010-11-20T18:38:40.000000Z -1ee9f23350e4863c8e7b6fccfd100849 -2012-05-11T05:08:02.048057Z -44 -mlittle - - - - - - - - - - - - - - - - - - - - - -1629 - diff --git a/src/test/java/org/javasim/tests/stats/.svn/text-base/HistogramUnitTest.java.svn-base b/src/test/java/org/javasim/tests/stats/.svn/text-base/HistogramUnitTest.java.svn-base deleted file mode 100644 index c9b6c2a..0000000 --- a/src/test/java/org/javasim/tests/stats/.svn/text-base/HistogramUnitTest.java.svn-base +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.tests.stats; - -import org.javasim.stats.Histogram; -import org.junit.Test; - -import static org.junit.Assert.*; - -public class HistogramUnitTest -{ - @Test - public void test () throws Exception - { - Histogram hist = new Histogram(1); - - hist.setValue(10.0); - hist.setValue(100.0); - - assertEquals(hist.numberOfBuckets(), (long) 2); - - hist.saveState("hist.temp"); - - hist.reset(); - - assertEquals(hist.numberOfBuckets(), (long) 0); - - hist.restoreState("hist.temp"); - - assertEquals(hist.numberOfBuckets(), (long) 2); - } -} diff --git a/src/test/java/org/javasim/tests/stats/.svn/text-base/MeanUnitTest.java.svn-base b/src/test/java/org/javasim/tests/stats/.svn/text-base/MeanUnitTest.java.svn-base deleted file mode 100644 index 7a6ba65..0000000 --- a/src/test/java/org/javasim/tests/stats/.svn/text-base/MeanUnitTest.java.svn-base +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.tests.stats; - -import org.javasim.stats.Mean; -import org.junit.Test; - -import static org.junit.Assert.*; - -public class MeanUnitTest -{ - @Test - public void test () throws Exception - { - final double MAX = 1000.0; - final double MIN = 0.0; - - Mean mn = new Mean(); - - mn.setValue(MAX); - mn.setValue(MIN); - - assertEquals(mn.max(), MAX); - assertEquals(mn.min(), MIN); - assertEquals(mn.numberOfSamples(), 2); - assertEquals(mn.sum(), MAX+MIN); - assertEquals(mn.mean(), (MAX+MIN)/2); - - mn.saveState("mean.tmp"); - - mn.reset(); - - assertEquals(mn.mean(), 0.0); - - Mean theMean = new Mean(); - - theMean.restoreState("mean.tmp"); - - assertEquals(theMean.max(), MAX); - } -} diff --git a/src/test/java/org/javasim/tests/stats/.svn/text-base/PrecisionHistogramUnitTest.java.svn-base b/src/test/java/org/javasim/tests/stats/.svn/text-base/PrecisionHistogramUnitTest.java.svn-base deleted file mode 100644 index d34629b..0000000 --- a/src/test/java/org/javasim/tests/stats/.svn/text-base/PrecisionHistogramUnitTest.java.svn-base +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.tests.stats; - -import org.javasim.stats.PrecisionHistogram; -import org.junit.Test; - -import static org.junit.Assert.*; - -public class PrecisionHistogramUnitTest -{ - @Test - public void test () throws Exception - { - PrecisionHistogram hist = new PrecisionHistogram(); - - hist.setValue(10.0); - hist.setValue(100.0); - - assertEquals(hist.numberOfBuckets(), (long) 2); - assertEquals(hist.numberOfSamples(), 2); - assertEquals(hist.sizeByIndex(0), 1.0); - assertEquals(hist.sizeByName(100.0), 1.0); - - hist.saveState("hist.temp"); - - hist.reset(); - - assertEquals(hist.numberOfBuckets(), (long) 0); - - hist.restoreState("hist.temp"); - - assertEquals(hist.numberOfBuckets(), (long) 2); - } -} diff --git a/src/test/java/org/javasim/tests/stats/.svn/text-base/QuantileUnitTest.java.svn-base b/src/test/java/org/javasim/tests/stats/.svn/text-base/QuantileUnitTest.java.svn-base deleted file mode 100644 index e26dd61..0000000 --- a/src/test/java/org/javasim/tests/stats/.svn/text-base/QuantileUnitTest.java.svn-base +++ /dev/null @@ -1,65 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.tests.stats; - -import org.javasim.stats.Quantile; -import org.javasim.stats.Variance; -import org.junit.Test; - -import static org.junit.Assert.*; - -public class QuantileUnitTest -{ - @Test - public void test () throws Exception - { - Quantile q; - - try - { - q = new Quantile(1.1); - - fail(); - } - catch (final Exception ex) - { - } - - try - { - q = new Quantile(-1.1); - - fail(); - } - catch (final Exception ex) - { - } - - q = new Quantile(); - - assertEquals(q.range(), 0.95); - - for (int i = 0; i < 100; i++) - q.setValue(i); - - assertEquals(q.getValue(), 94.0); - } -} diff --git a/src/test/java/org/javasim/tests/stats/.svn/text-base/VarianceUnitTest.java.svn-base b/src/test/java/org/javasim/tests/stats/.svn/text-base/VarianceUnitTest.java.svn-base deleted file mode 100644 index 3090e84..0000000 --- a/src/test/java/org/javasim/tests/stats/.svn/text-base/VarianceUnitTest.java.svn-base +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim.tests.stats; - -import org.javasim.stats.Variance; -import org.junit.Test; - -import static org.junit.Assert.*; - -public class VarianceUnitTest -{ - @Test - public void test () throws Exception - { - Variance vn = new Variance(); - - vn.setValue(10.0); - vn.setValue(20.0); - - double v = vn.variance(); - - assertTrue(v > 0.0); - assertEquals(vn.stdDev(), Math.sqrt(vn.variance())); - - vn.saveState("variance.temp"); - - vn.reset(); - - assertEquals(vn.variance(), 0.0); - - vn.restoreState("variance.temp"); - - assertEquals(v, vn.variance()); - } -} From f746480726c891f7ce660554e3867ecad32f84b9 Mon Sep 17 00:00:00 2001 From: Andrew Knapp Date: Thu, 15 Aug 2013 21:03:03 -0400 Subject: [PATCH 002/230] -- Added construction of the tigger queue to the constructors so that this will run without a null pointer exception -- Removed synchronized keywords to avoid a race condition (activating something in the trigger queue could potentially invoke a process that tries to release this semaphore itself (or get it). In either case this deadlocks even if there are resources available in the semaphore due to the syncronization interplay with the tirgger queue. -- Removed the check for maximum number of resources since there is not a way to create a Semaphore without any upper limit. This is a difference from the c++ version. I'm not sure this is the right way to fix this issue, but it works for my use case. --- Semaphore.java | 170 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 170 insertions(+) create mode 100644 Semaphore.java diff --git a/Semaphore.java b/Semaphore.java new file mode 100644 index 0000000..c732971 --- /dev/null +++ b/Semaphore.java @@ -0,0 +1,170 @@ +/* + * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne + * and others contributors as indicated + * by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * (C) 1990-2008, + */ + +package org.javasim; + +/** + * Classic semaphores can "accumulate" more resources than the starting + * value. The ceiling parameter is used to indicate whether or not the + * resource count should ever go beyond the initial value - the default + * is that it should. + */ + +public class Semaphore +{ + enum Outcome { DONE, NOTDONE, WOULD_BLOCK }; + + /** + * Create a new mutex (resources = 1). + */ + + public Semaphore() + { + numberWaiting = 0; + numberOfResources = 1; + currentResources = 1; + waitingList = new TriggerQueue(); + } + + /** + * Create a new semaphore (resources = number). + * + * @param number the number of resources. + */ + + public Semaphore(long number) + { + numberWaiting = 0; + numberOfResources = number; + currentResources = number; + waitingList = new TriggerQueue(); + } + + public void finalize () + { + if (numberWaiting != 0) + System.out + .println("Warning: semaphore being removed with clients waiting."); + } + + /** + * Number of entities blocked on the semaphore. + * + * @return the number of entities blocked. + */ + + public long numberWaiting () + { + return numberWaiting; + } + + /** + * Try to acquire the semaphore. Caller will be blocked if there are no free + * resources. + * + * @param toWait the entity that will be blocked. + * @return an indication of the outcome. + * @throws RestartException if a reset occurs while an entity is blocked. + */ + + public Outcome get (SimulationEntity toWait) + throws RestartException + { + if (currentResources > 0) + currentResources--; + else + { + numberWaiting++; + + try + { + waitingList.insert(toWait); + } + catch (SimulationException e) + { + } + + toWait.cancel(); + } + return Outcome.DONE; + } + + /** + * Only acquire the semaphore if it would not block the caller. + * + * @param toWait the entity to block. + * @return the outcome + */ + + public Outcome tryGet (SimulationEntity toWait) + throws RestartException + { + if (currentResources == 0) + return Outcome.WOULD_BLOCK; + else + return get(toWait); + } + + /** + * Release the semaphore. No check is made to ensure the caller has + * previously acquired the semaphore. + * + * @return the outcome + */ + + public Outcome release () + { + // if there are things waiting, they go right here + // and reconsume the resource that would have otherwise been freed by + // this release + if (numberWaiting > 0) + { + numberWaiting--; + + // don't set trigger flag - not strictly a trigger + + waitingList.triggerFirst(true); + + return Outcome.NOTDONE; + + } + else + { + // There is nothing waiting so we can really free up a resource for + // a new get to happen. + currentResources++; + + return Outcome.DONE; + } + } + + public void print() + { + System.out.println("Semaphore resources: "+currentResources+", processes waiting: "+numberWaiting); + } + + private TriggerQueue waitingList; + + private long numberWaiting; + + private long numberOfResources; + + private long currentResources; +} From a740bc9fe1544ea5f56199dbb9a1a1a5dea5c0b0 Mon Sep 17 00:00:00 2001 From: Andrew Knapp Date: Thu, 15 Aug 2013 21:11:58 -0400 Subject: [PATCH 003/230] Removed the exit in case of empty scheduler queue. If there is an existing process that has gone passive/idle while the last process in the queue exits, it won't get reactivated in the next call to schedule and so the very last thing won't be done. Removing the exit fixed this. I should note that this occured using many simulation entities involving semaphores, waitFor -- termiation, waitFor -- semaphore, and waitFor -- trigger. It is possible there is a more elegant solution. --- src/main/java/org/javasim/Scheduler.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/org/javasim/Scheduler.java b/src/main/java/org/javasim/Scheduler.java index bd5c58c..59deaec 100644 --- a/src/main/java/org/javasim/Scheduler.java +++ b/src/main/java/org/javasim/Scheduler.java @@ -204,8 +204,7 @@ static synchronized boolean schedule () throws SimulationException } catch (NoSuchElementException e) { - System.out.println("Simulation queue empty - terminating."); - System.exit(0); + System.out.println("Simulation queue empty."); } if (SimulationProcess.Current.evtime() < 0) From 4573b0a414beffc734d184221984debb6e7b136a Mon Sep 17 00:00:00 2001 From: Andrew Knapp Date: Thu, 15 Aug 2013 21:19:26 -0400 Subject: [PATCH 004/230] When running a simulation it is possible that you might intend to have multiple of the same process in the scheduler queue. The allProcesses remove line kills all of the ones in the list, not just the terminating one. This makes it particularly difficult to use the waitFor(termination) semantics. Another solution would have been to implement a waitFor(passivation). --- src/main/java/org/javasim/SimulationProcess.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/javasim/SimulationProcess.java b/src/main/java/org/javasim/SimulationProcess.java index 62d934a..33de4e6 100644 --- a/src/main/java/org/javasim/SimulationProcess.java +++ b/src/main/java/org/javasim/SimulationProcess.java @@ -61,7 +61,6 @@ public void finalize () } } - SimulationProcess.allProcesses.remove(this); } } From 351c00c126e32c12fab37aa2c94c0aa20720afbe Mon Sep 17 00:00:00 2001 From: Andrew Knapp Date: Thu, 15 Aug 2013 21:25:31 -0400 Subject: [PATCH 005/230] Added functionality to write out the histogram to a file of the sort easily printed with gnuplot. --- .../org/javasim/stats/PrecisionHistogram.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main/java/org/javasim/stats/PrecisionHistogram.java b/src/main/java/org/javasim/stats/PrecisionHistogram.java index 8e7416a..55333ec 100644 --- a/src/main/java/org/javasim/stats/PrecisionHistogram.java +++ b/src/main/java/org/javasim/stats/PrecisionHistogram.java @@ -25,6 +25,8 @@ import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; +import java.io.PrintWriter; +import java.io.FileNotFoundException; import java.io.IOException; /** @@ -246,6 +248,24 @@ public void print () super.print(); } + public void write (String filename) + { + try { + PrintWriter out = new PrintWriter(filename); + out.print("#BinName\tCount\n"); + if (length != 0) + { + for (Bucket ptr = Head; ptr != null; ptr = ptr.cdr()) + { + out.print(ptr.name() + "\t" + ptr.size() + "\n"); + } + } + out.close(); + } catch (FileNotFoundException ex) { + System.err.println(ex.getMessage()); + } + } + protected boolean isPresent (double value) { try From 480fdad36c92233391e47fe9012fcf723ca6bc80 Mon Sep 17 00:00:00 2001 From: Andrew Knapp Date: Thu, 15 Aug 2013 21:26:58 -0400 Subject: [PATCH 006/230] Modified how this code works so that subsequent creations of random streams don't restart at the same seed, but build on each other. In essence they will all share the same underlying uniform random stream. Another soution would be to have used some source of entropy to initialize the seeds for the streams. For my purposes, I just wanted it such that every random stream did not contain the same sequence of numbers. --- src/main/java/org/javasim/streams/RandomStream.java | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/javasim/streams/RandomStream.java b/src/main/java/org/javasim/streams/RandomStream.java index 8a1d048..f44ef1b 100644 --- a/src/main/java/org/javasim/streams/RandomStream.java +++ b/src/main/java/org/javasim/streams/RandomStream.java @@ -67,6 +67,8 @@ public final double error () protected RandomStream() { + if (series == null) + { series = new double[128]; mSeed = 772531; @@ -75,6 +77,7 @@ protected RandomStream() for (int i = 0; i < RandomStream.sizeOfSeries / RandomStream.sizeOfDouble; i++) series[i] = mgen(); + } } protected RandomStream(long MGSeed, long LCGSeed) @@ -145,11 +148,11 @@ private double mgen () return (double) mSeed / (double) two2the26th; } - private long mSeed; + private static long mSeed = 0; - private long lSeed; + private static long lSeed = 0; - private double[] series; + private static double[] series = null; /* * We do this so that we can have the same results when running on most Unix From 842e639c03ef979a15c6db42c34bc26f33132aa6 Mon Sep 17 00:00:00 2001 From: Andrew Knapp Date: Thu, 15 Aug 2013 21:33:38 -0400 Subject: [PATCH 007/230] Added this file in the wrong place --- Semaphore.java | 170 ------------------------------------------------- 1 file changed, 170 deletions(-) delete mode 100644 Semaphore.java diff --git a/Semaphore.java b/Semaphore.java deleted file mode 100644 index c732971..0000000 --- a/Semaphore.java +++ /dev/null @@ -1,170 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ - -package org.javasim; - -/** - * Classic semaphores can "accumulate" more resources than the starting - * value. The ceiling parameter is used to indicate whether or not the - * resource count should ever go beyond the initial value - the default - * is that it should. - */ - -public class Semaphore -{ - enum Outcome { DONE, NOTDONE, WOULD_BLOCK }; - - /** - * Create a new mutex (resources = 1). - */ - - public Semaphore() - { - numberWaiting = 0; - numberOfResources = 1; - currentResources = 1; - waitingList = new TriggerQueue(); - } - - /** - * Create a new semaphore (resources = number). - * - * @param number the number of resources. - */ - - public Semaphore(long number) - { - numberWaiting = 0; - numberOfResources = number; - currentResources = number; - waitingList = new TriggerQueue(); - } - - public void finalize () - { - if (numberWaiting != 0) - System.out - .println("Warning: semaphore being removed with clients waiting."); - } - - /** - * Number of entities blocked on the semaphore. - * - * @return the number of entities blocked. - */ - - public long numberWaiting () - { - return numberWaiting; - } - - /** - * Try to acquire the semaphore. Caller will be blocked if there are no free - * resources. - * - * @param toWait the entity that will be blocked. - * @return an indication of the outcome. - * @throws RestartException if a reset occurs while an entity is blocked. - */ - - public Outcome get (SimulationEntity toWait) - throws RestartException - { - if (currentResources > 0) - currentResources--; - else - { - numberWaiting++; - - try - { - waitingList.insert(toWait); - } - catch (SimulationException e) - { - } - - toWait.cancel(); - } - return Outcome.DONE; - } - - /** - * Only acquire the semaphore if it would not block the caller. - * - * @param toWait the entity to block. - * @return the outcome - */ - - public Outcome tryGet (SimulationEntity toWait) - throws RestartException - { - if (currentResources == 0) - return Outcome.WOULD_BLOCK; - else - return get(toWait); - } - - /** - * Release the semaphore. No check is made to ensure the caller has - * previously acquired the semaphore. - * - * @return the outcome - */ - - public Outcome release () - { - // if there are things waiting, they go right here - // and reconsume the resource that would have otherwise been freed by - // this release - if (numberWaiting > 0) - { - numberWaiting--; - - // don't set trigger flag - not strictly a trigger - - waitingList.triggerFirst(true); - - return Outcome.NOTDONE; - - } - else - { - // There is nothing waiting so we can really free up a resource for - // a new get to happen. - currentResources++; - - return Outcome.DONE; - } - } - - public void print() - { - System.out.println("Semaphore resources: "+currentResources+", processes waiting: "+numberWaiting); - } - - private TriggerQueue waitingList; - - private long numberWaiting; - - private long numberOfResources; - - private long currentResources; -} From f69a4a834854da0014d411a75539e1eaaa173d9b Mon Sep 17 00:00:00 2001 From: Andrew Knapp Date: Thu, 15 Aug 2013 21:40:02 -0400 Subject: [PATCH 008/230] Removed the synchronized keywords since they can cause deadlock if a simulation process tries to get or release a semaphore after being triggered by a process that release the same semaphore. Fixed the constructors so that the waitingList is not null. Removed the headroom check on the number of resources. Reworked the logic about how resources get added and removed. --- src/main/java/org/javasim/Semaphore.java | 29 +++++++++++++----------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/javasim/Semaphore.java b/src/main/java/org/javasim/Semaphore.java index 0b19190..88cefea 100644 --- a/src/main/java/org/javasim/Semaphore.java +++ b/src/main/java/org/javasim/Semaphore.java @@ -40,6 +40,7 @@ public Semaphore() numberWaiting = 0; numberOfResources = 1; currentResources = 1; + waitingList = new TriggerQueue(); } /** @@ -53,6 +54,7 @@ public Semaphore(long number) numberWaiting = 0; numberOfResources = number; currentResources = number; + waitingList = new TriggerQueue(); } public void finalize () @@ -68,7 +70,7 @@ public void finalize () * @return the number of entities blocked. */ - public synchronized long numberWaiting () + public long numberWaiting () { return numberWaiting; } @@ -82,7 +84,7 @@ public synchronized long numberWaiting () * @throws RestartException if a reset occurs while an entity is blocked. */ - public synchronized Outcome get (SimulationEntity toWait) + public Outcome get (SimulationEntity toWait) throws RestartException { if (currentResources > 0) @@ -112,7 +114,7 @@ public synchronized Outcome get (SimulationEntity toWait) * @return the outcome */ - public synchronized Outcome tryGet (SimulationEntity toWait) + public Outcome tryGet (SimulationEntity toWait) throws RestartException { if (currentResources == 0) @@ -128,25 +130,26 @@ public synchronized Outcome tryGet (SimulationEntity toWait) * @return the outcome */ - public synchronized Outcome release () + public Outcome release () { + // if there are things waiting they get triggered right here + // and recomsume the resource that would have been freed otherwise + // by this release call if (numberWaiting > 0) { - currentResources++; - - if (currentResources > numberOfResources) - currentResources = numberOfResources; - numberWaiting--; - // don't set trigger flag - not strictly a trigger - - waitingList.triggerFirst(false); + waitingList.triggerFirst(true); return Outcome.DONE; } else - return Outcome.NOTDONE; + { + // There is nothing waiting so we can free up a resource + currentResources++; + + return Outcome.DONE; + } } private TriggerQueue waitingList; From 330e2787d6bf23997058ad1e4b86b090b0ec16e4 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 5 Mar 2015 15:15:34 +0000 Subject: [PATCH 009/230] Added more text Specifically about moving away from Codehaus --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 1012910..c5b8ac0 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,10 @@ JavaSIM has been available since 1997 and is an object-oriented simulation packa - various statistical gathering routines, such as histogram and variance classes. - debugging classes. -The system also comes with complete examples and test routines which illustrate many of the issues raised in using the simulation package. It is used by many commercial and academic organisations. \ No newline at end of file +The system also comes with complete examples and test routines which illustrate many of the issues raised in using the simulation package. It is used by many commercial and academic organisations. + +Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under their own licence. However, in late 2007 the University decided that the code can be released into open source under LGPL. + +We are in the process of providing new releases of JavaSim and C++SIM. In the meantime, if you want the old versions then you can find C++SIM 1.7.4 GA and JavaSim 0.3 GA available from our downloads repository. + +In 2015 we moved from Codehaus. From c2ad94e1333e794a17079185beb3a54b0f73ccd7 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 5 Mar 2015 15:21:39 +0000 Subject: [PATCH 010/230] Added distro and removed classes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Added the distribution directory and removed classes which shouldn’t have been checked in. --- bin/org/javasim/RestartException.class | Bin 503 -> 0 bytes bin/org/javasim/Scheduler.class | Bin 3218 -> 0 bytes bin/org/javasim/Semaphore$Outcome.class | Bin 1134 -> 0 bytes bin/org/javasim/Semaphore.class | Bin 2029 -> 0 bytes bin/org/javasim/SimulationEntity.class | Bin 2915 -> 0 bytes bin/org/javasim/SimulationException.class | Bin 512 -> 0 bytes bin/org/javasim/SimulationProcess.class | Bin 7369 -> 0 bytes bin/org/javasim/TriggerQueue.class | Bin 2182 -> 0 bytes bin/org/javasim/examples/basic/Arrivals.class | Bin 900 -> 0 bytes bin/org/javasim/examples/basic/Breaks.class | Bin 1579 -> 0 bytes bin/org/javasim/examples/basic/Job.class | Bin 1224 -> 0 bytes bin/org/javasim/examples/basic/List.class | Bin 399 -> 0 bytes bin/org/javasim/examples/basic/Machine.class | Bin 2085 -> 0 bytes .../javasim/examples/basic/MachineShop.class | Bin 2884 -> 0 bytes bin/org/javasim/examples/basic/Main.class | Bin 1022 -> 0 bytes bin/org/javasim/examples/basic/Queue.class | Bin 1272 -> 0 bytes .../javasim/examples/basic/expected_output | 19 ------------------ .../javasim/examples/interrupt/Arrivals.class | Bin 925 -> 0 bytes bin/org/javasim/examples/interrupt/Job.class | Bin 631 -> 0 bytes bin/org/javasim/examples/interrupt/List.class | Bin 411 -> 0 bytes .../examples/interrupt/MachineShop.class | Bin 2405 -> 0 bytes bin/org/javasim/examples/interrupt/Main.class | Bin 623 -> 0 bytes .../examples/interrupt/Processor.class | Bin 1702 -> 0 bytes .../javasim/examples/interrupt/Queue.class | Bin 1300 -> 0 bytes .../examples/interrupt/Signaller.class | Bin 1150 -> 0 bytes .../internal/SimulationProcessCons.class | Bin 904 -> 0 bytes .../internal/SimulationProcessIterator.class | Bin 917 -> 0 bytes .../internal/SimulationProcessList.class | Bin 3280 -> 0 bytes bin/org/javasim/simset/Head.class | Bin 1563 -> 0 bytes bin/org/javasim/simset/Link.class | Bin 2145 -> 0 bytes bin/org/javasim/stats/Bucket.class | Bin 1811 -> 0 bytes bin/org/javasim/stats/Histogram.class | Bin 4296 -> 0 bytes bin/org/javasim/stats/Mean.class | Bin 3164 -> 0 bytes .../javasim/stats/PrecisionHistogram.class | Bin 4910 -> 0 bytes bin/org/javasim/stats/Quantile.class | Bin 1755 -> 0 bytes bin/org/javasim/stats/SimpleHistogram.class | Bin 4194 -> 0 bytes .../javasim/stats/StatisticsException.class | Bin 524 -> 0 bytes bin/org/javasim/stats/TimeVariance.class | Bin 2580 -> 0 bytes bin/org/javasim/stats/Variance.class | Bin 2727 -> 0 bytes bin/org/javasim/streams/Draw.class | Bin 1025 -> 0 bytes bin/org/javasim/streams/ErlangStream.class | Bin 1401 -> 0 bytes .../javasim/streams/ExponentialStream.class | Bin 1079 -> 0 bytes .../streams/HyperExponentialStream.class | Bin 1566 -> 0 bytes bin/org/javasim/streams/NormalStream.class | Bin 1467 -> 0 bytes bin/org/javasim/streams/RandomStream.class | Bin 2036 -> 0 bytes bin/org/javasim/streams/UniformStream.class | Bin 1191 -> 0 bytes .../tests/stats/HistogramUnitTest.class | Bin 1264 -> 0 bytes .../javasim/tests/stats/MeanUnitTest.class | Bin 1871 -> 0 bytes .../stats/PrecisionHistogramUnitTest.class | Bin 1897 -> 0 bytes .../tests/stats/QuantileUnitTest.class | Bin 1359 -> 0 bytes .../tests/stats/VarianceUnitTest.class | Bin 1429 -> 0 bytes distributions/JavaSim.tar.gz | Bin 0 -> 138113 bytes 52 files changed, 19 deletions(-) delete mode 100644 bin/org/javasim/RestartException.class delete mode 100644 bin/org/javasim/Scheduler.class delete mode 100644 bin/org/javasim/Semaphore$Outcome.class delete mode 100644 bin/org/javasim/Semaphore.class delete mode 100644 bin/org/javasim/SimulationEntity.class delete mode 100644 bin/org/javasim/SimulationException.class delete mode 100644 bin/org/javasim/SimulationProcess.class delete mode 100644 bin/org/javasim/TriggerQueue.class delete mode 100644 bin/org/javasim/examples/basic/Arrivals.class delete mode 100644 bin/org/javasim/examples/basic/Breaks.class delete mode 100644 bin/org/javasim/examples/basic/Job.class delete mode 100644 bin/org/javasim/examples/basic/List.class delete mode 100644 bin/org/javasim/examples/basic/Machine.class delete mode 100644 bin/org/javasim/examples/basic/MachineShop.class delete mode 100644 bin/org/javasim/examples/basic/Main.class delete mode 100644 bin/org/javasim/examples/basic/Queue.class delete mode 100644 bin/org/javasim/examples/basic/expected_output delete mode 100644 bin/org/javasim/examples/interrupt/Arrivals.class delete mode 100644 bin/org/javasim/examples/interrupt/Job.class delete mode 100644 bin/org/javasim/examples/interrupt/List.class delete mode 100644 bin/org/javasim/examples/interrupt/MachineShop.class delete mode 100644 bin/org/javasim/examples/interrupt/Main.class delete mode 100644 bin/org/javasim/examples/interrupt/Processor.class delete mode 100644 bin/org/javasim/examples/interrupt/Queue.class delete mode 100644 bin/org/javasim/examples/interrupt/Signaller.class delete mode 100644 bin/org/javasim/internal/SimulationProcessCons.class delete mode 100644 bin/org/javasim/internal/SimulationProcessIterator.class delete mode 100644 bin/org/javasim/internal/SimulationProcessList.class delete mode 100644 bin/org/javasim/simset/Head.class delete mode 100644 bin/org/javasim/simset/Link.class delete mode 100644 bin/org/javasim/stats/Bucket.class delete mode 100644 bin/org/javasim/stats/Histogram.class delete mode 100644 bin/org/javasim/stats/Mean.class delete mode 100644 bin/org/javasim/stats/PrecisionHistogram.class delete mode 100644 bin/org/javasim/stats/Quantile.class delete mode 100644 bin/org/javasim/stats/SimpleHistogram.class delete mode 100644 bin/org/javasim/stats/StatisticsException.class delete mode 100644 bin/org/javasim/stats/TimeVariance.class delete mode 100644 bin/org/javasim/stats/Variance.class delete mode 100644 bin/org/javasim/streams/Draw.class delete mode 100644 bin/org/javasim/streams/ErlangStream.class delete mode 100644 bin/org/javasim/streams/ExponentialStream.class delete mode 100644 bin/org/javasim/streams/HyperExponentialStream.class delete mode 100644 bin/org/javasim/streams/NormalStream.class delete mode 100644 bin/org/javasim/streams/RandomStream.class delete mode 100644 bin/org/javasim/streams/UniformStream.class delete mode 100644 bin/org/javasim/tests/stats/HistogramUnitTest.class delete mode 100644 bin/org/javasim/tests/stats/MeanUnitTest.class delete mode 100644 bin/org/javasim/tests/stats/PrecisionHistogramUnitTest.class delete mode 100644 bin/org/javasim/tests/stats/QuantileUnitTest.class delete mode 100644 bin/org/javasim/tests/stats/VarianceUnitTest.class create mode 100644 distributions/JavaSim.tar.gz diff --git a/bin/org/javasim/RestartException.class b/bin/org/javasim/RestartException.class deleted file mode 100644 index 8c3b0f948fe30bda32dad5bce57fa142e19445f3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 503 zcmaKo-%0{O6vn@!tH!EnnwAkk7lnVIg}OAnv4UdhB5UtQ8*F0TjomSNsV=$_y6^#d zh+d&LsLrSq7&I{F%$fP-_nn!y&(|q{Lu_S`AZ&-x(76|nB32{kO2%45`t)faAG8XC z3@k#~oI1V;hR)9cp%}|Z3Ez`Z%)*=V69Qcj^4&0CMxZ_6k7eqM$NTg2gOEN}fzlm9 zvfl6rRyVwrHj-G)!A6!)a8)2L$D_WCu0`LMgpwN$*g&ui*NaU{->I0eY-K z2#SxNCX)C=e;5)aLE5CPHjzXUV~jDHXpAu?Cj2ll{!kNQG$MX?cDuXfVNKJ$Gxwgy zch33Fx%1gSAASU28D7)i5~xdMdV+_IJ|k-;f{|#ijM;IS(clr7thR%3BiR$|?9E6c zCQunM6L#FNWUSLnNCB}?z}LZ}{++h8xzQXhwPz+RnMoS)U|!8kC3j>}QJKw#&8!uo zi|m-k4m+7NlRY%KkJ|@`M){#ahs;V#K(~5j0iM9LaefL1H0fO(jhji+S|i|YY}zg0 z*^r9K3JBEdC_}l1sRDujkJ5)JsMj$K)dJ_N0>S>ma3i#C1937M3^YN)( zz4~?Ns1&FUn@QPjCl1O?r*SaOEY*fnQ6s+F$e8Lqzd0#tXEHKrm3U0Y28GStBP|ue zCLNnq2$igkosfAyKDe<(N2@w1>o;XQrewG22&0WGG-ImrEbBgnbGwcm*vZUq$Q7L> zogjM}BBYellD1{WgYBt^9qru|mkDyFP3Ek>7vy6R=v5LrtbQox>Kraq!FvpF&NPpIn2^~ie zXO>bnXHZ=(1Tz)fkzvdci$gIH@**j)pa{W#RE83k*V8&qU_QG@ z_E{XzUOXePur=9d#Lbw$2ra-yRpHWTQMJHa(!tG(u?#+SP4LO5CcLw9zB?s)m{RiT=C zllis_F8%^@s|HasiYZ;gs2jv|_aJ8SfA%N@ckUZR!xaj-=nj~v+z2=CS`Vs3IckMQ zqE^62A!ylW1Ts`mvhXH1X?w8xcCFpPt@C|q zo*c%htGP|`D!`|AFv)q}=(*&+GQ{D0nUQHZhOHu>fKOQOPkHh=>hT4``;x5s zij4XiE%=5L>szeHci4jO(T*R;o*$`y-HEK8n0-8Xo?HPnb%!g$;YA(FZqXpyGoXGt z^r_SSB7jEq6~tAwe>c@t&@~J-FoZLEF2WP$!}2Rm#=QJ8979^m`~W|5=NEeUmFmBh z#wPOO<-)vCZ86SMP2k$)i9Owi^{y8PuwA^d~m)&N$ZhKD^P5-2;Y1 zrFwjrsqN^;6_a7<{Yar`soAz{%iCs9vbh>r*mXXND8g|tOlr7~BtxV$2uWr2Tg#^B zT6U|rpR2_v_JM{lB2lOkJk+2{5S3t7LlhCYo7WISoMA$@Y*FoX8p1u|jkaJ&>Q0ll zYuvRY_7CGwFiC#A6RS%W&Uw2hXtSKnjmj#H44$cYN(ltqUUWUt(eNBuh8TBUe$jN! zE*SE`oQ%e)XnMu{K$?G#C{L=pZ^QV+@G3|flp;5x+%lzA4LQ7E*bMS_+q~N?20l6z zyiGt(2z5SgIz6{3-deJ3BU z&ux%NX;aOw%wJ*gZj$syAtXV*$@OC_59nKzo1~}un5!Qs`I~x4`Z-kQuJL5`Gu;F& uu%U$*bvr-M$Wx5ek0)9F8Y@4*{>@Xc=4%$P?ynp4Um+&(Y4osJp7{;LUHIt$ diff --git a/bin/org/javasim/Semaphore.class b/bin/org/javasim/Semaphore.class deleted file mode 100644 index 5e43cde5e7a5b130397395cf5ad1e6204e87d90e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2029 zcmah}T~ixn6n+*0OTt3=F4h8}RtZ6gZ7H;c@=-o2G?3CzptUo)q%UD>vSD^NAl^HU zju+agbSb7H7Qh2l%5LpR);JQ#-@OzVEwd&-$t$ZS_^5*VN!BILw8d}7h$eDIFk=lBuGMhL|lWuE75W`3B*ba{1P%e@y8{lrnF~fzF0PQ%TiEg7N<6= zNO~$(Er^vb=1k8j*z>k$c?aWz)t^t;UrrUhOd&6YkIa9WQM+=*)p13`#bA@L%AVUPIp*!su9_Qx)JTixb7j!7IqfXy~oR zJM}HqK|Gy^M?c@M=N53WnRbpsm`PhUx`m9med{dr!nWZs%9QVmO+5@*r2l{1?& zT~|h4FEA>5Q3y5C0zB2oT>Cqx+TS_T+;w_#_PI9kZH2cq?j7+z(HsxIMoT>M z8f~(4{Ndl~;@U+_aAHD;@gFgWX2j8sA)KdGka!>6c!#@SUnpa55?eS0u=@m?%m1*i z5&Jr^M~OW~>>ECI7qd9Umeae;fqy_;tYomto5G+i{t7MO7r&tK2t94@9pioBUrX-% zMjv2;__uj)60MjDaBnMfAM*XRR*I?P!*UV{QV{q$f&ZO{8XvLVH!cQH>dGkn(kS#w z&{vp!?Cbn96%;K-2-6XM@f&r1#8X63ip<|4^L};1&ts_hw5+zFI zhcI8xr5|{$Uz5`}?4obchwm_e?{Nh` k;3l54{yzn3HWR2k6CUVf(wihyLtP(pm&u>z^XYW=e|;9D@&Et; diff --git a/bin/org/javasim/SimulationEntity.class b/bin/org/javasim/SimulationEntity.class deleted file mode 100644 index 9cf68bdb88ccc33c093f95c625148c17c74c2927..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2915 zcmai0-)|IU6g|^!JKOE_2Ngw>o9Vx9%o}+t*FRz93R%Om9DCUIERPW(1>4t;IOjSkGoM!wnX&R0 z4a>9ajDj7>^`ndT9aW&sShi=nZeh+d(+ZSnxxjO+OvZF&BRq4fbXWMAWgA)RHB&)t ztanO5XwXTU5!9kZLnAZ=ElJBZ#|ycuraNg|%`&hp>74HK;Fwc64dz#x4c*$1L0Ojw{#{OG@?nvxc4NpP-O-=4kI! z1M@toA%buidlWnoTxvUBG?2GXLV7i*2uBddJ{5a;*&2eWSuEv&IenM z(J!zCF-W2IYc$#c1&yhK>zcMVY2}L591 zpj*f6dHOjWr4Vc`)-#FIbi7ogD2y`1jv$?`|1xLEX>24_j*U2O7;K?VLB=mpawru! z>e$h|nZ4G>(xn{RbDb=UNqJrKWQsC({Z9)NOE9D1C2UmC9Hg5pwkpTM+T+3g`GQ$6 z{odrbXbFfIgXc%NdSqed#Z-v(cU$<%4vGe7QB>`GYKvV5YRbUI~Neq z`MiR|0;3iJLnm6GmrQiR*vmBg*p>a*L)>v3=4S$ja018KwE{C*Odr4`5F8~yfu6uI zvai8&e6B<7hSqI7aJ($TLB5i(dY!lu)jACG$Vi0_^<^D6EO<_Y{D9m=v$(#DQ{SUo zmK6-i5-?muIJt;WQdjQd6y+XW;sO5Upv)cq8l{j$-ratsCb)YE&6sAyWpbNgl~dTw z?$ME{fD;ek2saI(%PKksRo*3D;0y}@o+SyPxP__5iWqdgcKSYg_?uugR#~_4AaH}9 zIZjZU@SKWtTY_{UynrL5AT9_KxVRwcYjKa?a@>>-ku9$@0p5+T;H=uKrQb`t?`hr6$H_YKPNCiA>SU%rDLyi0Suhy8fp$5$-> zK)L(_n8b^`v6(kc;UZCqM8tZA@0s$+j%$ zc#)+P+t)KjZqfjE(O5}qBP+P8OlyF30X`(HkI;g~ZiwqExaya9Ri$Ml7SJf0iN#8dN?l)c|4-EBXBO@k z>hmiH&TrU?-|6Q+=>9(|V3pj@)?-)9vfNT+He)yciG_vh0l*O76vtE|0H+GL8yBm2 i|3%(^S0qp?c;AG}Yif{ZiW+z*aFu~Nk1TGV==c|J%Ta^? diff --git a/bin/org/javasim/SimulationException.class b/bin/org/javasim/SimulationException.class deleted file mode 100644 index 768acaf6e6a89e1898ab6d2fec8c7b0b341de4e7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512 zcmaiw&q_i;6vn@!SB~?*4>Xb*u?!4_fPavEm{dJe1IOJ zSLh9@Gb#lYG%)APnfcB4otc;S=P7^#Y~+w4YzN`kx)t{#Ql2$XUgC;a1^&syNZ#p1 z4hEsB0m~Ks*!nsklp`4`;W{#m7`!?=CeS&d*bn?D7JlpqH<6hS9l)BdOPE}_=4 zzdIkqq4LMwwxd03+Ox_Hvr^?ZL@)u?9baZ>P}s1m<;a0ssI2 diff --git a/bin/org/javasim/SimulationProcess.class b/bin/org/javasim/SimulationProcess.class deleted file mode 100644 index 16a7dc812c181189cb17a60e36ea7801ddf3ca9b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7369 zcmbVRX?RrC8Gg^rBr}=ZBoKB2VFH+t2@pUtAePlid3ZvNCJq8iq>kiwsosZUFuS+?eo|l?bBLY`hNG`xpOBB1REZ5*YlnC zeZS>==jOTpKKvMfDfqJ&n!?C1b$+bflx9R3sidHxUmT$)pz^g?{q5 zAsULUZdkk~VT9Th3KujlXU$6OScRp;&53D4I43j_^l84@IN44I`;AzSTWV zB$hG~u~78r`C22%)HDVE`p`Nf-I6|Gs!3s5i2~VsU6?luA{!#>1iLl29Td*Y-`{D(V)ETyDtNppH_M$=P@v zCGA@ZqsR53UfmKgJ6*?_GMg_mQpA|4V-{vpjD*nRH9ZK+Ur-TY9eEu+T@MoQ5n3Z1QE9?nuI30sk}*bLR8n6V+% z+(o~QtLp;|rE(@^nk`fam?4`^MWPK0;%({hn&zm{!60;A6RpnEu?TI{YPFF%FKwhL z%*0-E^^sj7?)f^Fh`3%_SwP4>EMtTn72SbYJQaw?0*Q1iaH&i-(T_%~kTAV~aWKx6 zWNoQLB({2*#D9^|WocCw3a88zZ8TQJ6HJMV6-K!AUu2kx>mpc*kdBoIvw%cmNh6W6 zhAPbN%lm!EUAMvqYBjocrHQ3B&}kL8KqP6h%!FS1MAny1x<7+`_9~Vh(JZ24tpF>r zfSLDwh|<@!A$jMxCjE{%)|A3=O)Kh_c)@9gWXqJLU}HKGZ8s7=B#7bcSQj(5Js@%h z{D^~D7)M%17uHkfP-mwRV?7)(uBq-QSJ;N8$%xBzT#m0XXi{-&7KMQfn%;Bs-Aa62 z$2agzTDNF2Ec#NOT=@Fzl$8R7ory@C;5`Jz>{hr+M+cZ!j-pLQG<2CfxkksexK5#% z1tYx98ZN`=s_!Zc$gpph_cIzy#SJ>XCz;ouv73!pdveG24|HsjS$!Gdxr}k?$_Yrp z@M9fc#TjyTvyNM&`j#crNzv6_y;x_nl)->`l*gP z$%$K#R4=*w! zC42%t{FYAw5i9Fh>*9Dxa_wb>3HfTBi&{?dPV?bag{o|D+M$%GHL|GEb)GfxXuA)u zv+~d7S%B#rjTp@KI3bvkY6RkD@4}ZA>qfED^GMkILC1CslQrQT9q-EeS)O#(GYV+X zZx^A8p^z}uv_Z(w4|IGe0v4L(mjT)CWCkzV;^{=#Xo<+mKlmsT6D0&tO)CX#8~hlC zLKN}J%PS2&{$s;pp0k%Qk8C*1Bijx0NLQFgy2(7!Nj&O$!Mu_%zeSiE33C%+UQL+S66SSZ0w&koJTQ0At4tC!_ENK!fpyC^ zREl&55no<$={_WDdywkE20>`59jv9kBKgQ3T#=P_G&2>riI{ID<}H+LD|28Q@!rNg z!R?IqJ51aGx`H!1@;2g1W{QMkBiWYmsR&(&f-+K8Y#P3uhrmq27c<^qZ9xwVB6>US~G1J)4rgAdlhuZDm?|DHE*ShpV@`l=)6RW%lFx+VFAI*-w54sLnyE z^9a>>jOrZXuIF)be!`_ri-WfX-?!Ci$*0by6HsS!Z*`uhIxieU9cwlvtw` zHMX}pl7+03b8YUPoX8l?`G8l+{WWrbozeUT*Wfo<58pCTSl%CNa~AJ=pmA|f_+j28 z6TeA{jCJU2xt?|mu9LKjT+%h zu5iiKt0xP#SUp*_d=?{KX-Vf1sW_>eC6TM*+?#JjVZlz%PTsOw4q4HluA);mp;TSt zvR>|zfb>ggr`)mIz$>vUom0J7b2WQvv&%}hb1Ka{xUTo$EqMkPV~5iz3ZF)kTeCpt z&p?X(jNMTEO!@#`@8W$o!8;k|ccGu!Zdw=LNg*e#epH>`$Y@mL8f&`MY+jCKMQO4&XX2}zb(F5E@Jmn}em|i`AhY4C(41wnejViD3@uJ() z z^#XN%k+@&NDD?`rK(Apeug9x59Q=VC{6kUL?+BOQqX~GZO=fd-g|OqSQ-b?&ICv1d zxWjs?8&AuY=$TB~aiO>ONIZMi+6VnATk@7c z)jn`=${!%CZI6d7Nv6}wM&OOo2olpwE72!OgUSpmF?-M*AWFMY{k7eWRs5z0zq7kl za|7^7Zf9+F1L|YefKON=KjjDXzjDv~8D^-znV_uZf2IvecAPC{|7G{2Lq>3G#x^E{ z)Y?^9HFG1M2-fjZEVrZBOqwAX;iOO9Octz}*3RVjxxlQ-`7Z+doMqw*D)%2o<$qDl zKhD%^nhV@`2i$lzQc~A#aHRtT+?zQOX+c}Scof$TkYcixWs}&fM(M3=?KTUQR>VEC z7ZsY%<)Z<)g-SNq{6DqYA(yTS#S_x;nIMtx&2qzdz?{_2LL z_z{tfH|19&k$CV&CtF@7RY~$T)6Hc;euA(YVDjVVgfn?~b}N?!X3w+q`}>SmVeTk$ ziLJ=3@LP&JE@~7}jomanh2?l5%`e1x=FutvQwajvG}1kjpEqWpzcw2~wK*82HDj#S z!a$ivx~-V5Ex;UYA?ERVk=6$J{9(~3YsRLVo6v^^+NI$clv9~ zWKr|%Ea@&$6g@9CQLHF|m~TR`l2RHwA8z?-Av7eAK+~G=;Sfp+4T>$C7i5W%fDh5f9j`|dgSoO_@D{QI}x0UX6W4Q&GZ zJik_4u~w}>){Aq#tkrD)YQt{W8qxwg)SIGXxwYcur4_pp3Z$29t17Uk6uoMM(kYgt zd(W=8oHmO!#3qreYz(hZz zyaol_9g8Bp;uT-IVL9||t3K9&_XLi%LYh@O2>nJS^n8;H~b^aSCG^P754-R~H#Lql(cICOXD3q2a7R-`1zD z_+G^h0t1scC(v1G_&#f#ll9o#DFr)aU>X+$3>sDm<*F6hlTmq7`FRbW{fE&tx@Y+t zGHLi+Ah$L8x-wKLu*1370RgeV5@KmMa)NjiPt*yF1F$hct57&iUTOJtIDY-Ppq?fxYYb)`-!@y@A3r^t?u& zTAJAR6L$WBgV}*54i}mzJVCnjl;`&IDls`DDJY~v5yt|*htY#kA{7~Nj1ebT&*>KA zfdsk8Q@q{pXw1P7wgkbCax=~3BT<3RnLN#%V#4GHbiTw0t339KOpagb{T|wI6Q2zK zicgz3{{$VgWHJh!7td=<6cwYtRm^ejD7V@R=_W33c%&kM z>vVd)MWyxxw_ja&Z{_-qvM6DO5@8-qPqN%9(PNd#oZ~6`Yh1+o$H}GW( z)0xP^DnnI$y+hA%^EJ9&V&-P{)(d?7N>Lwb;?9i?X4$ByyKIXZaU}n}Rw6cg;uPyv z^rA`wM8tt3&_itA&@I?;`E}38O%8 zH?;Rg1K$%~B)QX$T@M*jkEAD~#|&DfQSFe}_4~p=5_2YWm<-8EwWDL6q4ZxV4P=p1 zq3H}57EN42ieaHCJ@IVlc13W=yACm2Z2CR!ba)_@J#}i)v80Adf3W|@Xo$P!3hptm z2C)o=o+^Fa#2VHaGDjl1s26w8Fo?_z6Prj=*s<^Qb!;(g%(nDboddsXpny3QSu$}G zWd?)h>`ISEq93Pyt)ohLXS4j?&)%pf25M0{ZZWLQf?kR+;z2ZnxXrMn-hwTCd;j^b z3x;ev;=Q*mKA4WkX#2yUC!R_*#O%*^QdhCWmRQjXV@Rm6la?TzRzd#^SuOIa`@A)Q zVVxuUsyxBMN9509=o0=XlqyI@x*J&#nfrK7T|!=h88t{H5)NZ`&7JPyaf diff --git a/bin/org/javasim/examples/basic/Breaks.class b/bin/org/javasim/examples/basic/Breaks.class deleted file mode 100644 index aa51dba07c7d27b267874019af76e26d27005719..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1579 zcmah}ds9Wlv}&!xsLRGhWM7O3*~LAs$>|= zbXxlXxvBce`!!W`y=vBovkW~Ob?K3pL)m)Or)q)pyhc5cg?(Rohsq&eY?mQ&UDZ@D z&k!1)$T5T$-GYoGgbz64NLcvrtujuG7)g&&+4PH~cUnvwy%^9gK4Rz|Us{^T#lY|} zM>isov}zee(!Zn)r|-^lScqtDm?Mf9LvKda%>jLKp;=;uL?9<1-Z&lxUu z;{R5db>WmK=WNNXb9{j>3F38zu{Ts2uVnwKmEVQPO5xgm6IM#Kl-9>dI3tF?maZfiR(Vk3gtsAk$ku`d! z;d!zawDc+5=g8>>#f3v7E&{m_XgA+*>}bc)*J|zKTaNE^rg578s;ZH3!NT`6Zk-kW zzjVt-j;!nLv+$5%u+wNu`hoC*4vRcPpI+~za+9|={=1-H#g3|bvVm~Q>!RMC*Lc=# zc#d2lT&U#M|G<=XgJH@yL<4Y+Lb3KL(BBoE>_Gp~uF{2%Q5I0~9liQJldTF5&_%(>Y37-ttS@3nbCd zzmCb~=#|d#=VJu+?>O7UrB$1lbHp@p`3aIuTruahCzxwu;WtF>Fa@?-*S9V?PjSl_ z+@WVfk1#-jk?;P2O{ae_Nt5nz)vMVU`ituq*;jU2%hsxd{HtHfQy9A>dd=Njf|)NbGb(LF4{A#IsP+{G$< z+(AITe!_;qW`Mdv^|!G};2~MB5k>{lo<}tFHzq@q-LG_SbbIL7TePrGpU_ZBGV4O| EU$P--KmY&$ diff --git a/bin/org/javasim/examples/basic/Job.class b/bin/org/javasim/examples/basic/Job.class deleted file mode 100644 index e80cea0906b298189bd1c5c866b768c96a4a48a3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1224 zcmah|+foxj5IqASn}p%2;Vwi#E>Q`hfRcbB0W>617>WnpCd-&CZg%7DhQd$5AK)1f zw0!Ub{06^8?b)O#^dVNNGCh4c-KXd5k6+)u1DL~>h9-t#+bJdv#gTB0azY-9a>bNx zqCi(Yk+BOJ0t}rho-l<~Ol%hprS38Cx6-ZHmMeFSvSeUshSpWbF^+^;^8{0dWq2zL z%~R8R41qQKKt|9E&JjX542E`&76c>cM7M@6hUm>n@_I=gR88q{+`?@F*Q<^rEw2Vn zm}v#k!=WJkRHM!`TylC(ahu|pMw}tMYkR^Z zze@|xsK^73hnS&Tj$ynJSe-l(nZ=xjN5r}Tk$N`AV?`xWaco_>u3;5b`8>yha<>`o zc11eEGi*zkD)N-$8Nv)9p?f3*PijaqjNELLH_BDhFIhjxh~zz?zt4$E z9VPURl6%@=?iP39|_#INTvQs zc~HWQ(CsGzeqJvA1+C4gc>5*V;$P8miRd|cuW%O z8&6KqqnMWT9+4KmyG3v8TGOpOh+`x{Au6GShT{pP$@TW`+r+Rx7X0S!VJ AYybcN diff --git a/bin/org/javasim/examples/basic/List.class b/bin/org/javasim/examples/basic/List.class deleted file mode 100644 index 0e64a3bb751a95feb31a486f87e17ceb8ecb6227..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmaJ-yH3ME5S+73OpHl_d6k3?Qg9M2Q5pmVvOoxw{_L#61>1-G2>C4vghasy@KK08 zD|MRLoz*;a_xtz#1K<+JJ{*A)Q_kf=Emfs+Nh_7VWmL(8X)0q~)jm9dffdM16?6HJ zEGVr7ymwQ+3Jl{7{yURgv9h2Q8%{SVZ4*m7V_oQaBH*5#PuY2GW)#51Zip^|E(H1^ zw$QQLUI-uCe2H~I_f4Kq`K*$R1ftlaDx0cOTfRPe^^2|qf+y3IDcx!-3?3V5=)yh@ zLymO$UmTv?z?-o7?G(11`3|$2Rsr-!UkFFy6Fm!qkJcJ7M(`LFW6HJ}dLZocCFB6M M;b0wl$jrgfKP;3}_5c6? diff --git a/bin/org/javasim/examples/basic/Machine.class b/bin/org/javasim/examples/basic/Machine.class deleted file mode 100644 index 1b48f25dda91ed09fa3d09bb9fddddef533dc581..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2085 zcma)7>rxz55dO|y7#M~SNFW4BfCK`&8rEDi24YNP7Xi61K|^j1vj=vg}>_u~M)@*Y_3z-;w3AKs>wb7Nx+@ zOub<_45VEwr!w0m-;-YG+J&rEjR`dSB^hWCyC5J|1&nX~VAJ(Bc$*gJ`w!Bg)TaG4 zLNwfRJvY295F1V>Rw%~(oHP-|NedR*1fs)<6$7UP2LD%9Cfd=VTw9tTaK=I$4eE5( zf`LYLde1^r^>ogHiDrS;8B#P?DXz(2*r$|JSHD) zYvCqFnaML1E$eO8)elxG@@+LPj;gGgvAh13(8YOt*4e;PA$2blm;!i%zU2U zEl+FZ*Oz>Q*5vPKzd!T_r}xmAjP0Q-8Qnv7QtYAUl}0$vXSYW0XQYcbi2-zAkh)9g zwGTnQdU5dME7m>20lbM-EpOu?HsK?nj6zkqgwuRp<}F1AuaLcKXvKA$q1OOz z&})p|Tu9vEFU?;DbC}@N&f*d6*RepvWg@O1B+d_vq!{Ycj6bh2)JmVnnxQn#;t5Yt zd_${VG)9dBx<%NrD1?F4w1J1>FZ3)cNhHYS+7FnYtN|+2kiWv{kjL zg%(&l0zozYFoHvb+>r7{w^(6g%30igiwh(>EtmTb1;{%yp&DI;d0fP)Eul) zz|K!3s?sfFHEd$=WfIZuy7q{f&R4e?Y)1Ztuo0~?Da>tExT|qMLmT^}jEPbJA#6pf zhE9R{GRka)5IRsN-E`}CTIN1r%JQ3@rC~dhUgoq9ErcFvpaSLB{t?7}Jgb4dHcJj=G;L;w zqVZFC&&udHh(l~Vr{K|VOl{jvwBNO}Ufg4sW|}oTC$M1BL64h59R)j`wA=tpjTs0KLTZ_S+>ey9Mv&|6nodq<*Y1K>%zT_ zQqvj z(g>iyjQC0fsTjoYNFfrt4DEyjb5dgHni|jqh5(-Dh_{bet~q2G_uFZuj~B_KB%eWZ z&`#UlDZ@*do{{m{)3Ec#3CA5KYNM4d1zyteGR_E0PZV62Y4^E?gwhqjtK}@E%)D__ z(Gx8N@H(4zBBqBFR66X#n>yZ-{Wv4<%oC>V$%`1ZwJBbq4%KpVNnyggh7L?Zmzk-tEl_bL}Nq$$7?5-ra zT}d*#lH_$I$?B99lAtN8Xr&hOXn#I`Ib4^2P2vU?jAP;cTUdMp^)qh32;M*gpXGd3 z@(FV-!e{k$s#jnw-w|c_2u%+1VoB1$Q5sEQ5sslAX*6&sS0YEfIz-he(CreeD>?6` z9qB$4xrOzS#W%6xp6wY5{!-drM(7Rd{Cr;!0%1>EN6*W%C8K z85zaup)s7Ey8nvWUpS@X|XvHOL!FSXcrM!tYjG-Mr@oN2r@>g`?cXZ)T%D=D;|Ds!juuasUN6bR6 zsKpMk2z_E1ug(?dXOz1|6nn)w>{G1~@rzz+jSA6-i};w0Q6uW{2|i`)4I;?7xI|2s ziDm_~+t{R`N5e)99n-4+!EbjsX+o3zq~SuRM*RH#Y@)LWNOl?!h!k;U3|If(s|Ojv VAr9$b6_D=hmI4y^nkOsp&40U%!7Bg& diff --git a/bin/org/javasim/examples/basic/Main.class b/bin/org/javasim/examples/basic/Main.class deleted file mode 100644 index f0377dfd1d4f0346d49424ad934f02253d45799b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1022 zcmah{T~8B16g|^!*>+t7i-7W3K(H+>i}jnf5JgEyikeiL2;pH`C+)y)x9)Bg-~AIl z`sA}dfYF2>zz^`>_;F_;8WMsJGjs2qJNKM9_a6QFb_k$=6&(?VN!M#yJNymzrDKUb z?sRP7TXk|9)&`et9U4QwO0aC+Zdy<4JE9RV^ps><2Fnc5bf(6jt-7y-fhZCtV(4M$ ztH`!^(sk;>d(P{&U`STn2DfY6lgd8{YC%i-3{#c=&?pjwLv$F1(p!~(bgF?T+s$I8 z7RM!qSiU9fj)4IT>bQK0_i>_$Aq-PoyzX+_UvIWuPpopE*bS!7sJfZJRgCHwIbG_V z9|*_97{=-QZkN;;Jbo-)>lyJ02uyIN7{?^T_zRym#ZpR%ncB+N>1Nm8CQDJ>HZX-5 z9n%a0;ipblFmVmD40=ZuwdwO`vaA`z^16vMGNh8&lSD{MuPaUF>G27qjy%KMxiU9e z)U#^KB?WV^R3jHvrOgZ>8d74gV6aGnZ`(3~g|=JUt)egf319RN z_=1TfAc-XUXyPyMpZH?bGusW}39`xEnLBgOJ?GrrpMSr812BynVfX|_?B<5CWxh09 zR?Uz*X01_`Eu+kB#aM33whSX6(4%e`RkOZfJSlI()qSbO{1VU9= z-*7es!~!?>th(jQ3i#8RRl>~K>r#UsQ5_Lz5eUR|1QAlJUL9eaW2R`;I;FO>L_ z^@h#Jl*Gg9(#^3!I&)f!1-r}!T4ARm8;)hyTVW(%{_WjD9k_-wBJhSQ`#S@#4c z(`VIWRyB5t3IrY7T<3S7mF#x2BIhkN9nE!lQYpqLW%>ER`S@_G?utX@JIE7`oUx0$ z0&fYvW7$LKS#f~wY~%nvdu~A=V;=&H!;Ep3CD4r#oM%Swl%XFNxD(1i5AqT3D#&Pd zA3c$G9}o=e`gfV|6AT1Uyix=kCxeL-U{Me3l6zNl5#=%lJye526lzeRe&WLCqJ`XK z{sckw`*4MK6`{DR_bv7Nn3>Fe!N_}b9U;DUh_UZP?Jj0j+(%Nmu*No;q!qb+ zq(8Hw!+y~9a*995G-9~PUbkqP9)%8X~Z z9|-KJ=8GL#L)jyw$jeYnRQe+lc@kSx;m5z<`QzhcC(Xen^SJ}0JG@PAgdNUz={Yb< z7w)s+L(YB-@uO{B})IZDu2tJL{i VbzKMq{~#VlDlovqDHi%L{U1H%@V@{6 diff --git a/bin/org/javasim/examples/basic/expected_output b/bin/org/javasim/examples/basic/expected_output deleted file mode 100644 index 0f915d6..0000000 --- a/bin/org/javasim/examples/basic/expected_output +++ /dev/null @@ -1,19 +0,0 @@ -Output of Main: - -Total number of jobs present 1080 -Total number of jobs processed 1079 -Total response time of 8999.39 -Average response time = 8.3405 -Probability that machine is working = 0.999933 -Probability that machine has failed = 0 -Average number of jobs present = 1 - -Output of Main -breaks: - -Total number of jobs present 1190 -Total number of jobs processed 1034 -Total response time of 704303 -Average response time = 681.144 -Probability that machine is working = 0.865654 -Probability that machine has failed = 0.133096 -Average number of jobs present = 80.8097 diff --git a/bin/org/javasim/examples/interrupt/Arrivals.class b/bin/org/javasim/examples/interrupt/Arrivals.class deleted file mode 100644 index 06e40e42319acfd61711e868953d490312b91c49..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 925 zcma)4UvCmY5dSTQJvfh+Yej8sRcI@4R!*xAMvaLnHE9ECq#?0y3vAle`$O)IhOgp_ zuRJ$VNNnN<@I&}f)Y%gi6Jxx~?##~4Z{{~M`}ym~PXM-YS4WDW9E3;CYktBb={aJ^ zy}m0VNBXe{!$CiGo`j)1;clcO&9FA>+>+kF<*^L>7h%v9QN)nnQ@APQKzf4WH)b(W z918A5&hD@u_`;7RcUy_+A;a7w>C5;rL%LG0wn^*+Jz+q@c@sKJ2CY(U>zHTQ{I8G( za>y%aCJTl|6X!6;u+WgccsB4lB0S(7ml!TKf-ZO4Je2A@HKyZZNd;B^VE>Qy5dX9% zxX-}q#55fED*Y7`t5{>m9*Ouz&ZLUEL4>ZExQ-0Ljsv%+qr^~}E$c72_JfXrA~sY_ zo2pHR)wYUMHc>&9!JyuI(&w@0C20f_+d;aT!A=ip|_f3=cr)@J@!6594r&2XG_w()46qcA1D|&ehDK!exQl!&( zXwTBANmg}l*%KJ{8FH`66D)jyb(**?(LSFz6p_X{^4P!yvR$Mw1VVu{^;x)t%M_Af z8Rj(fJHjci>Ig;Keh+Jml`*c4U^Yg`&`LMXP}C+^x5v2g_S=_J0%(-Zf}O|$wi3CF z8c9W^M7%+L*XYI~YXNsC;XSP2K2=(w|3N}eQJ}g<1qr@qsVUD6p`JTZ|hM7X~#1!@}LA-oVAuVrh-P;upA29^m2|KVF$MV@7(_ZXKGj>@xi zcpSCKqt-2K#3pr4vBONAyUvz_}U68XcrE+RosX!Bq*YEKS?ijYMPYEMEhGVL~!8;_)+4W z(0w=O-g7w*W`6&^e*m0gKZGZ6Sec2Osy9{ZnWTl9%?qlfE-e|;%&kmyZ9@bC11FM& zDkt(Gn^JBCg7?b23LK>?GVZGEg4HE0*mS%~?HXC$xzwe$R|5XY>4@Fe)tDmq*o@Id z)P+Dl#u_?q+lmoloiC{_>Asm|WS&)4kU)}Fxhh7=Xvdewz`p2OAbP4Alhdts!sxM~ zhR)n0alny2|B=U&8+a2gzn#LhGv8o#(<*@e@C)%!e4^)I@X=Zm#smSQV$9h#Mh}E- RzQi2BHtZ}zcbR$E`v;=?S;GJT diff --git a/bin/org/javasim/examples/interrupt/MachineShop.class b/bin/org/javasim/examples/interrupt/MachineShop.class deleted file mode 100644 index 1bef8a37fc178187e2e7b2bd1bbcd4488d739a90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2405 zcmai0TUQfT7~KQNgfM`3rLC8UR1-u~rM6bkf(TU_Pz*-#(soErVRSMxoeN5>z1!N_ z)(6|);Ipz;!YXU^2lNm1t*iUYBq3DR%EOs+@}2M7=eutB``=a&T@YaDn5xOs=J7Y35elB2A z#YF`>>%p`6MNtS$;cEC$T6TH9?)vL95oi6TG)&_XoA#b=_!G9vDknG8WnDcQp`lc+ z4Kv89xT0XI9L%(-TMOyzvgeDUhFM%?t?a<3Gnw$(u+x`a4s6zUgJ{b6YeUjvUPB&KjQKV_q$`}J2i#y){*t~{M{+tsgTkZUG}+b{2w(umKo}B!|YVj zCe!<~h9~l-UFI$ucu^n4vv%O-#e^ZbZEGDh9h2F@0YWx&)K$_ZnV6?GNu}XVA`N%a zXt?Q7UMSH|uYyk0x)Xu zP`L?*`0Wj!n;~G9z*o_OYuJN1BybabxQ!(C;&7-9KE^)*l_v+eE0k~PFC)1Q7Y{v2 z5Uw{g(;_9L&`)IrN2&nIb?UTG_Qx6q=62v%8E<9QFv#P{GTxn9!zmt5moXfMbY`x( zjQ6KsVtWba21*z|Qo_V4KIji6nU}b{hTPn?>t)<{iG3y9Es?g&7*! zgmMYxt-^l}E%O{Pu9nP;usn}h+GV=<7*Fva+@IkgZ)D!CUv$JxU*92;X2Bk8qagBSaptDEIl*|%j8s6`9C8odNTuobZ(L{Fm)>&Sk{x|aQ{UNQ>$0sW}x zjz$p#_Hyssxp&T-bME`c%Nu|LZ0U$GYzLuZcKIFeOV1QT?)6;JH>DqmFdXzE^NdSh zhsKaoL#E4p$Gm8DMLS|h9!g(EM-1_5t;wJr2e-mN9O(=aNHSzC>5KD$*An3sZ@Ge@ zU;=QKR7Wkk6~}R zx^GS-(y)U;*cK;Jxt3N-*jHjv0l7`<17dU{mnrI0nUopjM16$RUwXfC&L`fnVrP`{Yz7i-j0b>xVt*w{jPO>(;8+UIU{2%>L z{R8cZ=?~~n>NstmyP+6onBvateLLr#bDrm%bN~GNw?6>PVaq~HAngbB+#~r! zhK`$4+tO_{RhV-;t%9K4(z)A#UsYk~2NvQ2$9lCZj@xcZ?f727(~f>B&>yZlt`e9j z_UeT?P|^)^h3%H_DXPk5B|6Fr9GQ1KM_(0)rx!9CoNoCwl|&!jv0=d$=u2ldEDQ;p zd@GYl3}V<^9Y{c6)J8v!2plaso?30YTPj$WTTMndTJ)>3xgi6`?Dr1iy5WQZ**Bv9 zKTZfB?kedChy{ikv_0ehBOAx?u|T4(bk}JFVVZm*g z>@pSijg7N5ayUmxO+7Y-89+L7SO|5v+=nBW>uWJ zC!6I2E+cQ@iomd`(Ogq{^<3p?sFiDD9$zphzpVu(ijmmyS+A_!z498sHG$be5comr zOe%~_rmC`CZ|K?7R$He$KjpHxWnHD}&J*QLCUFC|EZh_rJHVig1r!)u%lK$A>l5j& z-)>l%$Mt+>!vI;b@nrCV?m?65al_>Ky-40Ml~uX~^`uk8z%phv8m zx5+Y9SrVxpW)2FNtut8Bvid_wwxag4@V&rPFMN@De7tGT#W^!}~NT@B!?uX>o%$jOoXs*g-v;{RJbt_;44;cQCn&ndi71EzT5o za6T!2#`z9rN;|kn*)t67;L_;TU0m;AG&(bCi$-mc^Ej4&e2%f~F23r(E_E=#KVIT~ z_1Ql^y`bZMHs)!RIX}QdRHC_tyV2ahCId6jR--XZFj-2@5#AgDT;Q8@k+&~l7FW2+ zb2X3axP~Q;YpnWvDA4K>YFI&o96G$;qBlcLstbCLniza)-zO!rr0*MiOJ5JDHI3ve h^jr9D>ZXPAD~xme3qyn4RoHQN`EQ!6J)~|7@?T6PsuutN diff --git a/bin/org/javasim/examples/interrupt/Queue.class b/bin/org/javasim/examples/interrupt/Queue.class deleted file mode 100644 index 30229315662ce2594cdbe51ccc7b59df6aca1ce8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1300 zcma)5+fEZv6kVqmYKNAahzeN17U)ezP-7H>8d74g#bA*H-=^&e9cX82J5}_>pYTP0 zz!yv;0ZAm$M-#umKk>z=>r5wvH^?M=&e`YewbxpE=I7t9-vG?vMhHHEgx%cKw~UuY z%dG2i$EY`IvZb4rBb&{3!_imUvMoah2=u92dd;vl^(Un*S#|^hRcTZNCiAC&x5dgD^i0W(FnrO!Vu_W?6VbIjyTORlu* zCD~jvN;N4kkhjZ5ZQW>^YVRcjPStD)Or1u{)ka<+vz4nioYyXw=K|59W0bcGM#IAk zzfdL=%{OdFwj>{_NH@nO$<%3WmhBRoXt|xTY&fQEwL%yZ7$FLJA!F+(N#OLo3?tW?3$oYGRt}`ixSK2}<#Z1e+v-=@Vd45A2eAS9BBQGKM`=okA39P@#U} z!snuOxykGal;AO?5z_YI3hydHF<0+f>i01-lm3G7_vk)CY~v7DzZ115pH^`napl4W z+h~$jWcHE#%!&^CVb{x9{xoyw#ZC6QMN@7gg*z^Xp$@voVUYB*tPt=t^>TR)GmOgo zUnHZ zaK1~=fd#s7pA8>!_KWD}E^lWj bL1V2_=X2F{BM|(9SO|&05D#Zr=)>H9{dxXK diff --git a/bin/org/javasim/examples/interrupt/Signaller.class b/bin/org/javasim/examples/interrupt/Signaller.class deleted file mode 100644 index ec3f01b3e37ddfa581239db6040fc2ade8fbf1d2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcma)5TTc@~6#k|yEM1mMLB$J-+}q`{Xc5sOJOCz|qQ;UY@L)156FRuJ>~0PI6n_EF z7%7P){s5o-J?fdY!9s|#$?Taqb1vUG=bP_8zkUPo5Gxu|40%7?v-bH19!b{{2iy%D z5n0lUMHtqD*s91qk2{VCHDnkDTdgb7tvfuHzPIkhGXBWW7HvvbFie(P?V>mo+>NaD zgTVI$nR2I+s7eg&OVX3^GD9Z6R;ZF#^>>AiG&&7vFc{MLLRCXI!}yg#>gYnRa_z{1 zq0c}Y+8KJv(i5-h?v4mI`Hn*f`^vt}ohlEdIyaS>xF#b8^Bnqr^@Iw@xPp5OY>l9X zbx-BLV_*<>8M1pK{*yE*V@)SSLk8}ngWPJqv#Vi*VWhRLOOn0xcXSM6Ocgb*`m|lB zW-*C^hCE^YkM{<*YgBus<_88$Oc4@0s9&MRH=%EfDDuOSf<0qk78aFsMhpU;Ki8*= zY$y><<@&%Nt`!+{Vw5XA9*f~pfKcw z>$Fo}4gDP}Va!q3hBbZO*1Qrr$Vv(c*HIbmt(`lLj&QSVUvYsP-k+`#fDdcIEPg}qi in_vgfN%|6jT%tI=XiLA-Fu$r{f!3nx)HBkju>2b?XA|N8 diff --git a/bin/org/javasim/internal/SimulationProcessCons.class b/bin/org/javasim/internal/SimulationProcessCons.class deleted file mode 100644 index a9c1da739d41c071ed9d6c2dd6fd4fb265313548..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 904 zcmah{T}$IY6g`vHc3Y#}x_<8ZQQz9G7!XlG5u~6jl&+u@e4NHnN77_TQt@Z4pa?$f z57-|io=J-sE0&O%o4Mzld(X}Me}4K0U;~vrEP;9uUOLzEMn<~pXg^k=FFof(cYB_U zb>JU|fvcjZ5%^IaS%I$x>v+v&(FRZS6xE2PpRbZc$)(+JL05gAO_C}2_`Q?0cNph+8J$eC!$Mjl@TN=@ynRF+ikW8MO0O+LZN3MG+4xFF0^$!}pL(tg1y-xIRA+g^wJP70?6<;(A z)kzO$1k<=Lo&>$nRfpQRSsrTY7q5bhgK*vaa8x*p46lvFhoea%4u*S{nF5Mj$N6=} zyup>~kFe`M9~i7XpnR7QzHyx*0odfaMcOtdv4d%zRQfc`B%&0+EXxRHN|@uBg)-)` zFeu}2H@UI;JxYHWSTN#!!d@b1_W=XJGQQ)-2jud5^1+AXMJx@-`z&RdQpVgHU&Z9~ Xki$7j6lVLVS3kMLh3R@ZX?NuXu#dzM diff --git a/bin/org/javasim/internal/SimulationProcessIterator.class b/bin/org/javasim/internal/SimulationProcessIterator.class deleted file mode 100644 index 9feaea32c2e3076b8c7827d8bace6d0723d703a9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 917 zcma)4O>fgc5Pjo>m;|Q{DU?EkOIm0X7sbFeh)X3zCG#N#<-T!N>9&p?*_-~ZB9$U> z;MhZd6k^u65>O%eGCQ+7^WMyxz54n62Y^@T+pq|OB%S%k;#6d6?yFeKG!~IRQuAdb zv`XSnX%fmTJLCtUlhj6)&@%acB;uL>adIp}O{gq%N_ZZWLpw;~Y)GiRRyPVLLCeM}!7JB?fpc&dH3obq#k3B>nuA;BVl_~) z{IHx)Wcpc5B1vcmNhqSRNR^3;%c?$78R13A0j_oA=_x2LSUxuoIg_k)x7YuR?Z&c( z4Lrt{4Y#xqW+4uqpvxTLls7r}hvWZ0Bj2SV+;Q*}n+8BI04)g3krv^}d$B0AYK)R) z8p^lIsOjEl`&yfU`CjPqE-L&{36@z1dlvgPZnLd(bjY#AXVd$JhPQu?=2x`8yoV0FKlt2&&q0fGYRt2nS5t@GJ$5bhegQbJ=Q;oY diff --git a/bin/org/javasim/internal/SimulationProcessList.class b/bin/org/javasim/internal/SimulationProcessList.class deleted file mode 100644 index aaf9bbfa18b7026a5bd55acea06ac821118fa97f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3280 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 diff --git a/bin/org/javasim/simset/Link.class b/bin/org/javasim/simset/Link.class deleted file mode 100644 index a7d926b1e9399343aa14306a321d00259120d1e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2145 zcmbVMOK%%h7(Ek@?RY$i6W4KDnl^1y+GJc}pf5<$v`OlKkV~pI3KYR&Vvpl#98a+) zX%R?(1V|u|00|JVZ@OSXr9LE(Shf;d{tx1OcP6$8jzBDC?(2J;bH4B1-~asOHvrG$ zQXD-R_Ii!g{0)24Zo2Dveoe>E7v1_=9J+=9Imp-S`f7f0<%U!8HRyHcHi!MiUHqnK za37HLiqlxKS89%ibkQr>wPm~E$~xTC{i@p}h~`E~ z!-28!f1y{Vskh-9Omx`95hOMAU3J#IO{Y+E)}6Wt<<^%x4Z~yILMig&%fjGk6UT9a za@pl_(H6P7yGT){lteWpYTq^AF0Ea*Z-xxwRK4Vgcp6Tccm@*`*R2N?ptx_y!Lufw zlVk}dn{z5&gL))i+Dp^fitjWy^}U7gJcSocOm3eqxQ(Wt zAem_s=SB5sWqap>iHowM*A%y?@6DE}o^j3FXq21Vp>98FrVGx#^TdW)7C#}Vrh`mA4(y8Z}*50JLB2gt}TE5GzTn)F~F|4*r4BMkc^ z@g7EoDfihYk9RmnTh0f&I%jt}TV0(G zwVY3fnPVh5Vzs>uasnpECEpPt)=GbroVI1^QMLoQ$LP;l4{^-Oi7cW^MCp>H+`uWu zIzySyq95m|&!mc*4Sd76zyQW*qhVZmYbi=-;Y66~7L5hgC{r1^hsgZ^LvU|l5A)`} zM_g7p{_^eYK~>JPtQU~R9J9{jAPTI@OC1PCTL?z^eu?mcAO<}dGjxJD^*=zI-U;Fr zf+!NiA`@RBh^qv#vEg<{e^a}e%0l#QSR3%<@JvEMvJ8JcbOAp z$XgxCJjYSGv5(!DevG)j1wHbUDu}ds(3NkhxN>7?7{(RJqUcFp)Ci9+7Z2qk{lS%( zRVCgN==V5g*(@^f%gA-&5bVe_D|d^w_c3MNQFiITZYtQF>DZ<1jJk)d8<}ZKG09#7 zR(Q=ze8wGiU4>Aq#OC58*4T$Nc0?VQ;Zdx&dF30lZekUF2fbYrc}_seJ3&rQkd)hy*}^_qa;lCMW!Z1@Ny?O4Gi~%1A0yy4C4GkyzsvXJ zJ>J{*aSR_2{fB&RKf*LV#wC2xQRG6a$OX){nkb6Ma3)Qhe53z~Ish!_mHZ*tHYWas|^ DD(*$m diff --git a/bin/org/javasim/stats/Bucket.class b/bin/org/javasim/stats/Bucket.class deleted file mode 100644 index bdbb571e255686d94c3a249922311644c7dc72cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1811 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 diff --git a/bin/org/javasim/stats/PrecisionHistogram.class b/bin/org/javasim/stats/PrecisionHistogram.class deleted file mode 100644 index d043c25b270dd3b07659163d2543b7f9e1d97feb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4910 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 WMCb2B=O4E~M{*H#-m%&L$$tR#5SWPo diff --git a/bin/org/javasim/stats/StatisticsException.class b/bin/org/javasim/stats/StatisticsException.class deleted file mode 100644 index 828633f9628fff6f415188ae69b319507e4a5bf2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 524 zcma)&&rZTX5Ql#Q1xx`&5EO4}41Y{)qDKrD)I`&GL3>~72G^9*Mr|kUdhN zGF?Kt+42ZhFS?dC(pWCQMxL)B7t*a9Dlua;0p23gKI zu2NXymnFz^Ebz)9XX2b`Pf&cCAuAkh#(-^D*g=WE3UdgnD07tvDjX9*m&t_9w)ZAj b`)O!!^XAM@n^Ow|^Qd8+9efD>JB9iuHfVD2 diff --git a/bin/org/javasim/stats/TimeVariance.class b/bin/org/javasim/stats/TimeVariance.class deleted file mode 100644 index 49165e0fa31c88d00da8d03c9102dd64aaaa1d8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2580 zcma)-ZBr9h6vzJy!9Z97;uEHrMp1!9iMDFB_y8EKR6s413iW9d*0{3C;_e3frk#${ zw|yF4wBthyo^F3C!!GkueLclX?L{^xhjJ^A~eKmP*o9-b!A zq9N;g<@{rF&GhX`-Ve;c&(GTxYr*tvvs$u}NNC73+iZQ;(Du;w{6K@Yq@jZjyg<(L zxu8KW)jZFt1`DQBoxJGiK!b!d1&L*lZ#Y^BhO9vwQmQqa(= zV;8!3(zASvLAs~ysx@1y6fJMwEIRbrJMETCN6F!H^fD1VvV9G?>1N^ao#F1FjuhHOUay9Bs)>?H3>8Ft>dF@-Yc;Uls-MK5hC{+M z@0itce#&vIvgu5C>W1QLSjPYkOR6I}j^Q{dn4V=SB!v|6IGMx=3W_H(XIE;D zDWPt9Zprd}oz>*Y&WN_8C>~GgIE}*!yXy)5wXh6bbAee}nK4%*TAfmri8aeJ%e3n7 z%{7Y_0rz``rWe+!c>AH?(R@nhVOOnSV7IiF10Xxei~u zvC=%yurF>hRgG2VKE{(M#VkbiTNXuF!k+o}HK@icBJ_`R+<~p3zhSh^l_Gy1*IC53 zK*oKMqaAW=*lc%`LJ_WxRXiae_SbTqAEyb6TLkY#Aon6AUqgC)m~(4h$qK#ij8B76 zp@W0$pH|MtHnhlG;I2hxfm%5o)XF)aR!#=4(s3MD{7v&|jH|}A!`MW(v4Nehl<98% zrj_FXByfZWk75ts>7g<9VjrJ)t?G_$Gq^a)8i{rE8AkfkGjKThHR2SX!DwjPBehiM(5eS$HLD&fz0QW8IH3~pk`c#Xan$QX;SDPR*u zX&u=?zRdje0zI#cR+01vMnw3K+r_io1qW zm{PL#QUn7=vSfFLU^INdw+XZibaH|kvrH0H*k|4dKvW= z)wc3n5_3#lD#fYRq->2gf^l?2xNKlv*8UCLmNgTtxoFLDH7Nh{hR%#?@(RIM(E}HK zyiz$lVX^#Jkw)uUN0lz&bf?Z~2Nm39>r0tpr0xqTlcb75YFUvgD^ib}Nqx!ezhd5B zGvj9@_09hvwGxqXP}xR`L#T|9*>!>#B?Eitd?)nhL)5FKRsOq5uE@ diff --git a/bin/org/javasim/stats/Variance.class b/bin/org/javasim/stats/Variance.class deleted file mode 100644 index 2b5244469c4528c85505c5bcfda7741e7a663dfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2727 zcma)8ZF3V<7(KU5yX~?B478LA5>RZL0zqE2;YFYnifusy)goH9$u=xacEe^jP((o# z@a2n+s78N_NOTkWoc$4b1?q1Q5#%|)! zYuYB|(Qh?pTZ?AiV2ygQ7yA|L6Ik0^m|d>8MoGf~93)lSQ9DT!o2k4GJ7~Qot2J;(0IvvLBj>)1U5ILTEQ|S7iCIA!=k@qb49yCO+Aa` zHKUjOt=d{OZbGrhv!u~vts)rEWy`^6P+Mj;E6)dFk-;UDHC&T>aMg9kbd7P_%B%_B#%ieVsKR&d@~XunLQD)j9b#*4_Sn! zbCHP9-rE`~xFfr;;Y16R?`{?JVPhktg^%>g47_T_w8E%Z#(fPBu!Y9~_j11J&uxxm zZO_RW0m$n5HrgdU!dA9HCqDoJ9rCo}(<(mmoaVKcZyDYN@4cxNsHqyX-}usjHN3|C zg~Ny;#qd$A<(L)(<2fYw#sM(BJWQEK7<)9rS8ed+;Ts|? z_}IWu>JgH$Uy$T|fWMdIZ%Gb5unY1Q%RjIm#vd|iXT+9Mq;wkFaVC;xC`>ct$BOOD z#A74OH|skD3`)!&pwa7*`1e1eEB;VE{)y4n6j?%_rwg-@6oZizF?6hz?!1ECVUFW; zP&%*vjy;K2YZ&us2h~)4cjrm_vX2+IU3Z3S8gBD|3-L-J=Yzz1jAL_&6Dv3=+17BX zhBug?K5;gfc(XCV(qx;ZNe~Dyu@P7KuSk)fs!~MM!A5y5P;9fE-u6p=my)`;I{6rL zbE7MGclt3d&Fxsh`!lJXHRuOoJ8H=H#eQW>Ahq9*_qe)B`))AnO>D+3KjXdtE6hk# z6mZ3tyMg?!5+T8MTO!9!u2aa<@=f45+Qw{xF|uXjqpayb4R(t3oFRQ~fbl*>F)`R9JszW5KSFB}N~ diff --git a/bin/org/javasim/streams/Draw.class b/bin/org/javasim/streams/Draw.class deleted file mode 100644 index 8ad8e49e8b1e85d82eea3022f9ddbec6c23adb0c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1025 zcmaiy(QXn!6o&sPPzr9L&`PmVZLPHnYPYuNjZHO{svvDIP>kL!bi}Q|l4YyL7xBVZ z=#7b$L=zvthcf;%tfUuh49U!yGv}Od{(t%X=f^Jq>$n%im_XL`TGpZc-tIdctM7Z# z?)0saXMczyEHI^RthU{4S^JGc+4KcOUtp+X1*T9l)&PDC&!UQTD46JM9dQB#UOCeKm_9|nl%u` zgg~(Fi^RX#=zTo4NCR(XGPqaL+p;11RWVjM9PttZg?$(nCB-|gDHKybX~ z9(hgq*in|ml)_at6N~gN#DB&Zf3#9ZG?IImH!;MyUf}5^?NxQNg#nDhPb6O@k^`hp zFjH7LLFTJ&%yLb$5m@HBf)q?-kjEuvG6b+4bGXc1MLA;V1tIeRq`{2p&YptI4{+r? z${MTJN!;MHqNXh9M`lNqY(U{mO1;Kg#ajw^pI~UIxzoH%I5R%L_4AmUWNuN-1L}CF znME20a{ejHjhMNBscu*3h0>OzA0~|!DBvbNxy78a`nI-tPshM?;TvYY!{V0t`~{Kl nap;(ZA<6&}TI5rH|1vFprXOK&1lxi~Z0K5%VzS6^40rzmxnHQ` diff --git a/bin/org/javasim/streams/ErlangStream.class b/bin/org/javasim/streams/ErlangStream.class deleted file mode 100644 index 993e80650d09e28f5d1b75685c79109f66c682e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1401 zcmah}%Wl(95IxsU;?#9pTG|jEfdYjj<`Lenl0rmyv`RrVP_Y4IQq!6|j2ssbD;6Lj zHf-3jV#N|6Q9vyC0CxNZ5)1eNDCgdoz=DcMiRa##Idjg;#GihC_y}Mh#tmo!qkb@7 zxaHh&+FrBJ4g=R|whO0&hSQp_s*{1(3Q;poYtCPT@*#w(7bpYE(`|R?oZ}c9aR2r|;F=+p>Xe0|hoh4yxe!g~#U^DxobBT0laz?Z?IU)7reE5tp!bC5BEuJ1Q%HVU%euq9gyM$GCehEYN8yasg z3BL`f4YR>*9s-Y-*pNxM=YC|JJ63^Sc~1*iUQWqZ_`6eq(0;(sg?xP-WxR%CzW_xS=dl0) diff --git a/bin/org/javasim/streams/ExponentialStream.class b/bin/org/javasim/streams/ExponentialStream.class deleted file mode 100644 index d8d546a9590fb054a3bd0896f4b123b5ba27e625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1079 zcmZ{i&2G~`6ot>kZk(o0e@Q5XLMb#&Txg((wg^-S^#@WVAP9=sy6KRZCU%v$&2`Xh&BOh`mwxEE?V1i*Fa>5#D}CzvyFn+a5-_XM^##O+K=PjFd*K>mg^gmJ zpY>o@reR>nh6P)|C=~015E!;GfTX}k#q;H(gU*iZK67{4QeeCiG~9OG?Rsh-2hFhM z^#tZCr_r1Mze|{oz(8T6T&$<*ma}mdlLFR(@4X1R%#nk*cGN;mwq+yap)wy&AX5w7 z#$MIkkKHW_ZEq_n1D8}IGfG@V*m3niP0C#!+@^kIJ>CsAWf-+3kls9O$ox*jIB~{h5UE4ufq%#`@XZWuZo?+6jf|wah@v^7g#xp z#4$xo3&Icrq*H{`G2sXDsqXVm&deo`a8Y+|ET{UEDUnV6k8+*U+e8Kr$nX%8{LZ1Q zDc5ut`95X7PnnM?>B*jEbvJoj;VQ|K5qV0Jk1KKxRg;@$%zl+V3HpHb32GEH|0;D@ jfMMq|GOyKqzror2$Vha9>Sll^n$3W>sy6Wa%S8=$I diff --git a/bin/org/javasim/streams/HyperExponentialStream.class b/bin/org/javasim/streams/HyperExponentialStream.class deleted file mode 100644 index f02e1f47abf6d06d6dd9f62382506821a0be1871..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1566 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 b=)@kAuTV diff --git a/bin/org/javasim/tests/stats/HistogramUnitTest.class b/bin/org/javasim/tests/stats/HistogramUnitTest.class deleted file mode 100644 index 2735cf060984dc5b746443a6db06baad9c61a7ec..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1264 zcmeHH!EO^V5PeS5Y`O$e0xg9CGPgvau7o%sf{+jj0%-*jO)GJ9HtxpJuD#ga2!4Sd zLIMfyd=z5b0y!jyazx@Xp7A_C&+dD>-+z4m3gA9&MQAV#jLnm|SO}-e#7pO0;=G{v zLOE}8E6O9S{FoXMnhe_kniN9k$?M5nW}cz-SP|k0!$yB_%+P#hrZU17LwAWCS!-+? z7a03^q^)$OSjZ{QOj)Tycx5!NteF(DbdPwvHJ(YX%F0;JX}W`XP5e9)S{u(NlK(#c zH$a+y4FmUv3+_Ku@{FsLerBdzI47+iy{kpx`i0T?Js#qKE5~a+l_yHm^e4u0Pm_k@ zeC2KZ1B5Z!xY)raE-~!%)1_L6-YT6BgPPrxp7m8-PNW?R5{RLfnoJbO!m3dJ+HCrn zatwFVbGvCsP6>8nh)3@;Sp^fg2)hhdmV^B1FzmmnwO6HlsTayAy7_6a!>M=Z;#L|Q zI&9+xV-L^cu>XEobu3A7Xlk3u=PC%jyMj0f%HR&@Q>Q-&(4cG+Es7CU4``Rs8h=6i zZ7=?W&bL!cmtw#Gd)TJfIYZ$xdQ_3#)ZM^U%9~W};2LECzenpT@AWmjx7YIS)AmGj0^Bbj)H%2P#%XACQ?og;?w3zNzSYYdG!wqvcaRa{}E z?}yq-XR?V*d1CUh%7j-&^RYGkOy=$hudVfllB;}dtmhedj|VGS^B?LBe+VY~10>@j|EaSZVr#V`I4|wSj`4 z{aKgCr?lVY6qZlfvj4dY>Z_rOt97j68pCF*J1_DBZ@PT!fnp*XJ7k>@aMtf4@_Yb`BDXIY@BVJ zd!d%`0Q8*D0|k_5wu%bHh_c7D%4n>8LG^vJ_6hZGQ%r+mzyMoVr&yn%uz@CJ7e4sf@Gh~dE4q%{%~;Z)Z0(s|c%UQm2x zWvrYs`k8XxBvxd{TKOI!N+>XFhMHC?bkcg+AIaD=6dx)=JYraD?42+ao|u6wVS}MI z$9AkWwv0tE0ca`23$BNt?#_eMd})<(MgksxW|>_xgN+r2}c^b;8BT@#D+L|7H_pNj=QRF2`Wdv+JL$zj2-43*BiSdN2vTnRTA zuFVzw-eK5zoolZ$`CL!P)+FI^u+h|Wq@dUh&Tf}+n?=drIP<@cF3SC@b?LdgeR>J6 z?5vb+51+z%a%`=Fn{sb*O>&F=GQokq z`=i7!t6G?Sn9@gIzT`_zP7e7_zHi?@e*y3icO%poVq+)0nV1Wwik_FwyPorc;+sln zuX1^;l^@c2ggV1^K=yK>C%xCBnM^%H+8RzJS4C;8=OpfMRuMl>h1SONk>tP5{|%7z zuVCQbaKZh@QZBd(>8B>+W1;f+fGfuMds~rv3;9ydl~Z)_vtXYy zuhG4YBsjX?#BIjZMI8CxKWp$L)$YhtHkB`^t&oMzf1|@tN$i7K2{kC7Mzc*cC`Ob$ zqE$v?>lDp*-PR|xzn)<_6axm>#WuzE0)?ySQbzuu-3?r)d7ZKy+@x8+-=gtP-rW_v N_g3=m(fJzg`~cDJohSeR diff --git a/bin/org/javasim/tests/stats/VarianceUnitTest.class b/bin/org/javasim/tests/stats/VarianceUnitTest.class deleted file mode 100644 index 64ec7af493b10bda50c6656645f35487e3cece17..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1429 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 z�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 N{s(jx8U6s!2LL5sE)W0! literal 0 HcmV?d00001 From baefc9c06eca7acbd596c3d95947bcfd990481cf Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 5 Mar 2015 15:22:34 +0000 Subject: [PATCH 011/230] Changed location of downloads --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c5b8ac0..09a616a 100644 --- a/README.md +++ b/README.md @@ -10,6 +10,6 @@ The system also comes with complete examples and test routines which illustrate Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under their own licence. However, in late 2007 the University decided that the code can be released into open source under LGPL. -We are in the process of providing new releases of JavaSim and C++SIM. In the meantime, if you want the old versions then you can find C++SIM 1.7.4 GA and JavaSim 0.3 GA available from our downloads repository. +We are in the process of providing new releases of JavaSim and C++SIM. In the meantime, if you want the old versions then you can find C++SIM 1.7.4 GA and JavaSim 0.3 GA available from distributions directory. In 2015 we moved from Codehaus. From 79ef6502b45913de1db31677f4b082784edbc999 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 13 Mar 2015 16:00:11 +0000 Subject: [PATCH 012/230] Updated README about issue tracking. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 09a616a..80db570 100644 --- a/README.md +++ b/README.md @@ -12,4 +12,4 @@ Prior to 2007 both C++SIM and JavaSim were freely available in source and binary We are in the process of providing new releases of JavaSim and C++SIM. In the meantime, if you want the old versions then you can find C++SIM 1.7.4 GA and JavaSim 0.3 GA available from distributions directory. -In 2015 we moved from Codehaus. +In 2015 we moved from Codehaus. All JIRAs from there were also migrated to github issues. \ No newline at end of file From 0db340c8c5edef580cd827c2e4f0901eef9b27ee Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 13 Mar 2015 16:05:42 +0000 Subject: [PATCH 013/230] Added README.md --- distributions/README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 distributions/README.md diff --git a/distributions/README.md b/distributions/README.md new file mode 100644 index 0000000..a7be847 --- /dev/null +++ b/distributions/README.md @@ -0,0 +1,3 @@ +Pre-build distributions. + +Currently only 0.3GA. \ No newline at end of file From d4067d16b7c33fe1951c81ed7fe53a30820ad66e Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 17 Mar 2015 14:57:40 +0000 Subject: [PATCH 014/230] added --- LICENCE | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 LICENCE diff --git a/LICENCE b/LICENCE new file mode 100644 index 0000000..7f568f8 --- /dev/null +++ b/LICENCE @@ -0,0 +1,19 @@ +/* + * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne + * and others contributors as indicated + * by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * (C) 1990-2008, + */ \ No newline at end of file From a39957dbbdd77a99aab814b24c558d83cac3f4b7 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 23 Jun 2015 01:48:53 +0100 Subject: [PATCH 015/230] Added confidence implementation --- src/main/java/org/javasim/stats/Variance.java | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/javasim/stats/Variance.java b/src/main/java/org/javasim/stats/Variance.java index 4f612c7..65ab7e4 100644 --- a/src/main/java/org/javasim/stats/Variance.java +++ b/src/main/java/org/javasim/stats/Variance.java @@ -84,12 +84,16 @@ public double stdDev () /** * Returns the confidence. + * + * Confidence should be between 0 and 0.9999 */ - public double confidence (double value) + public double confidence (double value) throws IllegalArgumentException { - System.out.println("Variance::confidence not implemented yet."); - return 0.0; + if ((value > 1) || (value < 0)) + throw new IllegalArgumentException(); + + return mean() + (1+value)*stdDev(); } /** From a0f81ab489536ac75b658e6051513be44496d380 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 26 Jun 2015 20:50:12 +0100 Subject: [PATCH 016/230] Added some build rules --- README.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 80db570..5222c40 100644 --- a/README.md +++ b/README.md @@ -12,4 +12,18 @@ Prior to 2007 both C++SIM and JavaSim were freely available in source and binary We are in the process of providing new releases of JavaSim and C++SIM. In the meantime, if you want the old versions then you can find C++SIM 1.7.4 GA and JavaSim 0.3 GA available from distributions directory. -In 2015 we moved from Codehaus. All JIRAs from there were also migrated to github issues. \ No newline at end of file +In 2015 we moved from Codehaus. All JIRAs from there were also migrated to github issues. + +---- + +To build: + +mvn compile + +Run tests and create installation: + +mvn install + +To cleanup: + +mvn clean \ No newline at end of file From cb02c35f561a0e18a94f9456b89e59350b046283 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 26 Jun 2015 20:50:45 +0100 Subject: [PATCH 017/230] Fixed broken builds for unit tests --- .../java/org/javasim/tests/stats/BucketUnitTest.java | 2 +- .../org/javasim/tests/stats/HistogramUnitTest.java | 4 ++-- .../java/org/javasim/tests/stats/MeanUnitTest.java | 4 ++-- .../tests/stats/PrecisionHistogramUnitTest.java | 4 ++-- .../javasim/tests/stats/SimpleHistogramUnitTest.java | 10 +++++----- .../org/javasim/tests/stats/TimeVarianceUnitTest.java | 4 ++-- .../java/org/javasim/tests/stats/VarianceUnitTest.java | 4 ++-- 7 files changed, 16 insertions(+), 16 deletions(-) diff --git a/src/test/java/org/javasim/tests/stats/BucketUnitTest.java b/src/test/java/org/javasim/tests/stats/BucketUnitTest.java index 82d2b15..a892a55 100644 --- a/src/test/java/org/javasim/tests/stats/BucketUnitTest.java +++ b/src/test/java/org/javasim/tests/stats/BucketUnitTest.java @@ -33,7 +33,7 @@ public void test () throws Exception Bucket b1 = new Bucket(20.0); Bucket b2 = new Bucket(20.0, 1000); - assertEquals(b2.size(), 1000); + assertEquals(b2.size(), (long) 1000); assertTrue(b1.equals(b2.name())); diff --git a/src/test/java/org/javasim/tests/stats/HistogramUnitTest.java b/src/test/java/org/javasim/tests/stats/HistogramUnitTest.java index 033085f..4532395 100644 --- a/src/test/java/org/javasim/tests/stats/HistogramUnitTest.java +++ b/src/test/java/org/javasim/tests/stats/HistogramUnitTest.java @@ -37,13 +37,13 @@ public void test () throws Exception assertEquals(hist.numberOfBuckets(), (long) 2); - hist.saveState("build/test/hist.temp"); + hist.saveState("target/hist.temp"); hist.reset(); assertEquals(hist.numberOfBuckets(), (long) 0); - hist.restoreState("build/test/hist.temp"); + hist.restoreState("target/hist.temp"); assertEquals(hist.numberOfBuckets(), (long) 2); } diff --git a/src/test/java/org/javasim/tests/stats/MeanUnitTest.java b/src/test/java/org/javasim/tests/stats/MeanUnitTest.java index 00827d6..54e45bb 100644 --- a/src/test/java/org/javasim/tests/stats/MeanUnitTest.java +++ b/src/test/java/org/javasim/tests/stats/MeanUnitTest.java @@ -44,7 +44,7 @@ public void test () throws Exception assertTrue(mn.sum() == MAX+MIN); assertTrue(mn.mean() == (MAX+MIN)/2); - mn.saveState("build/test/mean.tmp"); + mn.saveState("target/mean.tmp"); mn.reset(); @@ -52,7 +52,7 @@ public void test () throws Exception Mean theMean = new Mean(); - theMean.restoreState("build/test/mean.tmp"); + theMean.restoreState("target/mean.tmp"); assertTrue(theMean.max() == MAX); } diff --git a/src/test/java/org/javasim/tests/stats/PrecisionHistogramUnitTest.java b/src/test/java/org/javasim/tests/stats/PrecisionHistogramUnitTest.java index c0cf0a9..706973f 100644 --- a/src/test/java/org/javasim/tests/stats/PrecisionHistogramUnitTest.java +++ b/src/test/java/org/javasim/tests/stats/PrecisionHistogramUnitTest.java @@ -40,13 +40,13 @@ public void test () throws Exception assertTrue(hist.sizeByIndex(0) == 1.0); assertTrue(hist.sizeByName(100.0) == 1.0); - hist.saveState("build/test/hist.temp"); + hist.saveState("target/hist.temp"); hist.reset(); assertEquals(hist.numberOfBuckets(), (long) 0); - hist.restoreState("build/test/hist.temp"); + hist.restoreState("target/hist.temp"); assertEquals(hist.numberOfBuckets(), (long) 2); } diff --git a/src/test/java/org/javasim/tests/stats/SimpleHistogramUnitTest.java b/src/test/java/org/javasim/tests/stats/SimpleHistogramUnitTest.java index 0f45e37..b201803 100644 --- a/src/test/java/org/javasim/tests/stats/SimpleHistogramUnitTest.java +++ b/src/test/java/org/javasim/tests/stats/SimpleHistogramUnitTest.java @@ -35,21 +35,21 @@ public void test () throws Exception hist.setValue(10.0); hist.setValue(100.0); - assertEquals(hist.numberOfBuckets(), 20); + assertEquals(hist.numberOfBuckets(), (long) 20); assertTrue(hist.sizeByName(10.0) == 1.0); hist.print(); - hist.saveState("build/test/hist.temp"); + hist.saveState("target/hist.temp"); hist.reset(); - assertEquals(hist.numberOfBuckets(), 20); + assertEquals(hist.numberOfBuckets(), (long) 20); - hist.restoreState("build/test/hist.temp"); + hist.restoreState("target/hist.temp"); - assertEquals(hist.numberOfBuckets(), 20); + assertEquals(hist.numberOfBuckets(), (long) 20); hist = new SimpleHistogram(10.0, 1000.0, 4.0); diff --git a/src/test/java/org/javasim/tests/stats/TimeVarianceUnitTest.java b/src/test/java/org/javasim/tests/stats/TimeVarianceUnitTest.java index 4fddc69..a7f49c7 100644 --- a/src/test/java/org/javasim/tests/stats/TimeVarianceUnitTest.java +++ b/src/test/java/org/javasim/tests/stats/TimeVarianceUnitTest.java @@ -46,13 +46,13 @@ public void test () throws Exception assertTrue(v > 0.0); assertTrue(vn.stdDev() == Math.sqrt(vn.variance())); - vn.saveState("build/test/variance.temp"); + vn.saveState("target/variance.temp"); vn.reset(); assertTrue(vn.variance() == 0.0); - vn.restoreState("build/test/variance.temp"); + vn.restoreState("target/variance.temp"); assertTrue(v == vn.variance()); } diff --git a/src/test/java/org/javasim/tests/stats/VarianceUnitTest.java b/src/test/java/org/javasim/tests/stats/VarianceUnitTest.java index 92e6539..eded14e 100644 --- a/src/test/java/org/javasim/tests/stats/VarianceUnitTest.java +++ b/src/test/java/org/javasim/tests/stats/VarianceUnitTest.java @@ -40,13 +40,13 @@ public void test () throws Exception assertTrue(v > 0.0); assertTrue(vn.stdDev() == Math.sqrt(vn.variance())); - vn.saveState("build/test/variance.temp"); + vn.saveState("target/variance.temp"); vn.reset(); assertTrue(vn.variance() == 0.0); - vn.restoreState("build/test/variance.temp"); + vn.restoreState("target/variance.temp"); assertTrue(v == vn.variance()); } From 228648cf552f24628b46b65eadce83accdb350a2 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 26 Jun 2015 20:53:21 +0100 Subject: [PATCH 018/230] Removed ant support https://github.com/nmcl/JavaSim/issues/28 --- build.xml | 198 ------------------------------------------------------ 1 file changed, 198 deletions(-) delete mode 100644 build.xml diff --git a/build.xml b/build.xml deleted file mode 100644 index 7d3fbb4..0000000 --- a/build.xml +++ /dev/null @@ -1,198 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - From 20bb96bcaea5fc38d7a98f6bc968522bc98abab9 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 8 Jul 2015 16:41:52 +0100 Subject: [PATCH 019/230] Minor syntax updates. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 5222c40..2915b71 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ The system also comes with complete examples and test routines which illustrate Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under their own licence. However, in late 2007 the University decided that the code can be released into open source under LGPL. -We are in the process of providing new releases of JavaSim and C++SIM. In the meantime, if you want the old versions then you can find C++SIM 1.7.4 GA and JavaSim 0.3 GA available from distributions directory. +We are in the process of providing new releases of JavaSim and C++SIM. In the meantime, if you want the old versions then you can find C++SIM 1.7.4 GA and JavaSim 0.3 GA available from the relevant distributions directory. In 2015 we moved from Codehaus. All JIRAs from there were also migrated to github issues. @@ -26,4 +26,4 @@ mvn install To cleanup: -mvn clean \ No newline at end of file +mvn clean From 4bb9c97b9ec45deaf0d685f501e8a1fdb9b55b23 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 10 Jul 2015 11:49:57 +0100 Subject: [PATCH 020/230] Moving examples into tests https://github.com/nmcl/JavaSim/issues/29 --- src/main/java/org/javasim/Scheduler.java | 2 +- .../org/javasim/examples/basic/Arrivals.java | 0 .../examples/basic/BasicExampleUnitTest.java | 65 +++++++++++++++++++ .../org/javasim/examples/basic/Breaks.java | 0 .../java/org/javasim/examples/basic/Job.java | 0 .../org/javasim/examples/basic/Machine.java | 0 .../javasim/examples/basic/MachineShop.java | 9 +++ .../java/org/javasim/examples/basic/Main.java | 0 .../org/javasim/examples/basic/Queue.java | 0 .../javasim/examples/basic/expected_output | 0 10 files changed, 75 insertions(+), 1 deletion(-) rename src/{examples => test}/java/org/javasim/examples/basic/Arrivals.java (100%) create mode 100644 src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java rename src/{examples => test}/java/org/javasim/examples/basic/Breaks.java (100%) rename src/{examples => test}/java/org/javasim/examples/basic/Job.java (100%) rename src/{examples => test}/java/org/javasim/examples/basic/Machine.java (100%) rename src/{examples => test}/java/org/javasim/examples/basic/MachineShop.java (92%) rename src/{examples => test}/java/org/javasim/examples/basic/Main.java (100%) rename src/{examples => test}/java/org/javasim/examples/basic/Queue.java (100%) rename src/{examples => test}/java/org/javasim/examples/basic/expected_output (100%) diff --git a/src/main/java/org/javasim/Scheduler.java b/src/main/java/org/javasim/Scheduler.java index 59deaec..7086517 100644 --- a/src/main/java/org/javasim/Scheduler.java +++ b/src/main/java/org/javasim/Scheduler.java @@ -80,13 +80,13 @@ public static synchronized void reset () throws SimulationException // set resetting process to idle Scheduler.unschedule(tmp); // remove from queue - tmp.deactivate(); do { try { tmp = Scheduler.ReadyQueue.remove(); + tmp.deactivate(); } catch (NoSuchElementException e) { diff --git a/src/examples/java/org/javasim/examples/basic/Arrivals.java b/src/test/java/org/javasim/examples/basic/Arrivals.java similarity index 100% rename from src/examples/java/org/javasim/examples/basic/Arrivals.java rename to src/test/java/org/javasim/examples/basic/Arrivals.java diff --git a/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java b/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java new file mode 100644 index 0000000..410e4f2 --- /dev/null +++ b/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java @@ -0,0 +1,65 @@ +/* + * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne + * and others contributors as indicated + * by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * (C) 1990-2008, + */ + +package org.javasim.examples.basic; + +import org.javasim.Scheduler; +import org.junit.Test; + +import static org.junit.Assert.*; + +public class BasicExampleUnitTest +{ + @Test + public void testNoBreaks () + { + boolean isBreaks = false; + + MachineShop m = new MachineShop(isBreaks); + + m.await(); + + try + { + Scheduler.reset(); + } + catch (final Throwable ex) + { + } + } + /* + @Test + public void testBreaks () + { + boolean isBreaks = true; + + MachineShop m = new MachineShop(isBreaks); + + m.await(); + + try + { + Scheduler.reset(); + } + catch (final Throwable ex) + { + } + }*/ +} diff --git a/src/examples/java/org/javasim/examples/basic/Breaks.java b/src/test/java/org/javasim/examples/basic/Breaks.java similarity index 100% rename from src/examples/java/org/javasim/examples/basic/Breaks.java rename to src/test/java/org/javasim/examples/basic/Breaks.java diff --git a/src/examples/java/org/javasim/examples/basic/Job.java b/src/test/java/org/javasim/examples/basic/Job.java similarity index 100% rename from src/examples/java/org/javasim/examples/basic/Job.java rename to src/test/java/org/javasim/examples/basic/Job.java diff --git a/src/examples/java/org/javasim/examples/basic/Machine.java b/src/test/java/org/javasim/examples/basic/Machine.java similarity index 100% rename from src/examples/java/org/javasim/examples/basic/Machine.java rename to src/test/java/org/javasim/examples/basic/Machine.java diff --git a/src/examples/java/org/javasim/examples/basic/MachineShop.java b/src/test/java/org/javasim/examples/basic/MachineShop.java similarity index 92% rename from src/examples/java/org/javasim/examples/basic/MachineShop.java rename to src/test/java/org/javasim/examples/basic/MachineShop.java index 3354257..9e10462 100644 --- a/src/examples/java/org/javasim/examples/basic/MachineShop.java +++ b/src/test/java/org/javasim/examples/basic/MachineShop.java @@ -30,6 +30,14 @@ public class MachineShop extends SimulationProcess public MachineShop(boolean isBreaks) { useBreaks = isBreaks; + + TotalResponseTime = 0.0; + TotalJobs = 0; + ProcessedJobs = 0; + JobsInQueue = 0; + CheckFreq = 0; + MachineActiveTime = 0.0; + MachineFailedTime = 0.0; } public void run () @@ -54,6 +62,7 @@ public void run () while (MachineShop.ProcessedJobs < 1000) hold(1000); + System.out.println("Current time "+currentTime()); System.out.println("Total number of jobs present " + TotalJobs); System.out.println("Total number of jobs processed " + ProcessedJobs); diff --git a/src/examples/java/org/javasim/examples/basic/Main.java b/src/test/java/org/javasim/examples/basic/Main.java similarity index 100% rename from src/examples/java/org/javasim/examples/basic/Main.java rename to src/test/java/org/javasim/examples/basic/Main.java diff --git a/src/examples/java/org/javasim/examples/basic/Queue.java b/src/test/java/org/javasim/examples/basic/Queue.java similarity index 100% rename from src/examples/java/org/javasim/examples/basic/Queue.java rename to src/test/java/org/javasim/examples/basic/Queue.java diff --git a/src/examples/java/org/javasim/examples/basic/expected_output b/src/test/java/org/javasim/examples/basic/expected_output similarity index 100% rename from src/examples/java/org/javasim/examples/basic/expected_output rename to src/test/java/org/javasim/examples/basic/expected_output From 11c65b477964e5a3ceba76e66b930017ecb61cb8 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 10 Jul 2015 12:20:29 +0100 Subject: [PATCH 021/230] Moved examples into tests https://github.com/nmcl/JavaSim/issues/29 --- .../javasim/examples/interrupt/Arrivals.java | 0 .../interrupt/InterruptExampleUnitTest.java | 47 +++++++++++++++++++ .../org/javasim/examples/interrupt/Job.java | 0 .../examples/interrupt/MachineShop.java | 0 .../org/javasim/examples/interrupt/Main.java | 0 .../javasim/examples/interrupt/Processor.java | 0 .../org/javasim/examples/interrupt/Queue.java | 0 .../javasim/examples/interrupt/Signaller.java | 0 8 files changed, 47 insertions(+) rename src/{examples => test}/java/org/javasim/examples/interrupt/Arrivals.java (100%) create mode 100644 src/test/java/org/javasim/examples/interrupt/InterruptExampleUnitTest.java rename src/{examples => test}/java/org/javasim/examples/interrupt/Job.java (100%) rename src/{examples => test}/java/org/javasim/examples/interrupt/MachineShop.java (100%) rename src/{examples => test}/java/org/javasim/examples/interrupt/Main.java (100%) rename src/{examples => test}/java/org/javasim/examples/interrupt/Processor.java (100%) rename src/{examples => test}/java/org/javasim/examples/interrupt/Queue.java (100%) rename src/{examples => test}/java/org/javasim/examples/interrupt/Signaller.java (100%) diff --git a/src/examples/java/org/javasim/examples/interrupt/Arrivals.java b/src/test/java/org/javasim/examples/interrupt/Arrivals.java similarity index 100% rename from src/examples/java/org/javasim/examples/interrupt/Arrivals.java rename to src/test/java/org/javasim/examples/interrupt/Arrivals.java diff --git a/src/test/java/org/javasim/examples/interrupt/InterruptExampleUnitTest.java b/src/test/java/org/javasim/examples/interrupt/InterruptExampleUnitTest.java new file mode 100644 index 0000000..5f6b5f2 --- /dev/null +++ b/src/test/java/org/javasim/examples/interrupt/InterruptExampleUnitTest.java @@ -0,0 +1,47 @@ +/* + * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne + * and others contributors as indicated + * by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * (C) 1990-2008, + */ + +package org.javasim.examples.interrupt; + +import org.javasim.Scheduler; + +import org.junit.Test; + +import static org.junit.Assert.*; + + +public class InterruptExampleUnitTest +{ + @Test + public void test () + { + MachineShop m = new MachineShop(); + + m.await(); + + try + { + Scheduler.reset(); + } + catch (final Throwable ex) + { + } + } +} diff --git a/src/examples/java/org/javasim/examples/interrupt/Job.java b/src/test/java/org/javasim/examples/interrupt/Job.java similarity index 100% rename from src/examples/java/org/javasim/examples/interrupt/Job.java rename to src/test/java/org/javasim/examples/interrupt/Job.java diff --git a/src/examples/java/org/javasim/examples/interrupt/MachineShop.java b/src/test/java/org/javasim/examples/interrupt/MachineShop.java similarity index 100% rename from src/examples/java/org/javasim/examples/interrupt/MachineShop.java rename to src/test/java/org/javasim/examples/interrupt/MachineShop.java diff --git a/src/examples/java/org/javasim/examples/interrupt/Main.java b/src/test/java/org/javasim/examples/interrupt/Main.java similarity index 100% rename from src/examples/java/org/javasim/examples/interrupt/Main.java rename to src/test/java/org/javasim/examples/interrupt/Main.java diff --git a/src/examples/java/org/javasim/examples/interrupt/Processor.java b/src/test/java/org/javasim/examples/interrupt/Processor.java similarity index 100% rename from src/examples/java/org/javasim/examples/interrupt/Processor.java rename to src/test/java/org/javasim/examples/interrupt/Processor.java diff --git a/src/examples/java/org/javasim/examples/interrupt/Queue.java b/src/test/java/org/javasim/examples/interrupt/Queue.java similarity index 100% rename from src/examples/java/org/javasim/examples/interrupt/Queue.java rename to src/test/java/org/javasim/examples/interrupt/Queue.java diff --git a/src/examples/java/org/javasim/examples/interrupt/Signaller.java b/src/test/java/org/javasim/examples/interrupt/Signaller.java similarity index 100% rename from src/examples/java/org/javasim/examples/interrupt/Signaller.java rename to src/test/java/org/javasim/examples/interrupt/Signaller.java From 48e1bbca8bb6b335bc93028b8cf0f6d213b63bd5 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 10 Jul 2015 13:50:14 +0100 Subject: [PATCH 022/230] reset now appears to work https://github.com/nmcl/JavaSim/issues/30 --- .../java/org/javasim/examples/basic/BasicExampleUnitTest.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java b/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java index 410e4f2..3c7c239 100644 --- a/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java +++ b/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java @@ -44,7 +44,7 @@ public void testNoBreaks () { } } - /* + @Test public void testBreaks () { @@ -61,5 +61,5 @@ public void testBreaks () catch (final Throwable ex) { } - }*/ + } } From cde25a5c6ce8cd63fa34a3d07dccd7a594b6bb35 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 10 Jul 2015 14:13:41 +0100 Subject: [PATCH 023/230] Created Simulation class and refactored https://github.com/nmcl/JavaSim/issues/8 --- src/main/java/org/javasim/Scheduler.java | 56 +------- src/main/java/org/javasim/Simulation.java | 124 ++++++++++++++++++ .../java/org/javasim/SimulationProcess.java | 2 +- .../examples/basic/BasicExampleUnitTest.java | 6 +- .../javasim/examples/basic/MachineShop.java | 5 +- .../interrupt/InterruptExampleUnitTest.java | 4 +- .../examples/interrupt/MachineShop.java | 5 +- .../tests/SimulationProcessUnitTest.java | 6 +- 8 files changed, 141 insertions(+), 67 deletions(-) create mode 100644 src/main/java/org/javasim/Simulation.java diff --git a/src/main/java/org/javasim/Scheduler.java b/src/main/java/org/javasim/Scheduler.java index 7086517..f743665 100644 --- a/src/main/java/org/javasim/Scheduler.java +++ b/src/main/java/org/javasim/Scheduler.java @@ -70,12 +70,10 @@ public static double currentTime () * @throws SimulationException if an error occurs. */ - public static synchronized void reset () throws SimulationException + static synchronized void reset () throws SimulationException { boolean finished = false; SimulationProcess tmp = SimulationProcess.current(); - - Scheduler._simulationReset = true; // set resetting process to idle @@ -130,57 +128,10 @@ public static synchronized void reset () throws SimulationException } while (!finished); Scheduler.SimulatedTime = 0.0; - Scheduler._simulationReset = false; SimulationProcess.Current = null; } - /** - * Is the simulation undergoing a reset? Processes should call this - * method to determine whether the simulation is being reset. If it - * is, then they should act accordingly. - * - * @return true if the simulation is being reset, false otherwise. - */ - - public static synchronized boolean simulationReset () - { - return Scheduler._simulationReset; - } - - /** - * Stop the simulation. Processes should call this - * method to determine whether the simulation is being stopped. If it - * is, then they should act accordingly. - */ - - public static synchronized void stopSimulation () - { - Scheduler.schedulerRunning = false; - } - - /** - * Start the simulation either from the start or from where it was - * previously stopped. - */ - - public static synchronized void startSimulation () - { - Scheduler.schedulerRunning = true; - } - - /** - * Has the simulation started? - * - * @return true if the simulation is running, false - * otherwise. - */ - - protected static synchronized boolean simulationStarted () - { - return Scheduler.schedulerRunning; - } - private Scheduler () { } @@ -194,7 +145,7 @@ private Scheduler () static synchronized boolean schedule () throws SimulationException { - if (Scheduler.simulationStarted()) + if (Simulation.isStarted()) { SimulationProcess p = SimulationProcess.current(); @@ -256,9 +207,6 @@ static double getSimulationTime () private static double SimulatedTime = 0.0; private static SimulationProcessList ReadyQueue = new SimulationProcessList(); - - private static boolean schedulerRunning = false; - private static boolean _simulationReset = false; static Scheduler theScheduler = new Scheduler(); } diff --git a/src/main/java/org/javasim/Simulation.java b/src/main/java/org/javasim/Simulation.java new file mode 100644 index 0000000..3c7a5a3 --- /dev/null +++ b/src/main/java/org/javasim/Simulation.java @@ -0,0 +1,124 @@ +/* + * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne + * and others contributors as indicated + * by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * (C) 1990-2008, + */ + +/* + * Copyright (C) 1996, 1997, 1998, + * + * Department of Computing Science, + * The University, + * Newcastle upon Tyne, + * UK. + * + * $Id: Scheduler.java,v 1.3 1998/12/07 08:28:10 nmcl Exp $ + */ + +package org.javasim; + +import java.util.NoSuchElementException; + +import org.javasim.internal.SimulationProcessIterator; +import org.javasim.internal.SimulationProcessList; + +/** + * This is the scheduler: the heart of the simulation system. + * + * Note: unlike in SIMULA, an active process is removed from the simulation + * queue prior to being activated. + * + * @author marklittle + * + */ +public class Simulation +{ + /** + * This routine resets the simulation time to zero and removes all + * entries from the scheduler queue (as their times may no longer + * be valid). Whatever operation caused the processes to become + * suspended will raise the RestartSimulation exception, which the + * application should catch. It should then perform any work necessary + * to put the process back in a state ready for restarting the simulation + * before calling Cancel on the process. + * + * @throws SimulationException if an error occurs. + */ + + public static synchronized void reset () throws SimulationException + { + Simulation._simulationReset = true; + + try + { + Scheduler.reset(); + } + finally + { + Simulation._simulationReset = false; + } + } + + /** + * Is the simulation undergoing a reset? Processes should call this + * method to determine whether the simulation is being reset. If it + * is, then they should act accordingly. + * + * @return true if the simulation is being reset, false otherwise. + */ + + public static synchronized boolean isReset () + { + return Simulation._simulationReset; + } + + /** + * Stop the simulation. Processes should call this + * method to determine whether the simulation is being stopped. If it + * is, then they should act accordingly. + */ + + public static synchronized void stop () + { + Simulation.schedulerRunning = false; + } + + /** + * Start the simulation either from the start or from where it was + * previously stopped. + */ + + public static synchronized void start () + { + Simulation.schedulerRunning = true; + } + + /** + * Has the simulation started? + * + * @return true if the simulation is running, false + * otherwise. + */ + + protected static synchronized boolean isStarted () + { + return Simulation.schedulerRunning; + } + + private static boolean schedulerRunning = false; + private static boolean _simulationReset = false; +} diff --git a/src/main/java/org/javasim/SimulationProcess.java b/src/main/java/org/javasim/SimulationProcess.java index 33de4e6..263e5e5 100644 --- a/src/main/java/org/javasim/SimulationProcess.java +++ b/src/main/java/org/javasim/SimulationProcess.java @@ -553,7 +553,7 @@ protected void suspendProcess () throws RestartException { } - if (Scheduler.simulationReset()) + if (Simulation.isReset()) throw new RestartException(); } diff --git a/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java b/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java index 3c7c239..189170e 100644 --- a/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java +++ b/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java @@ -20,7 +20,7 @@ package org.javasim.examples.basic; -import org.javasim.Scheduler; +import org.javasim.Simulation; import org.junit.Test; import static org.junit.Assert.*; @@ -38,7 +38,7 @@ public void testNoBreaks () try { - Scheduler.reset(); + Simulation.reset(); } catch (final Throwable ex) { @@ -56,7 +56,7 @@ public void testBreaks () try { - Scheduler.reset(); + Simulation.reset(); } catch (final Throwable ex) { diff --git a/src/test/java/org/javasim/examples/basic/MachineShop.java b/src/test/java/org/javasim/examples/basic/MachineShop.java index 9e10462..68ede3f 100644 --- a/src/test/java/org/javasim/examples/basic/MachineShop.java +++ b/src/test/java/org/javasim/examples/basic/MachineShop.java @@ -22,6 +22,7 @@ import org.javasim.RestartException; import org.javasim.Scheduler; +import org.javasim.Simulation; import org.javasim.SimulationException; import org.javasim.SimulationProcess; @@ -57,7 +58,7 @@ public void run () B.activate(); } - Scheduler.startSimulation(); + Simulation.start(); while (MachineShop.ProcessedJobs < 1000) hold(1000); @@ -77,7 +78,7 @@ public void run () System.out.println("Average number of jobs present = " + (JobsInQueue / CheckFreq)); - Scheduler.stopSimulation(); + Simulation.stop(); A.terminate(); MachineShop.M.terminate(); diff --git a/src/test/java/org/javasim/examples/interrupt/InterruptExampleUnitTest.java b/src/test/java/org/javasim/examples/interrupt/InterruptExampleUnitTest.java index 5f6b5f2..5db920b 100644 --- a/src/test/java/org/javasim/examples/interrupt/InterruptExampleUnitTest.java +++ b/src/test/java/org/javasim/examples/interrupt/InterruptExampleUnitTest.java @@ -20,7 +20,7 @@ package org.javasim.examples.interrupt; -import org.javasim.Scheduler; +import org.javasim.Simulation; import org.junit.Test; @@ -38,7 +38,7 @@ public void test () try { - Scheduler.reset(); + Simulation.reset(); } catch (final Throwable ex) { diff --git a/src/test/java/org/javasim/examples/interrupt/MachineShop.java b/src/test/java/org/javasim/examples/interrupt/MachineShop.java index 765bb74..fca1543 100644 --- a/src/test/java/org/javasim/examples/interrupt/MachineShop.java +++ b/src/test/java/org/javasim/examples/interrupt/MachineShop.java @@ -22,6 +22,7 @@ import org.javasim.RestartException; import org.javasim.Scheduler; +import org.javasim.Simulation; import org.javasim.SimulationEntity; import org.javasim.SimulationException; import org.javasim.SimulationProcess; @@ -45,14 +46,14 @@ public void run () A.activate(); s.activate(); - Scheduler.startSimulation(); + Simulation.start(); waitFor(cpu); System.out.println("Total jobs processed " + ProcessedJobs); System.out.println("Total signals processed " + SignalledJobs); - Scheduler.stopSimulation(); + Simulation.stop(); MachineShop.cpu.terminate(); A.terminate(); diff --git a/src/test/java/org/javasim/tests/SimulationProcessUnitTest.java b/src/test/java/org/javasim/tests/SimulationProcessUnitTest.java index 442af68..e4ffc0e 100644 --- a/src/test/java/org/javasim/tests/SimulationProcessUnitTest.java +++ b/src/test/java/org/javasim/tests/SimulationProcessUnitTest.java @@ -21,7 +21,7 @@ package org.javasim.tests; import org.javasim.RestartException; -import org.javasim.Scheduler; +import org.javasim.Simulation; import org.javasim.SimulationException; import org.javasim.SimulationProcess; import org.javasim.streams.ExponentialStream; @@ -64,11 +64,11 @@ public void run () A.activateDelay(2000); - Scheduler.startSimulation(); + Simulation.start(); hold(1000); - Scheduler.stopSimulation(); + Simulation.stop(); A.terminate(); From 40a0be9cc571c788a6e1c4039e41c520bad22c8e Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 10 Jul 2015 14:15:29 +0100 Subject: [PATCH 024/230] tidy up variable names --- src/main/java/org/javasim/Simulation.java | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/javasim/Simulation.java b/src/main/java/org/javasim/Simulation.java index 3c7a5a3..e9aff3d 100644 --- a/src/main/java/org/javasim/Simulation.java +++ b/src/main/java/org/javasim/Simulation.java @@ -61,7 +61,7 @@ public class Simulation public static synchronized void reset () throws SimulationException { - Simulation._simulationReset = true; + Simulation._reset = true; try { @@ -69,7 +69,7 @@ public static synchronized void reset () throws SimulationException } finally { - Simulation._simulationReset = false; + Simulation._reset = false; } } @@ -83,7 +83,7 @@ public static synchronized void reset () throws SimulationException public static synchronized boolean isReset () { - return Simulation._simulationReset; + return Simulation._reset; } /** @@ -94,7 +94,7 @@ public static synchronized boolean isReset () public static synchronized void stop () { - Simulation.schedulerRunning = false; + Simulation.running = false; } /** @@ -104,7 +104,7 @@ public static synchronized void stop () public static synchronized void start () { - Simulation.schedulerRunning = true; + Simulation.running = true; } /** @@ -116,9 +116,9 @@ public static synchronized void start () protected static synchronized boolean isStarted () { - return Simulation.schedulerRunning; + return Simulation.running; } - private static boolean schedulerRunning = false; - private static boolean _simulationReset = false; + private static boolean running = false; + private static boolean _reset = false; } From b737e423a50783328baaa9f4579ca10da6366103 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 17 Jul 2015 20:33:18 -0400 Subject: [PATCH 025/230] Updated javadocs https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/Semaphore.java | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/javasim/Semaphore.java b/src/main/java/org/javasim/Semaphore.java index 88cefea..933eeaa 100644 --- a/src/main/java/org/javasim/Semaphore.java +++ b/src/main/java/org/javasim/Semaphore.java @@ -29,6 +29,16 @@ public class Semaphore { + /** + * The result of various operations: + * DONE - succeeded. + * NOTDONE - failed. + * WOULD_BLOCK - the operation would block the thread. + * + * Note that for some operations only DONE and NOTDONE + * could be returned. + */ + enum Outcome { DONE, NOTDONE, WOULD_BLOCK }; /** @@ -80,7 +90,7 @@ public long numberWaiting () * resources. * * @param toWait the entity that will be blocked. - * @return an indication of the outcome. + * @return an indication of the outcome (DONE, NOTDONE) * @throws RestartException if a reset occurs while an entity is blocked. */ @@ -111,7 +121,7 @@ public Outcome get (SimulationEntity toWait) * Only acquire the semaphore if it would not block the caller. * * @param toWait the entity to block. - * @return the outcome + * @return the outcome (DONE, NOTDONE or WOULD_BLOCK) */ public Outcome tryGet (SimulationEntity toWait) @@ -127,7 +137,7 @@ public Outcome tryGet (SimulationEntity toWait) * Release the semaphore. No check is made to ensure the caller has * previously acquired the semaphore. * - * @return the outcome + * @return the outcome (DONE or NOTDONE) */ public Outcome release () From 96ccde53b6264e2bf20b0357666be6c32900b0cc Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 17 Jul 2015 20:35:05 -0400 Subject: [PATCH 026/230] General tidy-up Removed some comments that were there due to copy-and-paste issues in creation of the class. --- src/main/java/org/javasim/Simulation.java | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/src/main/java/org/javasim/Simulation.java b/src/main/java/org/javasim/Simulation.java index e9aff3d..ade771f 100644 --- a/src/main/java/org/javasim/Simulation.java +++ b/src/main/java/org/javasim/Simulation.java @@ -15,18 +15,7 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, * MA 02110-1301, USA. * - * (C) 1990-2008, - */ - -/* - * Copyright (C) 1996, 1997, 1998, - * - * Department of Computing Science, - * The University, - * Newcastle upon Tyne, - * UK. - * - * $Id: Scheduler.java,v 1.3 1998/12/07 08:28:10 nmcl Exp $ + * (C) 20015, */ package org.javasim; @@ -37,10 +26,8 @@ import org.javasim.internal.SimulationProcessList; /** - * This is the scheduler: the heart of the simulation system. - * - * Note: unlike in SIMULA, an active process is removed from the simulation - * queue prior to being activated. + * A class to encapsulate the various methods to start, stop or + * reset the simulation. * * @author marklittle * From 15cf6dde4c80a03df91ba913e2a6fff10da22d82 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 17 Jul 2015 20:45:28 -0400 Subject: [PATCH 027/230] Improved javadocs https://github.com/nmcl/JavaSim/issues/7 --- .../java/org/javasim/SimulationEntity.java | 36 ++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/SimulationEntity.java b/src/main/java/org/javasim/SimulationEntity.java index fb826ef..1a61b26 100644 --- a/src/main/java/org/javasim/SimulationEntity.java +++ b/src/main/java/org/javasim/SimulationEntity.java @@ -32,6 +32,11 @@ public void finalize () * resume it. If immediate resumption is required then this process will be * suspended (placed back on to the scheduler queue for "immediate" * resumption when the interrupted process has finished). + * + * @param toInterrupt the process to interrupt. + * @param immediate specify whether immediate resumption is required. + * @throws SimulationException if there is a problem. + * @throws RestartException if the simulation has been restarted. */ public void interrupt (SimulationEntity toInterrupt, boolean immediate) @@ -63,12 +68,20 @@ public void interrupt (SimulationEntity toInterrupt, boolean immediate) reactivateAt(SimulationProcess.currentTime()); } + /** + * Trigger this instance. + */ + public final void trigger () { _triggered = true; _waiting = false; } + /** + * @return whether or not this instance is currently waiting. + */ + public final boolean isWaiting () { return _waiting; @@ -118,6 +131,11 @@ protected SimulationEntity() /** * Wait for specified period of time. If this process is interrupted then * the InterruptedException is thrown. + * + * @param waitTime the time to wait. + * @throws SimulationException thrown if an error occurs. + * @throws RestartException thrown if the simulation has been restarted. + * @throws InterruptedException thrown if this instance has been interrupted. */ protected void timedWait (double waitTime) throws SimulationException, @@ -148,6 +166,12 @@ protected void timedWait (double waitTime) throws SimulationException, * terminated. If the calling process is interrupted before the 'controller' * is terminated, then the InterruptedException is thrown. If the boolean * parameter is true then the controller is reactivated immediately. + * + * @param controller the process upon whose termination this instance will be resumed. + * @param reAct indicate whether or not the controlling process should be activated now. + * @throws SimulationException thrown if an error occurs. + * @throws RestartException thrown if the simulation has been restarted. + * @throws InterruptedException thrown if this instance has been interrupted. */ protected void waitFor (SimulationEntity controller, boolean reAct) @@ -188,6 +212,11 @@ protected void waitFor (SimulationEntity controller, boolean reAct) * terminated. If the calling process is interrupted before the 'controller' * is terminated, then the InterruptedException is thrown. The controller * will not be reactivated immediately. + * + * @param controller the process upon whose termination this instance will be resumed. + * @throws SimulationException thrown if an error occurs. + * @throws RestartException thrown if the simulation has been restarted. + * @throws InterruptedException thrown if this instance has been interrupted. */ protected void waitFor (SimulationEntity controller) @@ -201,6 +230,11 @@ protected void waitFor (SimulationEntity controller) * restarted pending some application specific event which uses the trigger * queue. The InterruptedException is thrown if the caller is interrupted * rather than being triggered. + * + * @param _queue the queue to place this process. + * @throws SimulationException thrown if an error occurs. + * @throws RestartException thrown if the simulation has been restarted. + * @throws InterruptedException thrown if this instance has been interrupted. */ protected void waitForTrigger (TriggerQueue _queue) @@ -238,4 +272,4 @@ protected void waitForSemaphore (Semaphore _sem) throws RestartException private boolean _triggered; private boolean _waiting; -} \ No newline at end of file +} From f648fbb4dfac6d96447619b2c0518157b5c1ece3 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 17 Jul 2015 20:52:48 -0400 Subject: [PATCH 028/230] Update SimulationProcess.java --- .../java/org/javasim/SimulationProcess.java | 51 +++++++++++++++++-- 1 file changed, 48 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/javasim/SimulationProcess.java b/src/main/java/org/javasim/SimulationProcess.java index 263e5e5..188bc8e 100644 --- a/src/main/java/org/javasim/SimulationProcess.java +++ b/src/main/java/org/javasim/SimulationProcess.java @@ -65,7 +65,7 @@ public void finalize () } /** - * Return the current simulation time. + * @return the current simulation time. */ public final double time () @@ -74,7 +74,9 @@ public final double time () } /** - * Return the next simulation process which will run. + * @return the next simulation process which will run. + * @throws SimulationException thrown if there's an error. + * @throws NoSuchElementException thrown if there is no next processs. */ public synchronized SimulationProcess nextEv () @@ -88,7 +90,7 @@ public synchronized SimulationProcess nextEv () } /** - * Return the simulation time at which this process will run. + * @return the simulation time at which this process will run. */ public final double evtime () @@ -99,6 +101,10 @@ public final double evtime () /** * Activate this process before process 'p'. This process must not be * running, or on the scheduler queue. + * + * @param p the 'before' process. + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void activateBefore (SimulationProcess p) @@ -118,6 +124,10 @@ public void activateBefore (SimulationProcess p) /** * Activate this process after process 'p'. This process must not be * running, or on the scheduler queue. + * + * @param p the 'after' process. + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void activateAfter (SimulationProcess p) throws SimulationException, @@ -143,6 +153,11 @@ public void activateAfter (SimulationProcess p) throws SimulationException, * or equal to, the current simulation time. If 'prior' is true then this * process will appear in the simulation queue before any other process with * the same simulation time. + * + * @param AtTime the time to activate the process. + * @param prior indicates whether or not to schedule this process occurs before any other process with the same time. + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void activateAt (double AtTime, boolean prior) @@ -163,6 +178,10 @@ public void activateAt (double AtTime, boolean prior) * Activate this process at the specified simulation time. This process must * not be running, or on the scheduler queue. 'AtTime' must be greater than, * or equal to, the current simulation time. + * + * @param AtTime the time to activate this process. + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void activateAt (double AtTime) throws SimulationException, @@ -177,6 +196,11 @@ public void activateAt (double AtTime) throws SimulationException, * be greater than, or equal to, zero. If 'prior' is true then this process * will appear in the simulation queue before any other process with the * same simulation time. + * + * @param Delay the time by which to delay this process. + * @param prior indicates whether or not to schedule this process occurs before any other process with the same time. + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void activateDelay (double Delay, boolean prior) @@ -197,6 +221,10 @@ public void activateDelay (double Delay, boolean prior) * This process will be activated after 'Delay' units of simulation time. * This process must not be running, or on the scheduler queue. 'Delay' must * be greater than, or equal to, zero. + * + * @param Delay the time by which to delay this process. + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void activateDelay (double Delay) throws SimulationException, @@ -208,6 +236,9 @@ public void activateDelay (double Delay) throws SimulationException, /** * Activate this process at the current simulation time. This process must * not be running, or on the scheduler queue. + * + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void activate () throws SimulationException, RestartException @@ -222,6 +253,10 @@ public void activate () throws SimulationException, RestartException /** * Reactivate this process before process 'p'. + * + * @param p the process to reactivate this process before. + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void reactivateBefore (SimulationProcess p) @@ -238,6 +273,10 @@ public void reactivateBefore (SimulationProcess p) /** * Reactivate this process after process 'p'. + * + * @param p the process to reactivate this process after. + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void reactivateAfter (SimulationProcess p) @@ -256,6 +295,11 @@ public void reactivateAfter (SimulationProcess p) * Reactivate this process at the specified simulation time. 'AtTime' must * be valid. If 'prior' is true then this process will appear in the * simulation queue before any other process with the same simulation time. + * + * @param AtTime the time at which to reactivate this process. + * @param prior indicates whether or not to schedule this process occurs before any other process with the same time. + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void reactivateAt (double AtTime, boolean prior) @@ -275,6 +319,7 @@ public void reactivateAt (double AtTime, boolean prior) /** * Reactivate this process at the specified simulation time. 'AtTime' must * be valid. + * */ public void reactivateAt (double AtTime) throws SimulationException, From 6cf639ed8dbf575236fd37cb2315835362d4f080 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 17 Jul 2015 20:57:36 -0400 Subject: [PATCH 029/230] Improved javadocs https://github.com/nmcl/JavaSim/issues/7 --- .../java/org/javasim/SimulationProcess.java | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/javasim/SimulationProcess.java b/src/main/java/org/javasim/SimulationProcess.java index 188bc8e..5778da6 100644 --- a/src/main/java/org/javasim/SimulationProcess.java +++ b/src/main/java/org/javasim/SimulationProcess.java @@ -320,6 +320,9 @@ public void reactivateAt (double AtTime, boolean prior) * Reactivate this process at the specified simulation time. 'AtTime' must * be valid. * + * @param AtTime the time at which to reactivate this process. + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void reactivateAt (double AtTime) throws SimulationException, @@ -332,6 +335,11 @@ public void reactivateAt (double AtTime) throws SimulationException, * Reactivate this process after 'Delay' units of simulation time. If * 'prior' is true then this process will appear in the simulation queue * before any other process with the same simulation time. + * + * @param Delay the time to delay this process by before reactivation. + * @param prior prior indicates whether or not to schedule this process occurs before any other process with the same time. + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void reactivateDelay (double Delay, boolean prior) @@ -348,6 +356,10 @@ public void reactivateDelay (double Delay, boolean prior) /** * Reactivate this process after 'Delay' units of simulation time. + * + * @param Delay the time to delay this process. + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void reactivateDelay (double Delay) throws SimulationException, @@ -358,6 +370,9 @@ public void reactivateDelay (double Delay) throws SimulationException, /** * Reactivate this process at the current simulation time. + * + * @throws SimulationException thrown if there's an error. + * @throws RestartException thrown if the simulation is restarted. */ public void reactivate () throws SimulationException, RestartException @@ -373,6 +388,8 @@ public void reactivate () throws SimulationException, RestartException /** * Cancels next burst of activity, process becomes idle. + * + * @throws RestartException thrown if the simulation is restarted. */ public void cancel () throws RestartException @@ -427,6 +444,8 @@ public void terminate () /** * Is the process idle? + * + * @return whether or not this process is idle. */ public synchronized boolean idle () @@ -439,6 +458,8 @@ public synchronized boolean idle () /** * Has the process been passivated? + * + * @return whether or not this process is passive. */ public boolean passivated () @@ -448,6 +469,8 @@ public boolean passivated () /** * Has the process been terminated? + * + * @return whether or not this process has been terminated. */ public boolean terminated () @@ -456,7 +479,8 @@ public boolean terminated () } /** - * Return the currently active simulation process. + * @return the currently active simulation process. + * @throws SimulationException thrown if there's an error. */ public static SimulationProcess current () throws SimulationException @@ -468,7 +492,7 @@ public static SimulationProcess current () throws SimulationException } /** - * Return the current simulation time. + * @return the current simulation time. */ public static double currentTime () From 6623a5e305e4f32e6f2af4756803be8616aa87f5 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 17 Jul 2015 21:02:58 -0400 Subject: [PATCH 030/230] Added javadocs https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/TriggerQueue.java | 29 +++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/main/java/org/javasim/TriggerQueue.java b/src/main/java/org/javasim/TriggerQueue.java index fa9f071..3cafdf5 100644 --- a/src/main/java/org/javasim/TriggerQueue.java +++ b/src/main/java/org/javasim/TriggerQueue.java @@ -23,8 +23,16 @@ import java.util.LinkedList; import java.util.NoSuchElementException; +/** + * A TriggerQueue is used to hold simulation process instances. + */ + public class TriggerQueue { + /** + * Create a new instance. + */ + public TriggerQueue() { head = new LinkedList(); @@ -56,6 +64,14 @@ public void finalize () } } + /** + * Remove the first entry from the queue, possibly trigger it and then reactivate it + * at the current simulation time. + * + * @param setTrigger indicate whether or not to also trigger the removed process. + * @throws NoSuchElementException thrown if the queue is empty. + */ + public synchronized void triggerFirst (boolean setTrigger) throws NoSuchElementException { @@ -79,11 +95,24 @@ public synchronized void triggerFirst (boolean setTrigger) } } + /** + * Remove the first instance from the queue, trigger it and activate it at + * the current time. + * + * @throws NoSuchElementException thrown if the queue is empty. + */ + public synchronized void triggerFirst () throws NoSuchElementException { triggerFirst(true); } + /** + * Remove all simulation processes from the queue and trigger them. + * + * @throws NoSuchElementException thrown if the queue is empty. + */ + public synchronized void triggerAll () throws NoSuchElementException { long currentNumber = head.size(); From 275158e5663a7c317ae6bcc2e4605d28336a1cb4 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 11:52:24 -0400 Subject: [PATCH 031/230] Fixed javadoc https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/streams/Draw.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/streams/Draw.java b/src/main/java/org/javasim/streams/Draw.java index f071419..a7982e5 100644 --- a/src/main/java/org/javasim/streams/Draw.java +++ b/src/main/java/org/javasim/streams/Draw.java @@ -63,7 +63,7 @@ public Draw(double p, int StreamSelect, long MGSeed, long LCGSeed) } /** - * Return true with specified probability. + * @return true with specified probability. */ public boolean getBoolean () throws IOException From 3b12ead4a68df3e931a547e7061f20150982c3aa Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 11:52:51 -0400 Subject: [PATCH 032/230] Fixed javadoc https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/streams/ErlangStream.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/streams/ErlangStream.java b/src/main/java/org/javasim/streams/ErlangStream.java index e0d5d6c..1cacac1 100644 --- a/src/main/java/org/javasim/streams/ErlangStream.java +++ b/src/main/java/org/javasim/streams/ErlangStream.java @@ -83,7 +83,7 @@ public ErlangStream(double m, double sd, int StreamSelect, long MGSeed, } /** - * Return a stream number. + * @return a stream number. */ public double getNumber () throws IOException, ArithmeticException From 8ca0cbe593c777276a86467034f75f7fc0333f1f Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 11:53:12 -0400 Subject: [PATCH 033/230] Fixed javadoc https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/streams/ExponentialStream.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/streams/ExponentialStream.java b/src/main/java/org/javasim/streams/ExponentialStream.java index 72c2edc..46c4f27 100644 --- a/src/main/java/org/javasim/streams/ExponentialStream.java +++ b/src/main/java/org/javasim/streams/ExponentialStream.java @@ -70,7 +70,7 @@ public ExponentialStream(double m, int StreamSelect, long MGSeed, } /** - * Return stream number. + * @return stream number. */ public double getNumber () throws IOException, ArithmeticException From 6f0b632e0af3b775a6e2a292e2b2561629b95a23 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 11:53:31 -0400 Subject: [PATCH 034/230] Fixed javadoc https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/streams/HyperExponentialStream.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/streams/HyperExponentialStream.java b/src/main/java/org/javasim/streams/HyperExponentialStream.java index 67eb8c0..df8cb1b 100644 --- a/src/main/java/org/javasim/streams/HyperExponentialStream.java +++ b/src/main/java/org/javasim/streams/HyperExponentialStream.java @@ -91,7 +91,7 @@ public HyperExponentialStream(double m, double sd, int StreamSelect, } /** - * Return a value from the stream. + * @return a value from the stream. */ public double getNumber () throws IOException, ArithmeticException From e7e908b62386df2c4e2a1d7a5f6ad40e4a2ff23c Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 11:54:14 -0400 Subject: [PATCH 035/230] Fixed javadoc https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/streams/NormalStream.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/streams/NormalStream.java b/src/main/java/org/javasim/streams/NormalStream.java index ddb30af..4222bc7 100644 --- a/src/main/java/org/javasim/streams/NormalStream.java +++ b/src/main/java/org/javasim/streams/NormalStream.java @@ -79,9 +79,11 @@ public NormalStream(double m, double sd, int StreamSelect, long MGSeed, } /** - * Return a stream number. Use the polar method, due to Box, Muller and + * Use the polar method, due to Box, Muller and * Marsaglia.Taken from Seminumerical Algorithms, Knuth, Addison-Wesley, * p.117. + * + * @return a stream number. */ public double getNumber () throws IOException, ArithmeticException From b10ac6cc258f558860224878510488730e703d1d Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 11:55:16 -0400 Subject: [PATCH 036/230] Updated javadocs https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/streams/RandomStream.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/javasim/streams/RandomStream.java b/src/main/java/org/javasim/streams/RandomStream.java index f44ef1b..a6bd4c1 100644 --- a/src/main/java/org/javasim/streams/RandomStream.java +++ b/src/main/java/org/javasim/streams/RandomStream.java @@ -36,14 +36,14 @@ public abstract class RandomStream { /** - * In derived classes this method returns the value obtained by the stream. + * @return In derived classes this method returns the value obtained by the stream. * It must be redefined by the deriving class. */ public abstract double getNumber () throws IOException, ArithmeticException; /** - * Returns a chi-square error measure on the uniform distribution function. + * @returns a chi-square error measure on the uniform distribution function. */ public final double error () From 700b20e5fa9a4ab686a378d0e9d6884a4267eb5b Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 11:55:37 -0400 Subject: [PATCH 037/230] Fixed javadoc https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/streams/UniformStream.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/streams/UniformStream.java b/src/main/java/org/javasim/streams/UniformStream.java index f7a810d..50e808a 100644 --- a/src/main/java/org/javasim/streams/UniformStream.java +++ b/src/main/java/org/javasim/streams/UniformStream.java @@ -79,7 +79,7 @@ public UniformStream(double l, double h, int StreamSelect, long MGSeed, } /** - * Return a number from the stream. + * @return a number from the stream. */ public double getNumber () throws IOException, ArithmeticException From dd1ebe40be422f1d8c265ca648a73796135cedbc Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 11:58:12 -0400 Subject: [PATCH 038/230] Added javadocs https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/stats/Bucket.java | 22 +++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/javasim/stats/Bucket.java b/src/main/java/org/javasim/stats/Bucket.java index e2d84e6..bc167c0 100644 --- a/src/main/java/org/javasim/stats/Bucket.java +++ b/src/main/java/org/javasim/stats/Bucket.java @@ -56,7 +56,7 @@ public Bucket(Bucket b) } /** - * Is the name of the bucket equal to 'value'? + * @return whether or not the name of the bucket equal to 'value'? */ public boolean equals (double value) @@ -68,7 +68,7 @@ public boolean equals (double value) } /** - * Is the name of the bucket greater than 'value'? + * @return whether or not the name of the bucket greater than 'value'? */ public boolean greaterThan (double value) @@ -80,7 +80,7 @@ public boolean greaterThan (double value) } /** - * Is the name of the bucket greater than or equal to 'value'? + * @return whether or not the name of the bucket greater than or equal to 'value'? */ public boolean greaterThanOrEqual (double value) @@ -92,7 +92,7 @@ public boolean greaterThanOrEqual (double value) } /** - * Is the name of the bucket less than 'value'? + * @return whether or not the name of the bucket less than 'value'? */ public boolean lessThan (double value) @@ -104,7 +104,7 @@ public boolean lessThan (double value) } /** - * Is the name of the bucket less than or equal to 'value'? + * @return whether or not the name of the bucket less than or equal to 'value'? */ public boolean lessThanOrEqual (double value) @@ -116,7 +116,7 @@ public boolean lessThanOrEqual (double value) } /** - * Returns the name of the bucket. + * @returns the name of the bucket. */ public double name () @@ -126,6 +126,8 @@ public double name () /** * Increment the number of entries by 'value'. + * + * @param value the increment. */ public void incrementSize (long value) @@ -135,6 +137,8 @@ public void incrementSize (long value) /** * Set the number of entries to 'value'. + * + * @param value the size of the bucket. */ public void size (long value) @@ -143,7 +147,7 @@ public void size (long value) } /** - * Return the number of entries. + * @return the number of entries. */ public long size () @@ -152,7 +156,7 @@ public long size () } /** - * Return the next bucket. + * @return the next bucket. */ public Bucket cdr () @@ -162,6 +166,8 @@ public Bucket cdr () /** * Set the next bucket. + * + * @param n the next bucket. */ public void setCdr (Bucket n) From c38f26558327cb375b130e1e535712cba055a2f6 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 12:01:39 -0400 Subject: [PATCH 039/230] Updated javadocs https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/stats/Histogram.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/main/java/org/javasim/stats/Histogram.java b/src/main/java/org/javasim/stats/Histogram.java index cbafdc5..59aff5d 100644 --- a/src/main/java/org/javasim/stats/Histogram.java +++ b/src/main/java/org/javasim/stats/Histogram.java @@ -85,6 +85,8 @@ public Histogram(long maxIndex) * Add 'value' to the histogram. If a bucket already exists for this then it * is incremented, otherwise a new bucket will be created. This may require * the existing buckets to be merged to make room. + * + * @param value the number to use. */ public void setValue (double value) throws IllegalArgumentException @@ -105,6 +107,9 @@ public void setValue (double value) throws IllegalArgumentException /** * Save the state of the histogram to the file named 'fileName'. + * + * @param fileName the name of the file to use to save the state. + * @return true if the state was written, false otherwise. */ public boolean saveState (String fileName) throws IOException @@ -121,6 +126,9 @@ public boolean saveState (String fileName) throws IOException /** * Save the state of the histogram to the stream 'oFile'. + * + * @param oFile the name of the DataOutputStream to use to save the state. + * @return true if the state was written, false otherwise. */ public boolean saveState (DataOutputStream oFile) throws IOException @@ -133,6 +141,9 @@ public boolean saveState (DataOutputStream oFile) throws IOException /** * Restore the histogram state from the file 'fileName'. + * + * @param fileName the name of the file to use to read the state. + * @return true if the state was read, false otherwise. */ public boolean restoreState (String fileName) throws FileNotFoundException, @@ -150,6 +161,9 @@ public boolean restoreState (String fileName) throws FileNotFoundException, /** * Restore the histogram state from the stream 'iFile'. + * + * @param iFile the name of the DataInputStream to use to read the state. + * @return true if the state was read, false otherwise. */ public boolean restoreState (DataInputStream iFile) throws IOException From 0294e0af54f1b531e57dcef5b5de31cf5236dfe5 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 12:05:02 -0400 Subject: [PATCH 040/230] Updated javadocs https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/stats/Mean.java | 24 +++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/javasim/stats/Mean.java b/src/main/java/org/javasim/stats/Mean.java index 7878bad..abf62d5 100644 --- a/src/main/java/org/javasim/stats/Mean.java +++ b/src/main/java/org/javasim/stats/Mean.java @@ -33,7 +33,7 @@ public Mean() } /** - * Add 'value', incrementing the number of samples, the sum, mean, etc. + * @param add 'value', incrementing the number of samples, the sum, mean, etc. */ public void setValue (double value) throws IllegalArgumentException @@ -60,7 +60,7 @@ public void reset () } /** - * Returns the number of samples. + * @returns the number of samples. */ public int numberOfSamples () @@ -69,7 +69,7 @@ public int numberOfSamples () } /** - * Returns the minimum value given. + * @returns the minimum value given. */ public double min () @@ -78,7 +78,7 @@ public double min () } /** - * Returns the maximum value given. + * @returns the maximum value given. */ public double max () @@ -87,7 +87,7 @@ public double max () } /** - * Returns the sum of all values. + * @returns the sum of all values. */ public double sum () @@ -96,7 +96,7 @@ public double sum () } /** - * Returns the mean value. + * @returns the mean value. */ public double mean () @@ -106,6 +106,9 @@ public double mean () /** * Save the state of the histogram to the file named 'fileName'. + * + * @param fileName the file to use. + * @return true if save succeeded, false otherwise. */ public boolean saveState (String fileName) throws IOException @@ -122,6 +125,9 @@ public boolean saveState (String fileName) throws IOException /** * Save the state of the histogram to the stream 'oFile'. + * + * @param oFile the stream to use. + * @return true if save succeeded, false otherwise. */ public boolean saveState (DataOutputStream oFile) throws IOException @@ -137,6 +143,9 @@ public boolean saveState (DataOutputStream oFile) throws IOException /** * Restore the histogram state from the file 'fileName'. + * + * @param fileName the file to use. + * @return true if the restore succeeded, false otherwise. */ public boolean restoreState (String fileName) throws FileNotFoundException, @@ -154,6 +163,9 @@ public boolean restoreState (String fileName) throws FileNotFoundException, /** * Restore the histogram state from the stream 'iFile'. + * + * @param iFile the file to use. + * @return true if the restore succeeded, false otherwise. */ public boolean restoreState (DataInputStream iFile) throws IOException From 353034ed690286f01d8facda5cead4313993693a Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 12:09:04 -0400 Subject: [PATCH 041/230] Updated and added javadocs https://github.com/nmcl/JavaSim/issues/7 --- .../org/javasim/stats/PrecisionHistogram.java | 30 +++++++++++++++++-- 1 file changed, 28 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/javasim/stats/PrecisionHistogram.java b/src/main/java/org/javasim/stats/PrecisionHistogram.java index 55333ec..e1329bb 100644 --- a/src/main/java/org/javasim/stats/PrecisionHistogram.java +++ b/src/main/java/org/javasim/stats/PrecisionHistogram.java @@ -56,7 +56,7 @@ public void finalize () } /** - * Add 'value' to the histogram. If a bucket already exists for this then it + * @param value add to the histogram. If a bucket already exists for this then it * is incremented, otherwise a new bucket will be created. */ @@ -98,7 +98,7 @@ public void reset () } /** - * Return the number of buckets in the histogram. + * @return the number of buckets in the histogram. */ public long numberOfBuckets () @@ -110,6 +110,9 @@ public long numberOfBuckets () * There are two ways of getting the number of entries in a bucket: (i) give * the index number of the bucket, or (ii) give the name of the bucket. If * the bucket is not present then false is returned. + * + * @param index get the bucket number to use. + * @return the number of entries. */ public double sizeByIndex (long index) throws StatisticsException, @@ -131,6 +134,11 @@ public double sizeByIndex (long index) throws StatisticsException, throw (new StatisticsException("sizeByIndex went off end of list.")); } + /** + * @param name the id of the bucket to use. + * @return the number of items in the bucket. + */ + public double sizeByName (double name) throws IllegalArgumentException { for (Bucket ptr = Head; ptr != null; ptr = ptr.cdr()) @@ -148,6 +156,9 @@ public double sizeByName (double name) throws IllegalArgumentException /** * Save the state of the histogram to the file named 'fileName'. + * + * @param fileName the file to use. + * @return true if it succeeded, false otherwise. */ public boolean saveState (String fileName) throws IOException @@ -164,6 +175,9 @@ public boolean saveState (String fileName) throws IOException /** * Save the state of the histogram to the stream 'oFile'. + * + * @param oFile the stream to use. + * @return true if it succeeded, false otherwise. */ public boolean saveState (DataOutputStream oFile) throws IOException @@ -181,6 +195,9 @@ public boolean saveState (DataOutputStream oFile) throws IOException /** * Restore the histogram state from the file 'fileName'. + * + * @param fileName the file to use. + * @return true if it succeeded, false otherwise. */ public boolean restoreState (String fileName) throws FileNotFoundException, @@ -198,6 +215,9 @@ public boolean restoreState (String fileName) throws FileNotFoundException, /** * Restore the histogram state from the stream 'iFile'. + * + * @param iFile the stream to use. + * @return true if it succeeded, false otherwise. */ public boolean restoreState (DataInputStream iFile) throws IOException @@ -248,6 +268,12 @@ public void print () super.print(); } + /** + * Print the contents of the instance to a file. + * + * @param filename the name of the file. + */ + public void write (String filename) { try { From c552b1427feb8dbe08c5ecd96f37698a4f619545 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 12:09:34 -0400 Subject: [PATCH 042/230] Fixed javadoc typo --- src/main/java/org/javasim/stats/Mean.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/stats/Mean.java b/src/main/java/org/javasim/stats/Mean.java index abf62d5..4a5dc02 100644 --- a/src/main/java/org/javasim/stats/Mean.java +++ b/src/main/java/org/javasim/stats/Mean.java @@ -33,7 +33,7 @@ public Mean() } /** - * @param add 'value', incrementing the number of samples, the sum, mean, etc. + * @param value add to this instance, incrementing the number of samples, the sum, mean, etc. */ public void setValue (double value) throws IllegalArgumentException From 6221e5bf9400121fffff708b645400ea4e7b9314 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 12:10:21 -0400 Subject: [PATCH 043/230] Updated javadocs https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/stats/Quantile.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/javasim/stats/Quantile.java b/src/main/java/org/javasim/stats/Quantile.java index 9d3c929..ca097c3 100644 --- a/src/main/java/org/javasim/stats/Quantile.java +++ b/src/main/java/org/javasim/stats/Quantile.java @@ -39,6 +39,8 @@ public Quantile() /** * Create with the specified probability. If the probability it greater than * 100% (1.0) or less than or equal to 0% then throw an exception. + * + * @param q the probability to use for this instance. */ public Quantile(double q) throws IllegalArgumentException @@ -51,7 +53,7 @@ public Quantile(double q) throws IllegalArgumentException } /** - * Return the p-quantile. + * @return the p-quantile. */ public double getValue () @@ -71,7 +73,7 @@ public double getValue () } /** - * Return the p-quantile percentage. + * @return the p-quantile percentage. */ public double range () From 74584e4f8cbba978bafcde9dbf9f43b0dd89ac6b Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 12:12:30 -0400 Subject: [PATCH 044/230] Updated javadocs https://github.com/nmcl/JavaSim/issues/7 --- .../org/javasim/stats/SimpleHistogram.java | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/javasim/stats/SimpleHistogram.java b/src/main/java/org/javasim/stats/SimpleHistogram.java index 1abc6fb..92123f5 100644 --- a/src/main/java/org/javasim/stats/SimpleHistogram.java +++ b/src/main/java/org/javasim/stats/SimpleHistogram.java @@ -89,7 +89,7 @@ public SimpleHistogram(double min, double max, double w) } /** - * Add 'value' to the histogram. If it is outside the range of the histogram + * @param value add to the histogram. If it is outside the range of the histogram * then raise an exception, otherwise find the appropriate bucket and * increment it. */ @@ -137,6 +137,9 @@ public void reset () /** * Get the number of entries in bucket 'name'. + * + * @param name the id of the bucket. + * @return the number of entries in the bucket. */ public double sizeByName (double name) throws IllegalArgumentException @@ -156,7 +159,7 @@ public double sizeByName (double name) throws IllegalArgumentException } /** - * Return the width of each bucket. + * @return the width of each bucket. */ public double Width () @@ -181,6 +184,9 @@ public void print () /** * Save the state of the histogram to the file named 'fileName'. + * + * @param fileName the file to use. + * @return true if it succeeded, false otherwise. */ public boolean saveState (String fileName) throws IOException @@ -197,6 +203,9 @@ public boolean saveState (String fileName) throws IOException /** * Save the state of the histogram to the stream 'oFile'. + * + * @param oFile the stream to use. + * @return true if it succeeded, false otherwise. */ public boolean saveState (DataOutputStream oFile) throws IOException @@ -211,6 +220,9 @@ public boolean saveState (DataOutputStream oFile) throws IOException /** * Restore the histogram state from the file 'fileName'. + * + * @param fileName the file to use. + * @return true if it succeeded, false otherwise. */ public boolean restoreState (String fileName) throws FileNotFoundException, @@ -228,6 +240,9 @@ public boolean restoreState (String fileName) throws FileNotFoundException, /** * Restore the histogram state from the stream 'iFile'. + * + * @param iFile the stream to use. + * @return true if it succeeded, false otherwise. */ public boolean restoreState (DataInputStream iFile) throws IOException From f2b135ae04387f514b8c6c124b328a6d3a33a952 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 12:14:27 -0400 Subject: [PATCH 045/230] Updated javadocs https://github.com/nmcl/JavaSim/issues/7 --- .../java/org/javasim/stats/TimeVariance.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/javasim/stats/TimeVariance.java b/src/main/java/org/javasim/stats/TimeVariance.java index 59faae8..2f8a0a1 100644 --- a/src/main/java/org/javasim/stats/TimeVariance.java +++ b/src/main/java/org/javasim/stats/TimeVariance.java @@ -48,7 +48,7 @@ public void reset () } /** - * Add 'value', updating the statistics. + * @param value Add to the instance, updating the statistics. */ public void setValue (double value) throws IllegalArgumentException @@ -71,7 +71,7 @@ public void setValue (double value) throws IllegalArgumentException } /** - * Return the average value given up to the current simulation time. + * @return the average value given up to the current simulation time. */ public double timeAverage () @@ -84,6 +84,9 @@ public double timeAverage () /** * Save the state of the histogram to the file named 'fileName'. + * + * @param fileName the file to use. + * @return true if it succeeds, false otherwise. */ public boolean saveState (String fileName) throws IOException @@ -100,6 +103,9 @@ public boolean saveState (String fileName) throws IOException /** * Save the state of the histogram to the stream 'oFile'. + * + * @param oFile the stream to use. + * @return true if it succeeds, false otherwise. */ public boolean saveState (DataOutputStream oFile) throws IOException @@ -115,6 +121,9 @@ public boolean saveState (DataOutputStream oFile) throws IOException /** * Restore the histogram state from the file 'fileName'. + * + * @param fileName the file to use. + * @return true if it succeeds, false otherwise. */ public boolean restoreState (String fileName) throws FileNotFoundException, @@ -132,6 +141,9 @@ public boolean restoreState (String fileName) throws FileNotFoundException, /** * Restore the histogram state from the stream 'iFile'. + * + * @param iFile the stream to use. + * @return true if it succeeds, false otherwise. */ public boolean restoreState (DataInputStream iFile) throws IOException From 549fa1e22ac3127a8dab9bd8a633d77c97638eb2 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 12:16:48 -0400 Subject: [PATCH 046/230] Updated javadocs https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/stats/Variance.java | 22 ++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/javasim/stats/Variance.java b/src/main/java/org/javasim/stats/Variance.java index 65ab7e4..9811cee 100644 --- a/src/main/java/org/javasim/stats/Variance.java +++ b/src/main/java/org/javasim/stats/Variance.java @@ -39,7 +39,7 @@ public Variance() } /** - * Add 'value', updating the variance. + * @param Add to the instance, updating the variance. */ public void setValue (double value) throws IllegalArgumentException @@ -59,7 +59,7 @@ public void reset () } /** - * Returns the variance. + * @return the variance. */ public double variance () @@ -71,7 +71,7 @@ public double variance () } /** - * Returns the standard deviation of the samples. + * @return the standard deviation of the samples. */ public double stdDev () @@ -83,9 +83,9 @@ public double stdDev () } /** - * Returns the confidence. + * @return the confidence. * - * Confidence should be between 0 and 0.9999 + * @param value the confidence range should be between 0 and 0.9999 */ public double confidence (double value) throws IllegalArgumentException @@ -110,6 +110,9 @@ public void print () /** * Save the state of the histogram to the file named 'fileName'. + * + * @param fileName the file to use. + * @return true if it succeeds, false otherwise. */ public boolean saveState (String fileName) throws IOException @@ -126,6 +129,9 @@ public boolean saveState (String fileName) throws IOException /** * Save the state of the histogram to the stream 'oFile'. + * + * @param oFile the stream to use. + * @return true if it succeeds, false otherwise. */ public boolean saveState (DataOutputStream oFile) throws IOException @@ -136,6 +142,9 @@ public boolean saveState (DataOutputStream oFile) throws IOException /** * Restore the histogram state from the file 'fileName'. + * + * @param fileName the file to use. + * @return true if it succeeds, false otherwise. */ public boolean restoreState (String fileName) throws FileNotFoundException, @@ -153,6 +162,9 @@ public boolean restoreState (String fileName) throws FileNotFoundException, /** * Restore the histogram state from the stream 'iFile'. + * + * @param iFile the stream to use. + * @return true if it succeeds, false otherwise. */ public boolean restoreState (DataInputStream iFile) throws IOException From abfc2a883e7fb3a32057e641a83ff25c1603dbee Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 12:20:08 -0400 Subject: [PATCH 047/230] Fixed typo in javadoc @return not @returns --- src/main/java/org/javasim/streams/RandomStream.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/streams/RandomStream.java b/src/main/java/org/javasim/streams/RandomStream.java index a6bd4c1..f03d062 100644 --- a/src/main/java/org/javasim/streams/RandomStream.java +++ b/src/main/java/org/javasim/streams/RandomStream.java @@ -43,7 +43,7 @@ public abstract class RandomStream public abstract double getNumber () throws IOException, ArithmeticException; /** - * @returns a chi-square error measure on the uniform distribution function. + * @return a chi-square error measure on the uniform distribution function. */ public final double error () From b1a038e9e78b21e9e47f05df32dc6216bad0ba6c Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 12:21:05 -0400 Subject: [PATCH 048/230] Fixed javadoc typo @return not @returns --- src/main/java/org/javasim/stats/Bucket.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/stats/Bucket.java b/src/main/java/org/javasim/stats/Bucket.java index bc167c0..8ee8cdd 100644 --- a/src/main/java/org/javasim/stats/Bucket.java +++ b/src/main/java/org/javasim/stats/Bucket.java @@ -116,7 +116,7 @@ public boolean lessThanOrEqual (double value) } /** - * @returns the name of the bucket. + * @return the name of the bucket. */ public double name () From 4ddf1fe735a0b466b5bc37259426dfedf5cc3960 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 18 Jul 2015 12:22:03 -0400 Subject: [PATCH 049/230] Fixed javadoc @return not @returns --- src/main/java/org/javasim/stats/Mean.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/javasim/stats/Mean.java b/src/main/java/org/javasim/stats/Mean.java index 4a5dc02..2e033a5 100644 --- a/src/main/java/org/javasim/stats/Mean.java +++ b/src/main/java/org/javasim/stats/Mean.java @@ -60,7 +60,7 @@ public void reset () } /** - * @returns the number of samples. + * @return the number of samples. */ public int numberOfSamples () @@ -69,7 +69,7 @@ public int numberOfSamples () } /** - * @returns the minimum value given. + * @return the minimum value given. */ public double min () @@ -78,7 +78,7 @@ public double min () } /** - * @returns the maximum value given. + * @return the maximum value given. */ public double max () @@ -87,7 +87,7 @@ public double max () } /** - * @returns the sum of all values. + * @return the sum of all values. */ public double sum () @@ -96,7 +96,7 @@ public double sum () } /** - * @returns the mean value. + * @return the mean value. */ public double mean () From 5325f58e32a2587ad6eacc740d4c4feba05b680c Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 19 Jul 2015 08:31:42 -0400 Subject: [PATCH 050/230] Added javadocs https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/simset/Head.java | 30 +++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/simset/Head.java b/src/main/java/org/javasim/simset/Head.java index 1daa8b0..32bc1f6 100644 --- a/src/main/java/org/javasim/simset/Head.java +++ b/src/main/java/org/javasim/simset/Head.java @@ -34,10 +34,22 @@ public Head () { this.last = null; } + /** + * @return the first entry in the list. + */ + synchronized public Link first () {return first;}; + /** + * @return the last entry in the list. + */ + synchronized public Link last () {return last;}; + /** + * @param element make this the first element in the list. + */ + public void addFirst (Link element) { if (element == null) // nothing to add @@ -58,6 +70,10 @@ public void addFirst (Link element) { } }; + /** + * @param element make this the last entry in the list. + */ + public void addLast (Link element) { if (element == null) // nothing to add @@ -78,6 +94,10 @@ public void addLast (Link element) { } }; + /** + * @return the number of elements in the list. + */ + synchronized public long cardinal () { long numberOfElements = 0; Link tempPtr = first; @@ -91,8 +111,16 @@ synchronized public long cardinal () { return numberOfElements; }; + /** + * @return true if the list is empty, false otherwise. + */ + synchronized public boolean empty () {return cardinal() == 0;}; + /** + * Empty the list. + */ + synchronized public void clear () { Link tempPtr = first, marker = null; @@ -109,4 +137,4 @@ synchronized public void clear () { protected Link first; protected Link last; -} \ No newline at end of file +} From 0c4cffea49f5f8b0f6b62a50b5fdfbb185f1964d Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 19 Jul 2015 08:39:30 -0400 Subject: [PATCH 051/230] Added javadocs and removed spurious semi-colons https://github.com/nmcl/JavaSim/issues/7 --- src/main/java/org/javasim/simset/Link.java | 69 ++++++++++++++++++---- 1 file changed, 57 insertions(+), 12 deletions(-) diff --git a/src/main/java/org/javasim/simset/Link.java b/src/main/java/org/javasim/simset/Link.java index 617f7e5..4f7482a 100644 --- a/src/main/java/org/javasim/simset/Link.java +++ b/src/main/java/org/javasim/simset/Link.java @@ -32,21 +32,39 @@ public Link () { this.next = null; this.prev = null; this.theList = null; - }; + } + /** + * @return the successor to this list element. + */ + synchronized public Link suc () { return next; - }; + } + /** + * @return the predecessor to this list element. + */ + synchronized public Link pred () { return prev; - }; + } + /** + * @return this element in the list and remove it from the list. + */ + synchronized public Link out () { RemoveElement (); return this; - }; + } + /** + * Add this entrt to the list. + * + * @param list the list to add this element. + */ + synchronized public void inTo (Head list) { if (list != null) { @@ -55,8 +73,17 @@ synchronized public void inTo (Head list) { return; } - }; + } + /** + * Add this list element to the same list as the element provided. Make + * sure elements are only on one list. + * + * @param toPrecede the element to add before in its list. If null, or the element + * is not in a list, then remove this element from any list it may be in to + * match. + */ + synchronized public void precede (Link toPrecede) { if ((toPrecede == null) || ( ! toPrecede.inList())) @@ -70,6 +97,15 @@ synchronized public void precede (Link toPrecede) { } }; + /** + * Add this list element to the same list as the element provided. Make + * sure elements are only on one list. + * + * @param toFollow the element to add after in its list. If null, or the element + * is not in a list, then remove this element from any list it may be in to + * match. + */ + synchronized public void follow (Link toFollow) { if ((toFollow == null) || ( ! toFollow.inList())) @@ -81,16 +117,26 @@ synchronized public void follow (Link toFollow) { toFollow.addAfter(this); } - }; + } + /** + * Add this element to the head of a list. + * + * @param list the list to use. + */ + synchronized public void follow (Head list) { if (list != null) list.addFirst(this); - }; + } + /** + * @return true if this element is in a list, false otherwise. + */ + synchronized public boolean inList () { return (boolean) (theList != null); - }; + } private void RemoveElement () { @@ -115,7 +161,6 @@ private void RemoveElement () { next = null; } - private void addAfter (Link toAdd) { toAdd.prev = this; toAdd.theList = theList; @@ -131,7 +176,7 @@ private void addAfter (Link toAdd) { if (theList.last == this) theList.last = toAdd; - }; + } private void addBefore (Link toAdd) { toAdd.theList = theList; @@ -148,9 +193,9 @@ private void addBefore (Link toAdd) { if (theList.first == this) theList.first = toAdd; - }; + } protected Link next; protected Link prev; protected Head theList = new Head(); -} \ No newline at end of file +} From c2bfe8e31cefeaf8beaec723fe5aac3bcf3efec4 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 19 Jul 2015 08:40:20 -0400 Subject: [PATCH 052/230] Removed spurious semi-colons Likely there since around 1997! --- src/main/java/org/javasim/simset/Head.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/javasim/simset/Head.java b/src/main/java/org/javasim/simset/Head.java index 32bc1f6..f8e7959 100644 --- a/src/main/java/org/javasim/simset/Head.java +++ b/src/main/java/org/javasim/simset/Head.java @@ -68,7 +68,7 @@ public void addFirst (Link element) { element.precede(first); first = element; } - }; + } /** * @param element make this the last entry in the list. @@ -92,7 +92,7 @@ public void addLast (Link element) { element.follow(last); last = element; } - }; + } /** * @return the number of elements in the list. @@ -109,13 +109,13 @@ synchronized public long cardinal () { } return numberOfElements; - }; + } /** * @return true if the list is empty, false otherwise. */ - synchronized public boolean empty () {return cardinal() == 0;}; + synchronized public boolean empty () {return cardinal() == 0;} /** * Empty the list. @@ -133,7 +133,7 @@ synchronized public void clear () { first = null; last = null; - }; + } protected Link first; protected Link last; From 2b2807354f7a98335601e0c10c5041b9dbe20a99 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 20 Jul 2015 10:39:07 -0400 Subject: [PATCH 053/230] Text output from pdf At least gives a baseline. --- docs/pdf-rawtext | 1439 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1439 insertions(+) create mode 100644 docs/pdf-rawtext diff --git a/docs/pdf-rawtext b/docs/pdf-rawtext new file mode 100644 index 0000000..8ea546e --- /dev/null +++ b/docs/pdf-rawtext @@ -0,0 +1,1439 @@ +Object-OrientedDiscrete-EventSimulation in Java + +JavaSim User’s GuidePublic Release 0.3Version 1.0 + +Department of Computing Science,Computing Laboratory,The University, Newcastle upon Tyne,NE1 7RU, UK. + + + + +The JavaSim User’s ManualsCopyright Notice:Copyright 1995-1999,Computing Laboratory, University of Newcastle upon Tyne, UK.Permission to use, copy, modify and distribute the JavaSim software for evaluation, teachingand/or research purposes only and without fee is hereby granted, providing that thiscopyright and permission notice appear on all copies and supporting documentation, andthat similar conditions are imposed on any individual or organisation to whom the programis distributed.The University of Newcastle upon Tyne makes no representation about the suitability of thissoftware for any purpose. It is provided "as is" without express or implied warranty. + + + + +The JavaSim User’s ManualsTable of Contents1.PREFACE...................................................................................................................................................51.1AVAILABILITY...........................................................................................................................................52.INTRODUCTION.......................................................................................................................................62.1SIMULATION MODELS................................................................................................................................62.2TERMINOLOGY..........................................................................................................................................62.3CATEGORIES OF SIMULATION MODELS.......................................................................................................72.4EVENT SCHEDULING..................................................................................................................................73.BASIC SIMULATION CLASSES.............................................................................................................93.1THE SIMULATION SCHEDULER...................................................................................................................93.1.1Scheduler class interface..............................................................................................................103.2SIMULATION PROCESSES.........................................................................................................................103.2.1SimulationProcess class interface................................................................................................113.2.2Example........................................................................................................................................143.3STARTING, ENDING AND CONTROLLING A SIMULATION............................................................................143.3.1Suspending the main thread.........................................................................................................153.3.2Exiting the application.................................................................................................................153.3.3Controlling the simulation............................................................................................................163.4RESETTING A SIMULATION.......................................................................................................................163.4.1Example........................................................................................................................................174.DISTRIBUTION FUNCTIONS...............................................................................................................184.1RANDOMSTREAM....................................................................................................................................184.2UNIFORMSTREAM...................................................................................................................................194.3EXPONENTIALSTREAM............................................................................................................................194.4ERLANGSTREAM.....................................................................................................................................204.5HYPEREXPONENTIALSTREAM.................................................................................................................204.6NORMALSTREAM....................................................................................................................................204.7DRAW.....................................................................................................................................................214.8EXAMPLE................................................................................................................................................215.ADVANCED SIMULATION CLASSES................................................................................................225.1ASYNCHRONOUS ENTITIES......................................................................................................................235.2TRIGGER QUEUES....................................................................................................................................245.3SEMAPHORES..........................................................................................................................................255.4EXAMPLE................................................................................................................................................266.STATISTICAL CLASSES.......................................................................................................................276.1MEAN.....................................................................................................................................................276.2VARIANCE...............................................................................................................................................286.3TIMEVARIANCE......................................................................................................................................286.4HISTOGRAMS..........................................................................................................................................296.4.1PrecisionHistogram......................................................................................................................296.4.2Histogram.....................................................................................................................................306.4.3SimpleHistogram..........................................................................................................................316.4.4Quantile........................................................................................................................................327.JAVASIM CLASSES................................................................................................................................337.1SCHEDULER............................................................................................................................................337.2SIMULATIONPROCESS.............................................................................................................................347.3SIMULATIONEXCEPTION..........................................................................................................................357.4RESTARTEXCEPTION...............................................................................................................................357.5RANDOMSTREAM....................................................................................................................................357.6UNIFORMSTREAM...................................................................................................................................357.7EXPONENTIALSTREAM............................................................................................................................367.8ERLANGSTREAM.....................................................................................................................................36 + + + + +The JavaSim User’s Manuals7.9HYPEREXPONENTIALSTREAM.................................................................................................................367.10NORMALSTREAM...............................................................................................................................367.11DRAW................................................................................................................................................377.12SIMULATIONENTITY...........................................................................................................................377.13TRIGGERQUEUE.................................................................................................................................377.14SEMAPHORE.......................................................................................................................................387.15MEAN.................................................................................................................................................387.16VARIANCE..........................................................................................................................................397.17TIMEVARIANCE..................................................................................................................................397.18PRECISIONHISTOGRAM.......................................................................................................................407.19HISTOGRAM.......................................................................................................................................407.20SIMPLEHISTOGRAM............................................................................................................................417.21QUANTILE..........................................................................................................................................417.22STATISTICSEXCEPTION.......................................................................................................................418.REFERENCES..........................................................................................................................................429.INDEX.......................................................................................................................................................43 + + + + +The JavaSim User’s Manuals1. PrefaceJavaSim is a Java implementation of the original C++SIM simulation toolkit, which wasdeveloped as a direct consequence of research conducted within the scope of the Arjunaproject [8]. Therefore, it shares many of the same requirements:•easy to learn and use: the interface to the simulation library should be easy tounderstand.•correct abstraction: existing Java programmers should not find the simulationparadigm in conflict with the programming paradigm presented by Java. Simulationprogrammers used to other environments should find the transition to JavaSimstraightforward.•flexible and extensible: it should be relatively easy for anyone to add newfunctionality to the system, such as new distribution functions.•efficiency: the system should be efficient and produce efficient simulation runs.Simulation packages which we have experience of tended to be extremely slow andconsume large amounts of system resources.These requirements were realised in the following design decisions:•the discrete-event process based simulation facilities provided by SIMULA [1][2]and its simulation classes and libraries have a considerable experience and usercommunity which have found them to be successful for a wide variety ofsimulations. In later versions of the system additional simulation classes were addedwhich provide extra functionality.1•inheritance was to be used throughout the design to even a greater extent than isalready provided in SIMULA. This enables JavaSim to be more flexible andextensible, allowing new functionality to be added without affecting the overallsystem structure. For example, our I/O facilities, random number generators andprobability distribution functions are entirely object-oriented, relying on inheritanceto specialise their behaviour.1.1 AvailabilityJavaSim has been tested with JDK 1.0.2 and 1.1.x on Solaris, linux, and Windows 95/NT 4.0.Technical questions about JavaSim can be sent to M.C.Little@ncl.ac.uk. + +1It is not necessary for the reader to know anything about the SIMULA programming language or its simulationclasses, but such knowledge would aid in the understanding of the concepts and classes presented within. + + + + +The JavaSim User’s Manuals2. IntroductionThis manual is not intended as a tutorial on the concepts of simulation in general, but ratherhow to write simulations in the JavaSim system. However, in order to be able to do thiscertain key simulation concepts will be briefly described. The interested reader is referred to[6] for detailed descriptions of these concepts and for further discussions on simulationmodelling.2.1 Simulation modelsTo model a system is to replace it by something which is:•simpler and/or easier to study.•equivalent to the original in all important respects.Therefore, before constructing the actual simulation, it is first necessary to abstract from thereal system those components and their interactions that are considered important for theactual model. Building a simulation system model involves making certain simplifyingassumptions to aid in the actual implementation and study of the simulation (without suchsimplifications the model would be as complex as the system it is meant to be simulating).However, the accuracy of the results obtained from the simulation depend upon how valid theinitial assumptions are. For example, when considering the trajectory of a projectile throughthe atmosphere, the friction due to the air molecules is usually ignored. This assumption isvalid only within certain boundaries: if the size of the projectile is on the same scale as the airmolecules and its speed is sufficiently small then friction plays a significant role in itsmovement.Thus, the first step towards building a simulation model of a system is to determine exactlywhat are the important features which are to be measured, and what characteristics of thesystem have an affect on them. Any boundary conditions for the simulation (e.g., size ofprojectile) should be considered at the same time in order to simplify this procedure. Buildinga final model can often take several phases, where results from the initial model are comparedwith those obtained from the real system to determine their accuracy. Any discrepancies aretaken into account by possibly adding new components to the simulation until, within certainerror boundaries, the simulation results match those from the real system.2.2 TerminologyThe system components chosen for the simulation are termed simulation entities. Associatedwith each entity in the simulation are zero or more attributes that describe the state of theentity and which may vary during the course of the simulation. The interaction of entities andthe changes they cause in the system state are termed events.The collection of these component attributes at any given time t defines the system state at t.In general, the system state can take any of a variety of values, and a given simulation runresults in one realisation of a set of these values (the operation path) over the observationperiod. + + + + +The JavaSim User’s Manuals2.3 Categories of simulation modelsThere are three categories of simulation model, described by the way in which the systemstate changes as a function of time:•Continuous time: is one whose state varies continuously with time; such systems areusually described by sets of differential equations.•Discrete time: the system is considered only at selected moments in time (theobservation points). These moments are typically evenly spaced. Some economicsmodels are examples of this, where economics data becomes available at fixedintervals. Changes in state are noticed only at observation points. By choosing asuitably small interval between observation points, a continuous time simulation canbe approximated by a discrete time simulation.•Continuous time-discrete event: the time parameter is (conceptually) continuous andthe observation period is a real interval, usually starting at zero for simplicity. Theoperation path is completely determined by the sequence of event times (which neednot be evenly spaced and can be of arbitrary increments) and by the discrete changesin the system state which take place at these times (i.e., the interactions of theevents). In between consecutive event times the system state may vary continuously.Although it is possible to model the passage of real time by suitable event timing,this is not necessary for a discrete event system: the simulation model can advanceits own internal time directly from one discrete event to another, taking anyappropriate action to advance the state accordingly.It is this latter category of simulation modelling that JavaSim supports. Examples of discrete-event simulations are most queuing problems: entities (e.g., customers in a bank) arriveaccording to a given distribution and change the system state instantaneously (e.g., thenumber of customers in the queue). The operation paths for this system are step functions:they jump up (or down) by one when a customer joins (or leaves) the queue.2.4 Event schedulingGiven that a simulation consists of a series of interacting events (the operation path), asimulator can be defined as that program devoted to the generation of operation paths. Thesimulator allows the creation of events and controls their interactions according to a set ofrules, using an internal “clock” to keep track of the passage of (simulation) time.It maintains an event list, which indicates which events are to be scheduled for execution atspecific simulation times. Events are executed according to their simulation times. There aretwo approaches to the way in which a simulator can schedule events to produce an operationpath:•event-oriented: there is a procedure associated with each type of event in the system:it performs the action required to handle that type of event and it is invoked everytime such an event occurs. In an event�oriented approach, an operation path isobtained by taking a global view of everything that happens in the system; themanipulation of events is explicit.•process-oriented: an operation path is obtained by the interacting of a number ofprocesses running in parallel. The management of events is implicit in themanagement of the processes. The simulation system provides primitives for placingprocesses at particular points on the event list, removing and re�scheduling them. + + + + +The JavaSim User’s ManualsThe process-oriented approach best fits with the object-oriented paradigm which we want topresent to the programmer of JavaSim. As in SIMULA, simulation processes then becomeactive objects which interact with each other through message passing and the simulationprimitives. Refinements of these objects can then be obtained by inheriting from them andredefining the appropriate methods. + + + + +The JavaSim User’s Manuals3. Basic simulation classesThis chapter describes the core elements of the JavaSim simulation system. It is not intendedas a tutorial on Java, and basic knowledge of the language is assumed. Note, all of the classesdescribed in this section can be found in the arjuna.JavaSim.Simulation package.3.1 The simulation schedulerChapter 2 described the event list and how simulation entities (processes) are executedaccording to their position on the event list (i.e., with increasing simulation time). In JavaSim,as in SIMULA, simulation processes are managed by a scheduler and are placed on ascheduler queue (the event list). Processes are executed in pseudo-parallel, i.e., only oneprocess executes at any instance of real time, but many processes may execute concurrently atany instance of simulation time. The simulation clock is only advanced when all processeshave been executed for the current instance of simulation time.Inactive processes are placed on to the scheduler queue, and when the current active processyields control to the scheduler (either because it has finished or been placed back onto thescheduler queue), the scheduler removes the process at the head of the queue and re-activatesit.2 When the scheduler queue is empty, i.e., there are no further processes left to execute, thescheduler terminates the simulation. + +t1t2t2t3t0Active ProcessSchedulerScheduler Queue + +Figure 1: Scheduler-Process InteractionAs Figure 1 shows, the scheduler co-ordinates the entire simulation run, effectivelymonitoring the active and passive processes to enable it to determine when, and which,process to activate next. A simulation application cannot affect the scheduler directly, but cando so only indirectly through modifications of the scheduler queue.Note: the scheduler queue can be structured in a variety of ways, including a linear list or atree. The implementation of the queue can depend upon the type of simulation beingconducted. For example, a simulation which involves many (concurrent) processes wouldsuffer from using a linear ordered queue which would typically have insertion and removalroutines with overheads proportional to the number of entries in the queue. However, a linear + +2In SIMULA the currently active process is not removed from the head of the queue. + + + + +The JavaSim User’s Manualslist may work best for a low number of simulation processes. JavaSim comes with a suite ofscheduler queue implementations which can be chosen when the system is built.3.1.1 Scheduler class interfaceThe scheduler is an instance of the Scheduler class. It is the responsibility of theapplication programmer to ensure that only a single instance of this class is created.public class Scheduler + +{ + + public static double CurrentTime (); + + public static synchronized void reset (); + + public static synchronized boolean simulationReset (); + + public static synchronized void startSimulation (); + +}; + +The scheduler maintains the simulation clock, and the current value of this clock is obtainedby invoking the CurrentTime() method.To enable multiple simulation runs to occur within a single application, it is possible to resetthe scheduler and simulation clock by calling the reset() method. This causes thescheduler to remove all processes (simulation objects) currently registered on the schedulerqueue and to invoke a class specific method on each of them which resets their states(detailed in the next section). Once this is finished the simulation is ready for an additionalrun. A suspended process is informed that it has been “reset” by having the method it calledto originally suspend itself (i.e., place itself on the scheduler queue) raise theRestartSimulation exception, which the object should catch. It must then perform anywork necessary to put itself back in a state ready for restarting the simulation, and should thensuspend itself again before the simulation can be restarted (typically by calling Cancel.)3.2 Simulation processesAs was described in the previous chapter, JavaSim supports the process�oriented approach tosimulation, where each simulation entity can be considered a separate process. Therefore inJavaSim the entities within a simulation are represented by process objects. These are Javaobjects which have an independent thread of control associated with them at creation time,allowing them to convey the notion of activity necessary for participating in the simulation.In keeping with the object�oriented paradigm, and to make development of process objectssimpler, classes inherit the process functionality from the appropriate base class (Process).This class defines all of the necessary operations for the simulation system to control thesimulation entities within it, and for them to interact with it and each other.At any point in simulation time, a process can be in one (and only one) of the followingstates:•active: the process has been removed from the head of the scheduler queue and itsactions are being executed.•suspended: the process is on the scheduler queue, scheduled to become active at aspecified simulation time.•passive: the process is not on the scheduler queue. Unless another process brings itback on to the queue it will not execute any further actions. + + + + +The JavaSim User’s Manuals•terminated: the process is not on the scheduler queue and has no further actions toexecute. Once a process has been terminated it cannot be made to execute further inthe same simulation run.A process which is either active or suspended is said to be scheduled.3.2.1 SimulationProcess class interfaceThe SimulationProcess class definition is shown below. Before considering how tobuild an example class derived from SimulationProcess we shall discuss the methodswhich it provides.Because the constructors are protected, it is not possible to create an instance of theSimulationProcess class, i.e., classes must be derived from this. Processes are threadedobjects, and typically each thread package schedules execution of threads according to apriority. By default, all processes in JavaSim are created with the same priority, but this canbe altered by calling the setPriority method of java.lang.Thread. Note, however,that priorities have no effect on a simulation run.public class SimulationProcess extends Thread + +{ + +public final double Time (); + +public synchronized SimulationProcess next_ev () + + throws SimulationException, NoSuchElementException; + + + + +The JavaSim User’s Manualspublic final double evtime (); + +public void ActivateBefore (SimulationProcess p) + + throws SimulationException, RestartException; + +public void ActivateAfter (SimulationProcess p) throws SimulationException, + + RestartException; + +public void ActivateAt (double AtTime, boolean prior) + + throws SimulationException, + + RestartException; + +public void ActivateAt (double AtTime) throws SimulationException, + + RestartException; + +public void ActivateDelay (double Delay, boolean prior) + + throws SimulationException, + + RestartException; + +public void ActivateDelay (double Delay) throws SimulationException, + + RestartException; + +public void Activate () throws SimulationException, RestartException; + +public void ReActivateBefore (SimulationProcess p) + + throws SimulationException, RestartException; + +public void ReActivateAfter (SimulationProcess p) + + throws SimulationException, RestartException; + +public void ReActivateAt (double AtTime, boolean prior) + + throws SimulationException, + + RestartException; + +public void ReActivateAt (double AtTime) throws SimulationException, + + RestartException; + +public void ReActivateDelay (double Delay, boolean prior) + + throws SimulationException, + + RestartException; + +public void ReActivateDelay (double Delay) throws SimulationException, + + RestartException; + +public void ReActivate () throws SimulationException, RestartException; + +public void Cancel () throws RestartException; + +public void terminate (); + +public synchronized boolean idle (); + +public boolean passivated (); + +public boolean terminated (); + +public static SimulationProcess current () throws SimulationException; + +public static double CurrentTime (); + +public static void mainSuspend (); + +public static void mainResume () throws SimulationException; + +protected SimulationProcess (); + +protected void set_evtime (double time) throws SimulationException; + +protected void Hold (double t) throws SimulationException, + + RestartException; + +protected void Passivate () throws RestartException; + +protected void Suspend () throws RestartException; + +protected void Resume (); + +}; + +There are five ways to activate a currently passive process, which results in it being broughtto the correct position in the scheduler queue corresponding to its associated simulation time.If this is the head of the queue then it will become the active process. + + + + +The JavaSim User’s Manuals•Activate(): this activates the process at the current simulation time.•ActivateBefore(SimulationProcess proc): this positions the processin the scheduler queue before proc, and gives it the same simulation time. If procis not present then a SimulationException will be thrown.•ActivateAfter(SimulationProcess proc): this positions the process inthe scheduler queue after proc, and gives it the same simulation time. If proc isnot present then a SimulationException will be thrown.•ActivateAt(double AtTime, boolean prior): the process is insertedinto the scheduler queue at the position corresponding to the simulation timespecified by AtTime. The default for this time is the current simulation time. Theprior parameter is used to determine whether this process should be insertedbefore or after any processes with the same simulation time which may already bepresent in the queue. The default is false.•ActivateDelay(double AtTime, boolean prior): the process isactivated after a specified delay (AtTime). The process is inserted into the queuewith the new simulation time, and the prior parameter is used to determine itsordering with respect to other processes in the queue with the same time. The defaultis false.There are correspondingly five ReActivate methods, which work on either passive orscheduled processes. These will not be described in detail as they have similar signatures totheir Activate counterparts and work in the same way.Hold(double period) schedules the currently active process for re-activation after thesimulated delay of period time. If this is invoked by the object (e.g., through a publiclyavailable method) when it is not the current active process then it does nothing.evtime() returns the time at which the process is scheduled for activation.next_ev() returns a reference to the next process to be scheduled for execution. If thequeue is empty then null is returned.The static method current() returns a reference to the currently active process.The current simulation time can be obtained by using either the CurrentTime() orTime() methods. The former method is static and as such can be invoked without aninstance of the SimulationProcess class.Cancel() removes the process from the scheduler queue or suspends it if it is the currentlyactive process. In either case, the process is set to the passive state. Passivate() functionssimilarly but only works on the currently active process, i.e., if it is invoked by the object(e.g., through a publicly available method) when it is not the current active process then itdoes nothing.terminate() removes the process from the scheduler queue or it is suspended if it iscurrently active. The process is then set to the terminated state, and can take no further part inthis simulation run.idle() returns false if the process is either active or scheduled to become active.Otherwise true is returned. + + + + +The JavaSim User’s Manualspassivated() and terminated() indicate whether the process is in the passive orterminated state, respectively.Because SimulationProcess extends the java.lang.Thread class it is necessaryfor the simulation class to provide an implementation of the run method which will do theactual work for the process. If this method ever returns then the thread is destroyed. However,in order for JavaSim to detect the termination of the thread, the terminate() method mustbe used instead.3.2.2 ExampleTo illustrate how a simulation process could be implemented from the Process class weshall consider the example of a queue of customers arriving at a bank. For this example, thisinvolves three classes:•Customer: instances of this class represent the customers in the queue.•Queue: the instance of this class (queue) is the queue into which customers areplaces.•Arrivals: this is the process which creates new customers for insertion in queue.The implementations of the Customer and Queue classes are not important to thisexample. The implementation of the Arrivals class could be:class Arrivals : public Process + +{ + +public: + + Arrivals () {}; + + ~Arrivals () {}; + + void Body (); + +}; + +void Arrivals::Body () + +{ + + for (;;) + + { + + Customer* c = new Customer(); + + queue.insert(c); + + Hold(20.0); + + } + +} + +3.3 Starting, ending and controlling a simulationWhen a SimulationProcess object is created in JavaSim it starts in the passive state,and must be activated before it can take part in the simulation. This is typically performed bythe first process object to which control is transferred after the simulation is initially started.When writing JavaSim applications it is typical for the main thread to create a singlecontroller process which is responsible for co-ordinating the entire simulation run. Thiscreates and activates all of the simulation entities and the scheduler, and provides methods forsuspending the main thread, thus allowing the controller object to execute, and exiting theapplication. An example controller interface is shown below, and the implementations for itsmethods will be described in the following sections: + + + + +The JavaSim User’s Manualspublic class Controller extends SimulationProcess + +{ + +public Controller (); + +public void run (); + +public void await (); + +public void exit (); + +}; + +Because Controller is a simulation process itself, it derives from Simulationrocessand defines a run() method, which will do the actual controlling of the simulation. It alsoprovides the following methods:•await(): this method is called within the main application thread and suspends it,effectively transferring control the Controller process.•exit(): this method is called to exit the simulation.3.3.1 Suspending the main threadWhen a threaded application is started it is important to realise that before any applicationthreads are created, the Java virtual machine has already created one to run the application.This thread must be suspended before any simulation threads can run.The await() method of Controller is responsible for suspending this thread:public void await () + +{ + + Resume(); + + SimulationProcess.mainSuspend(); + +} + +It must first resume the thread associated with the Controller instance (sinceController is a SimulationProcess it starts in the passive state). This thread doesnot execute until the main thread is suspended by the call to the static mainSuspendmethod.The code for main would then become:public static void main (String[] args) + +{ + + Controller c = new Controller(); + + c.await(); + +} + +3.3.2 Exiting the applicationIn order to exit a simulation application, the application can call System.exit. However,if it is only necessary to resume the main thread, then this can be accomplished by using thestatic mainResume method of the SimulationProcess class. Once the main thread hasbeen resumed, it will continue to execute from the point it was suspended. In the exampleabove, this would be from within the await method. The thread which calls mainResumecan then suspend or terminate itself, depending upon the application requirements. + + + + +The JavaSim User’s Manualspublic void exit () + +{ + + if (resumeMainRequired) + + { + + SimulationProcess.mainResume(); + + Suspend(); + + } + + else + + System.exit(0); + +} + +3.3.3 Controlling the simulationThe controller’s body creates and activates the other simulation entities and the scheduler, andcontrols the overall simulation (e.g., resetting the system between consecutive runs).public void run () + +{ + + sc = new Scheduler(); + + // create and activate any other simulation entities + + sc->Resume(); // we must create a scheduler for the simulation to run + + // execute the simulation + + // print results + + sc->Suspend(); // suspend scheduler + + // suspend simulation entities + + Thread_Type::mainResume(); + +} + +The final call to mainResume prevents run() from exiting, which we must do to ensurethe application is portable between thread implementations.3.4 Resetting a simulationResetting a simulation involves resetting all of the objects involved in it which will berequired for subsequent runs. When the reset method is invoked on the Scheduler, this causesthe current simulation run to be terminated, and all simulation objects which are currentlysuspended on the scheduler queue will be woken and the RestartException will bethrown to each. Any objects which are required to participate within a new simulation runmust catch this exception, reset themselves to a state consistent with the start of anothersimulation, and then become suspended, to await the restart of the simulation. + + + + +The JavaSim User’s Manuals3.4.1 ExampleIf we take the Arrivals example above and add a reset method then the code could be:public class Arrivals extends SimulationProcess + +{ + +public void run () + +{ + + for (;;) + + { + + try + + { + + for (;;) + + { + + Customer c = new Customer(); + + queue.insert(c); + + Hold(20.0); + + } + + } + + catch (RestartException e) + + { + + } + + } + +} + +}; + + + + +The JavaSim User’s Manuals4. Distribution FunctionsMany of the aspects of the real world which a simulation attempts to model have propertieswhich correspond to various distribution functions, e.g., inter-arrival rates of customers at abank queue. Therefore, simulation studies require sources of random numbers. Ideally thesesources should produce an endless stream of such numbers, but to do so either requiresspecialised hardware or the ability to store an infinite (large) table of such numbers generatedin advance.Without such aids, which are either impractical or not generally available, the alternative is touse numerical algorithms. No deterministic algorithm can produce a sequence of numbers thatwould have all of the properties of a truly random sequence [3]. However, for all practicalpurposes it is only necessary that the numbers produced appear random, i.e., pass certainstatistical tests for randomness. Although these generators produce pseudo-random numbers,we continue to call the random number generators.The starting point for generating arbitrary distribution functions is to produce a standarduniform distribution. As we shall see, all other distributions can be produced based upon this.(Interested readers are referred to [6] for a more complete treatment of this topic). All of thedistribution functions in JavaSim rely upon inheritance to specialise the behaviour obtainedfrom the uniform distribution class. These classes can be found in thearjuna.JavaSim.Distributions package.4.1 RandomStreamThe actual uniform distribution class is called RandomStream. This returns a series ofrandom numbers uniformly distributed between 0 and 1. We experimented with severalrandom number generators before settling on a shuffle of a multiplicative generator with alinear congruential generator, which provides a reasonably uniform stream of pseudo-randomnumbers.public abstract class RandomStream + +{ + +public abstract double getNumber () throws IOException, + +ArithmeticException; + +public final double Error (); + +protected RandomStream (); + +protected RandomStream (long MGSeed, long LCGSeed); + +protected final double Uniform (); + +}; + +The multiplicative generator uses the following algorithm3:Y[i+1] = Y[i] * 55 mod 226, where the period is 224, and the initial seed must be odd. + +3Thanks to Professor I. Mitrani for his help in developing this. + + + + +The JavaSim User’s ManualsThe Uniform() method uses the linear congruential generator (seed is LCGSeed, with thedefault value of 1878892440L) based on the algorithm in [4], and the results of this areshuffled with the multiplicative generator (see is MGSeed, with a default value of 772531L)as suggested by Maclaren and Marsaglia [3], to obtain a sufficiently uniform randomdistribution, which is then returned.The Error() method returns a chi-square error measure on the uniform distributionfunction.By abstract method getNumber must be provided by derived classes, and is used to obtain auniform means of accessing random numbers.The RandomStream class returns a large sequence of random numbers, whose period is2^24. However, unless the seeds are modified when each random distribution class is created,the starting position in this sequence will always be the same, i.e., the same sequence ofnumbers will be obtained. To prevent this, each class derived from RandomStream has anadditional parameter for one of its constructors which indicates the offset in this sequencefrom which to begin sampling.4.2 UniformStreamThe UniformStream class inherits from RandomStream and returns random numbersuniformly distributed over a range specified when the instance is created.public class UniformStream extends RandomStream + +{ + +public UniformStream (double lo, double hi); + +public UniformStream (double lo, double hi, int StreamSelect); + +public UniformStream (double lo, double hi, int StreamSelect, + + long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; + +}; + +The range covers the interval specified by lo and hi. StreamSelect indicates the offsetin the random number sequence to begin sampling, and MGSeed and LCGSeed can be usedto modify the seed values used by the RandomStream class.4.3 ExponentialStreamThe ExponentialStream class returns an exponentially distributed stream of randomnumbers with mean value specified by mean.public class ExponentialStream extends RandomStream + +{ + +public ExponentialStream (double mean); + +public ExponentialStream (double mean, int StreamSelect); + +public ExponentialStream (double mean, int StreamSelect, + + long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; + +}; + + + + +The JavaSim User’s ManualsStreamSelect indicates the offset in the random number sequence to begin sampling, andMGSeed and LCGSeed can be used to modify the seed values used by the RandomStreamclass.4.4 ErlangStreamErlangStream returns an erlang distribution with mean mean and standard deviation sd.public class ErlangStream extends RandomStream + +{ + +public ErlangStream (double mean, double sd); + +public ErlangStream (double mean, double sd, int StreamSelect); + +public ErlangStream (double mean, double sd, int StreamSelect, + + long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; + +}; + +StreamSelect indicates the offset in the random number sequence to begin sampling, andMGSeed and LCGSeed can be used to modify the seed values used by the RandomStreamclass.4.5 HyperExponentialStreamThe HyperExponential class returns a hyper-exponential distribution of randomnumbers, with mean mean and standard deviation sd.public class HyperExponentialStream extends RandomStream + +{ + +public HyperExponentialStream (double mean, double sd); + +public HyperExponentialStream (double mean, double sd, int StreamSelect); + +public HyperExponentialStream (double mean, double sd, int StreamSelect, + + long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; + +}; + +StreamSelect indicates the offset in the random number sequence to begin sampling, andMGSeed and LCGSeed can be used to modify the seed values used by the RandomStreamclass.4.6 NormalStreamNormalStream returns a normal distribution of random numbers, with mean mean andstandard deviation sd. operator() uses the polar method due to Box, Muller, andMarsaglia [3].public class NormalStream extends RandomStream + +{ + +public NormalStream (double mean, double sd); + +public NormalStream (double mean, double sd, int StreamSelect); + +public NormalStream (double mean, double sd, int StreamSelect, + + long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; + +}; + + + + +The JavaSim User’s ManualsStreamSelect indicates the offset in the random number sequence to begin sampling, andMGSeed and LCGSeed can be used to modify the seed values used by the RandomStreamclass.4.7 DrawThe Draw class is the exception to the inheritance rule, instead using RandomStreamthrough delegation (for historical reasons). This returns true with the probability prob, andfalse otherwise.public class Draw + +{ + +public Draw (double p); + +public Draw (double p, int StreamSelect); + +public Draw (double p, int StreamSelect, long MGSeed, long LCGSeed); + +public boolean getBoolean () throws IOException; + +}; + +StreamSelect indicates the offset in the random number sequence to begin sampling, andMGSeed and LCGSeed can be used to modify the seed values used by the RandomStreamclass.4.8 Example + + + + +The JavaSim User’s Manuals5. Advanced Simulation ClassesSimulations formed by the interaction of objects derived from SimulationProcess canbe considered causal (synchronous) in nature: events occur at specific times and form a welldefined order. However, it is sometimes necessary to simulate asynchronous real worldevents, e.g., processor interrupts. To do this requires finer-grained control of the schedulingof simulation processes than it provided by the scheduler; the scheduler simply activatesaccording to simulation time, whereas asynchronous events may have different activationrules, e.g., activate when another process is terminated.The SimulationEntity class and others to be described in the following sections givesthis required level of control to the user, extending the types of simulation which are possiblewith JavaSim. Asynchronous simulation processes are derived from SimulationEntity,but the implementation enables these asynchronous process to execute in the same simulationas SimulationProcess objects. However, because these processes are suspended andresumed outside of the control of the scheduler, it is possible for deadlock situations to occur.Therefore, some care must be taken when using these classes.In addition to the active, suspended, passive and terminated states which a simulation processcan be in, asynchronous objects can also be in the following states:•waiting: the process is suspended waiting for a specific event to occur (e.g., aprocess to be terminated). The waiting process is not placed on the scheduler queue.•interrupted: the process, which was in the waiting state, has been interrupted fromthis before the condition it was awaiting occurred.The conditions on which a process can wait, and can thus be interrupted from, are:•time: a process can attempt to wait for a specified period of simulation time.•process termination: a process can wait for the termination of anotherSimultionEntity process before continuing execution.•semaphore: critical regions of a simulation can be protected by semaphores, whereonly a single Entity process can acquire the semaphore; other processes aresuspended until the semaphore is released.•user specific: it is possible for other asynchronous conditions to occur which are notcovered above.The classes to be described in this chapter can be found in thearjuna.JavaSim.Simulation package. + + + + +The JavaSim User’s Manuals5.1 Asynchronous entitiespublic class SimulationEntity extends SimulationProcess + +{ + +public void Interrupt (SimulationEntity toInterrupt, boolean immediate) + + throws SimulationException, RestartException; + +public final void trigger (); + +public void terminate (); + +protected SimulationEntity (); + +protected void Wait (double waitTime) throws SimulationException, + + RestartException, InterruptedException; + +protected void WaitFor (SimulationEntity controller, boolean reAct) + + throws SimulationException, + + RestartException, InterruptedException; + +protected void WaitFor (SimulationEntity controller) + + throws SimulationException, + + RestartException, InterruptedException; + +protected void WaitForTrigger (TriggerQueue _queue) + + throws SimulationException, + + RestartException, InterruptedException; + +protected void WaitForSemaphore (Semaphore _sem) throws RestartException; + +}; + +Because SimulationEntity is derived from SimulationProcess, all of the usualsimulation methods are available, and can be used in conjunction with those provided by thederived class.Interrupt(SimulationEntity toInterrupt, boolean immediate)interrupts the asynchronous process toInterrupt, which must not be terminated andmust be in the waiting state. toInterrupt becomes the next active process (i.e., it ismoved to the head of the scheduler queue). If immediate is true then the current process issuspended immediately; it is scheduled for reactivation at the current simulation time.Otherwise, the current process continues to execute and can be suspended later in anapplication specific way.Because it is now possible for one process to wait for another to terminate theterminate() method must differ from that provided by SimulationProcess. Beforethe terminating process ends it moves the waiting process to the head of the scheduler queue,and then calls SimulationProcess.terminate(). Currently only a single processcan wait on this termination condition, but this may change in future versions.Wait(double t) is similar to Hold(double t), with the exception that the process ismoved into the waiting state as well as being placed on the scheduler queue. It is thereforepossible to interrupt this process before the wait period has elapsed. true is returned if theprocess was interrupted, otherwise false is returned.WaitFor(SimulationEntity controller, boolean reAct) suspends thecurrent process until controller has terminated. The process is placed in the waitingstate. If reAct is true then controller is moved to the head of the scheduler queue tobecome the next activate process, otherwise (the default behaviour) the application will haveto activate controller. If the waiting process is interrupted then the method returns + + + + +The JavaSim User’s Manualstrue, otherwise false. The controller and the current process must be different, i.e.,it is not possible for a process to wait for itself.Trigger queues are lists maintained by the simulation system of process waiting for specificevents to occur, which are outside the scope of those described above. These will bedescribed in the next section. WaitForTrigger(TriggerQueue queue) places thecurrent process on the trigger queue _queue, and passivates it. As with the previousmethods, the return value indicates whether the process was interrupted, or triggered.In addition to trigger queues, process can wait on semaphores, allowing the creation ofmonitor regions, for example. WaitForSemaphore(Semaphore sem) causes thecurrent process to attempt to exclusively acquire the semaphore. If this is not possible thenthe process is suspended. Currently, a process which is waiting on a semaphore cannot beinterrupted, and is not placed into the waiting state. As such, when this method returns thesemaphore has been acquired.5.2 Trigger queuesProcesses waiting for the same application controlled event can be grouped together into aTriggerQueue, as described in the previous section. When this event occurs theapplication can use one of the two trigger methods to activate the queue members. Thisinvolves placing the process(es) onto the head of the scheduler queue.public class TriggerQueue + +{ + +public TriggerQueue (); + +public void finalize (); + +public synchronized void triggerFirst (boolean setTrigger) + + throws NoSuchElementException; + +public synchronized void triggerFirst () throws NoSuchElementException; + +public synchronized void triggerAll () throws NoSuchElementException; + +}; + +•triggerAll(): triggers all of the members on the queue.•triggerFirst(boolean setTrigger): triggers only the head of the queue.If setTrigger is true (the default behaviour) then the trigger() method ofthe SimulationEntity object is also invoked.If the queue is not empty when it is garbage collected by the virtual machine then allremaining queue members will be triggered, and placed back onto the scheduler queue. + + + + +The JavaSim User’s Manuals5.3 SemaphoresApplication code can be protected from simulation processes through semaphores, which areinstances of the Semaphore class.public class SemaphoreOutcome + +{ + + static final public int DONE = 0; + + static final public int NOTDONE = 1; + + static final public int WOULD_BLOCK = 2; + +}; + +public class Semaphore + +{ + +public Semaphore (); + +public Semaphore (long number); + +public synchronized long NumberWaiting (); + +public synchronized int Get (SimulationEntity toWait) + + throws RestartException; + +public synchronized int TryGet (SimulationEntity toWait) + + throws RestartException; + +public synchronized int Release (); + +}; + +A semaphore can be used to restrict the number of processes which can use shared resources.The number of shared resources available must be presented to the Semaphore when it iscreated. By default, a Semaphore will assume that there is only a single resource, in whichcase a semaphore is exclusively acquired by a simulation process. However, it is possible tocreate a Semaphore with different resource counts.A Semaphore can exist in one of two states:•available: the semaphore is available to be acquired.•unavailable: a process (or number of processes) currently has the semaphore. Ifanother process attempts to acquire the semaphore then it is automatically suspendeduntil the semaphore is available, i.e., until a resource has been freed.To be able to manipulate semaphores, a process must be derived from theSimulationEntity class. To obtain the semaphore, the Get(SimulationEntitytoWait) method should be used, where toWait is the calling process. If the semaphore isunavailable then the process referenced by toWait is suspended. If the semaphore issuccessfully acquired, then SemaphoreOutcome.DONE is returned, otherwiseSemaphoreOutcome.NOTDONE.If the process wishes to attempt to acquire the semaphore but does not want to block in thesituation where the semaphore is currently unavailable, then it can use the TryGet method,which takes the same parameter as Get. However, unlike Get, TryGet will returnSemaphoreOutcome.WOULD_BLOCK in the case where the caller would normally blockif it had called Get, i.e., the semaphore is currently in use. If the semaphore is not being used,then TryGet will acquire it for the caller. Errors will result inSemaphoreOutcome.NOT_DONE being returned.When the semaphore is no longer required Release() should be called by the processwhich currently has it. Successful release of the semaphore results in + + + + +The JavaSim User’s ManualsSemaphoreOutcome.DONE being returned, otherwise Semaphore.NOTDONE isreturned.NumberWaiting() returns the number of processes currently suspended waiting for thesemaphore.If the semaphore is garbage collected with processes waiting for it then an error message isdisplayed. No further action is attempted on behalf of these waiting processes.5.4 Example + + + + +The JavaSim User’s Manuals6. Statistical ClassesThe purpose of a simulation typically involves the gathering of relevant statisticalinformation, e.g., the average length of time spent in a queue. JavaSim provides a number ofdifferent classes for gathering such information. These classes can be found in thearjuna.JavaSim.Statistics package.6.1 MeanThis is the basic class from which others are derived, gathering statistical information on thesamples provided to it.public class Mean + +{ + +public Mean (); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public int numberOfSamples (); + +public double min (); + +public double max (); + +public double sum (); + +public double mean (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, + + IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +public void print (); + +}; + +New values can be supplied to the instance of the Mean class using thesetValue(double) method. The number of samples which have been give can beobtained from numberOfSamples().The maximum and minimum of the samples supplied can be obtained from the max() andmin() methods, respectively.sum() returns the summation of all of the samples:SSii=1nmean() returns the mean value:SSii=1n1_nAn instance of Mean can be reset between samples using the reset() method. + + + + +The JavaSim User’s ManualsIf the state of a Mean object is required to be saved between simulation runs then it can bemade persistent by using either of the saveState methods. The first instance saves thestate to a file, whereas the second can be used to save the state to an instance of thejava.io.DataOutputStream class. There are likewise two corresponding ways inwhich the state can be restored.The print method simply prints to System.out the current state of the object.6.2 VarianceThis class is derived from Mean, and in addition to providing the above mentionedfunctionality also provides the following:public class Variance extends Mean + +{ + +public Variance (); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public double variance (); + +public double stdDev (); + +public double confidence (double value); + +public void print (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, + + IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +}; + +variance() returns the variance of the samples:Si=1n1_n(Si-Mean())2stdDev() returns the standard deviation of the samples, which is the square root of thevariance.6.3 TimeVarianceThe TimeVariance class makes it possible to determine how long, in terms of simulationtime, specific values were maintained. In effect, values are weighted according to the lengthof time that they were held, whereas with the Variance class only the specific values aretaken into account. + + + + +The JavaSim User’s Manualspublic class TimeVariance extends Variance + +{ + +public TimeVariance (); + +public void reset (); + +public void setValue (double value) throws IllegalArgumentException; + +public double timeAverage (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, + + IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +}; + +Whenever a value is supplied to an instance of the TimeVariance class the simulationtime at which it occurred is also noted. If a value changes, or the timeAverage() methodis invoked, then the time it has been maintained for is calculated and the statistical data isupdated.6.4 HistogramsMean, Variance, and TimeVariance provide a snapshot of values in the simulation.However, histograms can yield better information about how a range of values change overthe course of a simulation run. This information can be viewed in a number of ways, buttypically it is plotted in graphical form.A histogram typically maintains a slot for each value, or range of values, given to it. Theseslots are termed buckets, and the way in which these buckets are maintained and manipulatedgives rise to a variety of different histogram implementations. The following sections detailthis variety of different histogram classes.6.4.1 PrecisionHistogramThe PrecisionHistogram class represents the core histogram class from which allothers are derived. This class keeps an exact tally of all values given to it, i.e., a bucket iscreated for each value. Although buckets are only created when requires, over the course of asimulation this can still utilise a large amount of resources, and so other, less precise,histogram classes are provided. + + + + +The JavaSim User’s Manualspublic class PrecisionHistogram extends Variance + +{ + +public PrecisionHistogram (); + +public void finalize (); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public long numberOfBuckets (); + +public double sizeByIndex (long index) throws StatisticsException, + + IllegalArgumentException; + +public double sizeByName (double name) throws IllegalArgumentException; + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, + + IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +public void print (); + +}; + +As with the Variance class from which it is derived, and whose methods are obviouslyavailable, values can be supplied to the histogram through the setValue(double)method.The number of buckets maintained by the histogram can be obtained from thenumberOfBuckets() method. Each bucket is uniquely named by the values it contains,and can also be accessed by its index in the entire list of buckets.There are therefore two ways of getting the number of entries in a bucket:•by the index number of the bucket: sizeByIndex(long index).•by the unique name of the bucket: sizeByName(double name).If the bucket does not exist then each of these methods throwsIllegalArgumentException.It is possible to output the contents of the histogram to standard output using theprint()method.6.4.2 HistogramThe problem with the PrecisionHistogram class is that it can use up a lot of systemresources, especially over the course of a long simulation. Histogram attempts to alleviatethis by presenting a histogram which is less accurate, but consumes less resources. Instead ofmaintaining a bucket for each individual value, it keeps a fixed number of buckets. Initiallyeach bucket will store separate values as in the PrecisionHistogram, but when thenumber of required buckets would exceed the specified maximum number it merges pairs ofbuckets, thus reducing their total. The policy used when merging buckets it set on a perinstance basis when created. Current policies are:•ACCUMULATE: create a new bucket with the same name as the largest of the twobuckets, and it has the sum of the two old bucket entries as its entry number. + + + + +The JavaSim User’s Manuals•MEAN: create a new bucket with the name as the mean of the two old buckets, and ithas the sum of the two old bucket entries as its entry number.•MAX: create a new bucket with the name as the largest of the two buckets, and it hasthe same number of entries.•MIN: create a new bucket with the name as the smallest of the two old buckets, andit has the same number of entries.public class Histogram extends PrecisionHistogram + +{ + +public Histogram (long maxIndex, int mergeChoice); + +public Histogram (long maxIndex); + +public void setValue (double value) throws IllegalArgumentException; + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, + + IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +public void print (); + +}; + +When an instance of Histogram is created, the maximum number of allowed buckets mustbe specified. The merging algorithm can also be provided, with the default being the MEANpolicy.6.4.3 SimpleHistogramAs with the Histogram class above, SimpleHistogram keeps the number of assignedbuckets to a minimum. However, it does this by pre-creating the buckets when it is created,i.e., the number of required buckets must be provided at the start. A width is the assigned foreach bucket, and whenever a value if given to the histogram class it is placed into the bucketwhose width it falls within.public class SimpleHistogram extends PrecisionHistogram + +{ + +public SimpleHistogram (double min, double max, long nbuckets); + +public SimpleHistogram (double min, double max, double w); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public double sizeByName (double name) throws IllegalArgumentException; + +public double Width (); + +public void print (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, + + IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +}; + +When the class is instantiated, the range of values it will receive must be provided. Then,either the width of each bucket or the actual number of buckets can be given. If the width is + + + + +The JavaSim User’s Manualsprovided, then the histogram automatically calculates the number of buckets, otherwise itcalculates the width for each bucket by equally dividing the range between each bucket.The values of a bucket can be obtained from the sizeByName method.The width of each bucket is provided by the Width method.6.4.4 QuantileThe Quantile class provides a means of obtaining the p-quantile of a distribution of values,i.e., the value below which p-percent of the distribution lies.public class Quantile extends PrecisionHistogram + +{ + +public Quantile (); + +public Quantile (double q) throws IllegalArgumentException; + +public double getValue (); + +public double range (); + +public void print (); + +}; + +The p-quantile probability range must be specified when the object is instantiated, and can beobtained via the range method.The actual quantile value is provided by getValue method. + + + + +The JavaSim User’s Manuals7. JavaSim classesFor convenience, in this section we shall include the JavaSim classes which programmers willuse when constructing simulations.7.1 Schedulerpackage arjuna.JavaSim.Simulation; + +public class Scheduler + +{ + + public static double CurrentTime (); + + public static synchronized void reset (); + + public static synchronized boolean simulationReset (); + + public static synchronized void startSimulation (); + +}; + + + + +The JavaSim User’s Manuals7.2 SimulationProcesspackage arjuna.JavaSim.Simulation; + +public class SimulationProcess extends Thread + +{ + +public final double Time (); + +public synchronized SimulationProcess next_ev ()throws SimulationException, + + NoSuchElementException; + +public final double evtime (); + +public void ActivateBefore (SimulationProcess p)throws SimulationException, + + RestartException; + +public void ActivateAfter (SimulationProcess p) throws SimulationException, + + RestartException; + +public void ActivateAt (double AtTime, boolean prior) + + throws SimulationException, RestartException; + +public void ActivateAt (double AtTime) throws SimulationException, + + RestartException; + +public void ActivateDelay (double Delay, boolean prior) + + throws SimulationException, RestartException; + +public void ActivateDelay (double Delay) throws SimulationException, + + RestartException; + +public void Activate () throws SimulationException, RestartException; + +public void ReActivateBefore (SimulationProcess p) + + throws SimulationException, RestartException; + +public void ReActivateAfter (SimulationProcess p) + + throws SimulationException, RestartException; + +public void ReActivateAt (double AtTime, boolean prior) + + throws SimulationException, RestartException; + +public void ReActivateAt (double AtTime) throws SimulationException, + + RestartException; + +public void ReActivateDelay (double Delay, boolean prior) + + throws SimulationException, RestartException; + +public void ReActivateDelay (double Delay) throws SimulationException, + + RestartException; + +public void ReActivate () throws SimulationException, RestartException; + +public void Cancel () throws RestartException; + +public void terminate (); + +public synchronized boolean idle (); + +public boolean passivated (); + +public boolean terminated (); + +public static SimulationProcess current () throws SimulationException; + +public static double CurrentTime (); + +public static void mainSuspend (); + +public static void mainResume () throws SimulationException; + +protected SimulationProcess (); + +protected void set_evtime (double time) throws SimulationException; + +protected void Hold (double t)throws SimulationException, RestartException; + +protected void Passivate () throws RestartException; + +}; + + + + +The JavaSim User’s Manuals7.3 SimulationExceptionpackage arjuna.JavaSim.Simulation; + +public class SimulationException extends Exception + +{ + +public SimulationException (); + +public SimulationException (String s); + +}; + +7.4 RestartExceptionpackage arjuna.JavaSim.Simulation; + +public class RestartException extends Exception + +{ + +public RestartException (); + +public RestartException (String s); + +}; + +7.5 RandomStreampackage arjuna.JavaSim.Distributions; + +public abstract class RandomStream + +{ + +public abstract double getNumber () throws IOException, + +ArithmeticException; + +public final double Error (); + +protected RandomStream (); + +protected RandomStream (long MGSeed, long LCGSeed); + +protected final double Uniform (); + +}; + +7.6 UniformStreampackage arjuna.JavaSim.Distributions; + +public class UniformStream extends RandomStream + +{ + +public UniformStream (double lo, double hi); + +public UniformStream (double lo, double hi, int StreamSelect); + +public UniformStream (double lo, double hi, int StreamSelect, + + long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; + +}; + + + + +The JavaSim User’s Manuals7.7 ExponentialStreampackage arjuna.JavaSim.Distributions; + +public class ExponentialStream extends RandomStream + +{ + +public ExponentialStream (double m); + +public ExponentialStream (double m, int StreamSelect); + +public ExponentialStream (double m, int StreamSelect, + + long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; + +}; + +7.8 ErlangStreampackage arjuna.JavaSim.Distributions; + +public class ErlangStream extends RandomStream + +{ + +public ErlangStream (double mean, double sd); + +public ErlangStream (double mean, double sd, int StreamSelect); + +public ErlangStream (double mean, double sd, int StreamSelect, + + long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; + +}; + +7.9 HyperExponentialStreampackage arjuna.JavaSim.Distributions; + +public class HyperExponentialStream extends RandomStream + +{ + +public HyperExponentialStream (double mean, double sd); + +public HyperExponentialStream (double mean, double sd, int StreamSelect); + +public HyperExponentialStream (double mean, double sd, int StreamSelect, + + long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; + +}; + +7.10 NormalStreampackage arjuna.JavaSim.Distributions; + +public class NormalStream extends RandomStream + +{ + +public NormalStream (double mean, double sd); + +public NormalStream (double mean, double sd, int StreamSelect); + +public NormalStream (double mean, double sd, int StreamSelect, + + long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; + +}; + + + + +The JavaSim User’s Manuals7.11 Drawpackage arjuna.JavaSim.Distributions; + +public class Draw + +{ + +public Draw (double p); + +public Draw (double p, int StreamSelect); + +public Draw (double p, int StreamSelect, long MGSeed, long LCGSeed); + +public boolean getBoolean () throws IOException; + +}; + +7.12 SimulationEntitypackage arjuna.JavaSim.Simulation; + +public class SimulationEntity extends SimulationProcess + +{ + +public void Interrupt (SimulationEntity toInterrupt, boolean immediate) + + throws SimulationException, + +RestartException; + +public final void trigger (); + +public void terminate (); + +protected SimulationEntity (); + +protected void Wait (double waitTime) throws SimulationException, + + RestartException, InterruptedException; + +protected void WaitFor (SimulationEntity controller, boolean reAct) + + throws SimulationException, RestartException, + +InterruptedException; + +protected void WaitFor (SimulationEntity controller) + + throws SimulationException, RestartException, InterruptedException; + +protected void WaitForTrigger (TriggerQueue _queue) + + throws SimulationException, RestartException, InterruptedException; + +protected void WaitForSemaphore (Semaphore _sem) throws RestartException; + +}; + +7.13 TriggerQueuepackage arjuna.JavaSim.Simulation; + +public class TriggerQueue + +{ + +public TriggerQueue (); + +public void finalize (); + +public synchronized void triggerFirst (boolean setTrigger) + + throws NoSuchElementException; + +public synchronized void triggerFirst () throws NoSuchElementException; + +public synchronized void triggerAll () throws NoSuchElementException; + +}; + + + + +The JavaSim User’s Manuals7.14 Semaphorepackage arjuna.JavaSim.Simulation; + +public class SemaphoreOutcome + +{ + + static final public int DONE = 0; + + static final public int NOTDONE = 1; + + static final public int WOULD_BLOCK = 2; + +}; + +public class Semaphore + +{ + +public Semaphore (); + +public Semaphore (long number); + +public synchronized long NumberWaiting (); + +public synchronized int Get (SimulationEntity toWait) + + throws RestartException; + +public synchronized int TryGet (SimulationEntity toWait) + + throws RestartException; + +public synchronized int Release (); + +}; + +7.15 Meanpackage arjuna.JavaSim.Statistics; + +public class Mean + +{ + +public Mean (); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public int numberOfSamples (); + +public double min (); + +public double max (); + +public double sum (); + +public double mean (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, + + IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +public void print (); + +}; + + + + +The JavaSim User’s Manuals7.16 Variancepackage arjuna.JavaSim.Statistics; + +public class Variance extends Mean + +{ + +public Variance (); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public double variance (); + +public double stdDev (); + +public double confidence (double value); + +public void print (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, + + IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +}; + +7.17 TimeVariancepackage arjuna.JavaSim.Statistics; + +public class TimeVariance extends Variance + +{ + +public TimeVariance (); + +public void reset (); + +public void setValue (double value) throws IllegalArgumentException; + +public double timeAverage (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, + + IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +}; + + + + +The JavaSim User’s Manuals7.18 PrecisionHistogrampackage arjuna.JavaSim.Statistics; + +public class PrecisionHistogram extends Variance + +{ + +public PrecisionHistogram (); + +public void finalize (); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public long numberOfBuckets (); + +public double sizeByIndex (long index) throws StatisticsException, + + IllegalArgumentException; + +public double sizeByName (double name) throws IllegalArgumentException; + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, + + IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +public void print (); + +}; + +7.19 Histogrampackage arjuna.JavaSim.Statistics; + +public class Histogram extends PrecisionHistogram + +{ + +public Histogram (long maxIndex, int mergeChoice); + +public Histogram (long maxIndex); + +public void setValue (double value) throws IllegalArgumentException; + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, + + IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +public void print (); + +}; + + + + +The JavaSim User’s Manuals7.20 SimpleHistogrampackage arjuna.JavaSim.Statistics; + +public class SimpleHistogram extends PrecisionHistogram + +{ + +public SimpleHistogram (double min, double max, long nbuckets); + +public SimpleHistogram (double min, double max, double w); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public double sizeByName (double name) throws IllegalArgumentException; + +public double Width (); + +public void print (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, + + IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +}; + +7.21 Quantilepackage arjuna.JavaSim.Statistics; + +public class Quantile extends PrecisionHistogram + +{ + +public Quantile (); + +public Quantile (double q) throws IllegalArgumentException; + +public double getValue (); + +public double range (); + +public void print (); + +}; + +7.22 StatisticsExceptionpackage arjuna.JavaSim.Statistics; + +public class StatisticsException extends Exception + +{ + +public StatisticsException (); + +public StatisticsException (String s); + +}; + + + + +The JavaSim User’s Manuals8. References[1]G. M. Birtwistle, O-J. Dahl, B. Myhrhaug, K. Nygaard, “Simula Begin”, AcademicPress, 1973[2]O�J. Dahl, B. Myhrhaug, K. Nygaard, “SIMULA Common Base Language”,Norwegian Computing Centre[3]Knuth Vol2, “Seminumerical Algorithms”, Addison�Wesley, 1969, p. 117.[4]R. Sedgewick, “Algorithms”, Addison�Wesley, Reading MA, 1983, pp. 36�38.[5]D. L. McCue and M. C. Little, “Computing Replica Placement in DistributedSystems”, Proceedings of the 2nd IEEE Workshop on the Management of ReplicatedData, November 1992, pp. 58�61.[6]I. Mitrani, “Simulation Techniques for Discrete Event Systems”, CambridgeUniversity Press, Cambridge, 1982.[7]M. C. Little and D. L. McCue, “The Replica Management System: a Scheme forFlexible and Dynamic Replication”, Proceedings of the 2nd International Workshopon Configurable Distributed Systems, March 1994, pp. 46�57.[8]G. D. Parrington et al, “The Design and Implementation of Arjuna”, BroadcastProject Technical Report, October 1994. + + + + +The JavaSim User’s Manuals9. IndexActivating a process................................12Contact person..........................................5Controlling a simulation.........................14example.............................................14Platform....................................................5Processes.................................................10class definition..................................11Re-activating a process...........................12Resetting a simulation.............................15Restarting a simulation...........................15Scheduler..................................................9class definition..................................10Simulation models....................................6continuous time..................................7continuous time-discrete event...........7discrete time........................................7Terminology.............................................6 From d825f795a7d79a9f65242333e787a2b703d84c09 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 20 Jul 2015 10:48:12 -0400 Subject: [PATCH 054/230] Raw text from rtf files Text taken from various RTF files in repo. Newer version of docs, but package names are wrong, footnotes missing/messed up etc. Definitely ONLY for a baseline. --- docs/rtf-rawtext | 1970 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1970 insertions(+) create mode 100644 docs/rtf-rawtext diff --git a/docs/rtf-rawtext b/docs/rtf-rawtext new file mode 100644 index 0000000..cb8ea41 --- /dev/null +++ b/docs/rtf-rawtext @@ -0,0 +1,1970 @@ +Object-Oriented + +Discrete-Event + +Simulation in Java + + + + + + + + + +JavaSim + + + +User’s Guide + +Public Release 0.3 + + + + + +Version 1.0 + + + + + + + + +Department of Computing Science, + +Computing Laboratory, + +The University, Newcastle upon Tyne, + +NE1 7RU, UK. +The JavaSim User’s Manuals + +Copyright Notice: + +Copyright 1995-1999, + +Computing Laboratory, University of Newcastle upon Tyne, UK. + +Permission to use, copy, modify and distribute the JavaSim software for evaluation, teaching and/or research purposes only and without fee is hereby granted, providing that this copyright and permission notice appear on all copies and supporting documentation, and that similar conditions are imposed on any individual or organisation to whom the program is distributed. + +The University of Newcastle upon Tyne makes no representation about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. +The JavaSim User’s Manuals + + + + +Table of Contents + +1. +PREFACE ................................................................................................................................................... +5 + +1.1 +AVAILABILITY ........................................................................................................................................... +5 +2. +INTRODUCTION....................................................................................................................................... +6 + +2.1 +SIMULATION MODELS................................................................................................................................ +6 + +2.2 +TERMINOLOGY.......................................................................................................................................... +6 + +2.3 +CATEGORIES OF SIMULATION MODELS....................................................................................................... +7 + +2.4 +EVENT SCHEDULING.................................................................................................................................. +7 +3. +BASIC SIMULATION CLASSES............................................................................................................. +9 + +3.1 +THE SIMULATION SCHEDULER ................................................................................................................... +9 + +3.1.1 +Scheduler class interface .............................................................................................................. +10 + +3.2 +SIMULATION PROCESSES ......................................................................................................................... +10 + +3.2.1 +SimulationProcess class interface ................................................................................................ +11 + +3.2.2 +Example ........................................................................................................................................ +14 + +3.3 +STARTING, ENDING AND CONTROLLING A SIMULATION............................................................................ +14 + +3.3.1Suspending the main thread ......................................................................................................... +15 + +3.3.2 +Exiting the application ................................................................................................................. +15 + +3.3.3 +Controlling the simulation............................................................................................................ +16 + +3.4 +RESETTING A SIMULATION....................................................................................................................... +16 + +3.4.1 +Example ........................................................................................................................................ +17 +4. +DISTRIBUTION FUNCTIONS............................................................................................................... +18 + +4.1 +RANDOMSTREAM.................................................................................................................................... +18 + +4.2 +UNIFORMSTREAM ................................................................................................................................... +19 + +4.3 +EXPONENTIALSTREAM ............................................................................................................................ +19 + +4.4 +ERLANGSTREAM ..................................................................................................................................... +20 + +4.5 +HYPEREXPONENTIALSTREAM ................................................................................................................. +20 + +4.6 +NORMALSTREAM .................................................................................................................................... +20 + +4.7 +DRAW ..................................................................................................................................................... +21 + +4.8 +EXAMPLE ................................................................................................................................................ +21 +5. +ADVANCED SIMULATION CLASSES ................................................................................................ +22 + +5.1 +ASYNCHRONOUS ENTITIES ...................................................................................................................... +23 + +5.2 +TRIGGER QUEUES .................................................................................................................................... +24 + +5.3 +SEMAPHORES .......................................................................................................................................... +25 + +5.4 +EXAMPLE ................................................................................................................................................ +26 +6. +STATISTICAL CLASSES ....................................................................................................................... +27 + +6.1 +MEAN ..................................................................................................................................................... +27 + +6.2 +VARIANCE............................................................................................................................................... +28 + +6.3 +TIMEVARIANCE ...................................................................................................................................... +28 + +6.4 +HISTOGRAMS .......................................................................................................................................... +29 + +6.4.1 +PrecisionHistogram...................................................................................................................... +29 + +6.4.2 +Histogram ..................................................................................................................................... +30 + +6.4.3 +SimpleHistogram .......................................................................................................................... +31 + +6.4.4 +Quantile ........................................................................................................................................ +32 +7. +JAVASIM CLASSES................................................................................................................................ +33 + +7.1 +SCHEDULER ............................................................................................................................................ +33 + +7.2 +SIMULATIONPROCESS ............................................................................................................................. +34 + +7.3 +SIMULATIONEXCEPTION.......................................................................................................................... +35 + +7.4 +RESTARTEXCEPTION ............................................................................................................................... +35 + +7.5 +RANDOMSTREAM.................................................................................................................................... +35 + +7.6 +UNIFORMSTREAM ................................................................................................................................... +35 + +7.7 +EXPONENTIALSTREAM ............................................................................................................................ +36 + +7.8 +ERLANGSTREAM ..................................................................................................................................... +36 + +The JavaSim User’s Manuals + + +7.9 HYPEREXPONENTIALSTREAM ................................................................................................................. +36 + +7.10 +NORMALSTREAM ............................................................................................................................... +36 + +7.11 +DRAW ................................................................................................................................................ +37 + +7.12 +SIMULATIONENTITY ........................................................................................................................... +37 + +7.13 +TRIGGERQUEUE ................................................................................................................................. +37 + +7.14 +SEMAPHORE ....................................................................................................................................... +38 + +7.15 +MEAN................................................................................................................................................. +38 + +7.16 +VARIANCE .......................................................................................................................................... +39 + +7.17 +TIMEVARIANCE.................................................................................................................................. +39 + +7.18 +PRECISIONHISTOGRAM....................................................................................................................... +40 + +7.19 +HISTOGRAM ....................................................................................................................................... +40 + +7.20 +SIMPLEHISTOGRAM ............................................................................................................................ +41 + +7.21 +QUANTILE .......................................................................................................................................... +41 + +7.22 +STATISTICSEXCEPTION ....................................................................................................................... +41 +8. +REFERENCES.......................................................................................................................................... +42 +9. +INDEX ....................................................................................................................................................... +43 + +The JavaSim User’s Manuals + + +1. Preface + +JavaSim is a Java implementation of the original C++SIM simulation toolkit, which was developed as a direct consequence of research conducted within the scope of the Arjuna project [8]. Therefore, it shares many of the same requirements: + +· easy to learn and use: the interface to the simulation library should be easy to understand. + +· correct abstraction: existing Java programmers should not find the simulation paradigm in conflict with the programming paradigm presented by Java. Simulation programmers used to other environments should find the transition to JavaSim straightforward. + +· flexible and extensible: it should be relatively easy for anyone to add new functionality to the system, such as new distribution functions. + +· efficiency: the system should be efficient and produce efficient simulation runs. Simulation packages which we have experience of tended to be extremely slow and consume large amounts of system resources. + +These requirements were realised in the following design decisions: + +the discrete-event process based simulation facilities provided by SIMULA [1][2] and its simulation classes and libraries have a considerable experience and user community which have found them to be successful for a wide variety of simulations. In later versions of the system additional simulation classes were added which provide extra functionality.1 + +inheritance was to be used throughout the design to even a greater extent than is already provided in SIMULA. This enables JavaSim to be more flexible and extensible, allowing new functionality to be added without affecting the overall system structure. For example, our I/O facilities, random number generators and probability distribution functions are entirely object-oriented, relying on inheritance to specialise their behaviour. + +1.1 Availability + +JavaSim has been tested with JDK 1.0.2 and 1.1.x on Solaris, linux, and Windows 95/NT 4.0. + +Technical questions about JavaSim can be sent to M.C.Little@ncl.ac.uk. + + + + + + + + + + + + + + + + + +1It is not necessary for the reader to know anything about the SIMULA programming language or its simulation classes, but such knowledge would aid in the understanding of the concepts and classes presented within. +The JavaSim User’s Manuals + + +2. Introduction + +This manual is not intended as a tutorial on the concepts of simulation in general, but rather how to write simulations in the JavaSim system. However, in order to be able to do this certain key simulation concepts will be briefly described. The interested reader is referred to [6] for detailed descriptions of these concepts and for further discussions on simulation modelling. + +2.1 Simulation models + +To model a system is to replace it by something which is: + +simpler and/or easier to study. + +equivalent to the original in all important respects. + +Therefore, before constructing the actual simulation, it is first necessary to abstract from the real system those components and their interactions that are considered important for the actual model. Building a simulation system model involves making certain simplifying assumptions to aid in the actual implementation and study of the simulation (without such simplifications the model would be as complex as the system it is meant to be simulating). However, the accuracy of the results obtained from the simulation depend upon how valid the initial assumptions are. For example, when considering the trajectory of a projectile through the atmosphere, the friction due to the air molecules is usually ignored. This assumption is valid only within certain boundaries: if the size of the projectile is on the same scale as the air molecules and its speed is sufficiently small then friction plays a significant role in its movement. + +Thus, the first step towards building a simulation model of a system is to determine exactly what are the important features which are to be measured, and what characteristics of the system have an affect on them. Any boundary conditions for the simulation (e.g., size of projectile) should be considered at the same time in order to simplify this procedure. Building a final model can often take several phases, where results from the initial model are compared with those obtained from the real system to determine their accuracy. Any discrepancies are taken into account by possibly adding new components to the simulation until, within certain error boundaries, the simulation results match those from the real system. + +2.2 Terminology + +The system components chosen for the simulation are termed simulation entities. Associated with each entity in the simulation are zero or more attributes that describe the state of the entity and which may vary during the course of the simulation. The interaction of entities and the changes they cause in the system state are termed events. + +The collection of these component attributes at any given time t defines the system state at t. In general, the system state can take any of a variety of values, and a given simulation run results in one realisation of a set of these values (the operation path) over the observation period. +The JavaSim User’s Manuals + +2.3 Categories of simulation models + +There are three categories of simulation model, described by the way in which the system state changes as a function of time: + +Continuous time: is one whose state varies continuously with time; such systems are usually described by sets of differential equations. + +Discrete time: the system is considered only at selected moments in time (the observation points). These moments are typically evenly spaced. Some economics models are examples of this, where economics data becomes available at fixed intervals. Changes in state are noticed only at observation points. By choosing a suitably small interval between observation points, a continuous time simulation can be approximated by a discrete time simulation. + +Continuous time-discrete event: the time parameter is (conceptually) continuous and the observation period is a real interval, usually starting at zero for simplicity. The operation path is completely determined by the sequence of event times (which need not be evenly spaced and can be of arbitrary increments) and by the discrete changes in the system state which take place at these times (i.e., the interactions of the events). In between consecutive event times the system state may vary continuously. Although it is possible to model the passage of real time by suitable event timing, this is not necessary for a discrete event system: the simulation model can advance its own internal time directly from one discrete event to another, taking any appropriate action to advance the state accordingly. + +It is this latter category of simulation modelling that JavaSim supports. Examples of discrete-event simulations are most queuing problems: entities (e.g., customers in a bank) arrive according to a given distribution and change the system state instantaneously (e.g., the number of customers in the queue). The operation paths for this system are step functions: they jump up (or down) by one when a customer joins (or leaves) the queue. + +2.4 Event scheduling + +Given that a simulation consists of a series of interacting events (the operation path), a simulator can be defined as that program devoted to the generation of operation paths. The simulator allows the creation of events and controls their interactions according to a set of rules, using an internal “clock” to keep track of the passage of (simulation) time. + +It maintains an event list, which indicates which events are to be scheduled for execution at specific simulation times. Events are executed according to their simulation times. There are two approaches to the way in which a simulator can schedule events to produce an operation path: + +event-oriented: there is a procedure associated with each type of event in the system: it performs the action required to handle that type of event and it is invoked every time such an event occurs. In an event-oriented approach, an operation path is obtained by taking a global view of everything that happens in the system; the manipulation of events is explicit. + +process-oriented: an operation path is obtained by the interacting of a number of processes running in parallel. The management of events is implicit in the management of the processes. The simulation system provides primitives for placing processes at particular points on the event list, removing and re-scheduling them. +The JavaSim User’s Manuals + +The process-oriented approach best fits with the object-oriented paradigm which we want to present to the programmer of JavaSim. As in SIMULA, simulation processes then become active objects which interact with each other through message passing and the simulation primitives. Refinements of these objects can then be obtained by inheriting from them and redefining the appropriate methods. +The JavaSim User’s Manuals + + +3. Basic simulation classes + +This chapter describes the core elements of the JavaSim simulation system. It is not intended as a tutorial on Java, and basic knowledge of the language is assumed. Note, all of the classes described in this section can be found in the arjuna.JavaSim.Simulation package. + +3.1 The simulation scheduler + +Chapter 2 described the event list and how simulation entities (processes) are executed according to their position on the event list (i.e., with increasing simulation time). In JavaSim, as in SIMULA, simulation processes are managed by a scheduler and are placed on a scheduler queue (the event list). Processes are executed in pseudo-parallel, i.e., only one process executes at any instance of real time, but many processes may execute concurrently at any instance of simulation time. The simulation clock is only advanced when all processes have been executed for the current instance of simulation time. + +Inactive processes are placed on to the scheduler queue, and when the current active process yields control to the scheduler (either because it has finished or been placed back onto the scheduler queue), the scheduler removes the process at the head of the queue and re-activates it.2 When the scheduler queue is empty, i.e., there are no further processes left to execute, the scheduler terminates the simulation. + +Scheduler Queue + + +t1 t2 t2 t3 + +Scheduler + + +t0 + +Active Process + + +Figure 1: Scheduler-Process Interaction + +As Figure 1 shows, the scheduler co-ordinates the entire simulation run, effectively monitoring the active and passive processes to enable it to determine when, and which, process to activate next. A simulation application cannot affect the scheduler directly, but can do so only indirectly through modifications of the scheduler queue. + +Note: the scheduler queue can be structured in a variety of ways, including a linear list or a tree. The implementation of the queue can depend upon the type of simulation being conducted. For example, a simulation which involves many (concurrent) processes would suffer from using a linear ordered queue which would typically have insertion and removal routines with overheads proportional to the number of entries in the queue. However, a linear + + + + + +2In SIMULA the currently active process is not removed from the head of the queue. +The JavaSim User’s Manuals + +list may work best for a low number of simulation processes. JavaSim comes with a suite of scheduler queue implementations which can be chosen when the system is built. + +3.1.1 Scheduler class interface + +The scheduler is an instance of the Scheduler class. It is the responsibility of the application programmer to ensure that only a single instance of this class is created. + +public class Scheduler +{ +public static double CurrentTime (); + +public static synchronized void reset (); +public static synchronized boolean simulationReset (); + +public static synchronized void startSimulation (); +}; + +The scheduler maintains the simulation clock, and the current value of this clock is obtained by invoking the CurrentTime() method. + +To enable multiple simulation runs to occur within a single application, it is possible to reset the scheduler and simulation clock by calling the reset() method. This causes the scheduler to remove all processes (simulation objects) currently registered on the scheduler queue and to invoke a class specific method on each of them which resets their states (detailed in the next section). Once this is finished the simulation is ready for an additional run. A suspended process is informed that it has been “reset” by having the method it called to originally suspend itself (i.e., place itself on the scheduler queue) raise the RestartSimulation exception, which the object should catch. It must then perform any work necessary to put itself back in a state ready for restarting the simulation, and should then suspend itself again before the simulation can be restarted (typically by calling Cancel.) + +3.2 Simulation processes + +As was described in the previous chapter, JavaSim supports the process-oriented approach to simulation, where each simulation entity can be considered a separate process. Therefore in JavaSim the entities within a simulation are represented by process objects. These are Java objects which have an independent thread of control associated with them at creation time, allowing them to convey the notion of activity necessary for participating in the simulation. + +In keeping with the object-oriented paradigm, and to make development of process objects simpler, classes inherit the process functionality from the appropriate base class (Process). This class defines all of the necessary operations for the simulation system to control the simulation entities within it, and for them to interact with it and each other. + +At any point in simulation time, a process can be in one (and only one) of the following states: + +active: the process has been removed from the head of the scheduler queue and its actions are being executed. + +suspended: the process is on the scheduler queue, scheduled to become active at a specified simulation time. + +passive: the process is not on the scheduler queue. Unless another process brings it back on to the queue it will not execute any further actions. +The JavaSim User’s Manuals + +terminated: the process is not on the scheduler queue and has no further actions to execute. Once a process has been terminated it cannot be made to execute further in the same simulation run. + +A process which is either active or suspended is said to be scheduled. + +3.2.1 SimulationProcess class interface + +The SimulationProcess class definition is shown below. Before considering how to build an example class derived from SimulationProcess we shall discuss the methods which it provides. + +Because the constructors are protected, it is not possible to create an instance of the SimulationProcess class, i.e., classes must be derived from this. Processes are threaded objects, and typically each thread package schedules execution of threads according to a priority. By default, all processes in JavaSim are created with the same priority, but this can be altered by calling the setPriority method of java.lang.Thread. Note, however, that priorities have no effect on a simulation run. + +public class SimulationProcess extends Thread +{ +public final double Time (); +public synchronized SimulationProcess next_ev () +throws SimulationException, NoSuchElementException; +The JavaSim User’s Manuals + +public final double evtime (); + +public void ActivateBefore (SimulationProcess p) + +throws SimulationException, RestartException; public void ActivateAfter (SimulationProcess p) throws SimulationException, +RestartException; +public void ActivateAt (double AtTime, boolean prior) + +throws SimulationException, RestartException; + +public void ActivateAt (double AtTime) throws SimulationException, RestartException; +public void ActivateDelay (double Delay, boolean prior) + +throws SimulationException, RestartException; + +public void ActivateDelay (double Delay) throws SimulationException, RestartException; +public void Activate () throws SimulationException, RestartException; + +public void ReActivateBefore (SimulationProcess p) + +throws SimulationException, RestartException; public void ReActivateAfter (SimulationProcess p) + +throws SimulationException, RestartException; public void ReActivateAt (double AtTime, boolean prior) + +throws SimulationException, RestartException; + +public void ReActivateAt (double AtTime) throws SimulationException, RestartException; + +public void ReActivateDelay (double Delay, boolean prior) throws SimulationException, +RestartException; + +public void ReActivateDelay (double Delay) throws SimulationException, RestartException; +public void ReActivate () throws SimulationException, RestartException; + +public void Cancel () throws RestartException; public void terminate (); +public synchronized boolean idle (); + +public boolean passivated (); public boolean terminated (); + +public static SimulationProcess current () throws SimulationException; public static double CurrentTime (); + +public static void mainSuspend (); +public static void mainResume () throws SimulationException; + +protected SimulationProcess (); + +protected void set_evtime (double time) throws SimulationException; protected void Hold (double t) throws SimulationException, + +RestartException; protected void Passivate () throws RestartException; + +protected void Suspend () throws RestartException; protected void Resume (); +}; + +There are five ways to activate a currently passive process, which results in it being brought to the correct position in the scheduler queue corresponding to its associated simulation time. If this is the head of the queue then it will become the active process. +The JavaSim User’s Manuals + +Activate(): this activates the process at the current simulation time. + +ActivateBefore(SimulationProcess proc): this positions the process in the scheduler queue before proc, and gives it the same simulation time. If proc is not present then a SimulationException will be thrown. + +ActivateAfter(SimulationProcess proc): this positions the process in the scheduler queue after proc, and gives it the same simulation time. If proc is not present then a SimulationException will be thrown. + +ActivateAt(double AtTime, boolean prior): the process is inserted into the scheduler queue at the position corresponding to the simulation time specified by AtTime. The default for this time is the current simulation time. The prior parameter is used to determine whether this process should be inserted before or after any processes with the same simulation time which may already be present in the queue. The default is false. + +ActivateDelay(double AtTime, boolean prior): the process is activated after a specified delay (AtTime). The process is inserted into the queue with the new simulation time, and the prior parameter is used to determine its ordering with respect to other processes in the queue with the same time. The default is false. + +There are correspondingly five ReActivate methods, which work on either passive or scheduled processes. These will not be described in detail as they have similar signatures to their Activate counterparts and work in the same way. + +Hold(double period) schedules the currently active process for re-activation after the simulated delay of period time. If this is invoked by the object (e.g., through a publicly available method) when it is not the current active process then it does nothing. + +evtime() returns the time at which the process is scheduled for activation. + +next_ev() returns a reference to the next process to be scheduled for execution. If the queue is empty then null is returned. + +The static method current() returns a reference to the currently active process. + +The current simulation time can be obtained by using either the CurrentTime() or Time() methods. The former method is static and as such can be invoked without an instance of the SimulationProcess class. + +Cancel() removes the process from the scheduler queue or suspends it if it is the currently active process. In either case, the process is set to the passive state. Passivate() functions similarly but only works on the currently active process, i.e., if it is invoked by the object (e.g., through a publicly available method) when it is not the current active process then it does nothing. + +terminate() removes the process from the scheduler queue or it is suspended if it is currently active. The process is then set to the terminated state, and can take no further part in this simulation run. + +idle() returns false if the process is either active or scheduled to become active. Otherwise true is returned. +The JavaSim User’s Manuals + +passivated() and terminated() indicate whether the process is in the passive or terminated state, respectively. + +Because SimulationProcess extends the java.lang.Thread class it is necessary for the simulation class to provide an implementation of the run method which will do the actual work for the process. If this method ever returns then the thread is destroyed. However, in order for JavaSim to detect the termination of the thread, the terminate() method must be used instead. + +3.2.2 Example + +To illustrate how a simulation process could be implemented from the Process class we shall consider the example of a queue of customers arriving at a bank. For this example, this involves three classes: + +Customer: instances of this class represent the customers in the queue. + +Queue: the instance of this class (queue) is the queue into which customers are places. + +Arrivals: this is the process which creates new customers for insertion in queue. + +The implementations of the Customer and Queue classes are not important to this example. The implementation of the Arrivals class could be: + +class Arrivals : public Process +{ +public: + +Arrivals () {}; ~Arrivals () {}; + +void Body (); +}; + +void Arrivals::Body () +{ +for (;;) +{ + +Customer* c = new Customer(); queue.insert(c); +Hold(20.0); +} +} + +3.3 Starting, ending and controlling a simulation + +When a SimulationProcess object is created in JavaSim it starts in the passive state, and must be activated before it can take part in the simulation. This is typically performed by the first process object to which control is transferred after the simulation is initially started. When writing JavaSim applications it is typical for the main thread to create a single controller process which is responsible for co-ordinating the entire simulation run. This creates and activates all of the simulation entities and the scheduler, and provides methods for suspending the main thread, thus allowing the controller object to execute, and exiting the application. An example controller interface is shown below, and the implementations for its methods will be described in the following sections: +The JavaSim User’s Manuals + +public class Controller extends SimulationProcess +{ +public Controller (); + +public void run (); + +public void await (); public void exit (); }; + +Because Controller is a simulation process itself, it derives from Simulationrocess and defines a run() method, which will do the actual controlling of the simulation. It also provides the following methods: + +await(): this method is called within the main application thread and suspends it, effectively transferring control the Controller process. + +exit(): this method is called to exit the simulation. + +3.3.1 Suspending the main thread + +When a threaded application is started it is important to realise that before any application threads are created, the Java virtual machine has already created one to run the application. This thread must be suspended before any simulation threads can run. + +The await() method of Controller is responsible for suspending this thread: + +public void await () +{ + +Resume(); SimulationProcess.mainSuspend(); +} + +It must first resume the thread associated with the Controller instance (since Controller is a SimulationProcess it starts in the passive state). This thread does not execute until the main thread is suspended by the call to the static mainSuspend method. + +The code for main would then become: + +public static void main (String[] args) +{ + +Controller c = new Controller(); c.await(); +} + +3.3.2 Exiting the application + +In order to exit a simulation application, the application can call System.exit. However, if it is only necessary to resume the main thread, then this can be accomplished by using the static mainResume method of the SimulationProcess class. Once the main thread has been resumed, it will continue to execute from the point it was suspended. In the example above, this would be from within the await method. The thread which calls mainResume can then suspend or terminate itself, depending upon the application requirements. +The JavaSim User’s Manuals + +public void exit () +{ +if (resumeMainRequired) +{ + +SimulationProcess.mainResume(); Suspend(); +} +else +System.exit(0); +} + +3.3.3 Controlling the simulation + +The controller’s body creates and activates the other simulation entities and the scheduler, and controls the overall simulation (e.g., resetting the system between consecutive runs). + +public void run () +{ +sc = new Scheduler(); + +// create and activate any other simulation entities + +sc->Resume(); // we must create a scheduler for the simulation to run + +execute the simulation + +print results + +sc->Suspend(); // suspend scheduler // suspend simulation entities + +Thread_Type::mainResume(); +} + +The final call to mainResume prevents run() from exiting, which we must do to ensure the application is portable between thread implementations. + +3.4 Resetting a simulation + +Resetting a simulation involves resetting all of the objects involved in it which will be required for subsequent runs. When the reset method is invoked on the Scheduler, this causes the current simulation run to be terminated, and all simulation objects which are currently suspended on the scheduler queue will be woken and the RestartException will be thrown to each. Any objects which are required to participate within a new simulation run must catch this exception, reset themselves to a state consistent with the start of another simulation, and then become suspended, to await the restart of the simulation. +The JavaSim User’s Manuals + +3.4.1 Example + +If we take the Arrivals example above and add a reset method then the code could be: + +public class Arrivals extends SimulationProcess +{ +public void run () +{ +for (;;) +{ +try +{ +for (;;) +{ + +Customer c = new Customer(); queue.insert(c); + +Hold(20.0); +} +} +catch (RestartException e) +{ +} +} +} +}; +The JavaSim User’s Manuals + + +4. Distribution Functions + +Many of the aspects of the real world which a simulation attempts to model have properties which correspond to various distribution functions, e.g., inter-arrival rates of customers at a bank queue. Therefore, simulation studies require sources of random numbers. Ideally these sources should produce an endless stream of such numbers, but to do so either requires specialised hardware or the ability to store an infinite (large) table of such numbers generated in advance. + +Without such aids, which are either impractical or not generally available, the alternative is to use numerical algorithms. No deterministic algorithm can produce a sequence of numbers that would have all of the properties of a truly random sequence [3]. However, for all practical purposes it is only necessary that the numbers produced appear random, i.e., pass certain statistical tests for randomness. Although these generators produce pseudo-random numbers, we continue to call the random number generators. + +The starting point for generating arbitrary distribution functions is to produce a standard uniform distribution. As we shall see, all other distributions can be produced based upon this. (Interested readers are referred to [6] for a more complete treatment of this topic). All of the distribution functions in JavaSim rely upon inheritance to specialise the behaviour obtained from the uniform distribution class. These classes can be found in the arjuna.JavaSim.Distributions package. + +4.1 RandomStream + +The actual uniform distribution class is called RandomStream. This returns a series of random numbers uniformly distributed between 0 and 1. We experimented with several random number generators before settling on a shuffle of a multiplicative generator with a linear congruential generator, which provides a reasonably uniform stream of pseudo-random numbers. + +public abstract class RandomStream +{ + +public abstract double getNumber () throws IOException, ArithmeticException; + +public final double Error (); + +protected RandomStream (); +protected RandomStream (long MGSeed, long LCGSeed); + +protected final double Uniform (); }; + +The multiplicative generator uses the following algorithm3: + +Y[i+1] = Y[i] * 55 mod 226 + +, where the period is 224, and the initial seed must be odd. + +4. Distribution Functions + +Many of the aspects of the real world which a simulation attempts to model have properties which correspond to various distribution functions, e.g., inter-arrival rates of customers at a bank queue. Therefore, simulation studies require sources of random numbers. Ideally these sources should produce an endless stream of such numbers, but to do so either requires specialised hardware or the ability to store an infinite (large) table of such numbers generated in advance. + +Without such aids, which are either impractical or not generally available, the alternative is to use numerical algorithms. No deterministic algorithm can produce a sequence of numbers that would have all of the properties of a truly random sequence [3]. However, for all practical purposes it is only necessary that the numbers produced appear random, i.e., pass certain statistical tests for randomness. Although these generators produce pseudo-random numbers, we continue to call the random number generators. + +The starting point for generating arbitrary distribution functions is to produce a standard uniform distribution. As we shall see, all other distributions can be produced based upon this. (Interested readers are referred to [6] for a more complete treatment of this topic). All of the distribution functions in JavaSim rely upon inheritance to specialise the behaviour obtained from the uniform distribution class. These classes can be found in the arjuna.JavaSim.Distributions package. + +4.1 RandomStream + +The actual uniform distribution class is called RandomStream. This returns a series of random numbers uniformly distributed between 0 and 1. We experimented with several random number generators before settling on a shuffle of a multiplicative generator with a linear congruential generator, which provides a reasonably uniform stream of pseudo-random numbers. + +public abstract class RandomStream + + +{ +public abstract double getNumber () throws IOException, ArithmeticException; + +public final double Error (); + +protected RandomStream (); + +protected RandomStream (long MGSeed, long LCGSeed); + +protected final double Uniform (); }; + + + + + + + + + + + + + + + + +The multiplicative generator uses the following algorithm3: + +Y[i+1] = Y[i] * 55 mod 226 + +, where the period is 224, and the initial seed must be odd. + + + + +3Thanks to Professor I. Mitrani for his help in developing this. +The Uniform() method uses the linear congruential generator (seed is LCGSeed, with the default value of 1878892440L) based on the algorithm in [4], and the results of this are shuffled with the multiplicative generator (see is MGSeed, with a default value of 772531L) as suggested by Maclaren and Marsaglia [3], to obtain a sufficiently uniform random distribution, which is then returned. + +The Error() method returns a chi-square error measure on the uniform distribution function. + +By abstract method getNumber must be provided by derived classes, and is used to obtain a uniform means of accessing random numbers. + +The RandomStream class returns a large sequence of random numbers, whose period is + +2^24. However, unless the seeds are modified when each random distribution class is created, the starting position in this sequence will always be the same, i.e., the same sequence of numbers will be obtained. To prevent this, each class derived from RandomStream has an additional parameter for one of its constructors which indicates the offset in this sequence from which to begin sampling. + +4.2 UniformStream + +The UniformStream class inherits from RandomStream and returns random numbers uniformly distributed over a range specified when the instance is created. + +public class UniformStream extends RandomStream + + +{ +public UniformStream (double lo, double hi); + +public UniformStream (double lo, double hi, int StreamSelect); public UniformStream (double lo, double hi, int StreamSelect, + +long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; }; + + +The range covers the interval specified by lo and hi. StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. + +4.3 ExponentialStream + +The ExponentialStream class returns an exponentially distributed stream of random numbers with mean value specified by mean. + +public class ExponentialStream extends RandomStream + + +{ +public ExponentialStream (double mean); + +public ExponentialStream (double mean, int StreamSelect); public ExponentialStream (double mean, int StreamSelect, + +long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; }; + +StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. + +4.4 ErlangStream + +ErlangStream returns an erlang distribution with mean mean and standard deviation sd. + +public class ErlangStream extends RandomStream + + +{ +public ErlangStream (double mean, double sd); + +public ErlangStream (double mean, double sd, int StreamSelect); public ErlangStream (double mean, double sd, int StreamSelect, + +long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; }; + + +StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. + +4.5 HyperExponentialStream + +The HyperExponential class returns a hyper-exponential distribution of random numbers, with mean mean and standard deviation sd. + +public class HyperExponentialStream extends RandomStream + + +{ +public HyperExponentialStream (double mean, double sd); + +public HyperExponentialStream (double mean, double sd, int StreamSelect); public HyperExponentialStream (double mean, double sd, int StreamSelect, + +long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; }; + + +StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. + +4.6 NormalStream + +NormalStream returns a normal distribution of random numbers, with mean mean and standard deviation sd. operator() uses the polar method due to Box, Muller, and + +Marsaglia [3]. + +public class NormalStream extends RandomStream + + +{ +public NormalStream (double mean, double sd); + +public NormalStream (double mean, double sd, int StreamSelect); public NormalStream (double mean, double sd, int StreamSelect, + +long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; }; + +StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. + +4.7 Draw + +The Draw class is the exception to the inheritance rule, instead using RandomStream through delegation (for historical reasons). This returns true with the probability prob, and false otherwise. + +public class Draw + + +{ +public Draw (double p); +public Draw (double p, int StreamSelect); +public Draw (double p, int StreamSelect, long MGSeed, long LCGSeed); + +public boolean getBoolean () throws IOException; }; + + +StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. + +4.8 Example +5. Advanced Simulation Classes + +Simulations formed by the interaction of objects derived from SimulationProcess can be considered causal (synchronous) in nature: events occur at specific times and form a well defined order. However, it is sometimes necessary to simulate asynchronous real world events, e.g., processor interrupts. To do this requires finer-grained control of the scheduling of simulation processes than it provided by the scheduler; the scheduler simply activates according to simulation time, whereas asynchronous events may have different activation rules, e.g., activate when another process is terminated. + +The SimulationEntity class and others to be described in the following sections gives this required level of control to the user, extending the types of simulation which are possible with JavaSim. Asynchronous simulation processes are derived from SimulationEntity, but the implementation enables these asynchronous process to execute in the same simulation as SimulationProcess objects. However, because these processes are suspended and resumed outside of the control of the scheduler, it is possible for deadlock situations to occur. Therefore, some care must be taken when using these classes. + +In addition to the active, suspended, passive and terminated states which a simulation process can be in, asynchronous objects can also be in the following states: + +• waiting: the process is suspended waiting for a specific event to occur (e.g., a process to be terminated). The waiting process is not placed on the scheduler queue. +interrupted: the process, which was in the waiting state, has been interrupted from this before the condition it was awaiting occurred. + +The conditions on which a process can wait, and can thus be interrupted from, are: + +time: a process can attempt to wait for a specified period of simulation time. + +process termination: a process can wait for the termination of another SimultionEntity process before continuing execution. + +semaphore: critical regions of a simulation can be protected by semaphores, where only a single Entity process can acquire the semaphore; other processes are suspended until the semaphore is released. + +user specific: it is possible for other asynchronous conditions to occur which are not covered above. +The classes to be described in this chapter can be found in the arjuna.JavaSim.Simulation package. +5.1 Asynchronous entities + +public class SimulationEntity extends SimulationProcess + + +{ +public void Interrupt (SimulationEntity toInterrupt, boolean immediate) throws SimulationException, RestartException; + +public final void trigger (); public void terminate (); + +protected SimulationEntity (); + +protected void Wait (double waitTime) throws SimulationException, RestartException, InterruptedException; + +protected void WaitFor (SimulationEntity controller, boolean reAct) throws SimulationException, + +RestartException, InterruptedException; protected void WaitFor (SimulationEntity controller) + +throws SimulationException, RestartException, InterruptedException; + +protected void WaitForTrigger (TriggerQueue _queue) + +throws SimulationException, RestartException, InterruptedException; + +protected void WaitForSemaphore (Semaphore _sem) throws RestartException; }; + + +Because SimulationEntity is derived from SimulationProcess, all of the usual simulation methods are available, and can be used in conjunction with those provided by the derived class. + +Interrupt(SimulationEntity toInterrupt, boolean immediate) interrupts the asynchronous process toInterrupt, which must not be terminated and must be in the waiting state. toInterrupt becomes the next active process (i.e., it is moved to the head of the scheduler queue). If immediate is true then the current process is suspended immediately; it is scheduled for reactivation at the current simulation time. Otherwise, the current process continues to execute and can be suspended later in an application specific way. + +Because it is now possible for one process to wait for another to terminate the terminate() method must differ from that provided by SimulationProcess. Before the terminating process ends it moves the waiting process to the head of the scheduler queue, and then calls SimulationProcess.terminate(). Currently only a single process can wait on this termination condition, but this may change in future versions. + +Wait(double t) is similar to Hold(double t), with the exception that the process is moved into the waiting state as well as being placed on the scheduler queue. It is therefore possible to interrupt this process before the wait period has elapsed. true is returned if the process was interrupted, otherwise false is returned. + +WaitFor(SimulationEntity controller, boolean reAct) suspends the current process until controller has terminated. The process is placed in the waiting state. If reAct is true then controller is moved to the head of the scheduler queue to become the next activate process, otherwise (the default behaviour) the application will have to activate controller. If the waiting process is interrupted then the method returns +true, otherwise false. The controller and the current process must be different, i.e., it is not possible for a process to wait for itself. + +Trigger queues are lists maintained by the simulation system of process waiting for specific events to occur, which are outside the scope of those described above. These will be described in the next section. WaitForTrigger(TriggerQueue queue) places the current process on the trigger queue _queue, and passivates it. As with the previous methods, the return value indicates whether the process was interrupted, or triggered. + +In addition to trigger queues, process can wait on semaphores, allowing the creation of monitor regions, for example. WaitForSemaphore(Semaphore sem) causes the current process to attempt to exclusively acquire the semaphore. If this is not possible then the process is suspended. Currently, a process which is waiting on a semaphore cannot be interrupted, and is not placed into the waiting state. As such, when this method returns the semaphore has been acquired. + +5.2 Trigger queues + +Processes waiting for the same application controlled event can be grouped together into a TriggerQueue, as described in the previous section. When this event occurs the application can use one of the two trigger methods to activate the queue members. This involves placing the process(es) onto the head of the scheduler queue. + +public class TriggerQueue + + +{ +public TriggerQueue (); public void finalize (); + +public synchronized void triggerFirst (boolean setTrigger) + +throws NoSuchElementException; public synchronized void triggerFirst () throws NoSuchElementException; + +public synchronized void triggerAll () throws NoSuchElementException; }; + + +triggerAll(): triggers all of the members on the queue. + +triggerFirst(boolean setTrigger): triggers only the head of the queue. If setTrigger is true (the default behaviour) then the trigger() method of the SimulationEntity object is also invoked. + +If the queue is not empty when it is garbage collected by the virtual machine then all remaining queue members will be triggered, and placed back onto the scheduler queue. +5.3 Semaphores + +Application code can be protected from simulation processes through semaphores, which are instances of the Semaphore class. + +public class SemaphoreOutcome + + +{ + +static final public int DONE = 0; static final public int NOTDONE = 1; +static final public int WOULD_BLOCK = 2; + +}; + +public class Semaphore + +{ +public Semaphore (); + +public Semaphore (long number); + +public synchronized long NumberWaiting (); + +public synchronized int Get (SimulationEntity toWait) + +throws RestartException; public synchronized int TryGet (SimulationEntity toWait) +throws RestartException; +public synchronized int Release (); }; + + +A semaphore can be used to restrict the number of processes which can use shared resources. The number of shared resources available must be presented to the Semaphore when it is created. By default, a Semaphore will assume that there is only a single resource, in which case a semaphore is exclusively acquired by a simulation process. However, it is possible to create a Semaphore with different resource counts. + +A Semaphore can exist in one of two states: + +available: the semaphore is available to be acquired. + +unavailable: a process (or number of processes) currently has the semaphore. If another process attempts to acquire the semaphore then it is automatically suspended until the semaphore is available, i.e., until a resource has been freed. + +To be able to manipulate semaphores, a process must be derived from the + +SimulationEntity class. To obtain the semaphore, the Get(SimulationEntity toWait) method should be used, where toWait is the calling process. If the semaphore is unavailable then the process referenced by toWait is suspended. If the semaphore is successfully acquired, then SemaphoreOutcome.DONE is returned, otherwise +SemaphoreOutcome.NOTDONE. + +If the process wishes to attempt to acquire the semaphore but does not want to block in the situation where the semaphore is currently unavailable, then it can use the TryGet method, which takes the same parameter as Get. However, unlike Get, TryGet will return SemaphoreOutcome.WOULD_BLOCK in the case where the caller would normally block if it had called Get, i.e., the semaphore is currently in use. If the semaphore is not being used, then TryGet will acquire it for the caller. Errors will result in +SemaphoreOutcome.NOT_DONE being returned. + +When the semaphore is no longer required Release() should be called by the process which currently has it. Successful release of the semaphore results in +SemaphoreOutcome.DONE being returned, otherwise Semaphore.NOTDONE is returned. + +NumberWaiting() returns the number of processes currently suspended waiting for the semaphore. + +If the semaphore is garbage collected with processes waiting for it then an error message is displayed. No further action is attempted on behalf of these waiting processes. + +5.4 Example +6. Statistical Classes + +The purpose of a simulation typically involves the gathering of relevant statistical information, e.g., the average length of time spent in a queue. JavaSim provides a number of different classes for gathering such information. These classes can be found in the arjuna.JavaSim.Statistics package. + +6.1 Mean + +This is the basic class from which others are derived, gathering statistical information on the samples provided to it. + +public class Mean + + +{ + +public Mean (); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public int numberOfSamples (); public double min (); + +public double max (); public double sum (); public double mean (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +public void print (); }; + + +New values can be supplied to the instance of the Mean class using the setValue(double) method. The number of samples which have been give can be obtained from numberOfSamples(). + +The maximum and minimum of the samples supplied can be obtained from the max() and min() methods, respectively. + +sum() returns the summation of all of the samples: + +n +Σ Si + +i=1 + +mean() returns the mean value: + +n +1_n Σ Si + +i=1 + +An instance of Mean can be reset between samples using the reset() method. +If the state of a Mean object is required to be saved between simulation runs then it can be made persistent by using either of the saveState methods. The first instance saves the state to a file, whereas the second can be used to save the state to an instance of the java.io.DataOutputStream class. There are likewise two corresponding ways in which the state can be restored. + +The print method simply prints to System.out the current state of the object. + +6.2 Variance + +This class is derived from Mean, and in addition to providing the above mentioned functionality also provides the following: + +public class Variance extends Mean + + +{ + +public Variance (); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public double variance (); public double stdDev (); + +public double confidence (double value); + +public void print (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; }; + + +variance() returns the variance of the samples: + +1 +n + + +2 + +_ +Σ (Si-Mean()) + +n + + + +i=1 + + +stdDev() returns the standard deviation of the samples, which is the square root of the variance. + +6.3 TimeVariance + +The TimeVariance class makes it possible to determine how long, in terms of simulation time, specific values were maintained. In effect, values are weighted according to the length of time that they were held, whereas with the Variance class only the specific values are taken into account. + +3Thanks to Professor I. Mitrani for his help in developing this. + +If the state of a Mean object is required to be saved between simulation runs then it can be made persistent by using either of the saveState methods. The first instance saves the state to a file, whereas the second can be used to save the state to an instance of the java.io.DataOutputStream class. There are likewise two corresponding ways in which the state can be restored. + +The print method simply prints to System.out the current state of the object. + +6.2 Variance + +This class is derived from Mean, and in addition to providing the above mentioned functionality also provides the following: + +public class Variance extends Mean + + +{ + +public Variance (); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public double variance (); public double stdDev (); +public double confidence (double value); + +public void print (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, IOException; +public boolean restoreState (DataInputStream iFile) throws IOException; }; + + + + + + + + + + + + + + + + +variance() returns the variance of the samples: + +1 +n + + +2 + +_ +Σ (Si-Mean()) + +n + + + +i=1 + + +stdDev() returns the standard deviation of the samples, which is the square root of the variance. +6.3 TimeVariance + +The TimeVariance class makes it possible to determine how long, in terms of simulation time, specific values were maintained. In effect, values are weighted according to the length of time that they were held, whereas with the Variance class only the specific values are taken into account. +public class TimeVariance extends Variance + + +{ + +public TimeVariance (); + +public void reset (); + +public void setValue (double value) throws IllegalArgumentException; + +public double timeAverage (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, IOException; +public boolean restoreState (DataInputStream iFile) throws IOException; }; + + +Whenever a value is supplied to an instance of the TimeVariance class the simulation time at which it occurred is also noted. If a value changes, or the timeAverage() method is invoked, then the time it has been maintained for is calculated and the statistical data is updated. + +6.4 Histograms + +Mean, Variance, and TimeVariance provide a snapshot of values in the simulation. However, histograms can yield better information about how a range of values change over the course of a simulation run. This information can be viewed in a number of ways, but typically it is plotted in graphical form. + +A histogram typically maintains a slot for each value, or range of values, given to it. These slots are termed buckets, and the way in which these buckets are maintained and manipulated gives rise to a variety of different histogram implementations. The following sections detail this variety of different histogram classes. + +6.4.1 PrecisionHistogram + +The PrecisionHistogram class represents the core histogram class from which all others are derived. This class keeps an exact tally of all values given to it, i.e., a bucket is created for each value. Although buckets are only created when requires, over the course of a simulation this can still utilise a large amount of resources, and so other, less precise, histogram classes are provided. +public class PrecisionHistogram extends Variance + + +{ + +public PrecisionHistogram (); + +public void finalize (); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public long numberOfBuckets (); + +public double sizeByIndex (long index) throws StatisticsException, IllegalArgumentException; +public double sizeByName (double name) throws IllegalArgumentException; + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, IOException; +public boolean restoreState (DataInputStream iFile) throws IOException; + +public void print (); }; + + +As with the Variance class from which it is derived, and whose methods are obviously available, values can be supplied to the histogram through the setValue(double) method. + +The number of buckets maintained by the histogram can be obtained from the numberOfBuckets() method. Each bucket is uniquely named by the values it contains, and can also be accessed by its index in the entire list of buckets. + +There are therefore two ways of getting the number of entries in a bucket: + +• by the index number of the bucket: sizeByIndex(long index). + +• by the unique name of the bucket: sizeByName(double name). + +If the bucket does not exist then each of these methods throws + +IllegalArgumentException. + +It is possible to output the contents of the histogram to standard output using the print()method. + +6.4.2 Histogram + +The problem with the PrecisionHistogram class is that it can use up a lot of system resources, especially over the course of a long simulation. Histogram attempts to alleviate this by presenting a histogram which is less accurate, but consumes less resources. Instead of maintaining a bucket for each individual value, it keeps a fixed number of buckets. Initially each bucket will store separate values as in the PrecisionHistogram, but when the number of required buckets would exceed the specified maximum number it merges pairs of buckets, thus reducing their total. The policy used when merging buckets it set on a per instance basis when created. Current policies are: + +ACCUMULATE: create a new bucket with the same name as the largest of the two buckets, and it has the sum of the two old bucket entries as its entry number. +MEAN: create a new bucket with the name as the mean of the two old buckets, and it has the sum of the two old bucket entries as its entry number. + +MAX: create a new bucket with the name as the largest of the two buckets, and it has the same number of entries. +MIN: create a new bucket with the name as the smallest of the two old buckets, and it has the same number of entries. + +public class Histogram extends PrecisionHistogram +{ +public Histogram (long maxIndex, int mergeChoice); public Histogram (long maxIndex); + +public void setValue (double value) throws IllegalArgumentException; + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, IOException; +public boolean restoreState (DataInputStream iFile) throws IOException; + +public void print (); }; + + +When an instance of Histogram is created, the maximum number of allowed buckets must be specified. The merging algorithm can also be provided, with the default being the MEAN policy. + +6.4.3 SimpleHistogram + +As with the Histogram class above, SimpleHistogram keeps the number of assigned buckets to a minimum. However, it does this by pre-creating the buckets when it is created, i.e., the number of required buckets must be provided at the start. A width is the assigned for each bucket, and whenever a value if given to the histogram class it is placed into the bucket whose width it falls within. + +public class SimpleHistogram extends PrecisionHistogram + + +{ + +public SimpleHistogram (double min, double max, long nbuckets); public SimpleHistogram (double min, double max, double w); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public double sizeByName (double name) throws IllegalArgumentException; + +public double Width (); + +public void print (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, IOException; +public boolean restoreState (DataInputStream iFile) throws IOException; }; + + +When the class is instantiated, the range of values it will receive must be provided. Then, either the width of each bucket or the actual number of buckets can be given. If the width is +provided, then the histogram automatically calculates the number of buckets, otherwise it calculates the width for each bucket by equally dividing the range between each bucket. +The values of a bucket can be obtained from the sizeByName method. + +The width of each bucket is provided by the Width method. + +6.4.4 Quantile + +The Quantile class provides a means of obtaining the p-quantile of a distribution of values, i.e., the value below which p-percent of the distribution lies. + +public class Quantile extends PrecisionHistogram + + +{ +public Quantile (); + +public Quantile (double q) throws IllegalArgumentException; + +public double getValue (); public double range (); + +public void print (); }; + + +The p-quantile probability range must be specified when the object is instantiated, and can be obtained via the range method. + +The actual quantile value is provided by getValue method. +7. JavaSim classes + +For convenience, in this section we shall include the JavaSim classes which programmers will use when constructing simulations. +7.1 Scheduler + +package arjuna.JavaSim.Simulation; + + +public class Scheduler + +{ + +public static double CurrentTime (); + +public static synchronized void reset (); + +public static synchronized boolean simulationReset (); + +public static synchronized void startSimulation (); + + +}; +7.2 SimulationProcess + +package arjuna.JavaSim.Simulation; + + +public class SimulationProcess extends Thread + +{ +public final double Time (); + +public synchronized SimulationProcess next_ev ()throws SimulationException, NoSuchElementException; + +public final double evtime (); + +public void ActivateBefore (SimulationProcess p)throws SimulationException, RestartException; +public void ActivateAfter (SimulationProcess p) throws SimulationException, RestartException; +public void ActivateAt (double AtTime, boolean prior) +throws SimulationException, RestartException; public void ActivateAt (double AtTime) throws SimulationException, + +RestartException; public void ActivateDelay (double Delay, boolean prior) + +throws SimulationException, RestartException; public void ActivateDelay (double Delay) throws SimulationException, + +RestartException; public void Activate () throws SimulationException, RestartException; + +public void ReActivateBefore (SimulationProcess p) + +throws SimulationException, RestartException; public void ReActivateAfter (SimulationProcess p) + +throws SimulationException, RestartException; public void ReActivateAt (double AtTime, boolean prior) + +throws SimulationException, RestartException; public void ReActivateAt (double AtTime) throws SimulationException, + +RestartException; public void ReActivateDelay (double Delay, boolean prior) + +throws SimulationException, RestartException; public void ReActivateDelay (double Delay) throws SimulationException, + +RestartException; public void ReActivate () throws SimulationException, RestartException; + +public void Cancel () throws RestartException; public void terminate (); + +public synchronized boolean idle (); + +public boolean passivated (); public boolean terminated (); + +public static SimulationProcess current () throws SimulationException; public static double CurrentTime (); + + +public static void mainSuspend (); + + +public static void mainResume () throws SimulationException; + +protected SimulationProcess (); + +protected void set_evtime (double time) throws SimulationException; protected void Hold (double t)throws SimulationException, RestartException; protected void Passivate () throws RestartException; + + +}; +7.3 SimulationException + +package arjuna.JavaSim.Simulation; + + +public class SimulationException extends Exception + +{ +public SimulationException (); + +public SimulationException (String s); }; + + +7.4 RestartException + +package arjuna.JavaSim.Simulation; + + +public class RestartException extends Exception + +{ +public RestartException (); + +public RestartException (String s); }; + + +7.5 RandomStream + +package arjuna.JavaSim.Distributions; + + +public abstract class RandomStream + +{ + +public abstract double getNumber () throws IOException, ArithmeticException; + +public final double Error (); + +protected RandomStream (); + +protected RandomStream (long MGSeed, long LCGSeed); + +protected final double Uniform (); }; + + +7.6 UniformStream + +package arjuna.JavaSim.Distributions; + + +public class UniformStream extends RandomStream + +{ +public UniformStream (double lo, double hi); + +public UniformStream (double lo, double hi, int StreamSelect); public UniformStream (double lo, double hi, int StreamSelect, + +long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; }; + +7.7 ExponentialStream + +package arjuna.JavaSim.Distributions; + + +public class ExponentialStream extends RandomStream + +{ +public ExponentialStream (double m); + +public ExponentialStream (double m, int StreamSelect); public ExponentialStream (double m, int StreamSelect, + +long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; }; + + +7.8 ErlangStream + +package arjuna.JavaSim.Distributions; + + +public class ErlangStream extends RandomStream + +{ +public ErlangStream (double mean, double sd); + +public ErlangStream (double mean, double sd, int StreamSelect); public ErlangStream (double mean, double sd, int StreamSelect, + +long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; }; + + +7.9 HyperExponentialStream + +package arjuna.JavaSim.Distributions; + + +public class HyperExponentialStream extends RandomStream + +{ +public HyperExponentialStream (double mean, double sd); + +public HyperExponentialStream (double mean, double sd, int StreamSelect); public HyperExponentialStream (double mean, double sd, int StreamSelect, + +long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; }; + + +7.10 NormalStream + +package arjuna.JavaSim.Distributions; + + +public class NormalStream extends RandomStream + +{ +public NormalStream (double mean, double sd); + +public NormalStream (double mean, double sd, int StreamSelect); public NormalStream (double mean, double sd, int StreamSelect, + +long MGSeed, long LCGSeed); + +public double getNumber () throws IOException, ArithmeticException; }; + +7.11 Draw + +package arjuna.JavaSim.Distributions; + + +public class Draw + +{ +public Draw (double p); +public Draw (double p, int StreamSelect); +public Draw (double p, int StreamSelect, long MGSeed, long LCGSeed); + +public boolean getBoolean () throws IOException; }; + + +7.12 SimulationEntity + +package arjuna.JavaSim.Simulation; + + +public class SimulationEntity extends SimulationProcess + +{ + +public void Interrupt (SimulationEntity toInterrupt, boolean immediate) throws SimulationException, +RestartException; +public final void trigger (); public void terminate (); + +protected SimulationEntity (); + +protected void Wait (double waitTime) throws SimulationException, RestartException, InterruptedException; + +protected void WaitFor (SimulationEntity controller, boolean reAct) throws SimulationException, RestartException, +InterruptedException; +protected void WaitFor (SimulationEntity controller) +throws SimulationException, RestartException, InterruptedException; + +protected void WaitForTrigger (TriggerQueue _queue) + +throws SimulationException, RestartException, InterruptedException; + +protected void WaitForSemaphore (Semaphore _sem) throws RestartException; }; + + +7.13 TriggerQueue + +package arjuna.JavaSim.Simulation; + + +public class TriggerQueue + +{ + +public TriggerQueue (); public void finalize (); + +public synchronized void triggerFirst (boolean setTrigger) + +throws NoSuchElementException; public synchronized void triggerFirst () throws NoSuchElementException; + +public synchronized void triggerAll () throws NoSuchElementException; }; + +7.14 Semaphore + +package arjuna.JavaSim.Simulation; + + +public class SemaphoreOutcome + +{ + +static final public int DONE = 0; static final public int NOTDONE = 1; +static final public int WOULD_BLOCK = 2; +}; + +public class Semaphore + +{ +public Semaphore (); + +public Semaphore (long number); + +public synchronized long NumberWaiting (); + +public synchronized int Get (SimulationEntity toWait) + +throws RestartException; public synchronized int TryGet (SimulationEntity toWait) +throws RestartException; +public synchronized int Release (); }; + + +7.15 Mean + +package arjuna.JavaSim.Statistics; + + +public class Mean + +{ + +public Mean (); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public int numberOfSamples (); public double min (); + +public double max (); public double sum (); public double mean (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, IOException; +public boolean restoreState (DataInputStream iFile) throws IOException; + +public void print (); }; + +7.16 Variance + +package arjuna.JavaSim.Statistics; + + +public class Variance extends Mean + +{ + +public Variance (); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public double variance (); public double stdDev (); +public double confidence (double value); + +public void print (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, IOException; +public boolean restoreState (DataInputStream iFile) throws IOException; }; + + +7.17 TimeVariance + +package arjuna.JavaSim.Statistics; + + +public class TimeVariance extends Variance + +{ + +public TimeVariance (); + +public void reset (); + +public void setValue (double value) throws IllegalArgumentException; + +public double timeAverage (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, IOException; +public boolean restoreState (DataInputStream iFile) throws IOException; }; + +7.18 PrecisionHistogram + +package arjuna.JavaSim.Statistics; + + +public class PrecisionHistogram extends Variance + +{ + +public PrecisionHistogram (); + +public void finalize (); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public long numberOfBuckets (); + +public double sizeByIndex (long index) throws StatisticsException, IllegalArgumentException; +public double sizeByName (double name) throws IllegalArgumentException; + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, IOException; +public boolean restoreState (DataInputStream iFile) throws IOException; + +public void print (); }; + + +7.19 Histogram + +package arjuna.JavaSim.Statistics; + + +public class Histogram extends PrecisionHistogram + +{ + +public Histogram (long maxIndex, int mergeChoice); public Histogram (long maxIndex); + +public void setValue (double value) throws IllegalArgumentException; + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, IOException; + +public boolean restoreState (DataInputStream iFile) throws IOException; + +public void print (); }; + +7.20 SimpleHistogram + +package arjuna.JavaSim.Statistics; + + +public class SimpleHistogram extends PrecisionHistogram + +{ + +public SimpleHistogram (double min, double max, long nbuckets); public SimpleHistogram (double min, double max, double w); + +public void setValue (double value) throws IllegalArgumentException; + +public void reset (); + +public double sizeByName (double name) throws IllegalArgumentException; + +public double Width (); + +public void print (); + +public boolean saveState (String fileName) throws IOException; + +public boolean saveState (DataOutputStream oFile) throws IOException; + +public boolean restoreState (String fileName) throws FileNotFoundException, IOException; +public boolean restoreState (DataInputStream iFile) throws IOException; }; + + +7.21 Quantile + +package arjuna.JavaSim.Statistics; + + +public class Quantile extends PrecisionHistogram + +{ +public Quantile (); + +public Quantile (double q) throws IllegalArgumentException; + +public double getValue (); public double range (); + +public void print (); }; + + +7.22 StatisticsException + +package arjuna.JavaSim.Statistics; + + +public class StatisticsException extends Exception + +{ +public StatisticsException (); + +public StatisticsException (String s); }; + +8. References + +G. M. Birtwistle, O-J. Dahl, B. Myhrhaug, K. Nygaard, “Simula Begin”, Academic Press, 1973 + +O-J. Dahl, B. Myhrhaug, K. Nygaard, “SIMULA Common Base Language”, Norwegian Computing Centre + +Knuth Vol2, “Seminumerical Algorithms”, Addison-Wesley, 1969, p. 117. + +R. Sedgewick, “Algorithms”, Addison-Wesley, Reading MA, 1983, pp. 36-38. + +D. L. McCue and M. C. Little, “Computing Replica Placement in Distributed Systems”, Proceedings of the 2nd IEEE Workshop on the Management of Replicated Data, November 1992, pp. 58-61. + +I. Mitrani, “Simulation Techniques for Discrete Event Systems”, Cambridge University Press, Cambridge, 1982. + +M. C. Little and D. L. McCue, “The Replica Management System: a Scheme for Flexible and Dynamic Replication”, Proceedings of the 2nd International Workshop on Configurable Distributed Systems, March 1994, pp. 46-57. + +G. D. Parrington et al, “The Design and Implementation of Arjuna”, Broadcast Project Technical Report, October 1994. +9. Index + +Activating a process 12 + +Contact person 5 + +Controlling a simulation 14 + +example 14 + +Platform 5 + +Processes 10 + +class definition 11 + +Re-activating a process 12 + +Resetting a simulation 15 + + + +Restarting a simulation 15 + +Scheduler 9 + +class definition 10 + +Simulation models 6 + +continuous time 7 + +continuous time-discrete event 7 + +discrete time 7 + +Terminology 6 From b5684e21a0f71845d950bd8c3e87ce4e4f7bc5c1 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 20 Jul 2015 15:07:29 -0400 Subject: [PATCH 055/230] Fixed typo --- distributions/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/distributions/README.md b/distributions/README.md index a7be847..e2852f7 100644 --- a/distributions/README.md +++ b/distributions/README.md @@ -1,3 +1,3 @@ -Pre-build distributions. +Pre-built distributions. -Currently only 0.3GA. \ No newline at end of file +Currently only 0.3GA. From adf8019caada336a38280b6f39184c18a7c11511 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jul 2015 10:46:14 -0400 Subject: [PATCH 056/230] Removed as part of doc update https://github.com/nmcl/JavaSim/issues/33 Also have extracted the raw text from it anyway. --- docs/javasim1126_new.rtf | 9811 -------------------------------------- 1 file changed, 9811 deletions(-) delete mode 100755 docs/javasim1126_new.rtf diff --git a/docs/javasim1126_new.rtf b/docs/javasim1126_new.rtf deleted file mode 100755 index 6cacfaa..0000000 --- a/docs/javasim1126_new.rtf +++ /dev/null @@ -1,9811 +0,0 @@ -{\rtf1\ansi\ansicpg1252\deff0\dntblnsbdb\viewkind1 -{\fonttbl{\f0\froman\fcharset0 Times New Roman;}{\f1\froman\fcharset0 Times;}{\f2\fswiss\fcharset0 Courier New;}{\f3\fswiss\fcharset0 Times;}{\f4\fswiss\fcharset0 Arial;}{\f5\fswiss\fcharset0 Courier New;}{\f6\ftech\fcharset2 Symbol;}{\f7\froman\fcharset0 Times;}{\f8\fswiss\fcharset0 Arial Unicode MS;}{\f9\fswiss\fcharset0 Times;}{\f10\fswiss\fcharset0 Times;}{\f11\fswiss\fcharset0 Arial;}{\f12\ftech\fcharset2 Symbol;}{\f13\fswiss\fcharset0 Times;}{\f14\fswiss\fcharset0 Arial;}{\f15\froman\fcharset0 Times;}{\f16\froman\fcharset0 Times;}{\f17\froman\fcharset0 Times;}{\f18\fswiss\fcharset0 Arial;}{\f20\froman\fcharset0 Times New Roman;}} -{\colortbl;\red255\green255\blue0;\red0\green0\blue255;\red0\green0\blue0;\red255\green255\blue255;\red0\green0\blue255;} -{\*\listtable{\list\listtemplateid18467\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid6334\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid41} -{\list\listtemplateid19169\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid15724\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid26500} -{\list\listtemplateid29358\listhybrid -{\listlevel\levelnfc0\levelnfcn0\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid26962\'03[\'00];}{\levelnumbers\'02;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid11478} -}{\*\listoverridetable -{\listoverride\listid41\listoverridecount0\ls1} -{\listoverride\listid26500\listoverridecount0\ls2} -{\listoverride\listid11478\listoverridecount0\ls3} -}{\stylesheet{\*\cs0 \additive Default Paragraph Font;} -} -\jexpand\lnbrkrule\pgwsxn11906\pghsxn16838 -\margl1920\margr1866\margt1167\margb1440\marglsxn1920\margrsxn1866\cols1\colno1\colw8120 -{ -{\pard\plain \li0\sl258\slmult1 \ri0\nooverflow\qj{\f1\cf3 \fs22 If the state of a {\f2 Mean} object is required to be saved between simulation runs then it can be made persistent by using either of the {\f2 saveState} methods. The first instance saves the state to a file, whereas the second can be used to save the state to an instance of the \f2 java.io.DataOutputStream {\f1 class. There are likewise two corresponding ways in} \f1 which the state can be restored.}\par} -} -{\pard\sl-90\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs22 The {\f2 print} method simply prints to {\f2 System.out} the current state of the object.}\par} -} -{\pard\sl-193\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 6.2 Variance}\par} -} -{\pard\sl-239\slmult0\par - -{\pard\plain \li0\sl330\slmult1 \ri0\nooverflow\ql{\f1\cf3 \fs22 This class is derived from {\f2 Mean}, and in addition to providing the above mentioned functionality also provides the following:}\par} -} -{\pard\sl-57\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class Variance extends Mean}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public Variance ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void setValue (double value) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void reset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\sl274\slmult1 \ri5320\nooverflow\ql{\f5\cf3 \fs17 public double variance (); public double stdDev ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-384\shpright-55\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-384\shpright8165\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-194\shpright-55\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\ql{\f5\cf3 \fs18 public double confidence (double value);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void print ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public boolean saveState (String fileName) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public boolean saveState (DataOutputStream oFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li5720\sl274\slmult1 \ri40\nooverflow\ql\fi-5719 {\f5\cf3 \fs17 public boolean restoreState (String fileName) throws FileNotFoundException, IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-384\shpright-55\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-384\shpright8165\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-194\shpright-55\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl233\slmult1 \ri460\nooverflow\ql{\f5\cf3 \fs18 public boolean restoreState (DataInputStream iFile) throws IOException; \};}\par} -} -{\shp {\*\shpinst \shptop-210\shpleft-80\shpright8192\shpbottom28\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich16\picwgoal11020\pichgoal320\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080030067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f0efe3b7893e3b7ece9e -3ff007ed17ff000ad7e097c35ff85bbff0d01fb3ff00fc2a2f0778c7fe1a5ffe131f075968bf0a7fe2eb6b57d078b7e0d7fc29af16c179e35ff8a2acafff00e1 -61fdbffe11cf11fd974cb58a53eff400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400515e01fb2e7c3bf8edf0a3e04f81bc01fb4bfed17ff0d65f -1b740ff849bfe135fda03fe151783be047fc27dfda9e31f10eb5e1cff8b53e00bed47c25e15ff8457c25a8e83e0aff00894decdfdb9ff08e7fc2477fe5ea7ac5 -ec485007ffd9 -}}}}} -{\pard\sl-154\slmult0\par - -{\pard\plain \li0\ql{\f2\cf3 \fs22 variance() {\f1 returns the variance of the samples:}}\par} -} -{\pard\sl-197\slmult0\par - -{\trqc\trowd \trrh274\trleft3160\clvmgf\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx3380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1460 \cellx4840 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6760 -\pard\plain\intbl\ql{{\f1\cf3 \fs22 1}\cell}\pard\intbl\ql -\pard\plain\intbl\li140\ql{{\f1\cf3 \fs22 n}\cell}\pard\intbl\li140\ql -\pard\plain\intbl{\fs1\cell}\pard\intbl -\trowd \trrh274\trleft3160\clvmgf\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx3380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1460 \cellx4840 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6760 -\row - -\trowd \trrh175\trleft3160\clvmrg\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx3380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1460 \cellx4840 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6760 -\pard\plain\intbl{\fs12\cell}\pard\intbl -\pard\plain\intbl\qr\sl-174\slmult0 {{\f7\cf3 \fs18 2}\cell}\pard\intbl\qr -\pard\plain\intbl{\fs1\cell}\pard\intbl -\trowd \trrh175\trleft3160\clvmrg\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx3380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1460 \cellx4840 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6760 -\row - -\trowd \trrh26\trleft3160\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx3380 -\clvmgf\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1460 \cellx4840 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6760 -\pard\plain\intbl\ql\sl-26\slmult0 {{\f1\cf3 \fs3 _}\cell}\pard\intbl\ql -\pard\plain\intbl\li100\ql\sl-117\slmult0 {{\f1\cf3 \fs3 {\fs11 \f8 \sub \u931 ?} (Si-Mean())}\cell}\pard\intbl\li100\ql -\pard\plain\intbl{\fs1\cell}\pard\intbl -\trowd \trrh26\trleft3160\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx3380 -\clvmgf\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1460 \cellx4840 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6760 -\row - -\trowd \trrh91\trleft3160\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx3380 -\clvmrg\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1460 \cellx4840 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6760 -\pard\plain\intbl\li20\ql\sl-91\slmult0 {{\f1\cf3 \fs10 n}\cell}\pard\intbl\li20\ql -\pard\plain\intbl{\fs6\cell}\pard\intbl -\pard\plain\intbl{\fs1\cell}\pard\intbl -\trowd \trrh91\trleft3160\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx3380 -\clvmrg\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1460 \cellx4840 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6760 -\row - -\trowd \trrh366\trleft3160\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx3380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1460 \cellx4840 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6760 -\pard\plain\intbl{\fs24\cell}\pard\intbl -\pard\plain\intbl\li100\ql{{\f1\cf3 \fs22 i=1}\cell}\pard\intbl\li100\ql -\pard\plain\intbl{\fs1\cell}\pard\intbl -\trowd \trrh366\trleft3160\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx3380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1460 \cellx4840 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6760 -\row - - -} -} -{\pard\sl-105\slmult0\par - -{\pard\plain \li0\sl329\slmult1 \ri0\nooverflow\ql{\f2\cf3 \fs22 stdDev() {\f1 returns the standard deviation of the samples, which is the square root of the} \f1 variance.}\par} -} -{ -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 6.3 TimeVariance}\par} -} -{\pard\sl-239\slmult0\par - -{\pard\plain \li0\sl268\slmult1 \ri0\nooverflow\qj{\f1\cf3 \fs22 The {\f2 TimeVariance} class makes it possible to determine how long, in terms of simulation time, specific values were maintained. In effect, values are weighted according to the length of time that they were held, whereas with the {\f2 Variance} class only the specific values are taken into account.}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1920\margr1866\margt1214\margb1440\marglsxn1920\margrsxn1866\cols1\colno1\colw8120 -{ -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class TimeVariance extends Variance}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public TimeVariance ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void reset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void setValue (double value) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public double timeAverage ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public boolean saveState (String fileName) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom336{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom336{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public boolean saveState (DataOutputStream oFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop88\shpright-55\shpbottom384{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop88\shpright8165\shpbottom384{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-142\slmult0\par - -{\pard\plain \li5720\sl274\slmult1 \ri40\nooverflow\ql\fi-5719 {\f5\cf3 \fs17 public boolean restoreState (String fileName) throws FileNotFoundException, IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-194\shpright-55\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl233\slmult1 \ri460\nooverflow\ql{\f5\cf3 \fs18 public boolean restoreState (DataInputStream iFile) throws IOException; \};}\par} -} -{\shp {\*\shpinst \shptop-210\shpleft-80\shpright8192\shpbottom28\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich16\picwgoal11020\pichgoal320\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080030067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f0efe3b7893e3b7ece9e -3ff007ed17ff000ad7e097c35ff85bbff0d01fb3ff00fc2a2f0778c7fe1a5ffe131f075968bf0a7fe2eb6b57d078b7e0d7fc29af16c179e35ff8a2acafff00e1 -61fdbffe11cf11fd974cb58a53eff400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400515e01fb2e7c3bf8edf0a3e04f81bc01fb4bfed17ff0d65f -1b740ff849bfe135fda03fe151783be047fc27dfda9e31f10eb5e1cff8b53e00bed47c25e15ff8457c25a8e83e0aff00894decdfdb9ff08e7fc2477fe5ea7ac5 -ec485007ffd9 -}}}}} -{\pard\sl-154\slmult0\par - -{\pard\plain \li0\sl268\slmult1 \ri0\nooverflow\qj{\f1\cf3 \fs22 Whenever a value is supplied to an instance of the {\f2 TimeVariance} class the simulation time at which it occurred is also noted. If a value changes, or the {\f2 timeAverage()} method is invoked, then the time it has been maintained for is calculated and the statistical data is updated.}\par} -} -{\pard\sl-64\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 6.4 Histograms}\par} -} -{\pard\sl-239\slmult0\par - -{\pard\plain \li0\sl272\slmult1 \ri0\nooverflow\qj{\f2\cf3 \fs22 Mean{\f1 ,} Variance{\f1 , and} TimeVariance {\f1 provide a snapshot of values in the simulation.} \f1 However, histograms can yield better information about how a range of values change over the course of a simulation run. This information can be viewed in a number of ways, but typically it is plotted in graphical form.}\par} -} -{\pard\sl-74\slmult0\par - -{\pard\plain \li0\sl277\slmult1 \ri0\nooverflow\qj{\f1\cf3 \fs22 A histogram typically maintains a slot for each value, or range of values, given to it. These slots are termed {\i buckets}, and the way in which these buckets are maintained and manipulated gives rise to a variety of different histogram implementations. The following sections detail this variety of different histogram classes.}\par} -} -{\pard\sl-68\slmult0\par - -{\pard\plain \li0\ql{\f10\b\cf3 \fs22 6.4.1 PrecisionHistogram}\par} -} -{\pard\sl-217\slmult0\par - -{\pard\plain \li0\sl265\slmult1 \ri0\nooverflow\qj{\f1\cf3 \fs22 The {\f2 PrecisionHistogram} class represents the core histogram class from which all others are derived. This class keeps an exact tally of all values given to it, i.e., a bucket is created for each value. Although buckets are only created when requires, over the course of a simulation this can still utilise a large amount of resources, and so other, less precise, histogram classes are provided.}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1915\margr1866\margt1214\margb1440\marglsxn1915\margrsxn1866\cols1\colno1\colw8125 -{ -{\pard\plain \li5\ql{\f5\cf3 \fs18 public class PrecisionHistogram extends Variance}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-75\shpright8197\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-32\slmult0\par - -{\pard\plain \li5\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-4\shpright-50\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-4\shpright8170\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public PrecisionHistogram ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-19\shpright-50\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-19\shpright8170\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public void finalize ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-149\shpright-50\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-149\shpright8170\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop40\shpright-50\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop40\shpright8170\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public void setValue (double value) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-149\shpright-50\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-149\shpright8170\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop40\shpright-50\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop40\shpright8170\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public void reset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-149\shpright-50\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-149\shpright8170\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop40\shpright-50\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop40\shpright8170\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public long numberOfBuckets ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-149\shpright-50\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-149\shpright8170\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop40\shpright-50\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop40\shpright8170\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li4965\sl274\slmult1 \ri460\nooverflow\ql\fi-4963 {\f5\cf3 \fs17 public double sizeByIndex (long index) throws StatisticsException, IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-384\shpright-50\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-384\shpright8170\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-194\shpright-50\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-194\shpright8170\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-4\shpright-50\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-4\shpright8170\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li5\ql{\f5\cf3 \fs17 public double sizeByName (double name) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-7\shpright-50\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-7\shpright8170\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public boolean saveState (String fileName) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-149\shpright-50\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-149\shpright8170\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop40\shpright-50\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop40\shpright8170\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public boolean saveState (DataOutputStream oFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-19\shpright-50\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-19\shpright8170\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li5725\sl274\slmult1 \ri40\nooverflow\ql\fi-5719 {\f5\cf3 \fs17 public boolean restoreState (String fileName) throws FileNotFoundException, IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-384\shpright-50\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-384\shpright8170\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-194\shpright-50\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-194\shpright8170\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-4\shpright-50\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-4\shpright8170\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li5\ql{\f5\cf3 \fs17 public boolean restoreState (DataInputStream iFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-7\shpright-50\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-7\shpright8170\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li5\sl298\slmult1 \ri5860\nooverflow\ql{\f5\cf3 \fs18 public void print (); \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-75\shpright8197\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}} -{\pard\sl-104\slmult0\par - -{\pard\plain \li5\sl280\slmult1 \ri0\nooverflow\qj{\f1\cf3 \fs22 As with the {\f2 Variance} class from which it is derived, and whose methods are obviously available, values can be supplied to the histogram through the {\f2 setValue(double)} method.}\par} -} -{\pard\sl-65\slmult0\par - -{\pard\plain \li5\sl287\slmult1 \ri0\nooverflow\qj{\f1\cf3 \fs22 The number of buckets maintained by the histogram can be obtained from the \f2 numberOfBuckets() {\f1 method. Each bucket is uniquely named by the values it contains,} \f1 and can also be accessed by its index in the entire list of buckets.}\par} -} -{\pard\sl-57\slmult0\par - -{\pard\plain \li5\ql{\f1\cf3 \fs22 There are therefore two ways of getting the number of entries in a bucket:}\par} -} -{\pard\sl-123\slmult0\par - -{\pard\plain \li5\ql{\f1\cf3 \fs16 {\f12 �}}\tx744\tab{\f1\cf3 \fs21 by the index number of the bucket: {\f2 sizeByIndex(long index)}.}\par} -} -{\pard\sl-107\slmult0\par - -{\pard\plain \li5\ql{\f1\cf3 \fs16 {\f12 �}}\tx744\tab{\f1\cf3 \fs21 by the unique name of the bucket: {\f2 sizeByName(double name)}.}\par} -} -{\pard\sl-18\slmult0\par - -{\pard\plain \li5\ql{\f1\cf3 \fs21 If the bucket does not exist then each of these methods throws}\par} -} -{\pard\sl-108\slmult0\par - -{\pard\plain \li5\sl239\slmult1 \ql{\f2\cf3 \fs22 IllegalArgumentException{\f1 .}}\par} -} -{\pard\sl-112\slmult0\par - -{\pard\plain \li5\sl331\slmult1 \ri0\nooverflow\ql{\f1\cf3 \fs22 It is possible to output the contents of the histogram to standard output using the \f2 print(){\f1 method.}}\par} -} -{\pard\sl-9\slmult0\par - -{\pard\plain \li5\ql{\f10\b\cf3 \fs22 6.4.2 Histogram}\par} -} -{\pard\sl-217\slmult0\par - -{\pard\plain \li5\sl251\slmult1 \ri0\nooverflow\qj{\f1\cf3 \fs22 The problem with the {\f2 PrecisionHistogram} class is that it can use up a lot of system resources, especially over the course of a long simulation. {\f2 Histogram} attempts to alleviate this by presenting a histogram which is less accurate, but consumes less resources. Instead of maintaining a bucket for each individual value, it keeps a fixed number of buckets. Initially each bucket will store separate values as in the {\f2 PrecisionHistogram}, but when the number of required buckets would exceed the specified maximum number it merges pairs of buckets, thus reducing their total. The policy used when merging buckets it set on a per instance basis when created. Current policies are:}\par} -} -{\pard\sl-4\slmult0\par -{{\listtext{\pard\plain {\f12\cf3 \fs22 � }\tab}}\pard\plain -\f12\cf3 \fs22 \qj\fi-765\nowidctlpar\jclisttab\tx765\faauto\ls1\ilvl0\rin0\nooverflow\lin765\itap0 \sl400\slmult1 {\plain\f2\cf3 \fs22 ACCUMULATE{\f1 : create a new bucket with the same name as the largest of the two} \f1 buckets, and it has the sum of the two old bucket entries as its entry number. }\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1915\margr1866\margt1180\margb1440\marglsxn1915\margrsxn1866\cols1\colno1\colw8125 -{{{\listtext{\pard\plain {\f12\cf3 \fs22 � }\tab}}\pard\plain -\f12\cf3 \fs22 \qj\fi-765\nowidctlpar\jclisttab\tx765\faauto\ls2\ilvl0\rin0\nooverflow\lin765\itap0 \sl284\slmult1 {\plain\f2\cf3 \fs22 MEAN{\f1 : create a new bucket with the name as the mean of the two old buckets, and it} \f1 has the sum of the two old bucket entries as its entry number. }\par\pard\sl-1\slmult0\par -{\listtext{\pard\plain {\f12\cf3 \fs22 � }\tab}}\pard\plain -\f12\cf3 \fs22 \qj\fi-765\nowidctlpar\jclisttab\tx765\faauto\ls2\ilvl0\rin0\nooverflow\lin765\itap0 \sl235\slmult1 {\plain\f2\cf3 \fs22 MAX{\f1 : create a new bucket with the name as the largest of the two buckets, and it has} \f1 the same number of entries. }\par{\listtext{\pard\plain {\f12\cf3 \fs22 � }\tab}}\pard\plain -\f12\cf3 \fs22 \qj\fi-765\nowidctlpar\jclisttab\tx765\faauto\ls2\ilvl0\rin0\nooverflow\lin765\itap0 \sl274\slmult1 {\plain\f2\cf3 \fs22 MIN{\f1 : create a new bucket with the name as the smallest of the two old buckets, and} \f1 it has the same number of entries. }\par} -} -{\shp {\*\shpinst \shptop-53\shpleft-75\shpright8197\shpbottom185\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich16\picwgoal11020\pichgoal320\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080030067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{ -{\pard\plain \li5\sl225\slmult1 \ql{\f5\cf3 \fs18 public class Histogram extends PrecisionHistogram}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-4\shpright-50\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-4\shpright8170\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li5\sl224\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-4\shpright-50\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-4\shpright8170\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li5\sl233\slmult1 \ri2720\nooverflow\ql{\f5\cf3 \fs18 public Histogram (long maxIndex, int mergeChoice); public Histogram (long maxIndex);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-211\shpright-50\shpbottom-23{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-211\shpright8170\shpbottom-23{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-21\shpright-50\shpbottom166{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-21\shpright8170\shpbottom166{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-114\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public void setValue (double value) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-149\shpright-50\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-149\shpright8170\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop40\shpright-50\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop40\shpright8170\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public boolean saveState (String fileName) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-149\shpright-50\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-149\shpright8170\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop40\shpright-50\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop40\shpright8170\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public boolean saveState (DataOutputStream oFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-19\shpright-50\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-19\shpright8170\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li5725\sl274\slmult1 \ri40\nooverflow\ql\fi-5719 {\f5\cf3 \fs17 public boolean restoreState (String fileName) throws FileNotFoundException, IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-384\shpright-50\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-384\shpright8170\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-194\shpright-50\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-194\shpright8170\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-4\shpright-50\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-4\shpright8170\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li5\ql{\f5\cf3 \fs17 public boolean restoreState (DataInputStream iFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-7\shpright-50\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-7\shpright8170\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li5\sl298\slmult1 \ri5860\nooverflow\ql{\f5\cf3 \fs18 public void print (); \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-75\shpright8197\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}} -{\pard\sl-104\slmult0\par - -{\pard\plain \li5\sl282\slmult1 \ri0\nooverflow\qj{\f1\cf3 \fs22 When an instance of {\f2 Histogram} is created, the maximum number of allowed buckets must be specified. The merging algorithm can also be provided, with the default being the {\f2 MEAN} policy.}\par} -} -{\pard\sl-59\slmult0\par - -{\pard\plain \li5\ql{\f10\b\cf3 \fs22 6.4.3 SimpleHistogram}\par} -} -{\pard\sl-217\slmult0\par - -{\pard\plain \li5\sl265\slmult1 \ri0\nooverflow\qj{\f1\cf3 \fs22 As with the {\f2 Histogram} class above, {\f2 SimpleHistogram} keeps the number of assigned buckets to a minimum. However, it does this by pre-creating the buckets when it is created, i.e., the number of required buckets must be provided at the start. A width is the assigned for each bucket, and whenever a value if given to the histogram class it is placed into the bucket whose width it falls within.}\par} -} -{\pard\sl-126\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public class SimpleHistogram extends PrecisionHistogram}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-75\shpright8197\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-32\slmult0\par - -{\pard\plain \li5\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-4\shpright-50\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-4\shpright8170\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li5\sl254\slmult1 \ri1320\nooverflow\ql{\f5\cf3 \fs17 public SimpleHistogram (double min, double max, long nbuckets); public SimpleHistogram (double min, double max, double w);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-222\shpright-50\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-222\shpright8170\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-32\shpright-50\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-32\shpright8170\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-102\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public void setValue (double value) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-149\shpright-50\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-149\shpright8170\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop40\shpright-50\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop40\shpright8170\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public void reset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-149\shpright-50\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-149\shpright8170\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop40\shpright-50\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop40\shpright8170\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs17 public double sizeByName (double name) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-137\shpright-50\shpbottom50{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-137\shpright8170\shpbottom50{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop52\shpright-50\shpbottom240{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop52\shpright8170\shpbottom240{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-187\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public double Width ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-149\shpright-50\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-149\shpright8170\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop40\shpright-50\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop40\shpright8170\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public void print ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-149\shpright-50\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-149\shpright8170\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop40\shpright-50\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop40\shpright8170\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public boolean saveState (String fileName) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-149\shpright-50\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-149\shpright8170\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop40\shpright-50\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop40\shpright8170\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li5\ql{\f5\cf3 \fs18 public boolean saveState (DataOutputStream oFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-19\shpright-50\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-19\shpright8170\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li5725\sl274\slmult1 \ri40\nooverflow\ql\fi-5719 {\f5\cf3 \fs17 public boolean restoreState (String fileName) throws FileNotFoundException, IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-384\shpright-50\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-384\shpright8170\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-194\shpright-50\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-194\shpright8170\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-50\shptop-4\shpright-50\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8170\shptop-4\shpright8170\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li5\sl233\slmult1 \ri460\nooverflow\ql{\f5\cf3 \fs18 public boolean restoreState (DataInputStream iFile) throws IOException; \};}\par} -} -{\shp {\*\shpinst \shptop-210\shpleft-75\shpright8197\shpbottom28\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich16\picwgoal11020\pichgoal320\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080030067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f0efe3b7893e3b7ece9e -3ff007ed17ff000ad7e097c35ff85bbff0d01fb3ff00fc2a2f0778c7fe1a5ffe131f075968bf0a7fe2eb6b57d078b7e0d7fc29af16c179e35ff8a2acafff00e1 -61fdbffe11cf11fd974cb58a53eff400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400515e01fb2e7c3bf8edf0a3e04f81bc01fb4bfed17ff0d65f -1b740ff849bfe135fda03fe151783be047fc27dfda9e31f10eb5e1cff8b53e00bed47c25e15ff8457c25a8e83e0aff00894decdfdb9ff08e7fc2477fe5ea7ac5 -ec485007ffd9 -}}}}}\sect\sbknone -\marglsxn1920\margrsxn1866\cols1\colno1\colw8120 -{\pard\sl-154\slmult0\par - -{\pard\plain \li0\sl348\slmult1 \ri0\nooverflow\ql{\f1\cf3 \fs22 When the class is instantiated, the range of values it will receive must be provided. Then, either the width of each bucket or the actual number of buckets can be given. If the width is}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1920\margr1866\margt1167\margb1440\marglsxn1920\margrsxn1866\cols1\colno1\colw8120 -{ -{\pard\plain \li0\sl344\slmult1 \ri0\nooverflow\ql{\f1\cf3 \fs22 provided, then the histogram automatically calculates the number of buckets, otherwise it calculates the width for each bucket by equally dividing the range between each bucket.}\par} -} -{ -{\pard\plain \li0\ql{\f1\cf3 \fs22 The values of a bucket can be obtained from the {\f2 sizeByName} method.}\par} -} -{\pard\sl-206\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs22 The width of each bucket is provided by the {\f2 Width} method.}\par} -} -{\pard\sl-206\slmult0\par - -{\pard\plain \li0\ql{\f10\b\cf3 \fs22 6.4.4 Quantile}\par} -} -{\pard\sl-217\slmult0\par - -{\pard\plain \li0\sl330\slmult1 \ri0\nooverflow\ql{\f1\cf3 \fs22 The {\f2 Quantile} class provides a means of obtaining the p-quantile of a distribution of values, i.e., the value below which p-percent of the distribution lies.}\par} -} -{\pard\sl-57\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class Quantile extends PrecisionHistogram}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public Quantile ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public Quantile (double q) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\sl329\slmult1 \ri5320\nooverflow\ql{\f5\cf3 \fs17 public double getValue (); public double range ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-473\shpright-55\shpbottom-285{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-473\shpright8165\shpbottom-285{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-283\shpright-55\shpbottom-95{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-283\shpright8165\shpbottom-95{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-93\shpright-55\shpbottom94{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-93\shpright8165\shpbottom94{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-42\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri5860\nooverflow\ql{\f5\cf3 \fs18 public void print (); \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}} -{\pard\sl-104\slmult0\par - -{\pard\plain \li0\sl331\slmult1 \ri0\nooverflow\ql{\f1\cf3 \fs22 The p-quantile probability range must be specified when the object is instantiated, and can be obtained via the {\f2 range} method.}\par} -} -{\pard\sl-9\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs22 The actual quantile value is provided by {\f2 getValue} method.}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1920\margr1866\margt1344\margb1440\marglsxn1920\margrsxn1866\cols1\colno1\colw8120 -{ -{\pard\plain \li0\ql{\f13\b\cf3 \fs32 7. JavaSim classes}\par} -} -{\pard\sl-267\slmult0\par - -{\pard\plain \li0\sl338\slmult1 \ri0\nooverflow\ql{\f1\cf3 \fs22 For convenience, in this section we shall include the JavaSim classes which programmers will use when constructing simulations.}\par} -} -{ -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.1 Scheduler}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Simulation;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom446\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich43\picwgoal11020\pichgoal860\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080081067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fede7e227c44f8ede1bf8edfb3a7803c01 -fb3a7fc2caf825f12bfe16effc3407ed01ff000b77c1de0eff008668ff00843bc1d65ad7c29ff8b53ad58cfe2df8cbff000b97c5b3de782bfe28abdb0ff8579f -60ff00848fc47f6ad32ea2887bfd1450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -0145145001451450014514500145145001451450014514500145145001451450014514500145145007807ecb9f113e3b7c57f813e06f1ffed2ff00b3a7fc326f -c6dd7ffe126ff84d7f67ff00f85bbe0ef8efff00080ff65f8c7c43a2f873fe2eb7802c74ef0978abfe12af0969da0f8d7fe253650ff61ffc247ff08e5ff99a9e -8f7b2b95eff450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -4514500145145007ffd9 -}}}}} -{\pard\sl-202\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class Scheduler}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li420\ql{\f5\cf3 \fs18 public static double CurrentTime ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li420\ql{\f5\cf3 \fs18 public static synchronized void reset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li420\ql{\f5\cf3 \fs18 public static synchronized boolean simulationReset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li420\ql{\f5\cf3 \fs18 public static synchronized void startSimulation ();}\par} -} -{\shp {\*\shpinst \shptop-148\shpleft-80\shpright8192\shpbottom280\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}} -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 \};}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1920\margr1906\margt1155\margb1440\marglsxn1920\margrsxn1906\cols1\colno1\colw8080 -{ -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.2 SimulationProcess}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Simulation;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-63\shpright8192\shpbottom446\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw550\pich43\picwgoal11000\pichgoal860\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080081067303012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fede7e227c44f8ede1bf8edfb3a7803c01 -fb3a7fc2caf825f12bfe16effc3407ed01ff000b77c1de0eff008668ff00843bc1d65ad7c29ff8b53ad58cfe2df8cbff000b97c5b3de782bfe28abdb0ff8579f -60ff00848fc47f6ad32ea2887bfd1450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -014514500145145001451450014514500145145001451450014514500145145001451450015e01f1f7e227c76f87bff0a57fe145fece9ff0d11ff09c7ed01f0e -3e1dfc62ff008bbbe0ef849ff0a33e04f89bfb67fe160fed17ff0015858deffc2cdff8565f62d23fe2d1785bec9e31f19ff6dffc492fadff00b36eb7fbfd1400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451401ffd9 -}}}}} -{\pard\sl-202\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class SimulationProcess extends Thread}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop40\shpright-38\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-4\shpright-38\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public final double Time ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-4\shpright-38\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li5600\sl254\slmult1 \ri0\nooverflow\ql\fi-5611 {\f5\cf3 \fs17 public synchronized SimulationProcess next_ev ()throws SimulationException, NoSuchElementException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-222\shpright-38\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-222\shpright8165\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-32\shpright-38\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-32\shpright8165\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-102\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public final double evtime ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-149\shpright-38\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop40\shpright-38\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li6040\sl274\slmult1 \ri0\nooverflow\ql\fi-6042 {\f5\cf3 \fs17 public void ActivateBefore (SimulationProcess p)throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-384\shpright-38\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-384\shpright8165\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-194\shpright-38\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-4\shpright-38\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li5940\sl236\slmult1 \ri0\nooverflow\ql\fi-5935 {\f5\cf3 \fs17 public void ActivateAfter (SimulationProcess p) throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-193\shpright-38\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-3\shpright-38\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl225\slmult1 \ql{\f5\cf3 \fs18 public void ActivateAt (double AtTime, boolean prior)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-5\shpright-38\shpbottom182{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-5\shpright8165\shpbottom182{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl236\slmult1 \ri0\nooverflow\ql\fi3237 {\f5\cf3 \fs17 throws SimulationException, RestartException; public void ActivateAt (double AtTime) throws SimulationException,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-193\shpright-38\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-3\shpright-38\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl223\slmult1 \ri1280\nooverflow\ql\fi4963 {\f5\cf3 \fs18 RestartException; public void ActivateDelay (double Delay, boolean prior)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-194\shpright-38\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-4\shpright-38\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl236\slmult1 \ri0\nooverflow\ql\fi3237 {\f5\cf3 \fs17 throws SimulationException, RestartException; public void ActivateDelay (double Delay) throws SimulationException,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-193\shpright-38\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-3\shpright-38\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl254\slmult1 \ri640\nooverflow\ql\fi5179 {\f5\cf3 \fs17 RestartException; public void Activate () throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-222\shpright-38\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-222\shpright8165\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-32\shpright-38\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-32\shpright8165\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-102\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void ReActivateBefore (SimulationProcess p)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-149\shpright-38\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop40\shpright-38\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\sl223\slmult1 \ri0\nooverflow\ql\fi3237 {\f5\cf3 \fs18 throws SimulationException, RestartException; public void ReActivateAfter (SimulationProcess p)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-194\shpright-38\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-4\shpright-38\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl223\slmult1 \ri0\nooverflow\ql\fi3237 {\f5\cf3 \fs18 throws SimulationException, RestartException; public void ReActivateAt (double AtTime, boolean prior)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-194\shpright-38\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-4\shpright-38\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl236\slmult1 \ri0\nooverflow\ql\fi3237 {\f5\cf3 \fs17 throws SimulationException, RestartException; public void ReActivateAt (double AtTime) throws SimulationException,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-193\shpright-38\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-3\shpright-38\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl236\slmult1 \ri1080\nooverflow\ql\fi5179 {\f5\cf3 \fs17 RestartException; public void ReActivateDelay (double Delay, boolean prior)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-193\shpright-38\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-3\shpright-38\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl236\slmult1 \ri0\nooverflow\ql\fi3237 {\f5\cf3 \fs17 throws SimulationException, RestartException; public void ReActivateDelay (double Delay) throws SimulationException,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-193\shpright-38\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-3\shpright-38\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl254\slmult1 \ri420\nooverflow\ql\fi5395 {\f5\cf3 \fs17 RestartException; public void ReActivate () throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-222\shpright-38\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-222\shpright8165\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-32\shpright-38\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-32\shpright8165\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-102\slmult0\par - -{\pard\plain \li0\sl258\slmult1 \ri3120\nooverflow\ql{\f5\cf3 \fs18 public void Cancel () throws RestartException; public void terminate ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-383\shpright-38\shpbottom-195{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-383\shpright8165\shpbottom-195{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-193\shpright-38\shpbottom-5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-3\shpright-38\shpbottom184{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom184{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-2\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public synchronized boolean idle ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-19\shpright-38\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\sl329\slmult1 \ri4960\nooverflow\ql{\f5\cf3 \fs17 public boolean passivated (); public boolean terminated ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-473\shpright-38\shpbottom-285{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-473\shpright8165\shpbottom-285{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-283\shpright-38\shpbottom-95{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-283\shpright8165\shpbottom-95{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-38\shptop-93\shpright-38\shpbottom94{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-93\shpright8165\shpbottom94{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-42\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri540\nooverflow\ql{\f5\cf3 \fs18 public static SimulationProcess current () throws SimulationException; public static double CurrentTime ();}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-63\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw550\pich29\picwgoal11000\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067303012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140057807c7dfd973e04fed41ff0a57fe17a781bfe138ff8677fda03e1c7ed47f077fe2a6f18f867fe10ff008edf093fb67fe15f78e7fe28ff -0010f87ffe120ff847ff00e120d5ff00e299f14ff6df83b55fb5ff00c4efc3da97d9ed7c928a00f7fa28a2803fffd9 -}}}}} -{\pard\sl-150\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public static void mainSuspend ();}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom338\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich36\picwgoal11020\pichgoal720\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108006b067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fede7e227c44f8ede1bf8edfb3a7803c01 -fb3a7fc2caf825f12bfe16effc3407ed01ff000b77c1de0eff008668ff00843bc1d65ad7c29ff8b53ad58cfe2df8cbff000b97c5b3de782bfe28abdb0ff8579f -60ff00848fc47f6ad32ea2887bfd1450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -0145145001451450014514500145145001451450014514500145145001451450014514500145145007807ecb9f113e3b7c57f813e06f1ffed2ff00b3a7fc326f -c6dd7ffe126ff84d7f67ff00f85bbe0ef8efff00080ff65f8c7c43a2f873fe2eb7802c74ef0978abfe12af0969da0f8d7fe253650ff61ffc247ff08e5ff99a9e -8f7b2b95eff450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -4514500145145007ffd9 -}}}}} -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public static void mainResume () throws SimulationException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop88\shpright-55\shpbottom492{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop88\shpright8165\shpbottom492{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-142\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 protected SimulationProcess ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop148\shpright-55\shpbottom444{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop148\shpright8165\shpbottom444{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-202\slmult0\par - -{\pard\plain \li0\sl247\slmult1 \ri0\nooverflow\ql{\f5\cf3 \fs18 protected void set_evtime (double time) throws SimulationException; protected void Hold (double t)throws SimulationException, RestartException; protected void Passivate () throws RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-384\shpright-55\shpbottom-196{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-384\shpright8165\shpbottom-196{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\shp {\*\shpinst \shptop-194\shpleft-80\shpright8192\shpbottom234\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}} -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 \};}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1920\margr2766\margt1155\margb1440\marglsxn1920\margrsxn2766\cols1\colno1\colw7220 -{ -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.3 SimulationException}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Simulation;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class SimulationException extends Exception}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public SimulationException ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri3120\nooverflow\ql{\f5\cf3 \fs18 public SimulationException (String s); \};}\par} -} -{\shp {\*\shpinst \shptop-210\shpleft-80\shpright8192\shpbottom28\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich16\picwgoal11020\pichgoal320\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080030067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f0efe3b7893e3b7ece9e -3ff007ed17ff000ad7e097c35ff85bbff0d01fb3ff00fc2a2f0778c7fe1a5ffe131f075968bf0a7fe2eb6b57d078b7e0d7fc29af16c179e35ff8a2acafff00e1 -61fdbffe11cf11fd974cb58a53eff400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400515e01fb2e7c3bf8edf0a3e04f81bc01fb4bfed17ff0d65f -1b740ff849bfe135fda03fe151783be047fc27dfda9e31f10eb5e1cff8b53e00bed47c25e15ff8457c25a8e83e0aff00894decdfdb9ff08e7fc2477fe5ea7ac5 -ec485007ffd9 -}}}}} -{\pard\sl-141\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.4 RestartException}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Simulation;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class RestartException extends Exception}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public RestartException ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri3440\nooverflow\ql{\f5\cf3 \fs18 public RestartException (String s); \};}\par} -} -{\shp {\*\shpinst \shptop-210\shpleft-80\shpright8192\shpbottom28\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich16\picwgoal11020\pichgoal320\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080030067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f0efe3b7893e3b7ece9e -3ff007ed17ff000ad7e097c35ff85bbff0d01fb3ff00fc2a2f0778c7fe1a5ffe131f075968bf0a7fe2eb6b57d078b7e0d7fc29af16c179e35ff8a2acafff00e1 -61fdbffe11cf11fd974cb58a53eff400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400515e01fb2e7c3bf8edf0a3e04f81bc01fb4bfed17ff0d65f -1b740ff849bfe135fda03fe151783be047fc27dfda9e31f10eb5e1cff8b53e00bed47c25e15ff8457c25a8e83e0aff00894decdfdb9ff08e7fc2477fe5ea7ac5 -ec485007ffd9 -}}}}} -{\pard\sl-141\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.5 RandomStream}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Distributions;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom446\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich43\picwgoal11020\pichgoal860\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080081067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fede7e227c44f8ede1bf8edfb3a7803c01 -fb3a7fc2caf825f12bfe16effc3407ed01ff000b77c1de0eff008668ff00843bc1d65ad7c29ff8b53ad58cfe2df8cbff000b97c5b3de782bfe28abdb0ff8579f -60ff00848fc47f6ad32ea2887bfd1450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -0145145001451450014514500145145001451450014514500145145001451450014514500145145007807ecb9f113e3b7c57f813e06f1ffed2ff00b3a7fc326f -c6dd7ffe126ff84d7f67ff00f85bbe0ef8efff00080ff65f8c7c43a2f873fe2eb7802c74ef0978abfe12af0969da0f8d7fe253650ff61ffc247ff08e5ff99a9e -8f7b2b95eff450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -4514500145145007ffd9 -}}}}} -{\pard\sl-202\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public abstract class RandomStream}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri1300\nooverflow\ql{\f5\cf3 \fs18 public abstract double getNumber () throws IOException, ArithmeticException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-211\shpright-55\shpbottom-23{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-211\shpright8165\shpbottom-23{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-21\shpright-55\shpbottom166{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-21\shpright8165\shpbottom166{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-114\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public final double Error ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 protected RandomStream ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 protected RandomStream (long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri3560\nooverflow\ql{\f5\cf3 \fs18 protected final double Uniform (); \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}} -{\pard\sl-91\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.6 UniformStream}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Distributions;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom446\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich43\picwgoal11020\pichgoal860\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080081067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fede7e227c44f8ede1bf8edfb3a7803c01 -fb3a7fc2caf825f12bfe16effc3407ed01ff000b77c1de0eff008668ff00843bc1d65ad7c29ff8b53ad58cfe2df8cbff000b97c5b3de782bfe28abdb0ff8579f -60ff00848fc47f6ad32ea2887bfd1450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -0145145001451450014514500145145001451450014514500145145001451450014514500145145007807ecb9f113e3b7c57f813e06f1ffed2ff00b3a7fc326f -c6dd7ffe126ff84d7f67ff00f85bbe0ef8efff00080ff65f8c7c43a2f873fe2eb7802c74ef0978abfe12af0969da0f8d7fe253650ff61ffc247ff08e5ff99a9e -8f7b2b95eff450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -4514500145145007ffd9 -}}}}} -{\pard\sl-202\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class UniformStream extends RandomStream}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public UniformStream (double lo, double hi);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl236\slmult1 \ri540\nooverflow\ql{\f5\cf3 \fs17 public UniformStream (double lo, double hi, int StreamSelect); public UniformStream (double lo, double hi, int StreamSelect,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-193\shpright-55\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-3\shpright-55\shpbottom291{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom291{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li2360\ql{\f5\cf3 \fs18 long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop88\shpright-55\shpbottom384{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop88\shpright8165\shpbottom384{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-142\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri0\nooverflow\ql{\f5\cf3 \fs18 public double getNumber () throws IOException, ArithmeticException; \};}\par} -} -{\shp {\*\shpinst \shptop-261\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich16\picwgoal11020\pichgoal320\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080030067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f0efe3b7893e3b7ece9e -3ff007ed17ff000ad7e097c35ff85bbff0d01fb3ff00fc2a2f0778c7fe1a5ffe131f075968bf0a7fe2eb6b57d078b7e0d7fc29af16c179e35ff8a2acafff00e1 -61fdbffe11cf11fd974cb58a53eff400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400515e01fb2e7c3bf8edf0a3e04f81bc01fb4bfed17ff0d65f -1b740ff849bfe135fda03fe151783be047fc27dfda9e31f10eb5e1cff8b53e00bed47c25e15ff8457c25a8e83e0aff00894decdfdb9ff08e7fc2477fe5ea7ac5 -ec485007ffd9 -}}}}}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1920\margr2106\margt1155\margb1440\marglsxn1920\margrsxn2106\cols1\colno1\colw7880 -{ -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.7 ExponentialStream}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Distributions;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class ExponentialStream extends RandomStream}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public ExponentialStream (double m);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl236\slmult1 \ri2060\nooverflow\ql{\f5\cf3 \fs17 public ExponentialStream (double m, int StreamSelect); public ExponentialStream (double m, int StreamSelect,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-193\shpright-55\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-3\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li2800\ql{\f5\cf3 \fs18 long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri660\nooverflow\ql{\f5\cf3 \fs18 public double getNumber () throws IOException, ArithmeticException; \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}} -{\pard\sl-91\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.8 ErlangStream}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Distributions;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class ErlangStream extends RandomStream}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public ErlangStream (double mean, double sd);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl236\slmult1 \ri1080\nooverflow\ql{\f5\cf3 \fs17 public ErlangStream (double mean, double sd, int StreamSelect); public ErlangStream (double mean, double sd, int StreamSelect,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-193\shpright-55\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-3\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li2260\ql{\f5\cf3 \fs18 long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri660\nooverflow\ql{\f5\cf3 \fs18 public double getNumber () throws IOException, ArithmeticException; \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}} -{\pard\sl-91\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.9 HyperExponentialStream}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Distributions;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom446\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich43\picwgoal11020\pichgoal860\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080081067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fede7e227c44f8ede1bf8edfb3a7803c01 -fb3a7fc2caf825f12bfe16effc3407ed01ff000b77c1de0eff008668ff00843bc1d65ad7c29ff8b53ad58cfe2df8cbff000b97c5b3de782bfe28abdb0ff8579f -60ff00848fc47f6ad32ea2887bfd1450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -0145145001451450014514500145145001451450014514500145145001451450014514500145145007807ecb9f113e3b7c57f813e06f1ffed2ff00b3a7fc326f -c6dd7ffe126ff84d7f67ff00f85bbe0ef8efff00080ff65f8c7c43a2f873fe2eb7802c74ef0978abfe12af0969da0f8d7fe253650ff61ffc247ff08e5ff99a9e -8f7b2b95eff450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -4514500145145007ffd9 -}}}}} -{\pard\sl-202\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class HyperExponentialStream extends RandomStream}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public HyperExponentialStream (double mean, double sd);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl236\slmult1 \ri0\nooverflow\ql{\f5\cf3 \fs17 public HyperExponentialStream (double mean, double sd, int StreamSelect); public HyperExponentialStream (double mean, double sd, int StreamSelect,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-193\shpright-55\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-3\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li3340\ql{\f5\cf3 \fs18 long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri660\nooverflow\ql{\f5\cf3 \fs18 public double getNumber () throws IOException, ArithmeticException; \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}} -{\pard\sl-91\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.10 NormalStream}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Distributions;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom446\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich43\picwgoal11020\pichgoal860\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080081067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fede7e227c44f8ede1bf8edfb3a7803c01 -fb3a7fc2caf825f12bfe16effc3407ed01ff000b77c1de0eff008668ff00843bc1d65ad7c29ff8b53ad58cfe2df8cbff000b97c5b3de782bfe28abdb0ff8579f -60ff00848fc47f6ad32ea2887bfd1450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -0145145001451450014514500145145001451450014514500145145001451450014514500145145007807ecb9f113e3b7c57f813e06f1ffed2ff00b3a7fc326f -c6dd7ffe126ff84d7f67ff00f85bbe0ef8efff00080ff65f8c7c43a2f873fe2eb7802c74ef0978abfe12af0969da0f8d7fe253650ff61ffc247ff08e5ff99a9e -8f7b2b95eff450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -4514500145145007ffd9 -}}}}} -{\pard\sl-202\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class NormalStream extends RandomStream}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public NormalStream (double mean, double sd);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl236\slmult1 \ri1080\nooverflow\ql{\f5\cf3 \fs17 public NormalStream (double mean, double sd, int StreamSelect); public NormalStream (double mean, double sd, int StreamSelect,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-193\shpright-55\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-3\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li2260\ql{\f5\cf3 \fs18 long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri660\nooverflow\ql{\f5\cf3 \fs18 public double getNumber () throws IOException, ArithmeticException; \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1920\margr1906\margt1155\margb1440\marglsxn1920\margrsxn1906\cols1\colno1\colw8080 -{ -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.11 Draw}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Distributions;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class Draw}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public Draw (double p);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public Draw (double p, int StreamSelect);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom182{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom182{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\ql{\f5\cf3 \fs17 public Draw (double p, int StreamSelect, long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-7\shpright-55\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-7\shpright8165\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri2900\nooverflow\ql{\f5\cf3 \fs18 public boolean getBoolean () throws IOException; \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}} -{\pard\sl-91\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.12 SimulationEntity}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Simulation;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class SimulationEntity extends SimulationProcess}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li3780\sl236\slmult1 \ri420\nooverflow\ql\fi-3777 {\f5\cf3 \fs17 public void Interrupt (SimulationEntity toInterrupt, boolean immediate) throws SimulationException,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-193\shpright-55\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-3\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl225\slmult1 \ql{\f5\cf3 \fs18 RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-5\shpright-55\shpbottom182{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-5\shpright8165\shpbottom182{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl254\slmult1 \ri4960\nooverflow\ql{\f5\cf3 \fs17 public final void trigger (); public void terminate ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-222\shpright-55\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-222\shpright8165\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-32\shpright-55\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-32\shpright8165\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-102\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 protected SimulationEntity ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li3880\sl329\slmult1 \ri0\nooverflow\ql\fi-3884 {\f5\cf3 \fs17 protected void Wait (double waitTime) throws SimulationException, RestartException, InterruptedException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-473\shpright-55\shpbottom-285{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-473\shpright8165\shpbottom-285{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-283\shpright-55\shpbottom-95{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-283\shpright8165\shpbottom-95{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-93\shpright-55\shpbottom94{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-93\shpright8165\shpbottom94{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-42\slmult0\par - -{\pard\plain \li1400\sl258\slmult1 \ri860\nooverflow\ql\fi-1403 {\f5\cf3 \fs18 protected void WaitFor (SimulationEntity controller, boolean reAct) throws SimulationException, RestartException,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-383\shpright-55\shpbottom-195{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-383\shpright8165\shpbottom-195{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-193\shpright-55\shpbottom-5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-3\shpright-55\shpbottom184{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom184{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl225\slmult1 \ql{\f5\cf3 \fs18 InterruptedException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 protected void WaitFor (SimulationEntity controller)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom182{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom182{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li860\ql{\f5\cf3 \fs17 throws SimulationException, RestartException, InterruptedException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-7\shpright-55\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-7\shpright8165\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 protected void WaitForTrigger (TriggerQueue _queue)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li860\ql{\f5\cf3 \fs17 throws SimulationException, RestartException, InterruptedException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-7\shpright-55\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-7\shpright8165\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri200\nooverflow\ql{\f5\cf3 \fs18 protected void WaitForSemaphore (Semaphore _sem) throws RestartException; \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}} -{\pard\sl-91\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.13 TriggerQueue}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Simulation;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class TriggerQueue}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl254\slmult1 \ri5500\nooverflow\ql{\f5\cf3 \fs17 public TriggerQueue (); public void finalize ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-222\shpright-55\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-222\shpright8165\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-32\shpright-55\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-32\shpright8165\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-102\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public synchronized void triggerFirst (boolean setTrigger)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\sl254\slmult1 \ri0\nooverflow\ql\fi4856 {\f5\cf3 \fs17 throws NoSuchElementException; public synchronized void triggerFirst () throws NoSuchElementException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-222\shpright-55\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-222\shpright8165\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-32\shpright-55\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-32\shpright8165\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-102\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri640\nooverflow\ql{\f5\cf3 \fs18 public synchronized void triggerAll () throws NoSuchElementException; \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1920\margr1906\margt1155\margb1440\marglsxn1920\margrsxn1906\cols1\colno1\colw8080 -{ -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.14 Semaphore}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Simulation;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class SemaphoreOutcome}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li420\sl223\slmult1 \ri3760\nooverflow\ql{\f5\cf3 \fs18 static final public int DONE = 0; static final public int NOTDONE = 1;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-194\shpright-55\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li420\sl225\slmult1 \ql{\f5\cf3 \fs18 static final public int WOULD_BLOCK = 2;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-5\shpright-55\shpbottom290{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-5\shpright8165\shpbottom290{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\ql{\f5\cf3 \fs18 \};}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop88\shpright-55\shpbottom384{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop88\shpright8165\shpbottom384{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-142\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class Semaphore}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public Semaphore ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public Semaphore (long number);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public synchronized long NumberWaiting ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public synchronized int Get (SimulationEntity toWait)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\sl223\slmult1 \ri0\nooverflow\ql\fi5503 {\f5\cf3 \fs18 throws RestartException; public synchronized int TryGet (SimulationEntity toWait)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-194\shpright-55\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li5500\sl238\slmult1 \ql{\f5\cf3 \fs17 throws RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-5\shpright-55\shpbottom182{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-5\shpright8165\shpbottom182{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl233\slmult1 \ri4300\nooverflow\ql{\f5\cf3 \fs18 public synchronized int Release (); \};}\par} -} -{\shp {\*\shpinst \shptop-210\shpleft-80\shpright8192\shpbottom28\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich16\picwgoal11020\pichgoal320\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080030067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f0efe3b7893e3b7ece9e -3ff007ed17ff000ad7e097c35ff85bbff0d01fb3ff00fc2a2f0778c7fe1a5ffe131f075968bf0a7fe2eb6b57d078b7e0d7fc29af16c179e35ff8a2acafff00e1 -61fdbffe11cf11fd974cb58a53eff400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400515e01fb2e7c3bf8edf0a3e04f81bc01fb4bfed17ff0d65f -1b740ff849bfe135fda03fe151783be047fc27dfda9e31f10eb5e1cff8b53e00bed47c25e15ff8457c25a8e83e0aff00894decdfdb9ff08e7fc2477fe5ea7ac5 -ec485007ffd9 -}}}}} -{\pard\sl-141\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.15 Mean}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Statistics;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class Mean}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public Mean ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void setValue (double value) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void reset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\sl258\slmult1 \ri4840\nooverflow\ql{\f5\cf3 \fs18 public int numberOfSamples (); public double min ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-383\shpright-55\shpbottom-195{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-383\shpright8165\shpbottom-195{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-193\shpright-55\shpbottom-5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-3\shpright-55\shpbottom184{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom184{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-2\slmult0\par - -{\pard\plain \li0\sl245\slmult1 \ri5720\nooverflow\ql{\f5\cf3 \fs17 public double max (); public double sum (); public double mean ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-404\shpright-55\shpbottom-217{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-404\shpright8165\shpbottom-217{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-214\shpright-55\shpbottom-27{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-214\shpright8165\shpbottom-27{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-24\shpright-55\shpbottom163{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-24\shpright8165\shpbottom163{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-110\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public boolean saveState (String fileName) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs17 public boolean saveState (DataOutputStream oFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-7\shpright-55\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-7\shpright8165\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li5720\sl274\slmult1 \ri0\nooverflow\ql\fi-5719 {\f5\cf3 \fs17 public boolean restoreState (String fileName) throws FileNotFoundException, IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-384\shpright-55\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-384\shpright8165\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-194\shpright-55\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\ql{\f5\cf3 \fs17 public boolean restoreState (DataInputStream iFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-7\shpright-55\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-7\shpright8165\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri5820\nooverflow\ql{\f5\cf3 \fs18 public void print (); \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1920\margr1906\margt1155\margb1440\marglsxn1920\margrsxn1906\cols1\colno1\colw8080 -{ -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.16 Variance}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Statistics;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class Variance extends Mean}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public Variance ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void setValue (double value) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void reset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\sl274\slmult1 \ri5280\nooverflow\ql{\f5\cf3 \fs17 public double variance (); public double stdDev ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-384\shpright-55\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-384\shpright8165\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-194\shpright-55\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\ql{\f5\cf3 \fs18 public double confidence (double value);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void print ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public boolean saveState (String fileName) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs17 public boolean saveState (DataOutputStream oFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-7\shpright-55\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-7\shpright8165\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li5720\sl274\slmult1 \ri0\nooverflow\ql\fi-5719 {\f5\cf3 \fs17 public boolean restoreState (String fileName) throws FileNotFoundException, IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-384\shpright-55\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-384\shpright8165\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-194\shpright-55\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl233\slmult1 \ri420\nooverflow\ql{\f5\cf3 \fs18 public boolean restoreState (DataInputStream iFile) throws IOException; \};}\par} -} -{\shp {\*\shpinst \shptop-210\shpleft-80\shpright8192\shpbottom28\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich16\picwgoal11020\pichgoal320\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080030067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f0efe3b7893e3b7ece9e -3ff007ed17ff000ad7e097c35ff85bbff0d01fb3ff00fc2a2f0778c7fe1a5ffe131f075968bf0a7fe2eb6b57d078b7e0d7fc29af16c179e35ff8a2acafff00e1 -61fdbffe11cf11fd974cb58a53eff400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400515e01fb2e7c3bf8edf0a3e04f81bc01fb4bfed17ff0d65f -1b740ff849bfe135fda03fe151783be047fc27dfda9e31f10eb5e1cff8b53e00bed47c25e15ff8457c25a8e83e0aff00894decdfdb9ff08e7fc2477fe5ea7ac5 -ec485007ffd9 -}}}}} -{\pard\sl-141\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.17 TimeVariance}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Statistics;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class TimeVariance extends Variance}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public TimeVariance ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void reset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void setValue (double value) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public double timeAverage ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public boolean saveState (String fileName) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom336{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom336{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs17 public boolean saveState (DataOutputStream oFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop100\shpright-55\shpbottom396{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop100\shpright8165\shpbottom396{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-153\slmult0\par - -{\pard\plain \li5720\sl274\slmult1 \ri0\nooverflow\ql\fi-5719 {\f5\cf3 \fs17 public boolean restoreState (String fileName) throws FileNotFoundException, IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-194\shpright-55\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl233\slmult1 \ri420\nooverflow\ql{\f5\cf3 \fs18 public boolean restoreState (DataInputStream iFile) throws IOException; \};}\par} -} -{\shp {\*\shpinst \shptop-210\shpleft-80\shpright8192\shpbottom28\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich16\picwgoal11020\pichgoal320\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080030067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f0efe3b7893e3b7ece9e -3ff007ed17ff000ad7e097c35ff85bbff0d01fb3ff00fc2a2f0778c7fe1a5ffe131f075968bf0a7fe2eb6b57d078b7e0d7fc29af16c179e35ff8a2acafff00e1 -61fdbffe11cf11fd974cb58a53eff400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400515e01fb2e7c3bf8edf0a3e04f81bc01fb4bfed17ff0d65f -1b740ff849bfe135fda03fe151783be047fc27dfda9e31f10eb5e1cff8b53e00bed47c25e15ff8457c25a8e83e0aff00894decdfdb9ff08e7fc2477fe5ea7ac5 -ec485007ffd9 -}}}}}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1920\margr1886\margt1155\margb1440\marglsxn1920\margrsxn1886\cols1\colno1\colw8100 -{ -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.18 PrecisionHistogram}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Statistics;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class PrecisionHistogram extends Variance}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public PrecisionHistogram ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void finalize ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void setValue (double value) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void reset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public long numberOfBuckets ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li4960\sl274\slmult1 \ri440\nooverflow\ql\fi-4963 {\f5\cf3 \fs17 public double sizeByIndex (long index) throws StatisticsException, IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-384\shpright-55\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-384\shpright8165\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-194\shpright-55\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\ql{\f5\cf3 \fs17 public double sizeByName (double name) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-7\shpright-55\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-7\shpright8165\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public boolean saveState (String fileName) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs17 public boolean saveState (DataOutputStream oFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-7\shpright-55\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-7\shpright8165\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li5720\sl274\slmult1 \ri20\nooverflow\ql\fi-5719 {\f5\cf3 \fs17 public boolean restoreState (String fileName) throws FileNotFoundException, IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-384\shpright-55\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-384\shpright8165\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-194\shpright-55\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\ql{\f5\cf3 \fs17 public boolean restoreState (DataInputStream iFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-7\shpright-55\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-7\shpright8165\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri5840\nooverflow\ql{\f5\cf3 \fs18 public void print (); \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}} -{\pard\sl-91\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.19 Histogram}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Statistics;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class Histogram extends PrecisionHistogram}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri2700\nooverflow\ql{\f5\cf3 \fs18 public Histogram (long maxIndex, int mergeChoice); public Histogram (long maxIndex);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-211\shpright-55\shpbottom-23{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-211\shpright8165\shpbottom-23{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-21\shpright-55\shpbottom166{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-21\shpright8165\shpbottom166{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-114\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void setValue (double value) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public boolean saveState (String fileName) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs17 public boolean saveState (DataOutputStream oFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-7\shpright-55\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-7\shpright8165\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li5720\sl258\slmult1 \ri0\nooverflow\ql\fi-5728 {\f5\cf3 \fs18 public boolean restoreState (String fileName) throws FileNotFoundException, IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-383\shpright-55\shpbottom-195{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-383\shpright8165\shpbottom-195{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-193\shpright-55\shpbottom-5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-193\shpright8165\shpbottom-5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-3\shpright-55\shpbottom184{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-3\shpright8165\shpbottom184{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-2\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs17 public boolean restoreState (DataInputStream iFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-7\shpright-55\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-7\shpright8165\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri5840\nooverflow\ql{\f5\cf3 \fs18 public void print (); \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1920\margr1906\margt1155\margb1440\marglsxn1920\margrsxn1906\cols1\colno1\colw8080 -{ -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.20 SimpleHistogram}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Statistics;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class SimpleHistogram extends PrecisionHistogram}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl254\slmult1 \ri1280\nooverflow\ql{\f5\cf3 \fs17 public SimpleHistogram (double min, double max, long nbuckets); public SimpleHistogram (double min, double max, double w);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-222\shpright-55\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-222\shpright8165\shpbottom-34{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-32\shpright-55\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-32\shpright8165\shpbottom155{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-102\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void setValue (double value) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void reset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs17 public double sizeByName (double name) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-137\shpright-55\shpbottom50{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-137\shpright8165\shpbottom50{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop52\shpright-55\shpbottom240{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop52\shpright8165\shpbottom240{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-187\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public double Width ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public void print ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public boolean saveState (String fileName) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-46\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs17 public boolean saveState (DataOutputStream oFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-7\shpright-55\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-7\shpright8165\shpbottom180{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-127\slmult0\par - -{\pard\plain \li5720\sl274\slmult1 \ri0\nooverflow\ql\fi-5719 {\f5\cf3 \fs17 public boolean restoreState (String fileName) throws FileNotFoundException, IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-384\shpright-55\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-384\shpright8165\shpbottom-197{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-194\shpright-55\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-194\shpright8165\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl233\slmult1 \ri420\nooverflow\ql{\f5\cf3 \fs18 public boolean restoreState (DataInputStream iFile) throws IOException; \};}\par} -} -{\shp {\*\shpinst \shptop-210\shpleft-80\shpright8192\shpbottom28\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich16\picwgoal11020\pichgoal320\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080030067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f0efe3b7893e3b7ece9e -3ff007ed17ff000ad7e097c35ff85bbff0d01fb3ff00fc2a2f0778c7fe1a5ffe131f075968bf0a7fe2eb6b57d078b7e0d7fc29af16c179e35ff8a2acafff00e1 -61fdbffe11cf11fd974cb58a53eff400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400515e01fb2e7c3bf8edf0a3e04f81bc01fb4bfed17ff0d65f -1b740ff849bfe135fda03fe151783be047fc27dfda9e31f10eb5e1cff8b53e00bed47c25e15ff8457c25a8e83e0aff00894decdfdb9ff08e7fc2477fe5ea7ac5 -ec485007ffd9 -}}}}} -{\pard\sl-141\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.21 Quantile}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Statistics;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class Quantile extends PrecisionHistogram}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public Quantile ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public Quantile (double q) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-19\shpright-55\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-19\shpright8165\shpbottom168{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\sl329\slmult1 \ri5280\nooverflow\ql{\f5\cf3 \fs17 public double getValue (); public double range ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-473\shpright-55\shpbottom-285{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-473\shpright8165\shpbottom-285{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-283\shpright-55\shpbottom-95{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-283\shpright8165\shpbottom-95{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-93\shpright-55\shpbottom94{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-93\shpright8165\shpbottom94{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-42\slmult0\par - -{\pard\plain \li0\sl298\slmult1 \ri5820\nooverflow\ql{\f5\cf3 \fs18 public void print (); \};}\par} -} -{\shp {\*\shpinst \shptop-451\shpleft-80\shpright8192\shpbottom-23\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a00f00f889fb2e7c09f8aff001dbf674fda5fc7fe06fedff8dbfb26ff00c2ddff00867ff1affc24de31d2ff00e101ff00 -85efe0eb2f007c56ff008a7345f10e9de12f157fc255e12d3acf49ff008ad741f11ff61f93f6ff000e7f63ea724b7afeff004514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff1 -1ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b728a2803ffd9 -}}}}} -{\pard\sl-91\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs25 7.22 StatisticsException}\par} -} -{\pard\sl-286\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 package arjuna.JavaSim.Statistics;}\par} -} -{\shp {\*\shpinst \shptop-198\shpleft-80\shpright8192\shpbottom230\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich29\picwgoal11020\pichgoal580\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080056067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803e40fd82bf68ff8a7fb5bfec9df0a7f684f -8d7fb31fc40fd8dfe26fc40ff84ebfe126fd9bfe2949e2397c77f0e7fe114f893e31f0468dfdbb278b3e1ffc2ef1037fc25fe1ff000de95e3cd33fb43c09a163 -47f1469eb6bfda7642db58d40afafe8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ffd9 -}}}}} -{\pard\sl-176\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs18 public class StatisticsException extends Exception}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-149\shpright-55\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-149\shpright8165\shpbottom38{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop40\shpright-55\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop40\shpright8165\shpbottom228{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-32\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f5\cf3 \fs18 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f5\cf3 \fs18 public StatisticsException ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-55\shptop-4\shpright-55\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft8165\shptop-4\shpright8165\shpbottom183{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6856}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri3980\nooverflow\ql{\f5\cf3 \fs18 public StatisticsException (String s); \};}\par} -} -{\shp {\*\shpinst \shptop-210\shpleft-80\shpright8192\shpbottom28\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw551\pich16\picwgoal11020\pichgoal320\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080030067603012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f0efe3b7893e3b7ece9e -3ff007ed17ff000ad7e097c35ff85bbff0d01fb3ff00fc2a2f0778c7fe1a5ffe131f075968bf0a7fe2eb6b57d078b7e0d7fc29af16c179e35ff8a2acafff00e1 -61fdbffe11cf11fd974cb58a53eff400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400515e01fb2e7c3bf8edf0a3e04f81bc01fb4bfed17ff0d65f -1b740ff849bfe135fda03fe151783be047fc27dfda9e31f10eb5e1cff8b53e00bed47c25e15ff8457c25a8e83e0aff00894decdfdb9ff08e7fc2477fe5ea7ac5 -ec485007ffd9 -}}}}}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1915\margr1866\margt1344\margb1440\marglsxn1915\margrsxn1866\cols1\colno1\colw8125 -{ -{\pard\plain \li5\ql{\f13\b\cf3 \fs32 8. References}\par} -} -{\pard\sl-181\slmult0\par -{{\listtext{\pard\plain {\f1\cf3 \fs22 [1] }\tab}}\pard\plain -\f1\cf3 \fs22 \qj\fi-765\nowidctlpar\jclisttab\tx765\faauto\ls3\ilvl0\rin0\nooverflow\lin765\itap0 \sl284\slmult1 {\plain\f1\cf3 \fs22 G. M. Birtwistle, O-J. Dahl, B. Myhrhaug, K. {Nygaard, \ldblquote Simula Begin\rdblquote , Academic} Press, 1973 }\par\pard\sl-1\slmult0\par -{\listtext{\pard\plain {\f15\cf3 \fs22 [2] }\tab}}\pard\plain -\f15\cf3 \fs22 \qj\fi-765\nowidctlpar\jclisttab\tx765\faauto\ls3\ilvl0\rin0\nooverflow\lin765\itap0 \sl241\slmult1 {\plain\f15\cf3 \fs22 O-J. Dahl, B. Myhrhaug, K. Nygaard, \ldblquote SIMULA Common Base Language\rdblquote , Norwegian Computing Centre }\par\pard\sl-1\slmult0\par -{\listtext{\pard\plain {\f15\cf3 \fs22 [3] }\tab}}\pard\plain -\f15\cf3 \fs22 \qj\fi-765\nowidctlpar\jclisttab\tx765\faauto\ls3\ilvl0\rin0\nooverflow\lin765\itap0 {\plain\f15\cf3 \fs22 Knuth Vol2, \ldblquote Seminumerical Algorithms\rdblquote , Addison-Wesley, 1969, p. 117. }\par\pard\sl-1\slmult0\par -{\listtext{\pard\plain {\f15\cf3 \fs22 [4] }\tab}}\pard\plain -\f15\cf3 \fs22 \qj\fi-765\nowidctlpar\jclisttab\tx765\faauto\ls3\ilvl0\rin0\nooverflow\lin765\itap0 {\plain\f15\cf3 \fs22 R. Sedgewick, \ldblquote Algorithms\rdblquote , Addison-Wesley, Reading MA, 1983, pp. 36-38. }\par\pard\sl-1\slmult0\par -{\listtext{\pard\plain {\f15\cf3 \fs22 [5] }\tab}}\pard\plain -\f15\cf3 \fs22 \qj\fi-765\nowidctlpar\jclisttab\tx765\faauto\ls3\ilvl0\rin0\nooverflow\lin765\itap0 \sl221\slmult1 {\plain\f15\cf3 \fs22 D. L. McCue and M. C. Little, \ldblquote Computing Replica Placement in Distributed Systems\rdblquote , Proceedings of the 2{\fs28 \super nd} IEEE Workshop on the Management of Replicated Data, November 1992, pp. 58-61. }\par\pard\sl-2\slmult0\par -{\listtext{\pard\plain {\f15\cf3 \fs22 [6] }\tab}}\pard\plain -\f15\cf3 \fs22 \qj\fi-765\nowidctlpar\jclisttab\tx763\faauto\ls3\ilvl0\rin0\nooverflow\lin765\itap0 \sl241\slmult1 {\plain\f15\cf3 \fs22 I. Mitrani, \ldblquote Simulation Techniques for Discrete Event Systems\rdblquote , Cambridge University Press, Cambridge, 1982. }\par\pard\sl-1\slmult0\par -{\listtext{\pard\plain {\f15\cf3 \fs22 [7] }\tab}}\pard\plain -\f15\cf3 \fs22 \qj\fi-765\nowidctlpar\jclisttab\tx763\faauto\ls3\ilvl0\rin0\nooverflow\lin765\itap0 \sl221\slmult1 {\plain\f15\cf3 \fs22 M. C. Little and D. L. McCue, \ldblquote The Replica Management System: a Scheme for Flexible and Dynamic Replication\rdblquote , Proceedings of the 2{\fs28 \super nd} International Workshop on Configurable Distributed Systems, March 1994, pp. 46-57. }\par\pard\sl-2\slmult0\par -{\listtext{\pard\plain {\f15\cf3 \fs22 [8] }\tab}}\pard\plain -\f15\cf3 \fs22 \qj\fi-765\nowidctlpar\jclisttab\tx765\faauto\ls3\ilvl0\rin0\nooverflow\lin765\itap0 \sl348\slmult1 {\plain\f15\cf3 \fs22 G. D. Parrington et al, \ldblquote The Design and Implementation of Arjuna\rdblquote , Broadcast Project Technical Report, October 1994. }\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1920\margr1886\margt1346\margb1440\marglsxn1920\margrsxn1886\cols2\colno1\colw3720\colsx660\colsr660\colno2\colw3720 -{ -{\pard\plain \li0\ql{\f17\cf3 \fs32 9. Index}\par} -} -{\pard\sl-268\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs21 Activating a process}\tldot\tx3480\tab{\f10\b\cf3 \fs22 12}\par} -} -{\pard\sl-222\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs21 Contact person}\tldot\tx3600\tab{\f10\b\cf3 \fs19 5}\par} -} -{\pard\sl-234\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs21 Controlling a simulation}\tldot\tx3480\tab{\f10\b\cf3 \fs22 14}\par} -} -{\pard\sl-222\slmult0\par - -{\pard\plain \li320\ql{\f1\cf3 \fs21 example}\tldot\tx3480\tab{\f9\i\cf3 \fs22 14}\par} -} -{\pard\sl-218\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs21 Platform}\tldot\tx3600\tab{\f10\b\cf3 \fs19 5}\par} -} -{\pard\sl-234\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs21 Processes}\tldot\tx3480\tab{\f10\b\cf3 \fs22 10}\par} -} -{\pard\sl-222\slmult0\par - -{\pard\plain \li320\ql{\f1\cf3 \fs21 class definition}\tldot\tx3480\tab{\f9\i\cf3 \fs22 11}\par} -} -{\pard\sl-218\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs21 Re-activating a process}\tldot\tx3480\tab{\f10\b\cf3 \fs22 12}\par} -} -{\pard\sl-222\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs21 Resetting a simulation}\tldot\tx3480\tab{\f10\b\cf3 \fs22 15}\par} -}\column - -{\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-236\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs21 Restarting a simulation}\tldot\tx3500\tab{\f10\b\cf3 \fs19 15}\par} -} -{\pard\sl-234\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs21 Scheduler}\tldot\tx3600\tab{\f10\b\cf3 \fs19 9}\par} -} -{\pard\sl-233\slmult0\par - -{\pard\plain \li320\ql{\f1\cf3 \fs21 class definition}\tldot\tx3500\tab{\f9\i\cf3 \fs19 10}\par} -} -{\pard\sl-230\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs21 Simulation models}\tldot\tx3600\tab{\f10\b\cf3 \fs19 6}\par} -} -{\pard\sl-233\slmult0\par - -{\pard\plain \li320\ql{\f1\cf3 \fs21 continuous time}\tldot\tx3600\tab{\f9\i\cf3 \fs19 7}\par} -} -{\pard\sl-229\slmult0\par - -{\pard\plain \li320\ql{\f1\cf3 \fs21 continuous time-discrete event}\tldot\tx3600\tab{\f9\i\cf3 \fs19 7}\par} -} -{\pard\sl-229\slmult0\par - -{\pard\plain \li320\ql{\f1\cf3 \fs21 discrete time}\tldot\tx3600\tab{\f9\i\cf3 \fs19 7}\par} -} -{\pard\sl-230\slmult0\par - -{\pard\plain \li0\ql{\f1\cf3 \fs21 Terminology}\tldot\tx3600\tab{\f10\b\cf3 \fs19 6}\par} -}\sect\sbknone\cols1\colno1\colw2000\marglsxn1680\margrsxn1680{\par\pard\li0\ri0\f20\ql\fs24 {\field {\*\fldinst { HYPERLINK "http://pdfonline.blogspot.com" }}{\fldrslt {\ul \cf5 PDF to Word}}}}} \ No newline at end of file From 6c5b5562c030cbc7840949f5506f61406bfdba66 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jul 2015 10:46:27 -0400 Subject: [PATCH 057/230] Removed as part of doc update https://github.com/nmcl/JavaSim/issues/33 Also have extracted the raw text from it anyway. --- docs/javasim1843_new.rtf | 3926 -------------------------------------- 1 file changed, 3926 deletions(-) delete mode 100755 docs/javasim1843_new.rtf diff --git a/docs/javasim1843_new.rtf b/docs/javasim1843_new.rtf deleted file mode 100755 index e4b28dd..0000000 --- a/docs/javasim1843_new.rtf +++ /dev/null @@ -1,3926 +0,0 @@ -{\rtf1\ansi\ansicpg1252\deff0\dntblnsbdb\viewkind1 -{\fonttbl{\f0\froman\fcharset0 Times New Roman;}{\f1\fswiss\fcharset0 Times;}{\f2\fswiss\fcharset0 Arial;}{\f3\froman\fcharset0 Times;}{\f4\fswiss\fcharset0 Times;}{\f5\fswiss\fcharset0 Courier New;}{\f6\fswiss\fcharset0 Times;}{\f7\fswiss\fcharset0 Arial;}{\f8\fswiss\fcharset0 Courier New;}{\f9\froman\fcharset0 Times;}{\f10\froman\fcharset0 Times;}{\f11\ftech\fcharset2 Symbol;}{\f12\fswiss\fcharset0 Times;}{\f13\ftech\fcharset2 Symbol;}{\f14\fswiss\fcharset0 Arial Unicode MS;}{\f15\froman\fcharset0 Times;}{\f17\froman\fcharset0 Times New Roman;}} -{\colortbl;\red255\green255\blue0;\red0\green0\blue255;\red0\green0\blue0;\red255\green255\blue255;\red0\green0\blue255;} -{\*\listtable{\list\listtemplateid18467\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid6334\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid41} -{\list\listtemplateid19169\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid15724\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid26500} -{\list\listtemplateid29358\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid26962\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid11478} -{\list\listtemplateid5705\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid28145\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid24464} -}{\*\listoverridetable -{\listoverride\listid41\listoverridecount0\ls1} -{\listoverride\listid26500\listoverridecount0\ls2} -{\listoverride\listid11478\listoverridecount0\ls3} -{\listoverride\listid24464\listoverridecount0\ls4} -}{\stylesheet{\*\cs0 \additive Default Paragraph Font;} -} -\jexpand\lnbrkrule\pgwsxn11906\pghsxn16838 -\margl1460\margr1406\margt930\margb1440\marglsxn1460\margrsxn1406\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f1\b\cf3 \fs36 4. Distribution Functions}\par} -} -{\pard\sl-293\slmult0\par - -{\pard\plain \li0\sl268\slmult1 \ri20\nooverflow\qj{\f3\b\cf3 \fs24 Many of the aspects of the real world which a simulation attempts to model have properties which correspond to various distribution functions, e.g., inter-arrival rates of customers at a bank queue. Therefore, simulation studies require sources of random numbers. Ideally these sources should produce an endless stream of such numbers, but to do so either requires specialised hardware or the ability to store an infinite (large) table of such numbers generated in advance.}\par} -} -{\pard\sl-90\slmult0\par - -{\pard\plain \li0\sl282\slmult1 \ri0\nooverflow\qj{\f3\b\cf3 \fs23 Without such aids, which are either impractical or not generally available, the alternative is to use numerical algorithms. No deterministic algorithm can produce a sequence of numbers that would have all of the properties of a truly random sequence [3]. However, for all practical purposes it is only necessary that the numbers produced appear random, i.e., pass certain statistical tests for randomness. Although these generators produce pseudo-random numbers, we continue to call the random number generators.}\par} -} -{\pard\sl-75\slmult0\par - -{\pard\plain \li0\sl265\slmult1 \ri0\nooverflow\qj{\f3\b\cf3 \fs24 The starting point for generating arbitrary distribution functions is to produce a standard uniform distribution. As we shall see, all other distributions can be produced based upon this. (Interested readers are referred to [6] for a more complete treatment of this topic). All of the distribution functions in {\b0 \i JavaSim} rely upon inheritance to specialise the behaviour obtained from the uniform distribution class. These classes can be found in the \b0 \f5 arjuna.JavaSim.Distributions {\b \f3 package.}}\par} -} -{\pard\sl-80\slmult0\par - -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 4.1 RandomStream}\par} -} -{\pard\sl-265\slmult0\par - -{\pard\plain \li0\sl271\slmult1 \ri20\nooverflow\qj{\f3\b\cf3 \fs24 The actual uniform distribution class is called {\b0 \f5 RandomStream}. This returns a series of random numbers uniformly distributed between 0 and 1. We experimented with several random number generators before settling on a shuffle of a multiplicative generator with a linear congruential generator, which provides a reasonably uniform stream of pseudo-random numbers.}\par} -} -{\pard\sl-134\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public abstract class RandomStream}\par} -} -{\shp {\*\shpinst \shptop-219\shpleft-80\shpright9109\shpbottom255\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803c7ff00685f88fe2af839f00be387c5df02fc31f107c6cf1b7c2bf83ff12fe23f83be0cf84d -b514f157c5cf15781fc17ad789fc3df0c7c32fa3f87fc59abaf883c7babe9767e15d19b4bf0af897515d4756b6363e1fd66e445a75cf907ec15fb47fc53fdadf -f64ef853fb427c6bfd98fe207ec6ff00137e207fc275ff000937ecdff14a4f11cbe3bf873ff08a7c49f18f82346fedd93c59f0ff00e177881bfe12ff000ff86f -4af1e699fda1e04d0b1a3f8a34f5b5fed3b216dac6a1f5fd14005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451401ffd9 -}}}}} -{\pard\sl-35\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl233\slmult1 \ri2440\nooverflow\ql{\f8\cf3 \fs20 public abstract double getNumber () throws IOException, ArithmeticException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-234\shpright-54\shpbottom-25{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-234\shpright9082\shpbottom-25{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-23\shpright-54\shpbottom185{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-23\shpright9082\shpbottom185{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-128\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public final double Error ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 protected RandomStream ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-51\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 protected RandomStream (long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-21\shpright-54\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-21\shpright9082\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-130\slmult0\par - -{\pard\plain \li0\sl297\slmult1 \ri4960\nooverflow\ql{\f8\cf3 \fs20 protected final double Uniform (); \};}\par} -} -{\shp {\*\shpinst \shptop-500\shpleft-80\shpright9109\shpbottom-26\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f00bfe1617c76fd9d3e3a7fc2eaf -da03c0ff00f0ceff00f0b77fe2cefc3bf88fff0008cfc09f8e7ff0b6fc1d65e0ff00f8c8bf87bfd8d7bff0b37fe1597d8bfe129f845ff137d13fe10cf18dddf6 -b7ff00132fb47d953dfe800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a2bcffe2cf803fe16bfc2cf897f0b7fe135f881f0d7fe1657c3ff00197803fe162fc27f11ff00c21df14fc03ff098f873 -52f0effc26bf0d3c5df62d47fe115f881e15fed1feddf06f88ff00b3efff00b0fc4761a6ea7f62bafb2f90fc07ecb9f00bfe197fe04f81be05ff00c2eafda03f -688ff841ff00e126ff008bc5fb51fc47ff0085b7f1dbc61ff09378c7c43e30ff008ae7e217f63787ff00e120ff00847ffe120ff845bc33ff00128b4fecaf0768 -9e1ed13fd23fb37ed53007ffd9 -}}}}} -{\pard\sl-117\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs24 The multiplicative generator uses the following algorithm{\fs32 \super 3}:}\par} -} -{\pard\sl-146\slmult0\par - -{\pard\plain \li3220\ql{\f3\b\cf3 \fs24 Y[i+1] = Y[i] * 5{\fs32 \super 5} mod 2{\fs32 \super 26}}\par} -} -{\pard\sl-155\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs24 , where the period is 2{\fs32 \super 24}, and the initial seed must be odd.}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft1\shptop564\shpright2879\shpbottom564{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6096}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -\sect\sbknone -\marglsxn1460\margrsxn5466\cols1\colno1\colw4980 -{\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-268\slmult0\par - -{\pard\plain \li0\ql{\f9\b\cf3 \fs30 {\super 3}{\fs18 Thanks to Professor I. Mitrani for his help in developing this.}}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1460\margr1406\margt734\margb1440\marglsxn1460\margrsxn1406\cols1\colno1\colw9040 -{ -{\pard\plain \li0\sl267\slmult1 \ri20\nooverflow\qj{\f3\b\cf3 \fs24 The {\b0 \f5 Uniform()} method uses the linear congruential generator (seed is {\b0 \f5 LCGSeed}, with the default value of 1878892440L) based on the algorithm in [4], and the results of this are shuffled with the multiplicative generator (see is {\b0 \f5 MGSeed}, with a default value of 772531L) as suggested by Maclaren and Marsaglia [3], to obtain a sufficiently uniform random distribution, which is then returned.}\par} -} -{\pard\sl-90\slmult0\par - -{\pard\plain \li0\sl340\slmult1 \ri20\nooverflow\ql{\f3\b\cf3 \fs24 The {\b0 \f5 Error()} method returns a chi-square error measure on the uniform distribution function.}\par} -} -{\pard\sl-3\slmult0\par - -{\pard\plain \li0\sl340\slmult1 \ri0\nooverflow\ql{\f3\b\cf3 \fs24 By abstract method {\b0 \f5 getNumber} must be provided by derived classes, and is used to obtain a uniform means of accessing random numbers.}\par} -} -{\pard\sl-3\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs22 The {\b0 \f5 RandomStream} class returns a large sequence of random numbers, whose period is}\par} -} -{\pard\sl-135\slmult0\par - -{\pard\plain \li0\sl246\slmult1 \ri0\nooverflow\qj{\f3\b\cf3 \fs24 2^24. However, unless the seeds are modified when each random distribution class is created, the starting position in this sequence will always be the same, i.e., the same sequence of numbers will be obtained. To prevent this, each class derived from {\b0 \f5 RandomStream} has an additional parameter for one of its constructors which indicates the offset in this sequence from which to begin sampling.}\par} -} -{\pard\sl-97\slmult0\par - -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 4.2 UniformStream}\par} -} -{\pard\sl-265\slmult0\par - -{\pard\plain \li0\sl340\slmult1 \ri20\nooverflow\ql{\f3\b\cf3 \fs24 The {\b0 \f5 UniformStream} class inherits from {\b0 \f5 RandomStream} and returns random numbers uniformly distributed over a range specified when the instance is created.}\par} -} -{\pard\sl-55\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public class UniformStream extends RandomStream}\par} -} -{\shp {\*\shpinst \shptop-219\shpleft-80\shpright9109\shpbottom255\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803c7ff00685f88fe2af839f00be387c5df02fc31f107c6cf1b7c2bf83ff12fe23f83be0cf84d -b514f157c5cf15781fc17ad789fc3df0c7c32fa3f87fc59abaf883c7babe9767e15d19b4bf0af897515d4756b6363e1fd66e445a75cf907ec15fb47fc53fdadf -f64ef853fb427c6bfd98fe207ec6ff00137e207fc275ff000937ecdff14a4f11cbe3bf873ff08a7c49f18f82346fedd93c59f0ff00e177881bfe12ff000ff86f -4af1e699fda1e04d0b1a3f8a34f5b5fed3b216dac6a1f5fd14005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451401ffd9 -}}}}} -{\pard\sl-35\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f8\cf3 \fs20 public UniformStream (double lo, double hi);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl235\slmult1 \ri1600\nooverflow\ql{\f8\cf3 \fs19 public UniformStream (double lo, double hi, int StreamSelect); public UniformStream (double lo, double hi, int StreamSelect,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-216\shpright-54\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-216\shpright9082\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom323{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom323{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li2640\ql{\f8\cf3 \fs20 long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop98\shpright-54\shpbottom427{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop98\shpright9082\shpbottom427{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-159\slmult0\par - -{\pard\plain \li0\sl297\slmult1 \ri1000\nooverflow\ql{\f8\cf3 \fs20 public double getNumber () throws IOException, ArithmeticException; \};}\par} -} -{\shp {\*\shpinst \shptop-288\shpleft-80\shpright9109\shpbottom-26\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich17\picwgoal12260\pichgoal340\picscalex101\picscaley101 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080034072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028af00f889fb51fc09f851f1dbf674fd9a3c7fe39fec0f8dbfb597fc2ddff867ff00057fc233e31d53fe13eff8511e0eb2f1ff00c56ff8 -a8f45f0f6a3e12f0affc22be12d46cf56ff8ad75ef0e7f6e79df60f0e7f6c6a71cb649eff4005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -140051451400514514005145140051451400514514005145140051451400514514005145140051451400515e7ff167e297813e077c2cf897f1afe296bbff0008 -bfc32f83ff000ffc65f14be22f89bfb3358d6ffe11df027c3ff0e6a5e2cf176bbfd8de1dd3f57f106aff00d91e1fd2350d43fb3342d2b53d62ff00ecff0065d3 -34fbdbd960b69780fd973f6a3f813fb68fc09f037ed2ff00b3478e7fe1657c12f895ff000937fc215e35ff008467c63e0efedaff00843bc63e21f00788ff00e2 -9cf1ff0087bc2be2dd3bfb3bc5be15d7b49ff89b68361f6cfb07dbec3ed5a65d595edc007bfd1451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451401fffd9 -}}}}} -{\pard\sl-117\slmult0\par - -{\pard\plain \li0\sl279\slmult1 \ri20\nooverflow\qj{\f3\b\cf3 \fs24 The range covers the interval specified by {\b0 \f5 lo} and {\b0 \f5 hi. StreamSelect} indicates the offset in the random number sequence to begin sampling, and {\b0 \f5 MGSeed} and {\b0 \f5 LCGSeed} can be used to modify the seed values used by the {\b0 \f5 RandomStream} class.}\par} -} -{\pard\sl-63\slmult0\par - -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 4.3 ExponentialStream}\par} -} -{\pard\sl-265\slmult0\par - -{\pard\plain \li0\sl324\slmult1 \ri20\nooverflow\ql{\f3\b\cf3 \fs24 The {\b0 \f5 ExponentialStream} class returns an exponentially distributed stream of random numbers with mean value specified by {\b0 \f5 mean}.}\par} -} -{\pard\sl-73\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public class ExponentialStream extends RandomStream}\par} -} -{\shp {\*\shpinst \shptop-219\shpleft-80\shpright9109\shpbottom255\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803c7ff00685f88fe2af839f00be387c5df02fc31f107c6cf1b7c2bf83ff12fe23f83be0cf84d -b514f157c5cf15781fc17ad789fc3df0c7c32fa3f87fc59abaf883c7babe9767e15d19b4bf0af897515d4756b6363e1fd66e445a75cf907ec15fb47fc53fdadf -f64ef853fb427c6bfd98fe207ec6ff00137e207fc275ff000937ecdff14a4f11cbe3bf873ff08a7c49f18f82346fedd93c59f0ff00e177881bfe12ff000ff86f -4af1e699fda1e04d0b1a3f8a34f5b5fed3b216dac6a1f5fd14005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451401ffd9 -}}}}} -{\pard\sl-35\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f8\cf3 \fs20 public ExponentialStream (double mean);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl235\slmult1 \ri2200\nooverflow\ql{\f8\cf3 \fs19 public ExponentialStream (double mean, int StreamSelect); public ExponentialStream (double mean, int StreamSelect,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-216\shpright-54\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-216\shpright9082\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom323{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom323{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li3120\ql{\f8\cf3 \fs20 long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop98\shpright-54\shpbottom427{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop98\shpright9082\shpbottom427{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-159\slmult0\par - -{\pard\plain \li0\sl297\slmult1 \ri1000\nooverflow\ql{\f8\cf3 \fs20 public double getNumber () throws IOException, ArithmeticException; \};}\par} -} -{\shp {\*\shpinst \shptop-288\shpleft-80\shpright9109\shpbottom-26\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich17\picwgoal12260\pichgoal340\picscalex101\picscaley101 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080034072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028af00f889fb51fc09f851f1dbf674fd9a3c7fe39fec0f8dbfb597fc2ddff867ff00057fc233e31d53fe13eff8511e0eb2f1ff00c56ff8 -a8f45f0f6a3e12f0affc22be12d46cf56ff8ad75ef0e7f6e79df60f0e7f6c6a71cb649eff4005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -140051451400514514005145140051451400514514005145140051451400514514005145140051451400515e7ff167e297813e077c2cf897f1afe296bbff0008 -bfc32f83ff000ffc65f14be22f89bfb3358d6ffe11df027c3ff0e6a5e2cf176bbfd8de1dd3f57f106aff00d91e1fd2350d43fb3342d2b53d62ff00ecff0065d3 -34fbdbd960b69780fd973f6a3f813fb68fc09f037ed2ff00b3478e7fe1657c12f895ff000937fc215e35ff008467c63e0efedaff00843bc63e21f00788ff00e2 -9cf1ff0087bc2be2dd3bfb3bc5be15d7b49ff89b68361f6cfb07dbec3ed5a65d595edc007bfd1451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451401fffd9 -}}}}}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1460\margr1426\margt734\margb1440\marglsxn1460\margrsxn1426\cols1\colno1\colw9020 -{ -{\pard\plain \li0\sl279\slmult1 \ri0\nooverflow\qj{\f5\cf3 \fs24 StreamSelect {\b \f3 indicates the offset in the random number sequence to begin sampling, and} MGSeed {\b \f3 and} LCGSeed {\b \f3 can be used to modify the seed values used by the} RandomStream \b \f3 class.}\par} -} -{\pard\sl-56\slmult0\par - -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 4.4 ErlangStream}\par} -} -{\pard\sl-265\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs22 ErlangStream {\b \f3 returns an erlang distribution with mean} mean {\b \f3 and standard deviation} sd{\b \f3 .}}\par} -} -{\pard\sl-311\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public class ErlangStream extends RandomStream}\par} -} -{\shp {\*\shpinst \shptop-219\shpleft-80\shpright9109\shpbottom255\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803c7ff00685f88fe2af839f00be387c5df02fc31f107c6cf1b7c2bf83ff12fe23f83be0cf84d -b514f157c5cf15781fc17ad789fc3df0c7c32fa3f87fc59abaf883c7babe9767e15d19b4bf0af897515d4756b6363e1fd66e445a75cf907ec15fb47fc53fdadf -f64ef853fb427c6bfd98fe207ec6ff00137e207fc275ff000937ecdff14a4f11cbe3bf873ff08a7c49f18f82346fedd93c59f0ff00e177881bfe12ff000ff86f -4af1e699fda1e04d0b1a3f8a34f5b5fed3b216dac6a1f5fd14005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451401ffd9 -}}}}} -{\pard\sl-35\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f8\cf3 \fs20 public ErlangStream (double mean, double sd);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl235\slmult1 \ri1460\nooverflow\ql{\f8\cf3 \fs19 public ErlangStream (double mean, double sd, int StreamSelect); public ErlangStream (double mean, double sd, int StreamSelect,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-216\shpright-54\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-216\shpright9082\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li2520\ql{\f8\cf3 \fs20 long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-21\shpright-54\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-21\shpright9082\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-130\slmult0\par - -{\pard\plain \li0\sl297\slmult1 \ri980\nooverflow\ql{\f8\cf3 \fs20 public double getNumber () throws IOException, ArithmeticException; \};}\par} -} -{\shp {\*\shpinst \shptop-500\shpleft-80\shpright9109\shpbottom-26\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f00bfe1617c76fd9d3e3a7fc2eaf -da03c0ff00f0ceff00f0b77fe2cefc3bf88fff0008cfc09f8e7ff0b6fc1d65e0ff00f8c8bf87bfd8d7bff0b37fe1597d8bfe129f845ff137d13fe10cf18dddf6 -b7ff00132fb47d953dfe800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a2bcffe2cf803fe16bfc2cf897f0b7fe135f881f0d7fe1657c3ff00197803fe162fc27f11ff00c21df14fc03ff098f873 -52f0effc26bf0d3c5df62d47fe115f881e15fed1feddf06f88ff00b3efff00b0fc4761a6ea7f62bafb2f90fc07ecb9f00bfe197fe04f81be05ff00c2eafda03f -688ff841ff00e126ff008bc5fb51fc47ff0085b7f1dbc61ff09378c7c43e30ff008ae7e217f63787ff00e120ff00847ffe120ff845bc33ff00128b4fecaf0768 -9e1ed13fd23fb37ed53007ffd9 -}}}}} -{\pard\sl-117\slmult0\par - -{\pard\plain \li0\sl279\slmult1 \ri0\nooverflow\qj{\f5\cf3 \fs24 StreamSelect {\b \f3 indicates the offset in the random number sequence to begin sampling, and} MGSeed {\b \f3 and} LCGSeed {\b \f3 can be used to modify the seed values used by the} RandomStream \b \f3 class.}\par} -} -{\pard\sl-56\slmult0\par - -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 4.5 HyperExponentialStream}\par} -} -{\pard\sl-265\slmult0\par - -{\pard\plain \li0\sl324\slmult1 \ri0\nooverflow\ql{\f3\b\cf3 \fs24 The {\b0 \f5 HyperExponential} class returns a hyper-exponential distribution of random numbers, with mean {\b0 \f5 mean} and standard deviation {\b0 \f5 sd}.}\par} -} -{\pard\sl-73\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public class HyperExponentialStream extends RandomStream}\par} -} -{\shp {\*\shpinst \shptop-219\shpleft-80\shpright9109\shpbottom255\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803c7ff00685f88fe2af839f00be387c5df02fc31f107c6cf1b7c2bf83ff12fe23f83be0cf84d -b514f157c5cf15781fc17ad789fc3df0c7c32fa3f87fc59abaf883c7babe9767e15d19b4bf0af897515d4756b6363e1fd66e445a75cf907ec15fb47fc53fdadf -f64ef853fb427c6bfd98fe207ec6ff00137e207fc275ff000937ecdff14a4f11cbe3bf873ff08a7c49f18f82346fedd93c59f0ff00e177881bfe12ff000ff86f -4af1e699fda1e04d0b1a3f8a34f5b5fed3b216dac6a1f5fd14005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451401ffd9 -}}}}} -{\pard\sl-35\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f8\cf3 \fs20 public HyperExponentialStream (double mean, double sd);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl235\slmult1 \ri260\nooverflow\ql{\f8\cf3 \fs19 public HyperExponentialStream (double mean, double sd, int StreamSelect); public HyperExponentialStream (double mean, double sd, int StreamSelect,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-216\shpright-54\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-216\shpright9082\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li3720\ql{\f8\cf3 \fs20 long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-21\shpright-54\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-21\shpright9082\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-130\slmult0\par - -{\pard\plain \li0\sl297\slmult1 \ri980\nooverflow\ql{\f8\cf3 \fs20 public double getNumber () throws IOException, ArithmeticException; \};}\par} -} -{\shp {\*\shpinst \shptop-500\shpleft-80\shpright9109\shpbottom-26\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f00bfe1617c76fd9d3e3a7fc2eaf -da03c0ff00f0ceff00f0b77fe2cefc3bf88fff0008cfc09f8e7ff0b6fc1d65e0ff00f8c8bf87bfd8d7bff0b37fe1597d8bfe129f845ff137d13fe10cf18dddf6 -b7ff00132fb47d953dfe800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a2bcffe2cf803fe16bfc2cf897f0b7fe135f881f0d7fe1657c3ff00197803fe162fc27f11ff00c21df14fc03ff098f873 -52f0effc26bf0d3c5df62d47fe115f881e15fed1feddf06f88ff00b3efff00b0fc4761a6ea7f62bafb2f90fc07ecb9f00bfe197fe04f81be05ff00c2eafda03f -688ff841ff00e126ff008bc5fb51fc47ff0085b7f1dbc61ff09378c7c43e30ff008ae7e217f63787ff00e120ff00847ffe120ff845bc33ff00128b4fecaf0768 -9e1ed13fd23fb37ed53007ffd9 -}}}}} -{\pard\sl-117\slmult0\par - -{\pard\plain \li0\sl279\slmult1 \ri0\nooverflow\qj{\f5\cf3 \fs24 StreamSelect {\b \f3 indicates the offset in the random number sequence to begin sampling, and} MGSeed {\b \f3 and} LCGSeed {\b \f3 can be used to modify the seed values used by the} RandomStream \b \f3 class.}\par} -} -{\pard\sl-56\slmult0\par - -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 4.6 NormalStream}\par} -} -{\pard\sl-265\slmult0\par - -{\pard\plain \li0\sl294\slmult1 \ri0\nooverflow\ql{\f5\cf3 \fs23 NormalStream {\b \f3 returns a normal distribution of random numbers, with mean} mean {\b \f3 and} \b \f3 standard deviation {\b0 \f5 sd}. {\b0 \f5 operator()} uses the polar method due to Box, Muller, and}\par} -} -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs24 Marsaglia [3].}\par} -} -{\pard\sl-183\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public class NormalStream extends RandomStream}\par} -} -{\shp {\*\shpinst \shptop-219\shpleft-80\shpright9109\shpbottom255\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803c7ff00685f88fe2af839f00be387c5df02fc31f107c6cf1b7c2bf83ff12fe23f83be0cf84d -b514f157c5cf15781fc17ad789fc3df0c7c32fa3f87fc59abaf883c7babe9767e15d19b4bf0af897515d4756b6363e1fd66e445a75cf907ec15fb47fc53fdadf -f64ef853fb427c6bfd98fe207ec6ff00137e207fc275ff000937ecdff14a4f11cbe3bf873ff08a7c49f18f82346fedd93c59f0ff00e177881bfe12ff000ff86f -4af1e699fda1e04d0b1a3f8a34f5b5fed3b216dac6a1f5fd14005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451401ffd9 -}}}}} -{\pard\sl-35\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f8\cf3 \fs20 public NormalStream (double mean, double sd);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl235\slmult1 \ri1460\nooverflow\ql{\f8\cf3 \fs19 public NormalStream (double mean, double sd, int StreamSelect); public NormalStream (double mean, double sd, int StreamSelect,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-216\shpright-54\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-216\shpright9082\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li2520\ql{\f8\cf3 \fs20 long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-21\shpright-54\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-21\shpright9082\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-130\slmult0\par - -{\pard\plain \li0\sl297\slmult1 \ri980\nooverflow\ql{\f8\cf3 \fs20 public double getNumber () throws IOException, ArithmeticException; \};}\par} -} -{\shp {\*\shpinst \shptop-500\shpleft-80\shpright9109\shpbottom-26\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f00bfe1617c76fd9d3e3a7fc2eaf -da03c0ff00f0ceff00f0b77fe2cefc3bf88fff0008cfc09f8e7ff0b6fc1d65e0ff00f8c8bf87bfd8d7bff0b37fe1597d8bfe129f845ff137d13fe10cf18dddf6 -b7ff00132fb47d953dfe800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a2bcffe2cf803fe16bfc2cf897f0b7fe135f881f0d7fe1657c3ff00197803fe162fc27f11ff00c21df14fc03ff098f873 -52f0effc26bf0d3c5df62d47fe115f881e15fed1feddf06f88ff00b3efff00b0fc4761a6ea7f62bafb2f90fc07ecb9f00bfe197fe04f81be05ff00c2eafda03f -688ff841ff00e126ff008bc5fb51fc47ff0085b7f1dbc61ff09378c7c43e30ff008ae7e217f63787ff00e120ff00847ffe120ff845bc33ff00128b4fecaf0768 -9e1ed13fd23fb37ed53007ffd9 -}}}}}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1460\margr1426\margt734\margb1440\marglsxn1460\margrsxn1426\cols1\colno1\colw9020 -{ -{\pard\plain \li0\sl279\slmult1 \ri0\nooverflow\qj{\f5\cf3 \fs24 StreamSelect {\b \f3 indicates the offset in the random number sequence to begin sampling, and} MGSeed {\b \f3 and} LCGSeed {\b \f3 can be used to modify the seed values used by the} RandomStream \b \f3 class.}\par} -} -{\pard\sl-56\slmult0\par - -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 4.7 Draw}\par} -} -{\pard\sl-265\slmult0\par - -{\pard\plain \li0\sl279\slmult1 \ri0\nooverflow\qj{\f3\b\cf3 \fs24 The {\b0 \f5 Draw} class is the exception to the inheritance rule, instead using {\b0 \f5 RandomStream} through delegation (for historical reasons). This returns {\b0 \f5 true} with the probability {\b0 \f5 prob}, and \b0 \f5 false {\b \f3 otherwise.}}\par} -} -{\pard\sl-130\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public class Draw}\par} -} -{\shp {\*\shpinst \shptop-219\shpleft-80\shpright9109\shpbottom255\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803c7ff00685f88fe2af839f00be387c5df02fc31f107c6cf1b7c2bf83ff12fe23f83be0cf84d -b514f157c5cf15781fc17ad789fc3df0c7c32fa3f87fc59abaf883c7babe9767e15d19b4bf0af897515d4756b6363e1fd66e445a75cf907ec15fb47fc53fdadf -f64ef853fb427c6bfd98fe207ec6ff00137e207fc275ff000937ecdff14a4f11cbe3bf873ff08a7c49f18f82346fedd93c59f0ff00e177881bfe12ff000ff86f -4af1e699fda1e04d0b1a3f8a34f5b5fed3b216dac6a1f5fd14005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451401ffd9 -}}}}} -{\pard\sl-35\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f8\cf3 \fs20 public Draw (double p);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f8\cf3 \fs20 public Draw (double p, int StreamSelect);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\ql{\f8\cf3 \fs19 public Draw (double p, int StreamSelect, long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-9\shpright-54\shpbottom198{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-9\shpright9082\shpbottom198{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-141\slmult0\par - -{\pard\plain \li0\sl297\slmult1 \ri3260\nooverflow\ql{\f8\cf3 \fs20 public boolean getBoolean () throws IOException; \};}\par} -} -{\shp {\*\shpinst \shptop-500\shpleft-80\shpright9109\shpbottom-26\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f00bfe1617c76fd9d3e3a7fc2eaf -da03c0ff00f0ceff00f0b77fe2cefc3bf88fff0008cfc09f8e7ff0b6fc1d65e0ff00f8c8bf87bfd8d7bff0b37fe1597d8bfe129f845ff137d13fe10cf18dddf6 -b7ff00132fb47d953dfe800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a2bcffe2cf803fe16bfc2cf897f0b7fe135f881f0d7fe1657c3ff00197803fe162fc27f11ff00c21df14fc03ff098f873 -52f0effc26bf0d3c5df62d47fe115f881e15fed1feddf06f88ff00b3efff00b0fc4761a6ea7f62bafb2f90fc07ecb9f00bfe197fe04f81be05ff00c2eafda03f -688ff841ff00e126ff008bc5fb51fc47ff0085b7f1dbc61ff09378c7c43e30ff008ae7e217f63787ff00e120ff00847ffe120ff845bc33ff00128b4fecaf0768 -9e1ed13fd23fb37ed53007ffd9 -}}}}} -{\pard\sl-117\slmult0\par - -{\pard\plain \li0\sl279\slmult1 \ri0\nooverflow\qj{\f5\cf3 \fs24 StreamSelect {\b \f3 indicates the offset in the random number sequence to begin sampling, and} MGSeed {\b \f3 and} LCGSeed {\b \f3 can be used to modify the seed values used by the} RandomStream \b \f3 class.}\par} -} -{\pard\sl-56\slmult0\par - -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 4.8 Example}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1460\margr1406\margt930\margb1440\marglsxn1460\margrsxn1406\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f1\b\cf3 \fs36 5. Advanced Simulation Classes}\par} -} -{\pard\sl-293\slmult0\par - -{\pard\plain \li0\sl262\slmult1 \ri20\nooverflow\qj{\f3\b\cf3 \fs24 Simulations formed by the interaction of objects derived from {\b0 \f5 SimulationProcess} can be considered {\b0 \i causal} (synchronous) in nature: events occur at specific times and form a well defined order. However, it is sometimes necessary to simulate asynchronous real world events, e.g., processor interrupts. To do this requires finer-grained control of the scheduling of simulation processes than it provided by the scheduler; the scheduler simply activates according to simulation time, whereas asynchronous events may have different activation rules, e.g., activate when another process is terminated.}\par} -} -{\pard\sl-99\slmult0\par - -{\pard\plain \li0\sl285\slmult1 \ri0\nooverflow\qj{\f3\b\cf3 \fs22 The {\b0 \f5 SimulationEntity} class and others to be described in the following sections gives this required level of control to the user, extending the types of simulation which are possible with {\b0 \i JavaSim}. Asynchronous simulation processes are derived from {\b0 \f5 SimulationEntity}, but the implementation enables these asynchronous process to execute in the same simulation as {\b0 \f5 SimulationProcess} objects. However, because these processes are suspended and resumed outside of the control of the scheduler, it is possible for deadlock situations to occur. Therefore, some care must be taken when using these classes.}\par} -} -{\pard\sl-75\slmult0\par - -{\pard\plain \li0\sl304\slmult1 \ri20\nooverflow\ql{\f3\b\cf3 \fs24 In addition to the active, suspended, passive and terminated states which a simulation process can be in, asynchronous objects can also be in the following states:}\par} -} -{\pard\sl-2\slmult0\par - -{\pard\plain \li860\sl290\slmult1 \ri20\nooverflow\ql\fi-852 {\f4\i\cf3 \fs24 {\b \i0 \f11 �} waiting{\b \i0 : the process is suspended waiting for a specific event to occur (e.g., a} \b \i0 process to be terminated). The waiting process is {\b0 \i not} placed on the scheduler queue.}\par} -} -{{{\listtext{\pard\plain {\f11\b\cf3 \fs24 � }\tab}}\pard\plain -\f11\b\cf3 \fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls1\ilvl0\rin20\nooverflow\lin860\itap0 \sl295\slmult1 {\plain\f4\i\cf3 \fs24 interrupted{\b \i0 : the process, which was in the waiting state, has been interrupted from} \b \i0 this before the condition it was awaiting occurred. }\par} -} -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs24 The conditions on which a process can wait, and can thus be interrupted from, are:}\par} -} -{\pard\sl-18\slmult0\par -{{\listtext{\pard\plain {\f11\b\cf3 \fs24 � }\tab}}\pard\plain -\f11\b\cf3 \fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls2\ilvl0\rin0\nooverflow\lin860\itap0 {\plain\f4\i\cf3 \fs24 time{\b \i0 : a process can attempt to wait for a specified period of simulation time.} }\par\pard\sl-111\slmult0\par -{\listtext{\pard\plain {\f11\b\cf3 \fs24 � }\tab}}\pard\plain -\f11\b\cf3 \fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls2\ilvl0\rin20\nooverflow\lin860\itap0 \sl245\slmult1 {\plain\f4\i\cf3 \fs24 process termination{\b \i0 : a process can wait for the termination of another} \i0 \f5 SimultionEntity {\b \f3 process before continuing execution.} }\par\pard\sl-1\slmult0\par -{\listtext{\pard\plain {\f11\b\cf3 \fs24 � }\tab}}\pard\plain -\f11\b\cf3 \fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls2\ilvl0\rin0\nooverflow\lin860\itap0 \sl241\slmult1 {\plain\f4\i\cf3 \fs24 semaphore{\b \i0 : critical regions of a simulation can be protected by semaphores, where} \b \i0 only a single {\b0 \f5 Entity} process can acquire the semaphore; other processes are suspended until the semaphore is released. }\par\pard\sl-1\slmult0\par -{\listtext{\pard\plain {\f11\b\cf3 \fs24 � }\tab}}\pard\plain -\f11\b\cf3 \fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls2\ilvl0\rin20\nooverflow\lin860\itap0 \sl289\slmult1 {\plain\f4\i\cf3 \fs24 user specific{\b \i0 : it is possible for other asynchronous conditions to occur which are not} \b \i0 covered above. }\par} -} -{ -{\pard\plain \li0\sl237\slmult1 \ri20\nooverflow\ql{\f3\b\cf3 \fs24 The classes to be described in this chapter can be found in the \b0 \f5 arjuna.JavaSim.Simulation {\b \f3 package.}}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1460\margr1406\margt719\margb1440\marglsxn1460\margrsxn1406\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 5.1 Asynchronous entities}\par} -} -{\pard\sl-316\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public class SimulationEntity extends SimulationProcess}\par} -} -{\shp {\*\shpinst \shptop-219\shpleft-80\shpright9109\shpbottom255\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803c7ff00685f88fe2af839f00be387c5df02fc31f107c6cf1b7c2bf83ff12fe23f83be0cf84d -b514f157c5cf15781fc17ad789fc3df0c7c32fa3f87fc59abaf883c7babe9767e15d19b4bf0af897515d4756b6363e1fd66e445a75cf907ec15fb47fc53fdadf -f64ef853fb427c6bfd98fe207ec6ff00137e207fc275ff000937ecdff14a4f11cbe3bf873ff08a7c49f18f82346fedd93c59f0ff00e177881bfe12ff000ff86f -4af1e699fda1e04d0b1a3f8a34f5b5fed3b216dac6a1f5fd14005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451401ffd9 -}}}}} -{\pard\sl-35\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li3600\sl235\slmult1 \ri40\nooverflow\ql\fi-3598 {\f8\cf3 \fs19 public void Interrupt (SimulationEntity toInterrupt, boolean immediate) throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-216\shpright-54\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-216\shpright9082\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl252\slmult1 \ri5560\nooverflow\ql{\f8\cf3 \fs19 public final void trigger (); public void terminate ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-246\shpright-54\shpbottom-37{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-246\shpright9082\shpbottom-37{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-35\shpright-54\shpbottom173{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-35\shpright9082\shpbottom173{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 protected SimulationEntity ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li4320\sl325\slmult1 \ri40\nooverflow\ql\fi-4317 {\f8\cf3 \fs19 protected void Wait (double waitTime) throws SimulationException, RestartException, InterruptedException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-522\shpright-54\shpbottom-313{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-522\shpright9082\shpbottom-313{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-311\shpright-54\shpbottom-102{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-311\shpright9082\shpbottom-102{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-100\shpright-54\shpbottom108{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-100\shpright9082\shpbottom108{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-51\slmult0\par - -{\pard\plain \li3960\sl272\slmult1 \ri1000\nooverflow\ql\fi-3957 {\f8\cf3 \fs19 protected void WaitFor (SimulationEntity controller, boolean reAct) throws SimulationException,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-427\shpright-54\shpbottom-218{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-427\shpright9082\shpbottom-218{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-216\shpright-54\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-216\shpright9082\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl223\slmult1 \ri40\nooverflow\ql\fi4317 {\f8\cf3 \fs20 RestartException, InterruptedException; protected void WaitFor (SimulationEntity controller)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-215\shpright-54\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-215\shpright9082\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom204{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom204{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li4320\sl252\slmult1 \ri40\nooverflow\ql\fi-360 {\f8\cf3 \fs19 throws SimulationException, RestartException, InterruptedException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-246\shpright-54\shpbottom-37{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-246\shpright9082\shpbottom-37{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-35\shpright-54\shpbottom173{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-35\shpright9082\shpbottom173{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 protected void WaitForTrigger (TriggerQueue _queue)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-51\slmult0\par - -{\pard\plain \li4320\sl252\slmult1 \ri40\nooverflow\ql\fi-360 {\f8\cf3 \fs19 throws SimulationException, RestartException, InterruptedException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-246\shpright-54\shpbottom-37{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-246\shpright9082\shpbottom-37{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-35\shpright-54\shpbottom173{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-35\shpright9082\shpbottom173{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\sl297\slmult1 \ri280\nooverflow\ql{\f8\cf3 \fs20 protected void WaitForSemaphore (Semaphore _sem) throws RestartException; \};}\par} -} -{\shp {\*\shpinst \shptop-500\shpleft-80\shpright9109\shpbottom-26\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f00bfe1617c76fd9d3e3a7fc2eaf -da03c0ff00f0ceff00f0b77fe2cefc3bf88fff0008cfc09f8e7ff0b6fc1d65e0ff00f8c8bf87bfd8d7bff0b37fe1597d8bfe129f845ff137d13fe10cf18dddf6 -b7ff00132fb47d953dfe800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a2bcffe2cf803fe16bfc2cf897f0b7fe135f881f0d7fe1657c3ff00197803fe162fc27f11ff00c21df14fc03ff098f873 -52f0effc26bf0d3c5df62d47fe115f881e15fed1feddf06f88ff00b3efff00b0fc4761a6ea7f62bafb2f90fc07ecb9f00bfe197fe04f81be05ff00c2eafda03f -688ff841ff00e126ff008bc5fb51fc47ff0085b7f1dbc61ff09378c7c43e30ff008ae7e217f63787ff00e120ff00847ffe120ff845bc33ff00128b4fecaf0768 -9e1ed13fd23fb37ed53007ffd9 -}}}}} -{\pard\sl-117\slmult0\par - -{\pard\plain \li0\sl295\slmult1 \ri20\nooverflow\qj{\f3\b\cf3 \fs24 Because {\b0 \f5 SimulationEntity} is derived from {\b0 \f5 SimulationProcess}, all of the usual simulation methods are available, and can be used in conjunction with those provided by the derived class.}\par} -} -{\pard\sl-64\slmult0\par - -{\pard\plain \li0\sl255\slmult1 \ri0\nooverflow\qj{\f5\cf3 \fs24 Interrupt(SimulationEntity toInterrupt, boolean immediate) \b \f3 interrupts the asynchronous process {\b0 \f5 toInterrupt}, which {\b0 \i must} not be {terminated} and \b0 \i must {\b \i0 be in the} {\b \i0 waiting} {\b \i0 state.} {\i0 \f5 toInterrupt} {\b \i0 becomes the next active process (i.e., it is} \b \i0 moved to the head of the scheduler queue). If immediate is {\b0 \f5 true} then the current process is suspended immediately; it is scheduled for reactivation at the current simulation time. Otherwise, the current process continues to execute and can be suspended later in an application specific way.}\par} -} -{\pard\sl-105\slmult0\par - -{\pard\plain \li0\sl282\slmult1 \ri0\nooverflow\qj{\f3\b\cf3 \fs23 Because it is now possible for one process to wait for another to terminate the \b0 \f5 terminate() {\b \f3 method must differ from that provided by} SimulationProcess{\b \f3 . Before} \b \f3 the terminating process ends it moves the waiting process to the head of the scheduler queue, and then calls {\b0 \f5 SimulationProcess.terminate()}. Currently only a single process can wait on this termination condition, but this may change in future versions.}\par} -} -{\pard\sl-71\slmult0\par - -{\pard\plain \li0\sl276\slmult1 \ri20\nooverflow\qj{\f5\cf3 \fs24 Wait(double t) {\b \f3 is similar to} Hold(double t){\b \f3 , with the exception that the process is} \b \f3 moved into the {waiting} state as well as being placed on the scheduler queue. It is therefore possible to interrupt this process before the wait period has elapsed. {\b0 \f5 true} is returned if the process was interrupted, otherwise {\b0 \f5 false} is returned.}\par} -} -{\pard\sl-83\slmult0\par - -{\pard\plain \li0\sl290\slmult1 \ri20\nooverflow\qj{\f5\cf3 \fs22 WaitFor(SimulationEntity controller, boolean reAct) {\b \f3 suspends the} \b \f3 current process until {\b0 \f5 controller} has terminated. The process is placed in the {waiting} state. If {\b0 \f5 reAct} is {\b0 \f5 true} then {\b0 \f5 controller} is moved to the head of the scheduler queue to become the next activate process, otherwise (the default behaviour) the application will have to activate {\b0 \f5 controller}. If the waiting process is interrupted then the method returns}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1460\margr1406\margt734\margb1440\marglsxn1460\margrsxn1406\cols1\colno1\colw9040 -{ -{\pard\plain \li0\sl340\slmult1 \ri20\nooverflow\ql{\f5\cf3 \fs24 true{\b \f3 , otherwise} false{\b \f3 . The} controller {\b \f3 and the current process must be different, i.e.,} \b \f3 it is not possible for a process to wait for itself.}\par} -} -{\pard\sl-3\slmult0\par - -{\pard\plain \li0\sl282\slmult1 \ri0\nooverflow\qj{\f4\i\cf3 \fs23 Trigger queues {\b \i0 are lists maintained by the simulation system of process waiting for specific} \b \i0 events to occur, which are outside the scope of those described above. These will be described in the next section. {\b0 \f5 WaitForTrigger(TriggerQueue queue)} places the current process on the trigger queue {\b0 \f5 _queue}, and passivates it. As with the previous methods, the return value indicates whether the process was interrupted, or triggered.}\par} -} -{\pard\sl-71\slmult0\par - -{\pard\plain \li0\sl267\slmult1 \ri0\nooverflow\qj{\f3\b\cf3 \fs24 In addition to trigger queues, process can wait on semaphores, allowing the creation of monitor regions, for example. {\b0 \f5 WaitForSemaphore(Semaphore sem)} causes the current process to attempt to exclusively acquire the semaphore. If this is not possible then the process is suspended. Currently, a process which is waiting on a semaphore cannot be interrupted, and is not placed into the {waiting} state. As such, when this method returns the semaphore has been acquired.}\par} -} -{\pard\sl-71\slmult0\par - -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 5.2 Trigger queues}\par} -} -{\pard\sl-265\slmult0\par - -{\pard\plain \li0\sl279\slmult1 \ri20\nooverflow\qj{\f3\b\cf3 \fs24 Processes waiting for the same application controlled event can be grouped together into a \b0 \f5 TriggerQueue{\b \f3 , as described in the previous section. When this event occurs the} \b \f3 application can use one of the two trigger methods to activate the queue members. This involves placing the process(es) onto the head of the scheduler queue.}\par} -} -{\pard\sl-125\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public class TriggerQueue}\par} -} -{\shp {\*\shpinst \shptop-219\shpleft-80\shpright9109\shpbottom255\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803c7ff00685f88fe2af839f00be387c5df02fc31f107c6cf1b7c2bf83ff12fe23f83be0cf84d -b514f157c5cf15781fc17ad789fc3df0c7c32fa3f87fc59abaf883c7babe9767e15d19b4bf0af897515d4756b6363e1fd66e445a75cf907ec15fb47fc53fdadf -f64ef853fb427c6bfd98fe207ec6ff00137e207fc275ff000937ecdff14a4f11cbe3bf873ff08a7c49f18f82346fedd93c59f0ff00e177881bfe12ff000ff86f -4af1e699fda1e04d0b1a3f8a34f5b5fed3b216dac6a1f5fd14005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451401ffd9 -}}}}} -{\pard\sl-35\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom202{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl252\slmult1 \ri6160\nooverflow\ql{\f8\cf3 \fs19 public TriggerQueue (); public void finalize ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-246\shpright-54\shpbottom-37{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-246\shpright9082\shpbottom-37{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-35\shpright-54\shpbottom173{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-35\shpright9082\shpbottom173{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-116\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public synchronized void triggerFirst (boolean setTrigger)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-51\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri40\nooverflow\ql\fi5396 {\f8\cf3 \fs20 throws NoSuchElementException; public synchronized void triggerFirst () throws NoSuchElementException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-234\shpright-54\shpbottom-25{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-234\shpright9082\shpbottom-25{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-23\shpright-54\shpbottom185{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-23\shpright9082\shpbottom185{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-128\slmult0\par - -{\pard\plain \li0\sl297\slmult1 \ri760\nooverflow\ql{\f8\cf3 \fs20 public synchronized void triggerAll () throws NoSuchElementException; \};}\par} -} -{\shp {\*\shpinst \shptop-500\shpleft-80\shpright9109\shpbottom-26\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f00bfe1617c76fd9d3e3a7fc2eaf -da03c0ff00f0ceff00f0b77fe2cefc3bf88fff0008cfc09f8e7ff0b6fc1d65e0ff00f8c8bf87bfd8d7bff0b37fe1597d8bfe129f845ff137d13fe10cf18dddf6 -b7ff00132fb47d953dfe800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a2bcffe2cf803fe16bfc2cf897f0b7fe135f881f0d7fe1657c3ff00197803fe162fc27f11ff00c21df14fc03ff098f873 -52f0effc26bf0d3c5df62d47fe115f881e15fed1feddf06f88ff00b3efff00b0fc4761a6ea7f62bafb2f90fc07ecb9f00bfe197fe04f81be05ff00c2eafda03f -688ff841ff00e126ff008bc5fb51fc47ff0085b7f1dbc61ff09378c7c43e30ff008ae7e217f63787ff00e120ff00847ffe120ff845bc33ff00128b4fecaf0768 -9e1ed13fd23fb37ed53007ffd9 -}}}}} -{\pard\sl-11\slmult0\par -{{\listtext{\pard\plain {\f11\b\cf3 \fs24 � }\tab}}\pard\plain -\f11\b\cf3 \fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls3\ilvl0\rin0\nooverflow\lin860\itap0 {\plain\f5\cf3 \fs24 triggerAll(){\b \f3 : triggers all of the members on the queue.} }\par\pard\sl-92\slmult0\par -{\listtext{\pard\plain {\f11\b\cf3 \fs24 � }\tab}}\pard\plain -\f11\b\cf3 \fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls3\ilvl0\rin20\nooverflow\lin860\itap0 \sl267\slmult1 {\plain\f5\cf3 \fs24 triggerFirst(boolean setTrigger){\b \f3 : triggers only the head of the queue.} \b \f3 If {\b0 \f5 setTrigger} is {\b0 \f5 true} (the default behaviour) then the {\b0 \f5 trigger()} method of the {\b0 \f5 SimulationEntity} object is also invoked. }\par} -} -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl256\slmult1 \ri20\nooverflow\ql{\f3\b\cf3 \fs24 If the queue is not empty when it is garbage collected by the virtual machine then all remaining queue members will be triggered, and placed back onto the scheduler queue.}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1460\margr1406\margt719\margb1440\marglsxn1460\margrsxn1406\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 5.3 Semaphores}\par} -} -{\pard\sl-265\slmult0\par - -{\pard\plain \li0\sl341\slmult1 \ri20\nooverflow\ql{\f3\b\cf3 \fs24 Application code can be protected from simulation processes through semaphores, which are instances of the {\b0 \f5 Semaphore} class.}\par} -} -{\pard\sl-53\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public class SemaphoreOutcome}\par} -} -{\shp {\*\shpinst \shptop-219\shpleft-80\shpright9109\shpbottom255\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803c7ff00685f88fe2af839f00be387c5df02fc31f107c6cf1b7c2bf83ff12fe23f83be0cf84d -b514f157c5cf15781fc17ad789fc3df0c7c32fa3f87fc59abaf883c7babe9767e15d19b4bf0af897515d4756b6363e1fd66e445a75cf907ec15fb47fc53fdadf -f64ef853fb427c6bfd98fe207ec6ff00137e207fc275ff000937ecdff14a4f11cbe3bf873ff08a7c49f18f82346fedd93c59f0ff00e177881bfe12ff000ff86f -4af1e699fda1e04d0b1a3f8a34f5b5fed3b216dac6a1f5fd14005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451401ffd9 -}}}}} -{\pard\sl-35\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f8\cf3 \fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li480\sl235\slmult1 \ri4240\nooverflow\ql{\f8\cf3 \fs19 static final public int DONE = 0; static final public int NOTDONE = 1;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-216\shpright-54\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-216\shpright9082\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl224\slmult1 \ql{\f8\cf3 \fs20 static final public int WOULD_BLOCK = 2;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom323{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom323{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 \};}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop98\shpright-54\shpbottom427{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop98\shpright9082\shpbottom427{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-159\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public class Semaphore}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-35\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f8\cf3 \fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f8\cf3 \fs20 public Semaphore ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public Semaphore (long number);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-21\shpright-54\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-21\shpright9082\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-130\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public synchronized long NumberWaiting ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public synchronized int Get (SimulationEntity toWait)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-51\slmult0\par - -{\pard\plain \li0\sl223\slmult1 \ri40\nooverflow\ql\fi6116 {\f8\cf3 \fs20 throws RestartException; public synchronized int TryGet (SimulationEntity toWait)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-215\shpright-54\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-215\shpright9082\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom204{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom204{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li6120\sl237\slmult1 \ql{\f8\cf3 \fs19 throws RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl233\slmult1 \ri4840\nooverflow\ql{\f8\cf3 \fs20 public synchronized int Release (); \};}\par} -} -{\shp {\*\shpinst \shptop-234\shpleft-80\shpright9109\shpbottom28\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich17\picwgoal12260\pichgoal340\picscalex101\picscaley101 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080034072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028af00f889fb51fc09f851f1dbf674fd9a3c7fe39fec0f8dbfb597fc2ddff867ff00057fc233e31d53fe13eff8511e0eb2f1ff00c56ff8 -a8f45f0f6a3e12f0affc22be12d46cf56ff8ad75ef0e7f6e79df60f0e7f6c6a71cb649eff4005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -140051451400514514005145140051451400514514005145140051451400514514005145140051451400515e7ff167e297813e077c2cf897f1afe296bbff0008 -bfc32f83ff000ffc65f14be22f89bfb3358d6ffe11df027c3ff0e6a5e2cf176bbfd8de1dd3f57f106aff00d91e1fd2350d43fb3342d2b53d62ff00ecff0065d3 -34fbdbd960b69780fd973f6a3f813fb68fc09f037ed2ff00b3478e7fe1657c12f895ff000937fc215e35ff008467c63e0efedaff00843bc63e21f00788ff00e2 -9cf1ff0087bc2be2dd3bfb3bc5be15d7b49ff89b68361f6cfb07dbec3ed5a65d595edc007bfd1451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451401fffd9 -}}}}} -{\pard\sl-172\slmult0\par - -{\pard\plain \li0\sl268\slmult1 \ri0\nooverflow\qj{\f3\b\cf3 \fs24 A semaphore can be used to restrict the number of processes which can use shared resources. The number of shared resources available must be presented to the {\b0 \f5 Semaphore} when it is created. By default, a {\b0 \f5 Semaphore} will assume that there is only a single resource, in which case a semaphore is exclusively acquired by a simulation process. However, it is possible to create a {\b0 \f5 Semaphore} with different resource counts.}\par} -} -{\pard\sl-92\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs24 A Semaphore can exist in one of two states:}\par} -} -{\pard\sl-142\slmult0\par -{{\listtext{\pard\plain {\f11\b\cf3 \fs24 � }\tab}}\pard\plain -\f11\b\cf3 \fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls4\ilvl0\rin0\nooverflow\lin860\itap0 {\plain\f4\i\cf3 \fs24 available{\b \i0 : the semaphore is available to be acquired.} }\par\pard\sl-111\slmult0\par -{\listtext{\pard\plain {\f11\b\cf3 \fs24 � }\tab}}\pard\plain -\f11\b\cf3 \fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls4\ilvl0\rin0\nooverflow\lin860\itap0 \sl280\slmult1 {\plain\f4\i\cf3 \fs24 unavailable{\b \i0 : a process (or number of processes) currently has the semaphore. If} \b \i0 another process attempts to acquire the semaphore then it is automatically suspended until the semaphore is {available}, i.e., until a resource has been freed. }\par} -} -{\pard\sl-3\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs22 To be able to manipulate semaphores, a process must be derived from the}\par} -} -{\pard\sl-29\slmult0\par - -{\pard\plain \li0\sl245\slmult1 \ri20\nooverflow\qj{\f5\cf3 \fs23 SimulationEntity {\b \f3 class. To obtain the semaphore, the} Get(SimulationEntity toWait) {\b \f3 method should be used, where} toWait {\b \f3 is the calling process. If the semaphore is} \b \f12 unavailable {then the process referenced by} {\b0 \f5 toWait} {is suspended. If the semaphore is} successfully acquired, then {\b0 \f5 SemaphoreOutcome.DONE} is returned, otherwise}\par} -} -{ -{\pard\plain \li0\sl235\slmult1 \ql{\f5\cf3 \fs24 SemaphoreOutcome.NOTDONE{\b \f3 .}}\par} -} -{\pard\sl-125\slmult0\par - -{\pard\plain \li0\sl263\slmult1 \ri20\nooverflow\qj{\f3\b\cf3 \fs23 If the process wishes to attempt to acquire the semaphore but does not want to block in the situation where the semaphore is currently unavailable, then it can use the {\b0 \f5 TryGet} method, which takes the same parameter as {\b0 \f5 Get}. However, unlike {\b0 \f5 Get}, {\b0 \f5 TryGet} will return \b0 \f5 SemaphoreOutcome.WOULD_BLOCK {\b \f3 in the case where the caller would normally block} \b \f3 if it had called {\b0 \f5 Get}, i.e., the semaphore is currently in use. If the semaphore is not being used, then {\b0 \f5 TryGet} will acquire it for the caller. Errors will result in}\par} -} -{ -{\pard\plain \li0\ql{\f5\cf3 \fs24 SemaphoreOutcome.NOT_DONE {\b \f3 being returned.}}\par} -} -{\pard\sl-124\slmult0\par - -{\pard\plain \li0\sl340\slmult1 \ri20\nooverflow\ql{\f3\b\cf3 \fs24 When the semaphore is no longer required {\b0 \f5 Release()} should be called by the process which currently has it. Successful release of the semaphore results in}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1460\margr1406\margt734\margb1440\marglsxn1460\margrsxn1406\cols1\colno1\colw9040 -{ -{\pard\plain \li0\sl340\slmult1 \ri20\nooverflow\ql{\f5\cf3 \fs24 SemaphoreOutcome.DONE {\b \f3 being returned, otherwise} Semaphore.NOTDONE {\b \f3 is} \b \f3 returned.}\par} -} -{\pard\sl-3\slmult0\par - -{\pard\plain \li0\sl340\slmult1 \ri0\nooverflow\ql{\f5\cf3 \fs24 NumberWaiting() {\b \f3 returns the number of processes currently suspended waiting for the} \b \f3 semaphore.}\par} -} -{\pard\sl-3\slmult0\par - -{\pard\plain \li0\sl358\slmult1 \ri20\nooverflow\ql{\f3\b\cf3 \fs23 If the semaphore is garbage collected with processes waiting for it then an error message is displayed. No further action is attempted on behalf of these waiting processes.}\par} -} -{\pard\sl-2\slmult0\par - -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 5.4 Example}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1460\margr1426\margt930\margb1440\marglsxn1460\margrsxn1426\cols1\colno1\colw9020 -{ -{\pard\plain \li0\ql{\f1\b\cf3 \fs36 6. Statistical Classes}\par} -} -{\pard\sl-293\slmult0\par - -{\pard\plain \li0\sl278\slmult1 \ri0\nooverflow\qj{\f3\b\cf3 \fs24 The purpose of a simulation typically involves the gathering of relevant statistical information, e.g., the average length of time spent in a queue. {\b0 \i JavaSim} provides a number of different classes for gathering such information. These classes can be found in the \b0 \f5 arjuna.JavaSim.Statistics {\b \f3 package.}}\par} -} -{\pard\sl-63\slmult0\par - -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 6.1 Mean}\par} -} -{\pard\sl-265\slmult0\par - -{\pard\plain \li0\sl359\slmult1 \ri0\nooverflow\ql{\f3\b\cf3 \fs24 This is the basic class from which others are derived, gathering statistical information on the samples provided to it.}\par} -} -{\pard\sl-33\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public class Mean}\par} -} -{\shp {\*\shpinst \shptop-219\shpleft-80\shpright9109\shpbottom255\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803c7ff00685f88fe2af839f00be387c5df02fc31f107c6cf1b7c2bf83ff12fe23f83be0cf84d -b514f157c5cf15781fc17ad789fc3df0c7c32fa3f87fc59abaf883c7babe9767e15d19b4bf0af897515d4756b6363e1fd66e445a75cf907ec15fb47fc53fdadf -f64ef853fb427c6bfd98fe207ec6ff00137e207fc275ff000937ecdff14a4f11cbe3bf873ff08a7c49f18f82346fedd93c59f0ff00e177881bfe12ff000ff86f -4af1e699fda1e04d0b1a3f8a34f5b5fed3b216dac6a1f5fd14005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451401ffd9 -}}}}} -{\pard\sl-35\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f8\cf3 \fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public Mean ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-21\shpright-54\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-21\shpright9082\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-130\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public void setValue (double value) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public void reset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li0\sl258\slmult1 \ri5420\nooverflow\ql{\f8\cf3 \fs20 public int numberOfSamples (); public double min ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-426\shpright-54\shpbottom-218{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-426\shpright9082\shpbottom-218{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-215\shpright-54\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-215\shpright9082\shpbottom-6{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom204{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom204{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl243\slmult1 \ri6380\nooverflow\ql{\f8\cf3 \fs19 public double max (); public double sum (); public double mean ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-448\shpright-54\shpbottom-239{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-448\shpright9082\shpbottom-239{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-237\shpright-54\shpbottom-28{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-237\shpright9082\shpbottom-28{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-25\shpright-54\shpbottom182{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-25\shpright9082\shpbottom182{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-125\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public boolean saveState (String fileName) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-51\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public boolean saveState (DataOutputStream oFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-21\shpright-54\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-21\shpright9082\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-130\slmult0\par - -{\pard\plain \li6360\sl272\slmult1 \ri20\nooverflow\ql\fi-6356 {\f8\cf3 \fs19 public boolean restoreState (String fileName) throws FileNotFoundException, IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-427\shpright-54\shpbottom-218{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-427\shpright9082\shpbottom-218{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-216\shpright-54\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-216\shpright9082\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs19 public boolean restoreState (DataInputStream iFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-9\shpright-54\shpbottom198{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-9\shpright9082\shpbottom198{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-141\slmult0\par - -{\pard\plain \li0\sl297\slmult1 \ri6500\nooverflow\ql{\f8\cf3 \fs20 public void print (); \};}\par} -} -{\shp {\*\shpinst \shptop-500\shpleft-80\shpright9109\shpbottom-26\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028af00f889f00bfe1617c76fd9d3e3a7fc2eaf -da03c0ff00f0ceff00f0b77fe2cefc3bf88fff0008cfc09f8e7ff0b6fc1d65e0ff00f8c8bf87bfd8d7bff0b37fe1597d8bfe129f845ff137d13fe10cf18dddf6 -b7ff00132fb47d953dfe800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a2bcffe2cf803fe16bfc2cf897f0b7fe135f881f0d7fe1657c3ff00197803fe162fc27f11ff00c21df14fc03ff098f873 -52f0effc26bf0d3c5df62d47fe115f881e15fed1feddf06f88ff00b3efff00b0fc4761a6ea7f62bafb2f90fc07ecb9f00bfe197fe04f81be05ff00c2eafda03f -688ff841ff00e126ff008bc5fb51fc47ff0085b7f1dbc61ff09378c7c43e30ff008ae7e217f63787ff00e120ff00847ffe120ff845bc33ff00128b4fecaf0768 -9e1ed13fd23fb37ed53007ffd9 -}}}}} -{\pard\sl-117\slmult0\par - -{\pard\plain \li0\sl279\slmult1 \ri0\nooverflow\qj{\f3\b\cf3 \fs24 New values can be supplied to the instance of the {\b0 \f5 Mean} class using the \b0 \f5 setValue(double) {\b \f3 method. The number of samples which have been give can be} \b \f3 obtained from {\b0 \f5 numberOfSamples()}.}\par} -} -{\pard\sl-78\slmult0\par - -{\pard\plain \li0\sl324\slmult1 \ri0\nooverflow\ql{\f3\b\cf3 \fs24 The maximum and minimum of the samples supplied can be obtained from the {\b0 \f5 max()} and \b0 \f5 min() {\b \f3 methods, respectively.}}\par} -} -{\pard\sl-21\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs24 sum() {\b \f3 returns the summation of all of the samples:}}\par} -} -{\pard\sl-225\slmult0\par - -{\pard\plain \li4220\ql{\f3\b\cf3 \fs24 n}\par} -} -{ -{\pard\plain \li4160\sl-475\slmult0 \ql{\f3\b\cf3 \fs19 {\fs47 \f14 \sub \u931 ?} Si}\par} -} -{\pard\sl-2\slmult0\par - -{\pard\plain \li4160\ql{\f3\b\cf3 \fs24 i=1}\par} -} -{\pard\sl-123\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs24 mean() {\b \f3 returns the mean value:}}\par} -} -{\pard\sl-225\slmult0\par - -{\pard\plain \li4380\ql{\f3\b\cf3 \fs24 n}\par} -} -{ -{\pard\plain \li4000\sl-475\slmult0 \ql{\f3\b\cf3 \fs29 {\super 1_}{\fs29 \sub n} {\fs47 \f14 \sub \u931 ?} {\fs19 Si}}\par} -} -{\pard\sl-2\slmult0\par - -{\pard\plain \li4340\ql{\f3\b\cf3 \fs24 i=1}\par} -} -{\pard\sl-123\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs24 An instance of {\b0 \f5 Mean} can be reset between samples using the {\b0 \f5 reset()} method.}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11906\pghsxn16838 -\margl1460\margr1406\margt734\margb1440\marglsxn1460\margrsxn1406\cols1\colno1\colw9040 -{ -{\pard\plain \li0\sl264\slmult1 \ri20\nooverflow\qj{\f3\b\cf3 \fs24 If the state of a {\b0 \f5 Mean} object is required to be saved between simulation runs then it can be made persistent by using either of the {\b0 \f5 saveState} methods. The first instance saves the state to a file, whereas the second can be used to save the state to an instance of the \b0 \f5 java.io.DataOutputStream {\b \f3 class. There are likewise two corresponding ways in} \b \f3 which the state can be restored.}\par} -} -{\pard\sl-93\slmult0\par - -{\pard\plain \li0\ql{\f3\b\cf3 \fs24 The {\b0 \f5 print} method simply prints to {\b0 \f5 System.out} the current state of the object.}\par} -} -{\pard\sl-219\slmult0\par - -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 6.2 Variance}\par} -} -{\pard\sl-265\slmult0\par - -{\pard\plain \li0\sl340\slmult1 \ri0\nooverflow\ql{\f3\b\cf3 \fs24 This class is derived from {\b0 \f5 Mean}, and in addition to providing the above mentioned functionality also provides the following:}\par} -} -{\pard\sl-55\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public class Variance extends Mean}\par} -} -{\shp {\*\shpinst \shptop-219\shpleft-80\shpright9109\shpbottom255\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich32\picwgoal12260\pichgoal640\picscalex99\picscaley99 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc0001108005f072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fece7e337ed1ff0014fe19fed63fb17fec -f7e13fd98fe207c53f865fb4dffc345ffc2dbfda43c3b2788d7c09fb2aff00c297f86da5f8dfc05ff0b163d37e1ff88bc3f2ff00c2f1f105fdcf80fc23ff0009 -378efe1d6cd634e9db46ff0084baf7ccd1e0fafe8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803c7ff00685f88fe2af839f00be387c5df02fc31f107c6cf1b7c2bf83ff12fe23f83be0cf84d -b514f157c5cf15781fc17ad789fc3df0c7c32fa3f87fc59abaf883c7babe9767e15d19b4bf0af897515d4756b6363e1fd66e445a75cf907ec15fb47fc53fdadf -f64ef853fb427c6bfd98fe207ec6ff00137e207fc275ff000937ecdff14a4f11cbe3bf873ff08a7c49f18f82346fedd93c59f0ff00e177881bfe12ff000ff86f -4af1e699fda1e04d0b1a3f8a34f5b5fed3b216dac6a1f5fd14005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451401ffd9 -}}}}} -{\pard\sl-35\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f8\cf3 \fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-4\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-4\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public Variance ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-21\shpright-54\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-21\shpright9082\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-130\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public void setValue (double value) throws IllegalArgumentException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public void reset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li0\sl272\slmult1 \ri5920\nooverflow\ql{\f8\cf3 \fs19 public double variance (); public double stdDev ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-427\shpright-54\shpbottom-218{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-427\shpright9082\shpbottom-218{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-216\shpright-54\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-216\shpright9082\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public double confidence (double value);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-21\shpright-54\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-21\shpright9082\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-130\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public void print ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public boolean saveState (String fileName) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-166\shpright-54\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-166\shpright9082\shpbottom42{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop44\shpright-54\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop44\shpright9082\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-51\slmult0\par - -{\pard\plain \li0\ql{\f8\cf3 \fs20 public boolean saveState (DataOutputStream oFile) throws IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-21\shpright-54\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-21\shpright9082\shpbottom187{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-130\slmult0\par - -{\pard\plain \li6360\sl272\slmult1 \ri40\nooverflow\ql\fi-6356 {\f8\cf3 \fs19 public boolean restoreState (String fileName) throws FileNotFoundException, IOException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-427\shpright-54\shpbottom-218{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-427\shpright9082\shpbottom-218{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-216\shpright-54\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-216\shpright9082\shpbottom-7{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-5\shpright-54\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-5\shpright9082\shpbottom203{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 2147483648}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri520\nooverflow\ql{\f8\cf3 \fs20 public boolean restoreState (DataInputStream iFile) throws IOException; \};}\par} -} -{\shp {\*\shpinst \shptop-234\shpleft-80\shpright9109\shpbottom28\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw613\pich17\picwgoal12260\pichgoal340\picscalex101\picscaley101 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080034072e03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028af00f889fb51fc09f851f1dbf674fd9a3c7fe39fec0f8dbfb597fc2ddff867ff00057fc233e31d53fe13eff8511e0eb2f1ff00c56ff8 -a8f45f0f6a3e12f0affc22be12d46cf56ff8ad75ef0e7f6e79df60f0e7f6c6a71cb649eff4005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -140051451400514514005145140051451400514514005145140051451400514514005145140051451400515e7ff167e297813e077c2cf897f1afe296bbff0008 -bfc32f83ff000ffc65f14be22f89bfb3358d6ffe11df027c3ff0e6a5e2cf176bbfd8de1dd3f57f106aff00d91e1fd2350d43fb3342d2b53d62ff00ecff0065d3 -34fbdbd960b69780fd973f6a3f813fb68fc09f037ed2ff00b3478e7fe1657c12f895ff000937fc215e35ff008467c63e0efedaff00843bc63e21f00788ff00e2 -9cf1ff0087bc2be2dd3bfb3bc5be15d7b49ff89b68361f6cfb07dbec3ed5a65d595edc007bfd1451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -40051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451 -400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451401fffd9 -}}}}} -{\pard\sl-172\slmult0\par - -{\pard\plain \li0\ql{\f5\cf3 \fs24 variance() {\b \f3 returns the variance of the samples:}}\par} -} -{\pard\sl-225\slmult0\par - -{\trqc\trowd \trrh304\trleft3520\clvmgf\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth240 \cellx3760 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1620 \cellx5380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6840 -\pard\plain\intbl\ql{{\f3\b\cf3 \fs24 1}\cell}\pard\intbl\ql -\pard\plain\intbl\li160\ql{{\f3\b\cf3 \fs24 n}\cell}\pard\intbl\li160\ql -\pard\plain\intbl{\fs1\cell}\pard\intbl -\trowd \trrh304\trleft3520\clvmgf\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth240 \cellx3760 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1620 \cellx5380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6840 -\row - -\trowd \trrh194\trleft3520\clvmrg\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth240 \cellx3760 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1620 \cellx5380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6840 -\pard\plain\intbl{\fs13\cell}\pard\intbl -\pard\plain\intbl\qr\sl-194\slmult0 {{\f15\b\cf3 \fs20 2}\cell}\pard\intbl\qr -\pard\plain\intbl{\fs1\cell}\pard\intbl -\trowd \trrh194\trleft3520\clvmrg\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth240 \cellx3760 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1620 \cellx5380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6840 -\row - -\trowd \trrh29\trleft3520\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth240 \cellx3760 -\clvmgf\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1620 \cellx5380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6840 -\pard\plain\intbl\ql\sl-29\slmult0 {{\f3\b\cf3 \fs3 _}\cell}\pard\intbl\ql -\pard\plain\intbl\li100\ql\sl-130\slmult0 {{\f3\b\cf3 \fs3 {\fs12 \f14 \sub \u931 ?} (Si-Mean())}\cell}\pard\intbl\li100\ql -\pard\plain\intbl{\fs1\cell}\pard\intbl -\trowd \trrh29\trleft3520\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth240 \cellx3760 -\clvmgf\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1620 \cellx5380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6840 -\row - -\trowd \trrh102\trleft3520\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth240 \cellx3760 -\clvmrg\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1620 \cellx5380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6840 -\pard\plain\intbl\li20\ql\sl-101\slmult0 {{\f3\b\cf3 \fs11 n}\cell}\pard\intbl\li20\ql -\pard\plain\intbl{\fs7\cell}\pard\intbl -\pard\plain\intbl{\fs1\cell}\pard\intbl -\trowd \trrh102\trleft3520\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth240 \cellx3760 -\clvmrg\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1620 \cellx5380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6840 -\row - -\trowd \trrh406\trleft3520\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth240 \cellx3760 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1620 \cellx5380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6840 -\pard\plain\intbl{\fs24\cell}\pard\intbl -\pard\plain\intbl\li100\ql{{\f3\b\cf3 \fs24 i=1}\cell}\pard\intbl\li100\ql -\pard\plain\intbl{\fs1\cell}\pard\intbl -\trowd \trrh406\trleft3520\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth240 \cellx3760 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth1620 \cellx5380 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth0 \cellx6840 -\row - - -} -} -{\pard\sl-117\slmult0\par - -{\pard\plain \li0\sl334\slmult1 \ri20\nooverflow\ql{\f5\cf3 \fs24 stdDev() {\b \f3 returns the standard deviation of the samples, which is the square root of the} \b \f3 variance.}\par} -} -{\pard\sl-2\slmult0\par - -{\pard\plain \li0\ql{\f6\b\cf3 \fs28 6.3 TimeVariance}\par} -} -{\pard\sl-265\slmult0\par - -{\pard\plain \li0\sl274\slmult1 \ri0\nooverflow\qj{\f3\b\cf3 \fs24 The {\b0 \f5 TimeVariance} class makes it possible to determine how long, in terms of simulation time, specific values were maintained. In effect, values are weighted according to the length of time that they were held, whereas with the {\b0 \f5 Variance} class only the specific values are taken into account.}\par} -}\sect\sbkpage\sectd\pard\plain -\sect\sbknone\cols1\colno1\colw2000\marglsxn1680\margrsxn1680{\par\pard\li0\ri0\f17\ql\fs24 {\field {\*\fldinst { HYPERLINK "http://pdfonline.blogspot.com" }}{\fldrslt {\ul \cf5 PDF to Word}}}}} \ No newline at end of file From 04beb59c1d579af85099594608a2e106846ad0eb Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jul 2015 10:46:39 -0400 Subject: [PATCH 058/230] Removed as part of doc update https://github.com/nmcl/JavaSim/issues/33 Also have extracted the raw text from it anyway. --- docs/javasim_new.rtf | 7451 ------------------------------------------ 1 file changed, 7451 deletions(-) delete mode 100755 docs/javasim_new.rtf diff --git a/docs/javasim_new.rtf b/docs/javasim_new.rtf deleted file mode 100755 index 441b6be..0000000 --- a/docs/javasim_new.rtf +++ /dev/null @@ -1,7451 +0,0 @@ -{\rtf1\ansi\ansicpg1252\deff0\dntblnsbdb\viewkind1 -{\fonttbl{\f0\froman\fcharset0 Times New Roman;}{\f1\fswiss\fcharset0 Arial;}{\f2\fswiss\fcharset0 Arial;}{\f3\froman\fcharset0 Times New Roman;}{\f4\fswiss\fcharset0 Arial;}{\f5\fswiss\fcharset0 Arial;}{\f6\fswiss\fcharset0 Arial;}{\f7\fswiss\fcharset0 Arial;}{\f8\froman\fcharset0 Times;}{\f9\froman\fcharset0 Times;}{\f10\froman\fcharset0 Times;}{\f11\froman\fcharset0 Times;}{\f12\froman\fcharset0 Times;}{\f13\froman\fcharset0 Times;}{\f14\froman\fcharset0 Times;}{\f15\froman\fcharset0 Times;}{\f16\froman\fcharset0 Times;}{\f17\froman\fcharset0 Times;}{\f18\fswiss\fcharset0 Arial;}{\f19\ftech\fcharset2 Symbol;}{\f20\fswiss\fcharset0 Arial;}{\f21\froman\fcharset0 Times;}{\f22\fswiss\fcharset0 Arial;}{\f23\fmodern\fcharset0 Courier New;}{\f24\froman\fcharset0 Times;}{\f25\fswiss\fcharset0 Arial;}{\f26\fmodern\fcharset0 Courier New;}{\f28\froman\fcharset0 Times New Roman;}} -{\colortbl;\red255\green255\blue0;\red0\green0\blue255;\red255\green255\blue255;\red0\green0\blue255;} -{\*\listtable{\list\listtemplateid18467\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid6334\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid41} -{\list\listtemplateid19169\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid15724\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid26500} -{\list\listtemplateid29358\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid26962\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid11478} -{\list\listtemplateid5705\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid28145\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid24464} -{\list\listtemplateid16827\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid9961\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid23281} -{\list\listtemplateid2995\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid11942\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid491} -{\list\listtemplateid5436\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid32391\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid4827} -{\list\listtemplateid3902\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid153\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid14604} -{\list\listtemplateid12382\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid17421\'01\0�;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid292} -{\list\listtemplateid19718\listhybrid -{\listlevel\levelnfc0\levelnfcn23\leveljc0\leveljcn0\levelfollow0\levelstartat1\levelspace360\levelindent0{\leveltext\leveltemplateid19895\'02\0//;}{\levelnumbers;}\chbrdr\brdrnone\brdrcf1\chshdng0\chcfpat1\chcbpat1 \fi-360\li720\jclisttab\tx720} -{\listname ;}\listid18716} -}{\*\listoverridetable -{\listoverride\listid41\listoverridecount0\ls1} -{\listoverride\listid26500\listoverridecount0\ls2} -{\listoverride\listid11478\listoverridecount0\ls3} -{\listoverride\listid24464\listoverridecount0\ls4} -{\listoverride\listid23281\listoverridecount0\ls5} -{\listoverride\listid491\listoverridecount0\ls6} -{\listoverride\listid4827\listoverridecount0\ls7} -{\listoverride\listid14604\listoverridecount0\ls8} -{\listoverride\listid292\listoverridecount0\ls9} -{\listoverride\listid18716\listoverridecount0\ls10} -}{\stylesheet{\*\cs0 \additive Default Paragraph Font;} -} -\jexpand\pgwsxn11900\pghsxn16840 -\margl1440\margr3220\margt1397\margb1440 -{\shp {\*\shpinst \shptop1155\shpleft1355\shpright10849\shpbottom3809\shpfblwtxt1\shpbypage\shpbxpage\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn pictureTransparent}{\sv 16777215}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw633\pich177\picwgoal12660\pichgoal3540\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080213076b03012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00ef3fe0de3ff837cffe09b1fb5bff00c130 -3e15fed53fb62fc18ff8680f89bf1e7e207c61f11685a87fc2c5f8f5f0a7fe15cf813c0be3fd5fe0a699f0ebecbf0b7e34786fc3fe2fdde20f85de27f88bff00 -0975e787747d607fc2c3ff008446e20bcb2f0969faaea1fb7dff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe0d71ff94147ec33ff007733ff00ad87fb41 -57eff5007e00ff00c42e3ff0428ffa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8 -c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0 -851ff4633ff9b33fb61fff0044157eff0051401f803ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd -45007e00ff00c42e3ff0428ffa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67f -f3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851f -f4633ff9b33fb61fff0044157eff0051401f803ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd4500 -7e00ff00c42e3ff0428ffa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67ff366 -7f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff463 -3ff9b33fb61fff0044157eff0051401f803ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd45007e00 -ff00c42e3ff0428ffa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67ff3667f6c -3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9 -b33fb61fff0044157eff0051401f803ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd45007e00ff00 -c42e3ff0428ffa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67ff3667f6c3ffe -882a3fe2171ff82147fd18cffe6ccfed87ff00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33f -b61fff0044157eff0051401f803ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd45007e00ff00c42e -3ff0428ffa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a -3fe2171ff82147fd18cffe6ccfed87ff00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61f -ff0044157eff0051401f803ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd45007e00ff00c42e3ff0 -428ffa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2 -171ff82147fd18cffe6ccfed87ff00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff00 -44157eff0051401f803ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd45007e00ff00c42e3ff0428f -fa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171f -f82147fd18cffe6ccfed87ff00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff004415 -7eff0051401f803ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd45007e00ff00c42e3ff0428ffa31 -9ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff821 -47fd18cffe6ccfed87ff00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff0044157eff -0051401f803ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd45007e00ff00c42e3ff0428ffa319ffc -d99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd -18cffe6ccfed87ff00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff0044157eff0051 -401f803ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd45007e00ff00c42e3ff0428ffa319ffcd99f -db0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cf -fe6ccfed87ff00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff0044157eff0051401f -803ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd45007e00ff00c42e3ff0428ffa319ffcd99fdb0f -ff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6c -cfed87ff00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff0044157eff0051401f803f -f10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd45007e00ff00c42e3ff0428ffa319ffcd99fdb0fff00 -a20a8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed -87ff00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff0044157eff0051401f803ff10b -8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd45007e00ff00c42e3ff0428ffa319ffcd99fdb0fff00a20a -8ff885c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff -00d1055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff0044157eff0051401f803ff10b8ffc -10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1055fbfd45007e00ff00c42e3ff0428ffa319ffcd99fdb0fff00a20a8ff8 -85c7fe0851ff004633ff009b33fb61ff00f44157eff51401f803ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1 -055fbfd45007e00ffc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff0044157eff0051401fca17837fe0d0cff8 -26c689fb64fc59f8d7e2ed27fe136fd917c5ff000ff4df0efc2dfd897edff1ebc37ff0a7fc776d63f0d2df50f88bff000d25a67ed2d2fc4df881fda77be17f88 -ba87fc223e22d2adb47b2ff85a3f65827687c13a135c7d7fff0010b8ff00c10a3fe8c67ff3667f6c3ffe882afdfea2803f007fe2171ff82147fd18cffe6ccfed -87ff00d10547fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20abf7fa8a00fc01ff00885c7fe0851ff4633ff9b33fb61fff0044151ff10b8ffc10a3fe8c67 -ff003667f6c3ff00e882afdfea2803f007fe2171ff0082147fd18cff00e6ccfed87ffd10547fc42e3ff0428ffa319ffcd99fdb0fff00a20abf7fa8a00fc01ff8 -85c7fe0851ff004633ff009b33fb61ff00f44151ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882afdfea2803f007fe2171ff82147fd18cffe6ccfed87ff00d1 -0547fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20abf7fa8a00fc01ff00885c7fe0851ff4633ff9b33fb61fff0044151ff10b8ffc10a3fe8c67ff003667 -f6c3ff00e882afdfea2803f007fe2171ff0082147fd18cff00e6ccfed87ffd10547fc42e3ff0428ffa319ffcd99fdb0fff00a20abf7fa8a00fc01ff885c7fe08 -51ff004633ff009b33fb61ff00f44151ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882afdfea2803f007fe2171ff82147fd18cffe6ccfed87ff00d10547fc42 -e3ff000428ff00a319ff00cd99fdb0ff00fa20abf7fa8a00fc01ff00885c7fe0851ff4633ff9b33fb61fff0044151ff10b8ffc10a3fe8c67ff003667f6c3ff00 -e882afdfea2803f007fe2171ff0082147fd18cff00e6ccfed87ffd10547fc42e3ff0428ffa319ffcd99fdb0fff00a20abf7fa8a00fc01ff885c7fe0851ff0046 -33ff009b33fb61ff00f44151ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882afdfea2803f007fe2171ff82147fd18cffe6ccfed87ff00d10547fc42e3ff0004 -28ff00a319ff00cd99fdb0ff00fa20abf7fa8a00fc01ff00885c7fe0851ff4633ff9b33fb61fff0044151ff10b8ffc10a3fe8c67ff003667f6c3ff00e882afdf -ea2803f007fe2171ff0082147fd18cff00e6ccfed87ffd10547fc42e3ff0428ffa319ffcd99fdb0fff00a20abf7fa8a00fc01ff885c7fe0851ff004633ff009b -33fb61ff00f44151ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882afdfea2803f007fe2171ff82147fd18cffe6ccfed87ff00d10547fc42e3ff000428ff00a3 -19ff00cd99fdb0ff00fa20abf7fa8a00fc01ff00885c7fe0851ff4633ff9b33fb61fff0044151ff10b8ffc10a3fe8c67ff003667f6c3ff00e882afdfea2803f0 -07fe2171ff0082147fd18cff00e6ccfed87ffd10547fc42e3ff0428ffa319ffcd99fdb0fff00a20abf7fa8a00fc01ff885c7fe0851ff004633ff009b33fb61ff -00f44151ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882afdfea2803f007fe2171ff82147fd18cffe6ccfed87ff00d10547fc42e3ff000428ff00a319ff00cd -99fdb0ff00fa20abf7fa8a00fc01ff00885c7fe0851ff4633ff9b33fb61fff0044151ff10b8ffc10a3fe8c67ff003667f6c3ff00e882afdfea2803f007fe2171 -ff0082147fd18cff00e6ccfed87ffd10547fc42e3ff0428ffa319ffcd99fdb0fff00a20abf7fa8a00fc01ff885c7fe0851ff004633ff009b33fb61ff00f44151 -ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882afdfea2803f007fe2171ff82147fd18cffe6ccfed87ff00d10547fc42e3ff000428ff00a319ff00cd99fdb0ff -00fa20abf7fa8a00fc01ff00885c7fe0851ff4633ff9b33fb61fff0044151ff10b8ffc10a3fe8c67ff003667f6c3ff00e882afdfea2803f007fe2171ff008214 -7fd18cff00e6ccfed87ffd10547fc42e3ff0428ffa319ffcd99fdb0fff00a20abf7fa8a00fc01ff885c7fe0851ff004633ff009b33fb61ff00f44151ff0010b8 -ff00c10a3fe8c67ff3667f6c3ffe882afdfea2803f007fe2171ff82147fd18cffe6ccfed87ff00d10547fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20ab -f7fa8a00fc01ff00885c7fe0851ff4633ff9b33fb61fff0044151ff10b8ffc10a3fe8c67ff003667f6c3ff00e882afdfea2803f007fe2171ff0082147fd18cff -00e6ccfed87ffd10547fc42e3ff0428ffa319ffcd99fdb0fff00a20abf7fa8a00fc01ff885c7fe0851ff004633ff009b33fb61ff00f44151ff0010b8ff00c10a -3fe8c67ff3667f6c3ffe882afdfea2803f007fe2171ff82147fd18cffe6ccfed87ff00d10547fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20abf7fa8a00 -fc01ff00885c7fe0851ff4633ff9b33fb61fff0044151ff10b8ffc10a3fe8c67ff003667f6c3ff00e882afdfea2803f007fe2171ff0082147fd18cff00e6ccfe -d87ffd10547fc42e3ff0428ffa319ffcd99fdb0fff00a20abf7fa8a00fc01ff885c7fe0851ff004633ff009b33fb61ff00f44151ff0010b8ff00c10a3fe8c67f -f3667f6c3ffe882afdfea2803f007fe2171ff82147fd18cffe6ccfed87ff00d10547fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20abf7fa8a00fc01ff00 -885c7fe0851ff4633ff9b33fb61fff0044151ff10b8ffc10a3fe8c67ff003667f6c3ff00e882afdfea2803f007fe2171ff0082147fd18cff00e6ccfed87ffd10 -547fc42e3ff0428ffa319ffcd99fdb0fff00a20abf7fa8a00fc01ff885c7fe0851ff004633ff009b33fb61ff00f44151ff0010b8ff00c10a3fe8c67ff3667f6c -3ffe882afdfea2803f007fe2171ff82147fd18cffe6ccfed87ff00d10547fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20abf7fa8a00fc01ff00885c7fe0 -851ff4633ff9b33fb61fff0044151ff10b8ffc10a3fe8c67ff003667f6c3ff00e882afdfea2803f007fe2171ff0082147fd18cff00e6ccfed87ffd10547fc42e -3ff0428ffa319ffcd99fdb0fff00a20abf7fa8a00fc01ff885c7fe0851ff004633ff009b33fb61ff00f44151ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a -fdfea2803f007fe2171ff82147fd18cffe6ccfed87ff00d10547fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20abf7fa8a00fc01ff00885c7fe0851ff463 -3ff9b33fb61fff0044151ff10b8ffc10a3fe8c67ff003667f6c3ff00e882afdfea2803f007fe2171ff0082147fd18cff00e6ccfed87ffd10547fc42e3ff0428f -fa319ffcd99fdb0fff00a20abf7fa8a00fc01ff885c7fe0851ff004633ff009b33fb61ff00f44151ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882afdfea280 -3f007fe2171ff82147fd18cffe6ccfed87ff00d10547fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20abf7fa8a00fc01ff00885c7fe0851ff4633ff9b33f -b61fff0044151ff10b8ffc10a3fe8c67ff003667f6c3ff00e882afdfea2803f007fe2171ff0082147fd18cff00e6ccfed87ffd10547fc42e3ff0428ffa319ffc -d99fdb0fff00a20abf7fa8a00fc01ff885c7fe0851ff004633ff009b33fb61ff00f44151ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882afdfea2803f007fe2 -171ff82147fd18cffe6ccfed87ff00d10547fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20abf7fa8a00fc01ff00885c7fe0851ff4633ff9b33fb61fff00 -44151ff10b8ffc10a3fe8c67ff003667f6c3ff00e882afdfea2803f007fe2171ff0082147fd18cff00e6ccfed87ffd10547fc42e3ff0428ffa319ffcd99fdb0f -ff00a20abf7fa8a00fc01ff885c7fe0851ff004633ff009b33fb61ff00f44151ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882afdfea2803f007fe2171ff821 -47fd18cffe6ccfed87ff00d10547fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20abf7fa8a00fc01ff00885c7fe0851ff4633ff9b33fb61fff0044157f94 -27ed63f02ffe197ff6a7fda5bf668ff84a7fe138ff008677fda03e327c0bff0084d7fb13fe119ff84c3fe1527c45f11f803fe129ff008473fb5fc41ff08fff00 -c241ff0008ff00f6b7f627f6f6b7fd95f6bfb07f6bea5f67fb64dfeef35fe20dff000562ff0094a6ff00c14b3fecff00ff006c8ffd68af88d401fe9f7ff06b8f -fca0a3f619ff00bb99ff00d6c3fda0abf7fabf007fe0d71ff94147ec33ff007733ff00ad87fb4157eff500145145001451450014514500145145001451450014 -51450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014 -51450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014 -51450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014 -51450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014 -51450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014 -51450014514500145145001451450014515f007edcff00f0547fd84ffe09afff000abbfe1b5be39ffc297ff85d1ff09b7fc2b4ff008b65f18be237fc24bff0ae -7fe111ff0084cbfe4937c3ef1dff0063ff0063ff00c277e14ff90fff00657f687f6aff00c4abeddf61d4bec601f7fd15f803ff0011477fc10a3fe8f9bff359bf -6c3ffe87dafbff00f6e7ff0082a3fec27ff04d7ff855dff0dadf1cff00e14bff00c2e8ff0084dbfe15a7fc5b2f8c5f11bfe125ff008573ff00088ffc265ff249 -be1f78effb1ffb1ffe13bf0a7fc87ffb2bfb43fb57fe255f6efb0ea5f6300fbfe8afc01ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed7d7ff00b6b7fc16 -67fe09b1ff0004edf8a7a07c14fdb17f690ff853ff00137c51f0ff004af8a5a17867fe14ff00c7af881f6ef026b7e23f15f84f4cd77fb67e16fc2ef1b787edbe -d3e20f04f89f4ffeccbcd56df5887fb33ed571a7c5657ba7dcdd807e9fd15f207ec53fb7afec9dff000512f859affc6bfd8ebe2b7fc2e0f865e17f881aafc2dd -77c4dff082fc49f87ff61f1de89e1cf0af8b353d0bfb1be29783bc13e20b9fb3787fc6de18d43fb4ecf4ab8d1e6fed3fb2dbea12ded96a16d69eff00f167e297 -813e077c2cf897f1afe296bbff0008bfc32f83ff000ffc65f14be22f89bfb3358d6ffe11df027c3ff0e6a5e2cf176bbfd8de1dd3f57f106aff00d91e1fd2350d -43fb3342d2b53d62ff00ecff0065d334fbdbd960b69403d028afc41f84ff00f071e7fc118fe38fc53f869f053e16fed93ff0947c4df8c1f103c1bf0b7e1d7867 -fe19e7f6abd13fe122f1dfc40f11e9be13f08e85fdb3e22f81ba4787f48fed7f106afa7e9ffda7aeeaba668f61f68fb56a7a85959453dcc5fafdf167e297813e -077c2cf897f1afe296bbff0008bfc32f83ff000ffc65f14be22f89bfb3358d6ffe11df027c3ff0e6a5e2cf176bbfd8de1dd3f57f106aff00d91e1fd2350d43fb -3342d2b53d62ff00ecff0065d334fbdbd960b69403d028afc01ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed7dfff0000bfe0a8ff00b09fed41fb2c7c6a -fdb5be05fc73ff0084e3f665fd9dff00e163ff00c2e2f897ff000acbe317867fe10fff008549f0eb46f8b1f107fe28df187c3ef0ff00c40f107fc23ff0ff00c4 -1a46bfff0014b78535bfed5fb5ff0065689fda5ad5bdd69b0807dff457e00ffc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f6befff00d863fe0a8ffb09ff -00c14a3fe168ff00c314fc73ff0085d1ff000a5ffe109ff8597ff16cbe317c39ff00846bfe1637fc25dff086ff00c959f87de04fed8fed8ff8413c57ff00200f -ed5fecff00ecaff89afd87edda6fdb003eff00a2bf207f6a3ff82f57fc127bf62ef8ede39fd9a3f697fdab3fe15afc6df86bff0008cffc26be0aff008519fb49 -78c7fb17fe131f07787bc7fe1cff008a8fc01f077c55e12d47fb47c25e2ad0756ff894ebd7ff0063fb7fd82ffecba9daded95bfcff00ff0011477fc10a3fe8f9 -bff359bf6c3ffe87da00fdfea2bf007fe228eff82147fd1f37fe6b37ed87ff00d0fb5e81f09ffe0e3cff008231fc71f8a7f0d3e0a7c2dfdb27fe128f89bf183e -207837e16fc3af0cff00c33cfed57a27fc245e3bf881e23d37c27e11d0bfb67c45f03748f0fe91fdafe20d5f4fd3ff00b4f5dd574cd1ec3ed1f6ad4f50b2b28a -7b98803f6fa8afc81fda8ffe0bd5ff00049efd8bbe3b78e7f668fda5ff006acff856bf1b7e1aff00c233ff0009af82bfe1467ed25e31fec5ff0084c7c1de1ef1 -ff00873fe2a3f007c1df15784b51fed1f0978ab41d5bfe253af5ff00d8fedff60bff00b2ea76b7b656ff003fff00c451dff0428ffa3e6ffcd66fdb0fff00a1f6 -803f7fa8afc81fd973fe0bd5ff00049efdb47e3b781bf668fd9a3f6acff8595f1b7e257fc24dff00085782bfe1467ed25e0efedaff00843bc1de21f1ff0088ff -00e2a3f1ff00c1df0af84b4efecef0978575ed5bfe26daf587db3ec1f60b0fb56a775656571fafd400515e01fb51fed47f027f62ef813e39fda5ff00697f1cff -00c2b5f825f0d7fe119ff84d7c6bff0008cf8c7c63fd8bff00098f8c7c3de00f0e7fc539e00f0f78abc5ba8ff68f8b7c55a0e93ff129d06ffec7f6ff00b7dffd -974cb5bdbdb7fc80ff0088a3bfe0851ff47cdff9acdfb61fff0043ed007eff00515e01fb2e7ed47f027f6d1f813e06fda5ff00668f1cff00c2caf825f12bfe12 -6ff842bc6bff0008cf8c7c1dfdb5ff0008778c7c43e00f11ff00c539e3ff000f7857c5ba77f6778b7c2baf693ff136d06c3ed9f60fb7d87dab4cbab2bdb8f803 -f6a3ff0082f57fc127bf62ef8ede39fd9a3f697fdab3fe15afc6df86bff08cff00c26be0aff8519fb4978c7fb17fe131f07787bc7fe1cff8a8fc01f077c55e12 -d47fb47c25e2ad0756ff00894ebd7ff63fb7fd82ff00ecba9daded95b807ebf515f903fb2e7fc17abfe093dfb68fc76f037ecd1fb347ed59ff000b2be36fc4af -f849bfe10af057fc28cfda4bc1dfdb5ff087783bc43e3ff11ffc547e3ff83be15f0969dfd9de12f0aebdab7fc4db5eb0fb67d83ec161f6ad4eeacacae0fda8ff -00e0bd5ff049efd8bbe3b78e7f668fda5ff6acff00856bf1b7e1affc233ff09af82bfe1467ed25e31fec5ff84c7c1de1ef1ff873fe2a3f007c1df15784b51fed -1f0978ab41d5bfe253af5ffd8fedff0060bffb2ea76b7b656e01fafd457e00ff00c451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff00 -9acdfb61ff00f43ed007eff515f803ff0011477fc10a3fe8f9bff359bf6c3ffe87dafa03f65cff0082f57fc127bf6d1f8ede06fd9a3f668fdab3fe1657c6df89 -5ff0937fc215e0aff8519fb49783bfb6bfe10ef077887c7fe23ff8a8fc7ff077c2be12d3bfb3bc25e15d7b56ff0089b6bd61f6cfb07d82c3ed5a9dd59595c007 -ebf515f883f167fe0e3cff008231fc0ef8a7f12fe0a7c52fdb27fe117f89bf07fe2078cbe16fc45f0cff00c33cfed57adffc23be3bf87fe23d4bc27e2ed0bfb6 -7c3bf03757f0feaffd91e20d2350d3ff00b4f42d5753d1effecff6ad3350bdb2960b997f5fbe13fc52f027c71f859f0d3e35fc2dd77fe128f865f183e1ff0083 -7e297c3af137f666b1a27fc245e04f881e1cd37c59e11d77fb1bc45a7e91e20d23fb5fc3fabe9fa87f666bba5699ac587da3ecba9e9f657b14f6d1007a051457 -e00ffc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f6803f7fa8afc01ff0088a3bfe0851ff47cdff9acdfb61fff0043ed7d7ffb14ff00c1667fe09b1ff051 -2f8a7aff00c14fd8ebf690ff0085c1f137c2ff000ff55f8a5aef867fe14ffc7af87ff61f02689e23f0af84f53d77fb67e297c2ef04f87ee7ecde20f1b78634ff -00eccb3d56e3589bfb4fed56fa7cb6565a85cda007e9fd15f007edcfff000547fd84ff00e09aff00f0abbfe1b5be39ff00c297ff0085d1ff0009b7fc2b4ff8b6 -5f18be237fc24bff000ae7fe111ff84cbfe4937c3ef1dff63ff63ffc277e14ff0090ff00f657f687f6affc4abeddf61d4bec7f007fc451dff0428ffa3e6ffcd6 -6fdb0fff00a1f6803f7fa8afc01ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed7edf7c27f8a5e04f8e3f0b3e1a7c6bf85baeffc251f0cbe307c3ff06fc5 -2f875e26feccd6344ff848bc09f103c39a6f8b3c23aeff0063788b4fd23c41a47f6bf87f57d3f50feccd774ad3358b0fb47d9753d3ecaf629eda200f40a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800aff106ff0082b17fca537fe0a59ff67fff00b647feb457c46aff006f9aff00106ff82b17fca537 -fe0a59ff0067ff00fb647feb457c46a00ff4fbff00835c7fe5051fb0cffddccffeb61fed055fbfd5f803ff0006b8ff00ca0a3f619ffbb99ffd6c3fda0abf7fa8 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800afc01ff838bffe09b1fb38fedd1fb02fc5bf8d7f189be20691f137 -f60dfd9fff006a9fda13e05f89bc01e28b5d177eb1a47c17d4fc59abf80fc6ba36b7a2f897c3fe20f87fe33f107c37f87da8788d6d74ad23c7769ff088d9daf8 -3fc77e14b2d5fc536daffeff0057c01ff0562ff94597fc14b3fecc03f6c8ff00d675f88d401fe707ff0006deff00c1153f658ff82c1ffc365ffc34bf8fbf680f -03ff00c33bff00c33bff00c215ff000a2fc55f0ebc33fda9ff000b6ffe179ffc249ff094ff00c27ff0abe26fdb7ec5ff000acb41fec4fec9fec4fb37daf57fb7 -ff00697da2cfec1fdfeffc156ffe08a9fb2c7fc160ff00e142ff00c34bf8fbf680f03ffc33bffc2d1ff842bfe145f8abe1d7867fb53fe16dff00c2baff008493 -fe129ff84ffe157c4dfb6fd8bfe159683fd89fd93fd89f66fb5eaff6ff00ed2fb459fd83f981ff008318ff00e728bff764dffbf715fdfe5007f9527fc1b23ff0 -46dfd91ffe0ac1e2afda97c43fb57ea5f1825d23f65af107ecbdacf87bc0bf0e3c65a27837c2bf1234ef88fa8fc6abef18f84fe275e4be0fd67c6cfe1fd5adbe -15e8da3adcfc38f18fc38f1569fa76afe20974df135a6af2e8faa68bfdceff00c1527fe0805fb0effc15b3e29fc37f8d7fb43f887f680f87ff00137e1bfc3f9b -e16c1e26f817e3df09787ffe12af0245e23d53c59e1dd0bc53a37c45f875f147c3ebff000887883c49e34d4344d4fc2da5785f58beff0084cf57b5f15ea1e25b -2d33c236de19fe707fe0c63ff9ca2ffdd937fefdc57f7f9401fe549ff0428f8d7ff05aefd9afe016b3fb45feca5a7f88356ff824afc01fda7f51f8d7fb7ae97e -13b5fd8aafbc55a97857e15f82fe10f8ebf6a4d3fc3363f1e355d07e34de7882f3f669d0bc396fa35af80b5cd1b4eb8d464b687c2daae9de2c7d62f21febf750 -ff0082c97ec8ff00f057cff82447fc1633c43fb31e9bf183c27abfc0bfd883f69dd1be21f817e35f83744f0bf8aac34ef1efecc9f17efbc0fe2cd3ef3c19e30f -887e09d53c3fe27b9f0af8db47b5b6b4f18b78ab4cd47c1baacbe22f0ce8ba46a9e12d53c4bf943ff06d97c2df1dfc71ff00836e3fe0abbf053e16e85ff0947c -4df8c1f103f6e9f85bf0ebc33fda7a3e89ff0009178efe207ec1bf02bc27e11d0bfb67c45a8691e1fd23fb5fc41abe9fa7ff0069ebbaae99a3d87da3ed5a9ea1 -656514f7317e607ec53ff1a37fd963fe0b6bfb14ff00c1527fe317ff0069afdbc3f600f0f7fc3297c34ff92d7ff0b53fb57e1d7edd3f09ec3fe2b2fd9dff00e1 -6dfc3ff03fda3e206b7a5e81ff001723c57e0ff2bed5fdab3797a2c371a94401cfff00c1a73ff04bff00805fb77fc7df8b5fb467c5df17fc60f0e78dbfe09f5f -183f62cf8d7f0674bf871aff0082f48f0af89bc553f8d3e2cf8e9f4ff89d63e27f87fe30d5f59f0f8d5fe0af856dd6d7c2bae782f511a76a1e2084eaa6e6eb4e -bcd2bfd2eff685f829e15fda53e017c70fd9cfc75a8788349f04fc7ef83ff12fe0a78c754f09dd69d63e2ad37c2bf153c17ad7817c43a87866fb58d2b5ed22cf -c4167a46bb7971a35d6a9a1eb3a75bea31db4d7da56a36c92d9cdfc31ffc18c7ff003945ff00bb26ff00dfb8afeff2803fc797fe0e16ff00825ffc02ff00824c -feda1f0c7f673fd9cfc5ff00183c69e09f1a7ecc1e0bf8d7aa6a9f1af5ff0005f88fc556fe2af11fc56f8d5e05bed3f4fbef02fc3ff871a445e1f8b48f871a1d -c5adadc68775a8a6a375aacd36ab3db4f676763fe977fb2e7fc11b7f647fd907fe09e9f1cffe09b5f08352f8c11fc1bfda3fc3ff001cf46f8bbf107c4de32d13 -5bf8cbe24d47e3f7807fe15678abc596dab0f07d9fc3bd07c41a0fc3bb3f0d785bc276da17c33d3bc2b6d0784746d5f5ff000cf88bc497de2ad6bc49fc31ff00 -c1eadff294df807ff6601f0b3ff5a2bf6aaaff004fba00ff00284ff829cffc1153f658fd8bbfe0b41ff04f6ff82747c2df1f7ed01aff00c12fdacbfe193bfe16 -2f8a7c7fe2af875aa7c53d17fe17bfed5be3ef817e2eff00842b5bf0efc2af0af84b4efecef0978574fd47c39fdbbe07f11fd8fc4735eddea7fdb1a64906916f -fe839ff04adff8236fec8fff000483f0afc61f0f7ecc7a97c60f166aff001d3c41e13d67e21f8ebe35f8cb44f1478aaff4ef0169dacd8f81fc27a7d9f833c1ff -000f3c13a5f87fc3173e2af1b6b16b7369e0e5f156a7a8f8cb558bc45e26d6b48d2fc25a5f86bc03fe0b67ff0004e4fd8f7e31fc02fda73fe0a1fe3af865e209 -3f6d0fd90ff620f8d1e2cfd9b3e3e784fe337c73f86fe2af847e2af803e0bf8adf1c3e0ef89bc33a77c37f895e13f0b37883c05f15b54bcf19e8dacea9a06a3a -8b6a26da0beb9bbd3ac6c6cadbf8e2ff00827aff00c1553fe0a397bff044aff82eaf8d75dfdb3ff680f187c40f819ff0c1bff0a73e2678ff00c7daa7c42f8a7f -0cbfe1a83e386b9f063e34ff00c215f143c70fe20f881e1fff008483e1ff0087f4cb2f0e7f67f88e1ff8565e234bdf1ffc2dff008433e206abaaf8a2f403c7ff -00e0b61f053c2bfb4a7fc1d4fe2afd9d3c75a8788349f04fc7efda7ffe09d1f053c63aa784eeb4eb1f1569be15f8a9f04bf651f02f88750f0cdf6b1a56bda459 -f882cf48d76f2e346bad5343d674eb7d463b69afb4ad46d925b39bf6ff00f6ddff0083453fe09b7fb35fec5ffb5dfed19e05f8dbfb6feade36f803fb307c7df8 -d7e0ed2fc59f127e035f785752f157c2bf853e2cf1d787b4ff001358e8ff00b35683abde787ef357d0acedf59b5d2f5cd1b51b8d3a4b986c755d3ae5e2bc879f -ff00835e3f611fd99ffe0a25f04fc5ff00f0527fdb7bc2ff00103f698fdb9fe0ff00edff0007fc205fb487c52f8fff00b426b7e3bb1ff8515f08bf65ef1bfc24 -fedd8e3f8a76de1ff1b7fc213e20b966d33fe138d17c47e768f6fa7f85f51fb6f85f4bd3747b4feaf7fe0ac5ff0028b2ff0082967fd9807ed91ffacebf11a803 -f823ff00837a7fe0de9fd8bffe0acdfb17fc4efda33f68cf89dfb4ff0082fc6de0bfda7fc69f0534bd2fe0a78d3e14f873c2b71e15f0e7c29f82be3ab1d4350b -1f1d7c15f88fabcbe209757f88fae5bdd5d5beb96ba73e9d6ba5430e9505cc179797deff002ffc1af1fb617ec75ff0599fd923e257ec83f0efc41f1b3f602f85 -7fb4ff00ec71f1adfe2ff8e7e367c0c4f899e08f0af81fe247c3fd7fe3369ff127c35a89f831abeb7e20f0d6afe18f17f8a343b5f85ff0e7c4ba76a5f0f756f0 -4d859eabacf8f8789f42d2bf107fe097ff00b227fc17dfe3f7c02f17f8c7fe095de2cfda7f42fd9f34df8c1aff00867c6367f053f6ddf0dfecd7e1593e32d9f8 -2fe1fea9e21b9d43c0bac7c7df85773ab7881fc13acfc3c8aebc591f87af20bed3a1d2b475d66e24d0a5b1d3bf6fbf622ff827cffc1d81e0bfdb43f644f18fed -19e3efdb7ef3f67cf09fed3ff00bc4df1dacfc59ff000536f06f8f7c2b75f06b42f8ade13d53e27db789bc0b6bfb57f88ee7c69e1f9fc136bae45acf84edfc3d -aecfe23d39ae7478746d524bc5b19c03ee0ff83a3bfe08a9fb2c7fc289fdb9bfe0b17ff09f7ed01ff0d35ff18cdff1437fc255f0ebfe144ffc8e3fb3efecb7ff -0022cffc2aaff8581ff24fff00e271ff00253ffe471ff8987fc817fe29eafca0ff00837a7fe0de9fd8bffe0acdfb17fc4efda33f68cf89dfb4ff0082fc6de0bf -da7fc69f0534bd2fe0a78d3e14f873c2b71e15f0e7c29f82be3ab1d4350b1f1d7c15f88fabcbe209757f88fae5bdd5d5beb96ba73e9d6ba5430e9505cc179797 -dfd6effc1d1dff002828fdb9bfeed9bff5b0ff0067daff00364fd98b47ff0082c0fc2bfd833e347ed91fb22fc65fda7fe0c7ec1ff08fe3041e19f8cde2af829f -b5bdefc1cf0ae93f197c4a9f07fc2a973a87c22f0c7c5df0af8dbc4fe20d52dbe21fc1ed12ebc59a2f8035b81f4eb9d2adaf3595b0f0c6a234600fddefd82bf6 -29f859ff0004edff0083bfbe14fec75f0535ff00881e28f865f07ffe13aff84675df8a5aaf8735bf1ddf7fc2c0ff00826178c7e296b3fdbba9f84fc29e09f0fd -cfd9bc41e36d56cf4cfecff0c699e4e8f6fa7dbdd7db6f62b9d42eff00d2eebf883ff834b7f662f845fb597c36f883ff000553fda66d3e207c77ff008283fc35 -fdaffe28fc2df09fed41f14be367c6cf18f8ee1f0247fb277c10f05db685aed8eb3f10aebc25e31fb0784be2578c3c39a66a7e31f0e6bfac697a3dfe9f61a76a -16b6fe1cf0ca68ff00dbe5007f9d1ffc16c3f6dcfdb0bf694ff82de78abfe088de3afda0bc41a4ff00c13bfe3f7ed3ff00f04e8f829e31f853e13f87bf032c7c -55a6f857e2a5a7eca3f10fc43a87867e2a6b1f0a75ef88967e20b3f889aede78d346bad53c41ace9d6fa8c76da3df695a8f84125f0dcdfabff00f1054ffc12cb -fe8be7edff00ff00874ff675ff00e855afa7ff00e0b7dff0441f867fb4a7c33fda1ff6d1fd8bbf678f106adff057dd5bc41fb39f8b3e0cfc66f09fed19f10be1 -5f8ab4df157c2bf885f057c30fe26f0ca789fe357827e077843c41e10f81de09d4d746d65b4cd1b51b7d4746b6d7343b97f882fa76a337f2c5ff000ed3ff0083 -c93fe8a37edfff00f8b62f037ff4645007f47dfb057ec53ff0584ff8276ffc149fe14fec75f0535ff881e28ff837ff00e0ff00fc275ff08cebbf14b55fd8675b -f1ddf7fc2c0f80be31f8a5acff006eea7e13f0a7827f695b9fb37eda9e36d56cf4cfecff000c699e4e8f6fa7dbdd7db7c0315cea177f941ff0785ffc12ff00e0 -17c2bf0fdc7fc1547c3de2ff008c179fb41fed29fb4ffc12f829e3af076b3aff0082ee3e0d693e15d0bf65ff001ce8f67a8784fc3d63f0ff004ef1b58f8824b6 -f803e0e92e6eb58f887af69cf3ea5e2668b4a863bcd2e2d1bf77bfe08cff00b7e7873e0ff813f670ff0082467fc140bf684f881abffc164fc3bff0b83fe16dfc -25f8a579f14fe38f8eee3fb5f58f8a3fb4d780ff00b77f699d36c3e207c18f14795fb2c6a7e0cf12e99e4fc6ad5ffb13478b4ff0049f60f15e912784ecbe40ff -0083d5bfe5165f00ff00ecff00fe167feb3afed55401e3ff00f06ac7fc11b7f647d2ff00678fd91bfe0afb7da97c60f11fed47e23f0ffed23a368fe1ed67c65a -241f06bc05a8c1f16fe2efecf92f8b3c27e14f0f783f41f14de7882f3e14e83aa7876e6dbc75e3af1a785567f1a789b5bb3f0cdaeb96be0ed47c27e41fb7affc -1bc7fb4c7fc144bfe0e12f8adf1a7e35fc2bf881e17ff826c7c60ff8417fe126fda1fe16fc61fd9ef44f1dd8ff00c2bffd88fc1de14d1bfb0bc17e2cd5fc6de3 -ab6fb4fc7af04e95e07d4ffb43e0e6a7e768f71a86ab6bf62d1e5b6f14da7edf7fc1ae3ff2828fd867feee67ff005b0ff682afdfea00ff001e5fd913fe097ff0 -0be3f7fc17dfc59ff04aef18f8bfe3069bfb3e685fb4ff00edbbf052cfc63e19d7fc1767f1964f0afecd7e1bf8fbac781750b9f10ea9f0ff0059f04bf88356b9 -f857e1e8fc597517c3c874ebe82f3595d1f4ad064b8b1974efe87bfe0a4fff00066df83be1ff00ece2be2eff00825e7893f680f8e3fb46e91f103c2ffdb3f0b7 -f684f8cbf02748d1fc51f0b2fed75ad33c4dff00081ea16df083e0ff0087edfe20689e20bdf0878897fe136f88be1df0e4be04d23c77058ff6bf8ce5f09e85a9 -fc01ff0004d3ff0095c93e237fd9ff00ff00c158bff506fdb22bfd3ee803fce0ff006bcff83437e22f83bf605fd983e217ec75e0afda03e2bffc141fc55ff0a5 -7fe1a9fe05f8ff00e3b7ecb1a77c2cf86bfdb9f05fc4badfc70ff842b57bed2fe1ae997fff000877c6db5f0c783fc39f63f8c5e3efb5787351bdbab7ff0084aa -dd1fc5361e81ff0006f1fc2dff00823bfc0eff00829ffc2bf82977a17edffe17ff0082b37c1ff87ff18be16f8b3c33f1f753f81badfecb1e1dfdac7e1ff80357 -f09fed57a17c15d67f673d4357f106affd91e1fd23e3d69ff0e353f8c1aaea7f0daffe1d5beb37536a17bf1625f863732ffa1e57f922ff00c1637f611ff829ff -00fc13b7f6e2fda97fe0a4f73e17f881fb33fc32f8c1fb7ffed2bff0cf1fb487c2df8ffe00d13c777dff000bd7c5bf1bfc6fe17fec28fe11fc53b9f8c1e09ff8 -4dbe0fdb78b1b53fed9d17c39e4e8f71a8785fc4df62bdd5068f7601f4ff00ec97ff0004bff805ff000566ff0083877fe0af3fb3a7ed19e2ff008c1e0bf04f82 -fe307edf9f1af4bd53e0a6bfe0bf0e78aae3c55e1cfdb83c37e05b1d3f50bef1d7c3ff0088fa44be1f9748f88fae5c5d5adbe876ba8bea36ba54d0eab05b4179 -677dfe977fb3d7c14f0afecd7f00be07fece7e05d43c41ab7827e00fc1ff00869f053c1daa78b2eb4ebef156a5e15f857e0bd17c0be1ed43c4d7da3e95a0e917 -9e20bcd2342b3b8d66eb4bd0f46d3ae35192e66b1d2b4eb678ace1fe78bfe0d63fd973e04d97fc13c7e187fc142e7f037fc241fb6d7ed87ff0beff00e1a43f69 -7f1af89bc63e3ef8a7f137fe11ff00dad7e365847f6dd7bc6fe21f107fc23fff000907fc23fe1dd4fc7fff00088c1e1fff00859be23f0df873c55f117fe129f1 -2f87f47d5acbfa7da00f803fe0a4ff00f0527fd9c7fe095bfb38afed33fb4cafc40d47c25a8fc40f0bfc2df09f84fe16f85ed7c55e3bf1b78efc556bad6b36da -16856daceb5e15f0969dfd9de12f0af8c3c63a9ea7e31f187857471a3f85750d3b4ed4351f16ea3e19f0cebdfc01ff00c1177fe0d5ff008bbfb666cf8d7ff050 -4d1fe207c07fd917e207ecff00e07f8a5fb3df89be0efc63f8272fc53f8b5ac7c56ff846bc59e04d76d7465f0dfc71b2f0efc3fb0f8652eb7a878c34cf883a57 -c3cf1ddbf88fc51f0fad743d3f5386cfc796de1ffdfeff0083d5bfe5165f00ff00ecff00fe167feb3afed555fbfdff00049dff0094597fc134ff00ecc03f637f -fd675f873401f803ff001054ff00c12cbfe8be7edfff00f874ff00675ffe855afc41fd957c3f75ff0006a7ff00c1537e36fc6bfdb5be057ed0173fb22fc7ff00 -87ff00b5afecf7fb15789bc01e25fd9c7e2e7c53f8a3e04f047ed15f007c59e15f1e78d746d2be2dfc3fb2f0bf9bf0cb4cf0aea1e236d7f4af04eb13788fc576 -76ba57812da1b6d7edbc37fe9775fc01ff00c1f39ff38baffbbd9ffdf47a00fe97bf6f9ff825ff00ec19ff0005edf805fb29fc4af895e2ff008c11f8274bf0fc -3f1aff00677f8bff000535f4f879e2ad4fe19fc7ef05f8575fbad3f50f0d7c55f87fe2cd217c3fe3dd234bf873e28bab5f147c39d3be21787751f0ae956161aa -f862dafbc69a17883f822ff82637fc1153f658fdb47fe0b41ff0509ff82747c52f1f7ed01a07c12fd937fe1ac7fe15d78a7c01e2af875a5fc53d6bfe1447ed5b -e01f817e11ff0084d75bf117c2af15784b51fed1f0978ab50d47c47fd85e07f0e7db3c470d9dde99fd8fa6473e9171fe8f9ff049dff94597fc134ffecc03f637 -ff00d675f8735fe649e22f81dff052ef8fdff05caff82ad783bfe095dad7c60d0bf683d37f69ff00db9fc4de31bcf829fb42e93fb35f8aa4f83567fb5f4fa5f8 -86db50f1d6b1f12fe15db6ade1f7f1b6b3f0f25baf09c7e21bc9efb51874ad61746b88f4296fb4e00fd7eff82a97fc19e9e34f857e15f83de21ff824bdb7c60f -da5357bcf1078b346f8e5e05f8f9f1b7e01683e2ad274eb8d3b46bef87de2cf87b797fe06f803e0993c3f6373a778c747f8836dac78c752f153ea3aefc3c97c2 -9e19bcd221f1aea9a37f77bfb117c14f157ecd7fb17fec89fb39f8eb50f0feade36f803fb307c02f829e31d53c2775a8df785752f157c2bf853e13f02f88750f -0cdf6b1a5683abde787ef357d0af2e346bad5343d1b51b8d3a4b69afb4ad3ae5e5b387fce8ff00e1da7ff07927fd146fdbff00ff0016c5e06ffe8c8aff0047cf -d93bfe17b7fc32c7ecd3ff000d47ff002735ff000cff00f06ffe1a2ffe44eff92edff0aebc39ff000b77fe49dffc5bff00f9281ff090ff00c88dff001477fd0b -3ff125fb0d007bfd145140051451400514514005145140051451400514514005145140057f8837fc158bfe529bff00052cff00b3ff00fdb23ff5a2be2357fb7c -d7f8837fc158bfe529bff052cffb3fff00db23ff005a2be235007fa7dffc1ae3ff002828fd867feee67ff5b0ff00682afdfeafc01ff835c7fe5051fb0cff00dd -ccff00eb61fed055fbfd400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005 -14514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005 -14514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005 -14514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005 -14514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005 -1451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140057c81ff000509f85be3bf8e3fb02fedc3 -f053e16e85ff000947c4df8c1fb207ed2df0b7e1d7867fb4f47d13fe122f1dfc40f82fe35f09f84742fed9f116a1a4787f48fed7f106afa7e9ff00da7aeeaba6 -68f61f68fb56a7a85959453dcc5f5fd1401fe787ff00041ff8a5e04ff83717e29feda9f053fe0b37aeff00c31bfc4dfda43e1ffec8ff0014be0bf867fb3358fd -a1bfe133f027853c47fb5a784f5fd77fb67f655d3fe38f87fc3bf60f104a9a7ff6678af55d0b58baddf6ab2d3ee6c81b91fd1f7fc451dff0428ffa3e6ffcd66f -db0fff00a1f6bd03fe0a93ff000402fd877fe0ad9f14fe1bfc6bfda1fc43fb407c3ff89bf0dfe1fcdf0b60f137c0bf1ef84bc3ff00f09578122f11ea9e2cf0ee -85e29d1be22fc3af8a3e1f5ff8443c41e24f1a6a1a26a7e16d2bc2fac5f7fc267abdaf8af50f12d9699e11b6f0cfe607fc4153ff0004b2ff00a2f9fb7fff00e1 -d3fd9d7ffa156800ff008352bfe0971fb767fc135ffe1bcffe1b5be067fc297ff85d1ff0cb9ff0ad3fe2e6fc1df88dff00092ffc2b9ff868aff84cbfe4937c41 -f1dff63ff63ffc277e14ff0090ff00f657f687f6affc4abeddf61d4bec7fb7dfb6b7fc1667fe09b1ff0004edf8a7a07c14fdb17f690ff853ff00137c51f0ff00 -4af8a5a17867fe14ff00c7af881f6ef026b7e23f15f84f4cd77fb67e16fc2ef1b787edbed3e20f04f89f4ffeccbcd56df5887fb33ed571a7c5657ba7dcddfe9f -d7e20ffc1527fe0805fb0eff00c15b3e29fc37f8d7fb43f887f680f87ff137e1bfc3f9be16c1e26f817e3df09787ff00e12af0245e23d53c59e1dd0bc53a37c4 -5f875f147c3ebff0887883c49e34d4344d4fc2da5785f58beff84cf57b5f15ea1e25b2d33c236de1900fe707fe0d26ff0082a3fec27fb2ff00ecb1a97ec53f1d -3e39ff00c20ffb4d7ed11fb7fde7fc29df869ff0acbe31789bfe130ff85b7f0ebf66ef84ff000fbfe2b2f07fc3ef107c3ff0ff00fc241f103c3fabe81ff154f8 -af44fecafb27f6aeb7fd9ba2dc5aea537eff007fc177ff00e0971fb09fed41fb2c7ed85fb6b7c74f819ff09c7ed35fb3bfec01fb417fc29df897ff000b37e317 -867fe10fff008549f0ebe2ff00c58f87dff146f83fe20f87fe1ff883fe11ff00881e20d5f5ff00f8aa7c29adff006afdaffb2b5bfed2d16ded74d87e60fd9ebf -e0d14ff826dfecd7f1f7e07fed19e05f8dbfb6feade36f803f183e1a7c6bf07697e2cf893f01afbc2ba978abe15f8d345f1d787b4ff1358e8ffb35683abde787 -ef357d0acedf59b5d2f5cd1b51b8d3a4b986c755d3ae5e2bc87fa5df8b3f0b7c09f1c7e167c4bf829f14b42ff84a3e197c60f87fe32f85bf117c33fda7ac689f -f0917813e20787352f09f8bb42fed9f0eea1a4788348fed7f0feafa869ff00da7a16aba66b161f68fb5699a8595ec505cc401fc21ffc18c7ff003945ff00bb26 -ff00dfb8afeef3e2cfc52f027c0ef859f12fe35fc52d77fe117f865f07fe1ff8cbe297c45f137f666b1adffc23be04f87fe1cd4bc59e2ed77fb1bc3ba7eafe20 -d5ff00b23c3fa46a1a87f66685a56a7ac5ff00d9fecba669f7b7b2c16d2fe707fc12b7fe08dbfb23ff00c120fc2bf187c3dfb31ea5f183c59abfc74f10784f59 -f887e3af8d7e32d13c51e2abfd3bc05a76b363e07f09e9f67e0cf07fc3cf04e97e1ff0c5cf8abc6dac5adcda78397c55a9ea3e32d562f11789b5ad234bf09697 -e1afbfff00685f829e15fda53e017c70fd9cfc75a8788349f04fc7ef83ff0012fe0a78c754f09dd69d63e2ad37c2bf153c17ad7817c43a87866fb58d2b5ed22c -fc4167a46bb7971a35d6a9a1eb3a75bea31db4d7da56a36c92d9cc01fe54bff0740fedebfb277fc144bf6faf845f1aff0063af8adff0b83e19785ff640f00fc2 -dd77c4dff082fc49f87ff61f1de89f1a3e3ff8b353d0bfb1be29783bc13e20b9fb3787fc6de18d43fb4ecf4ab8d1e6fed3fb2dbea12ded96a16d69fe9f7fb14f -edebfb277fc144be166bff001aff0063af8adff0b83e19785fe206abf0b75df137fc20bf127e1ffd87c77a27873c2be2cd4f42fec6f8a5e0ef04f882e7ecde1f -f1b786350fed3b3d2ae3479bfb4fecb6fa84b7b65a85b5a7f383ff001054ff00c12cbfe8be7edfff00f874ff00675ffe855afdfeff00826c7fc1363f671ff825 -6fece2dfb337ecccdf10351f096a3f103c51f14bc59e2cf8a5e28b5f1578efc6de3bf155ae8ba35cebbaedce8da2f857c25a77f67784bc2be0ff0007699a6783 -bc1fe15d1c68fe15d3f51d474fd47c5ba8f89bc4daf007d7ff00167e16f813e38fc2cf897f053e29685ff0947c32f8c1f0ff00c65f0b7e22f867fb4f58d13fe1 -22f027c40f0e6a5e13f17685fdb3e1dd4348f10691fdafe1fd5f50d3ff00b4f42d574cd62c3ed1f6ad3350b2bd8a0b98bfcf0ffe0a69fb2e7c09fd823fe0afdf -b25ffc124ff64df037fc2a8ff827c7fc14e7fe1d9dff000dc5fb3fff00c24de31f1d7fc2eefec3ff0082807c58d174bff8badf12bc43e31f8dbf0d7ecba6585a -5b7fc5a1f893e01f3fcaf3ae3ceb892495ff00d1f2bf303f69ff00f82437ec6dfb5dfedc5fb287fc1413e30e8bf102e7e3d7ec83fd8dff0008141e1df1ddf687 -e04f187fc213e2dd4be22fc24ff858be1d8ed6e2f6f7fe14ff00c4dd6f5bf883e11ff84375bf04ff00c245ac6ab3e87f163fe164f816db4df08d8807d01fb14f -ec15fb277fc13b7e166bff00053f63af853ff0a7fe1978a3e206abf14b5df0cffc275f127e207dbbc77adf873c2be13d4f5dfed9f8a5e31f1b7882dbed3e1ff0 -4f8634ff00eccb3d56df4787fb33ed56fa7c57b7ba85cddfe607fc177ffe0a8ffb09fecbff00b2c7ed85fb14fc74f8e7ff00083fed35fb447ec01fb417fc29df -869ff0acbe31789bfe130ff85b7f0ebe2ffc27f87dff00159783fe1f7883e1ff0087ff00e120f881e1fd5f40ff008aa7c57a27f657d93fb575bfecdd16e2d752 -9bf7fabf087fe0a81ff06f4fec5fff000566f8fbe10fda33f68cf89dfb4ff82fc6de0bf83fa07c14d2f4bf829e34f853e1cf0adc7857c39e34f881e3ab1d4350 -b1f1d7c15f88fabcbe209757f88fae5bdd5d5beb96ba73e9d6ba5430e9505cc179797c01fcd0ff00c1afdff0599ff826c7fc13b7f605f8bbf053f6c5fda43fe1 -4ffc4df147ed7fe3ef8a5a17867fe14ffc7af881f6ef026b7f05fe00784f4cd77fb67e16fc2ef1b787edbed3e20f04f89f4ffeccbcd56df5887fb33ed571a7c5 -657ba7dcdd9e3eff00838f3f6b1f8e3ff05e6f823f053f623fdb27fe128ff826c7c60fdaff00f61cf85be1af0cff00c33cfc36d13fe122f027c409be04f84fe3 -ae85fdb3f16fe06e91f1eb48fed7f1d6aff1334ffed3bfd574cd62c3ed1f6af076a165a3c5e1fb98bf4fff00e20a9ff82597fd17cfdbff00ff000e9fecebff00 -d0ab5ec1fb3d7fc1a29ff04dbfd9afe3efc0ff00da33c0bf1b7f6dfd5bc6df007e307c34f8d7e0ed2fc59f127e035f785752f157c2bf1a68be3af0f69fe26b1d -1ff66ad0757bcf0fde6afa159dbeb36ba5eb9a36a371a749730d8eaba75cbc57908078ff00fc1d1dff000547fd84ff00e184ff006e6ff8268ffc2f3ff8cdaff8 -c66ff8b2bff0acbe317fd162fd9f7e3eff00c947ff00857dff000a97fe492ffc559ff23e7fd40bfe465ff89357e407fc1b93fb51ff00c127bc63ff0004e3f899 -ff000493ff008285f8e7fb47c5bfb68fedff00a2ff00c225fb3fff00c233fb4959ff00c2caff0084ab4bfd93b45f835ff175be08f87ad74cf077dbfe36fc3582 -dbfe267f127c2bf65fec5f3bc55f67f096a2f2dfff0047dfb7affc1afdfb02ff00c144bf6b1f8adfb62fc6bf8bbfb5ff0085fe26fc60ff008417fe126d0be16f -8fbe0be89e04b1ff00857ff0dbc1df0b746fec2d33c59f003c6de20b6fb4f87fc13a55e6a7fda1e27d4fced62e350b8b5fb1594b6da7da701fb2affc1a5bff00 -04cafd937f68ef82ff00b4cf867e207ed7ff0012bc5bf023e20681f14bc13e13f8a5f147e1849e049bc77e0eba1acf81b5dd76dbe1b7c10f86be2dbfff00843b -c5b6ba378c74cd32dbc6161a3ea9ac681a7e9de2cd3fc47e12bad73c33ac007e207837f6f5f027fc1073fe0bf5f167fe09fbe11f8adff0cabff046cf0efc40d3 -7e297c52f849ff00082eb1f1c7ec7e3bf899ff0004e8f869a969faeffc27ba9f83be307ed4f71fdb7f19ecbe1d4ffd99e1df19cfa3e9be57973e9f61e147d763 -7feef7f65cfda8fe04feda3f027c0dfb4bfecd1e39ff008595f04be257fc24dff08578d7fe119f18f83bfb6bfe10ef18f887c01e23ff008a73c7fe1ef0af8b74 -efecef16f8575ed27fe26da0d87db3ec1f6fb0fb569975657b71f8c1ff00050eff0083663fe09e9ff0525fda83c55fb5c7c5df18fed3ff000d3e2b78f7c3fe0e -d1bc7b17c14f88fe01d2fc2be2fd47c0de1fb4f07683e2cd4347f89bf097e2a5ce93e204f04e8de15f08dd5b785753f0f7856e74ef09e95a99f0caf8a750f147 -887c43fabffb057ec53f0b3fe09dbfb277c29fd8ebe0a6bff103c51f0cbe0fff00c275ff0008cebbf14b55f0e6b7e3bbeff8581f127c63f14b59feddd4fc27e1 -4f04f87ee7ecde20f1b6ab67a67f67f8634cf2747b7d3edeebedb7b15cea17601fc617fc14e7fe0bd5fb767ec5dff07046adfb345efed59ff0ad7fe09f1f0d7f -680fd8a3fe16b782bfe1467c1df18ff62fc09f18fc32fd9ebc7ffb407fc54717c1df157c6dd47fb474cf1578ff0056ff008a735ebff18d9fdbfec1e0afb2dc5a -e8b656ff00bfdff11477fc10a3fe8f9bff00359bf6c3ff00e87daf3ffdbd7fe0d7efd817fe0a25fb58fc56fdb17e35fc5dfdaffc2ff137e307fc20bff093685f -0b7c7df05f44f0258ffc2bff0086de0ef85ba37f61699e2cf801e36f105b7da7c3fe09d2af353fed0f13ea7e76b171a85c5afd8aca5b6d3ed3e40ff882a7fe09 -65ff0045f3f6ff00ff00c3a7fb3aff00f42ad007807ecb9fb2e7c76fdb47fe0e4df037fc1717f668f037fc2caff825c7c4aff849bfe10afda7ff00e126f07783 -bfb6bfe10efd82fc43fb21f88ffe2caf8ffc43e15fda1f4efecefda1fc2baf7c3dff0089b7c25b0fb67d83fe12cb0fb5781eeacbc4b71e7fff0007927edebfb2 -77c40fd9efc37ff04fdf08fc56fed7fdaebe077ed7ff0006be297c52f849ff00082fc49b0ff845fc09abfeccff0017f52d3f5dff0084f753f07597c32d6fed16 -5f183e1d4ffd99e1df19eafac45ff0917973e9f14da46bb1e99fd7efec15fb14fc2cff008276fec9df0a7f63af829aff00c40f147c32f83fff0009d7fc233aef -c52d57c39adf8eefbfe1607c49f18fc52d67fb7753f09f853c13e1fb9fb37883c6daad9e99fd9fe18d33c9d1edf4fb7bafb6dec573a85dfe407edebff06bf7ec -0bff000512fdac7e2b7ed8bf1afe2efed7fe17f89bf183fe105ff849b42f85be3ef82fa27812c7fe15ff00c36f077c2dd1bfb0b4cf167c00f1b7882dbed3e1ff -0004e9579a9ff68789f53f3b58b8d42e2d7ec5652db69f6801f207fc1ae3ff000547fd84ff00e184ff00619ff8268ffc2f3ff8cdaff8c99ff8b2bff0acbe317f -d162fda0be3eff00c947ff00857dff000a97fe492ffc559ff23e7fd40bfe465ff89357f4fdfb51fed47f027f62ef813e39fda5ff00697f1cff00c2b5f825f0d7 -fe119ff84d7c6bff0008cf8c7c63fd8bff00098f8c7c3de00f0e7fc539e00f0f78abc5ba8ff68f8b7c55a0e93ff129d06ffec7f6ff00b7dffd974cb5bdbdb7fc -60ff008278ff00c1b31ff04f4ff826d7ed41e15fdae3e1178c7f69ff00897f15bc05e1ff0018e8de028be35fc47f00ea9e15f086a3e39f0fddf83b5ef1669fa3 -fc32f84bf0aee756f103f82759f157846d6dbc55a9f887c2b6da778b355d4c7865bc53a7f85fc43e1efd5ffdbd7f629f859ff0512fd93be2b7ec75f1af5ff881 -e17f865f183fe105ff00849b5df85baaf87344f1dd8ffc2bff00893e0ef8a5a37f616a7e2cf0a78dbc3f6df69f1078274ab3d4ff00b43c31a9f9da3dc6a16f6b -f62bd96db50b400ff304fd87bf6f5fd93be0ff00fc1cb7e35ff82817c45f8adff08efec8babfed7fff000509f8a5a7fc5bff008417e24eaff68f027c71f0a7ed -2da6fc2dd77fe102d0bc1da9fc4d8bfe128bdf881e1183fb327f0645ac689fdafe6788b4fd221b0d4e4b2ff53bfd973f6a3f813fb68fc09f037ed2ff00b3478e -7fe1657c12f895ff000937fc215e35ff008467c63e0efedaff00843bc63e21f00788ff00e29cf1ff0087bc2be2dd3bfb3bc5be15d7b49ff89b68361f6cfb07db -ec3ed5a65d595edc7f303ff1054ffc12cbfe8be7edff00ff00874ff675ff00e855afe97bf62ffd90fe0d7ec17fb2ff00c20fd91fe00597882cfe14fc18f0fdee -8de1e97c59af4fe25f156b5a8ebbe20d63c63e31f16789b58962b5b69fc41e34f1b788fc47e2ed66db44d3342f0ae9ba8eb773a67843c33e18f0b59e8fe1ed30 -03e9fafe00ff00e0ed9ff82a3fec27fb507ecb1a6fec53f02fe39ffc271fb4d7eceffb7fd9ff00c2e2f869ff000acbe317867fe10fff008549f0ebf691f84ff1 -07fe2b2f187c3ef0ff00c3ff00107fc23ff103c41a4681ff0014b78af5bfed5fb5ff006ae89fda5a2dbdd6a50ff7f95fcb17ed0bff00068a7fc136ff00694f8f -bf1c3f68cf1d7c6dfdb7f49f1b7c7ef8c1f12fe35f8c74bf09fc49f80d63e15d37c55f153c69ad78ebc43a7f866c758fd9ab5ed5ecfc3f67abebb796fa35aea9 -ae6b3a8dbe9d1db437daaea37292de4c01f4ff00fc1ae3ff002828fd867feee67ff5b0ff00682afdfeaf983f62ff00d90fe0d7ec17fb2ffc20fd91fe00597882 -cfe14fc18f0fdee8de1e97c59af4fe25f156b5a8ebbe20d63c63e31f16789b58962b5b69fc41e34f1b788fc47e2ed66db44d3342f0ae9ba8eb773a67843c33e1 -8f0b59e8fe1ed33e9fa00f903f6d6fd82bf64eff0082897c2cd03e0a7ed8bf0a7fe1707c32f0bfc40d2be29685e19ff84ebe24fc3ffb0f8ef44f0e78afc27a66 -bbfdb3f0b7c63e09f105cfd9bc3fe36f13e9ff00d9979aadc68f37f69fdaae34f96f6cb4fb9b4fe00ffe0dfcff00838f3c77f03be29d97c14ff829cfed93ff00 -08bfec31f07ff640b6f85bf003c33ff0cf3a3eb7ff0008ef8efe1ff88fe0cf84fe15685fdb3fb3efc0dd5fe306affd91f07f48f1f69ffda7e35d5753d1effecf -f6af11ea17be289745b997fd2eebf922f167fc1985ff0004a1f11f8abc4de21d1fe287edbfe02d235ef106b3ace97e05f09fc5cf83f79e15f05e9daa6a3737d6 -3e13f0cde78ebf67bf1a78daebc3fe1cb69e2d1f46b9f18f8c7c59e2a9f4eb3b697c43e26d77576bcd52e803edff00f88a3bfe0851ff0047cdff009acdfb61ff -00f43ed7f383fb0b7c52f027fc1c75ff0005a1fda8be0a7edefaeffc3647ec31fb37fc3ffdb67e297ec1be19feccd63f679ff8433c09e2bfdab7f675f09f8075 -dfed9f831a7fc0ef8c1e22fb7fc1f8bc37a7ff00667c64d575dd62d76fdab5ad3edbc506fee4fe9fff00c4153ff04b2ffa2f9fb7ff00fe1d3fd9d7ff00a156bf -4fff00e096dff0402fd877fe0927f14fe247c6bfd9e3c43fb407c40f89bf123e1fc3f0b67f137c74f1ef84bc41ff0008af8125f11e97e2cf11685e16d1be1d7c -3af85de1f6ff0084bfc41e1bf05ea1adea7e29d2bc51ac58ff00c219a45af85350f0d596a7e2eb6f13007bff00ed1ffb7aff00c1363fe08cdf0b3f663f829fb4 -27c56ff866ff0086571f0fe4f85bfb37f867fe105f8f5f1837f813f679f0e7c3ff0009c9a17f6cf823c1df147c40bff088787fc49e04d3ff00b4fc79aaaeb1af -fdb7ed4ba86b77b6dac5cc1fc21ffc1223fe0a8ffb09fecbff00f05f4ff829f7edadf1d3e39ffc20ff00b32fed11ff000dabff000a77e25ffc2b2f8c5e26ff00 -84c3fe16dfed9ff0d3e2c7c3eff8a37c1ff0fbc41f103c3fff000907c3ff000feafaff00fc553e14d13fb2bec9fd95adff0066eb5716ba6cdfdce7fc154bfe08 -dbfb23ff00c15f3c2bf07bc3dfb4e6a5f183c27abfc0bf1078b359f879e3af829e32d13c2fe2ab0d3bc7ba768d63e38f09ea167e33f07fc43f04ea9e1ff13dcf -857c13ac5d5cddf839bc55a66a3e0dd2a2f0ef89b45d2354f16e97e25fc61ff882a7fe0965ff0045f3f6ff00ff00c3a7fb3aff00f42ad007f5fb451450014514 -50014514500145145001451450014514500145145001451450015fe20dff000562ff0094a6ff00c14b3fecff00ff006c8ffd68af88d5fedf35fe20dff0562ff9 -4a6ffc14b3fecfff00f6c8ff00d68af88d401fe9f7ff0006b8ff00ca0a3f619ffbb99ffd6c3fda0abf7fabf007fe0d71ff0094147ec33ff7733ffad87fb4157e -ff005001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -4514500145145001451450014514500145145001457c01fb73ff00c151ff00613ff826bffc2aeff86d6f8e7ff0a5ff00e1747fc26dff000ad3fe2d97c62f88df -f092ff00c2b9ff008447fe132ff924df0fbc77fd8ffd8fff0009df853fe43ffd95fda1fdabff0012afb77d8752fb1f9ffec53ff0599ff826c7fc144be29ebff0 -53f63afda43fe1707c4df0bfc3fd57e296bbe19ff853ff001ebe1ffd87c09a2788fc2be13d4f5dfed9f8a5f0bbc13e1fb9fb37883c6de18d3ffb32cf55b8d626 -fed3fb55be9f2d9596a1736801fa7f4515f803ff0011477fc10a3fe8f9bff359bf6c3ffe87da00fdfea2bf303f68ff00f82ccffc1363f648f859fb31fc6bfda1 -3f690ff857ff000cbf6c8f87f27c52fd9bfc4dff000a7fe3d78aff00e16378122f0e7c3ff1649aeff637823e177893c41e10dbe1ff008a5e04d43fb33c79a578 -5f583fdbbf655d3cdee99ac5b69ff207fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f6803f7fa8afc01ff0088a3bfe0851ff47cdff9acdfb61fff0043ed -7dff00fb73ff00c151ff00613ff826bffc2aeff86d6f8e7ff0a5ff00e1747fc26dff000ad3fe2d97c62f88dff092ff00c2b9ff008447fe132ff924df0fbc77fd -8ffd8fff0009df853fe43ffd95fda1fdabff0012afb77d8752fb1807dff457e00ffc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f6bf6fbe13fc52f027c71 -f859f0d3e35fc2dd77fe128f865f183e1ff837e297c3af137f666b1a27fc245e04f881e1cd37c59e11d77fb1bc45a7e91e20d23fb5fc3fabe9fa87f666bba569 -9ac587da3ecba9e9f657b14f6d1007a0515f007ec31ff0547fd84ffe0a51ff000b47fe18a7e39ffc2e8ff852ff00f084ff00c2cbff008b65f18be1cffc235ff0 -b1bfe12eff008437fe4acfc3ef027f6c7f6c7fc209e2bff9007f6aff0067ff00657fc4d7ec3f6ed37ed87edcff00f0547fd84ffe09afff000abbfe1b5be39ffc -297ff85d1ff09b7fc2b4ff008b65f18be237fc24bff0ae7fe111ff0084cbfe4937c3ef1dff0063ff0063ff00c277e14ff90fff00657f687f6aff00c4abeddf61 -d4bec601f7fd15f007ec31ff000547fd84ff00e0a51ff0b47fe18a7e39ff00c2e8ff00852fff00084ffc2cbff8b65f18be1cff00c235ff000b1bfe12eff8437f -e4acfc3ef027f6c7f6c7fc209e2bff009007f6aff67ff657fc4d7ec3f6ed37ed9f007fc451dff0428ffa3e6ffcd66fdb0fff00a1f6803f7fa8afc01ff88a3bfe -0851ff0047cdff009acdfb61ff00f43ed7dfff00b0c7fc151ff613ff0082947fc2d1ff008629f8e7ff000ba3fe14bffc213ff0b2ff00e2d97c62f873ff0008d7 -fc2c6ff84bbfe10dff0092b3f0fbc09fdb1fdb1ff08278affe401fdabfd9ff00d95ff135fb0fdbb4dfb6007dff004579ff00c59f8a5e04f81df0b3e25fc6bf8a -5aeffc22ff000cbe0ffc3ff197c52f88be26feccd635bff8477c09f0ff00c39a978b3c5daeff006378774fd5fc41abff0064787f48d4350feccd0b4ad4f58bff -00b3fd974cd3ef6f6582da5f903f618ff82a3fec27ff000528ff0085a3ff000c53f1cffe1747fc297ff8427fe165ff00c5b2f8c5f0e7fe11aff858dff0977fc2 -1bff002567e1f7813fb63fb63fe104f15ffc803fb57fb3ff00b2bfe26bf61fb769bf6c00fbfe8a2bcffe2cfc52f027c0ef859f12fe35fc52d77fe117f865f07f -e1ff008cbe297c45f137f666b1adff00c23be04f87fe1cd4bc59e2ed77fb1bc3ba7eafe20d5ffb23c3fa46a1a87f66685a56a7ac5ffd9fecba669f7b7b2c16d2 -807a0515f803ff0011477fc10a3fe8f9bff359bf6c3ffe87dafd3ffd8a7f6f5fd93bfe0a25f0b35ff8d7fb1d7c56ff0085c1f0cbc2ff0010355f85baef89bfe1 -05f893f0ff00ec3e3bd13c39e15f166a7a17f637c52f077827c4173f66f0ff008dbc31a87f69d9e9571a3cdfda7f65b7d425bdb2d42dad003ebfa2bf303f6d6f -f82ccffc1363fe09dbf14f40f829fb62fed21ff0a7fe26f8a3e1fe95f14b42f0cffc29ff008f5f103edde04d6fc47e2bf09e99aeff006cfc2df85de36f0fdb7d -a7c41e09f13e9ffd9979aadbeb10ff00667daae34f8acaf74fb9bbf903fe228eff0082147fd1f37fe6b37ed87ffd0fb401fbfd457e00ff00c451dff0428ffa3e -6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed007eff515f883f09ffe0e3cff008231fc71f8a7f0d3e0a7c2dfdb27fe128f89bf -183e207837e16fc3af0cff00c33cfed57a27fc245e3bf881e23d37c27e11d0bfb67c45f03748f0fe91fdafe20d5f4fd3ff00b4f5dd574cd1ec3ed1f6ad4f50b2 -b28a7b98bf6fa800a2bf207f6a3ff82f57fc127bf62ef8ede39fd9a3f697fdab3fe15afc6df86bff0008cffc26be0aff008519fb4978c7fb17fe131f07787bc7 -fe1cff008a8fc01f077c55e12d47fb47c25e2ad0756ff894ebd7ff0063fb7fd82ffecba9daded95bfcff00ff0011477fc10a3fe8f9bff359bf6c3ffe87da00fd -fea2bf207f65cff82f57fc127bf6d1f8ede06fd9a3f668fdab3fe1657c6df895ff000937fc215e0aff008519fb49783bfb6bfe10ef077887c7fe23ff008a8fc7 -ff00077c2be12d3bfb3bc25e15d7b56ff89b6bd61f6cfb07d82c3ed5a9dd59595c7ebf5001457e40fed47ff05eaff824f7ec5df1dbc73fb347ed2ffb567fc2b5 -f8dbf0d7fe119ff84d7c15ff000a33f692f18ff62ffc263e0ef0f78ffc39ff00151f803e0ef8abc25a8ff68f84bc55a0eadff129d7affec7f6ff00b05ffd9753 -b5bdb2b73f65cff82f57fc127bf6d1f8ede06fd9a3f668fdab3fe1657c6df895ff000937fc215e0aff008519fb49783bfb6bfe10ef077887c7fe23ff008a8fc7 -ff00077c2be12d3bfb3bc25e15d7b56ff89b6bd61f6cfb07d82c3ed5a9dd59595c007ebf515f903fb51ffc17abfe093dfb177c76f1cfecd1fb4bfed59ff0ad7e -36fc35ff008467fe135f057fc28cfda4bc63fd8bff00098f83bc3de3ff000e7fc547e00f83be2af096a3fda3e12f15683ab7fc4a75ebff00b1fdbfec17ff0065 -d4ed6f6cadcfd973fe0bd5ff00049efdb47e3b781bf668fd9a3f6acff8595f1b7e257fc24dff00085782bfe1467ed25e0efedaff00843bc1de21f1ff0088ff00 -e2a3f1ff00c1df0af84b4efecef0978575ed5bfe26daf587db3ec1f60b0fb56a77565657001fafd457e20fc59ff838f3fe08c7f03be29fc4bf829f14bf6c9ff8 -45fe26fc1ff881e32f85bf117c33ff000cf3fb55eb7ff08ef8efe1ff0088f52f09f8bb42fed9f0efc0dd5fc3fabff64788348d434ffed3d0b55d4f47bffb3fda -b4cd42f6ca582e65f3ff00f88a3bfe0851ff0047cdff009acdfb61ff00f43ed007eff515f903fb2e7fc17abfe093dfb68fc76f037ecd1fb347ed59ff000b2be3 -6fc4aff849bfe10af057fc28cfda4bc1dfdb5ff087783bc43e3ff11ffc547e3ff83be15f0969dfd9de12f0aebdab7fc4db5eb0fb67d83ec161f6ad4eeacacae3 -ebff00db5bf6f5fd93bfe09dbf0b340f8d7fb62fc56ff853ff000cbc51f1034af85ba1789bfe105f893f103edde3bd6fc39e2bf16699a17f637c2df0778dbc41 -6df69f0ff827c4fa87f69de6956fa3c3fd99f65b8d422bdbdd3edaec03ebfa2bf007fe228eff0082147fd1f37fe6b37ed87ffd0fb47fc451dff0428ffa3e6ffc -d66fdb0fff00a1f6803f7fa8af00fd973f6a3f813fb68fc09f037ed2ff00b3478e7fe1657c12f895ff000937fc215e35ff008467c63e0efedaff00843bc63e21 -f00788ff00e29cf1ff0087bc2be2dd3bfb3bc5be15d7b49ff89b68361f6cfb07dbec3ed5a65d595edc7e607c59ff00838f3fe08c7f03be29fc4bf829f14bf6c9 -ff00845fe26fc1ff00881e32f85bf117c33ff0cf3fb55eb7ff0008ef8efe1ff88f52f09f8bb42fed9f0efc0dd5fc3fabff0064788348d434ff00ed3d0b55d4f4 -7bff00b3fdab4cd42f6ca582e6500fdbea2bcffe13fc52f027c71f859f0d3e35fc2dd77fe128f865f183e1ff00837e297c3af137f666b1a27fc245e04f881e1c -d37c59e11d77fb1bc45a7e91e20d23fb5fc3fabe9fa87f666bba5699ac587da3ecba9e9f657b14f6d17c81fb73ff00c151ff00613ff826bffc2aeff86d6f8e7f -f0a5ff00e1747fc26dff000ad3fe2d97c62f88dff092ff00c2b9ff008447fe132ff924df0fbc77fd8ffd8fff0009df853fe43ffd95fda1fdabff0012afb77d87 -52fb1807dff457e607ec53ff000599ff00826c7fc144be29ebff00053f63afda43fe1707c4df0bfc3fd57e296bbe19ff00853ff1ebe1ff00d87c09a2788fc2be -13d4f5dfed9f8a5f0bbc13e1fb9fb37883c6de18d3ff00b32cf55b8d626fed3fb55be9f2d9596a17369fa7f40051457e20fc59ff00838f3fe08c7f03be29fc4b -f829f14bf6c9ff00845fe26fc1ff00881e32f85bf117c33ff0cf3fb55eb7ff0008ef8efe1ff88f52f09f8bb42fed9f0efc0dd5fc3fabff0064788348d434ff00 -ed3d0b55d4f47bff00b3fdab4cd42f6ca582e6500fdbea2bf007fe228eff0082147fd1f37fe6b37ed87ffd0fb47fc451dff0428ffa3e6ffcd66fdb0fff00a1f6 -803f7fa8afc01ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed7d7ff00b14ffc1667fe09b1ff000512f8a7affc14fd8ebf690ff85c1f137c2ff0ff0055f8 -a5aef867fe14ff00c7af87ff0061f02689e23f0af84f53d77fb67e297c2ef04f87ee7ecde20f1b78634ffeccb3d56e3589bfb4fed56fa7cb6565a85cda007e9f -d15f803ff11477fc10a3fe8f9bff00359bf6c3ff00e87dafdfea0028afc01ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed7eff5001457c01fb73ffc151f -f613ff00826bff00c2aeff0086d6f8e7ff000a5ffe1747fc26dff0ad3fe2d97c62f88dff00092ffc2b9ff8447fe132ff00924df0fbc77fd8ff00d8ff00f09df8 -53fe43ff00d95fda1fdabff12afb77d8752fb1f9ff00ece1ff000599ff00826c7ed6ff000b3f69cf8d7fb3dfed21ff000b03e197ec6ff0fe3f8a5fb48789bfe1 -4ffc7af0a7fc2b9f024be1cf881e2c8f5dfec6f1bfc2ef0df883c5fbbc3ff0b7c77a87f66780f4af146b03fb0becada78bdd4f47b6d4003f4fe8afc01ff88a3b -fe0851ff0047cdff009acdfb61ff00f43ed1ff0011477fc10a3fe8f9bff359bf6c3ffe87da00fdfea2be00fd863fe0a8ff00b09ffc14a3fe168ffc314fc73ff8 -5d1ff0a5ff00e109ff008597ff0016cbe317c39ff846bfe1637fc25dff00086ffc959f87de04fed8fed8ff008413c57ff200fed5fecffecaff0089afd87edda6 -fdb3effa0028a28a002bfc41bfe0ac5ff294dff82967fd9fff00ed91ff00ad15f11abfdbe6bfc41bfe0ac5ff00294dff0082967fd9ff00fed91ffad15f11a803 -fd3eff00e0d71ff94147ec33ff007733ff00ad87fb4157eff57e00ff00c1ae3ff2828fd867feee67ff005b0ff682afdfea0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a00fca0ff0082a97fc11b7f647ff82be7857e0f787bf69cd4be30784f57f817e20f166b3f0f3c75f053c65a2785fc5561a778f74ed1ac7c71e13d42cfc67e0f -f887e09d53c3fe27b9f0af82758bab9bbf07378ab4cd47c1ba545e1df1368ba46a9e2dd2fc4bfe709fb18fc14ff829c7ecd7ff000577fdbebf674ff821dea1e2 -0d5be327c01f107ed4ff00052e754f165d7ecb77de2ad4bf660f857fb4df85bc0b36a1e26befda334ad07e14de7882f3c53a17c25b8d66ebc27a1e8de20b8d46 -4b99b42d2b4ef0dbeb9670ff00aed57f007ff040bff95a6bfe0b51ff00791bff00d78a7c1ba00fe87bfe0915ff000592f87bfb6c78abc45fb04fc57d37e30785 -3fe0a3bfb1d7c1fd0346fdb0b4ef88fe0df867a6f857c7bf197e136a3a1fc19fda7fc59f0c7c4ff03bc61e34f86d75e1ff000e7c769ede06b6920f87d06ada77 -8dfc3fa87c3bf0ceaba0e9fe264f09ff009e1ffc1bd3ff0004bff805ff000566fdb43e277ece7fb4678bfe30782fc13e0bfd983c69f1af4bd53e0a6bfe0bf0e7 -8aae3c55e1cf8adf057c0b63a7ea17de3af87ff11f4897c3f2e91f11f5cb8bab5b7d0ed7517d46d74a9a1d560b682f2cefbfa1efd9bffe346fff0005f4fdbb7f -6d6ff82a4ffc62ff00eccbfb787fc3c2ff00e194be25ff00c96bff0085a9fdabfb67fc06f8b161ff00146fecefff000b6fe20781fed1f0ff005bd2f5ff00f8b9 -1e14f07f95f6afeca9bcbd6a1b8d362f803fe0ca9ff94a6fc7cffb300f8a7ffad15fb2ad007f63bfb6b7fc1bd3fb17feddff0000bf615fd9cfe2efc4efda7fc3 -9e09ff00827d7c1f9be0a7c19d53e1c78d3e14e91e2af1378567f05fc20f02bea1f13afbc4ff00057c61a46b3e201a47c15f0adc2dd785743f05e9c351d43c41 -31d28db5d69d67a57f9e1ffc1bd3ff0004bff805ff000566fdb43e277ece7fb4678bfe30782fc13e0bfd983c69f1af4bd53e0a6bfe0bf0e78aae3c55e1cf8adf -057c0b63a7ea17de3af87ff11f4897c3f2e91f11f5cb8bab5b7d0ed7517d46d74a9a1d560b682f2cefbfd86abfc49bfe097ff03bfe0a5df1fbe3ef8bfc1dff00 -04aed6be30685fb41e9bf07f5ff1378c6f3e0a7ed0ba4fecd7e2a93e0d59f8d3e1fe97e21b6d43c75ac7c4bf8576dab787dfc6dacfc3c96ebc271f886f27bed4 -61d2b585d1ae23d0a5bed3803fa7dff82a97fc19e9e34f857e15f83de21ff824bdb7c60fda5357bcf1078b346f8e5e05f8f9f1b7e01683e2ad274eb8d3b46bef -87de2cf87b797fe06f803e0993c3f6373a778c747f8836dac78c752f153ea3aefc3c97c29e19bcd221f1aea9a37f5bdff055bff822a7ecb1ff000583ff00850b -ff000d2fe3efda03c0ff00f0ceff00f0b47fe10aff008517e2af875e19fed4ff0085b7ff000aebfe124ff84a7fe13ff855f137edbf62ff008565a0ff00627f64 -ff00627d9bed7abfdbff00b4bed167f60fe20bfe1da7ff0007927fd146fdbfff00f16c5e06ff00e8c8aff4fba00ff1e5ff00837a7fe097ff0000bfe0acdfb687 -c4efd9cff68cf17fc60f05f827c17fb3078d3e35e97aa7c14d7fc17e1cf155c78abc39f15be0af816c74fd42fbc75f0ffe23e912f87e5d23e23eb971756b6fa1 -daea2fa8dae95343aac16d05e59df7fa0e7ede3ff05abff8271ffc1087fe19b3f629f1af807f680d63fb1ff67ff09ffc2b3f869f02fc2ba5f8effe159fc09f02 -6ef84ff0bffe129f197c67f8abe04fed8fed8ff8413c47a0689f63f15f8efc627fe104d5f55f1fff0063ff006c785f52f157f2c5ff000725fec7bf043fe0887e -2afd86fc75ff00049e5f8c1fb0cf8dbe3f787ff6adf09fc5ff0018fc14fda63f695b1f1578dfc2be08d47f660d63c35e19d43c43affc5bd7b57b3f0fd9eafaed -fea975a369179a7e9dacea31e957dad5b6a373a06852e9bf2ffedd3f0b7f6b1ff838ebe29fecbbf1aff608d0bfe1b23e26fecdff00f04c0fd89be16fede5e26f -ed3f86dfb3cffc219fb58f8afc47fb4578b3c7da17f637c67d43e07787fc45f6ff001045e24d43fb4fe0de95aefc36b5dbf65d1750b6b23616c403f4ff00fe0c -63ff009ca2ff00dd937fefdc51ff0007ce7fce2ebfeef67ff7d1ebe7ff00f8390bf669f875ff000437ff008634ff008749f88ff680fd83ff00e1a83fe1a23fe1 -a03fe145fed63fb53e95ff000b53fe14a7fc28cff8553ff094ff006d7c64d6fed1ff00083ffc2dbf893fd89f66fb2f95ff000986afe779de645e57a07fc1783e -297813fe0e3af8a7fb15fc14ff0082326bbff0d91f137f66ff0087ff00b5c7c52f8d1e19feccd63f679ff8433c09e2bf11fec97e13d035dfed9fdaab4ff81de1 -ff00117dbfc4113e9ffd99e14d575dd62d76fdaaf74fb6b222e4807e8fdb7c6bff0082337fc1a2fe2ad67f673d2b4ffdb7fe367c64fdaf3c3fe19f8d7e3cd52d -ad7e1bfc48f15689f0cfc0fa8f8b3c0bf0974fd66fb52d57f66bf853a6f87ee3c5337c6ab8f0cdaf82f43f12fc429b511e2c9be276ab69e1b1f08eccfe507fc1 -293fe0d0df88bf16ff00e17d7fc3db3c15fb407ecbff00f08fff00c2aeff00867fff008517f1dbf658f107fc271fdabff0b17fe16b7fc253fd8ba5fed11f64ff -008467fb37e1b7f627da7fe10ffb47fc241abf93ff000907932ff627807fc1eadff294df807ff6601f0b3ff5a2bf6aaaff004fba00fe30be2cff00c1953fb02f -fc2acf897ff0a2fe3e7ed7ff00f0bb7fe15ff8cbfe14effc2d9f8a7f05ff00e1567fc2d3ff00847352ff00857dff000b2ffe10ff00d957fe12dff857ff00f096 -ff00647fc265ff0008b7fc547ff08e7f697f627fc4cfecb5ec1ff06a9ffc127ff6daff0082687857f6daf10feda3f0e3c3ff0008f57f8f9e20f805a3780bc0b6 -df113c0ff10fc54da77c1cd3be2f5f6bde2cd66f3e196b9e31f04e9be1fd72e7e2f699a3f866d97c6373e2a9b51f0b78b25d73c33a0e90be17d53c51fd6ed140 -1fc21ffc1d03fb7aff00c149fc21fb7d7c22ff00825ffec75f15bfb3be197edd1fb207807e16ebbf03bfe105f80b77ff000b47c77fb4dfc68f8fff00b3d6a7a1 -7fc2cbf8a5e0eb9f107827fe136f0fdb7863c21fda767f103c23a3f86f67f6fdbea1a05eb6a1ad37c41ff0467fda760ff83637e3efed0dfb39ff00c15d3e0bfc -60f835e36fdb37c3ff00b2578e7c05aa7c389fe0d7c72f0af817e19f84bc69fb4af8175ef893f13afbe197c60d7b57b3f0fd9eafaedf5c2e87e04d0fc7ff0010 -aeb4ef0a78826b5f04cd7371e17b3f12faff00fc1c9bf14bc09f03bfe0e47ff82517c6bf8a5aeffc22ff000cbe0ffc3ffd85be297c45f137f666b1adff00c23b -e04f87ff00b797c75f1678bb5dfec6f0ee9fabf88357fec8f0fe91a86a1fd99a1695a9eb17ff0067fb2e99a7dedecb05b4bf903ff0740fedebfb277fc144bf6f -af845f1aff0063af8adff0b83e19785ff640f00fc2dd77c4dff082fc49f87ff61f1de89f1a3e3ff8b353d0bfb1be29783bc13e20b9fb3787fc6de18d43fb4ecf -4ab8d1e6fed3fb2dbea12ded96a16d6801feb755fc517fc17f3f6dcfdb0acffe0aeffb18ff00c127bc0bfb417883e18fec5fff000505f83ffb3b7c14fda4fc11 -e13f87bf03357f156bde15fdabff0069bf8cbfb36fc62d43c33f103e247c29f1ef8a7c27e20d53e14a59e91a35d6977eba7685a8e9f6dad58e9435196fa6bcfe -d76bf187fe0ab5ff000493fd9e3f6d4f0afc51fda9747f82be20f167fc1477e11fecc1e36f0cfec4ff0015fc27f1e7e2dfc1cf157817e32f80b4ef88bf113f66 -fb9f0cdc7867e2d7c3cf86da5f883c31f1dbc551789346f1678c6d560b2d46e6d9fc43acae83a5dbc76401f941ff001054ff00c12cbfe8be7edfff00f874ff00 -675ffe855af1ff0080ff00f04bff00f82d77fc1267f6f3f865fb39ff00c133bc5fe20f1a7fc11a3c69fb4ffecfff001afe32ea9e39d7ff0062af11fc4cb7f0af -88dfe137817f6a7d3fe24df7c41f87ff000e3e2b45e208bc2df0e358b8d0ed7e0368775a727c3dbaf04cde18d567f8b33f8c2cec7f187fe1da7ff07927fd146f -dbff00ff0016c5e06ffe8c8afdfeff008226ff00c153b58fd8ff0046d43fe0971ff05a4fda87e205a7fc14d2d3f6bfd0fe16fc26f86bf14a0f1dfed11e3bd43c -09fb447813e0478bfe08e85aefed1df0ab40f8a7f0ff00c47ff091fc40f8a7e29feccd4fe227c62d4b58f0568fa969fe19d6750f0cf82bc33e1cd234500f1fff -0082fe7fc1137f6c2ff829a7fc15dff631f895e05f839e20f11fec5f6bf07ff676f829fb49fc5ff09fc57f819e0bf157c3df0ac1fb4dfc65d7fe316a1e19f0d7 -c48f162f8a754f10784fe14f8f6cfc51a35d697f0e7c69a75eea33db5858e95e23d46d6fb421fcf0ff00c14e7fe08a9fb2c7ec5dff0005a0ff00827b7fc13a3e -16f8fbf680d7fe097ed65ff0c9dff0b17c53e3ff00157c3ad53e29e8bff0bdff006adf1f7c0bf177fc215adf877e157857c25a77f67784bc2ba7ea3e1cfeddf0 -3f88fec7e239af6ef53fed8d3248348b7ff57bafe00ffe0be9ff002b4d7fc115ff00ef1c9ffaf14f8c9401f4ff00ed0bff0006617ec2de1cf805f1c3c43fb39f -c50fdb7fc7bfb41e83f07fe25eb3f027c0be2cf8b9fb3759f857c69f1974bf05eb57df0c3c27e26bcbafd9efc176d6be1ff11f8da0d0f47d66e6e3c63e13820d -3af2e659bc4da146adaa5afe50fc1cff008357eebe1fff00c12cbf6eafdab3fe0a2fa3fed01f003f6bafd9d7e1ff00ed39f14be0efc31f007c63fd9c7c59f0b3 -c51e04f847fb3ae97f11fe1f6bbe355f07f86fe305edc7f6dfc4db2f1c787fc47a669df137c29ac4be1cd1acc5a69fa14d736be20d4ffd2eebe00ff82b17fca2 -cbfe0a59ff006601fb647feb3afc46a00fe28bfe0d3fff008236fec8ff00b5a7c3dd17fe0a4bf19b52f8c1ab7c64fd953f6dfd5746f86bf0fb46f19689a07c1a -bed47e15fc33f829f14fe1cf8b3c59a4d8783d7e226a9e20f09fc44f1ebf8a6dadb4ef899a37857589fc2de19d23c4fe19d73c36fe27d17c4dfe8b95fc817fc1 -953ff28b2f8f9ff67fff0014ff00f59d7f655afebf6803f883ff0083a3bfe08a9fb2c7fc289fdb9bfe0b17ff0009f7ed01ff000d35ff0018cdff001437fc255f -0ebfe144ff00c8e3fb3efecb7ff22cff00c2aaff008581ff0024ff00fe271ff253ff00e471ff008987fc817fe29eafca0ff837a7fe0de9fd8bff00e0acdfb17f -c4efda33f68cf89dfb4ff82fc6de0bfda7fc69f0534bd2fe0a78d3e14f873c2b71e15f0e7c29f82be3ab1d4350b1f1d7c15f88fabcbe209757f88fae5bdd5d5b -eb96ba73e9d6ba5430e9505cc179797dfd6eff00c1d1dff2828fdb9bfeed9bff005b0ff67daff3e3ff00825ffec89ff05f7f8fdf00bc5fe31ff825778b3f69fd -0bf67cd37e306bfe19f18d9fc14fdb77c37fb35f8564f8cb67e0bf87faa7886e750f02eb1f1f7e15dceade207f04eb3f0f22baf1647e1ebc82fb4e874ad1d759 -b8934296c74e00fe9fbf623ff8372bf687ff00826d7fc1c03fb3efc76f80fe17f107c4bff8271780bc3ff10b59b1f8dfe39f8b3f09354f899e10d47c73fb26fc -56f867aa784fe24f842cec3e15f89356f103fc64d64b68773f0dbe187887c2b6df0f7c59e09bad5bc4cdaf69fe3ab7f0f7f7395fc21ffc119ff61eff008396fe -0fff00c149ff00670f88bff0502f1afed7fabfec8be1dff85c1ff0b6f4ff008a5ff0509f0a7c71f025c7f6bfc05f8a3a1780ff00b77e16e9bfb4b7c40bdf1479 -5f13753f064fa6793e11d5ff00b13588b4ff001149f6087489353b2feef2803f883ff83a3bfe08a9fb2c7fc289fdb9bfe0b17ff09f7ed01ff0d35ff18cdff143 -7fc255f0ebfe144ffc8e3fb3efecb7ff0022cffc2aaff8581ff24fff00e271ff00253ffe471ff8987fc817fe29eadfff0083563fe08dbfb23e97fb3c7ec8dff0 -57dbed4be30788ff006a3f11f87ff691d1b47f0f6b3e32d120f835e02d460f8b7f177f67c97c59e13f0a787bc1fa0f8a6f3c4179f0a741d53c3b736de3af1d78 -d3c2ab3f8d3c4dadd9f866d75cb5f076a3e13fd5ff00f83a3bfe5051fb737fddb37feb61fecfb47fc1ae3ff2828fd867feee67ff005b0ff682a00fc81ff83a3b -fe08a9fb2c7fc289fdb9bfe0b17ff09f7ed01ff0d35ff18cdff1437fc255f0ebfe144ffc8e3fb3efecb7ff0022cffc2aaff8581ff24fff00e271ff00253ffe47 -1ff8987fc817fe29eadfff0083563fe08dbfb23e97fb3c7ec8dff057dbed4be30788ff006a3f11f87ff691d1b47f0f6b3e32d120f835e02d460f8b7f177f67c9 -7c59e13f0a787bc1fa0f8a6f3c4179f0a741d53c3b736de3af1d78d3c2ab3f8d3c4dadd9f866d75cb5f076a3e13fd5ff00f83a3bfe5051fb737fddb37feb61fe -cfb47fc1ae3ff2828fd867feee67ff005b0ff682a00fe687fe0ec0ff008236fec8ff00b25fc3dd6bfe0a4bf06752f8c1a4fc64fdaaff006dfd2b46f895f0fb59 -f19689affc1ab1d47e2a7c33f8d7f14fe2378b3c27a4dff83dbe22697e20f167c44f01278a6e6db51f899acf857479fc53e26d23c31e19d0fc369e18d17c33d0 -7fc119ff00e0d7efd817fe0a25ff0004d8fd9c3f6c5f8d7f177f6bff000bfc4df8c1ff000b83fe126d0be16f8fbe0be89e04b1ff00857ff1ebe28fc2dd1bfb0b -4cf167c00f1b7882dbed3e1ff04e9579a9ff0068789f53f3b58b8d42e2d7ec5652db69f69fa7ff00f07ab7fca2cbe01ffd9fff00c2cffd675fdaaabe80ff0082 -0afed47f027f62eff836cbf653fda5ff00697f1cff00c2b5f825f0d7fe179ffc26be35ff008467c63e31fec5ff0084c7f6f4f8c5e00f0e7fc539e00f0f78abc5 -ba8ff68f8b7c55a0e93ff129d06ffec7f6ff00b7dffd974cb5bdbdb700fc20ff0082b97fc1237e127fc1b91f093f678ff8291ffc1377f687fda7f49fda8f49fd -a7ec7e0a787bc43f1aefbf678f8a9e15f0f7857e2a7ecf1fb45c5e31d434ff00074bfb3a683a45e7882f348d09b41b5bad79759d3ac34ed6755b9b6d2935c4d1 -f58d27e60fda8ffe0ab3f177fe0e14fd817f619ff825e782be127c40f8a7ff000554b7fda03fe16978ff0059b2d27e09fc1ff813f15747f82ff05ff6a2b6bcd7 -7c39e26f11fc65d22cb48f881abfc32d5fc39e36f1ae997be10f875e04b8f18d978fec7c01a7e89a51f05784ef3eff00f851ff0004c6ff00828e7fc14e7fe0a7 -fa6fc62fdb7349fda03f699ff820ff00c77fda03f68efda8fe0ce91e3ffdb5f548fe164bf027e27f803e38f8a7f62df1cf82be05e8ff00b42e87f1b7e146fd33 -c7df0ced7c39e19b0f87be0af18f817c39af5ef83fc63e1ef0e6823c5ba243f981ff00047bf85be04f81dff0768c5f053e16e85ff08bfc32f83ffb5fff00c14c -3e16fc3af0cff69eb1adff00c23be04f87ff0008ff006b7f09f84742fed9f116a1abf88357fec8f0fe91a7e9ff00da7aeeaba9eb17ff0067fb56a7a85edecb3d -cca01fbbdfb3d7fc1985fb0b788fe017c0ff0010fed19f143f6dff00017ed07af7c1ff00869acfc76f02f84fe2e7ecdd79e15f05fc65d53c17a2df7c4ff09f86 -6f2d7f67bf1a5b5d787fc39e369f5cd1f46b9b7f18f8b209f4eb3b6961f136bb1b2ea975f307fc149ffe0cdbf077c3ff00d9c57c5dff0004bcf127ed01f1c7f6 -8dd23e20785ffb67e16fed09f197e04e91a3f8a3e165fdaeb5a6789bfe103d42dbe107c1ff000fdbfc40d13c417be10f112ffc26df117c3be1c97c09a478ee0b -1fed7f19cbe13d0b53feff0028a00fe50bfe0d76fdb5be16691fb3fbff00c1193c6da07c40f87ffb73ff00c13dff00e1a33fe1797847c45a5787355f026afe57 -ed7ff13e0f1bff00c2baf88be04f15f8cbc3faf7fc2b0f107c44f037853c5dfdb8fe17fed7d63c4705efc36ff84ffc2fa66bfe22d23f103fe0e9aff822a7ecb1 -fb177c2cf11ffc145fe16f8fbf680d7fe36fed65fb7feaff00f0b17c2de3ff00157c3ad53e1668bff0bdfc39fb42fc74f177fc215a27877e157857c5ba77f677 -8b7c2ba7e9de1cfeddf1c788fec7e1c9af6d353fed8d4e48357b7fa03fe0817ff2b4d7fc16a3fef237ff00af14f8375f7fff00c1eadff28b2f807ff67fff000b -3ff59d7f6aaa00fca0fd857fe0a81ff05aeff824cfc25fd883f68bff008298f843c41e34ff00823478d3e0ff00c37f829f06b4bf03681fb15788fe265bf857c4 -7fb3c6a7e3afd96350f86d63f0fbe207c38f8ad178822f0b7c38d1edf5cbaf8f3ae5d69c9f0f6ebc6d0f89f4a9fe2ccfe0fbcb1e83fe0f44f8a5e04f8e3f0b3f -e08e1f1afe16ebbff0947c32f8c1f0ff00f6a7f8a5f0ebc4dfd99ac689ff000917813e207873f636f1678475dfec6f1169fa4788348fed7f0feafa7ea1fd99ae -e95a66b161f68fb2ea7a7d95ec53db45f7ff00fc147ff60afdac7fe0a25ff06dc7fc11dbe0a7ec75f0a7fe1707c4df0bfc3fff00827c7c52d77c33ff0009d7c3 -6f87ff0061f02689fb06f8e7c27a9ebbfdb3f14bc63e09f0fdcfd9bc41e36f0c69ff00d9967aadc6b137f69fdaadf4f96cacb50b9b4fe60bfe0b59fb7afec9df -b5bfec0bff00042bf829fb3dfc56ff008581f137f637fd902f3e16fed21e19ff008417e24f853fe15cf8ee5f82ff00b20784e3d0bfb67c6fe0ef0df87fc5fbbc -41f0b7c77a7ff69f80f55f1468e3fb0bed4da80b2d4f47b9d4003fb3dff8378bfe08a9fb2c7ec5df0b3f672ff828bfc2df1f7ed01aff00c6dfdacbf600f843ff -000b17c2de3ff157c3ad53e1668bff000bdfc39f04fe3a78bbfe10ad13c3bf0abc2be2dd3bfb3bc5be15d3f4ef0e7f6ef8e3c47f63f0e4d7b69a9ff6c6a7241a -bdbff4fb5f007fc1277fe5165ff04d3ffb300fd8dfff0059d7e1cd7dff0040057f9f1f823fe0d78f8dff00b62ffc15dffe0a1ff12bf6ff00f877f183e09fec5f -f153e307ed6bf1afe04fc5ff00829f1b3f66a7f1578dfc55e38fda6ed35ff861a7ea1e1aba3f19fc53a2787fc4bf0a7c4fe33f145d5af883e1cf86b51d3751d2 -74ab0d5b55d1b512da16abfe83945007f8f2ff00c1bd3ff04bff00805ff0566fdb43e277ece7fb4678bfe30782fc13e0bfd983c69f1af4bd53e0a6bfe0bf0e78 -aae3c55e1cf8adf057c0b63a7ea17de3af87ff0011f4897c3f2e91f11f5cb8bab5b7d0ed7517d46d74a9a1d560b682f2cefbf6fbfe0aa5ff00067a78d3e15f85 -7e0f7887fe092f6df183f694d5ef3c41e2cd1be397817e3e7c6df805a0f8ab49d3ae34ed1afbe1f78b3e1ede5ff81be00f8264f0fd8dce9de31d1fe20db6b1e3 -1d4bc54fa8ebbf0f25f0a7866f34887c6baa68df307fc1953ff294df8f9ff6601f14ff00f5a2bf655aff004fba00ff00383ff82adffc1a1bf117e127fc285ff8 -749f82bf680fda83fe120ff85a3ff0d01ff0bd3e3b7ecb1e1fff00841ffb2bfe15d7fc2a9ff845bfb6b4bfd9dfed7ff0937f697c49fedbfb37fc261f67ff0084 -7f48f3bfe11ff3a2fedbfd00ff00835b7fe1c79ff0d4ff00b47ffc3bc7fe1bff00fe1a6bfe19fecbeddff0dcff00f0a9bfe484ff00c2c5f0c7fc2c4ff855dff0 -ce9ff16fff00e4a07fc298ff0084dbfe1697fc563ff228ff00c2a8ff00892ffc2ddafedf2bfc59be3e7ec7bff0569ff8221f8abe1ef8ebe252fc60fd867c6df1 -fbc3ff00107c27e08f18fc14fda63c2363e2af1bf857c11a8fc3cd63e20786750f10fecdbf16f5ed5ecfc3f67abebbf0e754bad1bc5179a7e9dacea31e957d61 -6da8dce8134ba6807e8f7fc1b7bff0454fd963fe0b07ff000d97ff000d2fe3efda03c0ff00f0ceff00f0ceff00f0857fc28bf157c3af0cff006a7fc2dbff0085 -e7ff000927fc253ff09ffc2af89bf6dfb17fc2b2d07fb13fb27fb13ecdf6bd5fedff00da5f68b3fb07fabdd7e30ffc105ff62ffd983f652ff826dfecade3af80 -1f083c3ff0f3c6dfb55fecc1fb2c7c77fda0fc636d7be20d7fc55f137e26789fe03783358d4354d67c43e2bd635ed5ecfc3f67abebbe23d53c33e00d12f34bf8 -7be0cd47c53e2cbef08785b43b9f1578865d4ff67a803fca13fe0e42ff00822a7ecb1ff047cff8634ff8668f1f7ed01e38ff008688ff008688ff0084d7fe17a7 -8abe1d789bfb2ffe1527fc28cff846ff00e116ff008403e157c32fb17db7fe166ebdfdb7fdadfdb7f69fb2691f60fecdfb3de7dbff0077fe01ff00c1c2dfb727 -fc1267c55f10bf673ff838b7e18fc60f1a7c64f1a787fe1f7c6bfd9c354f807e0bfd8e7c47e2ab7f867e23d47e21f817c5da7fc42bef83ff001abe1c7c298bc3 -f178a7e1c5b5c7c3eb5b3d0eebe2126a375f10e6f19eab3f86e7f8756763e3ff00f07ce7fce2ebfeef67ff007d1ebd03fe0e81ff0082337fc149ff00e0a25fb7 -d7c22f8d7fb1d7ecdfff000b83e19785ff00640f00fc2dd77c4dff000b83e02fc3ff00b0f8ef44f8d1f1ff00c59a9e85fd8df14be28f827c4173f66f0ff8dbc3 -1a87f69d9e9571a3cdfda7f65b7d425bdb2d42dad003cfff00e0f9cff9c5d7fddecffefa3d7f4bdfb037fc106ff60cff00827a7c02fdab3f673f86b69f183e2a -7827f6d4f0fcde06fda2354f8d7f1152f7c55e31f866fe0bf157816dbe1b69f7df0ab40f84da47853c3fa7e91f107e235c5aeb9e17d0f49f88526a3e3ad566bf -f1b5edb68de0bb3f0b7f145ff075affc151ff613ff0082947fc3067fc314fc73ff0085d1ff000a5ffe1a8ffe165ffc5b2f8c5f0e7fe11aff00858dff000cebff -00086ffc959f87de04fed8fed8ff008413c57ff200fed5fecffecaff0089afd87edda6fdb3fd3ee803fc797fe0e16ff825ff00c02ff824cfeda1f0c7f673fd9c -fc5ff183c69e09f1a7ecc1e0bf8d7aa6a9f1af5ff05f88fc556fe2af11fc56f8d5e05bed3f4fbef02fc3ff00871a445e1f8b48f871a1dc5adadc68775a8a6a37 -5aacd36ab3db4f676763fd5efed0bff06617ec2de1cf805f1c3c43fb39fc50fdb7fc7bfb41e83f07fe25eb3f027c0be2cf8b9fb3759f857c69f1974bf05eb57d -f0c3c27e26bcbafd9efc176d6be1ff0011f8da0d0f47d66e6e3c63e13820d3af2e659bc4da146adaa5afe30ffc1eadff00294df807ff006601f0b3ff005a2bf6 -aaa3fe1da7ff0007927fd146fdbfff00f16c5e06ff00e8c8a00fe87bfe0d53ff00824ffedb5ff04d0f0afedb5e21fdb47e1c787fe11eaff1f3c41f00b46f0178 -16dbe22781fe21f8a9b4ef839a77c5ebed7bc59acde7c32d73c63e09d37c3fae5cfc5ed3347f0cdb2f8c6e7c5536a3e16f164bae786741d217c2faa78a3fadda -fe687fe0dc6f81dff05a3f803e15fdacbc1dff000571d6be306bba46a5e20f83be26fd9c6f3e35fed0bf0e7f694f1547a8de69df11f4bf8d56da7f8ebc35f12f -e2a78db49f0fa5b68df07e5b5f09f8abc4367e15b1d466d5758f0468d6fabebbe3fbed47fa5ea0028a28a002bfc41bfe0ac5ff00294dff0082967fd9ff00fed9 -1ffad15f11abfdbe6bfc41bfe0ac5ff294dff82967fd9fff00ed91ff00ad15f11a803fd3effe0d71ff0094147ec33ff7733ffad87fb4157eff0057e00ffc1ae3 -ff002828fd867feee67ff5b0ff00682afdfea0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00f803f6e7ff82a3fec27ff0004d7ff00855dff000dadf1cffe14bffc2e -8ff84dbfe15a7fc5b2f8c5f11bfe125ff8573ff088ff00c265ff00249be1f78eff00b1ff00b1ff00e13bf0a7fc87ff00b2bfb43fb57fe255f6efb0ea5f63fe00 -ff00e0911ff0547fd84ff65fff0082fa7fc14fbf6d6f8e9f1cff00e107fd997f688ff86d5ff853bf12ff00e1597c62f137fc261ff0b6ff006cff00869f163e1f -7fc51be0ff0087de20f881e1ff00f8483e1ff87f57d7ff00e2a9f0a689fd95f64fecad6ffb375ab8b5d366fee73fe0aa5ff046dfd91ffe0af9e15f83de1efda7 -352f8c1e13d5fe05f883c59acfc3cf1d7c14f19689e17f155869de3dd3b46b1f1c784f50b3f19f83fe21f82754f0ff0089ee7c2be09d62eae6efc1cde2ad3351 -f06e9517877c4da2e91aa78b74bf12fe30ff00c4153ff04b2ffa2f9fb7ff00fe1d3fd9d7ff00a156803f6fbf68ff00d82bfe09b1ff000599f859fb31fc6bfda1 -3e14ff00c3487c32b7f87f27c52fd9bfc4dff09d7c7af83fb3c09fb437873e1ff8b24d77fb1bc11e31f85de206ff0084bfc3fe1bf026a1fd99e3cd29b58d03ec -5f655d3f44bdb9d62da7fe10ff00e0ca9ff94a6fc7cffb300f8a7ffad15fb2ad7fa4dfecf5f053c2bfb35fc02f81ff00b39f81750f106ade09f803f07fe1a7c1 -4f076a9e2cbad3afbc55a97857e15f82f45f02f87b50f135f68fa5683a45e7882f348d0acee359bad2f43d1b4eb8d464b99ac74ad3ad9e2b387f307fe09c5ff0 -41bfd833fe096bf1f7e36fed19fb305a7c607f1b7c65f0fea7e06b1d2fe23fc454f16f857e10fc33d67c6969e3ad53e1b7c31b1b3d0341d5ef3c3f79abe85e07 -b76d73e2d6b9f153e2141a77803c3f0da78dadee756f1d5e78c003e9ff00db9ffe0a8ffb09ff00c135ff00e1577fc36b7c73ff00852fff000ba3fe136ff8569f -f16cbe317c46ff008497fe15cffc223ff0997fc926f87de3bfec7fec7ff84efc29ff0021ff00ecafed0fed5ff8957dbbec3a97d8ff00cd13fe0d7efdbd7f64ef -f8276fedf5f177e35fed8bf15bfe14ff00c32f147ec81e3ef85ba1789bfe105f893f103edde3bd6fe347c00f16699a17f637c2df0778dbc416df69f0ff00827c -4fa87f69de6956fa3c3fd99f65b8d422bdbdd3edaeff00d0f3fe0ab7ff000454fd963fe0b07ff0a17fe1a5fc7dfb40781ffe19dffe168ffc215ff0a2fc55f0eb -c33fda9ff0b6ff00e15d7fc249ff00094ffc27ff000abe26fdb7ec5ff0acb41fec4fec9fec4fb37daf57fb7ff697da2cfec1f901ff001054ff00c12cbfe8be7e -dfff00f874ff00675ffe855a00f803fe0b9dff0007477fc9aeff00c3953f6e6ffa2dbff0d2dff18cdff648ff00e14dff00c9d8fecfbff6557fe441ff00b9abfe -65cafeff002bf902ff00882a7fe0965ff45f3f6fff00fc3a7fb3afff0042ad7f5fb401fc817fc1d6bff04b8fdbb3fe0a51ff000c19ff000c53f033fe1747fc29 -7ff86a3ff8597ff1737e0efc39ff00846bfe1637fc33affc21bff2567e20f813fb63fb63fe104f15ff00c803fb57fb3ffb2bfe26bf61fb769bf6cf803fe0c63f -f9ca2ffdd937fefdc57f7f95f981ff0004d9ff0082437ec6dff04a6ff8686ff864bd17e2069dff000d25f1034cf1978bbfe13ff1ddf78d3fe11af0e7857fe122 -ff008575f09fc15e7dad87d97e1ffc35ff0084c7c63ff08e6a5e26ff0084abe29eb5ff000935effc2c3f897e38fecef0eff62807a07edcff00f04b8fd84ffe0a -51ff000abbfe1b5be067fc2e8ff852ff00f09b7fc2b4ff008b9bf18be1cffc235ff0b1bfe111ff0084cbfe4937c41f027f6c7f6c7fc209e14ff90fff006aff00 -67ff00657fc4abec3f6ed4bed9fc01ff00c1953ff294df8f9ff6601f14ff00f5a2bf655aff004fbafc41ff00825b7fc100bf61dff8249fc53f891f1aff00678f -10fed01f103e26fc48f87f0fc2d9fc4df1d3c7be12f107fc22be0497c47a5f8b3c45a1785b46f875f0ebe17787dbfe12ff0010786fc17a86b7a9f8a74af146b1 -63ff000866916be14d43c3565a9f8badbc4c01efff00b6b7fc119bfe09b1ff000512f8a7a07c6bfdb17f66ff00f85c1f137c2ff0ff004af85ba1789bfe1707c7 -af87ff0061f02689e23f15f8b34cd0bfb1be16fc51f04f87ee7ecde20f1b789f50fed3bcd2ae3589bfb4fecb71a84b6565a7db5a7e20fec31ff0547fdbb3fe09 -afff000b47fe2280f8e7ff000a5ffe1747fc213ff0c3dff16cbe0efc46ff008497fe15cffc25dff0d2dff28f6f87de3bfec7fec7ff0084efe007fc95dfecafed -0fed5ff8a07eddf61f1afd8ffafdafc81ff82adffc1153f658ff0082c1ff00c285ff008697f1f7ed01e07ff8677ff85a3ff0857fc28bf157c3af0cff006a7fc2 -dbff008575ff000927fc253ff09ffc2af89bf6dfb17fc2b2d07fb13fb27fb13ecdf6bd5fedff00da5f68b3fb0007cfff00f11477fc10a3fe8f9bff00359bf6c3 -ff00e87da3fe228eff0082147fd1f37fe6b37ed87ffd0fb5f007fc4153ff0004b2ff00a2f9fb7fff00e1d3fd9d7ffa1568ff00882a7fe0965ff45f3f6fff00fc -3a7fb3afff0042ad007807fc1153f65cf813ff000711fecb1e3efdb5bfe0b17e06ff0086c0fda6be17fed01e2afd973c0df12ffe126f18fecfff00d87f027c15 -f0ebe157c58f0cf81bfe10dfd973c43f04be1fea7fd99f103e36fc4ed7ff00e126d63c29a878c6f7fe126fecad43c4377a2e8be1ed3749f3ff00f82c37ec15ff -0006bbff00c13b7e167c77f829e22f853ff0a7ff006e7f147ec81f13fe297ecb1e19ff0084ebfe0a19f103edde3bd6fc39f13bc27f03f5dfed9b1f18f8dbe0fd -b7da7e3078267d3ffb33e22eab6fa3c3fd99f6af1769f1785ef52e6eff00a9dff825ff00fc12ff00e017fc1267e0178bff00673fd9cfc5ff00183c69e09f1a7c -60d7fe35ea9aa7c6bd7fc17e23f155bf8abc47e0bf87fe05bed3f4fbef02fc3ff871a445e1f8b48f871a1dc5adadc68775a8a6a375aacd36ab3db4f676763f30 -7fc1527fe0805fb0effc15b3e29fc37f8d7fb43f887f680f87ff00137e1bfc3f9be16c1e26f817e3df09787ffe12af0245e23d53c59e1dd0bc53a37c45f875f1 -47c3ebff000887883c49e34d4344d4fc2da5785f58beff0084cf57b5f15ea1e25b2d33c236de1900fc01ff0083763fe0e3cf1dfc71f8a7f15fe0a7fc1567f6c9 -ff0084a3e26fc60f881fb307c2dfd893c33ff0cf3a3e89ff0009178efe20788fe25784fc6da17f6cfece1f03748f0fe91fdafe20d5fe0d69ff00da7f16f55d33 -47b0fb47dab49d42caca2f155cc5efff00f05d0ff82ccfed63ff0004edff0082d0fec19f053c3bfb487fc29ffd863c51f0ff00f65df8a5fb53f867fe14ff00c3 -6f881f6ef026b7fb56fc5cf09fc70d77fb66fbe1778dbe305b7da7e0ff008260d3ff00b33e1d6ab6fac43fd99f6af08e9f178a2f5ee6efea0fd9ebfe0d14ff00 -826dfecd7f1f7e07fed19e05f8dbfb6feade36f803f183e1a7c6bf07697e2cf893f01afbc2ba978abe15f8d345f1d787b4ff001358e8ff00b35683abde787ef3 -57d0acedf59b5d2f5cd1b51b8d3a4b986c755d3ae5e2bc87ebff00f82a07fc1bd3fb17ff00c159be3ef843f68cfda33e277ed3fe0bf1b782fe0fe81f0534bd2f -e0a78d3e14f873c2b71e15f0e78d3e2078eac750d42c7c75f057e23eaf2f8825d5fe23eb96f75756fae5ae9cfa75ae950c3a5417305e5e5f0073ff00f11477fc -10a3fe8f9bff00359bf6c3ff00e87dafe606eff65cf8edff000572ff008382349ff82b67fc13d3c0dff0d05ff04f8f00fedfff00b057fc25bfb407fc24de0ef8 -51fd93ff000ce7f0cbf63ed6be32ff00c5a9f8dde21f86bf1b6fff00e10ed32d67b9ff008967c36bcff84876793e15fedcb86489bf5fff00e20a9ff82597fd17 -cfdbff00ff000e9fecebff00d0ab5fbfdff04d8ff826c7ece3ff0004adfd9c5bf666fd999be206a3e12d47e2078a3e2978b3c59f14bc516be2af1df8dbc77e2a -b5d1746b9d775db9d1b45f0af84b4efecef097857c1fe0ed334cf07783fc2ba38d1fc2ba7ea3a8e9fa8f8b751f13789b5e00faff00e2cfc52f027c0ef859f12f -e35fc52d77fe117f865f07fe1ff8cbe297c45f137f666b1adffc23be04f87fe1cd4bc59e2ed77fb1bc3ba7eafe20d5ff00b23c3fa46a1a87f66685a56a7ac5ff -00d9fecba669f7b7b2c16d2ff9a27fc15dff00e0a8ff00b09fed41ff0005f4ff008260fedadf02fe39ff00c271fb32feceff00f0c57ff0b8be25ff00c2b2f8c5 -e19ff843ff00e1527ed9ff0012fe2c7c41ff008a37c61f0fbc3ff103c41ff08ffc3ff10691afff00c52de14d6ffb57ed7fd95a27f696b56f75a6c3fe937fb42f -c14f0afed29f00be387ece7e3ad43c41a4f827e3f7c1ff00897f053c63aa784eeb4eb1f1569be15f8a9e0bd6bc0be21d43c337dac695af69167e20b3d235dbcb -8d1aeb54d0f59d3adf518eda6bed2b51b6496ce6fe58bfe20a9ff82597fd17cfdbff00ff000e9fecebff00d0ab401fd1f7ec53fb7afec9dff0512f859aff00c6 -bfd8ebe2b7fc2e0f865e17f881aafc2dd77c4dff00082fc49f87ff0061f1de89e1cf0af8b353d0bfb1be29783bc13e20b9fb3787fc6de18d43fb4ecf4ab8d1e6 -fed3fb2dbea12ded96a16d69f981ff0005dfff0082a3fec27fb2ff00ecb1fb617ec53f1d3e39ff00c20ffb4d7ed11fb007ed05ff000a77e1a7fc2b2f8c5e26ff -0084c3fe16dfc3af8bff0009fe1f7fc565e0ff0087de20f87fe1ff00f8483e20787f57d03fe2a9f15e89fd95f64fed5d6ffb3745b8b5d4a6fbff00fe09b1ff00 -04d8fd9c7fe095bfb38b7eccdfb3337c40d47c25a8fc40f147c52f1678b3e2978a2d7c55e3bf1b78efc556ba2e8d73aeebb73a368be15f0969dfd9de12f0af83 -fc1da6699e0ef07f857471a3f8574fd4751d3f51f16ea3e26f136bdf107fc1503fe0de9fd8bffe0acdf1f7c21fb467ed19f13bf69ff05f8dbc17f07f40f829a5 -e97f053c69f0a7c39e15b8f0af873c69f103c7563a86a163e3af82bf11f5797c412eaff11f5cb7babab7d72d74e7d3ad74a861d2a0b982f2f2f803f9a1ff0083 -5fbfe0b33ff04d8ff8276fec0bf177e0a7ed8bfb487fc29ff89be28fdaff00c7df14b42f0cff00c29ff8f5f103edde04d6fe0bfc00f09e99aeff006cfc2df85d -e36f0fdb7da7c41e09f13e9ffd9979aadbeb10ff00667daae34f8acaf74fb9bb3c7dff00071e7ed63f1c7fe0bcdf047e0a7ec47fb64ffc251ff04d8f8c1fb5ff -00ec39f0b7c35e19ff008679f86da27fc245e04f88137c09f09fc75d0bfb67e2dfc0dd23e3d691fdafe3ad5fe2669ffda77faae99ac587da3ed5e0ed42cb478b -c3f7317e9fff00c4153ff04b2ffa2f9fb7ff00fe1d3fd9d7ff00a156bd83f67aff0083453fe09b7fb35fc7df81ff00b467817e36fedbfab78dbe00fc60f869f1 -afc1da5f8b3e24fc06bef0aea5e2af857e34d17c75e1ed3fc4d63a3fecd5a0eaf79e1fbcd5f42b3b7d66d74bd7346d46e34e92e61b1d574eb978af2100f1ff00 -f83a3bfe0a8ffb09ff00c309fedcdff04d1ff85e7ff19b5ff18cdff1657fe1597c62ff00a2c5fb3efc7dff00928fff000afbfe152ffc925ff8ab3fe47cff00a8 -17fc8cbff126afcc0ff835fbfe0b33ff0004d8ff008276fec0bf177e0a7ed8bfb487fc29ff0089be28fdaffc7df14b42f0cffc29ff008f5f103edde04d6fe0bf -c00f09e99aeff6cfc2df85de36f0fdb7da7c41e09f13e9ff00d9979aadbeb10ff667daae34f8acaf74fb9bbfdfefdbd7fe0d7efd817fe0a25fb58fc56fdb17e3 -5fc5dfdaff00c2ff00137e307fc20bff00093685f0b7c7df05f44f0258ff00c2bff86de0ef85ba37f61699e2cf801e36f105b7da7c3fe09d2af353fed0f13ea7 -e76b171a85c5afd8aca5b6d3ed3e40ff00882a7fe0965ff45f3f6fff00fc3a7fb3afff0042ad007807ecb9ff0005eaf8edfb68ff00c1c9be06fd9a3f668fdab3 -fe1657fc12e7e257fc24dff085782bfe146783bc1dfdb5ff000877ec17e21f1ff88ffe2a3f1ffc1df0afed0fa77f677ed0fe15d7b56ff89b6bd61f6cfb07d82c -3ed5e07bab2b2b8fedf2bf9c1fd82bfe0d7efd817fe09dbfb58fc29fdb17e0a7c5dfdaff00c51f137e0fff00c275ff0008ce85f14bc7df05f5bf025f7fc2c0f8 -6de31f85bacff6ee99e13f801e09f105cfd9bc3fe36d56f34cfecff13e99e4eb16fa7dc5d7db6ca2b9d3eeff00a3ea00fc81ff0082f57ecb9f1dbf6d1ff824f7 -ed59fb347ecd1e06ff008595f1b7e257fc28cff842bc15ff00093783bc1dfdb5ff000877ed27f077c7fe23ff008a8fc7fe21f0af84b4efecef0978575ed5bfe2 -6daf587db3ec1f60b0fb56a775656571f881ff00046dff0082ccff00c1363fe0979ff04f1f83dff04fdfdba7f690ff00851dfb5d7ecabf103f6a5f85bf1ebe12 -7fc29ff8f5f133fe103f1dd87ed6bf1cf52bbd0bfe13df83ff000bbe207c32f1479565a9d8cffda7e0cf19f88b4793cff2e2d41e68a68e3fecf6bf982fdaabfe -0d2dff0082657ed65fb477c68fda67c4df103f6bff0086be2df8eff1035ff8a5e36f09fc2df8a3f0c23f0243e3bf18dd1d67c73aee856df127e087c4af16d87f -c263e2dbad67c63a9e9973e30bfd1f4bd635fd434ef09e9fe1cf095ae87e19d1c03e7fff0082a3ff00c151ff00613ff82d1fec27f1cffe09a3ff0004d1f8e7ff -000d27fb6d7ed27ff0acbfe14afc15ff008565f18be0effc269ff0a77e317c3ef8fbf11ffe2e3fc7df87df0b3e12f873fe11cf84bf0b3c79e2cff8ab3c79a17f -6bff00617f61685fda9e25d5346d1b51fd7fff00820afecb9f1dbf62eff824f7eca7fb347ed2fe06ff00856bf1b7e1affc2f3ff84d7c15ff00093783bc63fd8b -ff00098fed27f18bc7fe1cff008a8fc01e21f15784b51fed1f0978ab41d5bfe253af5ffd8fedff0060bffb2ea76b7b656ff1ff00ec15ff0006bf7ec0bff04edf -dac7e14fed8bf053e2efed7fe28f89bf07ff00e13aff00846742f8a5e3ef82fadf812fbfe1607c36f18fc2dd67fb774cf09fc00f04f882e7ecde1ff1b6ab79a6 -7f67f89f4cf2758b7d3ee2ebedb6515ce9f77fd1f5007f007ff076cffc151ff613fda83f658d37f629f817f1cffe138fda6bf677fdbfecff00e1717c34ff0085 -65f18bc33ff087ff00c2a4f875fb48fc27f883ff0015978c3e1f787fe1ff00883fe11ff881e20d2340ff008a5bc57adff6afdaff00b5744fed2d16deeb5287e8 -0ff820afed47ff00049efdb47fe093dfb29ffc10ebf697f1cffc2caf8dbf12bfe179ff00c26bfb307fc233fb49783bfb6bfe10efda4fe317ed79e1cff8bd5e00 -f0f7857c25a77f67784bc2ba0fc42ff894fc5ab0fb67d83fe113bffb56a7757be1ab8fbfff006aaff834b7fe0995fb597ed1df1a3f699f137c40fdaffe1af8b7 -e3bfc40d7fe2978dbc27f0b7e28fc308fc090f8efc6374759f1cebba15b7c49f821f12bc5b61ff00098f8b6eb59f18ea7a65cf8c2ff47d2f58d7f50d3bc27a7f -873c256ba1f86747efff0060aff835fbf605ff008276fed63f0a7f6c5f829f177f6bff00147c4df83fff0009d7fc233a17c52f1f7c17d6fc097dff000b03e1b7 -8c7e16eb3fdbba6784fe007827c4173f66f0ff008db55bcd33fb3fc4fa6793ac5be9f7175f6db28ae74fbb00fdfef84ff0b7c09f03be167c34f829f0b742ff00 -845fe197c1ff0087fe0df85bf0ebc33fda7ac6b7ff0008ef813e1ff8734df09f84742fed9f116a1abf88357fec8f0fe91a7e9ffda7aeeaba9eb17ff67fb56a7a -85edecb3dccbfc61ff00c1c6dfb2e7c09ff8246f83be19ff00c15b3fe09e9e06ff00867dff008283f8fbf6ff00d6bfe12dfda03fe126f18fc57fed6ff868cf81 -3fb58eb5f197fe2d4fc6ef10fc4af82561ff00098ea7753dcffc4b3e1b59ff00c23dbfc9f0aff61dbaa44bfdbe57c01ff0527ff826c7ece3ff000552fd9c57f6 -66fda65be2069de12d3be20785fe29784fc59f0b7c516be15f1df827c77e15b5d6b46b6d7742b9d6745f15784b51fed1f0978abc61e0ed4f4cf18f83fc55a39d -1fc55a86a3a769fa778b74ef0cf89b4100fc81fd93bfe0e8eff824f7fc32c7ecd3ff000d47fb737fc64d7fc33ffc1bff00868bff008c66fda4bfe4bb7fc2baf0 -e7fc2ddff9277fb3effc2bff00f9281ff090ff00c88dff001477fd0b3ff125fb0d7c01ff0005abff0083a3be04ff00c32c7807fe1ce9fb737fc64d7fc3407857 -fe139ff8c66f18ff00c909ff008575f157fe126ff93a3fd9f7fe15ff00fc940ff8563ff207ff008ac7fe81ff00f125ff008486bdff00fe20a9ff0082597fd17c -fdbfff00f0e9fecebffd0ab47fc4153ff04b2ffa2f9fb7ff00fe1d3fd9d7ff00a156803e80ff0083663f65cf813e31fd913e1eff00c15b3c47e06fed1ff8283f -eda3ff000d75ff000d2ffb407fc24de31b3ff8595ff0957edb1f1275ad7bfe2d4d87886d7e09783bedfa9fc35f055cff00c501f0dbc2bf65fec5f26cbecf6fa8 -ead15ffe407fc1db3ff0547fd84ff6a0fd9634dfd8a7e05fc73ff84e3f69afd9dff6ff00b3ff0085c5f0d3fe1597c62f0cff00c21fff000a93e1d7ed23f09fe2 -0ffc565e30f87de1ff0087fe20ff00847fe20788348d03fe296f15eb7fdabf6bfed5d13fb4b45b7bad4a1fed77f62ffd90fe0d7ec17fb2ff00c20fd91fe00597 -882cfe14fc18f0fdee8de1e97c59af4fe25f156b5a8ebbe20d63c63e31f16789b58962b5b69fc41e34f1b788fc47e2ed66db44d3342f0ae9ba8eb773a67843c3 -3e18f0b59e8fe1ed33f007f685ff0083453fe09b7fb4a7c7df8e1fb4678ebe36fedbfa4f8dbe3f7c60f897f1afc63a5f84fe24fc06b1f0ae9be2af8a9e34d6bc -75e21d3fc3363ac7ecd5af6af67e1fb3d5f5dbcb7d1ad754d7359d46df4e8eda1bed5751b9496f2600f5ff00f82297fc1667fe09b1f183f67bff008272ff00c1 -3f7e1d7ed21ff0917ed75a47ec81f03fe16ea1f093fe14ff00c7ad23ecfe3bf81dfb33e97a97c52d0bfe13dd77e17699f0ca5ff845ecbe1ff8ba7fed383c672e -8fadff0064797e1dd43579aff4c8ef7f942ff83ad7fe0971fb09ff00c135ff00e1833fe18a7e067fc297ff0085d1ff000d47ff000b2ffe2e6fc62f88dff092ff -00c2b9ff008675ff008437fe4acfc41f1dff0063ff0063ff00c277e2bff9007f657f687f6aff00c4d7eddf61d37ec7fd6eff00c13c7fe0d98ff827a7fc136bf6 -a0f0afed71f08bc63fb4ff00c4bf8ade02f0ff008c746f0145f1afe23f80754f0af84351f1cf87eefc1daf78b34fd1fe197c25f85773ab7881fc13acf8abc236 -b6de2ad4fc43e15b6d3bc59aaea63c32de29d3fc2fe21f0f7d7fff000552ff008236fec8ff00f057cf0afc1ef0f7ed39a97c60f09eaff02fc41e2cd67e1e78eb -e0a78cb44f0bf8aac34ef1ee9da358f8e3c27a859f8cfc1ff10fc13aa787fc4f73e15f04eb1757377e0e6f15699a8f8374a8bc3be26d1748d53c5ba5f89403d8 -3fe093bff28b2ff8269ffd9807ec6fff00acebf0e6beff00af1ffd9ebe0a7857f66bf805f03ff673f02ea1e20d5bc13f007e0ffc34f829e0ed53c5975a75f78a -b52f0afc2bf05e8be05f0f6a1e26bed1f4ad0748bcf105e691a159dc6b375a5e87a369d71a8c973358e95a75b3c5670fb050015f207edadfb7afec9dff0004ed -f859a07c6bfdb17e2b7fc29ff865e28f881a57c2dd0bc4dff082fc49f881f6ef1deb7e1cf15f8b34cd0bfb1be16f83bc6de20b6fb4f87fc13e27d43fb4ef34ab -7d1e1feccfb2dc6a115edee9f6d77f5fd7e707fc1503fe097ff00bfe0acdf00bc21fb39fed19e2ff008c1e0bf04f82fe30681f1af4bd53e0a6bfe0bf0e78aae3 -c55e1cf05fc40f02d8e9fa85f78ebe1ffc47d225f0fcba47c47d72e2ead6df43b5d45f51b5d2a6875582da0bcb3be00ff364ff00835fbf6f5fd93bfe09dbfb7d -7c5df8d7fb62fc56ff00853ff0cbc51fb2078fbe16e85e26ff008417e24fc40fb778ef5bf8d1f003c59a6685fd8df0b7c1de36f105b7da7c3fe09f13ea1fda77 -9a55be8f0ff667d96e3508af6f74fb6bbff57af84ff14bc09f1c7e167c34f8d7f0b75dff0084a3e197c60f87fe0df8a5f0ebc4dfd99ac689ff000917813e2078 -734df1678475dfec6f1169fa4788348fed7f0feafa7ea1fd99aee95a66b161f68fb2ea7a7d95ec53db45fca17fc4153ff04b2ffa2f9fb7ff00fe1d3fd9d7ff00 -a156bfabdf84ff000b7c09f03be167c34f829f0b742ff845fe197c1ff87fe0df85bf0ebc33fda7ac6b7ff08ef813e1ff008734df09f84742fed9f116a1abf883 -57fec8f0fe91a7e9ff00da7aeeaba9eb17ff0067fb56a7a85edecb3dcca01e815fe609ff00075aff00c151ff00613ff82947fc3067fc314fc73ff85d1ff0a5ff -00e1a8ff00e165ff00c5b2f8c5f0e7fe11aff858dff0cebff086ff00c959f87de04fed8fed8ff8413c57ff00200fed5fecff00ecaff89afd87edda6fdb3fd3ee -bf902ff882a7fe0965ff0045f3f6ff00ff00c3a7fb3aff00f42ad007eff7fc1277fe5165ff0004d3ff00b300fd8dff00f59d7e1cd7dff5e7ff0009fe16f813e0 -77c2cf869f053e16e85ff08bfc32f83ff0ff00c1bf0b7e1d7867fb4f58d6ff00e11df027c3ff000e69be13f08e85fdb3e22d4357f106affd91e1fd234fd3ff00 -b4f5dd5753d62ffecff6ad4f50bdbd967b997d02803fcc13fe0eb5ff0082a3fec27ff0528ff860cff8629f8e7ff0ba3fe14bff00c351ff00c2cbff008b65f18b -e1cffc235ff0b1bfe19d7fe10dff0092b3f0fbc09fdb1fdb1ff08278affe401fdabfd9ff00d95ff135fb0fdbb4dfb67f7f9fb0c7fc151ff613ff0082947fc2d1 -ff008629f8e7ff000ba3fe14bffc213ff0b2ff00e2d97c62f873ff0008d7fc2c6ff84bbfe10dff0092b3f0fbc09fdb1fdb1ff08278affe401fdabfd9ff00d95f -f135fb0fdbb4dfb67e00ff00c4153ff04b2ffa2f9fb7ff00fe1d3fd9d7ff00a156bf67bfe095bff046dfd91ffe0907e15f8c3e1efd98f52f8c1e2cd5fe3a7883 -c27acfc43f1d7c6bf19689e28f155fe9de02d3b59b1f03f84f4fb3f06783fe1e78274bf0ff00862e7c55e36d62d6e6d3c1cbe2ad4f51f196ab1788bc4dad691a -5f84b4bf0d007f0c7ff075affc12e3f613ff00826bff00c3067fc314fc0cff00852fff000ba3fe1a8ffe165ffc5cdf8c5f11bfe125ff008573ff000cebff0008 -6ffc959f883e3bfec7fec7ff0084efc57ff200fecafed0fed5ff0089afdbbec3a6fd8ffd2efe2cfc52f027c0ef859f12fe35fc52d77fe117f865f07fe1ff008c -be297c45f137f666b1adff00c23be04f87fe1cd4bc59e2ed77fb1bc3ba7eafe20d5ffb23c3fa46a1a87f66685a56a7ac5ffd9fecba669f7b7b2c16d2fe60ff00 -c156ff00e08a9fb2c7fc160ffe142ffc34bf8fbf680f03ff00c33bff00c2d1ff00842bfe145f8abe1d7867fb53fe16dffc2baff8493fe129ff0084ff00e157c4 -dfb6fd8bfe159683fd89fd93fd89f66fb5eaff006ffed2fb459fd83f4fbe2cfc2df027c71f859f12fe0a7c52d0bfe128f865f183e1ff008cbe16fc45f0cff69e -b1a27fc245e04f881e1cd4bc27e2ed0bfb67c3ba8691e20d23fb5fc3fabea1a7ff0069e85aae99ac587da3ed5a66a1657b141731007f942ffc1d03fb7afec9df -f0512fdbebe117c6bfd8ebe2b7fc2e0f865e17fd903c03f0b75df137fc20bf127e1ffd87c77a27c68f8ffe2cd4f42fec6f8a5e0ef04f882e7ecde1ff001b7863 -50fed3b3d2ae3479bfb4fecb6fa84b7b65a85b5a7f67bfb58ffc1d1dff00049eff008658fda5bfe1973f6e6ff8c9aff867ff008c9ff0ce9ff18cdfb497fc976f -f8575e23ff008545ff002513f67dff00857fff002503fe11eff91e7fe28eff00a19bfe24bf6eaf9fff00e20a9ff82597fd17cfdbff00ff000e9fecebff00d0ab -47fc4153ff0004b2ff00a2f9fb7fff00e1d3fd9d7ffa156800ff008352bfe0a8ff00b767fc14a3fe1bcffe1b5be39ffc2e8ff852ff00f0cb9ff0ad3fe2d97c1d -f873ff0008d7fc2c6ff868aff84cbfe4937c3ef027f6c7f6c7fc209e14ff0090ff00f6aff67ff657fc4abec3f6ed4bed9fd7ed7e507fc12b7fe08dbfb23ffc12 -0fc2bf187c3dfb31ea5f183c59abfc74f10784f59f887e3af8d7e32d13c51e2abfd3bc05a76b363e07f09e9f67e0cf07fc3cf04e97e1ff000c5cf8abc6dac5ad -cda78397c55a9ea3e32d562f11789b5ad234bf09697e1afd5fa0028a28a002bfc41bfe0ac5ff00294dff0082967fd9ff00fed91ffad15f11abfdbe6bfc41bfe0 -ac5ff294dff82967fd9fff00ed91ff00ad15f11a803fd3effe0d71ff0094147ec33ff7733ffad87fb4157eff0057e00ffc1ae3ff002828fd867feee67ff5b0ff -00682afdfea0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002bfc41bfe0ac5ff00294dff0082967fd9ff00fed91ffad15f11abfdbe6bfc41bfe0ac5ff294 -dff82967fd9fff00ed91ff00ad15f11a803fd3effe0d71ff0094147ec33ff7733ffad87fb4157eff0057e00ffc1ae3ff002828fd867feee67ff5b0ff00682afd -fea0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2bfcf0ff00e0ef4ff8281fedc5fb3afe -df5fb3cfc14fd9e3f6b3fda03f67ff008656ff00b207873e294fe19f817f147c5bf07ffb67c77e3bf8d1f1a3c27e22d77c53acfc3ad4fc37e20f17eef0ff00c2 -ef05e9fa2699e29d5758d1fc27f62d5eebc29a7e897be2df175ceba01fe879457f9827fc3b4ffe0f24ff00a28dfb7fff00e2d8bc0dff00d19147fc3b4ffe0f24 -ff00a28dfb7fff00e2d8bc0dff00d191401fe9f7457f9627c59fd897fe0ee9f81df0b3e25fc6bf8a5f18ff006fff000bfc32f83ff0ff00c65f14be22f89bfe1e -9fe1ed6ffe11df027c3ff0e6a5e2cf176bbfd8de1dfdae357f106aff00d91e1fd2350d43fb3342d2b53d62ff00ecff0065d334fbdbd960b697c03f629f047fc1 -ce9ff0512f859aff00c6bfd8ebf69cfdbffe307c32f0bfc40d57e16ebbe26ff87946a1f0ff00ec3e3bd13c39e15f166a7a17f637c52fda63c13e20b9fb3787fc -6de18d43fb4ecf4ab8d1e6fed3fb2dbea12ded96a16d6801feb75457f9827fc3b4ff00e0f24ffa28dfb7ff00fe2d8bc0dffd19147fc3b4ff00e0f24ffa28dfb7 -ff00fe2d8bc0dffd191401fe9f7457f9827fc3b4ff00e0f24ffa28dfb7ff00fe2d8bc0dffd1915f007c7dd6ffe0e39fd97ff006a7f82bfb14fc74fdae7f6ff00 -f03fed35fb447fc2b8ff00853bf0d3fe1e2be28f137fc261ff000b6fe22eb3f09fe1f7fc565e0ffda1fc41f0ff00c3ff00f0907c40f0feafa07fc553e2bd13fb -2bec9fdabadff66e8b716ba94c01febf5457f8c2fed47fb5f7fc170ff62ef8ede39fd9a3f697fdbcff006fff0086bf1b7e1aff00c233ff0009af82bfe1bbfe2c -f8c7fb17fe131f07787bc7fe1cff008a8fc01f19fc55e12d47fb47c25e2ad0756ff894ebd7ff0063fb7fd82ffecba9daded95bf807fc3d8bfe0a9bff00492cfd -bfff00f1323f68affe78d401fedf3457f8a37c27ff0082887fc1623e38fc53f869f053e16ffc143ff6ff00f147c4df8c1f103c1bf0b7e1d7867fe1b73e39689f -f09178efe20788f4df09f84742fed9f117c57d23c3fa47f6bf88357d3f4ffed3d7755d3347b0fb47dab53d42caca29ee62fdbeff008769ff00c1e49ff451bf6f -ff00fc5b1781bffa322803fd3ee8aff304ff008769ff00c1e49ff451bf6fff00fc5b1781bffa3228ff008769ff00c1e49ff451bf6fff00fc5b1781bffa322803 -fd3ee8aff304ff008769ff00c1e49ff451bf6fff00fc5b1781bffa3228ff008769ff00c1e49ff451bf6fff00fc5b1781bffa322803fd3ee8aff304ff008769ff -00c1e49ff451bf6fff00fc5b1781bffa322be40fdb5bc11ff073a7fc13b7e16681f1aff6c5fda73f6fff0083ff000cbc51f1034af85ba1789bfe1e51a87c40fb -778ef5bf0e78afc59a6685fd8df0b7f698f1b7882dbed3e1ff0004f89f50fed3bcd2adf4787fb33ecb71a8457b7ba7db5d807fadd515fe20dff0f62ff82a6ffd -24b3f6ff00ff00c4c8fda2bff9e351ff000f62ff0082a6ff00d24b3f6fff00fc4c8fda2bff009e35007fb7cd15fe30bfb2e7ed7dff0005c3fdb47e3b781bf668 -fd9a3f6f3fdbff00e257c6df895ff0937fc215e0aff86eff008b3e0efedaff00843bc1de21f1ff0088ff00e2a3f1ff00c67f0af84b4efecef0978575ed5bfe26 -daf587db3ec1f60b0fb56a775656571fafff00f0ed3ff83c93fe8a37edff00ff008b62f037ff004645007fa7dd15fe609ff0ed3ff83c93fe8a37edff00ff008b -62f037ff0046451ff0ed3ff83c93fe8a37edff00ff008b62f037ff004645007fa7dd15fe609ff0ed3ff83c93fe8a37edff00ff008b62f037ff0046451ff0ed3f -f83c93fe8a37edff00ff008b62f037ff004645007fa7dd15fe609ff0ed3ff83c93fe8a37edff00ff008b62f037ff0046451ff0ed3ff83c93fe8a37edff00ff00 -8b62f037ff004645007fa7dd15fe609ff0ed3ff83c93fe8a37edff00ff008b62f037ff0046451ff0ed3ff83c93fe8a37edff00ff008b62f037ff004645007fa7 -dd15fe48bfb6b7823fe0e74ff8276fc2cd03e35fed8bfb4e7edfff0007fe1978a3e20695f0b742f137fc3ca350f881f6ef1deb7e1cf15f8b34cd0bfb1be16fed -31e36f105b7da7c3fe09f13ea1fda779a55be8f0ff00667d96e3508af6f74fb6bbff004dbff8264f8b3c55e3dff826dffc13e7c75e3af137883c69e36f1a7ec4 -1fb2878b3c63e31f166b3a8f88fc55e2cf15788fe03780758f10f89bc4de21d62e6f357d7bc41aeeaf7979aa6b3acea97975a8ea9a8dd5cdf5f5ccf733cb2b00 -7dbf4514500145145001451450014514500145145001451450014514500145145001451450015fe20dff000562ff0094a6ff00c14b3fecff00ff006c8ffd68af -88d5fedf35fe20dff0562ff94a6ffc14b3fecfff00f6c8ff00d68af88d401fe9f7ff0006b8ff00ca0a3f619ffbb99ffd6c3fda0abf7fabf007fe0d71ff009414 -7ec33ff7733ffad87fb4157eff005001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -4514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450015fe609ff -0007ab7fca537e01ff00d9807c2cff00d68afdaaabfd3eebfcc13fe0f56ff94a6fc03ffb300f859ffad15fb555007fa7dd7f285ff07027c52ff8384be077c53b -df8d7ff04c6d77fe117fd863e0ff00ec8173f14be3ff0089bfb33f623d6ffe11df1dfc3ff11fc67f167c55d77fb1bf682d3f57f8c1abff00647c1fd23c03a87f -66782b4ad4f47bff00b3fd97c39a7def8a25d6ada5fe977f685f8d7e15fd9afe017c70fda33c75a7f88356f04fc01f83ff0012fe35f8c74bf09dae9d7de2ad4b -c2bf0afc17ad78ebc43a7f866c758d5741d22f3c4179a4685796fa35aea9ae68da75c6a325b437daae9d6cf2de43fc61fedbbff0775ffc136ff694fd8bff006b -bfd9cfc0bf04bf6dfd27c6df1fbf660f8fbf053c1daa78b3e1b7c06b1f0ae9be2af8a9f0a7c59e05f0f6a1e26bed1ff695d7b57b3f0fd9eafaed9dc6b375a5e8 -7acea36fa74773358e95a8dca45673007f2c3f167fe0e3cff82ce7c71f859f12fe0a7c52fdb27fe128f865f183e1ff008cbe16fc45f0cffc33cfeca9a27fc245 -e04f881e1cd4bc27e2ed0bfb67c3bf03748f10691fdafe1fd5f50d3ffb4f42d574cd62c3ed1f6ad3350b2bd8a0b988ff00823cff00c1667f6b1ff8276fc53f81 -1f053c3bfb487fc29ffd863c51fb5ffc30f8a5fb53f867fe14ff00c36f881f6ef026b7e23f863e13f8e1aeff006cdf7c2ef1b7c60b6fb4fc1ff04c1a7ff667c3 -ad56df5887fb33ed5e11d3e2f145ebdcddfe20d1401fedf3fb0c7fc151ff00613ff82947fc2d1ff8629f8e7ff0ba3fe14bff00c213ff000b2ffe2d97c62f873f -f08d7fc2c6ff0084bbfe10dff92b3f0fbc09fdb1fdb1ff0008278aff00e401fdabfd9ffd95ff00135fb0fdbb4dfb67dff5fe24dff04ecff82b07edb5ff0004b4 -f1578b3c43fb20fc47f0ff0085348f897e20f861acfc5ff02f8b3e1df81fc73e15f8b3a77c26d47c4b7de1af09f89af35fd0e7f1b7873c3f756de34f17e8facd -cfc2ff0018fc3ef155ce9de21b996cfc4da7eafa7e85aa693fedb3401e01fb58ff00c2f6ff008658fda5bfe1973fe4e6bfe19ffe327fc33a7fc89dff0025dbfe -15d788ff00e1517fc944ff008b7fff002503fe11eff91e7fe28eff00a19bfe24bf6eaff284fdbebfe1faff00f0f4dfd8affe1b9ffe5269ff0018e3ff000c77ff -002679ff004715e32ff867cff923ff00f18fff00f2701ff0977fc951ff00b9dbfe28afeccaff0059afda17e35f857f66bf805f1c3f68cf1d69fe20d5bc13f007 -e0ff00c4bf8d7e31d2fc276ba75f78ab52f0afc2bf05eb5e3af10e9fe19b1d6355d0748bcf105e691a15e5be8d6baa6b9a369d71a8c96d0df6aba75b3cb790ff -00942ffc16f7fe0b25f0f7f6f4ff0082927eccdfb7b7ec45a6fc60f847abfecd7f07fe0ce8de0ed47e35f837e19dbf8ab45f8cbf073e3cfc59f8cde1ef1669fe -18d1fc61f17bc13ae787f4db9f18f84e7b5b6f12cf7306a5a8e9baae9facf8666d21627d4c03a0fdbf3fe08cdff07097c60f11fed09ff0502fdba7f66fff0084 -8bc41a47c3fbcf8a5f1ebe2dff00c2e0fd88f48fb3f813e077c2cb0d36ef5dff00840be0ff00c51d32ca5ff845fe197c3fb183fb33c19e0c9758d6ff00b23cc8 -b4fd5fc417f3497bfce0d7fabdff00c1073f6a3f8edff05b9ff823bfed43e11fdbcbc73ff0947883c67f103f692fd8a7c59f14be1d7867c1df0dfc77aefc2cf8 -81f037e1fea773afcfa7e8de1e97e19587c40f0ed97c71d7bc3be1dd5745f875a67870e8fe1af08cfe21f0a7883c411789b5df13ff00343ff0540ff8236ffc11 -c3f60bf8fbe10fd827c0ba97fc157fe2e7ede1fb4a7c1fd0359fd9134ed37c65fb14dc7c02d6be32fc63f1a7c40f833f00bc27f16fc4fe2cf07fc21f12687e1f -d4be32783ace0f1edce9705b41a6f82f528f50b1f13437ed729a6007f245f09fe2978efe077c53f869f1afe16ebbff0008bfc4df83ff00103c1bf14be1d789bf -b3347d6ffe11df1dfc3ff11e9be2cf08ebbfd8de22d3f57f0feaff00d91e20d234fd43fb335dd2b53d1eff00ecff0065d4f4fbdb2967b697fd1eff00e0dfcff8 -38f3c09f1c7e16597c14ff00829cfed93ff0947edcff00183f6bfb6f85bf003c33ff000cf3ac689ff0917813e207873e0cf84fe15685fdb3fb3efc0dd23e0fe9 -1fdaff0018357f1f69ff00da7e35d574cd62c3ed1f6af11ea165e178b45b98bf8c2fda8ffe082bff000561fd8bbe04f8e7f697fda5ff00653ff856bf04be1aff -00c233ff0009af8d7fe179fecdbe31fec5ff0084c7c63e1ef007873fe29cf007c62f1578b751fed1f16f8ab41d27fe253a0dff00d8fedff6fbff00b2e996b7b7 -b6ff00107ec45f1afc2bfb35feda1fb227ed19e3ad3fc41ab7827e00fed3ff0000be35f8c74bf09dae9d7de2ad4bc2bf0afe2b784fc75e21d3fc3363ac6aba0e -9179e20bcd2342bcb7d1ad754d7346d3ae35192da1bed574eb6796f2100ff759a2be40fd82bf6d6f859ff0512fd93be14fed8bf05340f881e17f865f183fe13a -ff00846742f8a5a5787344f1dd8ffc2bff00893e31f85bacff006ee99e13f15f8dbc3f6df69f10782755bcd33fb3fc4fa9f9da3dc69f7175f62bd96e74fb4f97 -ff00e0b8bfb5e7c65fd843fe095ffb5afed4bfb3e5ef87f49f8c9f0f3c3ff0e346f02ebbe26d060f13e9de19d47e2a7c69f86df082f3c596da05f4aba46a9e20 -f09e91e3dd47c49e13b6f10daeb3e153e2ad2f467f15f867c55e1b4d53c35aa807e70ffc17abfe0bd5f027f62ef813fb567ecd1fb347ed59ff000ad7fe0a8ff0 -d7fe1467fc215e0aff008519e31f18ff0062ff00c263e31f83be3ff11ffc547e3ff83be2afd9e351fed1fd9e3c55af6adff136d7affec7f6ff00b0587d97c716 -b65656ff00c417fc451dff0005d7ff00a3e6ff00cd66fd8f3ffa1f6be00ff86a3f077eda3fb767fc34bffc15b3c73fb407c4af097c4aff009380f1afecb9e19f -813e0ef8edad7fc21df077fe100f853ff08378735af0f7857e0969dfd9da9f857e1b693e26fb4e8361f6cf07587886fe1fb578b6ea2bdb8fecf7f60aff00835f -bfe08bdff0512fd93be14fed8bf053e2effc14ff00c2ff000cbe307fc275ff0008ce85f14bc7dfb29689e3bb1ff857ff00127c63f0b759feddd33c27f003c6de -1fb6fb4f883c13aade699fd9fe27d4fced1ee34fb8bafb15ecb73a7da007f383ff0011477fc175ff00e8f9bff359bf63cffe87daf903f6d6ff0082ccff00c149 -ff00e0a25f0b340f829fb62fed21ff000b83e19785fe20695f14b42f0cff00c29ff80bf0ff00ec3e3bd13c39e2bf09e99aeff6cfc2df85de09f105cfd9bc3fe3 -6f13e9ff00d9979aadc68f37f69fdaae34f96f6cb4fb9b4feef3fe20a9ff0082597fd17cfdbfff00f0e9fecebffd0ab5fca17edb9ff0434baff8256fed637fe3 -dfdbefc11fb406a3ff00048bd47f680f18fc2df879f1dff662f89dfb38f8abf68ef1b68fe2af86df133c7ff00f42b4f0b7c429bc2bfd9df1034eff0084574ed3 -7e366a7e28f849e15f020baf0afc428fe1f6a1a8da6a3f0fb54d7803f9c1a2bf5fbf6a3ff8705ffc289f1cff00c314ff00c3dfff00e1a6bfe299ff008569ff00 -0d47ff000c61ff000a27fe471f0f7fc265ff0009cffc2a7ff8b81ff24fff00e12bff008467fb03fe671ff847bfb57fe24bfda55f903401fdbe7fc1057f6a3ff8 -36cbf62ef813fb29fed2ff00b4bf8e7fe15aff00c151fe1aff00c2f3ff0084d7c6bff08cfede9e31fec5ff0084c7c63f18bc01e1cff8a73c01e1ef157ecf1a8f -f68fecf1e2ad0749ff00894e837ff63fb7fdbeff00ecbe38b5bdbdb7fd00fda8ff006a3ff83937f6d1f8ede39fda5ffe0875e39ff8595ff04b8f895ff08cff00 -c33078d7fe119fd82fc1dfdb5ff087783bc3de00f8d5ff0014e7ed79e1ef0afed0fa77f677ed0fe15f8b5a4ffc5c2d06c3ed9f60fb7f84fed5e07baf0d5edc7f -203fb2e7fc382ffe144f81bfe1b5bfe1efff00f0d35ff1537fc2cbff00865cff008630ff008513ff00238f887fe10dff00841bfe16c7fc5c0ff927ff00f08a7f -c24dfdbfff00338ffc243fd95ff125fecdafa03fe1fd5fb5dfec5dff0018d1ff000493fdab3f680f86bff04f8f86bff26ffe0afda8fe067ec51e31f8eda2ff00 -c263ff0015ff00c56ff84e7c47a2fc1df15699a8ff0068fc6df157c49d5bc33f66d7affec7e0ebff000f584df65b8b596cadc03fd5eff64eff0085edff000cb1 -fb34ff00c351ff00c9cd7fc33ffc1bff00868bff00913bfe4bb7fc2baf0e7fc2ddff009277ff0016ff00fe4a07fc243ff2237fc51dff0042cffc497ec35eff00 -5fe40bff0011477fc175ff00e8f9bff359bf63cffe87dafd7efd973f6a3ff83ce7f6d1f813e06fda5ff668f1cffc2caf825f12bfe126ff00842bc6bff08cff00 -c12a7c1dfdb5ff0008778c7c43e00f11ff00c539e3ff000f7857c5ba77f6778b7c2baf693ff136d06c3ed9f60fb7d87dab4cbab2bdb800ff0047ca2bfcd13f6d -6fdbd7fe0efeff008276fc2cd03e35fed8bf15bfe14ffc32f147c40d2be16e85e26ff8417fe0985f103edde3bd6fc39e2bf16699a17f637c2df0778dbc416df6 -9f0ff827c4fa87f69de6956fa3c3fd99f65b8d422bdbdd3edaeffa3eff0082367fc1c9dfb2c7fc140fc47fb32fec4de2e8bf680b2fdb6bc41fb3fe8bff0009cf -8ffc7ff0bfe1d787fe167c63f8edf0cbe16587893e36ff00c21579f0a3c69e20ff00847ffe120ff847fe22fc46f0e7fc245f0efe197839bc39e1fbdd1e0ff847 -fc4b7be15f056ae01fd3ed1457f2c5fb42ff00c1dd7ff04dbfd9afe3efc70fd9cfc75f04bf6dfd5bc6df007e307c4bf829e31d53c27f0dbe035f785752f157c2 -bf1a6b5e05f10ea1e19bed63f695d0757bcf0fde6afa15e5c68d75aa687a36a371a7496d35f695a75cbcb670807f53b4578ffecf5f1afc2bfb4a7c02f81ffb46 -78174ff10693e09f8fdf07fe1a7c6bf07697e2cb5d3ac7c55a6f857e2a782f45f1d787b4ff001358e8faaebda459f882cf48d76cedf59b5d2f5cd674eb7d463b -986c755d46d922bc9bd82803f902ff0083d5bfe5165f00ff00ecff00fe167feb3afed555fbfdff00049dff0094597fc134ff00ecc03f637ffd675f8735f803ff -0007ab7fca2cbe01ff00d9ff00fc2cff00d675fdaaabf7fbfe093bff0028b2ff008269ff00d9807ec6ff00facebf0e6803effa28a2800a28a2800a28a2800a28 -a2800a28a2800a28a2800a28a2800a28a2800a28a2800aff00106ff82b17fca537fe0a59ff0067ff00fb647feb457c46aff6f9aff106ff0082b17fca537fe0a5 -9ff67fff00b647feb457c46a00ff004fbff835c7fe5051fb0cff00ddccff00eb61fed055fbfd5f803ff06b8ffca0a3f619ff00bb99ff00d6c3fda0abf7fa800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800aff00304ff83d5bfe529bf00ffecc03e167feb457 -ed555fe9f75fe609ff0007ab7fca537e01ff00d9807c2cff00d68afdaaa803fd2efe2cfc2df027c71f859f12fe0a7c52d0bfe128f865f183e1ff008cbe16fc45 -f0cff69eb1a27fc245e04f881e1cd4bc27e2ed0bfb67c3ba8691e20d23fb5fc3fabea1a7ff0069e85aae99ac587da3ed5a66a1657b1417317f9e1ffc16affe0d -71f8edff000d4fe01ff873a7ec33ff0018cbff000cff00e15ff84e7fe3267c1dff0025dbfe162fc55ff849bfe4e8ff00682ff8581ff24fff00e158ff00c81ffe -28effa07ff00c4ebfe121aff0047ca2803fc31bf6d6fd82bf6b1ff008276fc53d03e0a7ed8bf0a7fe14ffc4df147c3fd2be29685e19ff84ebe1b7c40fb778135 -bf11f8afc27a66bbfdb3f0b7c63e36f0fdb7da7c41e09f13e9ff00d9979aadbeb10ff667daae34f8acaf74fb9bbf902bfbfcff0083b67fe0971fb767ed41fb53 -e9bfb6b7c0bf819ff09c7eccbfb3bfec0167ff000b8be25ffc2cdf83be19ff00843ffe1527c45fda47e2c7c41ff8a37c61f107c3ff00103c41ff0008ff00c3ff -0010691aff00fc52de14d6ff00b57ed7fd95a27f696b56f75a6c3fc01d007f43dff0405f137fc10e7c17e2af8fbe31ff0082c9db787ef357f09f883f679f137e -cab67e2cf09fed35e3df0add6a3a16a3f14f54f8af6de26f02fc08d1bc47e09f1a787e7b9b5f84b16b3e13f8dfe1ed77c2be23d39ae747b6d1b54d22f3c5f633 -ff00aed57f803d7fa3e7fc1153fe0e8ef813ff000cb1e3eff87c5fedcdff001935ff000d01e2aff841bfe319bc63ff002427fe15d7c2aff8467fe4d73f67dff8 -57ff00f2503fe1677fc863fe2b1ffa087fc497fe11ea00fcff00ff0083c63f6b1fda9fe147edf5f0e3e05fc2dfda5bf680f86bf04be257ec01e0ff00f858bf07 -7c01f193e22f83be1678fbfe131f8d1fb4ef83fc5dff0009afc3df0ef88f4ef0978abfe12af0969da7f85bc47fdbba45ff00f6e7872c2cf44d4fed5a65ac16a9 -fc61fc27f85be3bf8e3f14fe1a7c14f85ba17fc251f137e307c40f06fc2df875e19fed3d1f44ff00848bc77f103c47a6f84fc23a17f6cf88b50d23c3fa47f6bf -88357d3f4ffed3d7755d3347b0fb47dab53d42caca29ee62fdfeff0083a07f6f5fd93bfe0a25fb7d7c22f8d7fb1d7c56ff0085c1f0cbc2ff00b207807e16ebbe -26ff008417e24fc3ff00b0f8ef44f8d1f1ff00c59a9e85fd8df14bc1de09f105cfd9bc3fe36f0c6a1fda767a55c68f37f69fd96df5096f6cb50b6b4fc80fd98f -e16fed63a27873e207fc140bf66fd0becde1ff00f8276fc40fd9c3e2978efe2dff0069fc369bfe14ff008efc6ff14e3d37f67bd77fe102f1e6a12defc40fed3f -89be178e0feccd1fc19e36d1ecbec3e678df4fb4f0fdcb497001fddeff00c1b93fb51fc09ff8246f83be267fc124ff00e0a17e39ff00867dff008283f8fbf6ff -00d17fe112fd9fff00e119f18fc57fed6ff868cf813fb2768bf06bfe2eb7c11f0f7c4af82561ff00098ea77505b7fc4cfe24d9ff00c23dbfcef157f61dbabcab -efff00f0577ff825c7edd9fb507fc17d3fe0983fb6b7c0bf819ff09c7eccbfb3bffc315ffc2e2f897ff0b37e0ef867fe10ff00f8549fb67fc4bf8b1f107fe28d -f187c41f0ffc40f107fc23ff000ffc41a46bff00f14b78535bfed5fb5ff65689fda5ad5bdd69b0fe607fc134fe16f813fe0a01ff0004d4ff008296ff00c175ff -006b9d0bfe16d7fc1553f661f881f1f3e297c0dfda9bfb4f58f01ffc20fe3bfd8cff00622f805f11bf66cd77fe1487c32d43c19fb397897fe15bf8cfc3fa46b3 -fd99e2ff00843e20d1fc61f64fecef1ee9fe29d2ae2eac66fdfeff00835fbf6f5fdac7fe0a25fb02fc5df8d7fb62fc56ff0085c1f137c2ff00b5ff008fbe16e8 -5e26ff008417e1b7c3ff00b0f81344f82ff003c59a6685fd8df0b7c1de09f0fdcfd9bc41e36f13ea1fda779a55c6b137f69fd96e35096cacb4fb6b400f60ff00 -8290ff00c15b3fe0873e13d47e3e7fc1397fe0a35f1abc3f757375e1ff000ff867e37fc10f137c06fda6bc69a72e9de34f0af85fe267842e6dbc5ff0cfe12ebb -a459f882cf48d77c21e37f09f8b3c11e2f83c55e02f1541a36b9a1eb3e1cf1b7872dee34bfc21f84ff000b7fe0c8cf8e3f14fe1a7c14f85ba17fc251f137e307 -c40f06fc2df875e19fed3ff82b7689ff0009178efe20788f4df09f84742fed9f116a1a4787f48fed7f106afa7e9ffda7aeeaba668f61f68fb56a7a85959453dc -c5fce0ff00c1d1dff29d7fdb9bfeed9bff0058f3f67daf803fe093bff294dff8269ffd9fff00ec6fff00ad15f0e6803fd9ebf65cfd973e04fec5df027c0dfb34 -7ecd1e06ff00856bf04be1affc24dff085782bfe126f18f8c7fb17fe131f18f887c7fe23ff008a8fc7fe21f1578b751fed1f16f8ab5ed5bfe26daf5ffd8fedff -0060b0fb2e996b65656fbff1fbe00fc1afda97e0d7c42fd9f3f683f87be1ff008a9f06fe2a787e6f0cf8ebc0be268677d3b57d39e7b7beb3b9b6bcb1b8b3d5f4 -2f10685abd9e9de22f09f8b3c3da8e93e2af06f8ab49d1bc57e14d6746f1268da5ea969ec15e01fb51fed47f027f62ef813e39fda5ff00697f1cff00c2b5f825 -f0d7fe119ff84d7c6bff0008cf8c7c63fd8bff00098f8c7c3de00f0e7fc539e00f0f78abc5ba8ff68f8b7c55a0e93ff129d06ffec7f6ff00b7dffd974cb5bdbd -b700ff00383ff82a3ffc1ae3fb767fc3767c73ff008768fec33ff184bff16cbfe14aff00c64cfc1dff00a23bf0fbfe163ffc97dfda0bfe16d7fc95aff84f3fe4 -6cff00b817fc535fd8d5e7ff000b7fe08f7ff0768fc0ef02685f0b7e0a45fb5ffc1ff865e17fed3ff8467e1d7c2dff0082987c23f87fe04f0eff006deb1a8788 -b59fec2f08f84ff6b7d23c3fa47f6bf88357d575dd4ffb3f4fb7fb7eb1a9ea1a9dd79b7b7b733cbfd9effc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68 -ff0088a3bfe0851ff47cdff9acdfb61fff0043ed007f9c1fed47fb5f7fc170ff0062ef8ede39fd9a3f697fdbcff6ff00f86bf1b7e1affc233ff09af82bfe1bbf -e2cf8c7fb17fe131f07787bc7fe1cff8a8fc01f19fc55e12d47fb47c25e2ad0756ff00894ebd7ff63fb7fd82ff00ecba9daded95bfc41f1aff006ddfdb43f694 -f0ae9fe05fda33f6bbfda7fe3f782749f105af8b34bf077c6bf8fbf15be2a78574df1558e9daae8f63e26d3fc3de3af166bda459f882cf48d775cd2ed759b7b3 -8f51b7d3b59d56c61b94b6d46f229bfbddfda8ff006a3ff8331bf6d1f8ede39fda5ff697f1cffc2caf8dbf12bfe119ff0084d7c6bff08cff00c155bc1dfdb5ff -00087783bc3de00f0e7fc539e00f0f7857c25a77f67784bc2ba0e93ff129d06c3ed9f60fb7dffdab53babdbdb8fe00bf6b1ff8513ff0d4ff00b4b7fc32e7fc9b -2ffc3407c64ff8674ff91c7fe484ff00c2c5f11ffc2a2ff9289ff1703fe49fff00c23dff0023cffc563ff4337fc4ebedd4007ecb9fb2e7c76fdb47e3b781bf66 -8fd9a3c0dff0b2be36fc4aff00849bfe10af057fc24de0ef077f6d7fc21de0ef10f8ff00c47ff151f8ff00c43e15f0969dfd9de12f0aebdab7fc4db5eb0fb67d -83ec161f6ad4eeacacae3f5fff00e2171ff82ebffd18cffe6ccfec79ff00d1055f901fb2e7ed47f1dbf62ef8ede06fda5ff668f1cffc2b5f8dbf0d7fe126ff00 -842bc6bff08cf83bc63fd8bff098f83bc43e00f11ffc539e3ff0f78abc25a8ff0068f84bc55af693ff00136d06ff00ec7f6ffb7d87d9753b5b2bdb7fd7ff00f8 -8a3bfe0bafff0047cdff009acdfb1e7ff43ed001ff0010b8ff00c175ff00e8c67ff3667f63cffe882afebf7fe0971ff06b8fec27ff000c27f033fe1e5dfb0cff -00c66d7fc5cdff0085d5ff001933f18bfe8b17c41ff8571ff240bf682ff854bff2497fe103ff00914ffee3bff152ff006cd7f205ff0011477fc175ff00e8f9bf -f359bf63cffe87da3fe228eff82ebffd1f37fe6b37ec79ff00d0fb401fdfe7fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20abf67be00fc01f835fb2d7c1 -af87bfb3e7ecf9f0f7c3ff000afe0dfc2bf0fc3e19f02f817c330ce9a7691a724f717d797373797d7179abebbe20d7757bcd47c45e2cf16788751d5bc55e32f1 -56adacf8afc57aceb3e24d6754d52eff00c997fe228eff0082ebff00d1f37fe6b37ec79ffd0fb47fc451dff05d7ffa3e6ffcd66fd8f3ff00a1f6803fd4eff6d6 -fd82bf64eff82897c2cd03e0a7ed8bf0a7fe1707c32f0bfc40d2be29685e19ff0084ebe24fc3ff00b0f8ef44f0e78afc27a66bbfdb3f0b7c63e09f105cfd9bc3 -fe36f13e9ffd9979aadc68f37f69fdaae34f96f6cb4fb9b4ff003c3ff82d94ff00f0440fd87347d3f46ff822df8bbe207eceff00f0534fd9dff6bfd73e16fc59 -f107c2df88bfb7f7867c77f0efc09e19f027c77f863f1bb42d0be23fc55f117fc2bfff009281ff0008b784f53d4fe1df89aef58d7b47bbd42db46d4352f056a5 -e236b9f803fe228eff0082ebff00d1f37fe6b37ec79ffd0fb5f883f167e2978efe38fc53f897f1afe296bbff000947c4df8c1f103c65f14be22f89bfb3347d13 -fe122f1dfc40f11ea5e2cf176bbfd8de1dd3f48f0fe91fdafe20d5f50d43fb3342d2b4cd1ec3ed1f65d334fb2b28a0b68803ebff00f87b17fc1537fe9259fb7f -ff00e2647ed15ffcf1abfa5eff0082147fc1bdff00197f6aff008fbacfed4bff000573fd973c41f173f64efda53f660d47e3f7c31f8afe2cfda7e0b8f157c4ef -8cbf18fc69f087e22782fe21789ae3e0afc7bb5f8ed3f883c69f0dbc47f12bc49accdf126d6da09751d4ae5fc636f0f8c5b4a8d7c7ff00e0db1ff820affc368f -8c65fda5ff006f4fd94ffe1657fc13e3e257ecff00f143fe148f8d7fe179ff00c21dfdb5f1dbc1df1dbc17e004ff008a73e0d7c62f0afc6dd3bfb3b4cf0afc6c -d27fe2aed06c3c1d79f60fb79fb55c5d784af6e3fd2efe13fc2df027c0ef859f0d3e0a7c2dd0bfe117f865f07fe1ff00837e16fc3af0cff69eb1adff00c23be0 -4f87fe1cd37c27e11d0bfb67c45a86afe20d5ffb23c3fa469fa7ff0069ebbaaea7ac5ffd9fed5a9ea17b7b2cf732801f09fe16f813e077c2cf869f053e16e85f -f08bfc32f83ff0ff00c1bf0b7e1d7867fb4f58d6ff00e11df027c3ff000e69be13f08e85fdb3e22d4357f106affd91e1fd234fd3ff00b4f5dd5753d62ffecff6 -ad4f50bdbd967b997d028a2803f902ff0083d5bfe5165f00ff00ecff00fe167feb3afed555fbfdff00049dff0094597fc134ff00ecc03f637ffd675f8735f803 -ff0007ab7fca2cbe01ff00d9ff00fc2cff00d675fdaaabf7fbfe093bff0028b2ff008269ff00d9807ec6ff00facebf0e6803effa28a2800a28a2800a28a2800a -28a2800a28a2800a28a2800a28a2800a28a2800a28a2800aff00106ff82b17fca537fe0a59ff0067ff00fb647feb457c46aff6f9aff106ff0082b17fca537fe0 -a59ff67fff00b647feb457c46a00ff004fbff835c7fe5051fb0cff00ddccff00eb61fed055fbfd5f803ff06b8ffca0a3f619ff00bb99ff00d6c3fda0abf7fa80 -0a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a280 -0a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a280 -0a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a280 -0a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a280 -0a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a280 -0a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800aff00304ff83d5bfe529bf00ffecc03e167feb4 -57ed555fe9f75f9c1fb6f7fc1233fe09d5ff00051cf15781fc75fb657eccfe1ff8bde36f875e1fd47c27e15f18db78d3e287c33f1541e15d4b515d60f86759f1 -0fc22f1c780b57f16787f4bd5daff54f0ce8de2dbcd734ef08ea3aff008b2fbc2d6da3dcf8c7c552eb001fa3f457f2c5ff00068a7ed0bf1f7f694ff826dfc6df -1d7ed19f1c7e307c7ef1b693fb6ffc49f09e97e31f8d7f12fc69f153c55a6f856c7e037ecd5ac58f8674ff0010f8eb5ad7b57b3f0fd9eafaeeb9aa5ae8d6f791 -e9d6fa8eb3aadf436c973a8de4b37f53b401f207fc1427e16f8efe38fec0bfb70fc14f85ba17fc251f137e307ec81fb4b7c2df875e19fed3d1f44ff848bc77f1 -03e0bf8d7c27e11d0bfb67c45a8691e1fd23fb5fc41abe9fa7ff0069ebbaae99a3d87da3ed5a9ea1656514f7317f8c2fedadfb057ed63ff04edf8a7a07c14fdb -17e14ffc29ff0089be28f87fa57c52d0bc33ff0009d7c36f881f6ef026b7e23f15f84f4cd77fb67e16f8c7c6de1fb6fb4f883c13e27d3ffb32f355b7d621fecc -fb55c69f1595ee9f7377fee735f883ff000586ff0082337ec9dff0512f859f1dfe35f88bf66fff0085c1fb73f85ff640f89ff0b7f658f137fc2e0f893f0ffec3 -e3bd13c39f13bc59f03f42fec6b1f8a3e09f83f73f66f8c1e369f50fed3f88ba55c68f37f69fd97c5da84be17b24b6b400ff001c5afa7ff622f829e15fda53f6 -d0fd913f673f1d6a1e20d27c13f1fbf69ff805f053c63aa784eeb4eb1f1569be15f8a9f15bc27e05f10ea1e19bed634ad7b48b3f1059e91aede5c68d75aa687a -ce9d6fa8c76d35f695a8db24b673741fb6b7ec15fb58ff00c13b7e29e81f053f6c5f853ff0a7fe26f8a3e1fe95f14b42f0cffc275f0dbe207dbbc09adf88fc57 -e13d335dfed9f85be31f1b787edbed3e20f04f89f4ff00eccbcd56df5887fb33ed571a7c5657ba7dcddfa07fc1277fe529bff04d3ffb3fff00d8dfff005a2be1 -cd007dbfff00070b7fc12ffe017fc1267f6d0f863fb39fece7e2ff008c1e34f04f8d3f660f05fc6bd5354f8d7aff0082fc47e2ab7f15788fe2b7c6af02df69fa -7df7817e1ffc38d222f0fc5a47c38d0ee2d6d6e343bad45351bad5669b559eda7b3b3b13fe091bfb77ff00c13d3f670fd97ffe0a55fb23ff00c145be1a7ed3ff -00117e14feddfe1ffd9ab46d2e5fd97ecfc027c55e11d47e03f883e2df8c6c7c58fac78ebe287c3cb6d2fc41e18f1b78abe1f78bbc176d2e99e39f0aeb7a8f86 -6fb4cf1f786755f0b4b79e1ef117e8ff00fc1eadff00294df807ff006601f0b3ff005a2bf6aaafe40a803fb1dff8265fc14ff8283fed2907c52fd9d3fe08f9a8 -7ed3fa4ffc1bf7f1fbf69fd27e0a7ed55aa7c77baff8272d8fed3fa6f857e2a7c1af803e05fdb5b50d52fb5fd2b5ef14d9f882cfe14ebb7171e00baf847a1eb3 -a75bf87e3f0b4da5e95a8fc464f14d9cdfd7ef823f610f87bff0428ff82447fc143fc3dfb117c4bf8c179abf84fe0ffed6bfb5e783bc75f1aef3e19f8f7c55e1 -6f8cba17ecc96963e1ebdd3ecf47f85fe0ef04ea5e1fd0ee7e10f84f58b5d07c4be0ed7a0bcd45b558b599754d22f22d2ed7fca13e0a7edbbfb687ecd7e15d43 -c0bfb39fed77fb4ffc01f04eade20baf166a9e0ef829f1f7e2b7c2bf0aea5e2abed3b4ad1efbc4da8787bc0be2cd0748bcf105e691a1687a5dd6b3716726a371 -a768da558cd72f6da759c50fa078b3fe0a6dff000524f1ef857c4de05f1d7fc141bf6dff001a7827c69e1fd67c27e31f0778b3f6aff8f3e23f0af8b3c2be23d3 -ae747f10f867c4de1ed63c7d79a46bde1fd7748bcbcd2f59d1b54b3bad3b54d3aeae6c6fada7b69e5898039ff897f14bf6b1ff0082a1fed93a6f8b3e22ebbff0 -bc7f6bafdaabe207c27f85ba7ea1fd99f0dbe19ffc279e3bbfb1f06fc14f85ba17d9742d3fe1ff00c32f0bf9b65a67847c33fda73db7877478fc8fed9f116a09 -34ba9eab27e9ff00fc3857fe0baffb0e7fc66b7fc329ff00c2afff00863fff008ca3ff008597ff000bcff63cf1affc2bbff867ff00f8bb1ff09cff00c21bff00 -0b8bc5bff096ff00c225ff000897f6ff00fc233ff08a789bfb7bfb3ffb2bfe11ed6bed7fd9b727fc1083fe0971fb767ed41fb53fec7bfb6b7c0bf819ff0009c7 -eccbfb3bfedfff00b3f7fc2e2f897ff0b37e0ef867fe10ff00f8549f117e107c58f883ff00146f8c3e20f87fe207883fe11ff87fe20d235fff008a5bc29adff6 -afdaff00b2b44fed2d6adeeb4d87ebff00f83a07fe0a07fb71691ff0562fdb0bf65ff0e7ed67fb407833f672f0bfc3ff00837f0b6cbe06f803e28f8b7e1ffc2c -d5fc09f123f66df877e3bf1fe85e35f04782b53d07c3ff00113fe132f107c4ff001aa788f53f1fd8f89758d5fc39a9d9f82ef75097c19e1ff0e681a4007c81ff -0011477fc175ff00e8f9bff359bf63cffe87daf9ff00f6a3ff0082f57fc1587f6d1f813e39fd9a3f697fdab3fe1657c12f895ff08cff00c26be0aff8519fb36f -83bfb6bfe10ef18f87bc7fe1cff8a8fc01f077c2be2dd3bfb3bc5be15d0756ff00894ebd61f6cfb07d82ff00ed5a65d5ed95c7e40d140051451400515fbfdff0 -4abff820afedd9fb68f8c7f630fda5ef7f653ff8595ff04f8f895fb407807fe16b78d7fe179fc1df077f6d7c09f077c764f007ed01ff0014e45f18bc2bf1b74e -feced33c2be3fd27fe29cd06c3c6379f60fb7f82bed57175a2dedc7f67bfb6b7fc119bfe0d77ff008276fc2cd03e35fed8bfb37ffc29ff00865e28f881a57c2d -d0bc4dff000b83fe0a19f103edde3bd6fc39e2bf16699a17f637c2df8a3e36f105b7da7c3fe09f13ea1fda779a55be8f0ff667d96e3508af6f74fb6bb00ff2c4 -a2bfbfcff8e147fcff00c3e1abf203f6a3ff00820afc76fdb47e3b78e7f697ff00821d7eca7ff0b2bfe0971f12bfe119ff008660f1affc2f3f07783bfb6bfe10 -ef07787bc01f1abfe29cfdaf3e317857f687d3bfb3bf687f0afc5ad27fe2e168361f6cfb07dbfc27f6af03dd786af6e003f982a2bd03e2cfc2df1dfc0ef8a7f1 -2fe0a7c52d0bfe117f89bf07fe2078cbe16fc45f0cff0069e8fadffc23be3bf87fe23d4bc27e2ed0bfb67c3ba86afe1fd5ff00b23c41a46a1a7ff69e85aaea7a -3dff00d9fed5a66a17b652c1732f9fd007bffecb9ff0cb1ff0bdbc0dff000dadff000d01ff000ccbff001537fc2cbff865cff8575ff0bdbfe44ef10ffc21bff0 -837fc2d8ff008b7fff002503fe114ff849bfb7ff00e64eff008487fb2bfe275fd9b5fdeefec5ff00f06b2ffc1137f6f4fd97fe107ed71f003f689ff828fde7c2 -9f8cfe1fbdd67c3d178b3c6bfb3e786bc55a2ea3a1788358f0778c7c27e26d1e5fd96aeada0f10782fc6de1cf11f84759b9d1353d77c2ba96a3a25cea7e10f13 -789fc2d79a3f88753ff3a3afe87bfe0dfcff0082bd7c42fd843f6dafd9ff00c3dfb44fed8ff183e1e7fc13bf49f0ff00c6af0cfc4df85dacea5f133e2a7c1af0 -ce9de27f03f8f3c6de17b9f09fc17d0749f1ec9e13f106a9fb41af83758b9f167c2ff07697e2a33eb3e268b5ad653c21e2af1ec1aa807f5bbff1054ffc12cbfe -8be7edff00ff00874ff675ff00e855afc41fd9d7fe094dff0006e87ed23ff051cf88ff00f04bcf0e7c5bff0082bff82bf68df87ff103e3e7c2db2d67c7fab7ec -9117c2cf885e3bfd9cb54f135b78ff0042f05789bc15f06bc6de20b6fb4f87fc13e35f1b787353f1ff00843c0ba3ea3e1cf0bded8de6a1a678cf53f0e784f5bf -b7ff00e0e16ff83877f655f8fdfb17fc31f077fc12bbfe0a01f18342fda0f4dfda7fc17e26f18de7c14d2bf6aefd9afc5527c1ab3f853f1ab4bf10db6a1e3ad6 -3c11f0aedb56f0fbf8db59f8792dd784e3f10de4f7da8c3a56b0ba35c47a14b7da77f087e19fda17e3ef82fe32dcfed19e0ef8e3f183c27fb41de7883c59e2cb -cf8ede19f897e34d07e32dd78abc7b06b36be3af135cfc4fd2f5ab5f1b4fe20f1a5b788fc436fe2cd665d71b51f11c1aeeb30eb173791ea97cb3807fb7cfec5f -fb21fc1afd82ff0065ff00841fb23fc00b2f1059fc29f831e1fbdd1bc3d2f8b35e9fc4be2ad6b51d77c41ac78c7c63e2cf136b12c56b6d3f883c69e36f11f88f -c5dacdb689a6685e15d3751d6ee74cf087867c31e16b3d1fc3da67d3f5fe20dff0f62ff82a6ffd24b3f6ff00ff00c4c8fda2bff9e357f53bff00068a7edbbfb6 -87ed29ff000524f8dbe05fda33f6bbfda7fe3f782749fd883e24f8b34bf077c6bf8fbf15be2a78574df1558fc79fd9ab47b1f1369fe1ef1d78b35ed22cfc4167 -a46bbae6976bacdbd9c7a8dbe9daceab630dca5b6a37914c01fe8b945145007f205ff07ab7fca2cbe01ffd9fff00c2cffd675fdaaabf7fbfe093bff28b2ff826 -9ffd9807ec6fff00acebf0e6bf8c2fd87fe1ddaffc15a3fe0be9ff000554fd887fe0a2ff00103f680fdaabf645f81df103f6e3f8a5f077f678f1ff00ed3dfb47 -587c2cf867e3bf867fb67f84be11fc3ed77c15e16f07fc54f0d59787ff00e10cf865f123c71e07f0e699a72c1a3e93e1cf115ee9d69a7c50a5a883fbfcf84ff0 -b7c09f03be167c34f829f0b742ff00845fe197c1ff0087fe0df85bf0ebc33fda7ac6b7ff0008ef813e1ff8734df09f84742fed9f116a1abf88357fec8f0fe91a -7e9ffda7aeeaba9eb17ff67fb56a7a85edecb3dcca01e814514500145145001451450014514500145145001451450014514500145145001451450015fe20dff0 -562ff94a6ffc14b3fecfff00f6c8ff00d68af88d5fedf35fe20dff000562ff0094a6ff00c14b3fecff00ff006c8ffd68af88d401fe9f7ff06b8ffca0a3f619ff -00bb99ff00d6c3fda0abf7fabf007fe0d71ff94147ec33ff007733ff00ad87fb4157eff500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -0014514500145145001451450014514500145145007f205ff0654ffca2cbe3e7fd9fff00c53ffd675fd956bf6fbf6d6ff82ccffc1363fe09dbf14f40f829fb62 -fed21ff0a7fe26f8a3e1fe95f14b42f0cffc29ff008f5f103edde04d6fc47e2bf09e99aeff006cfc2df85de36f0fdb7da7c41e09f13e9ffd9979aadbeb10ff00 -667daae34f8acaf74fb9bbfc41ff00832a7fe5165f1f3fecff00fe29ff00eb3afecab5fabfff00055aff008226fec7bff0534f0afc51f895e3af839e1ff11fed -a16bfb3078dbe0a7ecd9f17fc59f15fe39f82fc2bf0f7c55069df1175ff83ba8789bc35f0dfc58be16d53c3fe13f8ade3dbcf146b375aa7c39f1a6a37ba74f73 -617da5788f4eb5b1d08007c41fb58ffc1d1dff00049eff008658fda5bfe1973f6e6ff8c9aff867ff008c9ff0ce9ff18cdfb497fc976ff8575e23ff008545ff00 -2513f67dff00857fff002503fe11eff91e7fe28eff00a19bfe24bf6eaf8fff00e0dfcff838f3c09f1c7e16597c14ff00829cfed93ff0947edcff00183f6bfb6f -85bf003c33ff000cf3ac689ff0917813e207873e0cf84fe15685fdb3fb3efc0dd23e0fe91fdaff0018357f1f69ff00da7e35d574cd62c3ed1f6af11ea165e178 -b45b98bf803fdb5bf60afdac7fe09dbf14f40f829fb62fc29ff853ff00137c51f0ff004af8a5a17867fe13af86df103edde04d6fc47e2bf09e99aeff006cfc2d -f18f8dbc3f6df69f107827c4fa7ff665e6ab6fac43fd99f6ab8d3e2b2bdd3ee6ef9ffd88be35f857f66bfdb43f644fda33c75a7f88356f04fc01fda7fe017c6b -f18e97e13b5d3afbc55a97857e15fc56f09f8ebc43a7f866c758d5741d22f3c4179a4685796fa35aea9ae68da75c6a325b437daae9d6cf2de4201fec35fb6b7f -c119bfe09b1ff0512f8a7a07c6bfdb17f66fff0085c1f137c2ff000ff4af85ba1789bfe1707c7af87ff61f02689e23f15f8b34cd0bfb1be16fc51f04f87ee7ec -de20f1b789f50fed3bcd2ae3589bfb4fecb71a84b6565a7db5a7f205e3eff8370ff6b1f81dff0005e6f823f1aff623fd8dbfe117ff00826c7c1ffdafff0061cf -8a5e1af137fc3437c36d6ffe11df027c3f9be04f8b3e3aebbfd8df16fe396aff001eb57fec8f1d691f13350feccbfd2b53d62ffecff65f0769f7ba3cbe1fb697 -f4ff00fe2356ff0082597fd103fdbfff00f0d67ecebffd15547fc46adff04b2ffa207fb7ff00fe1acfd9d7ff00a2aa803e40ff0083a07fe08cdff0527ff82897 -edf5f08be35fec75fb37ff00c2e0f865e17fd903c03f0b75df137fc2e0f80bf0ff00ec3e3bd13e347c7ff166a7a17f637c52f8a3e09f105cfd9bc3fe36f0c6a1 -fda767a55c68f37f69fd96df5096f6cb50b6b4fe20bf6d6fd82bf6b1ff008276fc53d03e0a7ed8bf0a7fe14ffc4df147c3fd2be29685e19ff84ebe1b7c40fb77 -8135bf11f8afc27a66bbfdb3f0b7c63e36f0fdb7da7c41e09f13e9ff00d9979aadbeb10ff667daae34f8acaf74fb9bbfe97bfe0a81ff00076cfed55f153e3ef8 -43c43ff04aef8c3f183f66bfd9f2cfe0fe81a378c7c0bf1afe007eca3af78ab56f8cb6fe34f8817de21f1669f79ac69bf1fae63f0fdf782751f879a3dadb47e3 -1d3604d4742d5655f0cd9c934baa6b3fcd0fedadfb7afed63ff0512f8a7a07c6bfdb17e2b7fc2e0f89be17f87fa57c2dd0bc4dff00082fc36f87ff0061f02689 -e23f15f8b34cd0bfb1be16f83bc13e1fb9fb37883c6de27d43fb4ef34ab8d626fed3fb2dc6a12d95969f6d6801e81f00bfe0971fb767ed41fb2c7c6afdb5be05 -fc0cff0084e3f665fd9dff00e163ff00c2e2f897ff000b37e0ef867fe10fff008549f0eb46f8b1f107fe28df187c41f0ff00c40f107fc23ff0ff00c41a46bfff -0014b78535bfed5fb5ff0065689fda5ad5bdd69b0fd7ff00f0479ff82337ed63ff000512f8a7f023e35f877f66ff00f85c1fb0c785ff006bff00861f0b7f6a7f -137fc2e0f86df0ff00ec3e04d13c47f0c7c59f1c342fec6bef8a3e09f8c173f66f83fe368350fed3f875a55c6b137f69fd97c23a84be28b27b6b43fe08f3fb7a -fed63e10f8a7f023fe097fe1df8adfd9dfb0c7edd1fb5ffc30f85bfb53fc0eff008417e1b5dffc2d1f027ed37e23f863fb3d7c70d0bfe165df783ae7e307827f -e136f83f6d07843fb4fe1d7c40f08eb1e1bd9fdbfe11d4340f1433eb4dfd9efeddff00f0508ff8271ffc1b57f0b3e30ffc13a3f63af80ffb407c15f8dbf1e7f6 -7ff883fb51fc11f14f80134bf8dff0b3c23f1dbe28f873c61f02fe1b78e7c6badfed2bf1d7c47e2d8ffb07c5bf023c31a8f88fc3367e07f17f8393c39a559ddd -bf87b5fd4f56d7b489c03cff00fe0a2bfb7aff00c1363fe0839fb1b7ed97ff0004fdff008251fc56ff008655fdbebc3bf103e10fc52d1fe127fc20bf1ebe38fd -8fc77f132fbf673d4bc6faeffc27bfb48783be307c18b8fedbfd962cada7feccbaf19cfa3e9be5797a469f61f115e48dff00cf0ff6a3fda8fe3b7eda3f1dbc73 -fb4bfed2fe39ff008595f1b7e257fc233ff09af8d7fe119f07783bfb6bfe10ef07787bc01e1cff008a73c01e1ef0af84b4efecef09785741d27fe253a0d87db3 -ec1f6fbffb56a7757b7b707ed47fb51fc76fdb47e3b78e7f697fda5fc73ff0b2be36fc4aff008467fe135f1aff00c233e0ef077f6d7fc21de0ef0f7803c39ff1 -4e7803c3de15f0969dfd9de12f0ae83a4ffc4a741b0fb67d83edf7ff006ad4eeaf6f6e3c02800a2bf5fbf65cff00820aff00c1587f6d1f813e06fda5ff00668f -d94ffe1657c12f895ff0937fc215e35ff85e7fb36f83bfb6bfe10ef18f887c01e23ff8a73c7ff18bc2be2dd3bfb3bc5be15d7b49ff0089b68361f6cfb07dbec3 -ed5a65d595edc7e8ff00ec53ff0006ac7fc15435efdae3f672b1fdae3f646f0ff82ff65c83e30781f59fda1b58f137ed23f05aeb4ebcf835e1cd6ed7c43f117c -276d17c0af8bbe2cf8acbe20f1ef85b4bd4fc0be13b9f08e976b3d9f8abc47a35e6a7e26f05e8706a7e31d0803f9e1fd973f65cf8edfb68fc76f037ecd1fb347 -81bfe1657c6df895ff000937fc215e0aff00849bc1de0efedaff00843bc1de21f1ff0088ff00e2a3f1ff00887c2be12d3bfb3bc25e15d7b56ff89b6bd61f6cfb -07d82c3ed5a9dd59595c7fa3e7fc12e3fe0d71fd84ff00e184fe067fc3cbbf619ff8cdaff8b9bff0babfe3267e317fd162f883ff000ae3fe4817ed05ff000a97 -fe492ffc207ff229ff00dc77fe2a5fed9afa03f6a3ff00820afc09fd8bbe04f8e7f697ff00821d7eca7ff0ad7fe0a8ff000d7fe119ff008660f1affc2f3f18f8 -c7fb17fe131f18f87bc01f1abfe29cfdaf3e3178abf678d47fb47f678f157c5ad27fe2e16837ff0063fb7fdbfc27f65f1c5af86af6dff901fda8ff00e0bd5ff0 -726fec5df1dbc73fb347ed2ffb567fc2b5f8dbf0d7fe119ff84d7c15ff000a33f60bf18ff62ffc263e0ef0f78ffc39ff00151f803e0ef8abc25a8ff68f84bc55 -a0eadff129d7affec7f6ff00b05ffd9753b5bdb2b700ff004fcfd973f65cf813fb177c09f037ecd1fb34781bfe15afc12f86bff0937fc215e0aff849bc63e31f -ec5ff84c7c63e21f1ff88ffe2a3f1ff887c55e2dd47fb47c5be2ad7b56ff0089b6bd7ff63fb7fd82c3ecba65ad9595bff9c1ff00c1cb9ff0fd7ff8bb1ff0dcff -00f28cbff86fff001dff00c31dff00c99e7fd578ff00867cff00923fff001901ff0026ff00ff000977fc951ffb9dbfe2b5feccafdbeff82307fc1d41f04fe38f -873f641fd8e3f6dcd63f680f147edcff00183e206b7f0b7c4bf1fbfe14e7c22d13e04f88bc77f103e29f8c21f815a17d9fe12789348f10691fdafe1fd5fe19fc -2cfed3b0f815a668f61e31b8fed8f18ea165e178bc41f10a2f40ff0083d5bfe5165f00ff00ecff00fe167feb3afed55401fe6095fafdfb2e7fc17abfe0ac3fb1 -77c09f037ecd1fb347ed59ff000ad7e097c35ff849bfe10af057fc28cfd9b7c63fd8bff098f8c7c43e3ff11ffc547e3ff83be2af16ea3fda3e2df156bdab7fc4 -db5ebffb1fdbfec161f65d32d6cacadff2068a00fecf759ff823378eff00e0a87ff044afd983fe0a05fb2efecdff00f0bc7fe0aa9fb557ed7ff1f3e297ed69f1 -6ffe17068ff0cffe13cf025ffc70fdb234df18ebbff0817c43f8a3f0ff00f672f0bf9be33d33e11c1fd99f0d7c19e1dd623f23ccd2f4f4d2a5f134927f283fb5 -1fecb9f1dbf62ef8ede39fd9a3f697f037fc2b5f8dbf0d7fe119ff0084d7c15ff093783bc63fd8bff098f83bc3de3ff0e7fc547e00f10f8abc25a8ff0068f84b -c55a0eadff00129d7aff00ec7f6ffb05ff00d9753b5bdb2b7ff57bff00835c7fe5051fb0cffddccffeb61fed055fcc0ffc17abfe082bff000561fdb47fe0ac5f -b567ed2ffb347eca7ff0b2be097c4aff008519ff0008578d7fe179fecdbe0efedaff00843bf66df83be00f11ff00c539e3ff008c5e15f16e9dfd9de2df0aebda -4ffc4db41b0fb67d83edf61f6ad32eacaf6e003f883a2bf7fbfe2171ff0082ebff00d18cff00e6ccfec79ffd10547fc42e3ff05d7ffa319ffcd99fd8f3ff00a2 -0a803f0068afdfeff885c7fe0bafff004633ff009b33fb1e7ff44157f6fbfb277fc1ae3ff049eff8658fd9a7fe1a8ff619ff008c9aff00867ff837ff000d17ff -001933fb497fc976ff008575e1cff85bbff24eff00682ff857ff00f2503fe121ff00911bfe28effa167fe24bf61a00ff00284afaff00f629fdbd7f6b1ff8276f -c53d7fe35fec75f15bfe14ff00c4df147c3fd57e16ebbe26ff008417e1b7c40fb778135bf11f857c59a9e85fd8df14bc1de36f0fdb7da7c41e09f0c6a1fda767 -a55beb10ff00667d96df508acaf750b6bbfd3fff0083817c3fff000485f851fb4769bfb337fc12e3e057c40f851e2dfd9a3e207c70f85bfb5b78b3c45e25f8b1 -e24f0278fbc77a1dd7c3bd1b42d0be1d5cfc63f8b7e3ef16bffc2a8f16e87f18bc1de2ed4ffe10ff0000e8fae6b060d47c33a87c43f093f87bc4c9f803401feb -f5ff0004abff0082f57ec27fb68f83bf630fd9a2f7f6acff008595ff000507f895fb3ff807fe16b782bfe1467c62f077f6d7c76f077c094f1ffed01ff151c5f0 -77c2bf04b4efeced4fc2be3fd5bfe29cd7ac3c1d79f60fb0782bed56f75a2d95c7eff57f8437ecb9fb51fc76fd8bbe3b781bf697fd9a3c73ff000ad7e36fc35f -f849bfe10af1affc233e0ef18ff62ffc263e0ef10f803c47ff0014e78ffc3de2af096a3fda3e12f156bda4ff00c4db41bffb1fdbfedf61f65d4ed6caf6dffd56 -ff00e0863ff05e4f805ff054af0af85bf67396efe3027eda1f06bf660f85be39f8fbaa7c47f875e0bf097857e2f78ab46d3bc23e05f8e3f127e18df7c30d7f5e -f0b59f87ecfe2b6bba3dc3687e21d0fe15ea33e9de3ff0fcde0ef04dc69da4f8b2cfc1e01f843ff040bff95a6bfe0b51ff00791bff00d78a7c1bafeff2bf803f -f8205ffcad35ff0005a8ff00bc8dff00ebc53e0dd7f7f940051451400514514005145140051451400514514005145140051451400514514005145140057f8837 -fc158bfe529bff00052cff00b3ff00fdb23ff5a2be2357fb7cd7f8837fc158bfe529bff052cffb3fff00db23ff005a2be235007fa7dffc1ae3ff002828fd867f -eee67ff5b0ff00682afdfeafc01ff835c7fe5051fb0cff00ddccff00eb61fed055fbfd4005145140051451400514514005145140051451400514514005145140 -05145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140 -05145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140 -05145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140 -05145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140 -05145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140 -05145140051451400514514005145140051451401fe6c9ff000403ff008290fecf1f04ff00e0911fb677fc13e347f8f9e20f875ff051dfdad3e307ed13e19fd8 -9fe1ff0084fc3df16f47f157897e32fc78fd993e0d7c12fd9bee7c33f1b3c33e174f86df0afc41acfc76d262d1746f1678c7e25f81a0f03ea3636de2df10eb3e -19d062b7d7c7e307edadf1b7fe0bfdff0004edf8a7a07c14fdb17f6d6fdbff00e0ff00c4df147c3fd2be29685e19ff0087817c41f881f6ef026b7e23f15f84f4 -cd77fb67e16fc77f1b787edbed3e20f04f89f4ff00eccbcd56df5887fb33ed571a7c5657ba7dcddff47dff0006937fc12e3f613fda83f658d4bf6d6f8e9f033f -e138fda6bf677fdbfef3fe14efc4bff859bf18bc33ff00087ffc2a4f875fb377c58f87dff146f83fe20f87fe1ff883fe11ff00881e20d5f5ff00f8aa7c29adff -006afdaffb2b5bfed2d16ded74d87fabdfdb5bfe08cdff0004d8ff0082897c53d03e35fed8bfb37ffc2e0f89be17f87fa57c2dd0bc4dff000b83e3d7c3ff00b0 -f81344f11f8afc59a6685fd8df0b7e28f827c3f73f66f1078dbc4fa87f69de69571ac4dfda7f65b8d425b2b2d3edad003fc69be35fed0bf1f7f694f1569fe3af -da33e38fc60f8fde36d27c3f6be13d2fc63f1afe25f8d3e2a78ab4df0ad8ea3aaeb163e19d3fc43e3ad6b5ed5ecfc3f67abebbae6a96ba35bde47a75bea3acea -b7d0db25cea3792cde3f5fdfe7edf5ff0006b8ff00c6d37f62bff8618fd867fe3597ff0018e3ff000d89ff001933ff005715e32ff8683ff92c1fb417fc3407fc -9bff00fc223ff24bbfee49ff008ad7fb4ebf107fe0e81fd82bf64eff008276fedf5f08be0a7ec75f0a7fe14ffc32f147ec81e01f8a5aef867fe13af893f103ed -de3bd6fe347c7ff09ea7aeff006cfc52f18f8dbc416df69f0ff827c31a7ff6659eab6fa3c3fd99f6ab7d3e2bdbdd42e6ec03f9c1a2bebffd9c3f60afdac7f6b7 -f859fb4e7c6bfd9efe14ff00c2c0f865fb1bfc3f8fe297ed21e26ff84ebe1b7853fe15cf8125f0e7c40f1647aeff006378dfc63e1bf1078bf7787fe16f8ef50f -eccf01e95e28d607f617d95b4f17ba9e8f6da87807c27f85be3bf8e3f14fe1a7c14f85ba17fc251f137e307c40f06fc2df875e19fed3d1f44ff848bc77f103c4 -7a6f84fc23a17f6cf88b50d23c3fa47f6bf88357d3f4ff00ed3d7755d3347b0fb47dab53d42caca29ee6200f3fa2bebffdb5bf60afdac7fe09dbf14f40f829fb -62fc29ff00853ff137c51f0ff4af8a5a17867fe13af86df103edde04d6fc47e2bf09e99aeff6cfc2df18f8dbc3f6df69f107827c4fa7ff00665e6ab6fac43fd9 -9f6ab8d3e2b2bdd3ee6efd03f618ff00825c7edd9ff0528ff85a3ff0c53f033fe1747fc297ff008427fe165ffc5cdf83bf0e7fe11aff00858dff000977fc21bf -f2567e20f813fb63fb63fe104f15ff00c803fb57fb3ffb2bfe26bf61fb769bf6c00f883c27e2cf15780bc55e19f1d7817c4de20f05f8dbc17e20d1bc59e0ef18 -f84f59d47c39e2af09f8abc39a8db6b1e1ef137867c43a3dcd9eafa0f88342d5ececf54d1b59d2ef2d751d2f51b5b6beb1b982e608a55f40f8d7fb42fc7dfda5 -3c55a7f8ebf68cf8e3f183e3f78db49f0fdaf84f4bf18fc6bf897e34f8a9e2ad37c2b63a8eabac58f8674ff10f8eb5ad7b57b3f0fd9eafaeeb9aa5ae8d6f791e -9d6fa8eb3aadf436c973a8de4b37ecf7fc42e3ff0005d7ff00a319ff00cd99fd8f3ffa20abdfff0064eff835c7fe0ac3ff000d4ffb34ff00c351fec33ff18cbf -f0d01f06ff00e1a2ff00e3267f66dff9213ff0b17c39ff000b77fe49dfed05ff000b03fe49ff00fc243ff2237fc563ff0042cffc4ebec3401f207fc11e7fe08c -dfb58ffc144be29fc08f8d7e1dfd9bff00e1707ec31e17fdaffe187c2dfda9fc4dff000b83e1b7c3ff00b0f81344f11fc31f167c70d0bfb1afbe28f827e305cf -d9be0ff8da0d43fb4fe1d69571ac4dfda7f65f08ea12f8a2c9edad3fd0f3fe2171ff0082147fd18cff00e6ccfed87ffd1055fa7ffb14fec15fb277fc13b7e166 -bff053f63af853ff000a7fe1978a3e206abf14b5df0cff00c275f127e207dbbc77adf873c2be13d4f5dfed9f8a5e31f1b7882dbed3e1ff0004f8634ffeccb3d5 -6df4787fb33ed56fa7c57b7ba85cddfd7f401e01fb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff842bc15ff0009378c7c63fd8bff0009 -8f8c7c43e3ff0011ff00c547e3ff0010f8abc5ba8ff68f8b7c55af6adff136d7affec7f6ff00b0587d974cb5b2b2b7f97ffe0ae7e19fdb6bc69ff04eafda63c1 -dff04e9b9f1059fed87e2cf0ff0082fc33f0a6f3c27e2cf03f80bc556ba76bbf143c0fa5fc54b9f0cf8ebe21eb3e1cf0df82fc4107c1bbaf8832e8de2c8bc43a -178abc39a8adb6b1e01d674bf1e59f86efa0fd1fa2803fca13f6a3fd9dbfe0eaff00d8bbe04f8e7f697fda5ff680fdbffe1afc12f86bff0008cffc26be35ff00 -879ddbf8c7fb17fe131f18f87bc01e1cff008a73c01fb5478abc5ba8ff0068f8b7c55a0e93ff00129d06ff00ec7f6ffb7dff00d974cb5bdbdb7fe70be297c58f -8a7f1c7c77aefc52f8d7f12fe207c60f89be28feccff00849be22fc52f19788fe2078efc45fd89a3e9fe1dd1bfb77c5de2cd4b57f106affd91e1fd234ad0b4cf -ed0d42e3ec1a3e99a7e996be559595b4117fa5dffc1d1dff000547fd84ff00e184ff006e6ff8268ffc2f3ff8cdaff8c66ff8b2bff0acbe317fd162fd9f7e3eff -00c947ff00857dff000a97fe492ffc559ff23e7fd40bfe465ff89357f105fb2e7fc1057fe0ac3fb68fc09f037ed2ff00b347eca7ff000b2be097c4aff849bfe1 -0af1affc2f3fd9b7c1dfdb5ff08778c7c43e00f11ffc539e3ff8c5e15f16e9dfd9de2df0aebda4ff00c4db41b0fb67d83edf61f6ad32eacaf6e003f287c27e2c -f15780bc55e19f1d7817c4de20f05f8dbc17e20d1bc59e0ef18f84f59d47c39e2af09f8abc39a8db6b1e1ef137867c43a3dcd9eafa0f88342d5ececf54d1b59d -2ef2d751d2f51b5b6beb1b982e608a55f7ff008d7fb6efeda1fb4a78574ff02fed19fb5dfed3ff001fbc13a4f882d7c59a5f83be35fc7df8adf153c2ba6f8aac -74ed5747b1f1369fe1ef1d78b35ed22cfc4167a46bbae6976bacdbd9c7a8dbe9daceab630dca5b6a37914df507c19fd82bc77f07ff00e0ae1fb2c7fc13f7f6e9 -f853ff0008ef88357fdaff00f642f85bf1ebe127fc275a3eaff68f027c71f1bfc2ad4aef42ff0084f7e0ff008c753b28bfe128f865f102c67fed3f0678ce2d63 -44fed7f2e2d4348f10584d1d97dfff00b0f7ec15fb277c60ff008396fc6bff0004fdf88bf0a7fe122fd91748fdafff00e0a13f0b74ff00849ff09d7c49d23ecf -e04f81de14fda5b52f85ba17fc27ba178c74cf89b2ff00c22f7bf0ff00c233ff0069cfe339758d6ffb23cbf116a1abc37fa9c77a01f881fb2e7ecb9f1dbf6d1f -8ede06fd9a3f668f037fc2caf8dbf12bfe126ff842bc15ff00093783bc1dfdb5ff00087783bc43e3ff0011ff00c547e3ff0010f857c25a77f67784bc2baf6adf -f136d7ac3ed9f60fb0587dab53bab2b2b8fe9fbfe0971ff06b8fedd9ff000dd9f033fe1e5dfb0cff00c612ff00c5cdff0085d5ff001933f077fe88efc41ff857 -1ff240bf682ff85b5ff256bfe103ff00914ffee3bff14d7f6cd7f6fbfb2e7fc1057fe093dfb177c76f037ed2ff00b347eca7ff000ad7e36fc35ff849bfe10af1 -affc2f3fda4bc63fd8bff098f83bc43e00f11ffc539e3ff8c5e2af096a3fda3e12f156bda4ff00c4db41bffb1fdbfedf61f65d4ed6caf6dff5fa803c7fe00fc0 -1f835fb2d7c1af87bfb3e7ecf9f0f7c3ff000afe0dfc2bf0fc3e19f02f817c330ce9a7691a724f717d797373797d7179abebbe20d7757bcd47c45e2cf1678875 -1d5bc55e32f156adacf8afc57aceb3e24d6754d52efd828a2800a28a2800a28a2803fcb13fe0a13ff06e1ffc1673e38fedf5fb70fc6bf85bfb1b7fc251f0cbe3 -07ed7ffb4b7c52f875e26ff8686fd95344ff00848bc09f103e3478d7c59e11d77fb1bc45f1cb48f10691fdafe1fd5f4fd43fb335dd2b4cd62c3ed1f65d4f4fb2 -bd8a7b68bf107e017fc12e3f6ecfda83f6a7f8d5fb14fc0bf819ff0009c7ed35fb3bff00c2c7ff0085c5f0d3fe166fc1df0cff00c21fff000a93e22e8df09fe2 -0ffc565e30f883e1ff0087fe20ff00847fe20788348d03fe296f15eb7fdabf6bfed5d13fb4b45b7bad4a1ff4fbff0082e77fc3f5ff00e3177fe1ca9ff55b7fe1 -a5bfe4cf3fea91ff00c29bff0093b1ff00baabff00220ffdcd5ff32e57d01ff04d1ff825c7c09fd97ffe113fdb5bc61f033fe107ff00829a7ed11fb3fe85ff00 -0dd9f12ffe166f8c7c4dff000987c76f8b7ff081fc58fda7bfe28dd2fe20f883f67ff0ff00fc241fb40787eeb5ff00f8b3be14d13c1da57d93fb2be1f7f66f82 -ae23d36600ff00343ff8236fec15e04f8c1ff05b5f83dff04fdfdba7e14ffc245e1fd23e207ed4bf0b7e3d7c24ff0084eb58d23ecfe3bf81df03fe39ea577a17 -fc27bf07fc63a65ecbff0008bfc4df87f633ff0069f833c672e8fadff6479716a1abf87efe68ef7fd46ff621ff0082467fc13abfe09c7e2af1c78ebf635fd99f -c3ff00087c6df117c3fa7784fc55e31b9f1a7c50f899e2a9fc2ba6ea2dac0f0ce8de21f8bbe38f1eeafe13f0fea9abad86a9e26d1bc2579a1e9de2ed4740f09d -f78a6db58b9f0778565d1ff863f8cdff000466ff008384be0fff00c15c3f6a8ff82817ec2dfb37ff00c23be20d5ff6bffdaf7e297c05f8b7ff000b83f623d5fe -d1e04f8e3e37f8aba6da6bbff0817c60f8a3a9d945ff000947c32f8817d07f6678cfc1916b1a27f6bf992e9fa47882c2192cbfd0f3f64eff0085edff000cb1fb -34ff00c351ff00c9cd7fc33ffc1bff00868bff00913bfe4bb7fc2baf0e7fc2ddff009277ff0016ff00fe4a07fc243ff2237fc51dff0042cffc497ec3401fc417 -fc102ffe569aff0082d47fde46ff00f5e29f06ebfbfcafe00ffe0817ff002b4d7fc16a3fef237ffaf14f8375fdfe500145145001451450014514500145145001 -45145001451450014514500145145001451450015fe20dff000562ff0094a6ff00c14b3fecff00ff006c8ffd68af88d5fedf35fe20dff0562ff94a6ffc14b3fe -cfff00f6c8ff00d68af88d401fe9f7ff0006b8ff00ca0a3f619ffbb99ffd6c3fda0abf7fabf007fe0d71ff0094147ec33ff7733ffad87fb4157eff0050014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145007f205ff000654ff00ca2cbe3e7fd9ff00fc53 -ff00d675fd956bfafdaff284ff008378bf669ff82c97c4af8a7fb397c62fd8ebc47fb4069dff0004f8f00fedff00f087fe1a9f48f007ed63a17c28f8597fff00 -08af88fe09f8a7e387fc26bf02efbe32783b53f895f6af8257fe18b5f11fd8fe1ef8abfe131f0e259f83edff00b72e34e7d12d7fadeff82e7fecb9ff0005f7f8 -e1fb687ec69e31ff0082577c73f107c3afd9f3c29e1fd12cbc6367e1bf8e7e1bf84de15f87df1960f8adfda9e21f8a1fb46f81758fb0dcfc7ef83fa8f8264f87 -915878063f0f7ed0f043a77c3ef8aba3afc1bd3e4f1dcb63f15c03fa9dafcc0fdb5bfe08cdff0004d8ff0082897c53d03e35fed8bfb37ffc2e0f89be17f87fa5 -7c2dd0bc4dff000b83e3d7c3ff00b0f81344f11f8afc59a6685fd8df0b7e28f827c3f73f66f1078dbc4fa87f69de69571ac4dfda7f65b8d425b2b2d3edad3f4f -ebf982ff00829cfecd3ff0592f895ff05a0ff827b7c62fd8ebc47fb4069dff0004f8f00ffc3277fc353e91e00fdac742f851f0b2ff00fe115fdab7c7de29f8e1 -ff0009afc0bbef8c9e0ed4fe257dabe095ff00862d7c47f63f87de2aff0084c7c38967e0fb7fedcb8d39f44b500fd3efd9c3fe08cdff0004d8fd923e167ed39f -053f67bfd9bffe15ff00c32fdb23e1fc7f0b7f690f0cff00c2e0f8f5e2bff858de048bc39f103c271e85fdb3e37f8a3e24f1078436f87fe2978ef4ff00ed3f01 -eabe17d60ff6efda9b5037ba668f73a7f807c27ff8370ffe08c7f03be29fc34f8d7f0b7f636ff845fe26fc1ff881e0df8a5f0ebc4dff000d0dfb55eb7ff08ef8 -efe1ff0088f4df1678475dfec6f117c72d5fc3fabff64788348d3f50feccd774ad4f47bffb3fd9753d3ef6ca59eda5f883fe0b9ffb2e7fc17dfe387eda1fb1a7 -8c7fe095df1cfc41f0ebf67cf0a787f44b2f18d9f86fe39f86fe137857e1f7c6583e2b7f6a7887e287ed1be05d63ec373f1fbe0fea3e0993e1e4561e018fc3df -b43c10e9df0fbe2ae8ebf06f4f93c772d8fc57f3ff00dbbbf650ff0082fbf8dbfe0ba9fb3dfc70f813f13fe306a5ff0004c2d0fe307ec67aceb9e10f84ff00b5 -4786fe10fc3df087c1af0778c3c1b71fb46784fe30fc10b8f1ff00c30d5fe2b788356d5ec3e27f8c35bb95f097c5e9fc5ff0cfc63e0df025af89b525d0e1f867 -e0900fd9efdb5bfe08cdff0004d8ff0082897c53d03e35fed8bfb37ffc2e0f89be17f87fa57c2dd0bc4dff000b83e3d7c3ff00b0f81344f11f8afc59a6685fd8 -df0b7e28f827c3f73f66f1078dbc4fa87f69de69571ac4dfda7f65b8d425b2b2d3edad3d03f618ff00825c7ec27ff04d7ff85a3ff0c53f033fe14bff00c2e8ff -008427fe165ffc5cdf8c5f11bfe125ff008573ff000977fc21bff2567e20f8effb1ffb1ffe13bf15ff00c803fb2bfb43fb57fe26bf6efb0e9bf63fbfebf007f6 -ff00f805ff000592f1f7fc15c3fe09abf163f63af8d5ff000877fc13e3e1d7d87fe1a9fc1b17c47d0bc31e1c8fecbe37d6352f8e1ff0b5be1a5f68d3ea7f197f -e172fc129fc31f0d3f67ff00b1e9bf12bfe1547c53d1b5af195bff00c33ddc5fbfc59d7003f7fa8afe48bf6eefd943fe0befe36ff82ea7ecf7f1c3e04fc4ff00 -8c1a97fc130b43f8c1fb19eb3ae7843e13fed51e1bf843f0f7c21f06bc1de30f06dc7ed19e13f8c3f042e3c7ff000c357f8ade20d5b57b0f89fe30d6ee57c25f -17a7f17fc33f18f837c096be26d4974387e19f827d83fe0a73fb34ff00c164be257fc1683fe09edf18bf63af11fed01a77fc13e3c03ff0c9dff0d4fa47803f6b -1d0be147c2cbff00f8457f6adf1f78a7e387fc26bf02efbe32783b53f895f6af8257fe18b5f11fd8fe1f78abfe131f0e259f83edff00b72e34e7d12d403fa7da -28afe48bf6eefd943fe0befe36ff0082ea7ecf7f1c3e04fc4ff8c1a97fc130b43f8c1fb19eb3ae7843e13fed51e1bf843f0f7c21f06bc1de30f06dc7ed19e13f -8c3f042e3c7ff0c357f8ade20d5b57b0f89fe30d6ee57c25f17a7f17fc33f18f837c096be26d4974387e19f82403fadda2bf982ff8669ff82c97fc449bff000d -17ff00091fed01ff000e8bff00a17bfe1ac742ff008513ff002617ff000837fc9ae7fc2e4fedaff939aff4eff9245ff238ff00c5c4ff008f4ff8a9ab9ffda8ff -0065cff82fbf89ff00e0beff00033e3b7c09f8e7e20d1ffe0985a3f883e065eeb9a1d97c73f0de81f06bc35f06b40f0dfd9ff68cf85ff143f674b8f2b57f88ff -00183e23eaf17c4f6f00f8f97e187c4c9f449fe267c1bbab5f8c9f0e97e1d4337c1800fd1ffda8ff00e082bff049efdb47e3b78e7f697fda5ff653ff008595f1 -b7e257fc233ff09af8d7fe179fed25e0efedaff843bc1de1ef007873fe29cf007c62f0af84b4efecef09785741d27fe253a0d87db3ec1f6fbffb56a7757b7b71 -f7ff00ecb9fb2e7c09fd8bbe04f81bf668fd9a3c0dff000ad7e097c35ff849bfe10af057fc24de31f18ff62ffc263e31f10f8ffc47ff00151f8ffc43e2af16ea -3fda3e2df156bdab7fc4db5ebffb1fdbfec161f65d32d6cacadfdfebf982ff008669ff0082c97fc449bff0d17ff091fed01ff0e8bffa17bfe1ac742ff8513ff2 -617ff0837fc9ae7fc2e4fedaff00939aff004eff009245ff00238ffc5c4ff8f4ff008a9a803f4fbe25ff00c119bfe09b1f183f6c9d37fe0a05f117f66fff0084 -8bf6bad23e207c27f8a5a7fc5bff0085c1f1eb48fb3f8efe0758f8374df85baeff00c205a17c51d33e194bff0008bd97c3ff0008c1fd993f8325d1f5bfec8f33 -c45a7eaf35fea725e9f0d3fe08cdff0004d8f83ffb64ea5ff0502f875fb37ffc23bfb5d6aff103e2cfc52d43e2dffc2e0f8f5abfda3c77f1c6c7c65a6fc52d77 -fe102d77e28ea7f0ca2ff84a2cbe2078ba0fecc83c19168fa27f6bf99e1dd3f489ac34c92cbf187e387eca1ff05f7d7bfe0e19d17e3efc09f89ff183c17ff04c -283e307ecf5aceb96de26fdaa3c3775fb3c5e7c1af0e7c08f869a37ed19e13b6fd95ee3c7fe2cd5d7c41e3dd5f4bf89fe13f09dcafc0eb59ecfe2df88f46f89f -6be26f05ac10fc57d0bd03f65cfd973fe0befe18ff0082fbfc73f8edf1dbe39f88358ff82616b1e20f8e77ba1e877bf1cfc37aff00c1af12fc1ad7fc37f67fd9 -cfe17fc2ff00d9d2dfcdd5fe1c7c60f871abcbf0c1bc7de3e6f861f0ce7d6e7f867f192eaebe327c455f88b34df19c03fa9da28afe707c1bfb3aff00c164ad7f -e0e2af8b3fb427fc2c7f881a1ffc122f51f87fa6d9ff00c217e32f8f9a178abe1678c7cbfd97be1a785bfe11cf84ff00b3c7fc24de31d6be1afc40b5fda6ac3f -e13cd4bc6bff000827c28fb7f873c2bf12d7fe13fd46d3c7dff08a7c4a00fe8fa8afe58bf65cfd973fe0befe18ff0082fbfc73f8edf1dbe39f88358ff82616b1 -e20f8e77ba1e877bf1cfc37aff00c1af12fc1ad7fc37f67fd9cfe17fc2ff00d9d2dfcdd5fe1c7c60f871abcbf0c1bc7de3e6f861f0ce7d6e7f867f192eaebe32 -7c455f88b34df19fa0ff008669ff0082c97fc449bff0d17ff091fed01ff0e8bffa17bfe1ac742ff8513ff2617ff0837fc9ae7fc2e4fedaff00939aff004eff00 -9245ff00238ffc5c4ff8f4ff008a9a803fa7da28afe58bf65cfd973fe0befe18ff0082fbfc73f8edf1dbe39f88358ff82616b1e20f8e77ba1e877bf1cfc37aff -00c1af12fc1ad7fc37f67fd9cfe17fc2ff00d9d2dfcdd5fe1c7c60f871abcbf0c1bc7de3e6f861f0ce7d6e7f867f192eaebe327c455f88b34df19c03fa9da2bf -982ff82637ecd3ff000592f86bff0005a0ff008284fc62fdb17c47fb406a3ff04f8f1f7fc358ff00c32c691e3ffdac742f8aff000b2c3fe12afdab7c03e29f81 -ff00f0857c0bb1f8c9e31d4fe1afd97e0958789ed7c39f6cf87de15ff843bc38f7be0fb8fec3b8d45344baf1ff00d847f650ff0082fbf827fe0ba9fb427c70f8 -edf13fe3069bff0004c2d73e307ed99ace87e10f8b1fb54786fe2f7c3df17fc1af18f8c3c6571fb39f84fe0f7c10b7f1ff00c4fd5fe14f88349d5eff00e1878c -344b96f097c219fc21f0cfc1de32f025d789b4d5d726f867e3600feb768a2bf982ff0082637ecd3ff0592f86bff05a0ff8284fc62fdb17c47fb406a3ff0004f8 -f1f7fc358ffc32c691e3ff00dac742f8aff0b2c3fe12afdab7c03e29f81fff000857c0bb1f8c9e31d4fe1afd97e0958789ed7c39f6cf87de15ff00843bc38f7b -e0fb8fec3b8d45344ba00fe9f68afe48bf611fd943fe0befe09ff82ea7ed09f1c3e3b7c4ff008c1a6ffc130b5cf8c1fb666b3a1f843e2c7ed51e1bf8bdf0f7c5 -ff0006bc63e30f195c7ece7e13f83df042dfc7ff0013f57f853e20d2757bff00861e30d12e5bc25f0867f087c33f0778cbc0975e26d3575c9be19f8dbd03fe08 -61fb2e7fc17dfe07feda1fb65f8c7fe0aa3f1cfc41f117f67cf15f87f5bb2f0759f893e39f86fe2cf857e20fc659fe2b7f6a787be287ece5e05d1fedd73f007e -0fe9de098fe21c57fe0193c3dfb3c41369df107e1568edf06f5093c09158fc2800fca0ff008205ff00cad35ff05a8ffbc8dffebc53e0dd7f7f95fc01ff00c102 -ff00e569aff82d47fde46fff005e29f06ebfbfca0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002bfc41bfe0ac5f -f294dff82967fd9fff00ed91ff00ad15f11abfdbe6bfc41bfe0ac5ff00294dff0082967fd9ff00fed91ffad15f11a803fd3eff00e0d71ff94147ec33ff007733 -ff00ad87fb4157eff57e00ff00c1ae3ff2828fd867feee67ff005b0ff682afdfea0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a00ff00304ff8368ffe1fafff00169ffe1863fe5197ff000dff00e04ff86c4ff933cffaa0ff00f0d07ff2583fe3203f -e4dfff00e111ff00925dff00724ffc56bfda75fd3f7fc16aff00e224dff86a7f00ff00c39d3fe4d97fe19ffc2bff0009cffc985ffc976ff858bf157fe126ff00 -93a3ff008b81ff0024ff00fe158ffc81ff00e28eff00a07ffc4ebfe121af9fff00e0ca9ff94597c7cffb3fff008a7ffacebfb2ad7d7fff000588f06ffc1c57ae -7ed4ff0000bfe1d11f163e1ff83bf665f18fc3fd0bc1bf16ff00e124d37f65ebaff8551f14ed7e22f883fe120f8b1e3fff0085ebf0d3c55f10351f87fa8fc3ff -00157837ec7a6fc15ff8595e234ff856be35ff008b6961ad5ff86bfe13e00f40fdbebfe1faff00f0f4dfd8affe1863fe5197ff0018e3ff000d89ff002679ff00 -4715e32ff8683ff92c1ff1901ff26fff00f088ff00c92eff00b927fe2b5fed3a3f6faff87ebffc3d37f62bff008618ff009465ff00c638ff00c3627fc99e7fd1 -c578cbfe1a0ffe4b07fc6407fc9bff00fc223ff24bbfee49ff008ad7fb4ebf7fabf007f6faff0087ebff00c3d37f62bff8618ff9465ffc638ffc3627fc99e7fd -1c578cbfe1a0ff00e4b07fc6407fc9bfff00c223ff0024bbfee49ff8ad7fb4e803c03fe0b57ff1126ffc353f807fe1ce9ff26cbff0cffe15ff0084e7fe4c2ffe -4bb7fc2c5f8abff0937fc9d1ff00c5c0ff00927fff000ac7fe40ff00f1477fd03ffe275ff090d1fb4b7fc449bff0f92f0e7fc33a7fca22ff00e1a03f64eff848 -7fe4c2ff00e484ff00617c1bff0086a3ff0091e7fe326bfe437ff0b77fe3c7fe2b1ffa277fe89ff08cd7f4fb5fcd0fed5fa37fc1c79a5ffc1607e185f7eccfe2 -cf0ff88ffe092be23f8c1fb2beb3e38d1f46b6fd8d60d47c05f06a0bdf00787bf69ff09f8b25f8b5e19d07f683bcf105e49a0fc48f1d5b5cfc38d53c693af857 -c69e19b3f03f89ad7c596b77e0ef09807b07edf5ff000fd7ff0087a6fec57ff0c31ff28cbff8c71ff86c4ff933cffa38af197fc341ff00c960ff008c80ff0093 -7fff008447fe4977fdc93ff15aff0069d1fb7d7fc3f5ff00e1e9bfb15ffc30c7fca32ffe31c7fe1b13fe4cf3fe8e2bc65ff0d07ff2583fe3203fe4dfff00e111 -ff00925dff00724ffc56bfda75fbfd5f883fb6f7837fe0b6babffc14d7f61bd4ff00627f8b1f0ffc2fff0004d8bdff00840ffe1b37c3baee9bf03ee358d23fe1 -5ffc4fd7fc5df15ffb427f1d7c34f117c6097fe178fc1fbff0dfc2df85bff0a675dd4ffb23c77a26a7a878d7fe14fe8f2c3f1175700f903f696ff88937fe1f25 -e1cff8674ff9445ffc3407ec9dff00090ffc985ffc909fec2f837ff0d47ff23cff00c64d7fc86ffe16effc78ff00c563ff0044effd13fe119af7ff00dbebfe1f -afff000f4dfd8aff00e1863fe5197ff18e3ff0d89ff2679ff4715e32ff008683ff0092c1ff001901ff0026ff00ff00088ffc92effb927fe2b5fed3afdfeafc01 -fdbebfe1faff00f0f4dfd8affe1863fe5197ff0018e3ff000d89ff002679ff004715e32ff8683ff92c1ff1901ff26fff00f088ff00c92eff00b927fe2b5fed3a -00f00fda5bfe224dff0087c97873fe19d3fe5117ff000d01fb277fc243ff002617ff002427fb0be0dffc351ffc8f3ff1935ff21bff0085bbff001e3ff158ff00 -d13bff0044ff008466bcff00f6eef8a5ff0007097c0eff00829ff8a3e35f81b5dff845ff00e087df07fe207c00f8a5f19bc4dfd99fb11eb7ff0008efec9df0ff -00c01f0b3c59fb696bbfd8dac69fabfed75abff6445a47c6dd43fb33c2ba56a7f126ff00ecff0065f851a7deb4be12b697fabdafe58bfe0a0ff053fe0e01f8bd -ff00052e8fe117c39d43c3ff0012ff00e0891fb41f883e04f81be3f780b46bafd937c3ba8e87fb3078e749f097c32fdb37e1b78b35ef1c695e0bfda8ed7c41e2 -3d0e0f8b3e2ab6d73e0df8abc43e20d37c2be3cf0c8f869e36d23c73a7c9e17f07007e507fc451dff1bd7ff93e6ff8d267fd9b37fd59e7fd9beffc35a7fc9da7 -f9ff0085695f3ffed2dff07477c76ff87c97873fe19d3f6e6ff8d45ffc3407ec9dff00090ffc633783bfe484ff00617c1bff0086a3ff0091e7f67dff00869aff -0090dffc2ddff8f1ff008ac7fe89dffa27fc2335e01ff0eb8fd84ffe22c3ff008768ff00c28cff008c25ff00a22bff000b37e317fd236bfe17effc947ff8583f -f0b6bfe4ad7fc559ff0023e7fd40bfe45aff0089357f5fbff10b8ffc10a3fe8c67ff003667f6c3ff00e882a00fc41f8e3fb7affc1c25ff000512fda63f692f8d -7ff040cf8adff0b83fe09b1e17f881e07f85bf0cbc4dff00082fec47f0ff00ec3e3bd13f67bf829e2cf8b5a17f637ed9fe0ef04fc7ab9fb378ebc6daaea1fda7 -e20d2ae3479bfb4fecbe1ad425d1ecadadad3cff00fe3baeff003ff0e79afecf7f629fd82bf64eff008276fc2cd7fe0a7ec75f0a7fe14ffc32f147c40d57e296 -bbe19ff84ebe24fc40fb778ef5bf0e7857c27a9ebbfdb3f14bc63e36f105b7da7c3fe09f0c69ff00d9967aadbe8f0ff667daadf4f8af6f750b9bbfafe803f803 -b1fda8ff00e0ec3fd8bbc63f08bf697ff829d78e7fe15aff00c13e3e1afed01fb3affc36078d7fe119ff00826d78c7fb17e04f8c7e3b7c3bf0078e7fe29cfd9f -7c3de2af8dba8ff68e99e2a6d27fe2d86837fe31b3fb7fdbf47fb2dc5a8bdb7f9fff00669ff83a3be3b7fc3e4bc47ff0d17fb737fc6a2ffe1a03f6b1ff00847b -fe319bc1dff2427fb0be327fc32e7fc88dfb3eff00c34d7fc86ffe1517fc7f7fc563ff004513fd13fe126afeff007f6a3fd973e04feda3f027c73fb347ed2fe0 -6ff8595f04be257fc233ff0009af82bfe126f18f83bfb6bfe10ef18f87bc7fe1cff8a8fc01e21f0af8b74efecef16f85741d5bfe253af587db3ec1f60bff00b5 -699757b6571fc217fc1d03ff000466ff00826c7fc13b7f605f845f1aff0063afd9bffe14ff00c4df147ed7fe01f85baef89bfe1707c7af881f6ef026b7f05fe3 -ff008b353d0bfb1be297c51f1b787edbed3e20f04f86350fed3b3d2adf5887fb33ecb6fa845657ba85b5d807d81fb2e7fc17abe3b7eda3ff000726f81bf668fd -9a3f6acff8595ff04b9f895ff0937fc215e0aff8519e0ef077f6d7fc21dfb05f887c7fe23ff8a8fc7ff077c2bfb43e9dfd9dfb43f8575ed5bfe26daf587db3ec -1f60b0fb5781eeacacae3f5fbfe37aff00f0fd7ffac267fdd9e7fd19e7fe25a7fc9da7f9ff0085695f007fc1ae3ff04b8fd84ffe184ff619ff0082977fc28cff -008cdaff008c99ff008bd5ff000b37e317fd162fda0be017fc938ff8583ff0a97fe492ff00c527ff00221ffd477fe465ff0089cd7e8fe8da37fc171b54ff0082 -e378b2fafbc59e1ff0e7fc1157c39e1fb6d6747d1f59b6fd9967d47c7ba8cffb32f867c3d2f84fc272f87bc33aefed3d67e20b3fda7b5ed53c757373e3ad53c1 -7e156f0af82fc4d6767e26bad2eebc1de0ef16007cc1fb34ff00c449bff0f92f11ff00c345ff00ca22ff00e1a03f6b1ff847bfe4c2ff00e484ff00617c64ff00 -865cff00911bfe326bfe437ff0a8bfe3fbfe2b1ffa289fe89ff09357bfff00c6f5ff00e1faff00f584cffbb3cffa33cffc4b4ff93b4ff3ff000ad2bf7fabf007 -fe37afff000fd7ff00ac267fdd9e7fd19e7fe25a7fc9da7f9ff8569401e01fb34ffc449bff000f92f11ffc345ffca22ffe1a03f6b1ff00847bfe4c2ffe484ff6 -17c64ff865cff911bfe326bfe437ff000a8bfe3fbfe2b1ff00a289fe89ff0009351fb34ffc449bff000f92f11ffc345ffca22ffe1a03f6b1ff00847bfe4c2ffe -484ff617c64ff865cff911bfe326bfe437ff000a8bfe3fbfe2b1ff00a289fe89ff0009357f4fb5fce0fecede0dff00838aed7fe0b25f11ff00e1a13e2c7c3fd4 -7fe0917a1fc40f8f9e32f05fd8f4dfd9793fe131f859e2ad0bc4dff0cf1f09fc39ff0008b7c34b0fda6ad7e207c35d6fc63e04ff0084d752f1e7fc22be1cbfff -008551e3fdbf12fc7d69a8f853fe165007a07ec0bff0fd7ff87a6feda9ff000dcfff0028cbff008c8eff00863bff00933cff00a38af06ffc33e7fc91ff00f8c8 -0ff937ff00f84bbfe4a8ff00dcedff0015aff6657807ecd3ff001126ff00c3e4bc47ff000d17ff00288bff008680fdac7fe11eff00930bff009213fd85f193fe -1973fe446ff8c9aff90dff00c2a2ff008feff8ac7fe8a27fa27fc24d5fd3ed7f343fb2868dff00071e6a9ff0581f89f7dfb4c78b3c3fe1cff824af873e307ed5 -1acf81f47d66dbf6359f51f1efc1a9ef7c7fe1efd983c27e1397e12f8675efda0ecfc416726bdf0dfc757373f11f54f05cede15f05f89acfc71e26baf165d5a7 -83bc5801ec1fb02ffc3f5ffe1e9bfb6a7fc373ff00ca32ff00e323bfe18eff00e4cf3fe8e2bc1bff000cf9ff00247ffe3203fe4dff00fe12eff92a3ff73b7fc5 -6bfd9947ec0bff000fd7ff0087a6feda9ff0dcff00f28cbff8c8eff863bff933cffa38af06ff00c33e7fc91fff008c80ff00937fff0084bbfe4a8ffdcedff15a -ff006657eff57e00fec0bff0fd7ff87a6feda9ff000dcfff0028cbff008c8eff00863bff00933cff00a38af06ffc33e7fc91ff00f8c80ff937ff00f84bbfe4a8 -ff00dcedff0015aff665007807ecd3ff001126ff00c3e4bc47ff000d17ff00288bff008680fdac7fe11eff00930bff009213fd85f193fe1973fe446ff8c9aff9 -0dff00c2a2ff008feff8ac7fe8a27fa27fc24d47fc1153fe224dff0086a7f1f7fc3e2ffe4d97fe19ff00c55ff0837fc985ff00c976ff00858bf0abfe119ff935 -cff8b81ff24fff00e1677fc863fe28effa087fc4ebfe11eafe9f6bf9c1ff00823bf837fe0e2bd0ff006a7f8fbff0f77f8b1f0ffc63fb32f83be1febbe0df849f -f08e69bfb2f5affc2d7f8a775f117c3fff0008ff00c58f007fc28af869e15f881a77c3fd3be1ff00857c65f6dd37e357fc2b5f11bffc2caf057fc5b4bfd6ac3c -4bff00080807e20ffc102ffe569aff0082d47fde46ff00f5e29f06ebfbfcafe00ffe0817ff002b4d7fc16a3fef237ffaf14f8375fdfe50014514500145145001 -451450014514500145145001451450014514500145145001451450015fe20dff000562ff0094a6ff00c14b3fecff00ff006c8ffd68af88d5fedf35fe20dff056 -2ff94a6ffc14b3fecfff00f6c8ff00d68af88d401fe9f7ff0006b8ff00ca0a3f619ffbb99ffd6c3fda0abf7fabf007fe0d71ff0094147ec33ff7733ffad87fb4 -157eff00500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145007f922fec69f0eff00e0aa -ff00f0497ff82a6ffc13a7f621f8e9f103f680fd957c3ff1c7f6bffd917e2978a7f678f007ed3d1dff00c2cf899e04f899fb45785fe11eb7aef8d7c2df02fe2a -7897e197883fe133b2f86fabf81fc47a678a567d6356f0e7876cf4ed6f4f97c3efa409ff00b1dff82e7fecb9ff0005f7f8e1fb687ec69e31ff0082577c73f107 -c3afd9f3c29e1fd12cbc6367e1bf8e7e1bf84de15f87df1960f8adfda9e21f8a1fb46f81758fb0dcfc7ef83fa8f8264f87915878063f0f7ed0f043a77c3ef8ab -a3afc1bd3e4f1dcb63f15ff283fe0be9ff002b4d7fc115ff00ef1c9ffaf14f8c95faff00ff0005abff0088937fe1a9fc03ff000e74ff009365ff00867ff0affc -273ff2617ff25dbfe162fc55ff00849bfe4e8ffe2e07fc93ff00f8563ff207ff008a3bfe81ff00f13aff008486803bff00f82a57ecebff000592f89bff00054d -ff0082627c52fd8ebe23fc40b7ff00827c7c37f881f066f3f6a7f875f0bfe3e685f06bec5fd89fb4568be22f8e1e23f8cfe11bef137c3dd4fe39fc3ff19fc124 -f0c685e17f0559ea1f16fec5ff000857c4cd32dfc01e11b8f1c3cff13780ff00829cfecd3ff0592f895ff05a0ff827b7c62fd8ebc47fb4069dff0004f8f00ffc -3277fc353e91e00fdac742f851f0b2ff00fe115fdab7c7de29f8e1ff0009afc0bbef8c9e0ed4fe257dabe095ff00862d7c47f63f87de2aff0084c7c38967e0fb -7fedcb8d39f44b5fe9f6bf007f6faff87ebffc3d37f62bff008618ff009465ff00c638ff00c3627fc99e7fd1c578cbfe1a0ffe4b07fc6407fc9bff00fc223ff2 -4bbfee49ff008ad7fb4e803e60ff0082e7fecb9ff05f7f8e1fb687ec69e31ff82577c73f107c3afd9f3c29e1fd12cbc6367e1bf8e7e1bf84de15f87df1960f8a -dfda9e21f8a1fb46f81758fb0dcfc7ef83fa8f8264f87915878063f0f7ed0f043a77c3ef8aba3afc1bd3e4f1dcb63f15fcff00f6eefd943fe0befe36ff0082ea -7ecf7f1c3e04fc4ff8c1a97fc130b43f8c1fb19eb3ae7843e13fed51e1bf843f0f7c21f06bc1de30f06dc7ed19e13f8c3f042e3c7ff0c357f8ade20d5b57b0f8 -9fe30d6ee57c25f17a7f17fc33f18f837c096be26d4974387e19f827d83fe0b57ff1126ffc353f807fe1ce9ff26cbff0cffe15ff0084e7fe4c2ffe4bb7fc2c5f -8abff0937fc9d1ff00c5c0ff00927fff000ac7fe40ff00f1477fd03ffe275ff090d1fb4b7fc449bff0f92f0e7fc33a7fca22ff00e1a03f64eff8487fe4c2ff00 -e484ff00617c1bff0086a3ff0091e7fe326bfe437ff0b77fe3c7fe2b1ffa277fe89ff08cd001ff000539fd9a7fe0b25f12bfe0b41ff04f6f8c5fb1d788ff0068 -0d3bfe09f1e01ff864eff86a7d23c01fb58e85f0a3e165ff00fc22bfb56f8fbc53f1c3fe135f8177df193c1da9fc4afb57c12bff000c5af88fec7f0fbc55ff00 -098f8712cfc1f6ff00db971a73e896beff00fb7ffc02ff0082c978fbfe0ae1ff0004d5f8b1fb1d7c6aff00843bfe09f1f0ebec3ff0d4fe0d8be23e85e18f0e47 -f65f1beb1a97c70ff85adf0d2fb469f53f8cbff0b97e094fe18f869fb3ff00d8f4df895ff0aa3e29e8dad78cadff00e19eee2fdfe2ceb9fbfd5f803fb7d7fc3f -5ffe1e9bfb15ff00c30c7fca32ff00e31c7fe1b13fe4cf3fe8e2bc65ff000d07ff002583fe3203fe4dff00fe111ff925dff724ff00c56bfda7401f107edddfb2 -87fc17dfc6dff05d4fd9efe387c09f89ff0018352ff8261687f183f633d675cf087c27fdaa3c37f087e1ef843e0d783bc61e0db8fda33c27f187e085c78ffe18 -6aff0015bc41ab6af61f13fc61addcaf84be2f4fe2ff00867e31f06f812d7c4da92e870fc33f04fb07fc14e7f669ff0082c97c4aff0082d07fc13dbe317ec75e -23fda034eff827c7807fe193bfe1a9f48f007ed63a17c28f8597ff00f08afed5be3ef14fc70ff84d7e05df7c64f076a7f12bed5f04affc316be23fb1fc3ef157 -fc263e1c4b3f07dbff006e5c69cfa25a9fb4b7fc449bff000f92f0e7fc33a7fca22ffe1a03f64eff008487fe4c2ffe484ff617c1bff86a3ff91e7fe326bfe437 -ff000b77fe3c7fe2b1ff00a277fe89ff0008cd7bff00edf5ff000fd7ff0087a6fec57ff0c31ff28cbff8c71ff86c4ff933cffa38af197fc341ff00c960ff008c -80ff00937fff008447fe4977fdc93ff15aff0069d007cc1fb51fecb9ff0005f7f13ffc17dfe067c76f813f1cfc41a3ff00c130b47f107c0cbdd7343b2f8e7e1b -d03e0d786be0d681e1bfb3fed19f0bfe287ece971e56aff11fe307c47d5e2f89ede01f1f2fc30f8993e893fc4cf837756bf193e1d2fc3a866f831e7ffb777eca -1ff05f7f1b7fc1753f67bf8e1f027e27fc60d4bfe0985a1fc60fd8cf59d73c21f09ff6a8f0dfc21f87be10f835e0ef187836e3f68cf09fc61f82171e3ff861ab -fc56f106adabd87c4ff186b772be12f8bd3f8bfe19f8c7c1be04b5f136a4ba1c3f0cfc13fd6ed7f305fb4b7fc449bff0f92f0e7fc33a7fca22ff00e1a03f64ef -f8487fe4c2ff00e484ff00617c1bff0086a3ff0091e7fe326bfe437ff0b77fe3c7fe2b1ffa277fe89ff08cd007f383ff00071e7ec23ff053ff0081dff0527fdb -27fe0b01f053c2ff00103e0ffece5e17ff008679ff008467f6aff85bf1ff00c01f0ffc77e1dfedbf80bf037f660d67fb0b46f09fc53d23e3d691fdafe3ad5f55 -f86da9ff0067f84edfedfa3ea7a85d5d79be0cbdb9d4a5fe8fbfe0d2dfdaabf68efdacbfe0995f107c4dfb4cfc68f881f1dfc5bf0d7f6bff008a3f0b7c27e36f -8a5afdd78c7c770f8123f861f043e24db685aef8e759375e2df18fd83c5bf12bc6173a66a7e31d675fd634bd1eff004ff09e9da85af84bc39e19d0f473f6a3fd -973fe0ac3fb68ffc1587c73fb347ed2fe06ff8595ff06eff00c4aff8467fe135f057fc24dfb36f83bfb6bfe10efd9b7c3de3ff000e7fc547e00f10f857f6e1d3 -bfb3bf6e2f0ae83ab7fc4a75eb0fb67d83ec17ff006af845757b6571f80177fb51fc76ff008246ff00c1c11a4ffc124ffe09e9e39ff867dff827c78fbf6fff00 -d82bfe12dfd9ff00fe119f077c57fed6ff00868cf865fb1f68bf197fe2eb7c6ef0f7c4af8db61ff098e99753db7fc4b3e24d9ffc23dbfcef0aff0061dc2a4aa0 -1fe8f9451450015fe649e1bf19fc42ff0082aa7fc1cdbf10bf609fdbf7e2a7c60fda27f62fb5fdb7ff006ecf0ce95fb31eb3f17be26782fe0d78774efd9a7e15 -7ed37e1df82b73e13f04fc31f15f82748f087883c21a478274482e7c59e188349f1578b679fc4da878d759f11ea3e36f1a5debff00daeffc17abf6a3f8edfb17 -7fc127bf6acfda5ff668f1cffc2b5f8dbf0d7fe1467fc215e35ff8467c1de31fec5ff84c7f693f83be00f11ffc539e3ff0f78abc25a8ff0068f84bc55af693ff -00136d06ff00ec7f6ffb7d87d9753b5b2bdb7fe30bfe0dcafd82bfe0a4ff001c7fe0a7ff00b327fc1667e297c29ff84a3f672f8c1f103f6cbf8a5f117f690ff8 -4ebe02e89ff09178efe207803f694f85de2ed77fe14ff877c63a478eb48fed7f8f5abea1a1ff0066685f0bb4cd1ec3ed1fda7a669f65e0c8a0d42200fdbefd97 -3fe098dff051cfd8bbfe0bafe06b2fd9a349fda03e1aff00c107fe1aff00c24dff000857c29ff86d7d53c63f02745ff84c7f63cf10cbe23ff8c7ff001ffed0be -2af891a8ff0068fed8fe2ad7bc47ff00136f005ffd8fc637ff00f09ad87d9741b5b2d6adfebff06fecebff000592b5ff00838abe2cfed09ff0b1fe20687ff048 -bd47e1fe9b67ff00085f8cbe3e685e2af859e31f2ff65ef869e16ff8473e13fecf1ff09378c75af86bf102d7f69ab0ff0084f352f1affc209f0a3edfe1cf0afc -4b5ff84ff51b4f1f7fc229f12bfa3eafc01ff8debffc3f5ffeb099ff007679ff004679ff008969ff002769fe7fe15a5007cc1fb2e7ecb9ff0005f7f0c7fc17df -e39fc76f8edf1cfc41ac7fc130b58f107c73bdd0f43bdf8e7e1bd7fe0d7897e0d6bfe1bfb3fece7f0bfe17fece96fe6eaff0e3e307c38d5e5f860de3ef1f37c3 -0f8673eb73fc33f8c97575f193e22afc459a6f8cfd07fc334ffc164bfe224dff00868bff00848ff680ff008745ff00d0bdff000d63a17fc289ff00930bff0084 -1bfe4d73fe1727f6d7fc9cd7fa77fc922ff91c7fe2e27fc7a7fc54d47ecd3ff1126ffc3e4bc47ff0d17ff288bff8680fdac7fe11eff930bff9213fd85f193fe1 -973fe446ff008c9aff0090dffc2a2ff8feff008ac7fe8a27fa27fc24d5efff00f1bd7ff87ebffd6133feecf3fe8cf3ff0012d3fe4ed3fcff00c2b4a00f883f61 -1fd943fe0befe09ff82ea7ed09f1c3e3b7c4ff008c1a6ffc130b5cf8c1fb666b3a1f843e2c7ed51e1bf8bdf0f7c5ff0006bc63e30f195c7ece7e13f83df042df -c7ff0013f57f853e20d2757bff00861e30d12e5bc25f0867f087c33f0778cbc0975e26d3575c9be19f8dbd03f65cfd973fe0befe18ff0082fbfc73f8edf1dbe3 -9f88358ff82616b1e20f8e77ba1e877bf1cfc37aff00c1af12fc1ad7fc37f67fd9cfe17fc2ff00d9d2dfcdd5fe1c7c60f871abcbf0c1bc7de3e6f861f0ce7d6e -7f867f192eaebe327c455f88b34df19ffa9dafe60bf669ff0088937fe1f25e23ff00868bff009445ff00c3407ed63ff08f7fc985ff00c909fec2f8c9ff000cb9 -ff002237fc64d7fc86ff00e1517fc7f7fc563ff4513fd13fe126a003fe098dfb34ff00c164be1aff00c1683fe0a13f18bf6c5f11fed01a8ffc13e3c7dff0d63f -f0cb1a478fff006b1d0be2bfc2cb0ff84abf6adf00f8a7e07ffc215f02ec7e3278c753f86bf65f82561e27b5f0e7db3e1f7857fe10ef0e3def83ee3fb0ee3514 -d12ebc7ff611fd943fe0befe09ff0082ea7ed09f1c3e3b7c4ff8c1a6ff00c130b5cf8c1fb666b3a1f843e2c7ed51e1bf8bdf0f7c5ff06bc63e30f195c7ece7e1 -3f83df042dfc7ff13f57f853e20d2757bff861e30d12e5bc25f0867f087c33f0778cbc0975e26d3575c9be19f8dbedff00d817fe1fafff000f4dfdb53fe1b9ff -00e5197ff191dff0c77ff2679ff4715e0dff00867cff00923fff001901ff0026ff00ff000977fc951ffb9dbfe2b5feccaf00fd9a7fe224dff87c9788ff00e1a2 -ff00e5117ff0d01fb58ffc23dff2617ff2427fb0be327fc32e7fc88dff001935ff0021bff8545ff1fdff00158ffd144ff44ff849a803dfff00600f805ff0592f -00ff00c15c3fe0a55f163f6c5f8d5ff098ff00c13e3e22fdbbfe1963c1b2fc47d0bc4fe1c93ed5e37d1f52f81fff000aa7e1a58e8d06a7f06bfe14d7c1283c4f -f0d3f680fb669bf0d7fe16bfc53d6745f195c7fc3425c5827c59d0fc03fe098dfb34ff00c164be1aff00c1683fe0a13f18bf6c5f11fed01a8ffc13e3c7dff0d6 -3ff0cb1a478fff006b1d0be2bfc2cb0ff84abf6adf00f8a7e07ffc215f02ec7e3278c753f86bf65f82561e27b5f0e7db3e1f7857fe10ef0e3def83ee3fb0ee35 -14d12ebfa7dafc01fd817fe1faff00f0f4dfdb53fe1b9ffe5197ff00191dff000c77ff002679ff004715e0dff867cff923ff00f1901ff26fff00f0977fc951ff -00b9dbfe2b5fecca00f883f611fd943fe0befe09ff0082ea7ed09f1c3e3b7c4ff8c1a6ff00c130b5cf8c1fb666b3a1f843e2c7ed51e1bf8bdf0f7c5ff06bc63e -30f195c7ece7e13f83df042dfc7ff13f57f853e20d2757bff861e30d12e5bc25f0867f087c33f0778cbc0975e26d3575c9be19f8dbf303e05ffc1423fe0aa1ff -00040cfdb43e28f8c7fe0bd1e35fda7fe3efecf9fb59f87fe36597c19b3f85ff0012be0b7c7ff0af8b7e32fc2bf8adf0eb547f8a1f06fc0be27f8abe00b9fd9d -3e0fc7e09f893e258acbc03a6787be09c17fa778dbc03a3ea3f06d64f87ba758fc37fd9ffd9a7fe224dff87c9788ff00e1a2ff00e5117ff0d01fb58ffc23dff2 -617ff2427fb0be327fc32e7fc88dff001935ff0021bff8545ff1fdff00158ffd144ff44ff849abf882ff0082e77fc3f5ff00e3177fe1f57ff55b7fe19a7fe4cf -3fea91ff00c2e4ff00934eff00ba55ff0023f7fdcabff331d007f53bff000403fd88ff006c2b3ff82bbfed9dff000561f1d7ecfbe20f863fb17ffc1417e0ff00 -ed13f1aff66cf1bf8b3e217c0cd5fc55af7857f6affda6fe0d7ed25f0774ff00137c3ff86ff15bc7be29f09f88354f852979abeb36baa582e9da16a3a7dce8b7 -daa8d465b186f3fb5daf803fe093bff28b2ff8269ffd9807ec6fff00acebf0e6beff00a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0 -028a28a0028a28a002bfc41bfe0ac5ff00294dff0082967fd9ff00fed91ffad15f11abfdbe6bfc41bfe0ac5ff294dff82967fd9fff00ed91ff00ad15f11a803f -d3effe0d71ff0094147ec33ff7733ffad87fb4157eff0057e00ffc1ae3ff002828fd867feee67ff5b0ff00682afdfea0028a28a0028a28a0028a28a0028a28a0 -028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0 -028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0 -028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0 -028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0 -028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0 -028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00fe00ffe0be9ff002b4d7fc115ff00ef1c9ffaf14f8c95fa3fff0005f2fd847f -e0ba9fb4cfeda1fb39f8c7fe0983fb427c60f861fb3e6bff0007fc31f09fe29d9fc38fdb33c61fb3af857e16fc42d27e2b78d754d6be30fc4ef02e93e32f0adc -f89fc3faa7827e21f86625d6fe15787be2b7c4cbbd3be18788347bef06c12587c3eb1f177dff00ff0005b3ff0082727ec7bf18fe017ed39ff050ff001d7c32f1 -049fb687ec87fb107c68f167ecd9f1f3c27f19be39fc37f157c23f157c01f05fc56f8e1f077c4de19d3be1bfc4af09f859bc41e02f8adaa5e78cf46d6754d035 -1d45b5136d05f5cdde9d6363656dfc11ff00c12ffc4fff00071cff00c145fe29cda87ec53fb6efed7fe37ff8511f103e0bde7c4bf177c59fdb83c5127c2cf863 -ff0009e788f5c9fc1be23f897f0ebe2cfc49d73fe16bfc3f4ff8407c57a9f8cbc15a07c2df8bdfdb3e1cd0752d0b55f00788ff00b734df0eeba01fdae7fc150b -f650ff0082c0fc43ff0082bbff00c1377f683fd8d7e27fc608bf60ff000a7883f673d1bf6b5f85df0e3f6a8bdf84de15d2f4ef871fb4dea5e36f8b7e2cf89df0 -5f5af1ff0080fc37f143c3fe3ef837e31b0f0eadb784b4ef88fe2af13e9df0fbc41e14f14f8674fb08bc11078ab03fe0a73fb34ffc164be257fc1683fe09edf1 -8bf63af11fed01a77fc13e3c03ff000c9dff000d4fa47803f6b1d0be147c2cbfff008457f6adf1f78a7e387fc26bf02efbe32783b53f895f6af8257fe18b5f11 -fd8fe1f78abfe131f0e259f83edffb72e34e7d12d7fa7dafe60bfe0a73fb34ff00c164be257fc1683fe09edf18bf63af11fed01a77fc13e3c03ff0c9dff0d4fa -47803f6b1d0be147c2cbff00f8457f6adf1f78a7e387fc26bf02efbe32783b53f895f6af8257fe18b5f11fd8fe1f78abfe131f0e259f83edff00b72e34e7d12d -403c7ffe0be5fb08ff00c1753f699fdb43f673f18ffc1307f684f8c1f0c3f67cd7fe0ff863e13fc53b3f871fb6678c3f675f0afc2df885a4fc56f1aea9ad7c61 -f89de05d27c65e15b9f13f87f54f04fc43f0cc4badfc2af0f7c56f89977a77c30f1068f7de0d824b0f87d63e2ee7ff006d4fd8abfe0bcdac7fc1797e13fed09f -b3dfc58fda0358ff008265eb1fb407ec57e3ff001a782fc01fb6a4de04f859e04f859e049be13f85bf687f0578d7f678f14fc58f027f6c7f6c7fc209e3bf1e78 -8fc39e03f0278efc39e3bf0e78eecd5af758f1aeb1e2bf0a68ff00d7ed7f245fb777eca1ff0005f7f1b7fc1753f67bf8e1f027e27fc60d4bfe0985a1fc60fd8c -f59d73c21f09ff006a8f0dfc21f87be10f835e0ef187836e3f68cf09fc61f82171e3ff00861abfc56f106adabd87c4ff00186b772be12f8bd3f8bfe19f8c7c1b -e04b5f136a4ba1c3f0cfc1201ec1ff000539fd9a7fe0b25f12bfe0b41ff04f6f8c5fb1d788ff00680d3bfe09f1e01ff864eff86a7d23c01fb58e85f0a3e165ff -00fc22bfb56f8fbc53f1c3fe135f8177df193c1da9fc4afb57c12bff000c5af88fec7f0fbc55ff00098f8712cfc1f6ff00db971a73e896bdff00fc1473f637ff -0082b87c60ff0082c47fc139be3afec93f1f3e20781bf605f06ffc2a0ff86b0f037877f69ff1bfc30f025bff00c295f8e5e2bf8aff00113fe162fc12d1f59b0b -2f89dff0befe196bda17c24f08ff00c23de1af1eff006deb1a0cfe1ff8c7ff000aefe1d59e93e2abdfe8fabf007f6fff00805ff0592f1f7fc15c3fe09abf163f -63af8d5ff0877fc13e3e1d7d87fe1a9fc1b17c47d0bc31e1c8fecbe37d6352f8e1ff000b5be1a5f68d3ea7f197fe172fc129fc31f0d3f67ffb1e9bf12bfe1547 -c53d1b5af195bffc33ddc5fbfc59d7003e00fdb53f62aff82f36b1ff0005e5f84ffb427ecf7f163f680d63fe0997ac7ed01fb15f8ffc69e0bf007eda937813e1 -67813e1678126f84fe16fda1fc15e35fd9e3c53f163c09fdb1fdb1ff0008278efc79e23f0e780fc09e3bf0e78efc39e3bb356bdd63c6bac78afc29a3fd01ff00 -0539fd9a7fe0b25f12bfe0b41ff04f6f8c5fb1d788ff00680d3bfe09f1e01ff864eff86a7d23c01fb58e85f0a3e165ff00fc22bfb56f8fbc53f1c3fe135f8177 -df193c1da9fc4afb57c12bff000c5af88fec7f0fbc55ff00098f8712cfc1f6ff00db971a73e896bfd3ed7f305ff0539fd9a7fe0b25f12bfe0b41ff0004f6f8c5 -fb1d788ff680d3bfe09f1e01ff00864eff0086a7d23c01fb58e85f0a3e165fff00c22bfb56f8fbc53f1c3fe135f8177df193c1da9fc4afb57c12bff0c5af88fe -c7f0fbc55ff098f8712cfc1f6ffdb971a73e896a01e3ff00b57fec23ff0005d4f1b7fc17dfe187c76f81ff00b427c60d0ffe0985a97c60fd95fe2c78bf43d1bf -6ccf18783be0d7843e1efc21f0df802dfe37fc1ef167ece96fe32b0d5f56f107c56d5fe1878b5adb44f07fc30f18fc33f17cff0017bc3375e3bf19686ba97c4c -9bc13cff00eda9fb157fc179b58ff82f2fc27fda13f67bf8b1fb406b1ff04cbd63f680fd8afc7fe34f05f803f6d49bc09f0b3c09f0b3c0937c27f0b7ed0fe0af -1afecf1e29f8b1e04fed8fed8ff8413c77e3cf11f873c07e04f1df873c77e1cf1dd9ab5eeb1e35d63c57e14d1ffafdafe48bf6eefd943fe0befe36ff0082ea7e -cf7f1c3e04fc4ff8c1a97fc130b43f8c1fb19eb3ae7843e13fed51e1bf843f0f7c21f06bc1de30f06dc7ed19e13f8c3f042e3c7ff0c357f8ade20d5b57b0f89f -e30d6ee57c25f17a7f17fc33f18f837c096be26d4974387e19f82403d83fe19a7fe0b25ff1126ffc345ffc247fb407fc3a2ffe85eff86b1d0bfe144ffc985ffc -20dff26b9ff0b93fb6bfe4e6bfd3bfe4917fc8e3ff001713fe3d3fe2a6afe607fe0a59ff002b927c39ff00b3ff00ff00824eff00ea0dfb1bd7fa7dd7f9827fc1 -4b3fe5724f873ff67fff00f049dffd41bf637a00ff004fba28a2803f007fe0e8eff94147edcdff0076cdff00ad87fb3ed7f343ff0006ac7eca1ff0581d53e32f -ec8dfb4c5f7c4ff8c1e1cff824af873c3ffb48eb3a3f81f59fdaa2f67f835e3dd46783e2efc2597c27e13fd983c3de3fd7a4b3f1059fed07af6a9f11ee6e7c75 -f0dfc17e1569fc17e26f1c59f89aebc5975e0eb4f167f4bdff0007477fca0a3f6e6ffbb66ffd6c3fd9f6bf9c1ff834ff00f675ff0082c95afc53fd9cbf684ff8 -58ff0010343ff8245ea3f0ff00f688b3ff00842fc65f1f342f157c2cf18ecf11f8dfc2dff08e7c27fd9e3fe126f18eb5f0d7e205afed3561ff0009e6a5e35ff8 -413e147dbfc39e15f896bff09fea369e3eff008453e25007edff00fc334ffc164bfe224dff00868bff00848ff680ff008745ff00d0bdff000d63a17fc289ff00 -930bff00841bfe4d73fe1727f6d7fc9cd7fa77fc922ff91c7fe2e27fc7a7fc54d5bfa37eca1ff0581d53fe0e3cf167ed317df13fe307873fe092be1cf0fdb6b3 -a3f81f59fdaa2f67f835e3dd467fd8d7c33f0965f09f84ff00660f0f78ff005d92cfc4167fb41ebdaa7c47b9b9f1d7c37f05f855a7f05f89bc7167e26baf165d -783ad3c59fd2f57f383e0dfd9d7fe0b256bff07157c59fda13fe163fc40d0ffe0917a8fc3fd36cff00e10bf197c7cd0bc55f0b3c63e5fecbdf0d3c2dff0008e7 -c27fd9e3fe126f18eb5f0d7e205afed3561ff09e6a5e35ff008413e147dbfc39e15f896bff0009fea369e3eff8453e25007cc1fb287ec23ff05d4f04ff00c17d -fe27fc76f8e1fb427c60d73fe0985a6fc60fdaa3e2c784343d67f6ccf1878c7e0d78bfe1efc5ef0df8fedfe087c1ef09fece971e32bfd5f49f107c29d5fe27f8 -49ae744f187c30f077c33f084ff087c4d75e04f196b8ba6fc339bc6dec1ff0cd3ff0592ff88937fe1a2ffe123fda03fe1d17ff0042f7fc358e85ff000a27fe4c -2ffe106ff935cff85c9fdb5ff2735fe9dff248bfe471ff008b89ff001e9ff15357f4fb5fcc17fc334ffc164bfe224dff00868bff00848ff680ff008745ff00d0 -bdff000d63a17fc289ff00930bff00841bfe4d73fe1727f6d7fc9cd7fa77fc922ff91c7fe2e27fc7a7fc54d401f3ff00ec57fb157fc179b47ff82f2fc58fda13 -f684f8b1fb4068ff00f04cbd1ff680fdb53c7fe0bf05f8ff00f6d49bc77f0b3c77f0b3c7737c58f0b7ecf1e0af057ecf1e16f8b1e3bfec7fec7ff84efc09e3cf -0e7873c79e04f027873c09e1cf025eaadee8fe35d1fc29e14d63a0fd943f611ff82ea7827fe0beff0013fe3b7c70fda13e306b9ff04c2d37e307ed51f163c21a -1eb3fb6678c3c63f06bc5ff0f7e2f786fc7f6ff043e0f784ff00674b8f195feafa4f883e14eaff0013fc24d73a278c3e18783be19f8427f843e26baf0278cb5c -5d37e19cde36feb76bf962fd973f65cff82fbf863fe0beff001cfe3b7c76f8e7e20d63fe0985ac7883e39dee87a1defc73f0debff06bc4bf06b5ff000dfd9ff6 -73f85ff0bff674b7f3757f871f183e1c6af2fc306f1f78f9be187c339f5b9fe19fc64babaf8c9f1157e22cd37c6700e83fe098dfb34ffc164be1affc1683fe0a -13f18bf6c5f11fed01a8ff00c13e3c7dff000d63ff000cb1a478ff00f6b1d0be2bfc2cb0ff0084abf6adf00f8a7e07ff00c215f02ec7e3278c753f86bf65f825 -61e27b5f0e7db3e1f7857fe10ef0e3def83ee3fb0ee3514d12ebe7ff00d8aff62aff0082f368ff00f05e5f8b1fb427ed09f163f680d1ff00e0997a3fed01fb6a -78ff00c17e0bf1ff00eda9378efe1678efe1678ee6f8b1e16fd9e3c15e0afd9e3c2df163c77fd8ff00d8ff00f09df813c79e1cf0e78f3c09e04f0e7813c39e04 -bd55bdd1fc6ba3f853c29ac7f5fb5fc917ec23fb287fc17dfc13ff0005d4fda13e387c76f89ff1834dff0082616b9f183f6ccd6743f087c58fdaa3c37f17be1e -f8bfe0d78c7c61e32b8fd9cfc27f07be085bf8ff00e27eaff0a7c41a4eaf7ff0c3c61a25cb784be10cfe10f867e0ef197812ebc4da6aeb937c33f1b007d3ff00 -f04e3fd8dffe0ae1f07ffe0b11ff000519f8ebfb5b7c7cf881e39fd817c65ff0b7ff00e193fc0de22fda7fc6ff0013fc0971ff000babe397853e2bfc3bff0085 -75f04b58d66fecbe18ff00c284f865a0ebbf093c5dff00090f86bc05fd89ac6bd0787fe0e7fc2c4f87579ab78aacb80ff82637ecd3ff000592f86bff0005a0ff -008284fc62fdb17c47fb406a3ff04f8f1f7fc358ff00c32c691e3ffdac742f8aff000b2c3fe12afdab7c03e29f81ff00f0857c0bb1f8c9e31d4fe1afd97e0958 -789ed7c39f6cf87de15ff843bc38f7be0fb8fec3b8d45344bafe9f6bf982ff0082637ecd3ff0592f86bff05a0ff8284fc62fdb17c47fb406a3ff0004f8f1f7fc -358ffc32c691e3ff00dac742f8aff0b2c3fe12afdab7c03e29f81fff000857c0bb1f8c9e31d4fe1afd97e0958789ed7c39f6cf87de15ff00843bc38f7be0fb8f -ec3b8d45344ba00f9fff0062bfd8abfe0bcda3ff00c1797e2c7ed09fb427c58fda0347ff008265e8ff00b407eda9e3ff0005f82fc7ff00b6a4de3bf859e3bf85 -9e3b9be2c785bf678f05782bf678f0b7c58f1dff0063ff0063ff00c277e04f1e7873c39e3cf027813c39e04f0e7812f556f747f1ae8fe14f0a6b1fc517fc161f -f650ff0082c0feca9e2af857e1eff82aafc4ff008c1f17748d4bc41f1ab46fd9afc75f11ff006a8bdfda53c2be29d3bc17a8f80ec7e2478b3e18d9f883c7fe27 -f1b7c3cf0ff8aadb54f865ac35b78ebc1df0cfc55afe9d3787e2d6fc336fabf87751d2f43ff65aaff2e4ff00820f6813ff00c179bfe0a49f16bc0bff000574f1 -bfc60fdb73c13e0bfd983e397c77f01783be23fc72f8cbe1cf0afc37f899e29f8f3fb38e8faf6a9f0c7c3df0cbc77e06d23e1a787f50d23c437da5b7803c0967 -e1ef87b069d6be1fb1b5f0b416de14f0bc5a3807fa0e7fc1277fe5165ff04d3ffb300fd8dfff0059d7e1cd7dff005e7ff09fe16f813e077c2cf869f053e16e85 -ff0008bfc32f83ff000ffc1bf0b7e1d7867fb4f58d6ffe11df027c3ff0e69be13f08e85fdb3e22d4357f106aff00d91e1fd234fd3ffb4f5dd5753d62ff00ecff -006ad4f50bdbd967b997d02800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800aff106ff0082b17fca537fe0a59ff6 -7fff00b647feb457c46aff006f9aff00106ff82b17fca537fe0a59ff0067ff00fb647feb457c46a00ff4fbff00835c7fe5051fb0cffddccffeb61fed055fbfd5 -f803ff0006b8ff00ca0a3f619ffbb99ffd6c3fda0abf7fa800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2803e00ff82b17fca2cbfe0a59ff006601fb647feb3afc46aff304ff008218ff00c3f5ff00e328bfe1ca9ff544bfe1a5bfe4cf3feaae7fc29b -ff0093b1ff00baabff00220ffdcd5ff32e57fa9dff00c1427e16f8efe38fec0bfb70fc14f85ba17fc251f137e307ec81fb4b7c2df875e19fed3d1f44ff00848b -c77f103e0bf8d7c27e11d0bfb67c45a8691e1fd23fb5fc41abe9fa7ff69ebbaae99a3d87da3ed5a9ea1656514f7317f902fc62f877ff000557ff008226fc53ba -f829e2ef881fb407ec2ff137e307c3ff0007fc52d63c33f02ff69e8f44ff0084fbc0969e23f883e13f046bbe29d67f66ff008a9abf87f57fec8f10691f1174fd -134cf116aafac687f68d5eea0d3ecacb5f8ee75100ff004bbfdbebfe1fafff000f4dfd8aff00e1863fe5197ff18e3ff0d89ff2679ff4715e32ff008683ff0092 -c1ff001901ff0026ff00ff00088ffc92effb927fe2b5fed3a3f6faff0087ebff00c3d37f62bff8618ff9465ffc638ffc3627fc99e7fd1c578cbfe1a0ff00e4b0 -7fc6407fc9bfff00c223ff0024bbfee49ff8ad7fb4ebf7fabf982ff829cfecd3ff000592f895ff0005a0ff00827b7c62fd8ebc47fb4069dff04f8f00ff00c327 -7fc353e91e00fdac742f851f0b2fff00e115fdab7c7de29f8e1ff09afc0bbef8c9e0ed4fe257dabe095ff862d7c47f63f87de2aff84c7c38967e0fb7fedcb8d3 -9f44b5003fe0b57ff1126ffc353f807fe1ce9ff26cbff0cffe15ff0084e7fe4c2ffe4bb7fc2c5f8abff0937fc9d1ff00c5c0ff00927fff000ac7fe40ff00f147 -7fd03ffe275ff090d1fb4b7fc449bff0f92f0e7fc33a7fca22ff00e1a03f64eff8487fe4c2ff00e484ff00617c1bff0086a3ff0091e7fe326bfe437ff0b77fe3 -c7fe2b1ffa277fe89ff08cd78fff00c17cbf611ff82ea7ed33fb687ece7e31ff008260fed09f183e187ecf9aff00c1ff000c7c27f8a767f0e3f6ccf187ecebe1 -5f85bf10b49f8ade35d535af8c3f13bc0ba4f8cbc2b73e27f0fea9e09f887e198975bf855e1ef8adf132ef4ef861e20d1efbc1b04961f0fac7c5dcff00eda9fb -157fc179b58ff82f2fc27fda13f67bf8b1fb406b1ff04cbd63f680fd8afc7fe34f05f803f6d49bc09f0b3c09f0b3c0937c27f0b7ed0fe0af1afecf1e29f8b1e0 -4fed8fed8ff8413c77e3cf11f873c07e04f1df873c77e1cf1dd9ab5eeb1e35d63c57e14d1c03efff00dbebfe1fafff000f4dfd8aff00e1863fe5197ff18e3ff0 -d89ff2679ff4715e32ff008683ff0092c1ff001901ff0026ff00ff00088ffc92effb927fe2b5fed3a3f6faff0087ebff00c3d37f62bff8618ff9465ffc638ffc -3627fc99e7fd1c578cbfe1a0ff00e4b07fc6407fc9bfff00c223ff0024bbfee49ff8ad7fb4ebf7fabf9c1ff828e7ec6fff000570f8c1ff000588ff0082737c75 -fd927e3e7c40f037ec0be0dff8541ff0d61e06f0efed3fe37f861e04b7ff00852bf1cbc57f15fe227fc2c5f825a3eb36165f13bfe17dfc32d7b42f849e11ff00 -847bc35e3dfedbd63419fc3ff18ffe15dfc3ab3d27c557a01c07ed2dff001126ff00c3e4bc39ff000ce9ff00288bff008680fd93bfe121ff00930bff009213fd -85f06ffe1a8ffe479ff8c9aff90dff00c2ddff008f1ff8ac7fe89dff00a27fc2335eff00fb7d7fc3f5ff00e1e9bfb15ffc30c7fca32ffe31c7fe1b13fe4cf3fe -8e2bc65ff0d07ff2583fe3203fe4dfff00e111ff00925dff00724ffc56bfda75f007eda9fb157fc179b58ff82f2fc27fda13f67bf8b1fb406b1ff04cbd63f680 -fd8afc7fe34f05f803f6d49bc09f0b3c09f0b3c0937c27f0b7ed0fe0af1afecf1e29f8b1e04fed8fed8ff8413c77e3cf11f873c07e04f1df873c77e1cf1dd9ab -5eeb1e35d63c57e14d1fe80ff829cfecd3ff000592f895ff0005a0ff00827b7c62fd8ebc47fb4069dff04f8f00ff00c3277fc353e91e00fdac742f851f0b2fff -00e115fdab7c7de29f8e1ff09afc0bbef8c9e0ed4fe257dabe095ff862d7c47f63f87de2aff84c7c38967e0fb7fedcb8d39f44b5003f696ff88937fe1f25e1cf -f8674ff9445ffc3407ec9dff00090ffc985ffc909fec2f837ff0d47ff23cff00c64d7fc86ffe16effc78ff00c563ff0044effd13fe119a3f696ff88937fe1f25 -e1cff8674ff9445ffc3407ec9dff00090ffc985ffc909fec2f837ff0d47ff23cff00c64d7fc86ffe16effc78ff00c563ff0044effd13fe119afe9f6bf902fdb5 -3f62aff82f36b1ff0005e5f84ffb427ecf7f163f680d63fe0997ac7ed01fb15f8ffc69e0bf007eda937813e167813e1678126f84fe16fda1fc15e35fd9e3c53f -163c09fdb1fdb1ff0008278efc79e23f0e780fc09e3bf0e78efc39e3bb356bdd63c6bac78afc29a3807dff00ff001bd7ff0087ebff00d6133feecf3fe8cf3ff1 -2d3fe4ed3fcffc2b4afe50bfe0e35fd82bfe0a4ff03bfe0a7ffb4dff00c1667e16fc29ff00845ff672f83ff103f634f8a5f0ebf690ff0084ebe02eb7ff0008ef -8efe1ff803f66bf85de11d77fe14ff0088bc63abf8eb57fec8f8f5a469fa1ff666bbf0bb53d1effecffda7a9e9f7be0c967d425fe8fbfe19a7fe0b25ff001126 -ff00c345ff00c247fb407fc3a2ff00e85eff0086b1d0bfe144ff00c985ff00c20dff0026b9ff000b93fb6bfe4e6bfd3bfe4917fc8e3ff1713fe3d3fe2a6afc20 -ff0083a9ff00650ff82c0e97f197f6b9fda62c7e27fc60f11ffc1257c47e1ffd9bb59d63c0fa37ed517b07c1af016a3041f08be12c5e13f167ecc1e21f1fe832 -5e7882f3f683d074bf88f6d73e05f86fe34f0aacfe34f0cf8e2f3c4d6be2cb5f18da784c03fa1eff00835fbf6f5fdac7fe0a25fb02fc5df8d7fb62fc56ff0085 -c1f137c2ff00b5ff008fbe16e85e26ff008417e1b7c3ff00b0f81344f82ff003c59a6685fd8df0b7c1de09f0fdcfd9bc41e36f13ea1fda779a55c6b137f69fd9 -6e35096cacb4fb6b4fe8fabf902ff832a7fe5165f1f3fecfff00e29ffeb3afecab5fd7ed007e00ff00c1d1dff2828fdb9bfeed9bff005b0ff67dafc01ff835c7 -fe1fafff001833ff00484cff008c99ff00a33cff00ab82ff00bbb4ff0093b4ff003ff0ad2bf7fbfe0e8eff0094147edcdff76cdffad87fb3ed7f343ff06ac7ec -a1ff000581d53e32fec8dfb4c5f7c4ff008c1e1cff00824af873c3ff00b48eb3a3f81f59fdaa2f67f835e3dd46783e2efc2597c27e13fd983c3de3fd7a4b3f10 -59fed07af6a9f11ee6e7c75f0dfc17e1569fc17e26f1c59f89aebc5975e0eb4f16007f4bdff1bd7ff87ebffd6133feecf3fe8cf3ff0012d3fe4ed3fcff00c2b4 -a3fe37afff000fd7ff00ac267fdd9e7fd19e7fe25a7fc9da7f9ff85695fbfd5fcd0e8dfb287fc160754ff838f3c59fb4c5f7c4ff008c1e1cff00824af873c3f6 -dace8fe07d67f6a8bd9fe0d78f7519ff00635f0cfc2597c27e13fd983c3de3fd764b3f1059fed07af6a9f11ee6e7c75f0dfc17e1569fc17e26f1c59f89aebc59 -75e0eb4f1600607ecd3ff1126ffc3e4bc47ff0d17ff288bff8680fdac7fe11eff930bff9213fd85f193fe1973fe446ff008c9aff0090dffc2a2ff8feff008ac7 -fe8a27fa27fc24d5efff00f1bd7ff87ebffd6133feecf3fe8cf3ff0012d3fe4ed3fcff00c2b4af883f650fd847fe0ba9e09ff82fbfc4ff008edf1c3f684f8c1a -e7fc130b4df8c1fb547c58f08687acfed99e30f18fc1af17fc3df8bde1bf1fdbfc10f83de13fd9d2e3c657fabe93e20f853abfc4ff000935ce89e30f861e0ef8 -67e109fe10f89aebc09e32d7174df867378dbd83fe19a7fe0b25ff001126ff00c345ff00c247fb407fc3a2ff00e85eff0086b1d0bfe144ff00c985ff00c20dff -0026b9ff000b93fb6bfe4e6bfd3bfe4917fc8e3ff1713fe3d3fe2a6a003f669ff88937fe1f25e23ff868bff9445ffc3407ed63ff0008f7fc985ffc909fec2f8c -9ff0cb9ff2237fc64d7fc86ffe1517fc7f7fc563ff004513fd13fe126a3f669ff88937fe1f25e23ff868bff9445ffc3407ed63ff0008f7fc985ffc909fec2f8c -9ff0cb9ff2237fc64d7fc86ffe1517fc7f7fc563ff004513fd13fe126afe9f6bf922fd943f611ff82ea7827fe0beff0013fe3b7c70fda13e306b9ff04c2d37e3 -07ed51f163c21a1eb3fb6678c3c63f06bc5ff0f7e2f786fc7f6ff043e0f784ff00674b8f195feafa4f883e14eaff0013fc24d73a278c3e18783be19f8427f843 -e26baf0278cb5c5d37e19cde3600fb7ff605ff0087ebff00c3d37f6d4ff86e7ff9465ffc6477fc31dffc99e7fd1c57837fe19f3fe48fff00c6407fc9bfff00c2 -5dff002547fee76ff8ad7fb32bc03f669ff88937fe1f25e23ff868bff9445ffc3407ed63ff0008f7fc985ffc909fec2f8c9ff0cb9ff2237fc64d7fc86ffe1517 -fc7f7fc563ff004513fd13fe126a3fe098dfb34ffc164be1affc1683fe0a13f18bf6c5f11fed01a8ff00c13e3c7dff000d63ff000cb1a478ff00f6b1d0be2bfc -2cb0ff0084abf6adf00f8a7e07ff00c215f02ec7e3278c753f86bf65f82561e27b5f0e7db3e1f7857fe10ef0e3def83ee3fb0ee3514d12ebe7ff00d8aff62aff -0082f368ff00f05e5f8b1fb427ed09f163f680d1ff00e0997a3fed01fb6a78ff00c17e0bf1ff00eda9378efe1678efe1678ee6f8b1e16fd9e3c15e0afd9e3c2d -f163c77fd8ff00d8ff00f09df813c79e1cf0e78f3c09e04f0e7813c39e04bd55bdd1fc6ba3f853c29ac007dfff00b02ffc3f5ffe1e9bfb6a7fc373ff00ca32ff -00e323bfe18eff00e4cf3fe8e2bc1bff000cf9ff00247ffe3203fe4dff00fe12eff92a3ff73b7fc56bfd9947ec0bff000fd7ff0087a6feda9ff0dcff00f28cbf -f8c8eff863bff933cffa38af06ff00c33e7fc91fff008c80ff00937fff0084bbfe4a8ffdcedff15aff006657eff57f305ff04c6fd9a7fe0b25f0d7fe0b41ff00 -0509f8c5fb62f88ff680d47fe09f1e3eff0086b1ff008658d23c7ffb58e85f15fe16587fc255fb56f807c53f03ff00e10af81763f193c63a9fc35fb2fc12b0f1 -3daf873ed9f0fbc2bff0877871ef7c1f71fd8771a8a68974007ecd3ff1126ffc3e4bc47ff0d17ff288bff8680fdac7fe11eff930bff9213fd85f193fe1973fe4 -46ff008c9aff0090dffc2a2ff8feff008ac7fe8a27fa27fc24d5fcc0ff00c1953ff294df8f9ff6601f14ff00f5a2bf655afb7fe367c6cff82b4ffc1207fe0ad3 -e2aff8287ffc143fc55fb6feb9ff000495d73f6dff00dad7c27f0dfe1bf84ff6b5f08fc5ef0af8cfc2bf17bc23fb4bea3fb35f867c33fb35ea3fb4bd9e91a178 -7f41d22cf40f19e8da378cf40f0769de01d3bc1d6d0416da6f8b34df0ff87eebd03fe0d1dff824ff00edb5fb337c7df15fededf1e3e1c787fe1d7ecf9f1d3f62 -0d1b46f81fa8dcfc44f03f8a3c55f14b4ef8f1e34f835f19bc25e2cd1bc31e04d73c5573e18f0fe97e09f87827f135b7c499fc0de2ab4d47c65e13d3f49f0ceb -5245e307f08807f7b9451450014514500145145001451450014514500145145001451450014514500145145001451450015fe20dff000562ff0094a6ff00c14b -3fecff00ff006c8ffd68af88d5fedf35fe20dff0562ff94a6ffc14b3fecfff00f6c8ff00d68af88d401fe9f7ff0006b8ff00ca0a3f619ffbb99ffd6c3fda0abf -7fabf007fe0d71ff0094147ec33ff7733ffad87fb4157eff00500145145001451450014514500145145001451450014514500145145001451450014514500145 -14500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145 -14500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145 -14500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145 -14500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145 -14500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145 -14500145145001451450015fe609ff0007ab7fca537e01ff00d9807c2cff00d68afdaaabfd3eebf007fe0bbfff0004b8fd84ff006a0fd963f6c2fdb5be3a7c0c -ff0084e3f69afd9dff00600fda0bfe14efc4bff859bf18bc33ff00087ffc2a4f875f17fe2c7c3eff008a37c1ff00107c3ff0ff00c41ff08ffc40f106afafff00 -c553e14d6ffb57ed7fd95adff6968b6f6ba6c201e7ff00f054afd9d7fe0b25f137fe0a9bff0004c4f8a5fb1d7c47f8816fff0004f8f86ff103e0cde7ed4ff0eb -e17fc7cd0be0d7d8bfb13f68ad17c45f1c3c47f19fc237de26f87ba9fc73f87fe33f8249e18d0bc2fe0ab3d43e2dfd8bfe10af899a65bf803c2371e3879fe26f -01ff000539fd9a7fe0b25f12bfe0b41ff04f6f8c5fb1d788ff00680d3bfe09f1e01ff864eff86a7d23c01fb58e85f0a3e165ff00fc22bfb56f8fbc53f1c3fe13 -5f8177df193c1da9fc4afb57c12bff000c5af88fec7f0fbc55ff00098f8712cfc1f6ff00db971a73e896bf3fff00c1a95ff0547fdbb3fe0a51ff000de7ff000d -adf1cffe1747fc297ff865cff8569ff16cbe0efc39ff00846bfe1637fc3457fc265ff249be1f7813fb63fb63fe104f0a7fc87ffb57fb3ffb2bfe255f61fb76a5 -f6cfbfff006faff87ebffc3d37f62bff008618ff009465ff00c638ff00c3627fc99e7fd1c578cbfe1a0ffe4b07fc6407fc9bff00fc223ff24bbfee49ff008ad7 -fb4e803e60ff0082e7fecb9ff05f7f8e1fb687ec69e31ff82577c73f107c3afd9f3c29e1fd12cbc6367e1bf8e7e1bf84de15f87df1960f8adfda9e21f8a1fb46 -f81758fb0dcfc7ef83fa8f8264f87915878063f0f7ed0f043a77c3ef8aba3afc1bd3e4f1dcb63f15ff009c1ff82fefedbbff000546d7bfe0bbdf14bf62efd943 -f6bbfda7fc016d27883f650f811fb3e7c19f829f1f7c4df007c2b79e2af8cbf083e10f89f4ed2f507f0a78b3e1f785b50f1078afe2b7c59d65aebc7ff11f53b8 -d46cf4ed474ad0f52f14d8f827c25e1dd3b42ff49bf8b3f14bc09f03be167c4bf8d7f14b5dff00845fe197c1ff0087fe32f8a5f117c4dfd99ac6b7ff0008ef81 -3e1ff87352f1678bb5dfec6f0ee9fabf88357fec8f0fe91a86a1fd99a1695a9eb17ff67fb2e99a7dedecb05b4bfe78777fb2e7c76ff82b97fc1c11a4ff00c15b -3fe09e9e06ff008682ff00827c7807f6ff00fd82bfe12dfda03fe126f077c28fec9ff8673f865fb1f6b5f197fe2d4fc6ef10fc35f8db7fff000876996b3dcffc -4b3e1b5e7fc243b3c9f0aff6e5c3244c01f983e25fdaaffe0b57ff000497fdbebf64ad1bfe0a73fb50fedffa4787fc3bf103e037ed21f117e0a7fc36febdf1c7 -fe1667ece3a47c689ed7c5da3ff657877f684f12fc32f107fc26765f0dfc7de13ff8423c6be26d22d756f2becde238ec3c3fabc1a84ffabdf167fe0e3cf899fb -76ff00c16cbfe095517ec25f15bf69ff00813fb27b7c60fd9e3e0a7c51f81ff1274cf87be13d3be2578abe377ed0727813e346a1e36f097827c63f133c37f117 -c3fac7c1bd7fc13e1ef035d78eb58d4751f85be2ad2f5cf18fc2dd2bc05e31ba9fc61ad7f63bfb6b7fc119bfe09b1ff0512f8a7a07c6bfdb17f66fff0085c1f1 -37c2ff000ff4af85ba1789bfe1707c7af87ff61f02689e23f15f8b34cd0bfb1be16fc51f04f87ee7ecde20f1b789f50fed3bcd2ae3589bfb4fecb71a84b6565a -7db5a7e40fedddff0006e1fec9df03bf667f147c6bff00823ffec6dff08bff00c149fe0ffc40f801f14bf650f137fc3437c49d6ffe11df1dfc3ffda13e1678b3 -59d77fb1bf69ff008e5abfc05d5ffb23c0ba478b350feccf893a56a7a3dffd9fecb6ba7deeb12e9b6d28073ffb777eca1ff05f7f1b7fc1753f67bf8e1f027e27 -fc60d4bfe0985a1fc60fd8cf59d73c21f09ff6a8f0dfc21f87be10f835e0ef187836e3f68cf09fc61f82171e3ff861abfc56f106adabd87c4ff186b772be12f8 -bd3f8bfe19f8c7c1be04b5f136a4ba1c3f0cfc13ec1ff0539fd9a7fe0b25f12bfe0b41ff0004f6f8c5fb1d788ff680d3bfe09f1e01ff00864eff0086a7d23c01 -fb58e85f0a3e165fff00c22bfb56f8fbc53f1c3fe135f8177df193c1da9fc4afb57c12bff0c5af88fec7f0fbc55ff098f8712cfc1f6ffdb971a73e896bf901ff -001dd77f9ff873cd1ff1dd77f9ff00873cd007eaff00ed47fb2e7fc17dfc4fff0005f7f819f1dbe04fc73f1068ff00f04c2d1fc41f032f75cd0ecbe39f86f40f -835e1af835a0786fecff00b467c2ff008a1fb3a5c795abfc47f8c1f11f578be27b7807c7cbf0c3e264fa24ff00133e0ddd5afc64f874bf0ea19be0c79ffedddf -b287fc17dfc6dff05d4fd9efe387c09f89ff0018352ff8261687f183f633d675cf087c27fdaa3c37f087e1ef843e0d783bc61e0db8fda33c27f187e085c78ffe -186aff0015bc41ab6af61f13fc61addcaf84be2f4fe2ff00867e31f06f812d7c4da92e870fc33f04fe707fc775dfe7fe1cf347fc775dfe7fe1cf3401f5ff00ed -ebf103fe0a7fff0004edff0082ce7c56ff0082a87c6b93f6bff147fc10fbe0ff00fc20bff093780be16fed39e00d6fc097dff0b03f654f077ece9a37f617ec91 -e2cfda3fc1315cfd9bf6baf1b695acea7fda1e0ad33c9d62df50f8996bf6d68adb56bbfe48bfe0b65ff05acf8cbff052ff00da83e31df7c22f8ddfb4ff00843f -60ff0016787fe147867c05fb2e78e7c470780bc2aba77827c3fe13f11ebd73f127e13fc32f1af88fe1b78d3c413fc76b5f1578eb43f1678ab54f1b78aa1d397c -1366359d2ec3c21e17f0df85ff0047ff00e0a8ff00f1161ffc309fc73ff87977fc992ffc5b2ff85d5ff28daffa2c5f0fbfe15c7fc902ff008bb5ff00256bfe10 -3ff914ff00ee3bff0014d7f6cd7f205401fd8eff00c1bd3ff070b7ec5fff000499fd8bfe277ece7fb467c31fda7fc69e36f1a7ed3fe34f8d7a5ea9f053c17f0a -7c47e15b7f0af88fe14fc15f02d8e9fa85f78ebe357c38d5e2f1045abfc38d72e2ead6df43bad3934ebad2a687559ee67bcb3b1fddeff88d5bfe0965ff00440f -f6ff00ff00c359fb3aff00f45557f98251401fea77ff000599fdb5be167fc144bfe0d77fda43f6c5f829a07c40f0bfc32f8c1ff0a7ff00e119d0be29695e1cd1 -3c7763ff000aff00fe0a1bf0bbe16eb3fdbba6784fc57e36f0fdb7da7c41e09d56f34cfecff13ea7e768f71a7dc5d7d8af65b9d3ed3f961ff83563f6d6fdae34 -1ff82a87ec8dfb23d8fed1bf1827fd973c69e1ff00da47c33ac7ecf3acf8e35bf11fc1ab3d3ad7e0b7c5df8eb15cf84fe1d7886eb54f0b780bc40df15bc27a5f -8bae7c59e05d33c39e2abc9eebc4da65e6b33e87e34f18e99aefe707ec9dff000547f8edff000aebf669ff008268fed47f1cff00e3517ff0d01f06ff00e1a2fe -0aff00c2b2f077fc909ff86a7f0e7c7df8bbff00171fe1dfc3eff869aff90dff00c243e2cff8a1bc79ff00098ffcc0bc33fe89f61d1abeff00fd9a7fe0971ff0 -561ff86a7f11ff00c14bbfe085df033fe3197fe1a03f6b1ff860af8d5ff0b37f66dff9213ff0b17e327c02d27fe2dc7ed83f107fe1607fc93ffedcf09ffc5e5f -01ff00c263ff0031db9ff89d7d9359a00febfbfe19a7fe0b25ff001126ff00c345ff00c247fb407fc3a2ff00e85eff0086b1d0bfe144ff00c985ff00c20dff00 -26b9ff000b93fb6bfe4e6bfd3bfe4917fc8e3ff1713fe3d3fe2a6aeffc1bfb3aff00c164ad7fe0e2af8b3fb427fc2c7f881a1ffc122f51f87fa6d9ff00c217e3 -2f8f9a178abe1678c7cbfd97be1a785bfe11cf84ff00b3c7fc24de31d6be1afc40b5fda6ac3fe13cd4bc6bff000827c28fb7f873c2bf12d7fe13fd46d3c7dff0 -8a7c4afc41ff008eebbfcffc39e68ff8eebbfcff00c39e6803f57ff65cfd973fe0befe18ff0082fbfc73f8edf1dbe39f88358ff82616b1e20f8e77ba1e877bf1 -cfc37aff00c1af12fc1ad7fc37f67fd9cfe17fc2ff00d9d2dfcdd5fe1c7c60f871abcbf0c1bc7de3e6f861f0ce7d6e7f867f192eaebe327c455f88b34df19fa0 -ff008669ff0082c97fc449bff0d17ff091fed01ff0e8bffa17bfe1ac742ff8513ff2617ff0837fc9ae7fc2e4fedaff00939aff004eff009245ff00238ffc5c4f -f8f4ff008a9abf203fe3baeff3ff000e79a3fe3baeff003ff0e79a00fd1ffd847f650ff82fbf827fe0ba9fb427c70f8edf13fe3069bff04c2d73e307ed99ace8 -7e10f8b1fb54786fe2f7c3df17fc1af18f8c3c6571fb39f84fe0f7c10b7f1ffc4fd5fe14f88349d5effe1878c344b96f097c219fc21f0cfc1de32f025d789b4d -5d726f867e36fc018bfe0bfdfb4ffec61ff0707fed6fe3afda8bf68bfda7fe287ec5ff000f3f69ff00db1fe0478b7f66cf036a1e1ff13f8561f867e03d5fe207 -c37f81fa5fc36f83be30f127827e14f843c41e10f14f827e13ea9ae78ffc3779e0ef885e21d3b4bf1b5f788fc53e2ad47c7de3bb1f1afdbfff001dd77f9ff873 -cd7e9ffec23ff06e1fec9df1c7f667f0bfc6bff82c07ec6dff000947fc149fe307c40f8fff0014bf6aff00137fc3437c49d13fe122f1dfc40fda13e29f8b346d -77fb1bf660f8e5a47c05d23fb5fc0babf84f50feccf86da5699a3d87da3ecb75a7d96b116a56d1007f085fb58ffc1683f6faf8affb53fed2df14be05fedeff00 -b7ff00c35f825f12bf680f8c9e3ff83bf0ebfe1a97e34783bfe101f859e31f88be23f117c3ef057fc223e0ff008a7a8f84bc2bff0008af84b51d2342ff008473 -c2da85ff0087343fb07f666897b75a65adaceffd5f7fc1bb9fb3e7fc1c4171fb58fecfbfb54fed61f1d7f680f11ffc13e3e287ecff00ae7c45d55bf684fdb074 -cfda0347f8b7e04f8a7f0dad3c41f0520f01fc31d43e247c5bf16f81fe205c78b75bf877f1157c45ab7877e166b1a27813c33e3bf08eb1e2eb4b8f11dd7c38f1 -c7a07fc16aff00e0d71f813ff0cb1e01ff00873a7ec33ff1935ff0d01e15ff0084e7fe3267c63ff2427fe15d7c55ff00849bfe4e8ff682ff00857fff002503fe -158ffc81ff00e2b1ff00a07ffc497fe121afcfff00f820affc151ffe0ac3a77fc1587f653ff8249fed2ff1cfc9f825f023fe179fecb9e35fd9ff00fe1597ecdb -27fc22bff0c9bfb36fc62d17c39e06ff0085ade00f87d278b75cff008407c5bf0a341b6ff849b49f893ac7fc255fd83e75ff00887c47a66a97b2ea201fd3f7ec -01f00bfe0b25e01ff82b87fc14abe2c7ed8bf1abfe131ff827c7c45fb77fc32c78365f88fa1789fc3927dabc6fa3ea5f03ff00e154fc34b1d1a0d4fe0d7fc29a -f8250789fe1a7ed01f6cd37e1aff00c2d7f8a7ace8be32b8ff008684b8b04f8b3a1f807fc131bf669ff82c97c35ff82d07fc1427e317ed8be23fda0351ff0082 -7c78fbfe1ac7fe196348f1ff00ed63a17c57f85961ff000957ed5be01f14fc0fff00842be05d8fc64f18ea7f0d7ecbf04ac3c4f6be1cfb67c3ef0aff00c21de1 -c7bdf07dc7f61dc6a29a25d7f4fb5f803fb02ffc3f5ffe1e9bfb6a7fc373ff00ca32ff00e323bfe18eff00e4cf3fe8e2bc1bff000cf9ff00247ffe3203fe4dff -00fe12eff92a3ff73b7fc56bfd99401fc417fc1c3bfb34ff00c164be1afc53fda37e317ed8be23fda0351ff827c78fbf6fff008bdff0cb1a478fff006b1d0be2 -bfc2cb0ff84abc47f1b3c53f03ff00e10af81763f193c63a9fc35fb2fc12b0f13daf873ed9f0f7c2bff0877871ef7c1f71fd8771a8a68975fe8f9ff049dff945 -97fc134ffecc03f637ff00d675f8735fc415a7ed47f1dbfe0ae5ff0007046adff0493ff8285f8e7fe1a0bfe09f1e01fdbfff006f5ff844bf67ff00f8467c1df0 -a3fb27fe19cfe197ed83a2fc1aff008badf047c3df0d7e36dfff00c21da65ac16dff00133f89379ff090ecf3bc55fdb970cf2b7fa1e7c27f85be04f81df0b3e1 -a7c14f85ba17fc22ff000cbe0ffc3ff06fc2df875e19fed3d635bff8477c09f0ff00c39a6f84fc23a17f6cf88b50d5fc41abff0064787f48d3f4ff00ed3d7755 -d4f58bff00b3fdab53d42f6f659ee6500f40a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800aff106ff0082 -b17fca537fe0a59ff67fff00b647feb457c46aff006f9aff00106ff82b17fca537fe0a59ff0067ff00fb647feb457c46a00ff4fbff00835c7fe5051fb0cffddc -cffeb61fed055fbfd5f803ff0006b8ff00ca0a3f619ffbb99ffd6c3fda0abf7fa800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a -2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a -2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a -2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a -2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a -2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a -2800a28a2800a28a2800a28a2800a28a2800ae7fc59e13f0af8f7c2be26f02f8ebc33e1ff1a7827c69e1fd67c27e31f0778b346d3bc47e15f167857c47a75ce8 -fe21f0cf89bc3dac5b5e691af787f5dd22f2f34bd6746d52ceeb4ed534ebab9b1beb69eda79626e828a00fe30bfe0aa7fb057ed63fb06fedf5fb3b7fc143bfe0 -9b1f0a7fe1447fc1363e07fc3ff847f14bfe0a37f06bf618f1d7c36fd967fe12ef027ec7df1a3e21fc70f8b3aefc51f81365e31f80de05f8fbff000957c05f1a -6b5e15f04e98b77e39d635aff847bc5de0ef1469fe17d1f50f0ccbe2bf20b7fdaabfe0a2bff05aff00f82927ec4bfb76ff00c12bad3f6dff00875ff04c2f81bf -183f66df829fb5e7853c59fb497c2ff80be15d5bc55f0cfe3cafc62f8fba8789bf67ef09fed49ab47f13fc3f7ffb3e7c56f879a6eb3751f8675fd47c6ba758dc -f82574ad55747b6d3e4feb77fe0a13f0b7c77f1c7f605fdb87e0a7c2dd0bfe128f89bf183f640fda5be16fc3af0cff0069e8fa27fc245e3bf881f05fc6be13f0 -8e85fdb3e22d4348f0fe91fdafe20d5f4fd3ff00b4f5dd574cd1ec3ed1f6ad4f50b2b28a7b98bfcc13f634f877ff000557ff00824bff00c1537fe09d3fb10fc7 -4f881fb407ecabe1ff008e3fb5ff00ec8bf14bc53fb3c7803f69e8effe167c4cf027c4cfda2bc2ff0008f5bd77c6be16f817f153c4bf0cbc41ff00099d97c37d -5fc0fe23d33c52b3eb1ab7873c3b67a76b7a7cbe1f7d204e01fd2eff00c1d47fb287fc1607e21f8aaebf683fd8d7e27fc608bf60ff000a7ec41e3dd1bf6b5f85 -df0e3f6a8bdf84de15d2f4ef871a8fc58f1b7c5bf167c4ef82fad78ffc07e1bf8a1e1ff1f7c1bf18d878756dbc25a77c47f15789f4ef87de20f0a78a7c33a7d8 -45e0883c55ec1ff0654ffca2cbe3e7fd9fff00c53ffd675fd956bcff00fe0eacfd9d7fe0b25f137ec1f14bf63af88ff102dffe09f1f0dff640f8c579fb53fc3a -f85ff1f342f835f62fec4ff84b3c45f1c3c47f19fc237de26f87ba9fc73f87fe33f8249e18d0bc2fe0ab3d43e2dfd8bfe10af899a65bf803c2371e3879fe26fa -07fc1953ff0028b2f8f9ff0067ff00f14fff0059d7f655a00febf68a28a0028a28a0028a28a00fc01ff83a3bfe5051fb737fddb37feb61fecfb5fe40b5febf5f -f07477fca0a3f6e6ff00bb66ff00d6c3fd9f6bfc816800a28a2800aff5faff00835c7fe5051fb0cffddccffeb61fed055fe40b5febf5ff0006b8ff00ca0a3f61 -9ffbb99ffd6c3fda0a803f7fa8a28a0028a28a0028a28a002bfcc13fe09a7ff2b927c46ffb3fff00f82b17fea0dfb6457fa7dd7f9827fc134ffe5724f88dff00 -67ff00ff000562ff00d41bf6c8a00feaf7fe09c7fb1bff00c15c3e0fff00c1623fe0a33f1d7f6b6f8f9f103c73fb02f8cbfe16ff00fc327f81bc45fb4ff8dfe2 -7f812e3fe1757c72f0a7c57f877ff0aebe096b1acdfd97c31ff8509f0cb41d77e1278bbfe121f0d780bfb1358d7a0f0ffc1cff008589f0eaf356f15597f245ff -0005b3d3bfe0e0ff00d887e3efed39fb4e78ebf694fdb7fe09fec5ff00153f6dff008d1e13fd9b35af09fedf9abbf8564f0af8e3c69f15be20fc1df0cf867e16 -7c37f8ff00aa78a7c05e1f6f853e13bcbbd1b46d53c13e1ad3bc2da76936de1dbeb6d1b51363a4c9fea375fc21ff00c1717f6b6baff82f1ffc2c2ff823effc13 -a3f66bfda03e217ed75fb137ed7fe2cf8a5f189fc7fa87ece3f0abe165e7813f66eff85b5fb2ff00c41d77c15e34f187ed0d657badfda3e26fc60f039f0e699a -8f87744d6352f0e5edeead77a7e9b369d7562801fd1f7fc1293f64efd962e7f640fd807f6c5b9fd9a7f67fb8fdaebe207ec81fb3e7c58f1e7ed4f3fc1bf8752f -ed1de36f8a7f183f67ff000ddf7c5bf897e2ef8e127871be26f893e207c51bdf17f8b2f3e22f8cb59f13def88fc6d75e28f115c789b52d4e6d6f527b9fd7eaf9 -03fe09edf0b7c77f03bf605fd87be0a7c52d0bfe117f89bf07ff00640fd9a7e16fc45f0cff0069e8fadffc23be3bf87ff05fc15e13f17685fdb3e1dd4357f0fe -affd91e20d2350d3ff00b4f42d5753d1effecff6ad3350bdb2960b997ebfa0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a002bfc41bfe0ac5ff00294dff0082967fd9ff00fed91ffad15f11abfdbe6bfc41bfe0ac5ff294dff82967fd9fff00ed91ff00ad15f11a803fd3 -effe0d71ff0094147ec33ff7733ffad87fb4157eff0057e00ffc1ae3ff002828fd867feee67ff5b0ff00682afdfea0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002bf8c2ff82e87ec15fb58f8bffe0b41fb067fc1503c3bf0a7fb47f618 -fd85fe1ffecbbf14bf6a7f8e3ff09d7c36b4ff00855de04fd993f6adf8b9fb42fc70d77fe15a5f78c6dbe3078dbfe109f83f73078bff00b33e1d7c3ff176b1e2 -4dff00d81e11d3f5ff00142be8abfd9ed73fe2cf09f857c7be15f137817c75e19f0ff8d3c13e34f0feb3e13f18f83bc59a369de23f0af8b3c2be23d3ae747f10 -f867c4de1ed62daf348d7bc3faee917979a5eb3a36a96775a76a9a75d5cd8df5b4f6d3cb13007f0c7ff051cfdbd7fe0a4fff000599f8a7f17be0a7fc1be3f15b -fe1a43f618b7fd903c23f0b7f6caf0cffc20bf017e0fecf1dfed0de23fda53c27e23d0bfb67f6daf077c2ef8c0dff097fc1ff0de97a7ff0069fc2bd55b47d03e -c5f6ab1d4344f145cdc5ccff001fddfed47f1dbfe091bff0704693ff000493ff00827a78e7fe19f7fe09f1e3efdbff00f60aff0084b7f67fff008467c1df15ff -00b5bfe1a33e197ec7da2fc65ff8badf1bbc3df12be36d87fc263a65d4f6dff12cf89367ff0008f6ff003bc2bfd8770a92af907fc1cf1e2cf157fc132ffe0a49 -f0efc0bff04ddf137883fe09f5e09f89dfb107c1bf167c49f077ec43acea3fb287857e2178ab48f8f3fb5668fa4f89bc71e1ef80f73e02d23c59e20d2f4866d2 -f4ed675eb3d4351b2d399ac6dae62b62623f3fff00c16c3e35f857f66bff0083a9fc55fb45f8eb4ff106ade09f803fb4ff00fc13a3e35f8c74bf09dae9d7de2a -d4bc2bf0afe097eca3e3af10e9fe19b1d6355d0748bcf105e691a15e5be8d6baa6b9a369d71a8c96d0df6aba75b3cb790807faadd7e607edadff000599ff0082 -6c7fc13b7e29e81f053f6c5fda43fe14ff00c4df147c3fd2be29685e19ff00853ff1ebe207dbbc09adf88fc57e13d335dfed9f85bf0bbc6de1fb6fb4f883c13e -27d3ff00b32f355b7d621feccfb55c69f1595ee9f7377fc817edadfb42ff00c15ebfe0bc7f14f40fdaf7fe08469fb7ff00c2efd917e1cfc3fd2bf66ff88be1ff -00f86bef84ff00b247db3f68ef08788fc57f13bc5dac7fc2b8f0efed7b6565adfda3e197c60f84165ff09bcb135d6a5fd9ff00d82f2187c3702a7cc1fb33ff00 -c100bfe0bbdf1fbfe0a17fb1efc5dff8295fc2df107c56f853f0dbe307c24d4be2ef8f7f6bdfdabfe107ed39a749f00be1878f9be26f8abe125ee823e2f7c6cf -1b7897c3fe38b61e2af0ae83e028bc2b7fe0bbef1578fa53e2f93c39e16d5bc55e28d3803f47fe38fedebff07097fc144bf698fda4be35ff00c1033e2b7fc2e0 -ff00826c785fe20781fe16fc32f137fc20bfb11fc3ff00b0f8ef44fd9efe0a78b3e2d685fd8dfb67f83bc13f1eae7ecde3af1b6aba87f69f8834ab8d1e6fed3f -b2f86b509747b2b6b6b4f3ff00f8eebbfcff00c39e6bfb9cf829fb3d7c02fd9afc2ba87817f673f81df07fe00f82756f105d78b354f077c14f869e0bf857e15d -4bc557da7695a3df789b50f0f781745d0748bcf105e691a1687a5dd6b3716726a371a768da558cd72f6da759c50ff3c5ff000539fd9a7fe0b25f12bfe0b41ff0 -4f6f8c5fb1d788ff00680d3bfe09f1e01ff864eff86a7d23c01fb58e85f0a3e165ff00fc22bfb56f8fbc53f1c3fe135f8177df193c1da9fc4afb57c12bff000c -5af88fec7f0fbc55ff00098f8712cfc1f6ff00db971a73e896a01f901ff1dd77f9ff00873cd1ff001dd77f9ff873cd7f7f95fc817eda9fb157fc179b58ff0082 -f2fc27fda13f67bf8b1fb406b1ff0004cbd63f680fd8afc7fe34f05f803f6d49bc09f0b3c09f0b3c0937c27f0b7ed0fe0af1afecf1e29f8b1e04fed8fed8ff00 -8413c77e3cf11f873c07e04f1df873c77e1cf1dd9ab5eeb1e35d63c57e14d1c03f007fe0a8ff00f1161ffc309fc73ff87977fc992ffc5b2ff85d5ff28daffa2c -5f0fbfe15c7fc902ff008bb5ff00256bfe103ff914ff00ee3bff0014d7f6cd7f383e0dfd82bf6b1f881fb1b7c59ff82817847e14ff006bfec8bf03be2069bf0b -7e297c5bff0084ebe1b587fc22fe3bd5efbe1a69ba7e85ff000816a7e31b2f89badfda2f7e307c3a83fb4fc3be0cd5f478bfe122f327d4228748d764d33fd6ef -fe0bd5fb2e7c76fdb47fe093dfb567ecd1fb34781bfe1657c6df895ff0a33fe10af057fc24de0ef077f6d7fc21dfb49fc1df1ff88ffe2a3f1ff887c2be12d3bf -b3bc25e15d7b56ff0089b6bd61f6cfb07d82c3ed5a9dd59595c7f9b1fed15ff0499ff82ef7ec17fb12fc66bcf8ede03f8c1f063f60fb3f107843c59f1bfe1f68 -dfb5f7c20d7be0d6b5e2af12f8e3e1cf82bc21e26f167c0df867f1f3c476de34f104fe37b5f861636dacb78175bd474c9f42f0cea975736761e18b7bed3003f0 -868aff0045cff83453f622fd8bff00694ff826dfc6df1d7ed19fb227ecc1f1fbc6da4fedbff127c27a5f8c7e35fc02f853f153c55a6f856c7e037ecd5ac58f86 -74ff0010f8ebc27af6af67e1fb3d5f5dd7354b5d1adef23d3adf51d6755be86d92e751bc966fea77fe1d3bff0004b2ff00a469fec01ff886ff00b3afff003b9a -00ff00304ff8255ffc1057f6ecfdb47c63fb187ed2f7bfb29ffc2caff827c7c4afda03c03ff0b5bc6bff000bcfe0ef83bfb6be04f83be3b27803f680ff008a72 -2f8c5e15f8dba77f67699e15f1fe93ff0014e68361e31bcfb07dbfc15f6ab8bad16f6e3ebff017edebff00059cf81dfb7d7c6eff0082337fc11ffe2b7fc22ff0 -cbe0ff00ed7ffb71fc2dfd943f66ff00f8417f654d6ffe11df027c3ff8d1f1dbe28eb3a17fc2e0fda7fc1dabf88357fec8f0fe91e2cd73fb4fe24fc51d4f58bf -fb3ff665aea17b7b2e9ba7cbfd9eff00c17abfe3073fe0851fb567fc314ffc61ff00fc2aff00f8519ff0ad3fe1973fe31fff00e15dff00c26bfb61fc1dff0084 -cbfe106ff854ff00f0897fc225ff00096ffc25be2bff00849bfb03fb3ffb7bfe126f10ff006afdaffb6b52fb4ff285ff0006c2ff00c132ff00e0a09f147fe0a0 -9fb35ffc15d7e23f87bfb47f665d47fe1aabe22eb3fb41fc45f8bbe18f1578efe34f8efc55e18f8cbfb3cf89a083c3d6de24f157c5ad47e206a3f16bc55e20f1 -1788bc45f13b43f0ae8fab68fe15f176bede2ed475ad47c27a678bc03ebfff008eebbfcffc39e68ff8eebbfcff00c39e6bfbfcafe68746fd943fe0b03aa7fc1c -79e2cfda62fbe27fc60f0e7fc1257c39e1fb6d6747f03eb3fb545ecff06bc7ba8cff00b1af867e12cbe13f09fecc1e1ef1febb259f882cff00683d7b54f88f73 -73e3af86fe0bf0ab4fe0bf1378e2cfc4d75e2cbaf075a78b003f187fe3baeff3ff000e79a3fe3baeff003ff0e79afeff002bf982ff008669ff0082c97fc449bf -f0d17ff091fed01ff0e8bffa17bfe1ac742ff8513ff2617ff0837fc9ae7fc2e4fedaff00939aff004eff009245ff00238ffc5c4ff8f4ff008a9a803bff0084ff -00f071e7fc1363e077c2cf869f053f6f5fdb27fe117fdb9fe0ff00c3ff0006fc2dfdb43c33ff000cf3f1eb5bff008477f6b1f87fe1cd37c27fb45e85fdb3f067 -e06eaff07f57fec8f8c1a478c74ffed3f853aaea7f0daffecff6af02ea17be17974bb997f6ff00f65cfda8fe04feda3f027c0dfb4bfecd1e39ff008595f04be2 -57fc24dff08578d7fe119f18f83bfb6bfe10ef18f887c01e23ff008a73c7fe1ef0af8b74efecef16f8575ed27fe26da0d87db3ec1f6fb0fb569975657b71e3fe -2cff008264ff00c136fc7be2af1378ebc75ff04f9fd883c69e36f1a788359f1678c7c63e2cfd943e03788fc55e2cf15788f51b9d63c43e26f13788758f00de6a -faf78835dd5ef2f354d6759d52f2eb51d5351bab9bebeb99ee679656fe18bf6b1ff8243ffc1cb7f093f6a7fda5bc23ff0004f4d7ff00680f03fec4b77fb407c6 -4f1ffecd1e06fd973f6fbf0a7eceff00027c0ff0b3e2dfc45f11fc57d07c15e06f8257ff001e3e0d7fc2b7ff008447fe1359fc3be26f0e699f0eb44f0e5bf8c7 -4df10cfe15bdf13786ae349f156b601fd1f7fc1d03fb7afed63ff04edfd817e117c6bfd8ebe2b7fc29ff0089be28fdaffc03f0b75df137fc20bf0dbe207dbbc0 -9adfc17f8ffe2cd4f42fec6f8a5e0ef1b787edbed3e20f04f86350fed3b3d2adf5887fb33ecb6fa845657ba85b5dff00383ff0415ff825c7fc158751ff0082b0 -feca7ff056cfda5fe0679df04be3bffc2f3fda8fc6bfb407fc2cdfd9b63ff84abfe1acbf66df8c5ad7873c73ff000aa7c01f1063f16e87ff0009f78b7e2be837 -3ff08ce93f0db47ff8457fb7bc9bff000f78734cd2ef62d3be60ff0082deff00c161be1efed3bff04dbfd99bfe096fe3af057ed3fa6fede1fb10fc60f833e19f -daefc69f1adfe19f8a7c2be24f8cbfb35fc06f8b3fb3bfc7db9d3fe2af84fe377c4cf127c45f106b1f1935fbcd5ad7c59aa6910c1e2ed3a3d57c477dacc77f71 -6d6d7ffa3fff0006e4fec55ff05e6d1ff698fd8aff00684fda13e2c7ed01a3ff00c132f47fd9fef3c7fe0bf05f8fff006d49bc77f0b3c77f0b3c77fb3dea5e16 -fd9e3c15e0afd9e3c2df163c77fd8ffd8fff0009df813c79e1cf0e78f3c09e04f0e7813c39e04bd55bdd1fc6ba3f853c29ac007dff00a67fc151ff006ecff826 -bffc1537f683ff0087defc73ff00852fff0004cbf8d1ff000d89ff000ef0ff008b65f077e237fc24bff0ae7f68af83ff00f0abbfe4d1fe1f78eff680d1ff00b1 -ff0067ff001dc9ff0025c3fb2bfb43fb57fe2a2fb778d6c57ec7e7ff00f042ff00d82bf6b1f087fc1683f6f3ff0082a0788be14ff677ec31fb747c3ffda8be29 -7ecb1f1c7fe13af86d77ff000b47c09fb4dfed5bf08ff685f81faeff00c2b4b1f18dcfc60f04ff00c26df07eda7f17ff00667c45f87fe11d63c37b3fb03c5da7 -e81e2864d15be00ff8385bc65e23ff0082f1fedc5f0eff00e09f7ff04c8f84ff00103e38fc7aff00826cff00c35dff00c343cfe22d4be167c1df025e7dbfc5bf -b31fc3af147fc2baf117c5cf897e0cbdf12ffc2b7f89be1fd43e1f78bbfb4f44f0eff696b1e46b9f0f3fe13bf02ca7c5c9fdbeff00c13dbe16f8efe077ec0bfb -0f7c14f8a5a17fc22ff137e0ff00ec81fb34fc2df88be19fed3d1f5bff008477c77f0ffe0bf82bc27e2ed0bfb67c3ba86afe1fd5ff00b23c41a46a1a7ff69e85 -aaea7a3dff00d9fed5a66a17b652c1732807d7f45145001451450014514500145145001451450014514500145145001451450014514500145145001451450015 -fe20dff0562ff94a6ffc14b3fecfff00f6c8ff00d68af88d5fedf35fe20dff000562ff0094a6ff00c14b3fecff00ff006c8ffd68af88d401fe9f7ff06b8ffca0 -a3f619ff00bb99ff00d6c3fda0abf7fabf007fe0d71ff94147ec33ff007733ff00ad87fb4157eff5001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -0014514500145145001451450014514500145145001451450014514500145145007f047ff07717fc127ff6dafda67e3ef853f6f6f80ff0e3c3ff00117f67cf81 -7fb106b3a37c70d46dbe22781fc2fe2af85ba77c07f1a7c65f8cde2df166b3e18f1deb9e15b9f13f87f54f04fc4333f866dbe1b4fe39f155dea3e0df1669fab7 -86745925f07bf8bbf9e1ff0082657fc12fff00e0a09ff0583fda3be12fed7bf127e1d7c40fdb03f665ff0086bff839f0b7f6cdf8d7f14bf692f0c7fc277aa781 -3c1575f086ebe2be85aeeabe3af8c7e1ff00da03c41ff08ffecffe20d0ecb4cd4fc1316a1ac5b68ffd9fa0f81b50fedad161d3ec3fd6ebe2cfc2df027c71f859 -f12fe0a7c52d0bfe128f865f183e1ff8cbe16fc45f0cff0069eb1a27fc245e04f881e1cd4bc27e2ed0bfb67c3ba8691e20d23fb5fc3fabea1a7ff69e85aae99a -c587da3ed5a66a1657b1417317f187acfecb9ff0561ff823e7edd9f11ffe1807c0dff0ceff00f06f9781ff00680f82bfb51fed05ff001537ecdbf16ffb2fe04f -867e0efc02ff0086e5f1cffc5e9f10fc4dfdb6af7ec5e1af865f11bfe299f04fdafc6373fd89ff001683c3d71a86a5a17dbc03bff8c7ff000474fdb8bf637ff8 -2a6fec2b6dff000474f067ed01f03bfe0957a47c40fd98fe297ed89e02f007edd5e2dd23e166bbe3bb0fda2b548ff683d77c6bf093e307ed2b2f8cfe207f69fe -ce5e17f863a3788f4cd1fc27e22d1fc57e1cd22cfc33a7e9fabeab16a7a69fd3ff00dbff00e017fc164bc7dff0570ff826afc58fd8ebe357fc21dff04f8f875f -61ff0086a7f06c5f11f42f0c78723fb2f8df58d4be387fc2d6f8697da34fa9fc65ff0085cbf04a7f0c7c34fd9ffec7a6fc4aff008551f14f46d6bc656fff000c -f7717eff001675cfd3ff00d8a7f6f5fd93bfe0a25f0b35ff008d7fb1d7c56ff85c1f0cbc2ff10355f85baef89bfe105f893f0ffec3e3bd13c39e15f166a7a17f -637c52f077827c4173f66f0ff8dbc31a87f69d9e9571a3cdfda7f65b7d425bdb2d42dad3f303f6faff0087ebff00c3d37f62bff8618ff9465ffc638ffc3627fc -99e7fd1c578cbfe1a0ff00e4b07fc6407fc9bfff00c223ff0024bbfee49ff8ad7fb4e803e20fdbbbf650ff0082fbf8dbfe0ba9fb3dfc70f813f13fe306a5ff00 -04c2d0fe307ec67aceb9e10f84ff00b54786fe10fc3df087c1af0778c3c1b71fb46784fe30fc10b8f1ff00c30d5fe2b788356d5ec3e27f8c35bb95f097c5e9fc -5ff0cfc63e0df025af89b525d0e1f867e09f60ff00829cfecd3ff0592f895ff05a0ff827b7c62fd8ebc47fb4069dff0004f8f00ffc3277fc353e91e00fdac742 -f851f0b2ff00fe115fdab7c7de29f8e1ff0009afc0bbef8c9e0ed4fe257dabe095ff00862d7c47f63f87de2aff0084c7c38967e0fb7fedcb8d39f44b53f696ff -0088937fe1f25e1cff008674ff009445ff00c3407ec9dff090ff00c985ff00c909fec2f837ff000d47ff0023cffc64d7fc86ff00e16eff00c78ffc563ff44eff -00d13fe119af7ffdbebfe1faff00f0f4dfd8affe1863fe5197ff0018e3ff000d89ff002679ff004715e32ff8683ff92c1ff1901ff26fff00f088ff00c92eff00 -b927fe2b5fed3a00f983f6a3fd973fe0befe27ff0082fbfc0cf8edf027e39f88347ff826168fe20f8197bae68765f1cfc37a07c1af0d7c1ad03c37f67fda33e1 -7fc50fd9d2e3cad5fe23fc60f88fabc5f13dbc03e3e5f861f1327d127f899f06eead7e327c3a5f8750cdf063cfff006eefd943fe0befe36ff82ea7ecf7f1c3e0 -4fc4ff008c1a97fc130b43f8c1fb19eb3ae7843e13fed51e1bf843f0f7c21f06bc1de30f06dc7ed19e13f8c3f042e3c7ff000c357f8ade20d5b57b0f89fe30d6 -ee57c25f17a7f17fc33f18f837c096be26d4974387e19f827faddafe60bf696ff88937fe1f25e1cff8674ff9445ffc3407ec9dff00090ffc985ffc909fec2f83 -7ff0d47ff23cff00c64d7fc86ffe16effc78ff00c563ff0044effd13fe119a003fe19a7fe0b25ff1126ffc345ffc247fb407fc3a2ffe85eff86b1d0bfe144ffc -985ffc20dff26b9ff0b93fb6bfe4e6bfd3bfe4917fc8e3ff001713fe3d3fe2a6afc40ff83b03f675ff0082c95d7c53fda37f684ff858ff001035cff8245e9df0 -ff00f677b3ff00842fc1bf1f342f0afc2cf076ff0011f823c2dff08e7c59fd9e3fe126f076b5f12be205d7ed357fff0009e69be35ff8413e2bfd83c39e2af868 -bff09fe9d69e01ff008453e1aff47dff001bd7ff0087ebff00d6133feecf3fe8cf3ff12d3fe4ed3fcffc2b4afc01ff0083a3bfe1faff00f19cdff484cff8c66f -fa33cffab7dffbbb4ff93b4ff3ff000ad2803eff00ff00832a7fe5165f1f3fecff00fe29ff00eb3afecab5fd7ed7f205ff000654ff00ca2cbe3e7fd9ff00fc53 -ff00d675fd956bfafda00fc01ff83a3bfe5051fb737fddb37feb61fecfb5fce0ff00c1a7ff00b3affc164ad7e29fece5fb427fc2c7f881a1ff00c122f51f87ff -00b4459ffc217e32f8f9a178abe1678c76788fc6fe16ff008473e13fecf1ff0009378c75af86bf102d7f69ab0ff84f352f1aff00c209f0a3edfe1cf0afc4b5ff -0084ff0051b4f1f7fc229f12bfa3eff83a3bfe5051fb737fddb37feb61fecfb5f803ff0006b8ff00c3f5ff00e3067fe9099ff1933ff4679ff5705ff7769ff276 -9fe7fe15a5007ebfff00c334ff00c164bfe224dff868bff848ff00680ff8745ffd0bdff0d63a17fc289ff930bff841bfe4d73fe1727f6d7fc9cd7fa77fc922ff -0091c7fe2e27fc7a7fc54d5dff00837f675ff82c95affc1c55f167f684ff00858ff10343ff008245ea3f0ff4db3ff842fc65f1f342f157c2cf18f97fb2f7c34f -0b7fc239f09ff678ff00849bc63ad7c35f8816bfb4d587fc279a978d7fe104f851f6ff000e7857e25aff00c27fa8da78fbfe114f895fd1f57e00ff00c6f5ff00 -e1faff00f584cffbb3cffa33cffc4b4ff93b4ff3ff000ad2803e60fd973f65cff82fbf863fe0beff001cfe3b7c76f8e7e20d63fe0985ac7883e39dee87a1defc -73f0debff06bc4bf06b5ff000dfd9ff673f85ff0bff674b7f3757f871f183e1c6af2fc306f1f78f9be187c339f5b9fe19fc64babaf8c9f1157e22cd37c67e83f -e19a7fe0b25ff1126ffc345ffc247fb407fc3a2ffe85eff86b1d0bfe144ffc985ffc20dff26b9ff0b93fb6bfe4e6bfd3bfe4917fc8e3ff001713fe3d3fe2a6a3 -f669ff0088937fe1f25e23ff00868bff009445ff00c3407ed63ff08f7fc985ff00c909fec2f8c9ff000cb9ff002237fc64d7fc86ff00e1517fc7f7fc563ff451 -3fd13fe126af7fff008debff00c3f5ff00eb099ff7679ff4679ff8969ff2769fe7fe15a5007c41fb08feca1ff05f7f04ff00c1753f684f8e1f1dbe27fc60d37f -e0985ae7c60fdb3359d0fc21f163f6a8f0dfc5ef87be2ff835e31f1878cae3f673f09fc1ef8216fe3ff89fabfc29f10693abdffc30f1868972de12f8433f843e -19f83bc65e04baf1369abae4df0cfc6de81fb2e7ecb9ff0005f7f0c7fc17dfe39fc76f8edf1cfc41ac7fc130b58f107c73bdd0f43bdf8e7e1bd7fe0d7897e0d6 -bfe1bfb3fece7f0bfe17fece96fe6eaff0e3e307c38d5e5f860de3ef1f37c30f8673eb73fc33f8c97575f193e22afc459a6f8cff00d4ed7f305fb34ffc449bff -000f92f11ffc345ffca22ffe1a03f6b1ff00847bfe4c2ffe484ff617c64ff865cff911bfe326bfe437ff000a8bfe3fbfe2b1ff00a289fe89ff000935007e607e -cbbff06e1f8efe38ff00c1687fe0a3ff001aff00e0a73fb1b7fc251fb0c7c60f881fb607c52f801e26ff008686d1f44ff848bc77f103f6adf0ff008b3e156bbf -d8dfb3efc72d23e30691fdaff07f57f1f6a1fd99e35d2b4cd1ec3ed1f65f11e9f65e288b45b68be7f87e207fc14fff00e0df2ff82825dfed21fb5849fb5fc5ff -00043ed3bf680f8f5fb2e7c0af82da67ed39e00fda6f4797e04ea7e18f8c1aafec71e06f85bf073e29fed1faf7883e1dff00c21be1ff00861f0ef58d3fc4dab4 -9f0ffc63e1cf0278475df046b1e2166f146b1e07f167f47dfb02ff00c3f5ff00e1e9bfb6a7fc373ffca32ffe323bfe18effe4cf3fe8e2bc1bff0cf9ff247ff00 -e3203fe4dfff00e12eff0092a3ff0073b7fc56bfd995f903ff00071b7ed47f027fe0ae5e0ef867ff000493ff00827a78e7fe1a0bfe0a0fe01fdbff005aff0084 -b7f67fff008467c63f0a3fb27fe19cfe04fed63a2fc65ff8badf1bbc3df0d7e095ff00fc21da9dacf6dff12cf89379ff00090ecf3bc2bfdb96ec92b001ff0006 -d7fecb9f1dbe2dff00c14aff006f8ff82d741e06ff00841ff625fdb6ff00e1af3fe19bef7c6be26f073fc53f1c7fc2dbfdb760f1ac9f6df007823c43e35ff844 -7fe15bff00c29af117863c7fff000976b5a27da3c47abf8724f875ff000b07c3571ac788f44fedf2bf207fe082bfb2e7c76fd8bbfe093dfb29fecd1fb4bf81bf -e15afc6df86bff000bcffe135f057fc24de0ef18ff0062ff00c263fb49fc62f1ff00873fe2a3f007887c55e12d47fb47c25e2ad0756ff894ebd7ff0063fb7fd8 -2ffecba9daded95bfebf500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450015fe20dff000562ff -0094a6ff00c14b3fecff00ff006c8ffd68af88d5fedf35fe20dff0562ff94a6ffc14b3fecfff00f6c8ff00d68af88d401fe9f7ff0006b8ff00ca0a3f619ffbb9 -9ffd6c3fda0abf7fabf007fe0d71ff0094147ec33ff7733ffad87fb4157eff005001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450015f207fc1427e16f8efe38fec0bfb70fc14f85ba17fc251f137e307ec81fb4b7c2df875e19fed -3d1f44ff00848bc77f103e0bf8d7c27e11d0bfb67c45a8691e1fd23fb5fc41abe9fa7ff69ebbaae99a3d87da3ed5a9ea1656514f7317d7f45007f922fec69f0e -ff00e0aaff00f0497ff82a6ffc13a7f621f8e9f103f680fd957c3ff1c7f6bffd917e2978a7f678f007ed3d1dff00c2cf899e04f899fb45785fe11eb7aef8d7c2 -df02fe2a7897e197883fe133b2f86fabf81fc47a678a567d6356f0e7876cf4ed6f4f97c3efa409ff00b7cff828e7ec6fff000570f8c1ff000588ff0082737c75 -fd927e3e7c40f037ec0be0dff8541ff0d61e06f0efed3fe37f861e04b7ff00852bf1cbc57f15fe227fc2c5f825a3eb36165f13bfe17dfc32d7b42f849e11ff00 -847bc35e3dfedbd63419fc3ff18ffe15dfc3ab3d27c557bf9c1ff05fcfd88ff6c2bcff0082bbfec63ff0561f02fecfbe20f89dfb17ff00c13ebe0ffecedf1aff -00693f1bf84fe217c0cd23c55a0f857f650fda6fe32fed25f18b4ff0cfc3ff00891f15bc05e29f1678834bf852f67abe8d6ba5d8369daeea3a85b68b63aa9d46 -2be86cf03e127fc14bbf6ecff82e0ffc15c3f64ff8b1ff0004a3f167ed01f05bfe09f1fb197fc2a0ff0086dcf06fc6ed77e0efc32f0e6a1ff0b47c6ff17752f8 -99ff00096fc34f0778f3e2a6a7f1cbfe16bfc12f8736df0d3e0d7dab4df17ffc29ff008a762fe32d23fe146dc6ad7ff166f403dfff006d4fd8abfe0bcdac7fc1 -797e13fed09fb3dfc58fda0358ff008265eb1fb407ec57e3ff001a782fc01fb6a4de04f859e04f859e049be13f85bf687f0578d7f678f14fc58f027f6c7f6c7f -c209e3bf1e788fc39e03f0278efc39e3bf0e78eecd5af758f1aeb1e2bf0a68ff00407fc14e7f669ff82c97c4aff82d07fc13dbe317ec75e23fda034eff00827c -7807fe193bfe1a9f48f007ed63a17c28f8597fff0008afed5be3ef14fc70ff0084d7e05df7c64f076a7f12bed5f04aff00c316be23fb1fc3ef157fc263e1c4b3 -f07dbff6e5c69cfa25aff4fb5fcc17fc14e7f669ff0082c97c4aff0082d07fc13dbe317ec75e23fda034eff827c7807fe193bfe1a9f48f007ed63a17c28f8597 -ff00f08afed5be3ef14fc70ff84d7e05df7c64f076a7f12bed5f04affc316be23fb1fc3ef157fc263e1c4b3f07dbff006e5c69cfa25a8078ff00ed5ffb08ff00 -c1753c6dff0005f7f861f1dbe07fed09f18343ff0082616a5f183f657f8b1e2fd0f46fdb33c61e0ef835e10f87bf087c37e00b7f8dff0007bc59fb3a5bf8cac3 -57d5bc41f15b57f861e2d6b6d13c1ff0c3c63f0cfc5f3fc5ef0cdd78efc65a1aea5f1326f04f3ffb6a7ec55ff05e6d63fe0bcbf09ff684fd9efe2c7ed01ac7fc -132f58fda03f62bf1ff8d3c17e00fdb526f027c2cf027c2cf024df09fc2dfb43f82bc6bfb3c78a7e2c7813fb63fb63fe104f1df8f3c47e1cf01f813c77e1cf1d -f873c7766ad7bac78d758f15f85347febf6bf922fdbbbf650ff82fbf8dbfe0ba9fb3dfc70f813f13fe306a5ff04c2d0fe307ec67aceb9e10f84ffb54786fe10f -c3df087c1af0778c3c1b71fb46784fe30fc10b8f1ffc30d5fe2b788356d5ec3e27f8c35bb95f097c5e9fc5ff000cfc63e0df025af89b525d0e1f867e0900f60f -f8669ff82c97fc449bff000d17ff00091fed01ff000e8bff00a17bfe1ac742ff008513ff002617ff000837fc9ae7fc2e4fedaff939aff4eff9245ff238ff00c5 -c4ff008f4ff8a9abf083fe0ea7fd943fe0b03a5fc65fdae7f698b1f89ff183c47ff0495f11f87ff66ed6758f03e8dfb545ec1f06bc05a8c107c22f84b1784fc5 -9fb307887c7fa0c979e20bcfda0f41d2fe23db5cf817e1bf8d3c2ab3f8d3c33e38bcf135af8b2d7c6369e13ff45caff3c3ff0083b03f675ff82c95d7c53fda37 -f684ff00858ff1035cff008245e9df0fff00677b3ff842fc1bf1f342f0afc2cf076ff11f823c2dff0008e7c59fd9e3fe126f076b5f12be205d7ed357ff00f09e -69be35ff008413e2bfd83c39e2af868bff0009fe9d69e01ff8453e1a807e9fff00c1953ff28b2f8f9ff67fff0014ff00f59d7f655afebf6bf902ff00832a7fe5 -165f1f3fecff00fe29ff00eb3afecab5fd7ed007e00ffc1d1dff002828fdb9bfeed9bff5b0ff0067dafe687fe0d58fd943fe0b03aa7c65fd91bf698bef89ff00 -183c39ff000495f0e787ff00691d6747f03eb3fb545ecff06bc7ba8cf07c5df84b2f84fc27fb30787bc7faf4967e20b3fda0f5ed53e23dcdcf8ebe1bf82fc2ad -3f82fc4de38b3f135d78b2ebc1d69e2cfe97bfe0e8eff94147edcdff0076cdff00ad87fb3ed7f383ff00069ffecebff0592b5f8a7fb397ed09ff000b1fe20687 -ff00048bd47e1ffed1167ff085f8cbe3e685e2af859e31d9e23f1bf85bfe11cf84ff00b3c7fc24de31d6be1afc40b5fda6ac3fe13cd4bc6bff000827c28fb7f8 -73c2bf12d7fe13fd46d3c7dff08a7c4a00fdbfff008669ff0082c97fc449bff0d17ff091fed01ff0e8bffa17bfe1ac742ff8513ff2617ff0837fc9ae7fc2e4fe -daff00939aff004eff009245ff00238ffc5c4ff8f4ff008a9ab7f46fd943fe0b03aa7fc1c79e2cfda62fbe27fc60f0e7fc1257c39e1fb6d6747f03eb3fb545ec -ff0006bc7ba8cffb1af867e12cbe13f09fecc1e1ef1febb259f882cff683d7b54f88f7373e3af86fe0bf0ab4fe0bf1378e2cfc4d75e2cbaf075a78b3fa5eafe7 -07c1bfb3affc164ad7fe0e2af8b3fb427fc2c7f881a1ff00c122f51f87fa6d9ffc217e32f8f9a178abe1678c7cbfd97be1a785bfe11cf84ffb3c7fc24de31d6b -e1afc40b5fda6ac3fe13cd4bc6bff0827c28fb7f873c2bf12d7fe13fd46d3c7dff0008a7c4a00f983f650fd847fe0ba9e09ff82fbfc4ff008edf1c3f684f8c1a -e7fc130b4df8c1fb547c58f08687acfed99e30f18fc1af17fc3df8bde1bf1fdbfc10f83de13fd9d2e3c657fabe93e20f853abfc4ff000935ce89e30f861e0ef8 -67e109fe10f89aebc09e32d7174df867378dbd83fe19a7fe0b25ff001126ff00c345ff00c247fb407fc3a2ff00e85eff0086b1d0bfe144ff00c985ff00c20dff -0026b9ff000b93fb6bfe4e6bfd3bfe4917fc8e3ff1713fe3d3fe2a6afe9f6bf982ff008669ff0082c97fc449bff0d17ff091fed01ff0e8bffa17bfe1ac742ff8 -513ff2617ff0837fc9ae7fc2e4fedaff00939aff004eff009245ff00238ffc5c4ff8f4ff008a9a803e7ffd8aff0062aff82f368fff0005e5f8b1fb427ed09f16 -3f680d1ffe0997a3fed01fb6a78ffc17e0bf1ffeda9378efe1678efe1678ee6f8b1e16fd9e3c15e0afd9e3c2df163c77fd8ffd8fff0009df813c79e1cf0e78f3 -c09e04f0e7813c39e04bd55bdd1fc6ba3f853c29ac741fb287ec23ff0005d4f04ffc17dfe27fc76f8e1fb427c60d73fe0985a6fc60fdaa3e2c784343d67f6ccf -1878c7e0d78bfe1efc5ef0df8fedfe087c1ef09fece971e32bfd5f49f107c29d5fe27f849ae744f187c30f077c33f084ff00087c4d75e04f196b8ba6fc339bc6 -dfd6ed7f087fb4f7ed3dff00057aff0082397fc15ebe227fc140bfe0a05f113f680f899ff048bf899fb407c54f843e0ff07fc21f8a9f09fe2178135df027c42f -84ff00103c63fb337c3ff87ffb3378c7e207c3dff8567f103e19ff00c2bdf0643f123e2443e0cf87bac6b1ac7c3df89f249f13fe265a7c4cd4751f8b201f8c1f -183e207fc1753f6d4ff82bbffc1497f65afd803f6b0fdb7fc59abfc23fda7ff6c4f13697f0a3c27fb74f8c3e0e7857c0bf06bc05fb4dea7f0eec6dbc336fe3af -8ddf0f3c13a5f87fc3173e2af06786f46f09f87ee967b2d3ae6d9349d19748d2ef24b2ff0041cff827e7fc13f3e09fc17f827fb267c5bf8b7fb267ecff00e1ff -00f8283f87ff0067ff0085d3fed05fb414ff000bbe117883f68ed57f68ef107c22d3341fda27c5de2efda2741d3358f16f8efe2078efc5bac78f23f88bf1163f -1ef882ebe235d7883c45a96a5e22f105bf882f2f2fbf9e1ff8201fec47fb6159ff00c15dff006ceff82b0f8ebf67df107c31fd8bff00e0a0bf07ff00689f8d7f -b3678dfc59f10be066afe2ad7bc2bfb57fed37f06bf692f83ba7f89be1ff00c37f8ade3df14f84fc41aa7c294bcd5f59b5d52c174ed0b51d3ee745bed546a32d -8c379fdaed0014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450015fe20dff0562ff94a6f -fc14b3fecfff00f6c8ff00d68af88d5fedf35fe20dff000562ff0094a6ff00c14b3fecff00ff006c8ffd68af88d401fe9f7ff06b8ffca0a3f619ff00bb99ff00 -d6c3fda0abf7fabf007fe0d71ff94147ec33ff007733ff00ad87fb4157eff5001451450014514500145145001451450014514500145145001451450014514500 -14514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500 -14514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500 -14514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500 -14514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500 -14514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500 -1451450014514500145145001451450014514500145145001451450079ff00c59f85be04f8e3f0b3e25fc14f8a5a17fc251f0cbe307c3ff197c2df88be19fed3 -d6344ff848bc09f103c39a9784fc5da17f6cf87750d23c41a47f6bf87f57d434ff00ed3d0b55d3358b0fb47dab4cd42caf6282e62fe30ff6b7fd973e3b7fc101 -7f6d7f86bfb4bffc1367c0dff0c9bff045ed7bfe1857fe1e89e35ff849bc1df1dfed7fd97fb5df8ffc01e2dff8a73e3d7887e32fed5b0791f0b7e32f87749ff8 -c79d061f37fe123fb7e99e6788b47bebdd2ffb7caf3ff8a5f09fe167c71f026bbf0b7e35fc34f87ff183e1978a3fb33fe126f875f14bc1be1cf881e04f117f62 -6b1a7f88b46feddf08f8b34dd5fc3fabff0064788348d2b5dd33fb434fb8fb06b1a669fa9daf957b656d3c401fc817c3ff00dbd7fe0b39ff000512ff00829fc7 -f1affe095ff15bfe1707fc10fbc2ff00b5ff00ecc7f0b7c7be26ff008417f654f87ff61f02689e00fd9c3c59fb5be85fd8dfb45f83bc13fb5d5cfd9a2f1b78d7 -50fed3d1b4ab8d626fed3fb2fc33d4256b2d26dad3f4ff00f6faff0087ebff00c3d37f62bff8618ff9465ffc638ffc3627fc99e7fd1c578cbfe1a0ff00e4b07f -c6407fc9bfff00c223ff0024bbfee49ff8ad7fb4ebf107f6eefd847fe0a7ff00f04eff00f829ff008a3f6d6fd8a7c2ff00103e17ff00c117be17fc40f801fb6b -7c79f80dfb14fc7ff007ecff00f0b349f859fb3ff803e1641fb5ae81affec953fc53f813e12f18fc40f18f84be04f8ab5fd574ad03c29e26f0e7c4bf0e789bc2 -ba56abe2bbbf115df897c35e1be82dff006aaff828affc16bffe0a49fb12feddbff04aeb4fdb7fe1d7fc130be06fc60fd9b7e0a7ed79e14f167ed25f0bfe02f8 -5756f157c33f8f2bf18be3eea1e26fd9fbc27fb526ad1fc4ff000fdffecf9f15be1e69bacdd47e19d7f51f1ae9d6373e095d2b555d1edb4f9003f47ff696ff00 -88937fe1f25e1cff008674ff009445ff00c3407ec9dff090ff00c985ff00c909fec2f837ff000d47ff0023cffc64d7fc86ff00e16eff00c78ffc563ff44eff00 -d13fe119a3f696ff0088937fe1f25e1cff008674ff009445ff00c3407ec9dff090ff00c985ff00c909fec2f837ff000d47ff0023cffc64d7fc86ff00e16eff00 -c78ffc563ff44eff00d13fe119afe9f6bf902fdb53f62aff0082f36b1ff05e5f84ff00b427ecf7f163f680d63fe0997ac7ed01fb15f8ff00c69e0bf007eda937 -813e167813e1678126f84fe16fda1fc15e35fd9e3c53f163c09fdb1fdb1ff08278efc79e23f0e780fc09e3bf0e78efc39e3bb356bdd63c6bac78afc29a3807df -ff00f1bd7ff87ebffd6133feecf3fe8cf3ff0012d3fe4ed3fcff00c2b4afe50bfe0e35fdbd7fe0a4ff001c7fe0a7ff00b4dffc119be16fc56ff84a3f672f8c1f -103f634f85bf0ebf66ff00f8417e02e89ff09178efe207803f66bf8a3e11d0bfe170788bc1da478eb48fed7f8f5abe9fae7f69ebbf1474cd1ec3ed1fd99a9ea1 -65e0c8a7d3e2f7ff00f838f3c03ff05e6f81dfb58fed93fb6e7c14f8ddfb5ffc1fff00826c785ffe19e7fe119f12fc2dfdb8e6f87fe04f0eff006dfc36f81bf0 -9359fec2f815e13f8eda478eb48fed7f8f5abeab61a9ff0067fc33b7fb7eb1a9ea1e31baf3747bdb9f104bf7ff00fc1a73f09fe167ed91fb207c64fdb17f6bcf -869f0fff006aafdaebc3bfb7feb9ff0008ff00ed4ffb487837c39f1c7f68ed0bfe159fecff00fb28df7c38fec7f8e1f13b4df147c4dd33fe15fdec515e7823ec -5e2783fe114ba8a3b8d07ec1322b800fbfff00e0d7efd82bf6b1ff008276fec0bf177e0a7ed8bf0a7fe14ffc4df147ed7fe3ef8a5a17867fe13af86df103edde -04d6fe0bfc00f09e99aeff006cfc2df18f8dbc3f6df69f107827c4fa7ff665e6ab6fac43fd99f6ab8d3e2b2bdd3ee6effa3ea28a00fc81ff0082f57ecb9f1dbf -6d1ff824f7ed59fb347ecd1e06ff008595f1b7e257fc28cff842bc15ff00093783bc1dfdb5ff000877ed27f077c7fe23ff008a8fc7fe21f0af84b4efecef0978 -575ed5bfe26daf587db3ec1f60b0fb56a775656571fc617fc1b95fb7affc149fe077fc14ff00f664ff0082337c52f8adff0008bfece5f07fe207ed97f0b7e22f -ecdfff00082fc05d6ffe11df1dfc3ff007ed29f147c5da17fc2e0f0ef83b57f1d6affd91f1eb48d435cfed3d0be28ea7a3dffd9ffb334cd42f7c192c1a7cbfe9 -775fe6c9f1b3f675fda1ff00e0861ff05def157fc1637f6caf833e20f127ec1fe2ff00db7ff6b5d67c0ff11be0478bfe1278dbc55e32d47f6bef841fb4bf89fe -1e784f4bf86be2df88df0f3c6fa5f883c316de2abfb0f1fdcf8b747f0df856c351f04f8a4785bc4de2fb0b9f065ff8bc03fa9dff008debff00c3f5ff00eb099f -f7679ff4679ff8969ff2769fe7fe15a51ff1bd7ff87ebffd6133feecf3fe8cf3ff0012d3fe4ed3fcff00c2b4afd3ff00d82bf6d6f859ff000512fd93be14fed8 -bf05340f881e17f865f183fe13aff846742f8a5a5787344f1dd8ff00c2bff893e31f85bacff6ee99e13f15f8dbc3f6df69f10782755bcd33fb3fc4fa9f9da3dc -69f7175f62bd96e74fb4fc60d1bf650ff82c0ea9ff00071e78b3f698bef89ff183c39ff0495f0e787edb59d1fc0facfed517b3fc1af1eea33fec6be19f84b2f8 -4fc27fb30787bc7faec967e20b3fda0f5ed53e23dcdcf8ebe1bf82fc2ad3f82fc4de38b3f135d78b2ebc1d69e2c00c0fd9a7fe224dff0087c9788ffe1a2ffe51 -17ff000d01fb58ff00c23dff002617ff002427fb0be327fc32e7fc88dff1935ff21bff008545ff001fdff158ff00d144ff0044ff00849abdff00fe37afff000f -d7ff00ac267fdd9e7fd19e7fe25a7fc9da7f9ff85695f107eca1fb08ff00c1753c13ff0005f7f89ff1dbe387ed09f1835cff00826169bf183f6a8f8b1e10d0f5 -9fdb33c61e31f835e2ff0087bf17bc37e3fb7f821f07bc27fb3a5c78caff0057d27c41f0a757f89fe126b9d13c61f0c3c1df0cfc213fc21f135d7813c65ae2e9 -bf0ce6f1b78ffedebf103fe0a7ff00f04edff82ce7c56ff82a87c6b93f6bff00147fc10fbe0fff00c20bff00093780be16fed39e00d6fc097dff000b03f654f0 -77ece9a37f617ec91e2cfda3fc1315cfd9bf6baf1b695acea7fda1e0ad33c9d62df50f8996bf6d68adb56bb003e207edebff00059cff008276ff00c14fe4f8d7 -ff000550f8adff000a7ffe087de28fdaff00f69cf85be02f137fc20bfb2a7c40fb778135bf007ed1fe2cfd92342fec6fd9d3c1de36fdaeadbed317827c15a87f -69eb3a55beb10ff667d97e266a1135eead6d77e01f06fe16ff00c149ff00e0bc7fb64f82bc59fb5ce85ff0d55ff06e9788bf6bff00db0fe297c0dd43fb4fe02f -c0efb67813e19d8fed5ff053f66cd77ecbf0cb50f83ffb73dbff006278a2f748f0cff6678beda0d6352f37fb67c7ba7dfe9e975aaa1fb08fec23ff00053fff00 -82887fc14ffc2ffb6b7edade17f881f143fe08bdf143e207c7ff00db5be037c06fdb5be3ff00803f680f859ab7c2cfda03c01f14e0fd92b40d03f64a83e29fc7 -6f09783be20783bc25f1dbc2bafe95a56bfe14f0cf873e1a7873c33e2bd2b4af15da788ad3c35e1af127f6f9f0b7e13fc2cf81de04d0be16fc14f869f0ff00e0 -ff00c32f0bff0069ff00c233f0ebe16f837c39f0ff00c09e1dfedbd6350f116b3fd85e11f09e9ba4787f48fed7f106afaaebba9ff67e9f6ff6fd6353d4353baf -36f6f6e679400f84ff000b7c09f03be167c34f829f0b742ff845fe197c1ff87fe0df85bf0ebc33fda7ac6b7ff08ef813e1ff008734df09f84742fed9f116a1ab -f88357fec8f0fe91a7e9ff00da7aeeaba9eb17ff0067fb56a7a85edecb3dccbe8145140051451400514514005145140051451400514514005145140051451400 -514514005145140051451400514514005145140057f8837fc158bfe529bff052cffb3fff00db23ff005a2be2357fb7cd7f8837fc158bfe529bff00052cff00b3 -ff00fdb23ff5a2be235007fa7dff00c1ae3ff2828fd867feee67ff005b0ff682afdfeafc01ff00835c7fe5051fb0cffddccffeb61fed055fbfd4005145140051 -45140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051 -45140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051 -45140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051 -45140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051 -45140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051 -4514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451401e7ff00167e -16f813e38fc2cf897f053e29685ff0947c32f8c1f0ff00c65f0b7e22f867fb4f58d13fe122f027c40f0e6a5e13f17685fdb3e1dd4348f10691fdafe1fd5f50d3 -ff00b4f42d574cd62c3ed1f6ad3350b2bd8a0b98bf8a3fdba3fe09bffb5c7fc128ff006d0f80bfb41ffc12bbe1efed3ff08ffe08ebfb35f87fe177ed79fb7afc -2ef829fb706b76fe15f17ea3f073e2b78bbc6dfb525eea1f05fe3c7ed55a3eb9f133c41aff00ecb9f0ebe1e7876eb418f4eb9f0af8cf4ed374af0a2cb35e2eb1 -045fdce57c81ff000509f85be3bf8e3fb02fedc3f053e16e85ff000947c4df8c1fb207ed2df0b7e1d7867fb4f47d13fe122f1dfc40f82fe35f09f84742fed9f1 -16a1a4787f48fed7f106afa7e9ff00da7aeeaba668f61f68fb56a7a85959453dcc401fc817ecc3fb4f7fc15ebfe0b1bff057af877ff0502ff827efc44fda03e1 -9ffc122fe19fed01f0afe10f8c3c1ff17be2a7c27f87be04d0bc09f0f7e13fc3ff0018fed33f0ffe207eccde0ef881f10bfe1667c40f899ff0b0bc670fc37f89 -137833e216b1a3eb1f10be18491fc4ff0086769f0cf4ed47e137bfff00c15cbe1dff00c1737e10ff00c155f4bfdbefc07f103f680f13ff00c122ff00666ff867 -ff00da13e26fc3cfd9eff69ef057c30d1f42fd9c7f67b8f47f885fb56780fc79f00fc41f153e09ff00c2e2f881e22ff844fe2d78a19752d3be22daf8dfc09e35 -f027c3e93c766d3461f0fbc07c07fc1b93fb51fc09ff008246f83be267fc124ffe0a17e39ff867dff8283f8fbf6ffd17fe112fd9ff00fe119f18fc57fed6ff00 -868cf813fb2768bf06bfe2eb7c11f0f7c4af82561ff098ea77505b7fc4cfe24d9ffc23dbfcef157f61dbabcabdff00fc167fe16ffc1d11f1c7f698fdafbe0a7e -c47a17fc251ff04d8f8c1f0ff44f85be1af0cff69ffc13cf44ff00848bc09f103f67bf08784fe3ae85fdb3f16f50d23e3d691fdafe3ad5fe2669ff00da77faae -99ac587da3ed5e0ed42cb478bc3f731007807c2df837fb64ff00c178ff00e0a4fa17ed73e2cf057ed7fe22ff008374bf6aafed3fed0f81bf14bf6c2b1f867e04 -bcff00851df01750f8656bfdbbfb367c14fdabef7c51a27d9ff6e7f83f6de2fd33fe119d225fed2d620d3fc7bacecd3eff0055ba4fec77f643fd8bff00660fd8 -2fe0d597c00fd91fe10787fe0c7c29b3f106bde2c97c3da35ef8835dd475af15789678a5d63c4de2cf18f8c758f11f8dbc69e209edad74cd12db59f17788f5bd -474df0ae85e19f086997367e16f0c787b47d33f822fd973f65cff83ce7f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff0937fc12a7c63fd -8bff00098f8c7c43e3ff0011ff00c547e3ff0010f8abc5ba8ff68f8b7c55af6adff136d7affec7f6ff00b0587d974cb5b2b2b7fa02c7f6a3ff0083b0ff0062ef -18fc22fda5ff00e0a75e39ff00856bff0004f8f86bfb407ecebff0d81e35ff008467fe09b5e31fec5f813e31f8edf0efc01e39ff008a73f67df0f78abe36ea3f -da3a678a9b49ff008b61a0dff8c6cfedff006fd1fecb716a2f6dc03fbfca2bf007fe228eff0082147fd1f37fe6b37ed87ffd0fb47fc451dff0428ffa3e6ffcd6 -6fdb0fff00a1f6803f7fabf9e1ff00839a3fe09e3fb4ff00fc1497fe09e9e0ef845fb23f857c3fe3df8adf0d3f69ff00871f1ae5f016b3e31f0ff81b51f17f85 -74bf00fc5af865ac69fe13d7bc6377a378253c41a4dcfc54d33c55736be2ef15784f4eb9f0af87bc4c34cd5750f14af87bc2fe21e83fe228eff82147fd1f37fe -6b37ed87ff00d0fb5f8037dfb51ffc1d87fb68f8c7e2efed2fff0004c5f1cffc2caff827c7c4afda03f68bff00863ff1affc233ff04daf077f6d7c09f077c76f -889e00f037fc539fb41787bc2bf1b74efeced33c2aba4ffc5cfd06c3c6379f60fb7eb1f6ab8ba37b7001f007fc1056fbfe0a39fb177fc175ff00653ff8262fed -2ff177f680f86be12f86bff0bcff00e135fd8fff00e1a2f54f18fc09d17fe131fd8f3e317ed05e1cff008a1bc01f113c55f04b51fed1d4fc55a0fc4fff00894a -5ffd8fc637ff00db17ff0065f16dade9b7feaf7c1bfb3aff00c164ad7fe0e2af8b3fb427fc2c7f881a1ffc122f51f87fa6d9ff00c217e32f8f9a178abe1678c7 -cbfd97be1a785bfe11cf84ff00b3c7fc24de31d6be1afc40b5fda6ac3fe13cd4bc6bff000827c28fb7f873c2bf12d7fe13fd46d3c7dff08a7c4afc41ff00825c -7fc12e3fe0baff00f0fd7f819ff052eff82977c0cffa29bff0babe357fc2cdfd8f3fe8cf3e20fc02f871ff0016e3e017c41ffb10fc27ff00149f80ff00ea3bae -ff00cc6759afd3ff00db5bf6f5ff008293ff00c13b7fe0b09a07c6bfdb17e2b7fc29ff00f837ff00c51f1034af85ba1789bfe105f80bf103edde3bd6ff00619f -15f8b34cd0bfb1be16f83bc6dfb6a5b7da7f695f04f89f50fed3bcd2adf4787fb33ecb71a845e01bdd3edaec03e00fda7bf69eff0082bd7fc11cbfe0af5f113f -e0a05ff0502f889fb407c4cff8245fc4cfda03e2a7c21f07f83fe10fc54f84ff0010bc09aef813e217c27f881e31fd99be1ffc3ffd99bc63f103e1effc2b3f88 -1f0cff00e15ef8321f891f1221f067c3dd6358d63e1efc4f924f89ff00132d3e266a3a8fc593e16fc1bfdb27fe0bc7ff000527d0bf6b9f16782bf6bff117fc1b -a5fb557f69ff00687c0df8a5fb6158fc33f025e7fc28ef80ba87c32b5feddfd9b3e0a7ed5f7be28d13ecff00b73fc1fb6f17e99ff08ce912ff00696b1069fe3d -d67669f7faadd21f06fe16ff00c149ff00e0bc7fb64f82bc59fb5ce85ff0d55ff06e9788bf6bff00db0fe297c0dd43fb4fe02fc0efb67813e19d8fed5ff053f6 -6cd77ecbf0cb50f83ffb73dbff006278a2f748f0cff6678beda0d6352f37fb67c7ba7dfe9e975aaa7f67bfb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f -825f0d7fe126ff00842bc15ff09378c7c63fd8bff098f8c7c43e3ff11ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb -5b2b2b700eff00e13fc2df027c0ef859f0d3e0a7c2dd0bfe117f865f07fe1ff837e16fc3af0cff0069eb1adffc23be04f87fe1cd37c27e11d0bfb67c45a86afe -20d5ff00b23c3fa469fa7ff69ebbaaea7ac5ff00d9fed5a9ea17b7b2cf732fa05145001451450014514500145145001451450014514500145145001451450014 -514500145145001451450014514500145145001451450015fe20dff0562ff94a6ffc14b3fecfff00f6c8ff00d68af88d5fedf35fe20dff000562ff0094a6ff00 -c14b3fecff00ff006c8ffd68af88d401fe9f7ff06b8ffca0a3f619ff00bb99ff00d6c3fda0abf7fabf007fe0d71ff94147ec33ff007733ff00ad87fb4157eff5 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145 -00145145007e20ff00c1667fe097da3fed65fb277ed21e39fd90fe00fecffa0ffc14d2ff00fe14ff00c45f829fb4f41e11f027c35fda3a1f1dfc08f893f0bbc6 -9a541e11fda72d740b5f881e0ef8817ff0ff00e1acbf0dbe1d788af7c6de1cd1f4bbabaf0ee87af78bbc1de0a8f50d7347ff003c3b1fdbf7fe0ae1ff0004d7ff -00828efc22f875ff00050bfdafbf6fff00f8c6cfda03f675f1ff00ed2ff017fe1b2fc6ff0018bfe125f859fda9f0efe306bde0afb2587c73d63e12f8effe13bf -84bac4107fc239a9f8bbfe11cd43fb77fe11df155ee97ff13686cffd7eabf283f6bdff00821d7fc12bff006eff008cb7bfb41fed4bfb25787fe21fc64d5bc3fa -0f8675df1d68df11fe34fc2bd47c4da77862096c740b9f1659fc20f893e02d23c59e20d2f486b5f0edb78b3c49a76a9e2a1e15d1bc33e147d65fc37e15f0d697 -a5007e10fec15f103fe0a7ff00f0512ff82ce7c29ff82a87c1493f6bff000bff00c10fbe307fc275ff0008cf80be297ed39e00d13c0963ff000aff00f654f18f -ece9acff006efec91e13fda3fc6d15b7da7f6baf04eabace99fd9fe0ad4fced62e34ff0089975f62696e756b4e83fe0a03ff0004b9ff0082c0fed4ff00f05bcf -0678962f1cf883e22ffc11d7c73f183f644f8b1f153e0f78e7f699bdd43f660b2f87bf01ed3e186b5f15be0f7c49fd917c49e21b8b6f16f883c7fe37f835ac6b -fa1e89e1ef841e39f867e20f107c4bf04ebbe31f19787af25f88779e05f983e297c1bfdb27fe0839ff000527d77f6b9f09f82bf6bff0effc1ba5fb2aff00667f -67fc0df85bfb6158fc4cf0259ffc2f1f80ba7fc32bafec2fd9b3e35fed5f65e28d6fed1fb73fc60b9f17ea7ff09369117f66eb13ea1e3dd1b7e9f61a55d3fe70 -4bff0005fefda7ff006cff00f8383ff648f1d7ecbbfb45fed3ff000bff0062ff00887fb4ff00ec71f023c25fb3678e750f0ff863c2b37c33f1e6aff0ff00e1bf -c70d2fe24fc1df07f893c6df0a7c5fe20f17f8a7c6df16354d0fc7fe24bcf18fc42f0f69daa7826fbc39e29f0aea3e01f0258f82803f5fb59ff837bbc69a5ffc -1c79e13fda62c7f622fd983c47ff000495f11f87ee759d63c0fa3787fe0141f06bc05a8c1fb1af89be12c5e13f167ecc1e21b7d0a4bcf105e7ed07a0e97f11ed -ae7c0bf0dfc69e1559fc69e19f1c5e789ad7c596be31b4f09e07fc381fe22ffc449bff000d17ff000ef6fd9fff00e1d17ff42f7f63fecb1ff0a27fe4c2ff00e1 -06ff00935cfedefedaff00939aff004eff009245ff00238ffc5c4ff8f4ff008a9abfb7cafe60bfe19a7fe0b25ff1126ffc345ffc247fb407fc3a2ffe85eff86b -1d0bfe144ffc985ffc20dff26b9ff0b93fb6bfe4e6bfd3bfe4917fc8e3ff001713fe3d3fe2a6a00fc80fda5bfe0dc9fda63e257fc1c11e1cf8d3f077f62bfd9f -fc03ff0004b9d3bf680fd93bc7fabc7f6cfd9efc2bf026ff00e167c28f865f06f58f8e9e0aff00866ff0b6a37fe2dbaff8595e2df077c41f03ff00c23975f071 -3c39e31f18f8abfb57c617ba7781f5cd6fc6f6bf6fff00c13fbfe0973ff0581fd963fe0b79e33f12cbe39f107c3aff00823af81be307ed77f163e15fc1ef037e -d337ba7fecc17bf0f7e3c5a7c4fd6be14fc1ef86dfb22f86fc436f6de12f107803c6ff0019747d7f5cd13c43f083c0df0cfc3fe20f869e36d77c1de32f10de45 -f0f2f3c75e81f1c3f650ff0082fbebdff070ce8bf1f7e04fc4ff008c1e0bff00826141f183f67ad675cb6f137ed51e1bbafd9e2f3e0d7873e047c34d1bf68cf0 -9db7ecaf71e3ff00166aebe20f1eeafa5fc4ff0009f84ee57e075acf67f16fc47a37c4fb5f13782d6087e2be85fcb0fed71fb5c7fc16aff6c0ff0082d5fed89f -b21fec87fb627ed7f77f102eff006bff00daa7e16fc14f829f0b7f6aad7bf677f0269fe04fd9df5ef88b6ba5685a16956bf117e167c25f0e7fc239f097e164b7 -ba9ea77b2e9bac78d758d3750d7b5ed43c4df103c4da86a1ad007f47dfb7afc40ff829ff00fc13b7fe0b39f15bfe0aa1f1ae4fdaff00c51ff043ef83ff00f082 -ff00c24de02f85bfb4e78035bf025f7fc2c0fd953c1dfb3a68dfd85fb2478b3f68ff0004c573f66fdaebc6da56b3a9ff0068782b4cf2758b7d43e265afdb5a2b -6d5aef80fd973e10fed63ff05b9ff82b0f81bfe0a49e2ef87ff103c67ff0411f147fc24df117e16fecf3fb6b7c48f86df103e166bbe3bf86ff00b36f887f63bd -420d03f62cd33e27fc71f067877e20587ed1b2fc45f1fe95e22f11784bc35a39f0e699e2bf19c1e2e8bc5fe20d0bc3fe27f8ff00f60aff00823dff00c179be38 -fed63f0a7e16ff00c16662fdaffe307fc1363c51ff0009d7fc3487c3af8a5ff05309be207813c45fd89f0dbc63e22f83ff00dbbe11f85dfb5beafe3ad5ff00b2 -3e3d691f0bb5dd33fb0f4fb8fb06b1a669fa9ea7e568f65a84f17f77bfb2e7ecb9f027f62ef813e06fd9a3f668f037fc2b5f825f0d7fe126ff00842bc15ff093 -78c7c63fd8bff098f8c7c43e3ff11ffc547e3ff10f8abc5ba8ff0068f8b7c55af6adff00136d7aff00ec7f6ffb0587d974cb5b2b2b700eff00e16fc27f859f03 -bc09a17c2df829f0d3e1ff00c1ff00865e17fed3ff008467e1d7c2df06f873e1ff00813c3bfdb7ac6a1e22d67fb0bc23e13d3748f0fe91fdafe20d5f55d7753f -ecfd3edfedfac6a7a86a775e6dededccf2fa05145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450015fe20dff000562ff0094a6ff00c14b3fecff00ff006c8ffd68af88d5fedf35fe20dff0562ff94a6ffc14b3fecfff00f6c8ff -00d68af88d401fe9f7ff0006b8ff00ca0a3f619ffbb99ffd6c3fda0abf7fabf007fe0d71ff0094147ec33ff7733ffad87fb4157eff0050014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145007 -807ed47fb2e7c09fdb47e04f8e7f668fda5fc0dff0b2be097c4aff008467fe135f057fc24de31f077f6d7fc21de31f0f78ff00c39ff151f803c43e15f16e9dfd -9de2df0ae83ab7fc4a75eb0fb67d83ec17ff006ad32eaf6cae3f9c1fdbbbfe0dc3fd93be077eccfe28f8d7ff00047ffd8dbfe117ff008293fc1ff881f003e297 -eca1e26ff8686f893adffc23be3bf87ffb427c2cf166b3aeff00637ed3ff001cb57f80babff64781748f166a1fd99f1274ad4f47bffb3fd96d74fbdd625d36da -5feaf68a00fe00ff00e0971ff0547ff82ebffc3f5fe067fc1347fe0a5df1cffe8a6ffc2eaf82bff0acbf63cffa33cf883f1f7e1c7fc5c7f805f0fbfec43f167f -c527e3cffa816bbff319d1abf7fbfe37afff000fd7ff00ac267fdd9e7fd19e7fe25a7fc9da7f9ff85695e81ff0599fd80fc47f183f64efda43e2f7fc13f7f67b -f87fa47fc1553c45ff000a7ffe1527ed37f0b6cfe167c0efdac6dffb23e24fc2ef0c78f3fb0bf6aed4affe1ff8cfc2fe6fece5a678cfe1fea7e77c4fd23fb6fe -1b4ba87c378fedfa56af1f87af7f8c2ff8769ffc1e49ff00451bf6ff00ff00c5b1781bff00a322803ebfff0082c97fc1667fe0b39f07ff00e0b6bf187fe09fbf -b0b7ed21ff0008ef87f57f881fb2d7c2df80bf093fe14ffeca9abfda3c77f1c7e07fc0cd4ad342ff0084f7e307c2ed4ef62ff84a3e26fc40be9ffb4fc67e338b -47d13fb5fcb9750d23c3f610c765fbfdff00046dff0082337813e0ff00873e0f7fc140bf6e9fd9bffe11dff82c9eaff103f6a5f8a5f1ebe2dffc2e0d6357fb47 -8efe38fc53f8e7a6ddebbff0817c1ff8a3a9fecb117fc251f063e2058c1fd99e0cf0645a3e89fdafe645a7e91e2bb09a4b2f60ff0082467fc135e0f09fec7bfb -33fc46ff008299fecabf07fe21ff00c14f7c23e20f1a78b3e27fed0ff1dfc35f06bf68ff00da817c55e18f8e7e38d4fe04f89b54fda85a6f897e29f10f883c0d -f0a74ff85761e00d66d3e256a9a8f80bc3fe1df0b785f4bb9d11bc2b6ba5697fbbd4005145140051451400514514005145140051451400514514005145140051 -451400514514005145140051451400514514005145140051451400514514005145140057f8837fc158bfe529bff052cffb3fff00db23ff005a2be2357fb7cd7f -8837fc158bfe529bff00052cff00b3ff00fdb23ff5a2be235007fa7dff00c1ae3ff2828fd867feee67ff005b0ff682afdfeafc01ff00835c7fe5051fb0cffddc -cffeb61fed055fbfd400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140057f8837fc158bfe529bff052cffb3fff00db23ff005a2be2357fb7cd7f8837fc158b -fe529bff00052cff00b3ff00fdb23ff5a2be235007fa7dff00c1ae3ff2828fd867feee67ff005b0ff682afdfeafc01ff00835c7fe5051fb0cffddccffeb61fed -055fbfd4005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -0051451400514514005145140051451400514514005145140057f8837fc158bfe529bff052cffb3fff00db23ff005a2be2357fb7cd7f8837fc158bfe529bff00 -052cff00b3ff00fdb23ff5a2be235007fa7dff00c1ae3ff2828fd867feee67ff005b0ff682afdfeafc01ff00835c7fe5051fb0cffddccffeb61fed055fbfd400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -51451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400 -514514005145140051451400514514005145140057f8837fc158bfe529bff052cffb3fff00db23ff005a2be2357fb7cd7f8837fc158bfe529bff00052cff00b3 -ff00fdb23ff5a2be235007fa7dff00c1ae3ff2828fd867feee67ff005b0ff682afdfeafc01ff00835c7fe5051fb0cffddccffeb61fed055fbfd4005145140051 -45140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051 -45140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051 -45140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051 -45140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051 -45140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051 -45140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051 -45140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051 -45140051451400514514005145140057f8837fc158bfe529bff052cffb3fff00db23ff005a2be2357fb7cd7f8837fc158bfe529bff00052cff00b3ff00fdb23f -f5a2be235007fa7dff00c1ae3ff2828fd867feee67ff005b0ff682afdfeafc01ff00835c7fe5051fb0cffddccffeb61fed055fbfd40051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -1400514514005145140057f8837fc158bfe529bff052cffb3fff00db23ff005a2be2357fb7cd7f8837fc158bfe529bff00052cff00b3ff00fdb23ff5a2be2350 -07fa7dff00c1ae3ff2828fd867feee67ff005b0ff682afdfea28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002bfc41bfe0ac5ff00294dff0082967fd9 -ff00fed91ffad15f11a8a2803fffd9 -}}}}}\marglsxn1440\margrsxn3220\cols1\colno1\colw7240 -{ -{\pard\plain \li0\ql{\f1\fs48 Object-Oriented}\par} -} -{\pard\sl-1\slmult0\par - -{\pard\plain \li0\ql{\f2\fs48 Discrete-Event}\par} -} -{\pard\sl-2\slmult0\par - -{\pard\plain \li0\ql{\f2\fs48 Simulation in Java}\par} -}{\shp{\*\shpinst\shpleft-88\shptop752\shpright-68\shpbottom772 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-70\shptop762\shpright4722\shpbottom762{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft4721\shptop752\shpright4741\shpbottom772 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft4739\shptop762\shpright9395\shpbottom762{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9393\shptop752\shpright9413\shpbottom772 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpleft-88\shptop1097\shpright-68\shpbottom1117 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-70\shptop1107\shpright9402\shpbottom1107{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9401\shptop1097\shpright9420\shpbottom1117 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-78\shptop1116\shpright-78\shpbottom7845{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9410\shptop1116\shpright9410\shpbottom7845{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-201\slmult0\par - -{\pard\plain \li2060\ql{\f3\fs144 JavaSim}\par} -} -{\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-374\slmult0\par - -{\pard\plain \li3120\ql{\f4\b\fs52 User\rquote s Guide}\par} -} -{\pard\sl-132\slmult0\par - -{\pard\plain \li3260\ql{\f5\b\fs32 Public Release 0.3}\par} -} -{\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-229\slmult0\par - -{\pard\plain \li3580\ql{\f6\b\fs40 Version 1.0}\par} -}{\shp{\*\shpinst\shpleft-88\shptop1026\shpright-68\shpbottom1046 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-70\shptop1036\shpright9402\shpbottom1036{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9401\shptop1026\shpright9420\shpbottom1046 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpleft-88\shptop1371\shpright-68\shpbottom1391 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-70\shptop1381\shpright9400\shpbottom1381{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9398\shptop1371\shpright9418\shpbottom1391 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-78\shptop1390\shpright-78\shpbottom3835{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9408\shptop1390\shpright9408\shpbottom3835{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-352\slmult0\par - -{\pard\plain \li2480\sl239\slmult1 \ql{\f7\fs28 Department of Computing Science,}\par} -} -{\pard\sl-39\slmult0\par - -{\pard\plain \li3240\ql{\f7\fs28 Computing Laboratory,}\par} -} -{\pard\sl-38\slmult0\par - -{\pard\plain \li2300\ql{\f7\fs28 The University, Newcastle upon Tyne,}\par} -} -{\pard\sl-158\slmult0\par - -{\pard\plain \li3760\ql{\f7\fs28 NE1 7RU, UK.}\par} -}{\shp{\*\shpinst\shpleft-88\shptop560\shpright-68\shpbottom580 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-70\shptop570\shpright9400\shpbottom570{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9398\shptop560\shpright9418\shpbottom580 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1420\margt585\margb1440\marglsxn1440\margrsxn1420\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -} -{\pard\sl-300\slmult0\par - -{\pard\plain \li0\ql{\f9\b\fs28 Copyright Notice:}\par} -} -{\pard\sl-220\slmult0\par - -{\pard\plain \li0\ql{\f10\i\fs24 Copyright 1995-1999,}\par} -} -{\pard\sl-24\slmult0\par - -{\pard\plain \li0\ql{\f10\i\fs24 Computing Laboratory, University of Newcastle upon Tyne, UK.}\par} -} -{\pard\sl-233\slmult0\par - -{\pard\plain \li0\sl258\slmult1 \ri0\nooverflow\qj{\f8\i\fs24 Permission to use, copy, modify and distribute the {\i0 JavaSim} software for evaluation, teaching and/or research purposes only and without fee is hereby granted, providing that this copyright and permission notice appear on all copies and supporting documentation, and that similar conditions are imposed on any individual or organisation to whom the program is distributed.}\par} -} -{\pard\sl-220\slmult0\par - -{\pard\plain \li0\sl248\slmult1 \ri20\nooverflow\ql{\f10\i\fs24 The University of Newcastle upon Tyne makes no representation about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty.}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1440\margt585\margb1440\marglsxn1440\margrsxn1440\cols1\colno1\colw9020 -{ -{\trqc\trowd \trrh276\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8820 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl\ql{{\f8\i\fs24 The JavaSim User\rquote s Manuals}\cell}\pard\intbl\ql -\pard\plain\intbl{\fs19\cell}\pard\intbl -\trowd \trrh276\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8820 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh764\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth440 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs24\cell}\pard\intbl -\pard\plain\intbl{\fs24\cell}\pard\intbl -\pard\plain\intbl{\fs24\cell}\pard\intbl -\pard\plain\intbl\li1940\ql{{\f12\b\fs40 Table of Contents}\cell}\pard\intbl\li1940\ql -\pard\plain\intbl{\fs24\cell}\pard\intbl -\trowd \trrh764\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth440 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh472\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl\ql\sl-229\slmult0 {{\f13\b\fs20 1.}\cell}\pard\intbl\ql -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\charscalex99 \f13\b\fs20 PREFACE ...................................................................................................................................................}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f13\b\fs20 5}\cell}\pard\intbl\qr -\trowd \trrh472\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs24\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 1.1}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\charscalex98 \f14\fs20 A{\fs16 VAILABILITY} ...........................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 5}\cell}\pard\intbl\qr -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl\ql\sl-229\slmult0 {{\f13\b\fs20 2.}\cell}\pard\intbl\ql -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\charscalex99 \f13\b\fs20 INTRODUCTION.......................................................................................................................................}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f13\b\fs20 6}\cell}\pard\intbl\qr -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs24\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 2.1}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\charscalex99 \f14\fs20 S{\fs16 IMULATION MODELS}................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 6}\cell}\pard\intbl\qr -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 2.2}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\charscalex99 \f14\fs20 T{\fs16 ERMINOLOGY}..........................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 6}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 2.3}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\charscalex99 \f14\fs20 C{\fs16 ATEGORIES OF SIMULATION MODELS}.......................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 7}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 2.4}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\charscalex99 \f14\fs20 E{\fs16 VENT SCHEDULING}..................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 7}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl\ql\sl-229\slmult0 {{\f13\b\fs20 3.}\cell}\pard\intbl\ql -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\charscalex99 \f13\b\fs20 BASIC SIMULATION CLASSES.............................................................................................................}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f13\b\fs20 9}\cell}\pard\intbl\qr -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs24\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 3.1}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\charscalex99 \f14\fs20 T{\fs16 HE SIMULATION SCHEDULER} ...................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 9}\cell}\pard\intbl\qr -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f16\i\fs20 3.1.1}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\li160\ql\sl-229\slmult0 {{\f16\i\fs20 Scheduler class interface ..............................................................................................................}\cell}\pard\intbl\li160\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f16\i\fs20 10}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 3.2}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 S{\fs16 IMULATION PROCESSES} .........................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 10}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f16\i\fs20 3.2.1}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\li160\ql\sl-229\slmult0 {{\f16\i\fs20 SimulationProcess class interface ................................................................................................}\cell}\pard\intbl\li160\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f16\i\fs20 11}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f16\i\fs20 3.2.2}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\li160\ql\sl-229\slmult0 {{\f16\i\fs20 Example ........................................................................................................................................}\cell}\pard\intbl\li160\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f16\i\fs20 14}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 3.3}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\charscalex99 \f14\fs20 S{\fs16 TARTING}, {\fs16 ENDING AND CONTROLLING A SIMULATION}............................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 14}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f16\i\fs20 3.3.1}{\f16\i\fs20 Suspending the main thread .........................................................................................................}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f16\i\fs20 15}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f16\i\fs20 3.3.2}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\li160\ql\sl-229\slmult0 {{\f16\i\fs20 Exiting the application .................................................................................................................}\cell}\pard\intbl\li160\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f16\i\fs20 15}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f16\i\fs20 3.3.3}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\li160\ql\sl-229\slmult0 {{\f16\i\fs20 Controlling the simulation............................................................................................................}\cell}\pard\intbl\li160\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f16\i\fs20 16}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 3.4}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 R{\fs16 ESETTING A SIMULATION}.......................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 16}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f16\i\fs20 3.4.1}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\li160\ql\sl-229\slmult0 {{\f16\i\fs20 Example ........................................................................................................................................}\cell}\pard\intbl\li160\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f16\i\fs20 17}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl\ql\sl-229\slmult0 {{\f13\b\fs20 4.}\cell}\pard\intbl\ql -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f13\b\fs20 DISTRIBUTION FUNCTIONS...............................................................................................................}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f13\b\fs20 18}\cell}\pard\intbl\qr -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs24\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 4.1}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 R{\fs16 ANDOM}S{\fs16 TREAM}....................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 18}\cell}\pard\intbl\qr -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 4.2}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 U{\fs16 NIFORM}S{\fs16 TREAM} ...................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 19}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 4.3}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 E{\fs16 XPONENTIAL}S{\fs16 TREAM} ............................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 19}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 4.4}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 E{\fs16 RLANG}S{\fs16 TREAM} .....................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 20}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 4.5}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 H{\fs16 YPER}E{\fs16 XPONENTIAL}S{\fs16 TREAM} .................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 20}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 4.6}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 N{\fs16 ORMAL}S{\fs16 TREAM} ....................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 20}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 4.7}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 D{\fs16 RAW} .....................................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 21}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 4.8}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 E{\fs16 XAMPLE} ................................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 21}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl\ql\sl-229\slmult0 {{\f13\b\fs20 5.}\cell}\pard\intbl\ql -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f13\b\fs20 ADVANCED SIMULATION CLASSES ................................................................................................}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f13\b\fs20 22}\cell}\pard\intbl\qr -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs24\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 5.1}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 A{\fs16 SYNCHRONOUS ENTITIES} ......................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 23}\cell}\pard\intbl\qr -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 5.2}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 T{\fs16 RIGGER QUEUES} ....................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 24}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 5.3}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 S{\fs16 EMAPHORES} ..........................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 25}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 5.4}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 E{\fs16 XAMPLE} ................................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 26}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl\ql\sl-229\slmult0 {{\f13\b\fs20 6.}\cell}\pard\intbl\ql -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f13\b\fs20 STATISTICAL CLASSES .......................................................................................................................}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f13\b\fs20 27}\cell}\pard\intbl\qr -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs24\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 6.1}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 M{\fs16 EAN} .....................................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 27}\cell}\pard\intbl\qr -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 6.2}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 V{\fs16 ARIANCE}...............................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 28}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 6.3}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 T{\fs16 IME}V{\fs16 ARIANCE} ......................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr{{\charscalex89 \f14\fs20 28}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 6.4}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 H{\fs16 ISTOGRAMS} ..........................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 29}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f16\i\fs20 6.4.1}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\li160\ql\sl-229\slmult0 {{\f16\i\fs20 PrecisionHistogram......................................................................................................................}\cell}\pard\intbl\li160\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f16\i\fs20 29}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f16\i\fs20 6.4.2}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\li160\ql\sl-229\slmult0 {{\f16\i\fs20 Histogram .....................................................................................................................................}\cell}\pard\intbl\li160\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f16\i\fs20 30}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f16\i\fs20 6.4.3}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\li160\ql\sl-229\slmult0 {{\f16\i\fs20 SimpleHistogram ..........................................................................................................................}\cell}\pard\intbl\li160\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f16\i\fs20 31}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f16\i\fs20 6.4.4}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\li160\ql\sl-229\slmult0 {{\f16\i\fs20 Quantile ........................................................................................................................................}\cell}\pard\intbl\li160\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f16\i\fs20 32}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth840 \cellx1040 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth7780 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl\ql\sl-229\slmult0 {{\f13\b\fs20 7.}\cell}\pard\intbl\ql -\pard\plain\intbl\li280\ql\sl-229\slmult0 {{\f13\b\fs20 JAVASIM CLASSES................................................................................................................................}\cell}\pard\intbl\li280\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f13\b\fs20 33}\cell}\pard\intbl\qr -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8620 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs24\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 7.1}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 S{\fs16 CHEDULER} ............................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 33}\cell}\pard\intbl\qr -\trowd \trrh350\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 7.2}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 S{\fs16 IMULATION}P{\fs16 ROCESS} .............................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 34}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 7.3}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 S{\fs16 IMULATION}E{\fs16 XCEPTION}..........................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 35}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 7.4}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 R{\fs16 ESTART}E{\fs16 XCEPTION} ...............................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 35}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 7.5}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 R{\fs16 ANDOM}S{\fs16 TREAM}....................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 35}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 7.6}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 U{\fs16 NIFORM}S{\fs16 TREAM} ...................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 35}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 7.7}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 E{\fs16 XPONENTIAL}S{\fs16 TREAM} ............................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 36}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 7.8}\cell}\pard\intbl\qr -\pard\plain\intbl\li120\ql\sl-229\slmult0 {{\f14\fs20 E{\fs16 RLANG}S{\fs16 TREAM} .....................................................................................................................................}\cell}\pard\intbl\li120\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex89 \f14\fs20 36}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth400 \cellx600 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8220 \cellx8820 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx9020 -\row - - -} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1440\margt585\margb1440\marglsxn1440\margrsxn1440\cols1\colno1\colw9020 -{ -{\trqc\trowd \trrh276\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8800 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl\ql{{\f8\i\fs24 The JavaSim User\rquote s Manuals}\cell}\pard\intbl\ql -\pard\plain\intbl{\fs19\cell}\pard\intbl -\trowd \trrh276\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8800 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh523\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8600 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs24\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\charscalex99 \f14\fs20 7.9 H{\fs16 YPER}E{\fs16 XPONENTIAL}S{\fs16 TREAM} .................................................................................................................}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 36}\cell}\pard\intbl\qr -\trowd \trrh523\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8600 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\f14\fs20 7.10}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 N{\fs16 ORMAL}S{\fs16 TREAM} ...............................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 36}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\f14\fs20 7.11}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 D{\fs16 RAW} ................................................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 37}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\f14\fs20 7.12}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 S{\fs16 IMULATION}E{\fs16 NTITY} ...........................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 37}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\f14\fs20 7.13}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 T{\fs16 RIGGER}Q{\fs16 UEUE} .................................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 37}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\f14\fs20 7.14}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 S{\fs16 EMAPHORE} .......................................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 38}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\f14\fs20 7.15}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 M{\fs16 EAN}.................................................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 38}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\f14\fs20 7.16}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 V{\fs16 ARIANCE} ..........................................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 39}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\f14\fs20 7.17}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 T{\fs16 IME}V{\fs16 ARIANCE}..................................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 39}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\f14\fs20 7.18}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 P{\fs16 RECISION}H{\fs16 ISTOGRAM}.......................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 40}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\f14\fs20 7.19}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 H{\fs16 ISTOGRAM} .......................................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 40}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\f14\fs20 7.20}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 S{\fs16 IMPLE}H{\fs16 ISTOGRAM} ............................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 41}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\f14\fs20 7.21}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 Q{\fs16 UANTILE} ..........................................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 41}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl{\fs16\cell}\pard\intbl -\pard\plain\intbl\li40\ql\sl-229\slmult0 {{\f14\fs20 7.22}\cell}\pard\intbl\li40\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f14\fs20 S{\fs16 TATISTICS}E{\fs16 XCEPTION} .......................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f14\fs20 41}\cell}\pard\intbl\qr -\trowd \trrh235\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth580 \cellx780 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8020 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8600 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl\ql\sl-229\slmult0 {{\f13\b\fs20 8.}\cell}\pard\intbl\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f13\b\fs20 REFERENCES..........................................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f13\b\fs20 42}\cell}\pard\intbl\qr -\trowd \trrh358\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8600 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - -\trowd \trrh473\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8600 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\pard\plain\intbl\ql\sl-229\slmult0 {{\f13\b\fs20 9.}\cell}\pard\intbl\ql -\pard\plain\intbl\qr\sl-229\slmult0 {{\f13\b\fs20 INDEX .......................................................................................................................................................}\cell}\pard\intbl\qr -\pard\plain\intbl\qr\sl-229\slmult0 {{\charscalex99 \f13\b\fs20 43}\cell}\pard\intbl\qr -\trowd \trrh473\trleft0\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth200 \cellx200 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth8600 \cellx8800 -\clvertalb\clbrdrt\brdrnone \clbrdrl\brdrnone \clbrdrb\brdrnone \clbrdrr\brdrnone \cltxlrtb\clftsWidth3\clwWidth220 \cellx9020 -\row - - -} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1420\margt585\margb1183\marglsxn1440\margrsxn1420\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -} -{\pard\sl-200\slmult0\par -\pard\sl-334\slmult0\par - -{\pard\plain \li0\ql{\f17\fs36 1. Preface}\par} -} -{\pard\sl-260\slmult0\par - -{\pard\plain \li0\sl241\slmult1 \ri20\nooverflow\qj{\f8\i\fs24 JavaSim {\i0 is a Java implementation of the original} C++SIM {\i0 simulation toolkit, which was} \i0 developed as a direct consequence of research conducted within the scope of the {\i Arjuna} project [8]. Therefore, it shares many of the same requirements:}\par} -} -{\pard\sl-124\slmult0\par - -{\pard\plain \li860\ri20\nooverflow\ql\fi-852 {\f8\i\fs24 {\i0 \f19 �} easy to learn and use{\i0 : the interface to the simulation library should be easy to} \i0 understand.}\par} -} -{\pard\sl-287\slmult0\par - -{\pard\plain \li860\sl245\slmult1 \ri20\nooverflow\qj\fi-852 {\f10\i\fs24 {\i0 \f19 �} correct abstraction{\i0 : existing Java programmers should not find the simulation} \i0 paradigm in conflict with the programming paradigm presented by Java. Simulation programmers used to other environments should find the transition to {\i JavaSim} straightforward.}\par} -} -{\pard\sl-2\slmult0\par - -{\pard\plain \li860\sl244\slmult1 \ri20\nooverflow\ql\fi-852 {\f10\i\fs24 {\i0 \f19 �} flexible and extensible{\i0 : it should be relatively easy for anyone to add new} \i0 functionality to the system, such as new distribution functions.}\par} -} -{\pard\sl-1\slmult0\par - -{\pard\plain \li860\sl246\slmult1 \ri20\nooverflow\qj\fi-852 {\f8\i\fs24 {\i0 \f19 �} efficiency{\i0 : the system should be efficient and produce efficient simulation runs.} \i0 Simulation packages which we have experience of tended to be extremely slow and consume large amounts of system resources.}\par} -} -{\pard\sl-121\slmult0\par - -{\pard\plain \li0\ql{\f11\fs24 These requirements were realised in the following design decisions:}\par} -} -{\pard\sl-152\slmult0\par -{{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls1\ilvl0\rin0\nooverflow\lin860\itap0 \sl238\slmult1 {\plain\f11\fs24 the discrete-event process based simulation facilities provided by SIMULA [1][2] and its simulation classes and libraries have a considerable experience and user community which have found them to be successful for a wide variety of simulations. In later versions of the system additional simulation classes were added which provide extra functionality.{\fs32 \super 1} }\par\pard\sl-2\slmult0\par -{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls1\ilvl0\rin20\nooverflow\lin860\itap0 \sl233\slmult1 {\plain\f11\fs24 inheritance was to be used throughout the design to even a greater extent than is already provided in SIMULA. This enables {\i JavaSim} to be more flexible and extensible, allowing new functionality to be added without affecting the overall system structure. For example, our I/O facilities, random number generators and probability distribution functions are entirely object-oriented, relying on inheritance to specialise their behaviour. }\par} -} -{\pard\sl-139\slmult0\par - -{\pard\plain \li0\ql{\f9\b\fs28 1.1 Availability}\par} -} -{\pard\sl-244\slmult0\par - -{\pard\plain \li0\ql{\f10\i\fs24 JavaSim {\i0 has been tested with JDK 1.0.2 and 1.1.x on Solaris, linux, and Windows 95/NT 4.0.}}\par} -} -{\pard\sl-367\slmult0\par - -{\pard\plain \li0\ql{\f11\fs24 Technical questions about {\i JavaSim} can be sent to M.C.Little@ncl.ac.uk.}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft1\shptop3135\shpright2879\shpbottom3135{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6096}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -\sect\sbknone -\marglsxn1440\margrsxn1440\cols1\colno1\colw9020 -{\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-298\slmult0\par - -{\pard\plain \li0\sl196\slmult1 \ri0\nooverflow\ql{\f15\fs32 {\super 1}{\fs19 It is not necessary for the reader to know anything about the SIMULA programming language or its simulation} \fs19 classes, but such knowledge would aid in the understanding of the concepts and classes presented within.}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1420\margt585\margb1440\marglsxn1440\margrsxn1420\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -} -{\pard\sl-200\slmult0\par -\pard\sl-341\slmult0\par - -{\pard\plain \li0\ql{\f21\b\fs36 2. Introduction}\par} -} -{\pard\sl-253\slmult0\par - -{\pard\plain \li0\sl244\slmult1 \ri0\nooverflow\qj{\f11\fs24 This manual is not intended as a tutorial on the concepts of simulation in general, but rather how to write simulations in the {\i JavaSim} system. However, in order to be able to do this certain key simulation concepts will be briefly described. The interested reader is referred to [6] for detailed descriptions of these concepts and for further discussions on simulation modelling.}\par} -} -{\pard\sl-248\slmult0\par - -{\pard\plain \li0\ql{\f9\b\fs28 2.1 Simulation models}\par} -} -{\pard\sl-244\slmult0\par - -{\pard\plain \li0\ql{\f11\fs24 To model a system is to replace it by something which is:}\par} -} -{\pard\sl-124\slmult0\par -{{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls2\ilvl0\rin0\nooverflow\lin860\itap0 {\plain\f11\fs24 simpler and/or easier to study. }\par\pard\sl-18\slmult0\par -{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls2\ilvl0\rin0\nooverflow\lin860\itap0 \sl228\slmult1 {\plain\f11\fs24 equivalent to the original in all {\i important} respects. }\par} -} -{\pard\sl-138\slmult0\par - -{\pard\plain \li0\sl245\slmult1 \ri0\nooverflow\qj{\f11\fs24 Therefore, before constructing the actual simulation, it is first necessary to abstract from the real system those components and their interactions that are considered important for the actual model. Building a simulation system model involves making certain simplifying assumptions to aid in the actual implementation and study of the simulation (without such simplifications the model would be as complex as the system it is meant to be simulating). However, the accuracy of the results obtained from the simulation depend upon how valid the initial assumptions are. For example, when considering the trajectory of a projectile through the atmosphere, the friction due to the air molecules is usually ignored. This assumption is valid only within certain boundaries: if the size of the projectile is on the same scale as the air molecules and its speed is sufficiently small then friction plays a significant role in its movement.}\par} -} -{\pard\sl-256\slmult0\par - -{\pard\plain \li0\sl245\slmult1 \ri0\nooverflow\qj{\f11\fs24 Thus, the first step towards building a simulation model of a system is to determine exactly what are the important features which are to be measured, and what characteristics of the system have an affect on them. Any boundary conditions for the simulation (e.g., size of projectile) should be considered at the same time in order to simplify this procedure. Building a final model can often take several phases, where results from the initial model are compared with those obtained from the real system to determine their accuracy. Any discrepancies are taken into account by possibly adding new components to the simulation until, within certain error boundaries, the simulation results match those from the real system.}\par} -} -{\pard\sl-247\slmult0\par - -{\pard\plain \li0\ql{\f9\b\fs28 2.2 Terminology}\par} -} -{\pard\sl-254\slmult0\par - -{\pard\plain \li0\sl243\slmult1 \ri20\nooverflow\qj{\f11\fs24 The system components chosen for the simulation are termed simulation {\i entities}. Associated with each entity in the simulation are zero or more {\i attributes} that describe the state of the entity and which may vary during the course of the simulation. The interaction of entities and the changes they cause in the system state are termed {\i events}.}\par} -} -{\pard\sl-255\slmult0\par - -{\pard\plain \li0\sl243\slmult1 \ri20\nooverflow\qj{\f11\fs24 The collection of these component attributes at any given time {\i t} defines the system state at {\i t}. In general, the system state can take any of a variety of values, and a given simulation run results in one realisation of a set of these values (the {\i operation path}) over the {\i observation} \i period{\i0 .}}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1420\margt585\margb1440\marglsxn1440\margrsxn1420\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -} -{\pard\sl-300\slmult0\par - -{\pard\plain \li0\ql{\f9\b\fs28 2.3 Categories of simulation models}\par} -} -{\pard\sl-254\slmult0\par - -{\pard\plain \li0\sl238\slmult1 \ri20\nooverflow\ql{\f11\fs24 There are three categories of simulation model, described by the way in which the system state changes as a function of time:}\par} -} -{\pard\sl-153\slmult0\par -{{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls3\ilvl0\rin0\nooverflow\lin860\itap0 \sl231\slmult1 {\plain\f10\i\fs24 Continuous time: {\i0 is one whose state varies continuously with time; such systems are} \i0 usually described by sets of differential equations. }\par\pard\sl-32\slmult0\par -{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls3\ilvl0\rin0\nooverflow\lin860\itap0 \sl241\slmult1 {\plain\f8\i\fs24 Discrete time{\i0 : the system is considered only at selected moments in time (the} observation points{\i0 ). These moments are typically evenly spaced. Some economics} \i0 models are examples of this, where economics data becomes available at fixed intervals. Changes in state are noticed only at observation points. By choosing a suitably small interval between observation points, a continuous time simulation can be approximated by a discrete time simulation. }\par\pard\sl-32\slmult0\par -{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls3\ilvl0\rin0\nooverflow\lin860\itap0 \sl243\slmult1 {\plain\f8\i\fs24 Continuous time-discrete event{\i0 : the time parameter is (conceptually) continuous and} \i0 the observation period is a real interval, usually starting at zero for simplicity. The operation path is completely determined by the sequence of event times (which need not be evenly spaced and can be of arbitrary increments) and by the discrete changes in the system state which take place at these times (i.e., the interactions of the events). In between consecutive event times the system state may vary continuously. Although it is possible to model the passage of real time by suitable event timing, this is not necessary for a discrete event system: the simulation model can advance its own internal time directly from one discrete event to another, taking any appropriate action to advance the state accordingly. }\par} -} -{\pard\sl-139\slmult0\par - -{\pard\plain \li0\sl244\slmult1 \ri0\nooverflow\qj{\f11\fs24 It is this latter category of simulation modelling that {\i JavaSim} supports. Examples of discrete-event simulations are most queuing problems: entities (e.g., customers in a bank) arrive according to a given distribution and change the system state instantaneously (e.g., the number of customers in the queue). The operation paths for this system are step functions: they jump up (or down) by one when a customer joins (or leaves) the queue.}\par} -} -{\pard\sl-248\slmult0\par - -{\pard\plain \li0\ql{\f9\b\fs28 2.4 Event scheduling}\par} -} -{\pard\sl-254\slmult0\par - -{\pard\plain \li0\sl243\slmult1 \ri20\nooverflow\qj{\f11\fs24 Given that a simulation consists of a series of interacting events (the operation path), a simulator can be defined as that program devoted to the generation of operation paths. The simulator allows the creation of events and controls their interactions according to a set of rules, using an internal \ldblquote clock\rdblquote to keep track of the passage of (simulation) time.}\par} -} -{\pard\sl-255\slmult0\par - -{\pard\plain \li0\sl243\slmult1 \ri20\nooverflow\qj{\f11\fs24 It maintains an {\i event list}, which indicates which events are to be scheduled for execution at specific simulation times. Events are executed according to their simulation times. There are two approaches to the way in which a simulator can schedule events to produce an operation path:}\par} -} -{\pard\sl-149\slmult0\par -{{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls4\ilvl0\rin0\nooverflow\lin860\itap0 {\plain\f8\i\fs24 event-oriented{\i0 : there is a procedure associated with each type of event in the system:} \i0 it performs the action required to handle that type of event and it is invoked every time such an event occurs. In an event-oriented approach, an operation path is obtained by taking a global view of everything that happens in the system; the manipulation of events is explicit. }\par\pard\sl-32\slmult0\par -{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls4\ilvl0\rin0\nooverflow\lin860\itap0 \sl238\slmult1 {\plain\f8\i\fs24 process-oriented{\i0 : an operation path is obtained by the interacting of a number of} \i0 processes running in parallel. The management of events is implicit in the management of the processes. The simulation system provides primitives for placing processes at particular points on the event list, removing and re-scheduling them. }\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1420\margt585\margb1440\marglsxn1440\margrsxn1420\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -} -{\pard\sl-305\slmult0\par - -{\pard\plain \li0\sl244\slmult1 \ri0\nooverflow\qj{\f11\fs24 The process-oriented approach best fits with the object-oriented paradigm which we want to present to the programmer of {\i JavaSim}. As in SIMULA, simulation processes then become active objects which interact with each other through message passing and the simulation primitives. Refinements of these objects can then be obtained by inheriting from them and redefining the appropriate methods.}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1420\margt585\margb1085\marglsxn1440\margrsxn1420\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -} -{\pard\sl-200\slmult0\par -\pard\sl-334\slmult0\par - -{\pard\plain \li0\ql{\f17\fs36 3. Basic simulation classes}\par} -} -{\pard\sl-260\slmult0\par - -{\pard\plain \li0\sl237\slmult1 \ri20\nooverflow\qj{\f11\fs24 This chapter describes the core elements of the {\i JavaSim} simulation system. It is not intended as a tutorial on Java, and basic knowledge of the language is assumed. Note, all of the classes described in this section can be found in the {\f23 arjuna.JavaSim.Simulation} package.}\par} -} -{\pard\sl-254\slmult0\par - -{\pard\plain \li0\ql{\f9\b\fs28 3.1 The simulation scheduler}\par} -} -{\pard\sl-254\slmult0\par - -{\pard\plain \li0\sl244\slmult1 \ri0\nooverflow\qj{\f11\fs24 Chapter 2 described the event list and how simulation entities (processes) are executed according to their position on the event list (i.e., with increasing simulation time). In {\i JavaSim}, as in SIMULA, simulation processes are managed by a {\i scheduler} and are placed on a \i scheduler queue {\i0 (the event list). Processes are executed in pseudo-parallel, i.e., only one} \i0 process executes at any instance of real time, but many processes may execute concurrently at any instance of simulation time. The simulation clock is only advanced when all processes have been executed for the current instance of simulation time.}\par} -} -{\pard\sl-258\slmult0\par - -{\pard\plain \li0\sl228\slmult1 \ri0\nooverflow\qj{\f11\fs24 Inactive processes are placed on to the scheduler queue, and when the current active process yields control to the scheduler (either because it has finished or been placed back onto the scheduler queue), the scheduler removes the process at the head of the queue and re-activates it.{\fs32 \super 2} When the scheduler queue is empty, i.e., there are no further processes left to execute, the scheduler terminates the simulation.}\par} -} -{\pard\sl-238\slmult0\par - -{\pard\plain \li3040\ql{\f11\fs24 Scheduler Queue}\par} -} -{\shp {\*\shpinst \shptop42\shpleft1788\shpright7239\shpbottom2056\shpfblwtxt1\shpbypara\shpbxcolumn\shpwr3{\sp{\sn shapeType}{\sv 75}}{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn pib}{\sv{\pict\jpegblip\picw363\pich134\picwgoal7260\pichgoal2680\picscalex100\picscaley100 -ffd8ffe000104a46494600010100000100010000ffdb004300010101010101010101010101010101010101010101010101010101010101010101010101010101 -01010101010101010101010101010101010101010101010101ffdb00430101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101ffc00011080193044203012200021101031101ffc4001f0000010501010101010100 -000000000000000102030405060708090a0bffc400b5100002010303020403050504040000017d01020300041105122131410613516107227114328191a10823 -42b1c11552d1f02433627282090a161718191a25262728292a3435363738393a434445464748494a535455565758595a636465666768696a737475767778797a -838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4c5c6c7c8c9cad2d3d4d5d6d7d8d9dae1e2e3e4e5e6e7e8e9eaf1 -f2f3f4f5f6f7f8f9faffc4001f0100030101010101010101010000000000000102030405060708090a0bffc400b5110002010204040304070504040001027700 -0102031104052131061241510761711322328108144291a1b1c109233352f0156272d10a162434e125f11718191a262728292a35363738393a43444546474849 -4a535455565758595a636465666768696a737475767778797a82838485868788898a92939495969798999aa2a3a4a5a6a7a8a9aab2b3b4b5b6b7b8b9bac2c3c4 -c5c6c7c8c9cad2d3d4d5d6d7d8d9dae2e3e4e5e6e7e8e9eaf2f3f4f5f6f7f8f9faffda000c03010002110311003f00fefe28a28a0028a28a0028a28a0028a28a -0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2bf823ff82faffc150ff69ffdb9 -7f6f3f0c7fc1093fe09a7e36f106816de34f104dfb38fed57e31f0a5f787fc47e15f8afe2af88afe06d63c59e10d53c43f0dfc21f10fe2b7c3bf83ff00b30f85 -b48f1969dfb53eafe1cd6b47d46fb4ebaf8f3f0e7e2cfc359fc13f0ceee5f1a007f4fbfb507fc172ff00e092dfb1d78a93c0bf1e3f6e3f83fa5f8da3f1078d3c -27adf83be1c2f8bbe3f78abc11e2af879a8d8e8fe2ff000cfc4ef0f7c00f0c7c4fd5fe14f88349d5efc696ba37c49b3f0aea3a96a3a77882c749b6beb9f0c788 -e2d2be60ff0088a3bfe0851ff47cdff9acdfb61fff0043ed7e507c01ff0083283f62fb5f835f0f62fda97f695fda7f5dfda0dbc3f0dcfc56bef803e2ef853e13 -f835078aaf27b8bcb8d1be1ee97f113e00f8d3c6d75e1ff0e5b4f6be1e87c4de24d62cf51f1a4fa5dc78c5fc27e028f5d8fc0be1cfd5ff00f885c7fe0851ff00 -4633ff009b33fb61ff00f4415001ff0011477fc10a3fe8f9bff359bf6c3ffe87da3fe228eff82147fd1f37fe6b37ed87ff00d0fb47fc42e3ff000428ff00a319 -ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff004415001ff11477fc10a3fe8f9bff00359bf6c3ff00e87da3fe228eff0082147fd1f37f -e6b37ed87ffd0fb47fc42e3ff0428ffa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f4415001ff0011477fc10a3fe8f9bff359bf -6c3ffe87da3fe228eff82147fd1f37fe6b37ed87ff00d0fb47fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff -004415001ff11477fc10a3fe8f9bff00359bf6c3ff00e87da3fe228eff0082147fd1f37fe6b37ed87ffd0fb47fc42e3ff0428ffa319ffcd99fdb0fff00a20a8f -f885c7fe0851ff004633ff009b33fb61ff00f4415001ff0011477fc10a3fe8f9bff359bf6c3ffe87da3fe228eff82147fd1f37fe6b37ed87ff00d0fb47fc42e3 -ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff004415001ff11477fc10a3fe8f9bff00359bf6c3ff00e87da3fe228e -ff0082147fd1f37fe6b37ed87ffd0fb47fc42e3ff0428ffa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f4415001ff0011477fc1 -0a3fe8f9bff359bf6c3ffe87da3fe228eff82147fd1f37fe6b37ed87ff00d0fb47fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4 -633ff9b33fb61fff004415001ff11477fc10a3fe8f9bff00359bf6c3ff00e87da3fe228eff0082147fd1f37fe6b37ed87ffd0fb47fc42e3ff0428ffa319ffcd9 -9fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f4415001ff0011477fc10a3fe8f9bff359bf6c3ffe87dafd7ff817fb58fecb1fb507fc253ff0 -cd1fb4b7ecff00fb447fc20ffd89ff0009affc28bf8c9f0ebe2dff00c21fff000937f6bffc237ff094ff00c201e23f107fc23fff000907fc23faf7f627f6b7d9 -3fb57fb1357fb07da3fb36f3c9fc01f8e9ff000686ff00c11b7e2dff00c22dff00080782bf680fd97ffe11ff00edbfed6ff8517f1db5df107fc271fdabfd91f6 -0ff84a7fe1a5f4bfda23ec9ff08cff0066de7f627fc215ff00087fda3fe120d5ff00e124ff008483c9d07fb13f083fe0a61ff06e3fc65ff823d69da27fc14f3f -e0929fb49fc609edbf646f0fafc49f883a3fc429a0f15fed0fe18d46d7c55a6f87b56f1b7c3c97e167c1cd2fe1df8f7e0fafc3bf166bd7df1f3c0df153c2fe1c -f0af873e127833e20ea5e30d73e277827c69ad783bc2201fe8b9457e20ff00c1033fe0ab9a3ffc1567f61df0ff008dbc4d75f65fda6be047fc235f07ff006a0d -1b50d5fc0926b1e25f1dd8784b4ab9b1f8f5a67867c176da0ffc239f0ffe3bf97aceb9a15a5cf81bc1da3e8be3bd03e297c36f09c3e23d17e1aa78b35afdbea0 -028a28a0028a28a002bf283f6a0ff82e5ffc125bf63af1527817e3c7edc7f07f4bf1b47e20f1a784f5bf077c385f177c7ef157823c55f0f351b1d1fc5fe19f89 -de1ef801e18f89fabfc29f10693abdf8d2d746f89367e15d4752d474ef1058e936d7d73e18f11c5a57f305ff0005f5ff0082a1fed3ff00b72fede7e18ff82127 -fc134fc6de20d02dbc69e209bf671fdaafc63e14bef0ff0088fc2bf15fc55f115fc0dac78b3c21aa7887e1bf843e21fc56f877f07ff661f0b691e32d3bf6a7d5 -fc39ad68fa8df69d75f1e7e1cfc59f86b3f827e19ddcbe34f7ff00803ff06507ec5f6bf06be1ec5fb52fed2bfb4febbfb41b787e1b9f8ad7df007c5df0a7c27f -06a0f155e4f717971a37c3dd2fe227c01f1a78daebc3fe1cb69ed7c3d0f89bc49ac59ea3e349f4bb8f18bf84fc051ebb1f817c3801fabfff0011477fc10a3fe8 -f9bff359bf6c3ffe87da3fe228eff82147fd1f37fe6b37ed87ff00d0fb47fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9 -b33fb61fff004415001ff11477fc10a3fe8f9bff00359bf6c3ff00e87da3fe228eff0082147fd1f37fe6b37ed87ffd0fb47fc42e3ff0428ffa319ffcd99fdb0f -ff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f4415001ff0011477fc10a3fe8f9bff359bf6c3ffe87da3fe228eff82147fd1f37fe6b37ed87ff00d0 -fb47fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff004415001ff11477fc10a3fe8f9bff00359bf6c3ff00e8 -7da3fe228eff0082147fd1f37fe6b37ed87ffd0fb47fc42e3ff0428ffa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f4415001ff -0011477fc10a3fe8f9bff359bf6c3ffe87da3fe228eff82147fd1f37fe6b37ed87ff00d0fb47fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c -7fe0851ff4633ff9b33fb61fff004415001ff11477fc10a3fe8f9bff00359bf6c3ff00e87da3fe228eff0082147fd1f37fe6b37ed87ffd0fb47fc42e3ff0428f -fa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f4415001ff0011477fc10a3fe8f9bff359bf6c3ffe87da3fe228eff82147fd1f37 -fe6b37ed87ff00d0fb47fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff004415001ff11477fc10a3fe8f9bff -00359bf6c3ff00e87da3fe228eff0082147fd1f37fe6b37ed87ffd0fb47fc42e3ff0428ffa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb -61ff00f4415001ff0011477fc10a3fe8f9bff359bf6c3ffe87da3fe228eff82147fd1f37fe6b37ed87ff00d0fb47fc42e3ff000428ff00a319ff00cd99fdb0ff -00fa20abc7fe35ff00c1a4dff045cf8a9e15d3fc3de05f83df183f66bd5ecfc416bacdc78ebe0a7c7ff88daf78ab56d3adf4ed56c66f09ea167fb466a5f1fbc1 -31f87efae751b3d62eae74bf0769be2a4d4742d2a2b1f1359e9136b9a5eb201fb7ff00b2ff00edadfb23feda9e157f18feca1fb46fc1ff008f9a459f87fc17e2 -6f10d9fc38f1c689af78abc0ba77c43d3afb54f075b7c4ef02c5749e36f857e20d66db49d6625f09fc47f0f785bc5565a8e85e20d1f52d1acf57d0758b1b2fa7 -ebfce8ff00e0aa7ff06ccf8abfe0961f06bc47ff000516ff00825bfed6bfb4fd9eaffb35f87ec35bf1a784af6f351b7fda1f41f0aebb3f88fc1ff157e2c7c2ff -008e1fb3be83f0f2e74bf0ff00863c13e2ad225f1f783756f87da0e9da2fc24d37e3278fbc47f1866d22cedbc0971fd4f7fc1033fe0ab9a3ff00c1567f61df0f -f8dbc4d75f65fda6be047fc235f07ff6a0d1b50d5fc0926b1e25f1dd8784b4ab9b1f8f5a67867c176da0ff00c239f0ff00e3bf97aceb9a15a5cf81bc1da3e8be -3bd03e297c36f09c3e23d17e1aa78b35a00fdbea28a2800a28a2800a28afe08ffe0bebff000543fda7ff006e5fdbcfc31ff0424ff8269f8dbc41a05b78d3c413 -7ece3fb55f8c7c297de1ff0011f857e2bf8abe22bf81b58f16784354f10fc37f087c43f8adf0efe0ff00ecc3e16d23c65a77ed4fabf8735ad1f51bed3aebe3cf -c39f8b3f0d67f04fc33bb97c6801fd3efed41ff05cbff824b7ec75e2a4f02fc78fdb8fe0fe97e368fc41e34f09eb7e0ef870be2ef8fde2af0478abe1e6a363a3 -f8bfc33f13bc3df003c31f13f57f853e20d2757bf1a5ae8df126cfc2ba8ea5a8e9de20b1d26dafae7c31e238b4af983fe228eff82147fd1f37fe6b37ed87ff00 -d0fb5f941f007fe0ca0fd8bed7e0d7c3d8bf6a5fda57f69fd77f6836f0fc373f15afbe00f8bbe14f84fe0d41e2abc9ee2f2e346f87ba5fc44f803e34f1b5d787 -fc396d3daf87a1f13789358b3d47c693e9771e317f09f80a3d763f02f873f57ffe2171ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffc -d66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed -87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6 -c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff -00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00 -fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1054 -007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2 -171ff82147fd18cffe6ccfed87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b -8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe08 -51ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff000428 -ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147f -d18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f6bf57ff0065ff00db5bf647fdb53c2afe31fd943f68df83ff001f348b3f0ff82f -c4de21b3f871e38d135ef1578174ef887a75f6a9e0eb6f89de058ae93c6df0afc41acdb693acc4be13f88fe1ef0b78aacb51d0bc41a3ea5a359eafa0eb16365f -881f1aff00e0d26ff822e7c54f0ae9fe1ef02fc1ef8c1fb35eaf67e20b5d66e3c75f053e3ffc46d7bc55ab69d6fa76ab633784f50b3fda3352f8fde098fc3f7d -73a8d9eb17573a5f83b4df1526a3a1695158f89acf489b5cd2f59fc01ff82a9ffc1b33e2aff82587c1af11ff00c145bfe096ff00b5afed3f67abfecd7e1fb0d6 -fc69e12bdbcd46dff687d07c2baecfe23f07fc55f8b1f0bfe387ecefa0fc3cb9d2fc3fe18f04f8ab4897c7de0dd5be1f683a768bf0934df8c9e3ef11fc619b48 -b3b6f025c007fa2e515f883ff040cff82ae68fff000559fd877c3fe36f135d7d97f69af811ff0008d7c1ff00da8346d4357f0249ac7897c7761e12d2ae6c7e3d -699e19f05db683ff0008e7c3ff008efe5eb3ae6856973e06f0768fa2f8ef40f8a5f0dbc270f88f45f86a9e2cd6bf6fa800a28a2800a28a2800afca0fda83fe0b -97ff000496fd8ebc549e05f8f1fb71fc1fd2fc6d1f883c69e13d6fc1df0e17c5df1fbc55e08f157c3cd46c747f17f867e27787be007863e27eaff0a7c41a4eaf -7e34b5d1be24d9f85751d4b51d3bc4163a4db5f5cf863c471695fcc17fc17d7fe0a87fb4ff00edcbfb79f863fe0849ff0004d3f1b788340b6f1a78826fd9c7f6 -abf18f852fbc3fe23f0afc57f157c457f036b1e2cf086a9e21f86fe10f887f15be1dfc1ffd987c2da478cb4efda9f57f0e6b5a3ea37da75d7c79f873f167e1ac -fe09f867772f8d3dff00e00ffc1941fb17dafc1af87b17ed4bfb4afed3faefed06de1f86e7e2b5f7c01f177c29f09fc1a83c55793dc5e5c68df0f74bf889f007 -c69e36baf0ff00872da7b5f0f43e26f126b167a8f8d27d2ee3c62fe13f0147aec7e05f0e007eafff00c451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe -0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff0004 -28ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff008214 -7fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3f -e8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47c -dff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd6 -6fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87 -ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3 -ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00 -f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00fa -1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd105400 -7fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882af1ff00 -8d7ff06937fc1173e2a78574ff000f7817e0f7c60fd9af57b3f105aeb371e3af829f1ffe236bde2ad5b4eb7d3b55b19bc27a859fed19a97c7ef04c7e1fbeb9d4 -6cf58bab9d2fc1da6f8a9351d0b4a8ac7c4d67a44dae697ac807edff00ecbffb6b7ec8ff00b6a7855fc63fb287ed1bf07fe3e69167e1ff0005f89bc4367f0e3c -71a26bde2af02e9df10f4ebed53c1d6df13bc0b15d278dbe15f88359b6d2759897c27f11fc3de16f15596a3a1788347d4b46b3d5f41d62c6cbe9faff003a3ff8 -2a9ffc1b33e2aff82587c1af11ff00c145bfe096ff00b5afed3f67abfecd7e1fb0d6fc69e12bdbcd46dff687d07c2baecfe23f07fc55f8b1f0bfe387ecefa0fc -3cb9d2fc3fe18f04f8ab4897c7de0dd5be1f683a768bf0934df8c9e3ef11fc619b48b3b6f025c7f53dff00040cff0082ae68ff00f0559fd877c3fe36f135d7d9 -7f69af811ff08d7c1ffda8346d4357f0249ac7897c7761e12d2ae6c7e3d699e19f05db683ff08e7c3ff8efe5eb3ae6856973e06f0768fa2f8ef40f8a5f0dbc27 -0f88f45f86a9e2cd6803f6fa8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a002bfce0ffe0cf0ff0085edfb447fc1537f6f9fdb5be217fc561ff0907ecffe3aff0085e9f12ffe28ef0ffdafe3b7ed41fb -457c3ff8b1a47fc51ba27f627d9ffe138ff8549f18b5ff00f8a3fc290f83bc33ff0008ff00f655d7fc23ff00dabe16d3752ff47cafe00ffe0c63ff009ca2ff00 -dd937fefdc5007f7f945145001451450014514500145145001451450014514500145145001451450014514500145145007f007ff000631ff00ce517feec9bff7 -ee2bfbfcafe00ffe0c63ff009ca2ff00dd937fefdc57f7f94005145140051451401fe707ff0006787fc2f6fda23fe0a9bfb7cfedadf10bfe2b0ff8483f67ff00 -1d7fc2f4f897ff00147787fed7f1dbf6a0fda2be1ffc58d23fe28dd13fb13ecfff0009c7fc2a4f8c5aff00fc51fe1487c1de19ff00847ffb2aebfe11ff00ed5f -0b69ba97fa3e57f007ff000631ff00ce517feec9bff7ee2bfbfca0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002 -bf803ff8318ffe728bff00764dff00bf715fdfe57f007ff0631ffce517feec9bff007ee2803fbfca28a2800a28a2800aff00383ff833c3fe17b7ed11ff00054d -fdbe7f6d6f885ff1587fc241fb3ff8ebfe17a7c4bff8a3bc3ff6bf8edfb507ed15f0ff00e2c691ff00146e89fd89f67ff84e3fe1527c62d7ff00e28ff0a43e0e -f0cffc23ff00d9575ff08fff006af85b4dd4bfd1f2bf803ff8318ffe728bff00764dff00bf71401fdfe514514005145140051451400514514005145140051451 -40051451400514514005145140051451401fc01ffc18c7ff003945ff00bb26ff00dfb8afeff2bf803ff8318ffe728bff00764dff00bf715fdfe5001451450014 -5145007f9c1ffc19e1ff000bdbf688ff0082a6fedf3fb6b7c42ff8ac3fe120fd9ffc75ff000bd3e25ffc51de1ffb5fc76fda83f68af87ff16348ff008a3744fe -c4fb3ffc271ff0a93e316bff00f147f8521f077867fe11ff00ecabaff847ff00b57c2da6ea5fe8f95fc01ffc18c7ff003945ff00bb26ff00dfb8afeff2800a28 -a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800afe00ff00e0c63ff9ca2ffdd937fefdc57f7f95fc01ff00c18c7ff3945f -fbb26ffdfb8a00feff0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a002bf803ff008318ff00e728bff764dffbf715fdfe57f007ff000631ff00ce517feec9bff7ee2803fbfca28a2800a28a2800a2 -8a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803f803ff008318ff00e728bff764dffbf715fdfe57f007ff000631ff00ce517feec9 -bff7ee2bfbfca0028a28a0028a28a00fe00ffe0c63ff009ca2ff00dd937fefdc57f7f95fc01ffc18c7ff003945ff00bb26ff00dfb8afeff2800a28a2800a28a2 -800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800afe00ff00e0c63ff9ca2ffdd937fefdc57f7f95fc01ff00c18c7ff3945ffbb26ffdfb -8a00feff0028a28a0028a28a002bf803ff008318ff00e728bff764dffbf715fdfe57f007ff000631ff00ce517feec9bff7ee2803fbfca28a2800a28a2800a28a -2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2803f803ff008318ff00e728bff764dffbf715fdfe57f007ff000631ff00ce517feec9bf -f7ee2bfbfca0028a28a0028a28a00fe00ffe0c63ff009ca2ff00dd937fefdc57f7f95fc01ffc18c7ff003945ff00bb26ff00dfb8afeff2800a28a2800a28a280 -0a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800afe00ff00e0c63ff9ca2ffdd937fefdc57f7f95fc01ff00c18c7ff3945ffbb26ffdfb8a -00feff0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00 -28a28a0028a2bc7fe35fc77f867fb3e78574ff0016fc4dd53c4105b6b9e20b5f09f857c35e06f007c42f8bdf133c79e2abad3b55d74f867e1b7c20f845e16f1c -fc56f897e20d3fc2de1ef1478e35cd1bc05e0cf11ea3e1df87be0ef1b7c43d7adb4df04f82fc55afe9001ec15fc01ffc18c7ff003945ff00bb26ff00dfb8afec -77c27f0f7e3efed05e2af0cfc4dfda4adfc41fb3d7827c07e20d1bc63f07bf66bf83bf1fbc696de2ad4f5bb2d46dbc41a478ebf6c2f891f09a6f01691e2cf106 -97a4343e02d57f636f0478a3e2ff00ec8fa66a27e246bdf103e29fed956de28f831a8fecfbfc717fc18c7ff3945ffbb26ffdfb8a00feff0028a28a0028a28a00 -28a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ff00304ff8352bfe0a8ffb09ff00c135ff00e1bcff00e1b5be39ff00c297ff00 -85d1ff000cb9ff000ad3fe2d97c62f88dff092ff00c2b9ff00868aff0084cbfe4937c3ef1dff0063ff0063ff00c277e14ff90fff00657f687f6aff00c4abeddf -61d4bec7fd7eff00c451dff0428ffa3e6ffcd66fdb0fff00a1f6bf902ff8352bfe0971fb09ff00c14a3fe1bcff00e1b5be067fc2e8ff00852fff000cb9ff000a -d3fe2e6fc62f873ff08d7fc2c6ff00868aff0084cbfe4937c41f027f6c7f6c7fc209e14ff90fff006aff0067ff00657fc4abec3f6ed4bed9fd7eff00c42e3ff0 -428ffa319ffcd99fdb0fff00a20a800ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0011477fc10a3fe8f9bff359bf6c3ffe87da3fe2171ff82147fd -18cffe6ccfed87ff00d10547fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a800ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff11477fc10a3fe8f -9bff00359bf6c3ff00e87da3fe2171ff0082147fd18cff00e6ccfed87ffd10547fc42e3ff0428ffa319ffcd99fdb0fff00a20a803f007fe0c63ff9ca2ffdd937 -fefdc57f7f95fc01ff00c18c7ff3945ffbb26ffdfb8afeff002800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800af -f304ff008352bfe0a8ff00b09ffc135ffe1bcffe1b5be39ffc297ff85d1ff0cb9ff0ad3fe2d97c62f88dff00092ffc2b9ff868aff84cbfe4937c3ef1dff63ff6 -3ffc277e14ff0090ff00f657f687f6affc4abeddf61d4bec7fe9f75fe609ff0006a57fc12e3f613ff82947fc379ffc36b7c0cff85d1ff0a5ff00e1973fe15a7f -c5cdf8c5f0e7fe11aff858dff0d15ff0997fc926f883e04fed8fed8ff8413c29ff0021ff00ed5fecff00ecaff8957d87edda97db003fafdff88a3bfe0851ff00 -47cdff009acdfb61ff00f43ed1ff0011477fc10a3fe8f9bff359bf6c3ffe87da3fe2171ff82147fd18cffe6ccfed87ff00d10547fc42e3ff000428ff00a319ff -00cd99fdb0ff00fa20a800ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff11477fc10a3fe8f9bff00359bf6c3ff00e87da3fe2171ff0082147fd18cff00 -e6ccfed87ffd10547fc42e3ff0428ffa319ffcd99fdb0fff00a20a800ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed7e00ffc18c7ff003945ff00bb26ff -00dfb8afdfeff885c7fe0851ff004633ff009b33fb61ff00f44157e00ffc18c7ff003945ff00bb26ff00dfb8a00feff28a28a0028a28a0028a28a0028a28a002 -8a28a0028a28a0028a28a0028a28a0028a28a0028a28a00ff304ff008352bfe0a8ff00b09ffc135ffe1bcffe1b5be39ffc297ff85d1ff0cb9ff0ad3fe2d97c62 -f88dff00092ffc2b9ff868aff84cbfe4937c3ef1dff63ff63ffc277e14ff0090ff00f657f687f6affc4abeddf61d4bec7fd7effc451dff000428ff00a3e6ff00 -cd66fdb0ff00fa1f6bf902ff008352bfe0971fb09ffc14a3fe1bcffe1b5be067fc2e8ff852ff00f0cb9ff0ad3fe2e6fc62f873ff0008d7fc2c6ff868aff84cbf -e4937c41f027f6c7f6c7fc209e14ff0090ff00f6aff67ff657fc4abec3f6ed4bed9fd7effc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a800ff0088a3bf -e0851ff47cdff9acdfb61fff0043ed1ff11477fc10a3fe8f9bff00359bf6c3ff00e87da3fe2171ff0082147fd18cff00e6ccfed87ffd10547fc42e3ff0428ffa -319ffcd99fdb0fff00a20a800ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0011477fc10a3fe8f9bff359bf6c3ffe87da3fe2171ff82147fd18cffe -6ccfed87ff00d10547fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a803f007fe0c63ff009ca2ff00dd937fefdc57f7f95fc01ffc18c7ff003945ff00bb -26ff00dfb8afeff2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800aff003c3ff831d3e29781348f8a7ff0513f82 -9a86bbf67f89bf103e1ffece3f14bc23e19feccd625fed7f027c1ff11fc5ff0009fc45d77fb660d3e5f0fd87fc23be20f8e3f0b74ffeccd4f55b2d6357ff0084 -a3ed5a169fa9d9689e22b9d23fd0f2bfcf0ffe0c74f85be04d5fe29ffc144fe35ea1a17da3e26fc3ff0087ff00b38fc2df08f89bfb4f588bfb23c09f183c47f1 -7fc59f11742fec683508bc3f7fff000917883e077c2dd43fb4f53d2af758d23fe117fb2e85a869965adf88adb5700ff43ca28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a2bcff00e297c58f859f03bc09aefc52f8d7f1 -2fe1ff00c1ff00865e17feccff00849be22fc52f197873e1ff00813c3bfdb7ac69fe1dd1bfb77c5de2cd4b48f0fe91fdafe20d5f4ad0b4cfed0d42dfedfac6a7 -a7e996be6dededb412fcc1e13d57f69ffda3bc55e19f1d4575e20fd91ff66ed03c41a378dbc13a4c3a7f87f50fda83f695d12d751b610687f1fbe1b7c68f829a -c691fb25fc1ff1369163ac6a93fc36f0f5e6bbfb5c78abc3fe37f87b7de31f1cfec33f147e19fc51f80fe3100f7ff8d7acfc65d37c2ba7e97f01fc27e1fd77e2 -278c3c416be14b1f15f8e6e603f0cfe0ee9d79a76aba8ea9f17be24f876cfc4de18f1b7c43f0ff00856db4b367a1fc2bf86d7d67e2af89ff0010b59f04f81756 -f19fc15f877aef8ebf683f849c07c14fd97fc2bf0e3c55a87c6ff882fe1ff8bdfb5b78c7c3f75e1cf889fb4b6a5e0bd3b43f154be15d4b51d2b5b93e0c7c24b3 -b8bef12eaff063f660f0c6afa269371e03f809a2f8bf5cd3a2d474d93e267c53f13fc5efda27c63f15be39fc47fa7e8a002bf803ff008318ff00e728bff764df -fbf715fdfe57f007ff000631ff00ce517feec9bff7ee2803fbfca28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a -2803f803ff008318ff00e728bff764dffbf715fdfe57f007ff000631ff00ce517feec9bff7ee2bfbfca0028a28a0028a28a00fe00ffe0c63ff009ca2ff00dd93 -7fefdc57f7f95fc01ffc18c7ff003945ff00bb26ff00dfb8afeff2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a280 -0afe00ff00e0c63ff9ca2ffdd937fefdc57f7f95fc01ff00c18c7ff3945ffbb26ffdfb8a00feff0028a28a0028a28a002bf803ff008318ff00e728bff764dffb -f715fdfe57f007ff000631ff00ce517feec9bff7ee2803fbfca28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -03f803ff008318ff00e728bff764dffbf715fdfe57f007ff000631ff00ce517feec9bff7ee2bfbfca0028a28a0028a28a00fe00ffe0c63ff009ca2ff00dd937f -efdc57f7f95fc01ffc18c7ff003945ff00bb26ff00dfb8afeff2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a -fe00ff00e0c63ff9ca2ffdd937fefdc57f7f95fc01ff00c18c7ff3945ffbb26ffdfb8a00feff0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028 -a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2b9ff001678b3c2be02f0af89bc75e3af13787fc17e09f05f87f59f1678c7c63e2cd674 -ef0e7857c27e15f0e69d73ac7887c4de26f10eb17367a4683e1fd0b48b3bcd5359d6754bcb5d3b4bd3ad6e6fafae60b682595403a0af1ff8d7f11fc55f0e3c2b -a7cbf0fbe18f883e2f7c49f18f882d7c13f0efc17a6b6a3a1f8565f156a5a76abaac7ae7c5bf89d6fe1ff12e91f063e0ff0086348d1356f10f8f7e24eb5a3eb9 -a8c5a769b1f83be16781be2f7c76f18fc29f82bf11fc03c27f1afe267ed4de2af0cde7c03d3fc41f0e7f65cd1bc41a378c6fbf6a9d62d7e1eead07ed55e15d1f -51b6bbd2fc1ffb27f85af355f166ae9f07fc7babe97aad8fc44fda67e2af817c1fa778c3e0d2693aa7ec51a77c54d0ff00681f02fed8bfb3f7dbf401f207c2df -d97758b7f1de85f1dff699f895ff000d01fb43f873fb4e1f09ea9e1fd2fc77f0b3f671f8496b77a3ea1e14b6bbf815fb2c6b3f173e2df84bc0ff00102e3c25ad -f8c34bf12fc7af18f8a7e287ed1daddafc53f8b7e00d3be307873f678f137867e03781febfa28a0028a28a002bf803ff008318ff00e728bff764dffbf715fdfe -57f9d1ff00c19cfacfc65fd9c3fe0a49ff000512fd827e23784fc3fe1bd5ecfe0feabacfc66d3ae6e60d7bc55e11f8cbfb20fc79d2fe0ca784f46f13f863c4da -8f826fbc3f1dcfc7ef8950789ae6c20f1241adea3a1784f50f0bf89acf48b6d453c4401fe8b94514500145145001451450014514500145145001451450014514 -5001451450014514500145145007f007ff000631ff00ce517feec9bff7ee2bfbfcafe00ffe0c63ff009ca2ff00dd937fefdc57f7f94005145140051451401fc0 -1ffc18c7ff003945ff00bb26ff00dfb8afeff2bfce8ffe0ce7d67e32fece1ff0524ff82897ec13f11bc27e1ff0deaf67f07f55d67e3369d737306bde2af08fc6 -5fd907e3ce97f0653c27a3789fc31e26d47c137de1f8ee7e3f7c4a83c4d7361078920d6f51d0bc27a8785fc4d67a45b6a29e22ff0045ca0028a28a0028a28a00 -28a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a002bf803ff008318ff00e728bff764dffbf715fdfe57f007ff000631ff00ce517feec9bff7 -ee2803fbfca28a2800a28a2800afe00ffe0c63ff009ca2ff00dd937fefdc57f7f95fe747ff000673eb3f197f670ff82927fc144bf609f88de13f0ff86f57b3f8 -3faaeb3f19b4eb9b9835ef157847e32fec83f1e74bf8329e13d1bc4fe18f136a3e09bef0fc773f1fbe2541e26b9b083c4906b7a8e85e13d43c2fe26b3d22db51 -4f11007fa2e51451400514514005145140051451400514514005145140051451400514514005145140051451401fc01ffc18c7ff003945ff00bb26ff00dfb8af -eff2bf803ff8318ffe728bff00764dff00bf715fdfe50014514500145145007f007ff0631ffce517feec9bff007ee2bfbfcaff003a3ff8339f59f8cbfb387fc1 -493fe0a25fb04fc46f09f87fc37abd9fc1fd5759f8cda75cdcc1af78abc23f197f641f8f3a5fc194f09e8de27f0c789b51f04df787e3b9f8fdf12a0f135cd841 -e24835bd4742f09ea1e17f1359e916da8a788bfd172800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800afe00ffe0c -63ff009ca2ff00dd937fefdc57f7f95fc01ffc18c7ff003945ff00bb26ff00dfb8a00feff28a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0 -028a28a0028a28a0028a28a0028a28a0028a28a0028a2be40ff8684f1dfc55f8a7ff000ae3f66ff01ff6df817c13f103fe11ff008d3fb5478c9747b9f813a2dd -7c3df11fd8be31fc0af84fa2e95e3bd13e26fc60fda02caf6de3f863a9789747f0fe9dfb38fc12f18dcfc4b5f1bfc5bf1b7c7afd9bbc71fb1bf8c803d7fe35fc -64d3be09f8574ff10dd7807e307c4fd5fc43e20b5f06f83bc0bf053e17f8abe25f8abc4be34d5b4ed56fbc3da26a179a3d927827e15f87f59b9d25b47baf8c3f -1dbc63f0a7e01781f51d434a97e27fc58f036917f16a83c03c27f013e32fc61f157867e29fed95e23f0fc11f84fc41a378a3c0ff00b1bfc21f13c1e3dfd983c1 -1e34f026a36da97c3cf8b9e33f897e2df831f09fe327ed19f183c3de2486ff00e20f850f8b745f875f00be17f881be15eade16fd9e354fda0ff678f067ed61e2 -6fb7e8a0028a28a0028a28a0028a28a002bfcf0ffe0b17fb347ed4ff00f0433ff82b868fff00059bfd8cf49f881e23fd997e3bfc40d43e287ed29e11f87761f1 -163f0e7877fb7bc6ff000c60fda33e0c7ed17f1175ed07e2afc3ff000f7c3ffdae7e2078be2f15fc22f14788923ff845fe29ebf7d65f0cbe19f8735af811f0c3 -c45acffa1e573fe2cf09f857c7be15f137817c75e19f0ff8d3c13e34f0feb3e13f18f83bc59a369de23f0af8b3c2be23d3ae747f10f867c4de1ed62daf348d7b -c3faee917979a5eb3a36a96775a76a9a75d5cd8df5b4f6d3cb13007f383f007fe0ec9ff823a7c4cf835f0f7c75f19be3a7883f66bf8ade21f0fc373f107e06f8 -9be0efed03f12f51f875e2ab79ee2c756d1adbe20fc2cf839e23f04f8d3c3f3dcdabea9e13f1369d79a6ea3ac785750d1afbc4fe13f0378a66d6bc15a07b07fc -451dff000428ff00a3e6ff00cd66fdb0ff00fa1f6ba0f167fc1b2fff000439f1a78abc4de31d63f611f0fd9eafe2cf106b3e26d52cfc27f1b7f69af017856d75 -1d7751b9d52fadbc33e05f02fc69f0e7827c17e1f82e6ea58b46f09f83bc3da17857c39a72db68fe1ed1b4bd22cecec60e7ffe2171ff0082147fd18cff00e6cc -fed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c -3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff -0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f6 -8ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc -451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe21 -71ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8 -ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bf -e0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428f -fa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cf -fe6ccfed87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff -003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f6bf087fe0b05ff0754e9df1bfc2a7 -f62cff0082310f8c1e2ff8adf19fc41a4fc36befda7f41f00f8abc35e2abed3bc6da77876d34bf04fec87e06bcb7b5f8c93fc60f1a7893c477bf0e65f1cf893c -07e09f15781351d12f64f82da1f89fc53e2ff02fc5af87bfbbdff10b8ffc10a3fe8c67ff003667f6c3ff00e882afb7ff00621ff82467fc13abfe09c7e2af1c78 -ebf635fd99fc3ff087c6df117c3fa7784fc55e31b9f1a7c50f899e2a9fc2ba6ea2dac0f0ce8de21f8bbe38f1eeafe13f0fea9abad86a9e26d1bc2579a1e9de2e -d4740f09df78a6db58b9f0778565d1c03e20ff0083737fe0947e3bff008254fec3baaf84fe3bdafc3fff00869afda03e202fc60f8b6be11d2347bbd63e1f68ff -00f089787bc3fe02f80be22f89da6dcdeffc2cdff8565f62f14f89a7bbd2ee7fe104f0df8efe287c45d1bc013789b45f33e23f8f3f7fa8a2800a28a2800a28a2 -803fcf0ffe0b17fb347ed4ff00f0433ff82b868fff00059bfd8cf49f881e23fd997e3bfc40d43e287ed29e11f87761f1163f0e7877fb7bc6ff000c60fda33e0c -7ed17f1175ed07e2afc3ff000f7c3ffdae7e2078be2f15fc22f14788923ff845fe29ebf7d65f0cbe19f8735af811f0c3c45acfeef7c01ff83b27fe08e9f133e0 -d7c3df1d7c66f8e9e20fd9afe2b7887c3f0dcfc41f81be26f83bfb40fc4bd47e1d78aade7b8b1d5b46b6f883f0b3e0e788fc13e34f0fcf736afaa784fc4da75e -69ba8eb1e15d4346bef13f84fc0de299b5af05681fd1f78b3c27e15f1ef857c4de05f1d7867c3fe34f04f8d3c3facf84fc63e0ef1668da7788fc2be2cf0af88f -4eb9d1fc43e19f13787b58b6bcd235ef0febba45e5e697ace8daa59dd69daa69d7573637d6d3db4f2c4df883e2cff8365ffe0873e34f15789bc63ac7ec23e1fb -3d5fc59e20d67c4daa59f84fe36fed35e02f0adaea3aeea373aa5f5b7867c0be05f8d3e1cf04f82fc3f05cdd4b168de13f07787b42f0af8734e5b6d1fc3da369 -7a459d9d8c001cff00fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff0036 -67f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb -61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0 -ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd -1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a -3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1f -f10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3b -fe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff00 -0428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082 -147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a -3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff4 -7cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd105401f8c3ff0005a5ff0083af3f -660d67f65ff881fb3d7fc12efe28fc60f157c76f8b7e1ff0ee951fed4be13f097883e0ef857e0af85754f106a69f112d7c3375f15fc35a0fc56bcf8c179e16d0 -63f0ce8da87863c03e18d3bc1fa77c4fb6f897e08f8d7a6fc49f8796fe1b3fabdff06cc7fc128f58ff008269fec3b73e36f8b76bf65fda6bf6caff00857ff183 -e2a68d3e91e3bf0c6b1f0b7c0961e126b9f843f017c5de19f19dcd87d97e207c35ff0084c7c79ae7c45bb8fc0de0ed634cf1dfc41f117c36d4a6f1868bf0d7c2 -9e2cd4feff00fd8ebfe08c1ff04c0fd81bc7779f14bf656fd907e1ff00c3ff0089b71f67fecff88be22d6fc7ff00183c77e12f2b47f13f876ebfe15d78bbe35f -8bfe227883e187f6f787fc65e22d0bc5dff0aeb50f0bff00c26ba3dec1a678bbfb6ecb4cd2a0b1fd3fa0028a28a0028a28a002bfcf0ffe0b17fb347ed4ff00f0 -433ff82b868fff00059bfd8cf49f881e23fd997e3bfc40d43e287ed29e11f87761f1163f0e7877fb7bc6ff000c60fda33e0c7ed17f1175ed07e2afc3ff000f7c -3ffdae7e2078be2f15fc22f14788923ff845fe29ebf7d65f0cbe19f8735af811f0c3c45acffa1e573fe2cf09f857c7be15f137817c75e19f0ff8d3c13e34f0fe -b3e13f18f83bc59a369de23f0af8b3c2be23d3ae747f10f867c4de1ed62daf348d7bc3faee917979a5eb3a36a96775a76a9a75d5cd8df5b4f6d3cb13007f383f -007fe0ec9ff823a7c4cf835f0f7c75f19be3a7883f66bf8ade21f0fc373f107e06f89be0efed03f12f51f875e2ab79ee2c756d1adbe20fc2cf839e23f04f8d3c -3f3dcdabea9e13f1369d79a6ea3ac785750d1afbc4fe13f0378a66d6bc15a07b07fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f6ba0f167fc1b2fff0004 -39f1a78abc4de31d63f611f0fd9eafe2cf106b3e26d52cfc27f1b7f69af017856d751d7751b9d52fadbc33e05f02fc69f0e7827c17e1f82e6ea58b46f09f83bc -3da17857c39a72db68fe1ed1b4bd22cecec60e7ffe2171ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3b -fe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff00 -0428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082 -147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a -3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff4 -7cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffc -d66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed -87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6 -c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1054007fc451dff0428ffa3e6ffcd66fdb0fff00a1f68ff88a3bfe0851ff0047cdff009acdfb61ff -00f43ed1ff0010b8ff00c10a3fe8c67ff3667f6c3ffe882a3fe2171ff82147fd18cffe6ccfed87ff00d1054007fc451dff000428ff00a3e6ff00cd66fdb0ff00 -fa1f68ff0088a3bfe0851ff47cdff9acdfb61fff0043ed1ff10b8ffc10a3fe8c67ff003667f6c3ff00e882a3fe2171ff0082147fd18cff00e6ccfed87ffd1054 -007fc451dff0428ffa3e6ffcd66fdb0fff00a1f6bf187fe0b4bff075e7ecc1acfecbff00103f67aff825dfc51f8c1e2af8edf16fc3fe1dd2a3fda97c27e12f10 -7c1df0afc15f0aea9e20d4d3e225af866ebe2bf86b41f8ad79f182f3c2da0c7e19d1b50f0c7807c31a7783f4ef89f6df12fc11f1af4df893f0f2dfc367f67bfe -2171ff0082147fd18cff00e6ccfed87ffd1055f5ff00ec75ff000460ff0082607ec0de3bbcf8a5fb2b7ec83f0ffe1ffc4db8fb3ff67fc45f116b7e3ff8c1e3bf -09795a3f89fc3b75ff000aebc5df1afc5ff113c41f0c3fb7bc3fe32f11685e2eff008575a8785ffe135d1ef60d33c5dfdb765a6695058807c01ff06cc7fc128f -58ff008269fec3b73e36f8b76bf65fda6bf6caff00857ff183e2a68d3e91e3bf0c6b1f0b7c0961e126b9f843f017c5de19f19dcd87d97e207c35ff0084c7c79a -e7c45bb8fc0de0ed634cf1dfc41f117c36d4a6f1868bf0d7c29e2cd4ff00a3ea28a0028a28a0028a28a00ff3c3ff0082c5fecd1fb53ffc10cffe0ae1a3ff00c1 -66ff00633d27e20788ff00665f8eff0010350f8a1fb4a7847e1dd87c458fc39e1dfedef1bfc3183f68cf831fb45fc45d7b41f8abf0ff00c3df0fff006b9f881e -2f8bc57f08bc51e2248ffe117f8a7afdf597c32f867e1cd6be047c30f116b3fbbdf007fe0ec9ff00823a7c4cf835f0f7c75f19be3a7883f66bf8ade21f0fc373 -f107e06f89be0efed03f12f51f875e2ab79ee2c756d1adbe20fc2cf839e23f04f8d3c3f3dcdabea9e13f1369d79a6ea3ac785750d1afbc4fe13f0378a66d6bc1 -5a07f47de2cf09f857c7be15f137817c75e19f0ff8d3c13e34f0feb3e13f18f83bc59a369de23f0af8b3c2be23d3ae747f10f867c4de1ed62daf348d7bc3faee -917979a5eb3a36a96775a76a9a75d5cd8df5b4f6d3cb137e20f8b3fe0d97ff00821cf8d3c55e26f18eb1fb08f87ecf57f16788359f136a967e13f8dbfb4d780b -c2b6ba8ebba8dcea97d6de19f02f817e34f873c13e0bf0fc173752c5a3784fc1de1ed0bc2be1cd396db47f0f68da5e9167676300073fff0011477fc10a3fe8f9 -bff359bf6c3ffe87da3fe228eff82147fd1f37fe6b37ed87ff00d0fb47fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b3 -3fb61fff004415001ff11477fc10a3fe8f9bff00359bf6c3ff00e87da3fe228eff0082147fd1f37fe6b37ed87ffd0fb47fc42e3ff0428ffa319ffcd99fdb0fff -00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f4415001ff0011477fc10a3fe8f9bff359bf6c3ffe87da3fe228eff82147fd1f37fe6b37ed87ff00d0fb -47fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff004415001ff11477fc10a3fe8f9bff00359bf6c3ff00e87d -a3fe228eff0082147fd1f37fe6b37ed87ffd0fb47fc42e3ff0428ffa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f4415001ff00 -11477fc10a3fe8f9bff359bf6c3ffe87da3fe228eff82147fd1f37fe6b37ed87ff00d0fb47fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7f -e0851ff4633ff9b33fb61fff004415001ff11477fc10a3fe8f9bff00359bf6c3ff00e87da3fe228eff0082147fd1f37fe6b37ed87ffd0fb47fc42e3ff0428ffa -319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61ff00f4415001ff0011477fc10a3fe8f9bff359bf6c3ffe87da3fe228eff82147fd1f37fe -6b37ed87ff00d0fb47fc42e3ff000428ff00a319ff00cd99fdb0ff00fa20a8ff00885c7fe0851ff4633ff9b33fb61fff004415001ff11477fc10a3fe8f9bff00 -359bf6c3ff00e87da3fe228eff0082147fd1f37fe6b37ed87ffd0fb47fc42e3ff0428ffa319ffcd99fdb0fff00a20a8ff885c7fe0851ff004633ff009b33fb61 -ff00f4415001ff0011477fc10a3fe8f9bff359bf6c3ffe87da3fe228eff82147fd1f37fe6b37ed87ff00d0fb47fc42e3ff000428ff00a319ff00cd99fdb0ff00 -fa20a8ff00885c7fe0851ff4633ff9b33fb61fff004415007e30ff00c1697fe0ebcfd98359fd97fe207ecf5ff04bbf8a3f183c55f1dbe2df87fc3ba547fb52f8 -4fc25e20f83be15f82be15d53c41a9a7c44b5f0cdd7c57f0d683f15af3e305e785b418fc33a36a1e18f00f8634ef07e9df13edbe25f823e35e9bf127e1e5bf86 -cfeaf7fc1b31ff0004a3d63fe09a7fb0edcf8dbe2ddafd97f69afdb2bfe15ffc60f8a9a34fa478efc31ac7c2df02587849ae7e10fc05f177867c677361f65f88 -1f0d7fe131f1e6b9f116ee3f03783b58d33c77f107c45f0db529bc61a2fc35f0a78b353fbfff0063aff82307fc1303f606f1dde7c52fd95bf641f87ff0ff00e2 -6dc7d9ff00b3fe22f88b5bf1ff00c60f1df84bcad1fc4fe1dbaff8575e2ef8d7e2ff00889e20f861fdbde1ff0019788b42f177fc2bad43c2ff00f09ae8f7b069 -9e2efedbb2d334a82c7f4fe800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800af1ff8d7f1fbe0 -d7ece9e15d3fc63f1abe21787fc05a46bde20b5f06783acf529a7bcf157c49f885aa69daaea9e1ef857f093c0ba3dbea5e36f8bdf183c636da1eab1780fe10fc -31f0f78b3e2678ff0051b39347f05f8535dd5da2b19380f137ed33a74bf196dbf67cf841e0ef107c5ef8a3a3f883c269f176f6cb4ef15681f06be03f82f52834 -6f13f8aafbe287c761e0fd7be1dd9fc60b3f877aef86bc45e01fd97f42d475cf8fbe399fe267c1bf15ebfe0bf875fb3778c7c55fb48fc3afa7e803e00ff855bf -177f6c9ff89afed29a17c40fd9f3f67297fe24f3fec39aaea7f04fc45e23f8eda3c7f3f88a4fdb5bc69f0eb50f8c1e1fb8f87fadf882cb4fb5f0a7ecdffb3cfc -6b8fc09e37f85961afe9ff00b5b78dfe38f833f683f177ec9df027edff0009f84fc2be02f0af867c0be05f0cf87fc17e09f05f87f46f09f83bc1de13d1b4ef0e -7857c27e15f0e69d6da3f87bc33e19f0f68f6d67a4683e1fd0b48b3b3d2f46d1b4bb3b5d3b4bd3ad6dac6c6da0b6822897a0a2800a28a2800a28a2800a28a280 -0a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a280 -0a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a280 -0a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a280 -0a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28af00f1ff00ed -2ff0b3c09f14fc15f0160d5bfe13bfda03c77ff08e6b5a67c0af005ff87358f8a7a3fc2cd63c477be1fd77f680f1af86b50d7b47ff008413f67ff027f63f88a6 -f11fc56f175de8fe1cd63c47a3d9fc1ff8752f8eff00680f1dfc2df849e3b00f5ff1678b3c2be02f0af89bc75e3af13787fc17e09f05f87f59f1678c7c63e2cd -674ef0e7857c27e15f0e69d73ac7887c4de26f10eb17367a4683e1fd0b48b3bcd5359d6754bcb5d3b4bd3ad6e6fafae60b6825957e20fed0fda3bf6c2ff46d33 -4cf881fb1d7ecb17dff12ff115d78cb42baf097ed93fb45f84b53ff89ac1a9fc27d43c23f14ad3c41fb0bfc3fd7fc3e9a168da96bbf14bc263f6e29ec7c6bf12 -fc33a7fc2dfd81be33fc27f875f1afc55f5ff8ff00e13fc2cf8aff00f0857fc2d2f869f0ff00e257fc2b5f881e1cf8b1f0ebfe13ff0006f873c63ff080fc53f0 -77db7fe111f897e0aff848b4dd47fe115f881e15fed1d43fe11cf19685f60f11e87f6fbdfeccd4ad7ed53eff0040a00f3ff85bf09fe167c0ef02685f0b7e0a7c -34f87ff07fe19785ff00b4ff00e119f875f0b7c1be1cf87fe04f0eff006deb1a8788b59fec2f08f84f4dd23c3fa47f6bf88357d575dd4ffb3f4fb7fb7eb1a9ea -1a9dd79b7b7b733cbe81451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -00514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514 -005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400515f207edd3fb7 -4fece3ff0004e8fd9c7c67fb507ed41e33ff008457e1ff00857cad3346d1b4c8ad751f1dfc4ef1dea36b7d73e19f85bf0b7c33737da77fc255f103c55fd9d7cf -a7e9ef7da768fa368fa76bbe34f1a6bbe15f87fe15f1678b342ff3a6fdadff006fcfdbcffe0e58fdae3c41f01ff67ed67e207ece1ff04ebf05fd8ac75bf064da -aea36be1583e1ea78ab4cf1069bf147f6a3d2fc2fadc1e1ff8bdf1b7c63e20f05e97adfc27f82e758d5bc2bf0fb51f0e5be9be08d52087c3bf193f684f11807f -4b7ff0527ff83b6bf61dfd8bbc76bf093f666f077fc37ffc40d3bfe117d43c59e29f85bf173c25e15fd9c745d1fc45a3eb5aa5ce99a17c77d1b46f8aff00f09f -7c40d0f6783e4d4f42f07780b53f0259daf8ab50d3751f8a5a77c40f05789bc016ff00cf8f8b3fe0a6dff073affc15674eb4d33e16d85efec6ff0004bc5de1ff -0085767a9f88be0af84eebf65bf0aea1a36bfe2ab9f19685f19bc2bf1b3e297887c57fb4d6b16577a65be9e7c62ffb377c45d5347d43e1ee93a569127816fbfe -13ad42d7c79fa51fb077fc120bf653fd846f346f1ef8734ed5fe297c7db1d22eec2e3e34f8fa556bcd2a5d7341d1b48f14c1f0ebc1962ebe18f01e91a94f61ab -be9976f0f893e23e9ba0f8b3c47e0fd47e266bfe1cd4eeace6fd53a00fe5d7fe180ffe0e3aff00a4c27c4aff00c581fedd9ffcc6d1ff000c07ff00071d7fd261 -3e257fe2c0ff006ecffe636bfa8aa2803f992f03fedc7ff07587fc13b7fe115b3d62e3c5bfb647c1ff0087fe2df18f84f4bf0f78e3c31e0efdaeff00e1697fc2 -41ff0009b5f58f89bc55e31f02cf6dfb73dcf84adaf6e65f14f83b59f18f8ebc19ff0008dfd87c13e02f10db699e1f367f0deeff00603fe09c3ff078cfece3fb -4478efc01f053f6e5f833ff0c93e2df16ffc20be11b6f8fde1df1c5af8b7f671bbf1ddfe8fab43e2cf117c45b7f13597867c5bfb3bfc3fd4bc5b69e1fd3fc233 -dd6abf1c747f0cdaf8b67baf8adf117c25e12f04eb3f10b52fbb6be06fdb63fe09a9fb29fedef67a65c7c70f096af63e3df0f690ba0785be2efc3fd617c33f11 -fc3da0b6bd65afdc6889797565acf863c4ba44b3c1a8dad969be3af0b78b2cfc371789bc577de1087c3daeebf7dac3807f653e13f167857c7be15f0cf8ebc0be -26f0ff008d3c13e34f0fe8de2cf0778c7c27ace9de23f0af8b3c2be23d3adb58f0f789bc33e21d1ee6f348d7bc3faee917967aa68dace977975a76a9a75d5b5f -58dccf6d3c52b7415fe545e0ff001fff00c1477fe0d8cfda3be1ef8dfe1d7c45f107ed11fb0e78efc413378afe1edf5e788fc25f027e2ceb3e20d1bc3d0fc40f -0d78a3c09fdade37d23e06fed1b1691e09d32f7e197c5fd20788358d53c39e12d2dc5d78efc13a6fc62f82b6dfe87dff0004cfff0082a9fec8ff00f055ef835a -dfc5ff00d96bc47e2082e7c17e206f0cfc4df845f126c344f0e7c65f859a8dd4fa91f0bdcf8dbc2ba0f88fc59a42f87fc7ba469775aef81bc59e1bf12f88fc2b -af416bae6809acc1e36f05f8f7c2be1500fd1fa28a2800a2bc7fe23fc7ef835f093c55f0c7c05f107e21787f41f889f1abc40de19f841f0d639a7d67e267c4fd -46cf51f0fd87896e7c05f0e740b7d53c6de2af0ffc3cb6f13e93e28f8b7e2cd1741bcf0afc1df87a752f89bf14f59f07fc3bd075df1469a7c6bf803f06bf68ff -000ae9fe02f8f1f0f7c3ff00167e1dd9f882d7c4d7df0d7c730cfaf7c33f176a3a7e9daad86976df127e1cde5c3f827e2a787f46b9d5878a343f09fc49d07c57 -e15d13e21683e09f89ba4e8d67f113e1f7817c51e1d00f983fe1777c53fdafff00e259fb19f8b7fe1577c12b7fddf8c3f6c5f1b7c1af11eb5ff09fd8eadfe8f6 -ba5fec31e18f884fe0ef097c4afb5784afe2f8a5e11fdb8bc45a17c69fd8dbfd33e1769ff0cbe1afeda3a678bfe3159fecff00f4ff00c14f811f0cff0067cf0a -ea1e12f865a5f8820b6d73c4175e2cf157897c73e3ff00885f17be2678f3c5575a7695a10f137c49f8bff177c53e39f8adf12fc41a7f85bc3de17f03e87acf8f -7c67e23d47c3bf0f7c1de09f879a0dce9be09f05f85740d23d828a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00 -28a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00 -28a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00 -28a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00 -28a28a0028a28a0028a28a002bcffe2cfc52f027c0ef859f12fe35fc52d77fe117f865f07fe1ff008cbe297c45f137f666b1adff00c23be04f87fe1cd4bc59e2 -ed77fb1bc3ba7eafe20d5ffb23c3fa46a1a87f66685a56a7ac5ffd9fecba669f7b7b2c16d2fa057f0b3ff077a7fc14f65bcd0bc29ff046ff00d9ef4ed5fc67f1 -53e306aff097e20fed12fe0f97c21e3194685278967d6fe0dfecd50783f4fd3fc53e3db4f8ade35f1ee91f0ebe335dc168be01f12e9be10d3be13da6863e2078 -63e36ebb67a0807e2dfed2df1fbe2a7fc1cf9ff0547f0f6a163e16f89bf07bf618fd9ffc3f75e18d1e0b5bff00ed7d47e1d7c2b9351d7b5e97c6de30b4d5bc47 -a87c32f0efed1bfb4c78834fd2fc2f73078174ed73fe11cf0af86fc1f6779a77c67f0ffecfde20f1b6bffd5b7c26f84df0e3e057c38f087c22f845e10d23c07f -0e3c07a447a2785bc2da2472ad9e9d66b2cb757134d71752dcea1aaeafaaea17379ac6bfafeb1797faf788f5ebfd4b5fd7f52d4b59d4afafae3e77fd803f648d -07f624fd94fe167c04d3a2d227f13e8da40d7fe2a788f484b3962f17fc59f12ac5a8f8e35b1abc1e1bf09ea1afe9163a8327853c11a9788f468bc4b6df0e3c35 -e0cd0b579a79f460f5f66500145145001451450014514500646bfa0683e2cd075bf0b78a744d23c4be18f12e91a9681e23f0e6bfa6d9eb3a0ebfa0eb367369da -be89ade91a8c373a7eaba46aba7dcdc58ea5a6df5bcf677d673cd6b750cb04ae8dfc827c54f0c7c53ff83737fe0a5df087f6e5fd953c23e2df1b7ecb7e2afed9 -d1b53f037887c4fe23d1fc17ac68fe33835ab5f88bfb2af8bfc6de1fd6750d5f50fecfd234fd27e2afc10f117c4cf0feb56b69e2af0ef83bc497fe1af8cbae7c -0ef18ea1ab7f6255e4bf1e7e0a7813f68ef835f12be05fc4cd3ffb43c11f143c25ab784f5bf2ad746bbd474bfed080ff0066f89bc3dfdbfa56b9a458f8b7c23a -bc761e29f076b377a46a1fd83e2ad1f47d6e0b67b9d3e1c007f417fb17fed79f06bf6f4fd97fe107ed71f002f7c4179f0a7e33f87ef759f0f45e2cd067f0d78a -b45d4742f106b1e0ef18f84fc4da3cb2dd5b41e20f05f8dbc39e23f08eb373a26a7aef85752d4744b9d4fc21e26f13f85af347f10ea7e7fe2cfda67e217c50f1 -5789be12fec57e0ef0ff008f7c53e0ef106b3e11f8a7f1ff00e2f69df133c2bfb2ff00c1ed474bd46e7c21ad41e0cf11e93e0f16dfb65fc60f01f8dadbc43a6f -8aff0067ef823e3cf09f857c33e20f853f153e11fed17fb50fec9df1593e1f689e38fe053fe081ff001abe23fec6ff00b73f8f3fe085bfb67fc58f14fc29f821 -f1abe2b5c78b74b9fe057c568be0bea7ad7ed3571f0e3c3b77f0cf491fb50f823c59f0bfe3a783fe14fed15e06d2bc053e91e15f86fe28f0efc63f15fc6af0af -ecf3f099ac7c2fe0af889fb4c7c31f89dfe955e13f09f857c05e15f0cf817c0be19f0ff82fc13e0bf0fe8de13f07783bc27a369de1cf0af84fc2be1cd3adb47f -0f7867c33e1ed1edacf48d07c3fa16916767a5e8da3697676ba7697a75adb58d8db416d04512807907c0bfd9ef47f82bff00094f88353f1e7c40f8ddf183e207 -f6241f123e3f7c626f024bf14fc73a3f843fb5e1f87fe11bab7f861e04f861f0cbc1bf0ffe1dd96bdaeaf83fe1d7c2df871e01f0259f88fc51f10be276a1e1dd -4fe307c5bf8bdf10bc7beff451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514 -51400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514 -51400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514 -51400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514 -5140057f9777fc13cbc6faf7fc1503fe0b93fb63ff00c14b35793c6f73e02f07eb9e3df15fc36d435ab6f871e10d7b44d0bc7967a87c0afd993e19fc45f08f86 -5b5382fae740fd97b45f11e95a9dff0084ef3526ff0084bfe1de9bab78b3e206bda86ad2cfe34ff412ff0082b17fca2cbfe0a59ff6601fb647feb3afc46afe1e -3fe0d9bd0341b6fd8c3e3578a6df44d220f13eb3fb4f788340d5fc470e9b6716bdaae83e1af853f09b51f0e689a96ae90aea17da4681a878b3c537da269b7571 -2d9e9579e25d7eeac61827d67517b900fe8da8a28a0028a28a0028a28a0028a28a0028a28a00fe553fe0e18f05fc47f813f1c7f627ff00828d7c1ad4f57d03c7 -bf0b7c53a1782ecbc6533782759d07c0bf11fe1578bee7e3afecfba9e9be0bf11e977f3eb9abdf6b2df14f55d6db59d3bc51e09b8b3f06681a4eb3a5e98f7de4 -78a7fd26ff0067af8d7e15fda53e017c0ffda33c0ba7f88349f04fc7ef83ff000d3e35f83b4bf165ae9d63e2ad37c2bf153c17a2f8ebc3da7f89ac747d575ed2 -2cfc4167a46bb676facdae97ae6b3a75bea31dcc363aaea36c915e4dfc3c7fc17d3c0be15f177fc1327e326bfe21d2ff00b4357f85fe2df83fe3af02ddfdbb51 -b4fec3f156a1f13fc31f0cef354f22c6f2dadb53f3bc11f113c63a27d87588750d3a3fed8fed28acd357d3f4bbfb1fe827fe0d97f1678abc69ff000439fd8475 -8f18f89bc41e2cd5ecfc3ff1b7c2767aa789b59d475ed46d7c2be02fda6be34f817c0be19b6bed52e6eae60f0ff82fc13e1cf0f783bc27a3452ae9de1cf0ae85 -a3787b47b6b3d234bb1b38003f77a8a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a2 -8a0028a28a00fce0ff0082c3f84fc2be34ff0082507fc148f47f18f867c3fe2cd22cff00620fda73c5967a5f89b46d3b5ed3ad7c55e02f83fe2df1d7817c4d6d -63aa5b5d5b41e20f05f8dbc39e1ef18f84f598a25d47c39e2ad0b46f10e8f7367abe97637907f15fff0006d0ff00c9897c58ff00b3b5f1dffea9df80d5fde87e -dbbf053c55fb4a7ec5ff00b5dfece7e05d43c3fa4f8dbe3f7ecc1f1f7e0a783b54f165d6a363e15d37c55f153e14f8b3c0be1ed43c4d7da3e95af6af67e1fb3d -5f5db3b8d66eb4bd0f59d46df4e8ee66b1d2b51b948ace6ff3beff008363be38e837df09bf68dfd9aee1748b0f13f85fe22695f1c74879bc4b67fdbde2cd07c7 -9e1ad17c05e235d37c1ef6b0ea0348f87da87c39f0b1d6fc4b6b7ba959b5e7c4dd034bbeb5d1275d3a6d7c03fa90a28a2800a28a2800a28a2800a28a2800a28a -2803f257fe0ba1ff0028b0fda8ff00ee897feb45fc23afdbcff835c7fe5051fb0cff00ddccff00eb61fed055fce97fc1c3bf1c741f86dff04ffd53e155c2e917 -fe27fda2be22781bc19a469937896cf4bd7b4cd07c07e21d3be2d788fc6fa6f875ed6ef50f14e91a46a1e0af0b782f5b5b53a6d9e8b79f11f40d42fb5749db4e -d1b5cfeb33fe085bf053c2bf007fe08fdff04eef02f83b50f106a5a46bbfb307c3bf8d77971e26bad3af3518fc55fb4a594bfb4678eb4fb69b4bd2b46b64f0fe -93e36f8a9e21d2fc276b2d9cda8d8f856cf46b1d6355d7757b7bed735100fd5fa28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800 -a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800 -a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800 -a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800 -a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800aff30bfdba9ecffe08d5ff00072bfc66f891e39d47c6fe1bfd9aff006b0b9f11fc71d77c45771782 -7e216bde25f871fb54aea5e29f1b6b09a6786eca2d77c3be08f87bfb65786bc530d96936da5587c598be1c7c2b823b6b5f88706b96d71f103fd3d2bf007fe0e4 -5ff8268ffc3c6ffe09c7e3dff8403c27ff000907ed35fb2fff00697c7dfd9fff00b2342fed5f18f8a3fe11fd2e5ff85adf05744fec5f01f8e3e206b7ff000b6f -e1fdbdeffc22df0e3c15ff0008ff00fc27bf1dbc1ff02ffe123d661d17c3f2ed00f2da2bf9e0ff008214ff00c14c7c09f1c7e0d7c3ff00d8cbe266b9fd87fb42 -7c1bf091f0cf807fb61f46b2d3be307c2bf08c171ff08e5b783bfb334dd1ed93c5bf0bfc116961e1cf10f84eee2bef11eb7e15f0cc5f13a0d67c53249f117fe1 -09fe87e800a28a2800a28a2800a28a2800a28afc95ff0082b17fc14c7c09fb05fc1ad5fc33a06b9fda1fb527c50f096b76bf06fc27a3be8d77a8f82ffb420bfd -1ad7e35f8c6db5ad375cd22c7c25e11d5e39ae7c3da56b7a36a1ff000b33c55a3cbe13d374f7d0f4ff001e789bc1601f925fb79e91ff000f65ff0082defec7df -f04e3f02eafe20f14fc32f03f8cb41f86bf1497c15ad7c2bd1751f0eff00686a2df133f6c4f18f803c6fac4bad595cf883e1dfc05f0659d8def87bc616da85f6 -8ff133e137893c25a27c39d57c41712d878bff00d49ebf8a2ff833bff604f835f07fe0d7c4dfdb1bc55e28f0fea9fb687c54f0fe99e19b8f85d65f10677f1a7c -00fd91fe21cfe1ff001b7c29b9f8a1f05e4d3b43d5fc11e20fda8f57f87c7e34f807c59e2a4f15689f103e01693f06fc65f08b59d1b4ef13fc4483c41fdaed00 -14514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500 -14514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500 -14514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500 -1451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145007f04ff00 -f072b7fc11fbe38fc07f8e2bff0005a8ff00826c6856de0ad43c156d278e3f6b2f0afc22d1ef2cfc6de1bf1b59de6bf7be2afdad87875eef55f0c78cbc11e32f -0c6ab1e81fb4ef86f4af0b697676d67a66b1f17be24681f11bc39f11be3df8cbc1543fe099dff058ff00835fb78ff61fc26f16587fc2a8fda92dbc249aa6b3e0 -cba3043e04f891a8e95fda4de26bcf829abdceb1a86afa87f67e91a7db78bf55f02f89a2b4f15787f46d4f508f46bef889a1f823c59e37b5fef9ebf919ff0082 -c7ff00c1af3a17ed9ff1c6f3f6d9fd803e2c785bf649fdacf52d5ec7c67e36f0d6ad69e25f0efc27f8a3f166dfc5fe1fd4e1f8d963e37f8791ea5e30f815f15a -df4f1e22f12f8b7c45e11f0278eacfe2a78f74ef0af886ef48f0278e757f891f14bc6001f4b515fc91fc1fff0082b8fedc5ff04d0f8857ff00b27ffc15cbe007 -c6dd4f56f0fe1740f16ebda3e8da1fc65d37c1de1883c4bf0fe1d5742b9d4a1d17c11fb517c3ff001478dfc0a6db40f8d765f1107f6fcf1f8fbc58bf13be2dc7 -3689a5e9bfb9bfb377fc1563f60bfda97fb1f4df877fb41784b42f1beb1ff08458c5f0cfe294aff0bfc76de2af1ef99068fe05d0ac3c6234cd23e2278b6db578 -64d0353b3f851adf8f74eb7d65f4f86df54bbb6d77c3d77ab007e87d1451400515f0efc6bff82967ec17fb3d7f6843f14bf6a8f849a7eafa3f8b6efc0baef853 -c27af3fc50f1df877c55a7ff006aa6a7a5f89be1ff00c2db5f19f8dfc37fd9173a2ea1a6eb37daee81a7e9da3eb296da26a77969abea1a7d95d7e0ff00ed01ff -0005eff8d9fb4fea3a0fecf9ff0004affd9dfe36ea1f193c71f66bdd2fc4779f0ef46f8a1f1966ff00846a0f11f8a7c69e1bf871f003c1b65f16f48d73cbf0b7 -87ecf58d4bc6babea3e20feccf0aa78ea23e00d2ae74fd23c7ba6807ece7fc1427fe0a87fb3e7fc13c741d1ed7c7b1eafe3ff8bbe32d2356d53c09f073c1973a -647af5dd9d9d9ea91e9be28f1bea9a85cac1e03f877a9789ec21f0b2f899ec75ed7afaf24d5ee3c1fe0bf19a7847c5d0e8bf9c5ff043aff82657ed1fff0005a2 -fdb2b4ff00f82ac7fc145bc2fe1ff157ec79e03f106af1781fe1e7c41f0feb127813e3e788bc2bfdbda6f84fe167c25f0249ad5b5b45fb397c0ef1bdcff6ff00 -8f35af134de2af077c4bf1de83ab7c29f1468ff17b5ff157ed0badf827f413fe0973ff0006a3f8ec7c65f05feda3ff00058ff8ada67ed09f112dbfb1fc5adfb2 -c5feb5acfc61d3b56f11d8f857c11ff08427ed37f197c51a9cf6df11bfe15cdcc1e20f0af89be08f8534cf16fc2cf124fe11f0519fe32fc44f85375e26f869e2 -1fee3e803c03e3a7ecb9f027f68fff00845af7e2c781bfb47c5be01fedbff8569f15bc1fe26f18fc28f8edf09bfe12afec88bc65ff000a77f680f84fe21f047c -6df843ff0009e699a1e9be1cf885ff000ad3c7fe15ff0084ff00c1c975e0af197f6e784b51d4b45bbf9fff00e12efdac7f653ff897fc43f0efc40fdba3e02d97 -fa74ff001ebc1b07c36b7fdb27c0b6b77ff133f114bf167f667f875f0ebe0dfc32f8dff0ff00c0365a6f89b55d37c67fb25daa7ed1de27b1d6fe1a7c14f077ec -2df183c75a078bbe3cf8ff00effa28039ff09f89b4ef1a7857c33e31d1edbc4167a478b3c3fa3789b4bb3f16784fc55e02f155ae9daee9d6daa58db789bc0be3 -ad1bc39e36f05f8820b6ba8a2d67c27e31f0f685e2af0e6a2b73a3f88746d2f57b3bcb183a0ae7fc59a36a3e23f0af89bc3da3f8b3c41e02d5f5ef0feb3a3697 -e3af09db7856f3c55e0bd4754d3ae6c6c7c59e19b3f1d7867c69e09baf107872e678b58d1adbc63e0ef1678567d46ceda2f10f8675dd21af34bbaf883fe17efe -d4ff00b3bffa2fed63f057fe175fc3f87fe6e7bf618f871f117c61f64f33f79ff1747f612fed9f8b7fb4d781fed1ad6b7e1cf87be09ff8669f187ede1ff0937f -6578bbe317c64ff865ff0087f6bfd97a6807dff4579ffc2df8b1f0b3e38f81342f8a5f053e25fc3ff8c1f0cbc51fda7ff08cfc45f85be32f0e7c40f02788bfb1 -358d43c3bacff6178bbc27a96afe1fd5ff00b23c41a46aba16a7fd9fa85c7d8358d3350d32ebcabdb2b9822f40a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a -28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a0028a28a00f1ff8d7fb3d7c02fda53c2ba7f817f68cf81df07fe3f782749f -105af8b34bf077c6bf869e0bf8a9e15d37c5563a76aba3d8f89b4ff0f78eb45d7b48b3f1059e91aeeb9a5daeb36f671ea36fa76b3aad8c37296da8de4537f305 -fb5eff00c19c7ff04d1f8d5a75eea3fb2d78abe307ec57e368fc3fa0e8da159e8de22d5be3f7c1a1a8d978aa5d535ff1678b3c0bf17f5fbcf8adaf78835ef0b5 -e5d7852dadbc37fb41f817c2ba34fa77867c449e19beb9b2f12d8f8c3fadda2803f803ff008818ff00eb28bff9a4dffe57147fc40c7ff5945ffcd26fff002b8a -feff0028a00fe48be00ffc19a5ff0004b9f867a8fc3df11fc66f1efed3ff00b4a6afe1ef0fc36df107c1de26f1ff00867e1a7c1af88be2ab8f0adc68fab6b36d -e1ef859e0cf0e7c64f05f87e0f125d3f8bfc27e19d3be3fea5a8e8f3e9fa3689e27f1678e748875a8b5ffe8fbf65ff00d8a7f647fd8afc2afe0efd943f672f83 -ff0000f48bcf0ff82fc33e21bcf871e07d1341f1578eb4ef879a75f697e0eb9f89de3a8ad5fc6df153c41a35b6adaccabe2cf88fe21f14f8aaf751d77c41ac6a -5acde6afaf6b17d7bf4fd1400514514005145140051451401f207c52fd937fb6fc77aefc6ef807f17be207ecd1f1eb5efeccbbf136bde14b8ff84cbe09fc60be -f0f68fa7e93a35bfed0ffb3478b2ee5f865f103fb4ecbc2ff0f3c25e34f8bdf0f53e0cfed937bf08be1df85be0d7c3efdacbe1878174fb6b0b7f7fff00848ffe -15afc2cff84bbe3a78ff00e1fe9dff00080fc3ff00f848fe317c52fb1ffc2a8f85961ff08af873fb4fe20f8fff00b3fc61e35f18ff00c2b5f87f6bf60d5fc45f -63f14fc45f157fc21de1c4f235bf1aeb9fd9d75aedd7a051400515f007fc30c7fc297ff8997ec0bf147fe18e7caff9a0dff084ff00c2d8fd84f55dff00b8ff00 -934aff0084bbe1cffc297fb0ff006af8cbc65ff1857f167f647ff858df18bc4fff000b2ff68eff0085f7fd9bff0008d5f741e13fdb7bc2ba378abc33f0a3f6ad -f03f883f63cf8c9e2af1068de08f075afc51d474ed53e017c6af1c6b9a8db786fc3da17ecdff00b52e8eb17c29f88fe20f88fe298bc471fc1ff811e3db8f837f -b6d78c3c17e18d43e2278a7f644f879e1b9227001f6fd14514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -14005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145 -1400514514005145140051451400514514005145140051451400514514005145140051451400573fe2cf09f857c7be15f137817c75e19f0ff8d3c13e34f0feb3 -e13f18f83bc59a369de23f0af8b3c2be23d3ae747f10f867c4de1ed62daf348d7bc3faee917979a5eb3a36a96775a76a9a75d5cd8df5b4f6d3cb13741450079f -ff00c239ff000ad7e167fc223f02fc01f0ff004eff008407e1ff00fc239f077e16fdb3fe1547c2cb0ff8457c39fd99f0fbc01fda1e0ff0578c7fe15afc3fb5fb -0691e1dfb6785be1d78abfe10ef0e279fa2782b5cfeceb5d0aebc03e16fedadf0b3c73e3bd0be0b7c46d03e207ecbbfb46f897fb4ffe119fd9e3f695d2bc39e0 -cf1df8f7fb1b47d43c57acff00c291f1a784fc57e3cf80bfb4f7fc22de05b4b1f1c7c49ff8659f8c7f1aff00e14ae8fe20d074af8dff00f0adfc677573e16b3f -afebcffe297c27f859f1c7c09aefc2df8d7f0d3e1ffc60f865e28feccff849be1d7c52f06f873e207813c45fd89ac69fe22d1bfb77c23e2cd3757f0feaff00d9 -1e20d234ad774cfed0d3ee3ec1ac699a7ea76be55ed95b4f1007a0515f007fc201fb64feccdfbff83fe35ff86d1f825a77cfff000a3fe3ef88ec7c2bfb53f82b -c3967f3ff63fc15fda9fec51f84be3bffc239e12d074cf08fc38f861fb62787745f8a7f13fe22f8ab59f88bfb41ffc14eb4ed32dfec23edff09eb3a8f88fc2be -19f10eb1e13f10780b57d7bc3fa36b3aa7817c5973e15bcf15782f51d534eb6bebef09f89af3c0be26f1a7826ebc41e1cb99e5d1f59b9f0778c7c59e159f51b3 -b997c3de26d77486b3d52e803a0a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2 -800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2 -800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2 -800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2 -800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800ae7fc59e19d3bc69e15f13783b58b9f1059e91e2cf0feb3e19d52f3c27e2cf15780bc -556ba76bba75ce977d73e19f1d781759f0e78dbc17e2082daea59746f16783bc43a178abc39a8adb6b1e1ed674bd5ececefa0e828a00f803fe33b3f66cff00ac -8c7c2583fec8efc02fdbb342f37ff0cefec4bfb49ff6a78975dffac7dffc29df83be07ff009baef8b5acff00c4d3e9ff00829f1fbe0d7ed17e15d43c63f057e2 -1787fc7ba4683e20baf0678c6cf4d9a7b3f157c36f885a5e9da56a9e21f857f16fc0bac5be9be36f843f183c1d6dae695178f7e10fc4ef0f784fe26780351bc8 -f47f1a785342d5d65b18fd82be60f8d7fb21fc1af8d9e2ad3fe29dd597883e187ed07e1ef0fdaf863c1dfb4e7c14d7a7f869f1f7c35e1fd2751d57c45e1ef07e -a1e36d1e27b6f8a9f07f46f1b6acdf106ebf66cf8eda2fc56fd97fc71e34d3f4ad5be27fc16f1cc76115a100fa7e8af3ff00b67fc2a8f859fda1e30f11fc40f8 -95ff000ad7e1ff00db3c53e2eff842bfe131f8a7e3eff843bc39e7eb7e23ff008575f02fc01a77fc255f103c55fd9d75a9ff00c215f077e16d87f6e788efff00 -b0be1f7802d7ed5a478750f85bf163e167c71f02685f14be0a7c4bf87ff183e1978a3fb4ff00e119f88bf0b7c65e1cf881e04f117f626b1a8787759fec2f1778 -4f52d5fc3fabff0064788348d5742d4ffb3f50b8fb06b1a66a1a65d7957b657304401e8145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -45145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001 -451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450015f207c52fd8ebc09e23f1deb -bf1fbe0bde7fc33bfed5ba97f666a173f1bbc056fac5a68ff14f58f0ce8fa7f873c27a67ed73f09bc33e27f05784bf6c0f87fa2f84b4f9fe1ee91a17c60b8bbf -1dfc2cf02789bc5f37ecc5f14bf677f8a7a968df157c39f5fd1401f007fc3597c53fd9f7fe259fb73fc21ff843bc2561fb8ff86c5f8056fe23f895fb2c5e58da -ff00a3ff00c255f1abc31f64bcf8dbfb177da34cd17c5df14be23ea7f14742f895fb1b7ece7f0ead746d3fc6dff050bf18f8b6ff00ec6df6ff0084fc59e15f1e -f857c33e3af02f89bc3fe34f04f8d3c3fa378b3c1de31f09eb3a7788fc2be2cf0af88f4eb6d63c3de26f0cf88747b9bcd235ef0febba45e59ea9a36b3a5de5d6 -9daa69d756d7d63733db4f14add0573fe2cb6f155e7857c4d67e05d67c3fe1cf1b5d787f59b6f077887c59e19d47c69e15d0bc553e9d731787b59f13783b47f1 -6780b57f16787f4bd5dacefb59f0ce97e3af05ea3aee9d05ce9763e2cf0e5cdd45ac5980741457c41e13fdaefc55e14f157867e1a7ed81f023c41fb36f8dbc5f -e20d1bc27e0ef891e13d7751f8f7fb1efc41f15789b51b6d3bc3de19f0cfed29a3f823c0dabfc34f106a1abf887c05f0e746d1bf6c0f837fb296a3f167e39f8c -adbe137ecc96dfb415cda45e20d43edfa0028a28a0028a28a0028a28a0028a28a0028a28a0028af00fdaabf697f859fb1bfece3f1a3f6a3f8d7ab7f647c32f81 -df0ff5ff001ff89bc8bff0e586b1aeff00645a9fec6f057847fe12cd7bc2fe1fd4fe207c40f104ba5781be1d787350f10e91ff00095f8efc45e1df0cdadec57b -abdb67f80bf8afff0005d2ff0082e3ff00c1667e307c71f84fff000479f86baefc14fd9e7c0da178aecaeee3c2b07c26f0d7c69bef86be3db6d2fc1be1bd6be2 -e7ed05f17bc4afe0ef859f17355b8d2bc59e2af85fe1efd9dfc4df0ffc7de108b54f1747a2f8bfe2c4df0917e2a69601fe8e7457f9ae7c20ff0082547fc1d4bf -12fc357daef8d3fe0a49f1c7f67bd52d35db9d26dfc17f183fe0a55fb4b6b5e25d4ec20b0d32f22f1458dd7c02d4fe38783a3d0af6e2feeb4ab6b7d4bc59a7f8 -95350d175392f3c3b69a5cba36a5ab7ab7fc3997fe0e77ff00a4cdeb7ff8b13ff8282fff003ada00ff0044da2bfcecbfe1ccbff073bffd266f5bff00c589ff00 -c1417ff9d6d1ff000e65ff00839dff00e9337adffe2c4ffe0a0bff00ceb6803fd1368aff003b2ff8732ffc1cefff00499bd6ff00f1627ff0505ffe75b47fc399 -7fe0e77ffa4cdeb7ff008b13ff008282ff00f3ada00ff44da2bfcecbfe1ccbff00073bff00d266f5bffc589ffc1417ff009d6d1ff0e65ff839dffe9337adff00 -e2c4ff00e0a0bffceb6803fd1368aff3b2ff008732ff00c1ceff00f499bd6fff001627ff000505ff00e75b47fc3997fe0e77ff00a4cdeb7ff8b13ff8282fff00 -3ada00ff0044da2bfcecbfe1ccbff073bffd266f5bff00c589ff00c1417ff9d6d1ff000e65ff00839dff00e9337adffe2c4ffe0a0bff00ceb6803fd1368aff00 -3b2ff8732ffc1cefff00499bd6ff00f1627ff0505ffe75b47fc3997fe0e77ffa4cdeb7ff008b13ff008282ff00f3ada00ff44da2bfcecbfe1ccbff00073bff00 -d266f5bffc589ffc1417ff009d6d1ff0e65ff839dffe9337adff00e2c4ff00e0a0bffceb6803fd1368aff3b2ff008732ff00c1ceff00f499bd6fff001627ff00 -0505ff00e75b47fc3997fe0e77ff00a4cdeb7ff8b13ff8282fff003ada00ff0044da2bfccd3e145dff00c1e0ff00f04feb4d77e2f91fb4cfc71f0659f883e1d6 -b3e38f86ff0015fe2d7c28fdbe6efc61a7681e27fb1daf84f42f00afc4ff008c1f1ef40f0ff899fc4b73a6fc45b9fd9dee3c0fe2a9fc30dff091eb3e26d261f0 -4e91e25f0bff0055bff0416ff82f4f857fe0b11e15f897e05f1d7c34f0ff00c0bfda8fe05f87fc09adf8c7c1da278ef4ed77c2bf16fc2baee9d168fe21f8b1f0 -9fc3dac4b67f11341f0fe83f112cef34bf19783754b3f1ae9df0bf4ef1afc1eb1bef8c3e39d73c732c5a5807f43d451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514 -50014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450073fe2 -cf09f857c7be15f137817c75e19f0ff8d3c13e34f0feb3e13f18f83bc59a369de23f0af8b3c2be23d3ae747f10f867c4de1ed62daf348d7bc3faee917979a5eb -3a36a96775a76a9a75d5cd8df5b4f6d3cb137c41ff000c9bf14ff67dff00899fec31f17bfe10ef09587eff00fe18ebe3edc788fe257ecb179636bfe91ff08afc -15f13fdaef3e36fec5df68d3345f08fc2df871a67c2ed77e257ec6dfb39fc3ab5d6750f04ffc13d3c63e2dbffb637dff00450073fe13b9f155e7857c3379e3ad -1bc3fe1cf1b5d787f46b9f18f87bc27e26d47c69e15d0bc553e9d6d2f88746f0cf8c758f09f80b57f16787f4bd5daf2c746f136a9e05f05ea3aee9d05b6a97de -13f0e5cdd4ba3d9f415cff008b3c27e15f1ef857c4de05f1d7867c3fe34f04f8d3c3facf84fc63e0ef1668da7788fc2be2cf0af88f4eb9d1fc43e19f13787b58 -b6bcd235ef0febba45e5e697ace8daa59dd69daa69d7573637d6d3db4f2c4df107fc2a4fda3bf653ff0089afece1e25f881fb56fc1f1c6bbfb31fed1ff001d6e -b5df8a7e05d1ecbfe279a9ebff00b31fed3ff14bc3fe2ff89bf14be207892f5bc556b27c17fdb6fe35eabe04f14788fc57f0ff004ff04fed55fb1bfc1ff84ba8 -782fc7e01f7fd15f307c14fdaf3e0d7c6cf156a1f0b2d6f7c41f0c3f683f0f787eebc4fe31fd98fe35e833fc34f8fbe1af0fe93a8e95e1df10f8c34ff04eb12b -db7c54f83fa378db565f87d6bfb49fc09d6be2b7ecbfe38f1a69faae93f0c3e34f8e63b096ecfd3f400514514005145140051451401fe7c7ff0007b87ed79a8c -fe2afd8e3f609d0ef7c4167a4697e1fd7bf6bcf89fa75ce83e156f0af88f51d7b51f12fc19f8137ba3789da5baf1b41e20f05db7873f68b83c4da0c30685e15b -ad3bc7be13d42e25f166af676a9e0bfeadbf645fd95be12fec4bfb387c2afd96fe06d9ebb69f0cbe11e8579a4e85278a35a9bc43e25d5eff005ad7355f1678b3 -c51e22d5648adade6d77c5fe31d7f5ff0014ead6fa3e9da2f86b4ed4358b8d3bc2be1df0e786ad34ad0b4efe4c7fe0e41f0bf86bc6ff00f07297fc1263c17e34 -f0ee85e2ff000778bfc0ff00b07f85fc59e13f1469361aff0086bc4fe1ad7ff6f6f8e7a56bbe1df11685aadbdde97ad685ad6977775a6eada4ea56b7361a9585 -cdc59de5bcd6f3491b7f6b940051451400514514005145140051451400514514005145140051451400514514005145140057f077fb64fc28d03fe09fdff0754f -fc13f3c71fb2fea3aef82b58fdabfe357ecf9f15fe2943ab4fa6f8cac23d7ff6bcfda37e267eceff00b48e9de1787c55a56ab3e91a17c4ff00035cf8b2fae20b -9b9d4b52f07f897c77e22bff00877aaf83f4ed37c11a47843fbc4afe22bfe0b35ff2b3bffc1193fec37ff04ecffd782fc52a00ff0044da28a2800a28a2800a28 -a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28 -a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28 -a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28 -a2800a28a2800a28a2800a28a2803c7fe35fc01f835fb45f8574ff00077c6af87be1ff001ee91a0f882d7c67e0ebcd4a19ecfc55f0dbe21697a76aba5f87be2a -7c24f1d68f71a6f8dbe10fc60f075b6b9aacbe03f8bdf0c7c43e13f899e00d46f24d63c17e2bd0b5758afa3e83ec7ff0aa3e167f67f83fc39f103e257fc2b5f8 -7ff63f0b7847fe135ff84c7e29f8fbfe10ef0e791a27873fe162fc74f1fe9dff000957c40f157f675ae99ff09afc62f8a561fdb9e23bff00eddf883e3fb5fb56 -afe224f40a2803c03e05fed47f027f68ff00f84a6cbe13f8e7fb47c5be01fec4ff008597f0a7c61e19f18fc28f8edf09bfe12afed797c1bff0b8bf67ff008b1e -1ef047c6df843ff09e699a1ea5e23f87dff0b2fc01e15ff84ffc1c96be35f06ff6e784b51d375abbf7faf00f8e9fb37f813e3cff00c22daceabac7c40f877f13 -7e1dff006dcdf0b7e35fc1df1beb1f0efe29fc3cbad7bfb22eb50b4b5d574c925f0ffc40f87fa9f883c2fe07f1678c3e02fc69f0cfc4ff00d9c7e2b788fe1dfc -3eb9f8c7f07fe2259783742d3ecfe7ff00f84fff006c9fd99bf71f183c15ff000da3f04b4ef93fe1787c02f0e58f857f6a7f057872cfe4fed8f8d5fb2c7db63f -097c77ff008473c25a0ea7e2ef88ff0013ff0063bf1168bf14fe27fc45f1568df0ebf67cff008262e9da65bfdb8007dff4573fe13f167857c7be15f0cf8ebc0b -e26f0ff8d3c13e34f0fe8de2cf0778c7c27ace9de23f0af8b3c2be23d3adb58f0f789bc33e21d1ee6f348d7bc3faee917967aa68dace977975a76a9a75d5b5f5 -8dccf6d3c52b74140051451401fe7d1ff070d7fcacefff000477ff00b027fc13e7ff005e0bf1aebfb3fafe303fe0e1aff959dffe08efff00604ff827cffebc17 -e35d7f67f40051451400514514005145140051451400514514005145140051451400514514005145140057f115ff00059aff00959dff00e08c9ff61bff008276 -7febc17e2957f6eb5fc457fc166bfe5677ff0082327fd86ffe09d9ff00af05f8a5401fe89b451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450 -01451450073fe2cd1b51f11f857c4de1ed1fc59e20f016afaf787f59d1b4bf1d784edbc2b79e2af05ea3aa69d736363e2cf0cd9f8ebc33e34f04dd7883c39733 -c5ac68d6de31f0778b3c2b3ea3676d17887c33aee90d79a5dd7c41ff000d43f14ff668ff008917edcfe13fb5784ad7fd2ffe1b83e017c2cf11d87ecb02c6ff00 -fd3fecff001abe17ff00c2cef8e9f1b7f642ff00840b4cb3f176a1f11fe2f7c51d4fc63fb1b786fe1d783b46f8a5e36fdacbe1af8b7e257fc33ffc3cfbfe8a00 -e7fc27e2cf0af8f7c2be19f1d7817c4de1ff001a7827c69e1fd1bc59e0ef18f84f59d3bc47e15f167857c47a75b6b1e1ef137867c43a3dcde691af787f5dd22f -2cf54d1b59d2ef2eb4ed534ebab6beb1b99eda78a56e82be20f167ec43e15d1bc55e26f8affb2978e3c41fb1e7c64f15788359f1bf8c6ebe1769da76a9f00be3 -578e35cd46e7c49e21d77f690fd96b5868be14fc47f107c47f14c5e1c93e307c77f015bfc1bfdb6bc61e0bf0c69ff0efc2dfb5dfc3cf0dc92a0fa7ff00e135ff -00843be167fc2c5f8e97bf0ffe147fc22bf0ff00fe135f8c5a87fc27ff00da3f0b3e1aff0061f873fb77e20deffc2d2f187873e1afdbfe1ff83becbabcff00f0 -9ff8a7c23e01fb578734eff848b5bf0e78577dd6996001fc147fc1c35ff2b3bffc11dffec09ff04f9ffd782fc6bafecfebf8c0ff008386bfe5677ff823bffd81 -3fe09f3ffaf05f8d75fd9fd0014514500145145001451450014514500145145001451450014514500145145001451450015fc457fc166bfe5677ff0082327fd8 -6ffe09d9ff00af05f8a55fdbad7f115ff059aff959dffe08c9ff0061bff82767febc17e295007fa26d1451400514514005145140051451400514514005145140 -05145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140 -05145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140 -05145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140 -051451400514514005145140051451401fe751ff0005c8f84ff0b3e077fc1c79ff00045af85bf053e1a7c3ff0083ff000cbc2fa27ec19ff08cfc3af85be0df0e -7c3ff027877fb6ff00e0a3df1efc45acff00617847c27a6e91e1fd23fb5fc41abeabaeea7fd9fa7dbfdbf58d4f50d4eebcdbdbdb99e5fedfebf8c0ff008386bf -e5677ff823bffd813fe09f3ffaf05f8d75fd9fd0014514500145145001451450014514500145145001451450014514500145145001451450015fc457fc166bfe -5677ff0082327fd86ffe09d9ff00af05f8a55fdbad7f115ff059aff959dffe08c9ff0061bff82767febc17e295007fa26d145140051451400514514005145140 -05145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140 -05145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140 -05145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140051451400514514005145140 -0514514005145140051451400514514005145140051451401fe7d1ff00070d7fcaceff00f0477ffb027fc13e7ff5e0bf1aebfb3fafe28ffe0e41f14786bc11ff -0007297fc1263c69e34f11685e10f077843c0ffb07f8a3c59e2cf146ad61a0786bc31e1ad03f6f6f8e7aaebbe22f116bbaadc5a697a2e85a2e976975a96adab6 -a5756d61a6d85b5c5e5e5c436f0c922ff6b940051451400514514005145140051451400514514005145140051451400514514005145140057f115ff059aff959 -dffe08c9ff0061bff82767febc17e2957f6eb5fc457fc166bfe5677ff82327fd86ff00e09d9ffaf05f8a5401fe89b45145001451450014514500145145001451 -45001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451 -45001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451 -45001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451450014514500145145001451 -450014514500145145001451450014514500145145007f047ff07b07ec5fe2af11e9dfb25fedddf0fbe1078835ed23c05e1ff1d7c08fda5be2fe8d7ba8ea9a77 -82fc2b79e2af096bff00b34e97e2cf0d7f6c4f6de1cf0fdd78dbc69f1cb4db6f1fd8f866cf4e9fc55e2cf0cf827c6be296d5f5ef84fa15d7f441fb007edfff00 -003fe0a1ff00003c0ff19be0cf8e3c0da878a350f03782f5ef8bff0007f41f1a5b7897c6bf013c6be25b6d4edb53f00f8fb4cb9d33c35e28b0fecff14786bc63 -a1f85bc53ae783bc35a4fc4bd27c35378d7c150dff0085efec6fa4fd5cf8fdf007e0d7ed4bf06be217ecf9fb41fc3df0ff00c54f837f153c3f37867c75e05f13 -433be9dabe9cf3dbdf59dcdb5e58dc59eafa1788342d5ecf4ef11784fc59e1ed4749f157837c55a4e8de2bf0a6b3a3789346d2f54b4fe267f692ff008349ff00 -6b2f829fb4578a3e32ff00c11a7f6e7b5fd9b3c19f111fc55617be03f1d7c54f8f5f063c6ff097c11aa5c783b5cb3f863e1bf8ddf06b4bf893e2bf8cfe03bdf1 -5e9bab5edbd8f8ff0048f07eb5e17d17c2ff000f2cfc43af7c60f1645ab78ea300febba8afe303fe21e5ff00839dff00e9311a27fe2c1bfe0a0bff00ce528ff8 -8797fe0e77ff00a4c4689ff8b06ff8282fff00394a00fecfe8afe303fe21e5ff00839dff00e9311a27fe2c1bfe0a0bff00ce528ff88797fe0e77ff00a4c4689f -f8b06ff8282fff00394a00fecfe8afe303fe21e5ff00839dff00e9311a27fe2c1bfe0a0bff00ce528ff88797fe0e77ff00a4c4689ff8b06ff8282fff00394a00 -fecfe8afe303fe21e5ff00839dff00e9311a27fe2c1bfe0a0bff00ce528ff88797fe0e77ff00a4c4689ff8b06ff8282fff00394a00fecfe8afe303fe21e5ff00 -839dff00e9311a27fe2c1bfe0a0bff00ce528ff88797fe0e77ff00a4c4689ff8b06ff8282fff00394a00fecfe8afe303fe21e5ff00839dff00e9311a27fe2c1b -fe0a0bff00ce528ff88797fe0e77ff00a4c4689ff8b06ff8282fff00394a00fecfe8afe303fe21e5ff00839dff00e9311a27fe2c1bfe0a0bff00ce528ff88797 -fe0e77ff00a4c4689ff8b06ff8282fff00394a00fecfe8afe303fe21e5ff00839dff00e9311a27fe2c1bfe0a0bff00ce528ff88797fe0e77ff00a4c4689ff8b0 -6ff8282fff00394a00fecfe8afe303fe21e5ff00839dff00e9311a27fe2c1bfe0a0bff00ce528ff88797fe0e77ff00a4c4689ff8b06ff8282fff00394a00fecf -ebf842f899f1060ff82bf7fc1d27fb1b9fd8f0e85e3bf865fb17f8abe00df78a3e356897fe29f137c37f11fc3bfd937e2c6adfb47fc5af884dad683e06bab7f0 -e6857be31f15dffecf7f0d35e967d63e1bfc45f888ff000e754d23e24c3e1af8ada1dee9decbaeff00c1b1bff0701fc72b4b3f855fb4cffc157bc17e33f809e2 -ef107856dbe29e85aefed69fb6afc6db43e15d3bc4fa46b575acd9fc25f881f0c3c2de0cf881e20f0bcda6dbf89fc2be19f1178afc25a76a1e27d1f48493c59e -17709af69ffd497fc122bfe0871fb23ffc120fc2be22bef8512f883e2cfed07f11fc3fa0687f14ff0068cf88f67a245e2abfd3b4fd3b439b5af037c31d0f49b3 -4b6f857f07f59f1b69371e3a6f04c7aa78afc55a9ea32f87ecfe227c49f88f1fc3ef87d71e1a00fd9ea28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a2800a28a28 -00a28a2800a28a2800a28a2800a28a2803ffd9 -}}}}} -{\pard\sl-183\slmult0\par - -{\pard\plain \li3440\ql{\f11\fs23 t1}\tx4480\tab{\f11\fs23 t2}\tx5560\tab{\f11\fs23 t2}\tx6600\tab{\f11\fs23 t3}\par} -} -{\pard\sl-386\slmult0\par - -{\pard\plain \li2460\ql{\f11\fs24 Scheduler}\par} -} -{\pard\sl-200\slmult0\par -\pard\sl-335\slmult0\par - -{\pard\plain \li3820\ql{\f11\fs24 t0}\par} -} -{\pard\sl-204\slmult0\par - -{\pard\plain \li3280\ql{\f11\fs24 Active Process}\par} -} -{\pard\sl-200\slmult0\par -\pard\sl-350\slmult0\par - -{\pard\plain \li2480\ql{\f24\b\fs24 Figure 1: Scheduler-Process Interaction}\par} -} -{\pard\sl-132\slmult0\par - -{\pard\plain \li0\sl243\slmult1 \ri0\nooverflow\qj{\f11\fs24 As Figure 1 shows, the scheduler co-ordinates the entire simulation run, effectively monitoring the active and passive processes to enable it to determine when, and which, process to activate next. A simulation application cannot affect the scheduler directly, but can do so only indirectly through modifications of the scheduler queue.}\par} -} -{\pard\sl-255\slmult0\par - -{\pard\plain \li0\sl244\slmult1 \ri20\nooverflow\qj{\f8\i\fs24 Note{\i0 : the scheduler queue can be structured in a variety of ways, including a linear list or a} \i0 tree. The implementation of the queue can depend upon the type of simulation being conducted. For example, a simulation which involves many (concurrent) processes would suffer from using a linear ordered queue which would typically have insertion and removal routines with overheads proportional to the number of entries in the queue. However, a linear}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft1\shptop843\shpright2879\shpbottom843{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6096}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 1}}}} -\sect\sbknone -\marglsxn1440\margrsxn3700\cols1\colno1\colw6760 -{\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-381\slmult0\par - -{\pard\plain \li0\ql{\f15\fs32 {\super 2}{\fs19 In SIMULA the currently active process is not removed from the head of the queue.}}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1420\margt585\margb1196\marglsxn1440\margrsxn1420\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -} -{\pard\sl-305\slmult0\par - -{\pard\plain \li0\sl238\slmult1 \ri20\nooverflow\ql{\f11\fs24 list may work best for a low number of simulation processes. {\i JavaSim} comes with a suite of scheduler queue implementations which can be chosen when the system is built.}\par} -} -{\pard\sl-254\slmult0\par - -{\pard\plain \li0\ql{\f24\b\fs24 3.1.1 Scheduler class interface}\par} -} -{\pard\sl-252\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri20\nooverflow\ql{\f11\fs24 The scheduler is an instance of the {\f23 Scheduler} class. It is the responsibility of the application programmer to ensure that only a single instance of this class is created.}\par} -}{\shp{\*\shpinst\shpleft-64\shptop242\shpright-44\shpbottom262 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop252\shpright9073\shpbottom252{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop242\shpright9092\shpbottom262 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop260\shpright-54\shpbottom488{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop260\shpright9082\shpbottom488{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-258\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f26\fs20 public class Scheduler}\par} -} -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl224\slmult1 \ql{\f26\fs20 public static double CurrentTime ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop7\shpright-54\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li480\ql{\f26\fs20 public static synchronized void reset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-204\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-204\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl223\slmult1 \ql{\f26\fs20 public static synchronized boolean simulationReset ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop7\shpright-54\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-197\slmult0\par - -{\pard\plain \li480\sl239\slmult1 \ql{\f26\fs20 public static synchronized void startSimulation ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 \};}\par} -}{\shp{\*\shpinst\shpleft-64\shptop23\shpright-44\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop33\shpright9073\shpbottom33{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop23\shpright9092\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-293\slmult0\par - -{\pard\plain \li0\sl232\slmult1 \ri20\nooverflow\ql{\f11\fs24 The scheduler maintains the simulation clock, and the current value of this clock is obtained by invoking the {\f23 CurrentTime()} method.}\par} -} -{\pard\sl-261\slmult0\par - -{\pard\plain \li0\sl241\slmult1 \ri0\nooverflow\ql{\f11\fs24 To enable multiple simulation runs to occur within a single application, it is possible to reset the scheduler and simulation clock by calling the {\f23 reset()} method. This causes the scheduler to remove all processes (simulation objects) currently registered on the scheduler queue and to invoke a class specific method on each of them which resets their states (detailed in the next section). Once this is finished the simulation is ready for an additional run. A suspended process is informed that it has been \ldblquote reset\rdblquote by having the method it called to originally suspend itself (i.e., place itself on the scheduler queue) raise the \f23 RestartSimulation {\f11 exception, which the object should catch. It must then perform any} \f11 work necessary to put itself back in a state ready for restarting the simulation, and should then suspend itself again before the simulation can be restarted (typically by calling {\f23 Cancel}.)}\par} -} -{\pard\sl-257\slmult0\par - -{\pard\plain \li0\ql{\f9\b\fs28 3.2 Simulation processes}\par} -} -{\pard\sl-254\slmult0\par - -{\pard\plain \li0\sl244\slmult1 \ri20\nooverflow\qj{\f11\fs24 As was described in the previous chapter, {\i JavaSim} supports the process-oriented approach to simulation, where each simulation entity can be considered a separate process. Therefore in \i JavaSim {\i0 the entities within a simulation are represented by} process objects{\i0 . These are Java} \i0 objects which have an independent thread of control associated with them at creation time, allowing them to convey the notion of activity necessary for participating in the simulation.}\par} -} -{\pard\sl-253\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ri20\nooverflow\qj{\f11\fs24 In keeping with the object-oriented paradigm, and to make development of process objects simpler, classes inherit the process functionality from the appropriate base class ({\f23 Process}). This class defines all of the necessary operations for the simulation system to control the simulation entities within it, and for them to interact with it and each other.}\par} -} -{\pard\sl-261\slmult0\par - -{\pard\plain \li0\sl238\slmult1 \ri20\nooverflow\ql{\f11\fs24 At any point in simulation time, a process can be in one (and only one) of the following states:}\par} -} -{\pard\sl-153\slmult0\par -{{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls5\ilvl0\rin20\nooverflow\lin860\itap0 \sl231\slmult1 {\plain\f10\i\fs24 active{\i0 : the process has been removed from the head of the scheduler queue and its} \i0 actions are being executed. }\par\pard\sl-32\slmult0\par -{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls5\ilvl0\rin20\nooverflow\lin860\itap0 \sl231\slmult1 {\plain\f10\i\fs24 suspended{\i0 : the process is on the scheduler queue, scheduled to become active at a} \i0 specified simulation time. }\par\pard\sl-32\slmult0\par -{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls5\ilvl0\rin20\nooverflow\lin860\itap0 \sl231\slmult1 {\plain\f8\i\fs24 passive{\i0 : the process is not on the scheduler queue. Unless another process brings it} \i0 back on to the queue it will not execute any further actions. }\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1420\margt585\margb1440\marglsxn1440\margrsxn1420\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -} -{\pard\sl-320\slmult0\par -{{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls6\ilvl0\rin0\nooverflow\lin860\itap0 \sl236\slmult1 {\plain\f10\i\fs24 terminated{\i0 : the process is not on the scheduler queue and has no further actions to} \i0 execute. Once a process has been terminated it cannot be made to execute further in the same simulation run. }\par} -} -{\pard\sl-128\slmult0\par - -{\pard\plain \li0\ql{\f11\fs24 A process which is either active or suspended is said to be {\i scheduled}.}\par} -} -{\pard\sl-252\slmult0\par - -{\pard\plain \li0\ql{\f24\b\fs24 3.2.1 SimulationProcess class interface}\par} -} -{\pard\sl-252\slmult0\par - -{\pard\plain \li0\sl234\slmult1 \ri0\nooverflow\qj{\f11\fs24 The {\f23 SimulationProcess} class definition is shown below. Before considering how to build an example class derived from {\f23 SimulationProcess} we shall discuss the methods which it provides.}\par} -} -{\pard\sl-257\slmult0\par - -{\pard\plain \li0\ri0\nooverflow\qj{\f11\fs24 Because the constructors are protected, it is not possible to create an instance of the \f23 SimulationProcess {\f11 class, i.e., classes must be derived from this. Processes are threaded} \f11 objects, and typically each thread package schedules execution of threads according to a priority. By default, all processes in {\i JavaSim} are created with the same priority, but this can be altered by calling the {\f23 setPriority} method of {\f23 java.lang.Thread}. Note, however, that priorities have no effect on a simulation run.}\par} -}{\shp{\*\shpinst\shpleft-45\shptop241\shpright-25\shpbottom261 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-26\shptop251\shpright9073\shpbottom251{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop241\shpright9092\shpbottom261 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop260\shpright-35\shpbottom488{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop260\shpright9082\shpbottom488{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-257\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 public class SimulationProcess extends Thread}\par} -} -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 public final double Time ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 public synchronized SimulationProcess next_ev ()}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li2880\sl235\slmult1 \ql{\f26\fs19 throws SimulationException, NoSuchElementException;}\par} -}{\shp{\*\shpinst\shpleft-45\shptop23\shpright-25\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-26\shptop33\shpright9073\shpbottom33{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop23\shpright9092\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1420\margt585\margb1440\marglsxn1440\margrsxn1460\cols1\colno1\colw9000 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -}{\shp{\*\shpinst\shpleft-45\shptop289\shpright-25\shpbottom309 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-26\shptop299\shpright9073\shpbottom299{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop289\shpright9092\shpbottom309 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop308\shpright-35\shpbottom536{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop308\shpright9082\shpbottom536{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-305\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 public final double evtime ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop7\shpright-35\shpbottom215{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom215{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 public void ActivateBefore (SimulationProcess p)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-204\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-204\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-4\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri0\nooverflow\ql\fi3598 {\f26\fs19 throws SimulationException, RestartException; public void ActivateAfter (SimulationProcess p) throws SimulationException,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-415\shpright-35\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li6600\sl223\slmult1 \ql{\f26\fs20 RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 public void ActivateAt (double AtTime, boolean prior)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-5\slmult0\par - -{\pard\plain \li5040\sl233\slmult1 \ri1560\nooverflow\ql\fi-839 {\f26\fs19 throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-415\shpright-35\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-4\slmult0\par - -{\pard\plain \li5520\sl233\slmult1 \ri1080\nooverflow\ql\fi-5516 {\f26\fs19 public void ActivateAt (double AtTime) throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-415\shpright-35\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 public void ActivateDelay (double Delay, boolean prior)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-5\slmult0\par - -{\pard\plain \li5040\sl233\slmult1 \ri1560\nooverflow\ql\fi-839 {\f26\fs19 throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-415\shpright-35\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-4\slmult0\par - -{\pard\plain \li5760\sl233\slmult1 \ri840\nooverflow\ql\fi-5756 {\f26\fs19 public void ActivateDelay (double Delay) throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-415\shpright-35\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl235\slmult1 \ql{\f26\fs19 public void Activate () throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop7\shpright-35\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f26\fs20 public void ReActivateBefore (SimulationProcess p)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-5\slmult0\par - -{\pard\plain \li0\sl221\slmult1 \ri0\nooverflow\ql\fi3598 {\f26\fs20 throws SimulationException, RestartException; public void ReActivateAfter (SimulationProcess p)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-414\shpright-35\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-414\shpright9082\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-5\slmult0\par - -{\pard\plain \li0\sl221\slmult1 \ri0\nooverflow\ql\fi3598 {\f26\fs20 throws SimulationException, RestartException; public void ReActivateAt (double AtTime, boolean prior)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-414\shpright-35\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-414\shpright9082\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-5\slmult0\par - -{\pard\plain \li5040\sl233\slmult1 \ri1560\nooverflow\ql\fi-839 {\f26\fs19 throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-415\shpright-35\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-4\slmult0\par - -{\pard\plain \li5760\sl233\slmult1 \ri840\nooverflow\ql\fi-5756 {\f26\fs19 public void ReActivateAt (double AtTime) throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-415\shpright-35\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-4\slmult0\par - -{\pard\plain \li4200\sl233\slmult1 \ri1560\nooverflow\ql\fi-4197 {\f26\fs19 public void ReActivateDelay (double Delay, boolean prior) throws SimulationException,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-415\shpright-35\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li5040\sl223\slmult1 \ql{\f26\fs20 RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-5\slmult0\par - -{\pard\plain \li6000\sl233\slmult1 \ri600\nooverflow\ql\fi-5996 {\f26\fs19 public void ReActivateDelay (double Delay) throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-415\shpright-35\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl235\slmult1 \ql{\f26\fs19 public void ReActivate () throws SimulationException, RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop7\shpright-35\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-216\slmult0\par - -{\pard\plain \li0\sl221\slmult1 \ri3480\nooverflow\ql{\f26\fs20 public void Cancel () throws RestartException; public void terminate ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-414\shpright-35\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-414\shpright9082\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 public synchronized boolean idle ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop7\shpright-35\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-216\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri5520\nooverflow\ql{\f26\fs19 public boolean passivated (); public boolean terminated ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-415\shpright-35\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop7\shpright-35\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-216\slmult0\par - -{\pard\plain \li0\sl221\slmult1 \ri600\nooverflow\ql{\f26\fs20 public static SimulationProcess current () throws SimulationException; public static double CurrentTime ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-414\shpright-35\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-414\shpright9082\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom423{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom423{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-192\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 public static void mainSuspend ();}\par} -} -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 public static void mainResume () throws SimulationException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop7\shpright-35\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-197\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 protected SimulationProcess ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop7\shpright-35\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-216\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri960\nooverflow\ql{\f26\fs19 protected void set_evtime (double time) throws SimulationException; protected void Hold (double t) throws SimulationException,}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-415\shpright-35\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-4\slmult0\par - -{\pard\plain \li0\sl221\slmult1 \ri2400\nooverflow\ql\fi4557 {\f26\fs20 RestartException; protected void Passivate () throws RestartException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-414\shpright-35\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-414\shpright9082\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop8\shpright-35\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop8\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-216\slmult0\par - -{\pard\plain \li0\sl221\slmult1 \ri3000\nooverflow\ql{\f26\fs20 protected void Suspend () throws RestartException; protected void Resume ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-414\shpright-35\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-414\shpright9082\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 \};}\par} -}{\shp{\*\shpinst\shpleft-45\shptop23\shpright-25\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-26\shptop33\shpright9073\shpbottom33{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop23\shpright9092\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-35\shptop-203\shpright-35\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -\sect\sbknone -\marglsxn1440\margrsxn1420\cols1\colno1\colw9040 -{\pard\sl-293\slmult0\par - -{\pard\plain \li0\sl241\slmult1 \ri0\nooverflow\qj{\f11\fs24 There are five ways to activate a currently {\i passive} process, which results in it being brought to the correct position in the scheduler queue corresponding to its associated simulation time. If this is the head of the queue then it will become the active process.}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1420\margt585\margb1440\marglsxn1440\margrsxn1420\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -} -{\pard\sl-278\slmult0\par -{{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls7\ilvl0\rin0\nooverflow\lin860\itap0 {\plain\f23\fs24 Activate(){\f11 : this activates the process at the current simulation time.} }\par\pard\sl-32\slmult0\par -{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls7\ilvl0\rin0\nooverflow\lin860\itap0 \sl225\slmult1 {\plain\f23\fs24 ActivateBefore(SimulationProcess proc){\f11 : this positions the process} \f11 in the scheduler queue before {\f23 proc}, and gives it the same simulation time. If {\f23 proc} is not present then a {\f23 SimulationException} will be thrown. }\par\pard\sl-36\slmult0\par -{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls7\ilvl0\rin20\nooverflow\lin860\itap0 \sl225\slmult1 {\plain\f23\fs24 ActivateAfter(SimulationProcess proc){\f11 : this positions the process in} \f11 the scheduler queue after {\f23 proc}, and gives it the same simulation time. If {\f23 proc} is not present then a {\f23 SimulationException} will be thrown. }\par\pard\sl-36\slmult0\par -{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls7\ilvl0\rin0\nooverflow\lin860\itap0 \sl233\slmult1 {\plain\f23\fs24 ActivateAt(double AtTime, boolean prior){\f11 : the process is inserted} \f11 into the scheduler queue at the position corresponding to the simulation time specified by {\f23 AtTime}. The default for this time is the current simulation time. The \f23 prior {\f11 parameter is used to determine whether this process should be inserted} \f11 before or after any processes with the same simulation time which may already be present in the queue. The default is {\f23 false}. }\par\pard\sl-39\slmult0\par -{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls7\ilvl0\rin20\nooverflow\lin860\itap0 \sl231\slmult1 {\plain\f23\fs24 ActivateDelay(double AtTime, boolean prior){\f11 : the process is} \f11 activated after a specified delay ({\f23 AtTime}). The process is inserted into the queue with the new simulation time, and the {\f23 prior} parameter is used to determine its ordering with respect to other processes in the queue with the same time. The default is {\f23 false}. }\par} -} -{\pard\sl-142\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri0\nooverflow\qj{\f11\fs24 There are correspondingly five {\f23 ReActivate} methods, which work on either passive or scheduled processes. These will not be described in detail as they have similar signatures to their {\f23 Activate} counterparts and work in the same way.}\par} -} -{\pard\sl-261\slmult0\par - -{\pard\plain \li0\sl234\slmult1 \ri0\nooverflow\qj{\f23\fs24 Hold(double period) {\f11 schedules the currently active process for re-activation after the} \f11 simulated delay of {\f23 period} time. If this is invoked by the object (e.g., through a publicly available method) when it is not the current active process then it does nothing.}\par} -} -{\pard\sl-233\slmult0\par - -{\pard\plain \li0\ql{\f23\fs24 evtime() {\f11 returns the time at which the process is scheduled for activation.}}\par} -} -{\pard\sl-258\slmult0\par - -{\pard\plain \li0\sl227\slmult1 \ri0\nooverflow\ql{\f23\fs24 next_ev() {\f11 returns a reference to the next process to be scheduled for execution. If the} \f11 queue is empty then {\f23 null} is returned.}\par} -} -{\pard\sl-236\slmult0\par - -{\pard\plain \li0\ql{\f11\fs24 The {\i static} method {\f23 current()} returns a reference to the currently active process.}\par} -} -{\pard\sl-258\slmult0\par - -{\pard\plain \li0\sl230\slmult1 \ri20\nooverflow\qj{\f11\fs24 The current simulation time can be obtained by using either the {\f23 CurrentTime()} or \f23 Time() {\f11 methods. The former method is} {\i \f10 static} {\f11 and as such can be invoked without an} \f11 instance of the {\f23 SimulationProcess} class.}\par} -} -{\pard\sl-260\slmult0\par - -{\pard\plain \li0\sl238\slmult1 \ri0\nooverflow\qj{\f23\fs24 Cancel() {\f11 removes the process from the scheduler queue or suspends it if it is the currently} \f11 active process. In either case, the process is set to the {\i passive} state. {\f23 Passivate()} functions similarly but only works on the currently active process, i.e., if it is invoked by the object (e.g., through a publicly available method) when it is not the current active process then it does nothing.}\par} -} -{\pard\sl-262\slmult0\par - -{\pard\plain \li0\sl237\slmult1 \ri20\nooverflow\qj{\f23\fs24 terminate() {\f11 removes the process from the scheduler queue or it is suspended if it is} \f11 currently active. The process is then set to the {\i terminated} state, and can take no further part in this simulation run.}\par} -} -{\pard\sl-259\slmult0\par - -{\pard\plain \li0\sl227\slmult1 \ri20\nooverflow\ql{\f23\fs24 idle() {\f11 returns} false {\f11 if the process is either active or scheduled to become active.} \f11 Otherwise {\f23 true} is returned.}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1420\margt585\margb1440\marglsxn1440\margrsxn1420\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -} -{\pard\sl-305\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri20\nooverflow\ql{\f23\fs24 passivated() {\f11 and} terminated() {\f11 indicate whether the process is in the} {\i \f8 passive} {\f11 or} \i \f8 terminated {\i0 state, respectively.}}\par} -} -{\pard\sl-258\slmult0\par - -{\pard\plain \li0\sl236\slmult1 \ri0\nooverflow\qj{\f11\fs24 Because {\f23 SimulationProcess} extends the {\f23 java.lang.Thread} class it is necessary for the simulation class to provide an implementation of the {\f23 run} method which will do the actual work for the process. If this method ever returns then the thread is destroyed. However, in order for {\i JavaSim} to detect the termination of the thread, the {\f23 terminate()} method {\i must} be used instead.}\par} -} -{\pard\sl-256\slmult0\par - -{\pard\plain \li0\ql{\f24\b\fs24 3.2.2 Example}\par} -} -{\pard\sl-252\slmult0\par - -{\pard\plain \li0\sl237\slmult1 \ri20\nooverflow\qj{\f11\fs24 To illustrate how a simulation process could be implemented from the {\f23 Process} class we shall consider the example of a queue of customers arriving at a bank. For this example, this involves three classes:}\par} -} -{\pard\sl-112\slmult0\par -{{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls8\ilvl0\rin0\nooverflow\lin860\itap0 {\plain\f23\fs24 Customer{\f11 : instances of this class represent the customers in the queue.} }\par\pard\sl-32\slmult0\par -{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls8\ilvl0\rin20\nooverflow\lin860\itap0 \sl227\slmult1 {\plain\f23\fs24 Queue{\f11 : the instance of this class (}queue{\f11 ) is the queue into which customers are} \f11 places. }\par\pard\sl-2\slmult0\par -{\listtext{\pard\plain {\f19\fs23 � }\tab}}\pard\plain -\f19\fs23 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls8\ilvl0\rin0\nooverflow\lin860\itap0 \sl239\slmult1 {\plain\f23\fs23 Arrivals{\f11 : this is the process which creates new customers for insertion in} queue{\f11 .} }\par} -} -{\pard\sl-140\slmult0\par - -{\pard\plain \li0\sl227\slmult1 \ri20\nooverflow\ql{\f11\fs24 The implementations of the {\f23 Customer} and {\f23 Queue} classes are not important to this example. The implementation of the {\f23 Arrivals} class could be:}\par} -}{\shp{\*\shpinst\shpleft-64\shptop244\shpright-44\shpbottom264 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop254\shpright9073\shpbottom254{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop244\shpright9092\shpbottom264 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop263\shpright-54\shpbottom491{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop263\shpright9082\shpbottom491{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-260\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 class Arrivals : public Process}\par} -} -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 public:}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-5\slmult0\par - -{\pard\plain \li480\sl233\slmult1 \ri6640\nooverflow\ql{\f26\fs19 Arrivals () \{\}; ~Arrivals () \{\};}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-415\shpright-54\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop7\shpright-54\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li480\ql{\f26\fs20 void Body ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 \};}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop7\shpright-54\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-197\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 void Arrivals::Body ()}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl224\slmult1 \ql{\f26\fs20 for (;;)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl224\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-4\slmult0\par - -{\pard\plain \li960\sl221\slmult1 \ri4600\nooverflow\ql{\f26\fs20 Customer* c = new Customer(); queue.insert(c);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-414\shpright-54\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-414\shpright9082\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li960\sl224\slmult1 \ql{\f26\fs20 Hold(20.0);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl224\slmult1 \ql{\f26\fs20 \}}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 \}}\par} -}{\shp{\*\shpinst\shpleft-64\shptop22\shpright-44\shpbottom42 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop32\shpright9073\shpbottom32{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop22\shpright9092\shpbottom42 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-288\slmult0\par - -{\pard\plain \li0\ql{\f9\b\fs28 3.3 Starting, ending and controlling a simulation}\par} -} -{\pard\sl-254\slmult0\par - -{\pard\plain \li0\sl243\slmult1 \ri0\nooverflow\qj{\f11\fs24 When a {\f23 SimulationProcess} object is created in {\i JavaSim} it starts in the {\i passive} state, and must be activated before it can take part in the simulation. This is typically performed by the first process object to which control is transferred after the simulation is initially started. When writing {\i JavaSim} applications it is typical for the main thread to create a single \i controller process {\i0 which is responsible for co-ordinating the entire simulation run. This} \i0 creates and activates all of the simulation entities and the scheduler, and provides methods for suspending the main thread, thus allowing the controller object to execute, and exiting the application. An example controller interface is shown below, and the implementations for its methods will be described in the following sections:}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1420\margt585\margb1440\marglsxn1440\margrsxn1420\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -}{\shp{\*\shpinst\shpleft-64\shptop289\shpright-44\shpbottom309 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop299\shpright9073\shpbottom299{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop289\shpright9092\shpbottom309 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop308\shpright-54\shpbottom536{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop308\shpright9082\shpbottom536{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-305\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 public class Controller extends SimulationProcess}\par} -} -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 public Controller ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop7\shpright-54\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 public void run ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-204\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-204\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop7\shpright-54\shpbottom215{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom215{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-216\slmult0\par - -{\pard\plain \li0\sl222\slmult1 \ri6520\nooverflow\ql{\f26\fs20 public void await (); public void exit (); \};}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-625\shpright-54\shpbottom-416{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-625\shpright9082\shpbottom-416{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-414\shpright-54\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-414\shpright9082\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft-64\shptop23\shpright-44\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop33\shpright9073\shpbottom33{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop23\shpright9092\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-293\slmult0\par - -{\pard\plain \li0\sl234\slmult1 \ri0\nooverflow\qj{\f11\fs24 Because {\f23 Controller} is a simulation process itself, it derives from {\f23 Simulationrocess} and defines a {\f23 run()} method, which will do the actual controlling of the simulation. It also provides the following methods:}\par} -} -{\pard\sl-152\slmult0\par -{{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls9\ilvl0\rin0\nooverflow\lin860\itap0 \sl221\slmult1 {\plain\f23\fs24 await(){\f11 : this method is called within the main application thread and suspends it,} \f11 effectively transferring control the {\f23 Controller} process. }\par\pard\sl-1\slmult0\par -{\listtext{\pard\plain {\f19\fs24 � }\tab}}\pard\plain -\f19\fs24 \qj\fi-858\nowidctlpar\jclisttab\tx860\faauto\ls9\ilvl0\rin0\nooverflow\lin860\itap0 \sl233\slmult1 {\plain\f23\fs24 exit(){\f11 : this method is called to exit the simulation.} }\par} -} -{\pard\sl-134\slmult0\par - -{\pard\plain \li0\ql{\f24\b\fs24 3.3.1 Suspending the main thread}\par} -} -{\pard\sl-252\slmult0\par - -{\pard\plain \li0\sl241\slmult1 \ri0\nooverflow\qj{\f11\fs24 When a threaded application is started it is important to realise that before any application threads are created, the Java virtual machine has already created one to run the application. This thread must be suspended before any simulation threads can run.}\par} -} -{\pard\sl-234\slmult0\par - -{\pard\plain \li0\ql{\f11\fs24 The {\f23 await()} method of {\f23 Controller} is responsible for suspending this thread:}\par} -}{\shp{\*\shpinst\shpleft-64\shptop242\shpright-44\shpbottom262 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop252\shpright9073\shpbottom252{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop242\shpright9092\shpbottom262 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop261\shpright-54\shpbottom489{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop261\shpright9082\shpbottom489{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-258\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 public void await ()}\par} -} -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-5\slmult0\par - -{\pard\plain \li480\sl233\slmult1 \ri4720\nooverflow\ql{\f26\fs19 Resume(); SimulationProcess.mainSuspend();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-415\shpright-54\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 \}}\par} -}{\shp{\*\shpinst\shpleft-64\shptop23\shpright-44\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop33\shpright9073\shpbottom33{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop23\shpright9092\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-293\slmult0\par - -{\pard\plain \li0\sl234\slmult1 \ri20\nooverflow\qj{\f11\fs24 It must first resume the thread associated with the {\f23 Controller} instance (since \f23 Controller {\f11 is a} SimulationProcess {\f11 it starts in the passive state). This thread does} \f11 not execute until the main thread is suspended by the call to the static {\f23 mainSuspend} method.}\par} -} -{\pard\sl-235\slmult0\par - -{\pard\plain \li0\ql{\f11\fs24 The code for {\f23 main} would then become:}\par} -}{\shp{\*\shpinst\shpleft-64\shptop242\shpright-44\shpbottom262 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop252\shpright9073\shpbottom252{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop242\shpright9092\shpbottom262 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop261\shpright-54\shpbottom489{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop261\shpright9082\shpbottom489{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-258\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 public static void main (String[] args)}\par} -} -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-5\slmult0\par - -{\pard\plain \li480\sl221\slmult1 \ri4720\nooverflow\ql{\f26\fs20 Controller c = new Controller(); c.await();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-414\shpright-54\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-414\shpright9082\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 \}}\par} -}{\shp{\*\shpinst\shpleft-64\shptop23\shpright-44\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop33\shpright9073\shpbottom33{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop23\shpright9092\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-288\slmult0\par - -{\pard\plain \li0\ql{\f24\b\fs24 3.3.2 Exiting the application}\par} -} -{\pard\sl-252\slmult0\par - -{\pard\plain \li0\sl238\slmult1 \ri0\nooverflow\qj{\f11\fs24 In order to exit a simulation application, the application can call {\f23 System.exit}. However, if it is only necessary to resume the main thread, then this can be accomplished by using the static {\f23 mainResume} method of the {\f23 SimulationProcess} class. Once the main thread has been resumed, it will continue to execute from the point it was suspended. In the example above, this would be from within the {\f23 await} method. The thread which calls {\f23 mainResume} can then suspend or terminate itself, depending upon the application requirements.}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1440\margt585\margb1440\marglsxn1440\margrsxn1440\cols1\colno1\colw9020 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -}{\shp{\*\shpinst\shpleft-64\shptop289\shpright-44\shpbottom309 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop299\shpright9073\shpbottom299{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop289\shpright9092\shpbottom309 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop308\shpright-54\shpbottom536{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop308\shpright9082\shpbottom536{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-305\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 public void exit ()}\par} -} -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl224\slmult1 \ql{\f26\fs20 if (resumeMainRequired)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl224\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-4\slmult0\par - -{\pard\plain \li960\sl233\slmult1 \ri4340\nooverflow\ql{\f26\fs19 SimulationProcess.mainResume(); Suspend();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-415\shpright-54\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl223\slmult1 \ql{\f26\fs20 \}}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl224\slmult1 \ql{\f26\fs20 else}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li960\sl224\slmult1 \ql{\f26\fs20 System.exit(0);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 \}}\par} -}{\shp{\*\shpinst\shpleft-64\shptop22\shpright-44\shpbottom42 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop32\shpright9073\shpbottom32{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop22\shpright9092\shpbottom42 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-287\slmult0\par - -{\pard\plain \li0\ql{\f24\b\fs24 3.3.3 Controlling the simulation}\par} -} -{\pard\sl-252\slmult0\par - -{\pard\plain \li0\sl238\slmult1 \ri0\nooverflow\ql{\f11\fs24 The controller\rquote s body creates and activates the other simulation entities and the scheduler, and controls the overall simulation (e.g., resetting the system between consecutive runs).}\par} -}{\shp{\*\shpinst\shpleft-64\shptop243\shpright-44\shpbottom263 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop253\shpright9073\shpbottom253{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop243\shpright9092\shpbottom263 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop261\shpright-54\shpbottom489{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop261\shpright9082\shpbottom489{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-258\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f26\fs20 public void run ()}\par} -} -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl224\slmult1 \ql{\f26\fs20 sc = new Scheduler();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom125{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom125{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop127\shpright-54\shpbottom576{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop127\shpright9082\shpbottom576{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-225\slmult0\par - -{\pard\plain \li480\ql{\f26\fs20 // create and activate any other simulation entities}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop127\shpright-54\shpbottom455{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop127\shpright9082\shpbottom455{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-244\slmult0\par - -{\pard\plain \li480\ql{\f26\fs17 sc->Resume(); // we must create a scheduler for the simulation to run}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop21\shpright-54\shpbottom230{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop21\shpright9082\shpbottom230{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-210\slmult0\par -{{\listtext{\pard\plain {\f26\fs20 // }\tab}}\pard\plain -\f26\fs20 \qj\fi-359\nowidctlpar\jclisttab\tx840\faauto\ls10\ilvl0\rin0\nooverflow\lin840\itap0 {\plain\f26\fs20 execute the simulation }\par\pard\sl-195\slmult0\par -{\listtext{\pard\plain {\f26\fs20 // }\tab}}\pard\plain -\f26\fs20 \qj\fi-359\nowidctlpar\jclisttab\tx840\faauto\ls10\ilvl0\rin0\nooverflow\lin840\itap0 {\plain\f26\fs20 print results }\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-626\shpright-54\shpbottom-417{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-626\shpright9082\shpbottom-417{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-415\shpright-54\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-204\shpright-54\shpbottom124{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-204\shpright9082\shpbottom124{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop127\shpright-54\shpbottom455{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop127\shpright9082\shpbottom455{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-244\slmult0\par - -{\pard\plain \li480\sl426\slmult1 \ri4220\nooverflow\ql{\f26\fs20 sc->Suspend(); // suspend scheduler // suspend simulation entities}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-590\shpright-54\shpbottom-381{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-590\shpright9082\shpbottom-381{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-378\shpright-54\shpbottom-50{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-378\shpright9082\shpbottom-50{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-47\shpright-54\shpbottom281{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-47\shpright9082\shpbottom281{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-50\slmult0\par - -{\pard\plain \li480\ql{\f26\fs20 Thread_Type::mainResume();}\par} -} -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 \}}\par} -}{\shp{\*\shpinst\shpleft-64\shptop23\shpright-44\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop33\shpright9073\shpbottom33{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop23\shpright9092\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-293\slmult0\par - -{\pard\plain \li0\sl233\slmult1 \ri0\nooverflow\ql{\f11\fs24 The final call to {\f23 mainResume} prevents {\f23 run()} from exiting, which we must do to ensure the application is portable between thread implementations.}\par} -} -{\pard\sl-253\slmult0\par - -{\pard\plain \li0\ql{\f9\b\fs28 3.4 Resetting a simulation}\par} -} -{\pard\sl-254\slmult0\par - -{\pard\plain \li0\sl242\slmult1 \ri0\nooverflow\qj{\f11\fs24 Resetting a simulation involves resetting all of the objects involved in it which will be required for subsequent runs. When the reset method is invoked on the Scheduler, this causes the current simulation run to be terminated, and all simulation objects which are currently suspended on the scheduler queue will be woken and the {\f23 RestartException} will be thrown to each. Any objects which are required to participate within a new simulation run must catch this exception, reset themselves to a state consistent with the start of another simulation, and then become suspended, to await the restart of the simulation.}\par} -}\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1880\margt585\margb1440\marglsxn1440\margrsxn1880\cols1\colno1\colw8580 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -} -{\pard\sl-300\slmult0\par - -{\pard\plain \li0\ql{\f24\b\fs24 3.4.1 Example}\par} -} -{\pard\sl-241\slmult0\par - -{\pard\plain \li0\ql{\f11\fs23 If we take the {\f23 Arrivals} example above and add a reset method then the code could be:}\par} -}{\shp{\*\shpinst\shpleft-64\shptop242\shpright-44\shpbottom262 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop252\shpright9073\shpbottom252{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop242\shpright9092\shpbottom262 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop261\shpright-54\shpbottom489{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop261\shpright9082\shpbottom489{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-258\slmult0\par - -{\pard\plain \li0\sl239\slmult1 \ql{\f26\fs20 public class Arrivals extends SimulationProcess}\par} -} -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 public void run ()}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl223\slmult1 \ql{\f26\fs20 for (;;)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl224\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li960\sl224\slmult1 \ql{\f26\fs20 try}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li960\sl224\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li1440\sl223\slmult1 \ql{\f26\fs20 for (;;)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li1440\sl224\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-5\slmult0\par - -{\pard\plain \li1920\sl233\slmult1 \ri3300\nooverflow\ql{\f26\fs19 Customer c = new Customer(); queue.insert(c);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-415\shpright-54\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-415\shpright9082\shpbottom-206{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop7\shpright-54\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li1920\sl239\slmult1 \ql{\f26\fs20 Hold(20.0);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li1440\sl224\slmult1 \ql{\f26\fs20 \}}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li960\sl224\slmult1 \ql{\f26\fs20 \}}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li960\sl224\slmult1 \ql{\f26\fs20 catch (RestartException e)}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li960\sl223\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li960\sl224\slmult1 \ql{\f26\fs20 \}}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li480\sl224\slmult1 \ql{\f26\fs20 \}}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl224\slmult1 \ql{\f26\fs20 \}}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 \};}\par} -}{\shp{\*\shpinst\shpleft-64\shptop23\shpright-44\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop33\shpright9073\shpbottom33{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop23\shpright9092\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -\sect\sbkpage\sectd\pard\plain -\pgwsxn11900\pghsxn16840 -\margl1440\margr1420\margt585\margb1085\marglsxn1440\margrsxn1420\cols1\colno1\colw9040 -{ -{\pard\plain \li0\ql{\f8\i\fs24 The JavaSim User\rquote s Manuals}\par} -} -{\pard\sl-200\slmult0\par -\pard\sl-341\slmult0\par - -{\pard\plain \li0\ql{\f21\b\fs36 4. Distribution Functions}\par} -} -{\pard\sl-253\slmult0\par - -{\pard\plain \li0\sl244\slmult1 \ri20\nooverflow\qj{\f11\fs24 Many of the aspects of the real world which a simulation attempts to model have properties which correspond to various distribution functions, e.g., inter-arrival rates of customers at a bank queue. Therefore, simulation studies require sources of random numbers. Ideally these sources should produce an endless stream of such numbers, but to do so either requires specialised hardware or the ability to store an infinite (large) table of such numbers generated in advance.}\par} -} -{\pard\sl-256\slmult0\par - -{\pard\plain \li0\sl244\slmult1 \ri0\nooverflow\qj{\f11\fs24 Without such aids, which are either impractical or not generally available, the alternative is to use numerical algorithms. No deterministic algorithm can produce a sequence of numbers that would have all of the properties of a truly random sequence [3]. However, for all practical purposes it is only necessary that the numbers produced appear random, i.e., pass certain statistical tests for randomness. Although these generators produce pseudo-random numbers, we continue to call the random number generators.}\par} -} -{\pard\sl-256\slmult0\par - -{\pard\plain \li0\sl242\slmult1 \ri0\nooverflow\qj{\f11\fs24 The starting point for generating arbitrary distribution functions is to produce a standard uniform distribution. As we shall see, all other distributions can be produced based upon this. (Interested readers are referred to [6] for a more complete treatment of this topic). All of the distribution functions in {\i JavaSim} rely upon inheritance to specialise the behaviour obtained from the uniform distribution class. These classes can be found in the \f23 arjuna.JavaSim.Distributions {\f11 package.}}\par} -} -{\pard\sl-252\slmult0\par - -{\pard\plain \li0\ql{\f9\b\fs28 4.1 RandomStream}\par} -} -{\pard\sl-254\slmult0\par - -{\pard\plain \li0\sl241\slmult1 \ri20\nooverflow\qj{\f11\fs24 The actual uniform distribution class is called {\f23 RandomStream}. This returns a series of random numbers uniformly distributed between 0 and 1. We experimented with several random number generators before settling on a shuffle of a multiplicative generator with a linear congruential generator, which provides a reasonably uniform stream of pseudo-random numbers.}\par} -}{\shp{\*\shpinst\shpleft-64\shptop241\shpright-44\shpbottom261 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop251\shpright9073\shpbottom251{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7620}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop241\shpright9092\shpbottom261 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop260\shpright-54\shpbottom488{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop260\shpright9082\shpbottom488{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-257\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 public abstract class RandomStream}\par} -} -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 \{}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-5\slmult0\par - -{\pard\plain \li0\sl221\slmult1 \ri2440\nooverflow\ql{\f26\fs20 public abstract double getNumber () throws IOException, ArithmeticException;}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-414\shpright-54\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-414\shpright9082\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop8\shpright-54\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop8\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-197\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 public final double Error ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-204\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-204\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop7\shpright-54\shpbottom215{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom215{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-196\slmult0\par - -{\pard\plain \li0\ql{\f26\fs20 protected RandomStream ();}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom4{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{ -{\pard\plain \li0\sl223\slmult1 \ql{\f26\fs20 protected RandomStream (long MGSeed, long LCGSeed);}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom5{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop7\shpright-54\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop7\shpright9082\shpbottom216{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-216\slmult0\par - -{\pard\plain \li0\sl221\slmult1 \ri4960\nooverflow\ql{\f26\fs20 protected final double Uniform (); \};}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-414\shpright-54\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-414\shpright9082\shpbottom-205{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft-64\shptop23\shpright-44\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-46\shptop33\shpright9073\shpbottom33{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpleft9072\shptop23\shpright9092\shpbottom43 -\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz0 -{\sp{\sn shapeType}{\sv 1}} -{\sp{\sn fBehindDocument}{\sv 1}}{\sp{\sn fLine}{\sv 0}} -{\sp{\sn fFilled}{\sv 1}} -{\sp{\sn fillColor}{\sv 0}} -}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft-54\shptop-203\shpright-54\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft9082\shptop-203\shpright9082\shpbottom24{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 7619}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} - -{\pard\sl-278\slmult0\par - -{\pard\plain \li0\ql{\f11\fs24 The multiplicative generator uses the following algorithm{\fs32 \super 3}:}\par} -} -{\pard\sl-105\slmult0\par - -{\pard\plain \li3220\ql{\f11\fs24 Y[i+1] = Y[i] * 5{\fs32 \super 5} mod 2{\fs32 \super 26}}\par} -} -{\pard\sl-155\slmult0\par - -{\pard\plain \li0\ql{\f11\fs24 , where the period is 2{\fs32 \super 24}, and the initial seed must be odd.}\par} -}{\shp{\*\shpinst\shpfhdr0\shpbxcolumn\shpbypara\shpwr3\shpfblwtxt1\shpz1\shpleft1\shptop530\shpright2879\shpbottom530{\sp{\sn shapeType}{\sv 20}} -{\sp{\sn fBehindDocument}{\sv 1}} -{\sp{\sn fFlipH}{\sv 0}} -{\sp{\sn fFlipV}{\sv 0}} -{\sp{\sn lineWidth}{\sv 6096}} -{\sp{\sn lineColor}{\sv 0}} -{\sp{\sn lineDashing}{\sv 0}}}} -\sect\sbknone -\marglsxn1440\margrsxn5480\cols1\colno1\colw4980 -{\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-200\slmult0\par -\pard\sl-268\slmult0\par - -{\pard\plain \li0\ql{\f15\fs32 {\super 3}{\fs19 Thanks to Professor I. Mitrani for his help in developing this.}}\par} -}\sect\sbkpage\sectd\pard\plain -\sect\sbknone\cols1\colno1\colw2000\marglsxn1680\margrsxn1680{\par\pard\li0\ri0\f28\ql\fs24 {\field {\*\fldinst { HYPERLINK "http://pdfonline.blogspot.com" }}{\fldrslt {\ul \cf4 PDF to Word}}}}} \ No newline at end of file From 9fefe12b2515b76ffb317bb4cc00eb194a7c91cb Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jul 2015 11:08:42 -0400 Subject: [PATCH 059/230] Initial AsciiDoc version of manual https://github.com/nmcl/JavaSim/issues/33 --- docs/manual.adoc | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 docs/manual.adoc diff --git a/docs/manual.adoc b/docs/manual.adoc new file mode 100644 index 0000000..b744917 --- /dev/null +++ b/docs/manual.adoc @@ -0,0 +1,8 @@ += JavaSim Manual Version 2.0 + +JavaSim is an object-oriented, discrete event simulation toolkit for Java. It's a Java implementation of the original C++SIM simulation toolkit, which was developed as a direct consequence of research conducted within the scope of the Arjuna project from Newcastle University in the 1980's. Therefore, it shares many of the same requirements: + +* easy to learn and use: the interface to the simulation library should be easy to understand. +* correct abstraction: existing Java programmers should not find the simulation paradigm in conflict with the programming paradigm presented by Java. Simulation programmers used to other environments should find the transition to JavaSim straightforward. +* flexible and extensible: it should be relatively easy for anyone to add new functionality to the system, such as new distribution functions. +* efficiency: the system should be efficient and produce efficient simulation runs. Simulation packages which we have experience of tended to be extremely slow and consume large amounts of system resources. From c4a2928a25c1a3200a450c75c0c02d9e609be749 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jul 2015 11:20:22 -0400 Subject: [PATCH 060/230] Added some hyperlinks Learning on the job ... --- docs/manual.adoc | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index b744917..9e8034a 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -1,8 +1,14 @@ = JavaSim Manual Version 2.0 -JavaSim is an object-oriented, discrete event simulation toolkit for Java. It's a Java implementation of the original C++SIM simulation toolkit, which was developed as a direct consequence of research conducted within the scope of the Arjuna project from Newcastle University in the 1980's. Therefore, it shares many of the same requirements: +JavaSim is an object-oriented, discrete event simulation toolkit for Java. It's a Java implementation of the original link:http://www.cs.newcastle.ac.uk/publications/articles/papers/200.pdf[C++SIM simulation toolkit], which was developed as a direct consequence of research conducted within the scope of the link:http://www.ncl.ac.uk/computing/research/publication/159390[Arjuna project from Newcastle University] in the 1980's. Therefore, it shares many of the same requirements: * easy to learn and use: the interface to the simulation library should be easy to understand. * correct abstraction: existing Java programmers should not find the simulation paradigm in conflict with the programming paradigm presented by Java. Simulation programmers used to other environments should find the transition to JavaSim straightforward. * flexible and extensible: it should be relatively easy for anyone to add new functionality to the system, such as new distribution functions. * efficiency: the system should be efficient and produce efficient simulation runs. Simulation packages which we have experience of tended to be extremely slow and consume large amounts of system resources. + +These requirements were realised in the following design decisions: + +- the discrete-event process based simulation facilities provided by SIMULA and its simulation classes and libraries have a considerable experience and user community which have found them to be successful for a wide variety of simulations. In later versions of the system additional simulation classes were added which provide extra functionality. + +- inheritance was to be used throughout the design to even a greater extent than is already provided in SIMULA. This enables JavaSim to be more flexible and extensible, allowing new functionality to be added without affecting the overall system structure. For example, our I/O facilities, random number generators and probability distribution functions are entirely object-oriented, relying on inheritance to specialise their behaviour. From 451fcf3dc09730c209b45b19c6be32bdf1e2412d Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jul 2015 11:26:38 -0400 Subject: [PATCH 061/230] Finished the preface. --- docs/manual.adoc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 9e8034a..20b5f1f 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -12,3 +12,7 @@ These requirements were realised in the following design decisions: - the discrete-event process based simulation facilities provided by SIMULA and its simulation classes and libraries have a considerable experience and user community which have found them to be successful for a wide variety of simulations. In later versions of the system additional simulation classes were added which provide extra functionality. - inheritance was to be used throughout the design to even a greater extent than is already provided in SIMULA. This enables JavaSim to be more flexible and extensible, allowing new functionality to be added without affecting the overall system structure. For example, our I/O facilities, random number generators and probability distribution functions are entirely object-oriented, relying on inheritance to specialise their behaviour. + +NOTE: It is not necessary for the reader to know anything about the SIMULA programming language or its simulation classes, but such knowledge would aid in the understanding of the concepts and classes presented within. + +Currently JavaSim has been tested with JDK 1.7 and 1.8. In the past it has worked with all versions of Java starting with 1.0.2. However, we have not tested with older versions for a long time, so your mileage may vary. If you have any problems, questions, suggestions etc. then consider raising an issue on the link:https://github.com/nmcl/JavaSim/issues[github page] or even fork JavaSim and raise a pull request. From 5051d9b2e4757d74cf31251b94d9a99bd89bd9e7 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jul 2015 11:28:18 -0400 Subject: [PATCH 062/230] Slight update. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2915b71..b5c28f6 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ Prior to 2007 both C++SIM and JavaSim were freely available in source and binary We are in the process of providing new releases of JavaSim and C++SIM. In the meantime, if you want the old versions then you can find C++SIM 1.7.4 GA and JavaSim 0.3 GA available from the relevant distributions directory. -In 2015 we moved from Codehaus. All JIRAs from there were also migrated to github issues. +In 2015 we moved from Codehaus due to that being closed down. All JIRAs from there were also migrated to github issues. ---- From f879a35b7637dbcdf58147bb76492b869e62473d Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jul 2015 13:18:46 -0400 Subject: [PATCH 063/230] Added introduction and terminology. --- docs/manual.adoc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 20b5f1f..5405833 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -16,3 +16,25 @@ These requirements were realised in the following design decisions: NOTE: It is not necessary for the reader to know anything about the SIMULA programming language or its simulation classes, but such knowledge would aid in the understanding of the concepts and classes presented within. Currently JavaSim has been tested with JDK 1.7 and 1.8. In the past it has worked with all versions of Java starting with 1.0.2. However, we have not tested with older versions for a long time, so your mileage may vary. If you have any problems, questions, suggestions etc. then consider raising an issue on the link:https://github.com/nmcl/JavaSim/issues[github page] or even fork JavaSim and raise a pull request. + +== Introduction + +This manual is not intended as a tutorial on the concepts of simulation in general, but rather how to write simulations in the JavaSim system. However, in order to be able to do this certain key simulation concepts will be briefly described. The interested reader is referred to link:http://dl.acm.org/citation.cfm?id=539335 [this book] for detailed descriptions of these concepts and for further discussions on simulation modelling. + +=== Simulation Models + +To model a system is to replace it by something which is: + +- simpler and/or easier to study. + +- equivalent to the original in all important respects. + +Therefore, before constructing the actual simulation, it is first necessary to abstract from the real system those components and their interactions that are considered important for the actual model. Building a simulation system model involves making certain simplifying assumptions to aid in the actual implementation and study of the simulation (without such simplifications the model would be as complex as the system it is meant to be simulating). However, the accuracy of the results obtained from the simulation depend upon how valid the initial assumptions are. For example, when considering the trajectory of a projectile through the atmosphere, the friction due to the air molecules is usually ignored. This assumption is valid only within certain boundaries: if the size of the projectile is on the same scale as the air molecules and its speed is sufficiently small then friction plays a significant role in its movement. + +Thus, the first step towards building a simulation model of a system is to determine exactly what are the important features which are to be measured, and what characteristics of the system have an affect on them. Any boundary conditions for the simulation (e.g., size of projectile) should be considered at the same time in order to simplify this procedure. Building a final model can often take several phases, where results from the initial model are compared with those obtained from the real system to determine their accuracy. Any discrepancies are taken into account by possibly adding new components to the simulation until, within certain error boundaries, the simulation results match those from the real system. + +=== Terminology + +The system components chosen for the simulation are termed simulation entities. Associated with each entity in the simulation are zero or more attributes that describe the state of the entity and which may vary during the course of the simulation. The interaction of entities and the changes they cause in the system state are termed events. + +The collection of these component attributes at any given time t defines the system state at t. In general, the system state can take any of a variety of values, and a given simulation run results in one realisation of a set of these values (the operation path) over the observation period. From a5c7dedac32ac3f71e11b2bb029ec4f0b99a2d54 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jul 2015 13:23:17 -0400 Subject: [PATCH 064/230] Try numbering sections --- docs/manual.adoc | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 5405833..aabb964 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -1,4 +1,5 @@ = JavaSim Manual Version 2.0 +:numbered: JavaSim is an object-oriented, discrete event simulation toolkit for Java. It's a Java implementation of the original link:http://www.cs.newcastle.ac.uk/publications/articles/papers/200.pdf[C++SIM simulation toolkit], which was developed as a direct consequence of research conducted within the scope of the link:http://www.ncl.ac.uk/computing/research/publication/159390[Arjuna project from Newcastle University] in the 1980's. Therefore, it shares many of the same requirements: From d98892a5c127634efef16e8cf967f67501b19ecc Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jul 2015 13:26:40 -0400 Subject: [PATCH 065/230] Added italic phrases as in the original manual. --- docs/manual.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index aabb964..4c6d271 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -36,6 +36,6 @@ Thus, the first step towards building a simulation model of a system is to deter === Terminology -The system components chosen for the simulation are termed simulation entities. Associated with each entity in the simulation are zero or more attributes that describe the state of the entity and which may vary during the course of the simulation. The interaction of entities and the changes they cause in the system state are termed events. +The system components chosen for the simulation are termed simulation entities. Associated with each _entity_ in the simulation are zero or more _attributes_ that describe the state of the entity and which may vary during the course of the simulation. The interaction of entities and the changes they cause in the system state are termed _events_. -The collection of these component attributes at any given time t defines the system state at t. In general, the system state can take any of a variety of values, and a given simulation run results in one realisation of a set of these values (the operation path) over the observation period. +The collection of these component attributes at any given time _t_ defines the system state at _t_. In general, the system state can take any of a variety of values, and a given simulation run results in one realisation of a set of these values (the _operation path_) over the _observation period_. From 646b491fc554fe8c7e0f6744fe2d99509db69cee Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jul 2015 13:32:42 -0400 Subject: [PATCH 066/230] Finished section 2. --- docs/manual.adoc | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 4c6d271..6cd3372 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -39,3 +39,28 @@ Thus, the first step towards building a simulation model of a system is to deter The system components chosen for the simulation are termed simulation entities. Associated with each _entity_ in the simulation are zero or more _attributes_ that describe the state of the entity and which may vary during the course of the simulation. The interaction of entities and the changes they cause in the system state are termed _events_. The collection of these component attributes at any given time _t_ defines the system state at _t_. In general, the system state can take any of a variety of values, and a given simulation run results in one realisation of a set of these values (the _operation path_) over the _observation period_. + +=== Categories of simulation models + +There are three categories of simulation model, described by the way in which the system state changes as a function of time: + +- _Continuous time_: is one whose state varies continuously with time; such systems are usually described by sets of differential equations. + +- _Discrete time_: the system is considered only at selected moments in time (the observation points). These moments are typically evenly spaced. Some economics models are examples of this, where economics data becomes available at fixed intervals. Changes in state are noticed only at observation points. By choosing a suitably small interval between observation points, a continuous time simulation can be approximated by a discrete time simulation. + +- _Continuous time-discrete event_: the time parameter is (conceptually) continuous and the observation period is a real interval, usually starting at zero for simplicity. The operation path is completely determined by the sequence of event times (which need not be evenly spaced and can be of arbitrary increments) and by the discrete changes in the system state which take place at these times (i.e., the interactions of the events). In between consecutive event times the system state may vary continuously. Although it is possible to model the passage of real time by suitable event timing, this is not necessary for a discrete event system: the simulation model can advance its own internal time directly from one discrete event to another, taking any appropriate action to advance the state accordingly. + +It is this latter category of simulation modelling that JavaSim supports. Examples of discrete-event simulations are most queuing problems: entities (e.g., customers in a bank) arrive according to a given distribution and change the system state instantaneously (e.g., the number of customers in the queue). The operation paths for this system are step functions: they jump up (or down) by one when a customer joins (or leaves) the queue. + +=== Event scheduling + +Given that a simulation consists of a series of interacting events (the operation path), a simulator can be defined as that program devoted to the generation of operation paths. The simulator allows the creation of events and controls their interactions according to a set of rules, using an internal “clock” to keep track of the passage of (simulation) time. + +It maintains an _event list_, which indicates which events are to be scheduled for execution at specific simulation times. Events are executed according to their simulation times. There are two approaches to the way in which a simulator can schedule events to produce an operation path: + +- _event-oriented_: there is a procedure associated with each type of event in the system: it performs the action required to handle that type of event and it is invoked every time such an event occurs. In an event-oriented approach, an operation path is obtained by taking a global view of everything that happens in the system; the manipulation of events is explicit. + +- _process-oriented_: an operation path is obtained by the interacting of a number of processes running in parallel. The management of events is implicit in the management of the processes. The simulation system provides primitives for placing processes at particular points on the event list, removing and re-scheduling them. +The JavaSim User’s Manuals + +The process-oriented approach best fits with the object-oriented paradigm which we want to present to the programmer of JavaSim. As in SIMULA, simulation processes then become active objects which interact with each other through message passing and the simulation primitives. Refinements of these objects can then be obtained by inheriting from them and redefining the appropriate methods. From 30e211b6d114c68e08a2b8f71e2586347a4e2138 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 22 Jul 2015 08:09:22 -0400 Subject: [PATCH 067/230] Started section 2. --- docs/manual.adoc | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 6cd3372..177e79c 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -64,3 +64,15 @@ It maintains an _event list_, which indicates which events are to be scheduled f The JavaSim User’s Manuals The process-oriented approach best fits with the object-oriented paradigm which we want to present to the programmer of JavaSim. As in SIMULA, simulation processes then become active objects which interact with each other through message passing and the simulation primitives. Refinements of these objects can then be obtained by inheriting from them and redefining the appropriate methods. + +== Basic simulation classes + +This section describes the core elements of the JavaSim simulation system. It is not intended as a tutorial on Java, and basic knowledge of the language is assumed. Note, all of the classes described in this section can be found in the org.javasim package. + +=== The simulation scheduler + +The previous section described the event list and how simulation entities (processes) are executed according to their position on the event list (i.e., with increasing simulation time). In JavaSim, as in SIMULA, simulation processes are managed by a _scheduler_ and are placed on a _scheduler queue_ (the event list). Processes are executed in pseudo-parallel, i.e., only one process executes at any instance of real time, but many processes may execute concurrently at any instance of simulation time. The simulation clock is only advanced when all processes have been executed for the current instance of simulation time. + +Inactive processes are placed on to the scheduler queue, and when the current active process yields control to the scheduler (either because it has finished or been placed back onto the scheduler queue), the scheduler removes the process at the head of the queue and re-activates it. (In SIMULA the currently active process is not removed from the head of the queue.) When the scheduler queue is empty, i.e., there are no further processes left to execute, the scheduler terminates the simulation. + +FIGURE 1 GOES HERE!! From d0b1ab3a286722b1a38656eaf865fa6a3e4f1fee Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 22 Jul 2015 09:53:27 -0400 Subject: [PATCH 068/230] Added notes on the Scheduler & Simulation classes --- docs/manual.adoc | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 177e79c..ce3c3f6 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -76,3 +76,39 @@ The previous section described the event list and how simulation entities (proce Inactive processes are placed on to the scheduler queue, and when the current active process yields control to the scheduler (either because it has finished or been placed back onto the scheduler queue), the scheduler removes the process at the head of the queue and re-activates it. (In SIMULA the currently active process is not removed from the head of the queue.) When the scheduler queue is empty, i.e., there are no further processes left to execute, the scheduler terminates the simulation. FIGURE 1 GOES HERE!! + +Figure 1: Scheduler-Process Interaction + +As Figure 1 shows, the scheduler co-ordinates the entire simulation run, effectively monitoring the active and passive processes to enable it to determine when, and which, process to activate next. A simulation application cannot affect the scheduler directly, but can do so only indirectly through modifications of the scheduler queue. + +NOTE: the scheduler queue can be structured in a variety of ways, including a linear list or a tree. The implementation of the queue can depend upon the type of simulation being conducted. For example, a simulation which involves many (concurrent) processes would suffer from using a linear ordered queue which would typically have insertion and removal routines with overheads proportional to the number of entries in the queue. However, a linear list may work best for a low number of simulation processes. JavaSim comes with a suite of scheduler queue implementations which can be chosen when the system is built. + +==== Scheduler and Simulation classes + +The simulation scheduler is an instance of the Scheduler class. It is the responsibility of the application programmer to ensure that only a single instance of this class is created. + +NOTE: In recent versions of JavaSim the Simulation class has taken on some of the functionality previously incorporated within the Scheduler class. + +---- +public class Scheduler extends Thread +{ + public static double currentTime (); +} +---- + +The scheduler maintains the simulation clock, and the current value of this clock is obtained by invoking the CurrentTime() method. + +---- +public class Simulation +{ + public static synchronized void reset () throws SimulationException; + + public static synchronized boolean isReset (); + + public static synchronized void stop (); + + public static synchronized void start (); +} +---- + +To enable multiple simulation runs to occur within a single application, it is possible to reset it and the simulation clock by calling the reset() method of the Simulation class. This causes the simulation to remove all processes (simulation objects) currently registered on the scheduler queue and to invoke a class specific method on each of them which resets their states (detailed in the next section). Once this is finished the simulation is ready for an additional run. A suspended process is informed that it has been “reset” by having the method it called to originally suspend itself (i.e., place itself on the scheduler queue) raise the RestartSimulation exception, which the object should catch. It must then perform any work necessary to put itself back in a state ready for restarting the simulation, and should then suspend itself again before the simulation can be restarted (typically by calling cancel.) From ee93f4529dcd223d478cabbdac9ca09580f1f345 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 22 Jul 2015 09:54:54 -0400 Subject: [PATCH 069/230] Slight update on isReset, start and stop methods. --- docs/manual.adoc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index ce3c3f6..1d6a1c0 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -112,3 +112,5 @@ public class Simulation ---- To enable multiple simulation runs to occur within a single application, it is possible to reset it and the simulation clock by calling the reset() method of the Simulation class. This causes the simulation to remove all processes (simulation objects) currently registered on the scheduler queue and to invoke a class specific method on each of them which resets their states (detailed in the next section). Once this is finished the simulation is ready for an additional run. A suspended process is informed that it has been “reset” by having the method it called to originally suspend itself (i.e., place itself on the scheduler queue) raise the RestartSimulation exception, which the object should catch. It must then perform any work necessary to put itself back in a state ready for restarting the simulation, and should then suspend itself again before the simulation can be restarted (typically by calling cancel.) + +A process can use isReset to determine whether or not the simulation has been reset. The start and stop operations allow the simulation to be halted or resumed respectively. From 490298dbd0445b751b825bb9042198538a5b1d35 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 23 Jul 2015 09:07:07 -0400 Subject: [PATCH 070/230] Added initial SimulationProcess text More to come ... --- docs/manual.adoc | 57 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 1d6a1c0..6f9a51f 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -114,3 +114,60 @@ public class Simulation To enable multiple simulation runs to occur within a single application, it is possible to reset it and the simulation clock by calling the reset() method of the Simulation class. This causes the simulation to remove all processes (simulation objects) currently registered on the scheduler queue and to invoke a class specific method on each of them which resets their states (detailed in the next section). Once this is finished the simulation is ready for an additional run. A suspended process is informed that it has been “reset” by having the method it called to originally suspend itself (i.e., place itself on the scheduler queue) raise the RestartSimulation exception, which the object should catch. It must then perform any work necessary to put itself back in a state ready for restarting the simulation, and should then suspend itself again before the simulation can be restarted (typically by calling cancel.) A process can use isReset to determine whether or not the simulation has been reset. The start and stop operations allow the simulation to be halted or resumed respectively. + +=== Simulation processes + +As was described in the previous sections, JavaSim supports the process-oriented approach to simulation, where each simulation entity can be considered a separate process. Therefore in JavaSim the entities within a simulation are represented by _process objects_. These are Java objects which have an independent thread of control associated with them at creation time, allowing them to convey the notion of activity necessary for participating in the simulation. + +In keeping with the object-oriented paradigm, and to make development of process objects simpler, classes inherit the process functionality from the appropriate base class (SimulationProcess). This class defines all of the necessary operations for the simulation system to control the simulation entities within it, and for them to interact with it and each other. + +At any point in simulation time, a process can be in one (and only one) of the following states: + +- _active_: the process has been removed from the head of the scheduler queue and its actions are being executed. + +- _suspended_: the process is on the scheduler queue, scheduled to become active at a specified simulation time. + +- _passive_: the process is not on the scheduler queue. Unless another process brings it back on to the queue it will not execute any further actions. + +- _terminated_: the process is not on the scheduler queue and has no further actions to execute. Once a process has been terminated it cannot be made to execute further in the same simulation run. + +A process which is either active or suspended is said to be _scheduled_. + +==== SimulationProcess class + +The SimulationProcess class definition is shown below. Before considering how to build an example class derived from SimulationProcess we shall discuss the methods which it provides. + +Because the constructors are protected, it is not possible to create an instance of the SimulationProcess class, i.e., classes must be derived from this. Processes are threaded objects, and typically each thread package schedules execution of threads according to a priority. By default, all processes in JavaSim are created with the same priority, but this can be altered by calling the setPriority method of java.lang.Thread. + +NOTE: Thread priorities have no effect on a simulation run. + +---- +public class SimulationProcess extends Thread +{ + public final double time (); + public synchronized SimulationProcess nextEv () throws SimulationException, NoSuchElementException; + public final double evtime (); + public void activateBefore (SimulationProcess p) throws SimulationException, RestartException; + public void activateAfter (SimulationProcess p) throws SimulationException, RestartException; + public void activateAt (double AtTime, boolean prior) throws SimulationException, RestartException; + public void activateAt (double AtTime) throws SimulationException, RestartException; + public void activateDelay (double Delay, boolean prior) throws SimulationException, RestartException; + public void activate () throws SimulationException, RestartException; + public void reactivateBefore (SimulationProcess p) throws SimulationException, RestartException; + public void reactivateAfter (SimulationProcess p) throws SimulationException, RestartException; + public void reactivateAt (double AtTime, boolean prior) throws SimulationException, RestartException; + public void reactivateAt (double AtTime) throws SimulationException, RestartException; + public void reactivateDelay (double Delay, boolean prior) throws SimulationException, RestartException; + public void reactivateDelay (double Delay) throws SimulationException, RestartException; + public void reactivate () throws SimulationException, RestartException; + public void cancel () throws RestartException; + public void terminate (); + public synchronized boolean idle (); + public boolean passivated (); + public boolean terminated (); + public static SimulationProcess current () throws SimulationException; + public static double currentTime (); + public static void mainSuspend (); + public static void mainResume () throws SimulationException; +} +---- From 6486e89516a26462048b2e46f29b5859e21c381b Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 23 Jul 2015 09:16:29 -0400 Subject: [PATCH 071/230] Added SimulationProcess example And updated it for Java! --- docs/manual.adoc | 68 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 6f9a51f..101e74a 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -169,5 +169,73 @@ public class SimulationProcess extends Thread public static double currentTime (); public static void mainSuspend (); public static void mainResume () throws SimulationException; + + protected void hold (double t) throws SimulationException, RestartException; + protected void passivate () throws RestartException; + protected void setEvtime (double time) throws SimulationException; + protected void suspendProcess () throws RestartException; + protected void resumeProcess (); +} +---- + +There are five ways to activate a currently passive process, which results in it being brought to the correct position in the scheduler queue corresponding to its associated simulation time. If this is the head of the queue then it will become the active process. + +- activate(): this activates the process at the current simulation time. + +- activateBefore(SimulationProcess proc): this positions the process in the scheduler queue before proc, and gives it the same simulation time. If proc is not present then a SimulationException will be thrown. + +- activateAfter(SimulationProcess proc): this positions the process in the scheduler queue after proc, and gives it the same simulation time. If proc is not present then a SimulationException will be thrown. + +- activateAt(double AtTime, boolean prior): the process is inserted into the scheduler queue at the position corresponding to the simulation time specified by AtTime. The default for this time is the current simulation time. The prior parameter is used to determine whether this process should be inserted before or after any processes with the same simulation time which may already be present in the queue. The default is false. + +- activateDelay(double AtTime, boolean prior): the process is activated after a specified delay (AtTime). The process is inserted into the queue with the new simulation time, and the prior parameter is used to determine its ordering with respect to other processes in the queue with the same time. The default is false. + +There are correspondingly five reActivate methods, which work on either passive or scheduled processes. These will not be described in detail as they have similar signatures to their Activate counterparts and work in the same way. + +- hold(double period) schedules the currently active process for re-activation after the simulated delay of period time. If this is invoked by the object (e.g., through a publicly available method) when it is not the current active process then it does nothing. + +- evtime() returns the time at which the process is scheduled for activation. + +- nextEv() returns a reference to the next process to be scheduled for execution. If the queue is empty then null is returned. + +The static method current() returns a reference to the currently active process. + +The current simulation time can be obtained by using either the currentTime() or time() methods. The former method is static and as such can be invoked without an instance of the SimulationProcess class. + +cancel() removes the process from the scheduler queue or suspends it if it is the currently active process. In either case, the process is set to the passive state. passivate() functions similarly but only works on the currently active process, i.e., if it is invoked by the object (e.g., through a publicly available method) when it is not the current active process then it does nothing. + +terminate() removes the process from the scheduler queue or it is suspended if it is currently active. The process is then set to the terminated state, and can take no further part in this simulation run. + +idle() returns false if the process is either active or scheduled to become active. Otherwise true is returned. + +passivated() and terminated() indicate whether the process is in the passive or terminated state, respectively. + +Because SimulationProcess extends the java.lang.Thread class it is necessary for the simulation class to provide an implementation of the run method which will do the actual work for the process. If this method ever returns then the thread is destroyed. However, in order for JavaSim to detect the termination of the thread, the terminate() method _must_ be used instead. + +===== Example + +To illustrate how a simulation process could be implemented from the Process class we shall consider the example of a queue of customers arriving at a bank. For this example, this involves three classes: + +- Customer: instances of this class represent the customers in the queue. + +- Queue: the instance of this class (queue) is the queue into which customers are places. + +- Arrivals: this is the process which creates new customers for insertion in queue. + +The implementations of the Customer and Queue classes are not important to this example. The implementation of the Arrivals class could be: + +---- +class Arrivals extends SimulationProcess +{ + public void run () + { + for (;;) + { + Customer c = new Customer(); + + queue.insert(c); + hold(20.0); + } + } } ---- From 761ace6002ec8745493389d3a55e46a218e28b94 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 23 Jul 2015 10:47:36 -0400 Subject: [PATCH 072/230] Added text about controller processes --- docs/manual.adoc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 101e74a..302a8a8 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -239,3 +239,23 @@ class Arrivals extends SimulationProcess } } ---- + +=== Starting, ending and controlling a simulation + +When a SimulationProcess object is created in JavaSim it starts in the passive state, and must be activated before it can take part in the simulation. This is typically performed by the first process object to which control is transferred after the simulation is initially started. When writing JavaSim applications it is typical for the main thread to create a single _controller process_ which is responsible for co-ordinating the entire simulation run. This creates and activates all of the simulation entities and the scheduler, and provides methods for suspending the main thread, thus allowing the controller object to execute, and exiting the application. An example controller interface is shown below, and the implementations for its methods will be described in the following sections: + +---- +public class Controller extends SimulationProcess +{ + public void run (); + + public void await (); + public void exit (); +} +---- + +Because Controller is a simulation process itself, it derives from Simulationrocess and defines a run() method, which will do the actual controlling of the simulation. It also provides the following methods: + +- await(): this method is called within the main application thread and suspends it, effectively transferring control the Controller process. + +- exit(): this method is called to exit the simulation. From 56d174f6faf34f12ccfcefbc6a3ce60606a93cbf Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 23 Jul 2015 10:51:54 -0400 Subject: [PATCH 073/230] Added text about exiting simulation --- docs/manual.adoc | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 302a8a8..c1824b9 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -259,3 +259,47 @@ Because Controller is a simulation process itself, it derives from Simulationroc - await(): this method is called within the main application thread and suspends it, effectively transferring control the Controller process. - exit(): this method is called to exit the simulation. + +==== Suspending the main thread + +When a threaded application is started it is important to realise that before any application threads are created, the Java virtual machine has already created one to run the application. This thread must be suspended before any simulation threads can run. + +The await() method of Controller is responsible for suspending this thread: + +---- +public void await () +{ + resume(); + + SimulationProcess.mainSuspend(); +} +---- + +It must first resume the thread associated with the Controller instance (since Controller is a SimulationProcess it starts in the passive state). This thread does not execute until the main thread is suspended by the call to the static mainSuspend method. + +The code for main would then become: + +---- +public static void main (String[] args) +{ + Controller c = new Controller(); c.await(); +} +---- + +==== Exiting the application + +In order to exit a simulation application, the application can call System.exit. However, if it is only necessary to resume the main thread, then this can be accomplished by using the static mainResume method of the SimulationProcess class. Once the main thread has been resumed, it will continue to execute from the point it was suspended. In the example above, this would be from within the await method. The thread which calls mainResume can then suspend or terminate itself, depending upon the application requirements. + +---- +public void exit () +{ + if (resumeMainRequired) + { + SimulationProcess.mainResume(); + + suspend(); + } + else + System.exit(0); +} +---- From ead773c06c008a196926fd2c3d487c4142c5ee96 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 23 Jul 2015 11:00:07 -0400 Subject: [PATCH 074/230] Completed the old chapter 3 import. --- docs/manual.adoc | 57 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index c1824b9..a120cef 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -303,3 +303,60 @@ public void exit () System.exit(0); } ---- + +==== Controlling the simulation + +The controller’s body creates and activates the other simulation entities and the scheduler, and controls the overall simulation (e.g., resetting the system between consecutive runs). + +---- +public void run () +{ + sc = new Scheduler(); + + // create and activate any other simulation entities + + sc.resume(); // we must create a scheduler for the simulation to run execute the simulation + + // print results + + sc.Suspend(); // suspend scheduler + + // suspend simulation entities + + mainResume(); +} +---- + +The final call to mainResume prevents run() from exiting, which we must do to ensure the application is portable between thread implementations. + +=== Resetting a simulation + +Resetting a simulation involves resetting all of the objects involved in it which will be required for subsequent runs. When the reset method is invoked on the Scheduler, this causes the current simulation run to be terminated, and all simulation objects which are currently suspended on the scheduler queue will be woken and the RestartException will be thrown to each. Any objects which are required to participate within a new simulation run must catch this exception, reset themselves to a state consistent with the start of another simulation, and then become suspended, to await the restart of the simulation. + +==== Example + +If we take the Arrivals example above and add a reset method then the code could be: + +---- +public class Arrivals extends SimulationProcess +{ + public void run () + { + for (;;) + { + try + { + for (;;) + { + Customer c = new Customer(); queue.insert(c); + + hold(20.0); + } + } + catch (RestartException e) + { + } + } + } +} +---- From b1a172aca2bb4135003d293b4bd5f2b6c6f020b9 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 24 Jul 2015 08:52:58 -0400 Subject: [PATCH 075/230] Started section on distribution functions. --- docs/manual.adoc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index a120cef..1a5e351 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -360,3 +360,11 @@ public class Arrivals extends SimulationProcess } } ---- + +=== Distribution Functions + +Many of the aspects of the real world which a simulation attempts to model have properties which correspond to various distribution functions, e.g., inter-arrival rates of customers at a bank queue. Therefore, simulation studies require sources of random numbers. Ideally these sources should produce an endless stream of such numbers, but to do so either requires specialised hardware or the ability to store an infinite (large) table of such numbers generated in advance. + +Without such aids, which are either impractical or not generally available, the alternative is to use numerical algorithms. No deterministic algorithm can produce a sequence of numbers that would have all of the properties of a truly random sequence (Thanks to Professor I. Mitrani for his help in developing this.) However, for all practical purposes it is only necessary that the numbers produced appear random, i.e., pass certain statistical tests for randomness. Although these generators produce pseudo-random numbers, we continue to call the random number generators. + +The starting point for generating arbitrary distribution functions is to produce a standard uniform distribution. As we shall see, all other distributions can be produced based upon this. (Interested readers are referred to [6] for a more complete treatment of this topic). All of the distribution functions in JavaSim rely upon inheritance to specialise the behaviour obtained from the uniform distribution class. These classes can be found in the org.javasim.streams package. From 247d6610939c3afffe21264091276858ac4c8e86 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 24 Jul 2015 08:53:19 -0400 Subject: [PATCH 076/230] Typo --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 1a5e351..6955fbc 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -361,7 +361,7 @@ public class Arrivals extends SimulationProcess } ---- -=== Distribution Functions +== Distribution Functions Many of the aspects of the real world which a simulation attempts to model have properties which correspond to various distribution functions, e.g., inter-arrival rates of customers at a bank queue. Therefore, simulation studies require sources of random numbers. Ideally these sources should produce an endless stream of such numbers, but to do so either requires specialised hardware or the ability to store an infinite (large) table of such numbers generated in advance. From 189d8817f5eccb25515c2f1a2550532096ef0b3c Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 24 Jul 2015 08:55:03 -0400 Subject: [PATCH 077/230] Replaced ref with hyperlink. --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 6955fbc..32663da 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -367,4 +367,4 @@ Many of the aspects of the real world which a simulation attempts to model have Without such aids, which are either impractical or not generally available, the alternative is to use numerical algorithms. No deterministic algorithm can produce a sequence of numbers that would have all of the properties of a truly random sequence (Thanks to Professor I. Mitrani for his help in developing this.) However, for all practical purposes it is only necessary that the numbers produced appear random, i.e., pass certain statistical tests for randomness. Although these generators produce pseudo-random numbers, we continue to call the random number generators. -The starting point for generating arbitrary distribution functions is to produce a standard uniform distribution. As we shall see, all other distributions can be produced based upon this. (Interested readers are referred to [6] for a more complete treatment of this topic). All of the distribution functions in JavaSim rely upon inheritance to specialise the behaviour obtained from the uniform distribution class. These classes can be found in the org.javasim.streams package. +The starting point for generating arbitrary distribution functions is to produce a standard uniform distribution. As we shall see, all other distributions can be produced based upon this. (Interested readers are referred to link:http://dl.acm.org/citation.cfm?id=539335[this] for a more complete treatment of this topic). All of the distribution functions in JavaSim rely upon inheritance to specialise the behaviour obtained from the uniform distribution class. These classes can be found in the org.javasim.streams package. From 63e6c64797f283d10a975daeca03e89a7cb226ed Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 24 Jul 2015 09:07:18 -0400 Subject: [PATCH 078/230] Added RandomStream text But need to figure out how to do maths in AsciiDoc. --- docs/manual.adoc | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 32663da..cbe7492 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -365,6 +365,32 @@ public class Arrivals extends SimulationProcess Many of the aspects of the real world which a simulation attempts to model have properties which correspond to various distribution functions, e.g., inter-arrival rates of customers at a bank queue. Therefore, simulation studies require sources of random numbers. Ideally these sources should produce an endless stream of such numbers, but to do so either requires specialised hardware or the ability to store an infinite (large) table of such numbers generated in advance. -Without such aids, which are either impractical or not generally available, the alternative is to use numerical algorithms. No deterministic algorithm can produce a sequence of numbers that would have all of the properties of a truly random sequence (Thanks to Professor I. Mitrani for his help in developing this.) However, for all practical purposes it is only necessary that the numbers produced appear random, i.e., pass certain statistical tests for randomness. Although these generators produce pseudo-random numbers, we continue to call the random number generators. +Without such aids, which are either impractical or not generally available, the alternative is to use numerical algorithms. No deterministic algorithm can produce a sequence of numbers that would have all of the properties of a truly random sequence (see link:http://www.amazon.com/Art-Computer-Programming-Volume-Seminumerical/dp/0201896842[Knuth, Volume 2]) However, for all practical purposes it is only necessary that the numbers produced appear random, i.e., pass certain statistical tests for randomness. Although these generators produce pseudo-random numbers, we continue to call the random number generators. The starting point for generating arbitrary distribution functions is to produce a standard uniform distribution. As we shall see, all other distributions can be produced based upon this. (Interested readers are referred to link:http://dl.acm.org/citation.cfm?id=539335[this] for a more complete treatment of this topic). All of the distribution functions in JavaSim rely upon inheritance to specialise the behaviour obtained from the uniform distribution class. These classes can be found in the org.javasim.streams package. + +=== RandomStream + +The actual uniform distribution class is called RandomStream. This returns a series of random numbers uniformly distributed between 0 and 1. We experimented with several random number generators before settling on a shuffle of a multiplicative generator with a linear congruential generator, which provides a reasonably uniform stream of pseudo-random numbers. + +---- +public abstract class RandomStream +{ + public abstract double getNumber () throws IOException, ArithmeticException; + + public final double error (); + + protected RandomStream (); + protected RandomStream (long MGSeed, long LCGSeed); + + protected final double Uniform (); +} +---- + +The multiplicative generator uses the following algorithm: + +Y[i+1] = Y[i] * 55 mod 226 + +THIS NEEDS FIXING!! + +, where the period is 224, and the initial seed must be odd (Thanks to Professor I. Mitrani for his help in developing this.) From 3bbed81e3c159267185ffa5f50a23ac5a69e44f6 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 24 Jul 2015 09:07:53 -0400 Subject: [PATCH 079/230] Missing full stop. --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index cbe7492..0edde3b 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -365,7 +365,7 @@ public class Arrivals extends SimulationProcess Many of the aspects of the real world which a simulation attempts to model have properties which correspond to various distribution functions, e.g., inter-arrival rates of customers at a bank queue. Therefore, simulation studies require sources of random numbers. Ideally these sources should produce an endless stream of such numbers, but to do so either requires specialised hardware or the ability to store an infinite (large) table of such numbers generated in advance. -Without such aids, which are either impractical or not generally available, the alternative is to use numerical algorithms. No deterministic algorithm can produce a sequence of numbers that would have all of the properties of a truly random sequence (see link:http://www.amazon.com/Art-Computer-Programming-Volume-Seminumerical/dp/0201896842[Knuth, Volume 2]) However, for all practical purposes it is only necessary that the numbers produced appear random, i.e., pass certain statistical tests for randomness. Although these generators produce pseudo-random numbers, we continue to call the random number generators. +Without such aids, which are either impractical or not generally available, the alternative is to use numerical algorithms. No deterministic algorithm can produce a sequence of numbers that would have all of the properties of a truly random sequence (see link:http://www.amazon.com/Art-Computer-Programming-Volume-Seminumerical/dp/0201896842[Knuth, Volume 2.]) However, for all practical purposes it is only necessary that the numbers produced appear random, i.e., pass certain statistical tests for randomness. Although these generators produce pseudo-random numbers, we continue to call the random number generators. The starting point for generating arbitrary distribution functions is to produce a standard uniform distribution. As we shall see, all other distributions can be produced based upon this. (Interested readers are referred to link:http://dl.acm.org/citation.cfm?id=539335[this] for a more complete treatment of this topic). All of the distribution functions in JavaSim rely upon inheritance to specialise the behaviour obtained from the uniform distribution class. These classes can be found in the org.javasim.streams package. From fed63a0de5f2e4086c6fd064a42c9577670605fb Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 24 Jul 2015 14:01:26 -0400 Subject: [PATCH 080/230] Finished initial text on RandomStream --- docs/manual.adoc | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 0edde3b..898e7fb 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -383,7 +383,7 @@ public abstract class RandomStream protected RandomStream (); protected RandomStream (long MGSeed, long LCGSeed); - protected final double Uniform (); + protected final double uniform (); } ---- @@ -394,3 +394,11 @@ Y[i+1] = Y[i] * 55 mod 226 THIS NEEDS FIXING!! , where the period is 224, and the initial seed must be odd (Thanks to Professor I. Mitrani for his help in developing this.) + +The uniform() method uses the linear congruential generator (seed is LCGSeed, with the default value of 1878892440L) based on the algorithm in link:http://algs4.cs.princeton.edu/home/[this text], and the results of this are shuffled with the multiplicative generator (see is MGSeed, with a default value of 772531L) as suggested by link:http://www.amazon.com/Art-Computer-Programming-Volume-Seminumerical/dp/0201896842[Maclaren and Marsaglia], to obtain a sufficiently uniform random distribution, which is then returned. + +The error() method returns a chi-square error measure on the uniform distribution function. + +By abstract method getNumber must be provided by derived classes, and is used to obtain a uniform means of accessing random numbers. + +The RandomStream class returns a large sequence of random numbers, whose period is 2^24. However, unless the seeds are modified when each random distribution class is created, the starting position in this sequence will always be the same, i.e., the same sequence of numbers will be obtained. To prevent this, each class derived from RandomStream has an additional parameter for one of its constructors which indicates the offset in this sequence from which to begin sampling. From b5bdccbf1716f0b8f67aac9da302fb0a757b31e0 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 24 Jul 2015 14:08:40 -0400 Subject: [PATCH 081/230] Added text on UniformStream --- docs/manual.adoc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 898e7fb..88b160c 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -402,3 +402,20 @@ The error() method returns a chi-square error measure on the uniform distributio By abstract method getNumber must be provided by derived classes, and is used to obtain a uniform means of accessing random numbers. The RandomStream class returns a large sequence of random numbers, whose period is 2^24. However, unless the seeds are modified when each random distribution class is created, the starting position in this sequence will always be the same, i.e., the same sequence of numbers will be obtained. To prevent this, each class derived from RandomStream has an additional parameter for one of its constructors which indicates the offset in this sequence from which to begin sampling. + +=== UniformStream + +The UniformStream class inherits from RandomStream and returns random numbers uniformly distributed over a range specified when the instance is created. + +---- +public class UniformStream extends RandomStream +{ + public UniformStream (double lo, double hi); + public UniformStream (double lo, double hi, int StreamSelect); + public UniformStream (double lo, double hi, int StreamSelect, long MGSeed, long LCGSeed); + + public double getNumber () throws IOException, ArithmeticException; +}; +---- + +The range covers the interval specified by lo and hi. StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. From db351ea2c88708043e783830de5029c8ad0dac79 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 24 Jul 2015 14:09:37 -0400 Subject: [PATCH 082/230] Maths fixes. --- docs/manual.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 88b160c..6316c83 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -389,11 +389,11 @@ public abstract class RandomStream The multiplicative generator uses the following algorithm: -Y[i+1] = Y[i] * 55 mod 226 +Y[i+1] = Y[i] * 5^5 mod 2^26 THIS NEEDS FIXING!! -, where the period is 224, and the initial seed must be odd (Thanks to Professor I. Mitrani for his help in developing this.) +, where the period is 2^24, and the initial seed must be odd (Thanks to Professor I. Mitrani for his help in developing this.) The uniform() method uses the linear congruential generator (seed is LCGSeed, with the default value of 1878892440L) based on the algorithm in link:http://algs4.cs.princeton.edu/home/[this text], and the results of this are shuffled with the multiplicative generator (see is MGSeed, with a default value of 772531L) as suggested by link:http://www.amazon.com/Art-Computer-Programming-Volume-Seminumerical/dp/0201896842[Maclaren and Marsaglia], to obtain a sufficiently uniform random distribution, which is then returned. From bbda7170eea9af4cbba5bb6d6596a406f4d2c6f3 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 24 Jul 2015 14:10:08 -0400 Subject: [PATCH 083/230] typo --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 6316c83..9dba0cb 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -389,7 +389,7 @@ public abstract class RandomStream The multiplicative generator uses the following algorithm: -Y[i+1] = Y[i] * 5^5 mod 2^26 +Y[i+1] = Y[i] * 5^5 mod 2^26 THIS NEEDS FIXING!! From 7db22567b503816041a5f423dc6220d71f8613c0 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 24 Jul 2015 14:12:33 -0400 Subject: [PATCH 084/230] Another issue with maths --- docs/manual.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 9dba0cb..234a6cb 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -389,9 +389,9 @@ public abstract class RandomStream The multiplicative generator uses the following algorithm: -Y[i+1] = Y[i] * 5^5 mod 2^26 +Y[i+1] = Y[i] * 5^5 mod 2^26 -THIS NEEDS FIXING!! +THIS NEEDS FIXING!! plus mod superscripted?! , where the period is 2^24, and the initial seed must be odd (Thanks to Professor I. Mitrani for his help in developing this.) From 10d311a0587773fee2c77e19f80fedc50cb767e0 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 25 Jul 2015 07:15:56 -0400 Subject: [PATCH 085/230] Added ExponentialStream text. --- docs/manual.adoc | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 234a6cb..258cdfd 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -419,3 +419,20 @@ public class UniformStream extends RandomStream ---- The range covers the interval specified by lo and hi. StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. + +=== ExponentialStream + +The ExponentialStream class returns an exponentially distributed stream of random numbers with mean value specified by mean. + +---- +public class ExponentialStream extends RandomStream +{ + public ExponentialStream (double mean); + public ExponentialStream (double mean, int StreamSelect); + public ExponentialStream (double mean, int StreamSelect, long MGSeed, long LCGSeed); + + public double getNumber () throws IOException, ArithmeticException; +}; +---- + +StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. From c729799f1c15b80145ed3d407e26677269b50b0c Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 25 Jul 2015 15:12:47 -0400 Subject: [PATCH 086/230] Update manual.adoc --- docs/manual.adoc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 258cdfd..cedc277 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -436,3 +436,21 @@ public class ExponentialStream extends RandomStream ---- StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. + +=== ErlangStream + +ErlangStream returns an erlang distribution with mean mean and standard deviation sd. + +---- +public class ErlangStream extends RandomStream +{ + public ErlangStream (double mean, double sd); + public ErlangStream (double mean, double sd, int StreamSelect); + public ErlangStream (double mean, double sd, int StreamSelect, long MGSeed, long LCGSeed); + + public double getNumber () throws IOException, ArithmeticException; +}; +---- + + +=== From c4601919c769c5c7447a145b6671a1e32d799a4f Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 25 Jul 2015 15:18:39 -0400 Subject: [PATCH 087/230] Completed old section 4 on streams. Still needs an example. --- docs/manual.adoc | 56 +++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 55 insertions(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index cedc277..eb37e1e 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -452,5 +452,59 @@ public class ErlangStream extends RandomStream }; ---- +StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. + +=== HyperExponentialStream + +The HyperExponential class returns a hyper-exponential distribution of random numbers, with mean mean and standard deviation sd. + +---- +public class HyperExponentialStream extends RandomStream +{ + public HyperExponentialStream (double mean, double sd); + public HyperExponentialStream (double mean, double sd, int StreamSelect); + public HyperExponentialStream (double mean, double sd, int StreamSelect, long MGSeed, long LCGSeed); + + public double getNumber () throws IOException, ArithmeticException; +}; +---- + +StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. + +=== NormalStream + +NormalStream returns a normal distribution of random numbers, with mean mean and standard deviation sd. operator() uses the polar method due to link:http://www.amazon.com/Art-Computer-Programming-Volume-Seminumerical/dp/0201896842[Box, Muller, and Marsaglia.] + +---- +public class NormalStream extends RandomStream +{ + public NormalStream (double mean, double sd); + public NormalStream (double mean, double sd, int StreamSelect); + public NormalStream (double mean, double sd, int StreamSelect, long MGSeed, long LCGSeed); + + public double getNumber () throws IOException, ArithmeticException; +}; +---- + +StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. + +=== Draw + +The Draw class is the exception to the inheritance rule, instead using RandomStream through delegation (for historical reasons). This returns true with the probability prob, and false otherwise. + +---- +public class Draw +{ + public Draw (double p); + public Draw (double p, int StreamSelect); + public Draw (double p, int StreamSelect, long MGSeed, long LCGSeed); + + public boolean getBoolean () throws IOException; +}; +---- + +StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. + +=== Example -=== +TODO From f555bf3443cca23846bf7718329e30cf0ac2e9b3 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 26 Jul 2015 12:17:53 +0100 Subject: [PATCH 088/230] Started to add advanced elements --- docs/manual.adoc | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index eb37e1e..30cd75d 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -508,3 +508,27 @@ StreamSelect indicates the offset in the random number sequence to begin samplin === Example TODO + +== Advanced Simulation Classes + +Simulations formed by the interaction of objects derived from SimulationProcess can be considered _causal_ (synchronous) in nature: events occur at specific times and form a well defined order. However, it is sometimes necessary to simulate asynchronous real world events, e.g., processor interrupts. To do this requires finer-grained control of the scheduling of simulation processes than it provided by the scheduler; the scheduler simply activates according to simulation time, whereas asynchronous events may have different activation rules, e.g., activate when another process is terminated. + +The SimulationEntity class and others to be described in the following sections gives this required level of control to the user, extending the types of simulation which are possible with JavaSim. Asynchronous simulation processes are derived from SimulationEntity, but the implementation enables these asynchronous process to execute in the same simulation as SimulationProcess objects. However, because these processes are suspended and resumed outside of the control of the scheduler, it is possible for deadlock situations to occur. Therefore, some care must be taken when using these classes. + +In addition to the active, suspended, passive and terminated states which a simulation process can be in, asynchronous objects can also be in the following states: + +- _waiting_: the process is suspended waiting for a specific event to occur (e.g., a process to be terminated). The waiting process is _not_ placed on the scheduler queue. + +- _interrupted_: the process, which was in the waiting state, has been interrupted from this before the condition it was awaiting occurred. + +The conditions on which a process can wait, and can thus be interrupted from, are: + +- _time_: a process can attempt to wait for a specified period of simulation time. + +- _process termination_: a process can wait for the termination of another SimultionEntity process before continuing execution. + +- _semaphore_: critical regions of a simulation can be protected by semaphores, where only a single Entity process can acquire the semaphore; other processes are suspended until the semaphore is released. + +- _user specific_: it is possible for other asynchronous conditions to occur which are not covered above. + +The classes to be described in this chapter can be found in the org.javasim package. From 8a3a138fe0e53874b942ebe94c0d23956a2892a9 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 26 Jul 2015 13:42:47 +0100 Subject: [PATCH 089/230] Added async entities text --- docs/manual.adoc | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 30cd75d..165fbbc 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -532,3 +532,38 @@ The conditions on which a process can wait, and can thus be interrupted from, ar - _user specific_: it is possible for other asynchronous conditions to occur which are not covered above. The classes to be described in this chapter can be found in the org.javasim package. + +=== Asynchronous entities + +---- +public class SimulationEntity extends SimulationProcess +{ + public void Interrupt (SimulationEntity toInterrupt, boolean immediate) throws SimulationException, RestartException; + + public final void trigger (); + public void terminate (); + + protected void timedWait (double waitTime) throws SimulationException, RestartException, InterruptedException; + + protected void waitFor (SimulationEntity controller, boolean reAct) throws SimulationException, RestartException, InterruptedException; + protected void waitFor (SimulationEntity controller) throws SimulationException, RestartException, InterruptedException; + + protected void waitForTrigger (TriggerQueue _queue) throws SimulationException, RestartException, InterruptedException; + + protected void waitForSemaphore (Semaphore _sem) throws RestartException; +}; +---- + +Because SimulationEntity is derived from SimulationProcess, all of the usual simulation methods are available, and can be used in conjunction with those provided by the derived class. + +interrupt(SimulationEntity toInterrupt, boolean immediate) interrupts the asynchronous process toInterrupt, which _must_ not be *terminated* and _must_ be in the *waiting* state. toInterrupt becomes the next active process (i.e., it is moved to the head of the scheduler queue). If immediate is true then the current process is suspended immediately; it is scheduled for reactivation at the current simulation time. Otherwise, the current process continues to execute and can be suspended later in an application specific way. + +Because it is now possible for one process to wait for another to terminate the terminate() method must differ from that provided by SimulationProcess. Before the terminating process ends it moves the waiting process to the head of the scheduler queue, and then calls SimulationProcess.terminate(). Currently only a single process can wait on this termination condition, but this may change in future versions. + +wait(double t) is similar to hold(double t), with the exception that the process is moved into the *waiting* state as well as being placed on the scheduler queue. It is therefore possible to interrupt this process before the wait period has elapsed. true is returned if the process was interrupted, otherwise false is returned. + +waitFor(SimulationEntity controller, boolean reAct) suspends the current process until controller has terminated. The process is placed in the *waiting* state. If reAct is true then controller is moved to the head of the scheduler queue to become the next activate process, otherwise (the default behaviour) the application will have to activate controller. If the waiting process is interrupted then the method returns true, otherwise false. The controller and the current process must be different, i.e., it is not possible for a process to wait for itself. + +_Trigger queues_ are lists maintained by the simulation system of process waiting for specific events to occur, which are outside the scope of those described above. These will be described in the next section. waitForTrigger(TriggerQueue queue) places the current process on the trigger queue and passivates it. As with the previous methods, the return value indicates whether the process was interrupted, or triggered. + +In addition to trigger queues, process can wait on semaphores, allowing the creation of monitor regions, for example. waitForSemaphore(Semaphore sem) causes the current process to attempt to exclusively acquire the semaphore. If this is not possible then the process is suspended. Currently, a process which is waiting on a semaphore cannot be interrupted, and is not placed into the *waiting* state. As such, when this method returns the semaphore has been acquired. From f89f1868154288cdae53fd0a4d9269ef4e3173f1 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 27 Jul 2015 14:39:49 +0100 Subject: [PATCH 090/230] Added text on TriggerQueues --- docs/manual.adoc | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 165fbbc..4ae933e 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -567,3 +567,25 @@ waitFor(SimulationEntity controller, boolean reAct) suspends the current process _Trigger queues_ are lists maintained by the simulation system of process waiting for specific events to occur, which are outside the scope of those described above. These will be described in the next section. waitForTrigger(TriggerQueue queue) places the current process on the trigger queue and passivates it. As with the previous methods, the return value indicates whether the process was interrupted, or triggered. In addition to trigger queues, process can wait on semaphores, allowing the creation of monitor regions, for example. waitForSemaphore(Semaphore sem) causes the current process to attempt to exclusively acquire the semaphore. If this is not possible then the process is suspended. Currently, a process which is waiting on a semaphore cannot be interrupted, and is not placed into the *waiting* state. As such, when this method returns the semaphore has been acquired. + +=== Trigger queues + +Processes waiting for the same application controlled event can be grouped together into a TriggerQueue, as described in the previous section. When this event occurs the application can use one of the two trigger methods to activate the queue members. This involves placing the process(es) onto the head of the scheduler queue. + +---- +public class TriggerQueue +{ + public TriggerQueue (); + + public synchronized void triggerFirst (boolean setTrigger) throws NoSuchElementException; + public synchronized void triggerFirst () throws NoSuchElementException; + + public synchronized void triggerAll () throws NoSuchElementException; +}; +---- + +- triggerAll(): triggers all of the members on the queue. + +- triggerFirst(boolean setTrigger): triggers only the head of the queue. If setTrigger is true (the default behaviour) then the trigger() method of the SimulationEntity object is also invoked. + +If the queue is not empty when it is garbage collected by the virtual machine then all remaining queue members will be triggered, and placed back onto the scheduler queue. From 932f40bc2fcbb3a68f519c314f7a42764571913c Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 27 Jul 2015 14:48:54 +0100 Subject: [PATCH 091/230] Added text on Semaphore --- docs/manual.adoc | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 4ae933e..0b2f410 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -589,3 +589,45 @@ public class TriggerQueue - triggerFirst(boolean setTrigger): triggers only the head of the queue. If setTrigger is true (the default behaviour) then the trigger() method of the SimulationEntity object is also invoked. If the queue is not empty when it is garbage collected by the virtual machine then all remaining queue members will be triggered, and placed back onto the scheduler queue. + +=== Semaphores + +Application code can be protected from simulation processes through semaphores, which are instances of the Semaphore class. + +---- +public class Semaphore +{ + enum Outcome { DONE, NOTDONE, WOULD_BLOCK }; + + public Semaphore (); + public Semaphore (long number); + + public synchronized long numberWaiting (); + + public synchronized Outcome get (SimulationEntity toWait) throws RestartException; + + public synchronized Outcome tryGet (SimulationEntity toWait) throws RestartException; + + public synchronized Outcome release (); +}; +---- + +A semaphore can be used to restrict the number of processes which can use shared resources. The number of shared resources available must be presented to the Semaphore when it is created. By default, a Semaphore will assume that there is only a single resource, in which case a semaphore is exclusively acquired by a simulation process. However, it is possible to create a Semaphore with different resource counts. + +A Semaphore can exist in one of two states: + +- _available_: the semaphore is available to be acquired. + +- _unavailable_: a process (or number of processes) currently has the semaphore. If another process attempts to acquire the semaphore then it is automatically suspended until the semaphore is *available*, i.e., until a resource has been freed. + +To be able to manipulate semaphores a process must be derived from the SimulationEntity class. To obtain the semaphore, the get(SimulationEntity toWait) method should be used, where toWait is the calling process. If the semaphore is *unavailable* then the process referenced by toWait is suspended. If the semaphore is successfully acquired, then Outcome.DONE is returned, otherwise Outcome.NOTDONE. + +If the process wishes to attempt to acquire the semaphore but does not want to block in the situation where the semaphore is currently unavailable, then it can use the tryGet method, which takes the same parameter as get. However, unlike get, tryGet will return Outcome.WOULD_BLOCK in the case where the caller would normally block if it had called get, i.e., the semaphore is currently in use. If the semaphore is not being used, then tryGet will acquire it for the caller. Errors will result in Outcome.NOT_DONE being returned. + +When the semaphore is no longer required release() should be called by the process which currently has it. Successful release of the semaphore results in Outcome.DONE being returned, otherwise Outcome.NOTDONE is returned. + +numberWaiting() returns the number of processes currently suspended waiting for the semaphore. + +If the semaphore is garbage collected with processes waiting for it then an error message is displayed. No further action is attempted on behalf of these waiting processes. + +=== Example From 43413ce0c744be574f69a305a624156b4f783299 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 27 Jul 2015 14:52:30 +0100 Subject: [PATCH 092/230] Started statistics section. --- docs/manual.adoc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 0b2f410..95f43ec 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -631,3 +631,7 @@ numberWaiting() returns the number of processes currently suspended waiting for If the semaphore is garbage collected with processes waiting for it then an error message is displayed. No further action is attempted on behalf of these waiting processes. === Example + +== Statistical classes + +The purpose of a simulation typically involves the gathering of relevant statistical information, e.g., the average length of time spent in a queue. JavaSim provides a number of different classes for gathering such information. These classes can be found in the org.javasim.stats package. From a8b1d2b8f34232565d3be145bc930d59a47856be Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 28 Jul 2015 14:28:33 +0100 Subject: [PATCH 093/230] Added initial Mean text Needs maths fixing up. --- docs/manual.adoc | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 95f43ec..58d0946 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -635,3 +635,54 @@ If the semaphore is garbage collected with processes waiting for it then an erro == Statistical classes The purpose of a simulation typically involves the gathering of relevant statistical information, e.g., the average length of time spent in a queue. JavaSim provides a number of different classes for gathering such information. These classes can be found in the org.javasim.stats package. + +=== Mean + +This is the basic class from which others are derived, gathering statistical information on the samples provided to it. + +---- +public class Mean +{ + public void setValue (double value) throws IllegalArgumentException; + + public void reset (); + + public int numberOfSamples (); public double min (); + + public double max (); public double sum (); public double mean (); + + public boolean saveState (String fileName) throws IOException; + + public boolean saveState (DataOutputStream oFile) throws IOException; + + public boolean restoreState (String fileName) throws FileNotFoundException, IOException; + + public boolean restoreState (DataInputStream iFile) throws IOException; + + public void print (); +}; +---- + +New values can be supplied to the instance of the Mean class using the setValue(double) method. The number of samples which have been give can be obtained from numberOfSamples(). + +The maximum and minimum of the samples supplied can be obtained from the max() and min() methods, respectively. + +sum() returns the summation of all of the samples: + +n +Σ Si + +i=1 + +mean() returns the mean value: + +n +1_n Σ Si + +i=1 + +An instance of Mean can be reset between samples using the reset() method. + +If the state of a Mean object is required to be saved between simulation runs then it can be made persistent by using either of the saveState methods. The first instance saves the state to a file, whereas the second can be used to save the state to an instance of the java.io.DataOutputStream class. There are likewise two corresponding ways in which the state can be restored. + +The print method simply prints to System.out the current state of the object. From 2c09394b0193954330b8d035e32d1756a8b79d2b Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 29 Jul 2015 17:37:27 +0100 Subject: [PATCH 094/230] Added variance text --- docs/manual.adoc | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 58d0946..c405f84 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -686,3 +686,47 @@ An instance of Mean can be reset between samples using the reset() method. If the state of a Mean object is required to be saved between simulation runs then it can be made persistent by using either of the saveState methods. The first instance saves the state to a file, whereas the second can be used to save the state to an instance of the java.io.DataOutputStream class. There are likewise two corresponding ways in which the state can be restored. The print method simply prints to System.out the current state of the object. + +=== Variance + +This class is derived from Mean, and in addition to providing the above mentioned functionality also provides the following: + +---- +public class Variance extends Mean +{ + public void setValue (double value) throws IllegalArgumentException; + + public void reset (); + + public double variance (); + public double stdDev (); + + public double confidence (double value); + + public void print (); + + public boolean saveState (String fileName) throws IOException; + public boolean saveState (DataOutputStream oFile) throws IOException; + + public boolean restoreState (String fileName) throws FileNotFoundException, IOException; + public boolean restoreState (DataInputStream iFile) throws IOException; +}; +---- + +variance() returns the variance of the samples: + +1 +n + + +2 + +_ +Σ (Si-Mean()) + +n + +i=1 + + +stdDev() returns the standard deviation of the samples, which is the square root of the variance. From 16286a60821298e8ae92d7497dc1fff6494eab08 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 30 Jul 2015 17:25:00 +0100 Subject: [PATCH 095/230] TimeVariance text added --- docs/manual.adoc | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index c405f84..382ffaa 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -730,3 +730,26 @@ i=1 stdDev() returns the standard deviation of the samples, which is the square root of the variance. + +=== TimeVariance + +The TimeVariance class makes it possible to determine how long, in terms of simulation time, specific values were maintained. In effect, values are weighted according to the length of time that they were held, whereas with the Variance class only the specific values are taken into account. + +---- +public class TimeVariance extends Variance +{ + public void reset (); + + public void setValue (double value) throws IllegalArgumentException; + + public double timeAverage (); + + public boolean saveState (String fileName) throws IOException; + public boolean saveState (DataOutputStream oFile) throws IOException; + + public boolean restoreState (String fileName) throws FileNotFoundException, IOException; + public boolean restoreState (DataInputStream iFile) throws IOException; +}; +---- + +Whenever a value is supplied to an instance of the TimeVariance class the simulation time at which it occurred is also noted. If a value changes, or the timeAverage() method is invoked, then the time it has been maintained for is calculated and the statistical data is updated. From 99c480a721787980a63700613d54ae564b6d4d11 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 31 Jul 2015 07:46:14 +0100 Subject: [PATCH 096/230] Started text on histograms --- docs/manual.adoc | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 382ffaa..cebb349 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -753,3 +753,35 @@ public class TimeVariance extends Variance ---- Whenever a value is supplied to an instance of the TimeVariance class the simulation time at which it occurred is also noted. If a value changes, or the timeAverage() method is invoked, then the time it has been maintained for is calculated and the statistical data is updated. + +=== Histograms + +Mean, Variance, and TimeVariance provide a snapshot of values in the simulation. However, histograms can yield better information about how a range of values change over the course of a simulation run. This information can be viewed in a number of ways, but typically it is plotted in graphical form. + +A histogram typically maintains a slot for each value, or range of values, given to it. These slots are termed _buckets_, and the way in which these buckets are maintained and manipulated gives rise to a variety of different histogram implementations. The following sections detail this variety of different histogram classes. + +==== PrecisionHistogram + +The PrecisionHistogram class represents the core histogram class from which all others are derived. This class keeps an exact tally of all values given to it, i.e., a bucket is created for each value. Although buckets are only created when requires, over the course of a simulation this can still utilise a large amount of resources, and so other, less precise, histogram classes are provided. + +---- +public class PrecisionHistogram extends Variance +{ + public void setValue (double value) throws IllegalArgumentException; + + public void reset (); + + public long numberOfBuckets (); + + public double sizeByIndex (long index) throws StatisticsException, IllegalArgumentException; + public double sizeByName (double name) throws IllegalArgumentException; + + public boolean saveState (String fileName) throws IOException; + public boolean saveState (DataOutputStream oFile) throws IOException; + + public boolean restoreState (String fileName) throws FileNotFoundException, IOException; + public boolean restoreState (DataInputStream iFile) throws IOException; + + public void print (); +}; +---- From c2fa964834e7dddc0a290d0a9c92005ef2d7fbd3 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 31 Jul 2015 07:48:06 +0100 Subject: [PATCH 097/230] Completed PrecisionHistogram text --- docs/manual.adoc | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index cebb349..0e2edc0 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -785,3 +785,17 @@ public class PrecisionHistogram extends Variance public void print (); }; ---- + +As with the Variance class from which it is derived, and whose methods are obviously available, values can be supplied to the histogram through the setValue(double) method. + +The number of buckets maintained by the histogram can be obtained from the numberOfBuckets() method. Each bucket is uniquely named by the values it contains, and can also be accessed by its index in the entire list of buckets. + +There are therefore two ways of getting the number of entries in a bucket: + +- by the index number of the bucket: sizeByIndex(long index). + +- by the unique name of the bucket: sizeByName(double name). + +If the bucket does not exist then each of these methods throws IllegalArgumentException. + +It is possible to output the contents of the histogram to standard output using the print()method. From ad36634c9b87a015548ffd7d3676fee596bce99c Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 1 Aug 2015 10:56:34 +0100 Subject: [PATCH 098/230] Added Histogram text --- docs/manual.adoc | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 0e2edc0..114aab0 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -799,3 +799,33 @@ There are therefore two ways of getting the number of entries in a bucket: If the bucket does not exist then each of these methods throws IllegalArgumentException. It is possible to output the contents of the histogram to standard output using the print()method. + +==== Histogram + +The problem with the PrecisionHistogram class is that it can use up a lot of system resources, especially over the course of a long simulation. Histogram attempts to alleviate this by presenting a histogram which is less accurate, but consumes less resources. Instead of maintaining a bucket for each individual value, it keeps a fixed number of buckets. Initially each bucket will store separate values as in the PrecisionHistogram, but when the number of required buckets would exceed the specified maximum number it merges pairs of buckets, thus reducing their total. The policy used when merging buckets it set on a per instance basis when created. Current policies are: + +- ACCUMULATE: create a new bucket with the same name as the largest of the two buckets, and it has the sum of the two old bucket entries as its entry number. + +- MEAN: create a new bucket with the name as the mean of the two old buckets, and it has the sum of the two old bucket entries as its entry number. + +- MAX: create a new bucket with the name as the largest of the two buckets, and it has the same number of entries. +- MIN: create a new bucket with the name as the smallest of the two old buckets, and it has the same number of entries. + +---- +public class Histogram extends PrecisionHistogram +{ + public Histogram (long maxIndex, int mergeChoice); public Histogram (long maxIndex); + + public void setValue (double value) throws IllegalArgumentException; + + public boolean saveState (String fileName) throws IOException; + public boolean saveState (DataOutputStream oFile) throws IOException; + + public boolean restoreState (String fileName) throws FileNotFoundException, IOException; + public boolean restoreState (DataInputStream iFile) throws IOException; + + public void print (); +}; +---- + +When an instance of Histogram is created, the maximum number of allowed buckets must be specified. The merging algorithm can also be provided, with the default being the MEAN policy. From 17a61103412241bf6b2ea1749df3ba2936baff7e Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 2 Aug 2015 10:40:20 +0100 Subject: [PATCH 099/230] Added text on SimpleHistogram --- docs/manual.adoc | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 114aab0..9261e8e 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -829,3 +829,37 @@ public class Histogram extends PrecisionHistogram ---- When an instance of Histogram is created, the maximum number of allowed buckets must be specified. The merging algorithm can also be provided, with the default being the MEAN policy. + +==== SimpleHistogram + +As with the Histogram class above, SimpleHistogram keeps the number of assigned buckets to a minimum. However, it does this by pre-creating the buckets when it is created, i.e., the number of required buckets must be provided at the start. A width is the assigned for each bucket, and whenever a value if given to the histogram class it is placed into the bucket whose width it falls within. + +---- +public class SimpleHistogram extends PrecisionHistogram +{ + public SimpleHistogram (double min, double max, long nbuckets); + public SimpleHistogram (double min, double max, double w); + + public void setValue (double value) throws IllegalArgumentException; + + public void reset (); + + public double sizeByName (double name) throws IllegalArgumentException; + + public double width (); + + public void print (); + + public boolean saveState (String fileName) throws IOException; + public boolean saveState (DataOutputStream oFile) throws IOException; + + public boolean restoreState (String fileName) throws FileNotFoundException, IOException; + public boolean restoreState (DataInputStream iFile) throws IOException; +}; +---- + +When the class is instantiated, the range of values it will receive must be provided. Then, either the width of each bucket or the actual number of buckets can be given. If the width is +provided, then the histogram automatically calculates the number of buckets, otherwise it calculates the width for each bucket by equally dividing the range between each bucket. +The values of a bucket can be obtained from the sizeByName method. + +The width of each bucket is provided by the width method. From 85c79d2ca32b55a4e487c64cac462b4790d90615 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 3 Aug 2015 04:04:43 +0100 Subject: [PATCH 100/230] Quantile text --- docs/manual.adoc | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 9261e8e..cb3c2c8 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -863,3 +863,24 @@ provided, then the histogram automatically calculates the number of buckets, oth The values of a bucket can be obtained from the sizeByName method. The width of each bucket is provided by the width method. + +==== Quantile + +The Quantile class provides a means of obtaining the p-quantile of a distribution of values, i.e., the value below which p-percent of the distribution lies. + +---- +public class Quantile extends PrecisionHistogram +{ + public Quantile (); + public Quantile (double q) throws IllegalArgumentException; + + public double getValue (); + public double range (); + + public void print (); +}; +---- + +The p-quantile probability range must be specified when the object is instantiated, and can be obtained via the range method. + +The actual quantile value is provided by getValue method. From 49e6a7c6d0ed51a29719e014c74e560f3804ab74 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 4 Aug 2015 17:49:38 +0100 Subject: [PATCH 101/230] Added section on example in stats. Also removed to whitespace. --- docs/manual.adoc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index cb3c2c8..42e3454 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -869,10 +869,10 @@ The width of each bucket is provided by the width method. The Quantile class provides a means of obtaining the p-quantile of a distribution of values, i.e., the value below which p-percent of the distribution lies. ---- -public class Quantile extends PrecisionHistogram +public class Quantile extends PrecisionHistogram { - public Quantile (); - public Quantile (double q) throws IllegalArgumentException; + public Quantile (); + public Quantile (double q) throws IllegalArgumentException; public double getValue (); public double range (); @@ -884,3 +884,5 @@ public class Quantile extends PrecisionHistogram The p-quantile probability range must be specified when the object is instantiated, and can be obtained via the range method. The actual quantile value is provided by getValue method. + +=== Example From 7d84e2e1f9481b57e7938d578aabb037f717e38e Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 4 Aug 2015 17:55:27 +0100 Subject: [PATCH 102/230] Removed as now in asciidoc version https://github.com/nmcl/JavaSim/issues/33 --- docs/pdf-rawtext | 1439 --------------------------------- docs/rtf-rawtext | 1970 ---------------------------------------------- 2 files changed, 3409 deletions(-) delete mode 100644 docs/pdf-rawtext delete mode 100644 docs/rtf-rawtext diff --git a/docs/pdf-rawtext b/docs/pdf-rawtext deleted file mode 100644 index 8ea546e..0000000 --- a/docs/pdf-rawtext +++ /dev/null @@ -1,1439 +0,0 @@ -Object-OrientedDiscrete-EventSimulation in Java - -JavaSim User’s GuidePublic Release 0.3Version 1.0 - -Department of Computing Science,Computing Laboratory,The University, Newcastle upon Tyne,NE1 7RU, UK. - - - - -The JavaSim User’s ManualsCopyright Notice:Copyright 1995-1999,Computing Laboratory, University of Newcastle upon Tyne, UK.Permission to use, copy, modify and distribute the JavaSim software for evaluation, teachingand/or research purposes only and without fee is hereby granted, providing that thiscopyright and permission notice appear on all copies and supporting documentation, andthat similar conditions are imposed on any individual or organisation to whom the programis distributed.The University of Newcastle upon Tyne makes no representation about the suitability of thissoftware for any purpose. It is provided "as is" without express or implied warranty. - - - - -The JavaSim User’s ManualsTable of Contents1.PREFACE...................................................................................................................................................51.1AVAILABILITY...........................................................................................................................................52.INTRODUCTION.......................................................................................................................................62.1SIMULATION MODELS................................................................................................................................62.2TERMINOLOGY..........................................................................................................................................62.3CATEGORIES OF SIMULATION MODELS.......................................................................................................72.4EVENT SCHEDULING..................................................................................................................................73.BASIC SIMULATION CLASSES.............................................................................................................93.1THE SIMULATION SCHEDULER...................................................................................................................93.1.1Scheduler class interface..............................................................................................................103.2SIMULATION PROCESSES.........................................................................................................................103.2.1SimulationProcess class interface................................................................................................113.2.2Example........................................................................................................................................143.3STARTING, ENDING AND CONTROLLING A SIMULATION............................................................................143.3.1Suspending the main thread.........................................................................................................153.3.2Exiting the application.................................................................................................................153.3.3Controlling the simulation............................................................................................................163.4RESETTING A SIMULATION.......................................................................................................................163.4.1Example........................................................................................................................................174.DISTRIBUTION FUNCTIONS...............................................................................................................184.1RANDOMSTREAM....................................................................................................................................184.2UNIFORMSTREAM...................................................................................................................................194.3EXPONENTIALSTREAM............................................................................................................................194.4ERLANGSTREAM.....................................................................................................................................204.5HYPEREXPONENTIALSTREAM.................................................................................................................204.6NORMALSTREAM....................................................................................................................................204.7DRAW.....................................................................................................................................................214.8EXAMPLE................................................................................................................................................215.ADVANCED SIMULATION CLASSES................................................................................................225.1ASYNCHRONOUS ENTITIES......................................................................................................................235.2TRIGGER QUEUES....................................................................................................................................245.3SEMAPHORES..........................................................................................................................................255.4EXAMPLE................................................................................................................................................266.STATISTICAL CLASSES.......................................................................................................................276.1MEAN.....................................................................................................................................................276.2VARIANCE...............................................................................................................................................286.3TIMEVARIANCE......................................................................................................................................286.4HISTOGRAMS..........................................................................................................................................296.4.1PrecisionHistogram......................................................................................................................296.4.2Histogram.....................................................................................................................................306.4.3SimpleHistogram..........................................................................................................................316.4.4Quantile........................................................................................................................................327.JAVASIM CLASSES................................................................................................................................337.1SCHEDULER............................................................................................................................................337.2SIMULATIONPROCESS.............................................................................................................................347.3SIMULATIONEXCEPTION..........................................................................................................................357.4RESTARTEXCEPTION...............................................................................................................................357.5RANDOMSTREAM....................................................................................................................................357.6UNIFORMSTREAM...................................................................................................................................357.7EXPONENTIALSTREAM............................................................................................................................367.8ERLANGSTREAM.....................................................................................................................................36 - - - - -The JavaSim User’s Manuals7.9HYPEREXPONENTIALSTREAM.................................................................................................................367.10NORMALSTREAM...............................................................................................................................367.11DRAW................................................................................................................................................377.12SIMULATIONENTITY...........................................................................................................................377.13TRIGGERQUEUE.................................................................................................................................377.14SEMAPHORE.......................................................................................................................................387.15MEAN.................................................................................................................................................387.16VARIANCE..........................................................................................................................................397.17TIMEVARIANCE..................................................................................................................................397.18PRECISIONHISTOGRAM.......................................................................................................................407.19HISTOGRAM.......................................................................................................................................407.20SIMPLEHISTOGRAM............................................................................................................................417.21QUANTILE..........................................................................................................................................417.22STATISTICSEXCEPTION.......................................................................................................................418.REFERENCES..........................................................................................................................................429.INDEX.......................................................................................................................................................43 - - - - -The JavaSim User’s Manuals1. PrefaceJavaSim is a Java implementation of the original C++SIM simulation toolkit, which wasdeveloped as a direct consequence of research conducted within the scope of the Arjunaproject [8]. Therefore, it shares many of the same requirements:•easy to learn and use: the interface to the simulation library should be easy tounderstand.•correct abstraction: existing Java programmers should not find the simulationparadigm in conflict with the programming paradigm presented by Java. Simulationprogrammers used to other environments should find the transition to JavaSimstraightforward.•flexible and extensible: it should be relatively easy for anyone to add newfunctionality to the system, such as new distribution functions.•efficiency: the system should be efficient and produce efficient simulation runs.Simulation packages which we have experience of tended to be extremely slow andconsume large amounts of system resources.These requirements were realised in the following design decisions:•the discrete-event process based simulation facilities provided by SIMULA [1][2]and its simulation classes and libraries have a considerable experience and usercommunity which have found them to be successful for a wide variety ofsimulations. In later versions of the system additional simulation classes were addedwhich provide extra functionality.1•inheritance was to be used throughout the design to even a greater extent than isalready provided in SIMULA. This enables JavaSim to be more flexible andextensible, allowing new functionality to be added without affecting the overallsystem structure. For example, our I/O facilities, random number generators andprobability distribution functions are entirely object-oriented, relying on inheritanceto specialise their behaviour.1.1 AvailabilityJavaSim has been tested with JDK 1.0.2 and 1.1.x on Solaris, linux, and Windows 95/NT 4.0.Technical questions about JavaSim can be sent to M.C.Little@ncl.ac.uk. - -1It is not necessary for the reader to know anything about the SIMULA programming language or its simulationclasses, but such knowledge would aid in the understanding of the concepts and classes presented within. - - - - -The JavaSim User’s Manuals2. IntroductionThis manual is not intended as a tutorial on the concepts of simulation in general, but ratherhow to write simulations in the JavaSim system. However, in order to be able to do thiscertain key simulation concepts will be briefly described. The interested reader is referred to[6] for detailed descriptions of these concepts and for further discussions on simulationmodelling.2.1 Simulation modelsTo model a system is to replace it by something which is:•simpler and/or easier to study.•equivalent to the original in all important respects.Therefore, before constructing the actual simulation, it is first necessary to abstract from thereal system those components and their interactions that are considered important for theactual model. Building a simulation system model involves making certain simplifyingassumptions to aid in the actual implementation and study of the simulation (without suchsimplifications the model would be as complex as the system it is meant to be simulating).However, the accuracy of the results obtained from the simulation depend upon how valid theinitial assumptions are. For example, when considering the trajectory of a projectile throughthe atmosphere, the friction due to the air molecules is usually ignored. This assumption isvalid only within certain boundaries: if the size of the projectile is on the same scale as the airmolecules and its speed is sufficiently small then friction plays a significant role in itsmovement.Thus, the first step towards building a simulation model of a system is to determine exactlywhat are the important features which are to be measured, and what characteristics of thesystem have an affect on them. Any boundary conditions for the simulation (e.g., size ofprojectile) should be considered at the same time in order to simplify this procedure. Buildinga final model can often take several phases, where results from the initial model are comparedwith those obtained from the real system to determine their accuracy. Any discrepancies aretaken into account by possibly adding new components to the simulation until, within certainerror boundaries, the simulation results match those from the real system.2.2 TerminologyThe system components chosen for the simulation are termed simulation entities. Associatedwith each entity in the simulation are zero or more attributes that describe the state of theentity and which may vary during the course of the simulation. The interaction of entities andthe changes they cause in the system state are termed events.The collection of these component attributes at any given time t defines the system state at t.In general, the system state can take any of a variety of values, and a given simulation runresults in one realisation of a set of these values (the operation path) over the observationperiod. - - - - -The JavaSim User’s Manuals2.3 Categories of simulation modelsThere are three categories of simulation model, described by the way in which the systemstate changes as a function of time:•Continuous time: is one whose state varies continuously with time; such systems areusually described by sets of differential equations.•Discrete time: the system is considered only at selected moments in time (theobservation points). These moments are typically evenly spaced. Some economicsmodels are examples of this, where economics data becomes available at fixedintervals. Changes in state are noticed only at observation points. By choosing asuitably small interval between observation points, a continuous time simulation canbe approximated by a discrete time simulation.•Continuous time-discrete event: the time parameter is (conceptually) continuous andthe observation period is a real interval, usually starting at zero for simplicity. Theoperation path is completely determined by the sequence of event times (which neednot be evenly spaced and can be of arbitrary increments) and by the discrete changesin the system state which take place at these times (i.e., the interactions of theevents). In between consecutive event times the system state may vary continuously.Although it is possible to model the passage of real time by suitable event timing,this is not necessary for a discrete event system: the simulation model can advanceits own internal time directly from one discrete event to another, taking anyappropriate action to advance the state accordingly.It is this latter category of simulation modelling that JavaSim supports. Examples of discrete-event simulations are most queuing problems: entities (e.g., customers in a bank) arriveaccording to a given distribution and change the system state instantaneously (e.g., thenumber of customers in the queue). The operation paths for this system are step functions:they jump up (or down) by one when a customer joins (or leaves) the queue.2.4 Event schedulingGiven that a simulation consists of a series of interacting events (the operation path), asimulator can be defined as that program devoted to the generation of operation paths. Thesimulator allows the creation of events and controls their interactions according to a set ofrules, using an internal “clock” to keep track of the passage of (simulation) time.It maintains an event list, which indicates which events are to be scheduled for execution atspecific simulation times. Events are executed according to their simulation times. There aretwo approaches to the way in which a simulator can schedule events to produce an operationpath:•event-oriented: there is a procedure associated with each type of event in the system:it performs the action required to handle that type of event and it is invoked everytime such an event occurs. In an event�oriented approach, an operation path isobtained by taking a global view of everything that happens in the system; themanipulation of events is explicit.•process-oriented: an operation path is obtained by the interacting of a number ofprocesses running in parallel. The management of events is implicit in themanagement of the processes. The simulation system provides primitives for placingprocesses at particular points on the event list, removing and re�scheduling them. - - - - -The JavaSim User’s ManualsThe process-oriented approach best fits with the object-oriented paradigm which we want topresent to the programmer of JavaSim. As in SIMULA, simulation processes then becomeactive objects which interact with each other through message passing and the simulationprimitives. Refinements of these objects can then be obtained by inheriting from them andredefining the appropriate methods. - - - - -The JavaSim User’s Manuals3. Basic simulation classesThis chapter describes the core elements of the JavaSim simulation system. It is not intendedas a tutorial on Java, and basic knowledge of the language is assumed. Note, all of the classesdescribed in this section can be found in the arjuna.JavaSim.Simulation package.3.1 The simulation schedulerChapter 2 described the event list and how simulation entities (processes) are executedaccording to their position on the event list (i.e., with increasing simulation time). In JavaSim,as in SIMULA, simulation processes are managed by a scheduler and are placed on ascheduler queue (the event list). Processes are executed in pseudo-parallel, i.e., only oneprocess executes at any instance of real time, but many processes may execute concurrently atany instance of simulation time. The simulation clock is only advanced when all processeshave been executed for the current instance of simulation time.Inactive processes are placed on to the scheduler queue, and when the current active processyields control to the scheduler (either because it has finished or been placed back onto thescheduler queue), the scheduler removes the process at the head of the queue and re-activatesit.2 When the scheduler queue is empty, i.e., there are no further processes left to execute, thescheduler terminates the simulation. - -t1t2t2t3t0Active ProcessSchedulerScheduler Queue - -Figure 1: Scheduler-Process InteractionAs Figure 1 shows, the scheduler co-ordinates the entire simulation run, effectivelymonitoring the active and passive processes to enable it to determine when, and which,process to activate next. A simulation application cannot affect the scheduler directly, but cando so only indirectly through modifications of the scheduler queue.Note: the scheduler queue can be structured in a variety of ways, including a linear list or atree. The implementation of the queue can depend upon the type of simulation beingconducted. For example, a simulation which involves many (concurrent) processes wouldsuffer from using a linear ordered queue which would typically have insertion and removalroutines with overheads proportional to the number of entries in the queue. However, a linear - -2In SIMULA the currently active process is not removed from the head of the queue. - - - - -The JavaSim User’s Manualslist may work best for a low number of simulation processes. JavaSim comes with a suite ofscheduler queue implementations which can be chosen when the system is built.3.1.1 Scheduler class interfaceThe scheduler is an instance of the Scheduler class. It is the responsibility of theapplication programmer to ensure that only a single instance of this class is created.public class Scheduler - -{ - - public static double CurrentTime (); - - public static synchronized void reset (); - - public static synchronized boolean simulationReset (); - - public static synchronized void startSimulation (); - -}; - -The scheduler maintains the simulation clock, and the current value of this clock is obtainedby invoking the CurrentTime() method.To enable multiple simulation runs to occur within a single application, it is possible to resetthe scheduler and simulation clock by calling the reset() method. This causes thescheduler to remove all processes (simulation objects) currently registered on the schedulerqueue and to invoke a class specific method on each of them which resets their states(detailed in the next section). Once this is finished the simulation is ready for an additionalrun. A suspended process is informed that it has been “reset” by having the method it calledto originally suspend itself (i.e., place itself on the scheduler queue) raise theRestartSimulation exception, which the object should catch. It must then perform anywork necessary to put itself back in a state ready for restarting the simulation, and should thensuspend itself again before the simulation can be restarted (typically by calling Cancel.)3.2 Simulation processesAs was described in the previous chapter, JavaSim supports the process�oriented approach tosimulation, where each simulation entity can be considered a separate process. Therefore inJavaSim the entities within a simulation are represented by process objects. These are Javaobjects which have an independent thread of control associated with them at creation time,allowing them to convey the notion of activity necessary for participating in the simulation.In keeping with the object�oriented paradigm, and to make development of process objectssimpler, classes inherit the process functionality from the appropriate base class (Process).This class defines all of the necessary operations for the simulation system to control thesimulation entities within it, and for them to interact with it and each other.At any point in simulation time, a process can be in one (and only one) of the followingstates:•active: the process has been removed from the head of the scheduler queue and itsactions are being executed.•suspended: the process is on the scheduler queue, scheduled to become active at aspecified simulation time.•passive: the process is not on the scheduler queue. Unless another process brings itback on to the queue it will not execute any further actions. - - - - -The JavaSim User’s Manuals•terminated: the process is not on the scheduler queue and has no further actions toexecute. Once a process has been terminated it cannot be made to execute further inthe same simulation run.A process which is either active or suspended is said to be scheduled.3.2.1 SimulationProcess class interfaceThe SimulationProcess class definition is shown below. Before considering how tobuild an example class derived from SimulationProcess we shall discuss the methodswhich it provides.Because the constructors are protected, it is not possible to create an instance of theSimulationProcess class, i.e., classes must be derived from this. Processes are threadedobjects, and typically each thread package schedules execution of threads according to apriority. By default, all processes in JavaSim are created with the same priority, but this canbe altered by calling the setPriority method of java.lang.Thread. Note, however,that priorities have no effect on a simulation run.public class SimulationProcess extends Thread - -{ - -public final double Time (); - -public synchronized SimulationProcess next_ev () - - throws SimulationException, NoSuchElementException; - - - - -The JavaSim User’s Manualspublic final double evtime (); - -public void ActivateBefore (SimulationProcess p) - - throws SimulationException, RestartException; - -public void ActivateAfter (SimulationProcess p) throws SimulationException, - - RestartException; - -public void ActivateAt (double AtTime, boolean prior) - - throws SimulationException, - - RestartException; - -public void ActivateAt (double AtTime) throws SimulationException, - - RestartException; - -public void ActivateDelay (double Delay, boolean prior) - - throws SimulationException, - - RestartException; - -public void ActivateDelay (double Delay) throws SimulationException, - - RestartException; - -public void Activate () throws SimulationException, RestartException; - -public void ReActivateBefore (SimulationProcess p) - - throws SimulationException, RestartException; - -public void ReActivateAfter (SimulationProcess p) - - throws SimulationException, RestartException; - -public void ReActivateAt (double AtTime, boolean prior) - - throws SimulationException, - - RestartException; - -public void ReActivateAt (double AtTime) throws SimulationException, - - RestartException; - -public void ReActivateDelay (double Delay, boolean prior) - - throws SimulationException, - - RestartException; - -public void ReActivateDelay (double Delay) throws SimulationException, - - RestartException; - -public void ReActivate () throws SimulationException, RestartException; - -public void Cancel () throws RestartException; - -public void terminate (); - -public synchronized boolean idle (); - -public boolean passivated (); - -public boolean terminated (); - -public static SimulationProcess current () throws SimulationException; - -public static double CurrentTime (); - -public static void mainSuspend (); - -public static void mainResume () throws SimulationException; - -protected SimulationProcess (); - -protected void set_evtime (double time) throws SimulationException; - -protected void Hold (double t) throws SimulationException, - - RestartException; - -protected void Passivate () throws RestartException; - -protected void Suspend () throws RestartException; - -protected void Resume (); - -}; - -There are five ways to activate a currently passive process, which results in it being broughtto the correct position in the scheduler queue corresponding to its associated simulation time.If this is the head of the queue then it will become the active process. - - - - -The JavaSim User’s Manuals•Activate(): this activates the process at the current simulation time.•ActivateBefore(SimulationProcess proc): this positions the processin the scheduler queue before proc, and gives it the same simulation time. If procis not present then a SimulationException will be thrown.•ActivateAfter(SimulationProcess proc): this positions the process inthe scheduler queue after proc, and gives it the same simulation time. If proc isnot present then a SimulationException will be thrown.•ActivateAt(double AtTime, boolean prior): the process is insertedinto the scheduler queue at the position corresponding to the simulation timespecified by AtTime. The default for this time is the current simulation time. Theprior parameter is used to determine whether this process should be insertedbefore or after any processes with the same simulation time which may already bepresent in the queue. The default is false.•ActivateDelay(double AtTime, boolean prior): the process isactivated after a specified delay (AtTime). The process is inserted into the queuewith the new simulation time, and the prior parameter is used to determine itsordering with respect to other processes in the queue with the same time. The defaultis false.There are correspondingly five ReActivate methods, which work on either passive orscheduled processes. These will not be described in detail as they have similar signatures totheir Activate counterparts and work in the same way.Hold(double period) schedules the currently active process for re-activation after thesimulated delay of period time. If this is invoked by the object (e.g., through a publiclyavailable method) when it is not the current active process then it does nothing.evtime() returns the time at which the process is scheduled for activation.next_ev() returns a reference to the next process to be scheduled for execution. If thequeue is empty then null is returned.The static method current() returns a reference to the currently active process.The current simulation time can be obtained by using either the CurrentTime() orTime() methods. The former method is static and as such can be invoked without aninstance of the SimulationProcess class.Cancel() removes the process from the scheduler queue or suspends it if it is the currentlyactive process. In either case, the process is set to the passive state. Passivate() functionssimilarly but only works on the currently active process, i.e., if it is invoked by the object(e.g., through a publicly available method) when it is not the current active process then itdoes nothing.terminate() removes the process from the scheduler queue or it is suspended if it iscurrently active. The process is then set to the terminated state, and can take no further part inthis simulation run.idle() returns false if the process is either active or scheduled to become active.Otherwise true is returned. - - - - -The JavaSim User’s Manualspassivated() and terminated() indicate whether the process is in the passive orterminated state, respectively.Because SimulationProcess extends the java.lang.Thread class it is necessaryfor the simulation class to provide an implementation of the run method which will do theactual work for the process. If this method ever returns then the thread is destroyed. However,in order for JavaSim to detect the termination of the thread, the terminate() method mustbe used instead.3.2.2 ExampleTo illustrate how a simulation process could be implemented from the Process class weshall consider the example of a queue of customers arriving at a bank. For this example, thisinvolves three classes:•Customer: instances of this class represent the customers in the queue.•Queue: the instance of this class (queue) is the queue into which customers areplaces.•Arrivals: this is the process which creates new customers for insertion in queue.The implementations of the Customer and Queue classes are not important to thisexample. The implementation of the Arrivals class could be:class Arrivals : public Process - -{ - -public: - - Arrivals () {}; - - ~Arrivals () {}; - - void Body (); - -}; - -void Arrivals::Body () - -{ - - for (;;) - - { - - Customer* c = new Customer(); - - queue.insert(c); - - Hold(20.0); - - } - -} - -3.3 Starting, ending and controlling a simulationWhen a SimulationProcess object is created in JavaSim it starts in the passive state,and must be activated before it can take part in the simulation. This is typically performed bythe first process object to which control is transferred after the simulation is initially started.When writing JavaSim applications it is typical for the main thread to create a singlecontroller process which is responsible for co-ordinating the entire simulation run. Thiscreates and activates all of the simulation entities and the scheduler, and provides methods forsuspending the main thread, thus allowing the controller object to execute, and exiting theapplication. An example controller interface is shown below, and the implementations for itsmethods will be described in the following sections: - - - - -The JavaSim User’s Manualspublic class Controller extends SimulationProcess - -{ - -public Controller (); - -public void run (); - -public void await (); - -public void exit (); - -}; - -Because Controller is a simulation process itself, it derives from Simulationrocessand defines a run() method, which will do the actual controlling of the simulation. It alsoprovides the following methods:•await(): this method is called within the main application thread and suspends it,effectively transferring control the Controller process.•exit(): this method is called to exit the simulation.3.3.1 Suspending the main threadWhen a threaded application is started it is important to realise that before any applicationthreads are created, the Java virtual machine has already created one to run the application.This thread must be suspended before any simulation threads can run.The await() method of Controller is responsible for suspending this thread:public void await () - -{ - - Resume(); - - SimulationProcess.mainSuspend(); - -} - -It must first resume the thread associated with the Controller instance (sinceController is a SimulationProcess it starts in the passive state). This thread doesnot execute until the main thread is suspended by the call to the static mainSuspendmethod.The code for main would then become:public static void main (String[] args) - -{ - - Controller c = new Controller(); - - c.await(); - -} - -3.3.2 Exiting the applicationIn order to exit a simulation application, the application can call System.exit. However,if it is only necessary to resume the main thread, then this can be accomplished by using thestatic mainResume method of the SimulationProcess class. Once the main thread hasbeen resumed, it will continue to execute from the point it was suspended. In the exampleabove, this would be from within the await method. The thread which calls mainResumecan then suspend or terminate itself, depending upon the application requirements. - - - - -The JavaSim User’s Manualspublic void exit () - -{ - - if (resumeMainRequired) - - { - - SimulationProcess.mainResume(); - - Suspend(); - - } - - else - - System.exit(0); - -} - -3.3.3 Controlling the simulationThe controller’s body creates and activates the other simulation entities and the scheduler, andcontrols the overall simulation (e.g., resetting the system between consecutive runs).public void run () - -{ - - sc = new Scheduler(); - - // create and activate any other simulation entities - - sc->Resume(); // we must create a scheduler for the simulation to run - - // execute the simulation - - // print results - - sc->Suspend(); // suspend scheduler - - // suspend simulation entities - - Thread_Type::mainResume(); - -} - -The final call to mainResume prevents run() from exiting, which we must do to ensurethe application is portable between thread implementations.3.4 Resetting a simulationResetting a simulation involves resetting all of the objects involved in it which will berequired for subsequent runs. When the reset method is invoked on the Scheduler, this causesthe current simulation run to be terminated, and all simulation objects which are currentlysuspended on the scheduler queue will be woken and the RestartException will bethrown to each. Any objects which are required to participate within a new simulation runmust catch this exception, reset themselves to a state consistent with the start of anothersimulation, and then become suspended, to await the restart of the simulation. - - - - -The JavaSim User’s Manuals3.4.1 ExampleIf we take the Arrivals example above and add a reset method then the code could be:public class Arrivals extends SimulationProcess - -{ - -public void run () - -{ - - for (;;) - - { - - try - - { - - for (;;) - - { - - Customer c = new Customer(); - - queue.insert(c); - - Hold(20.0); - - } - - } - - catch (RestartException e) - - { - - } - - } - -} - -}; - - - - -The JavaSim User’s Manuals4. Distribution FunctionsMany of the aspects of the real world which a simulation attempts to model have propertieswhich correspond to various distribution functions, e.g., inter-arrival rates of customers at abank queue. Therefore, simulation studies require sources of random numbers. Ideally thesesources should produce an endless stream of such numbers, but to do so either requiresspecialised hardware or the ability to store an infinite (large) table of such numbers generatedin advance.Without such aids, which are either impractical or not generally available, the alternative is touse numerical algorithms. No deterministic algorithm can produce a sequence of numbers thatwould have all of the properties of a truly random sequence [3]. However, for all practicalpurposes it is only necessary that the numbers produced appear random, i.e., pass certainstatistical tests for randomness. Although these generators produce pseudo-random numbers,we continue to call the random number generators.The starting point for generating arbitrary distribution functions is to produce a standarduniform distribution. As we shall see, all other distributions can be produced based upon this.(Interested readers are referred to [6] for a more complete treatment of this topic). All of thedistribution functions in JavaSim rely upon inheritance to specialise the behaviour obtainedfrom the uniform distribution class. These classes can be found in thearjuna.JavaSim.Distributions package.4.1 RandomStreamThe actual uniform distribution class is called RandomStream. This returns a series ofrandom numbers uniformly distributed between 0 and 1. We experimented with severalrandom number generators before settling on a shuffle of a multiplicative generator with alinear congruential generator, which provides a reasonably uniform stream of pseudo-randomnumbers.public abstract class RandomStream - -{ - -public abstract double getNumber () throws IOException, - -ArithmeticException; - -public final double Error (); - -protected RandomStream (); - -protected RandomStream (long MGSeed, long LCGSeed); - -protected final double Uniform (); - -}; - -The multiplicative generator uses the following algorithm3:Y[i+1] = Y[i] * 55 mod 226, where the period is 224, and the initial seed must be odd. - -3Thanks to Professor I. Mitrani for his help in developing this. - - - - -The JavaSim User’s ManualsThe Uniform() method uses the linear congruential generator (seed is LCGSeed, with thedefault value of 1878892440L) based on the algorithm in [4], and the results of this areshuffled with the multiplicative generator (see is MGSeed, with a default value of 772531L)as suggested by Maclaren and Marsaglia [3], to obtain a sufficiently uniform randomdistribution, which is then returned.The Error() method returns a chi-square error measure on the uniform distributionfunction.By abstract method getNumber must be provided by derived classes, and is used to obtain auniform means of accessing random numbers.The RandomStream class returns a large sequence of random numbers, whose period is2^24. However, unless the seeds are modified when each random distribution class is created,the starting position in this sequence will always be the same, i.e., the same sequence ofnumbers will be obtained. To prevent this, each class derived from RandomStream has anadditional parameter for one of its constructors which indicates the offset in this sequencefrom which to begin sampling.4.2 UniformStreamThe UniformStream class inherits from RandomStream and returns random numbersuniformly distributed over a range specified when the instance is created.public class UniformStream extends RandomStream - -{ - -public UniformStream (double lo, double hi); - -public UniformStream (double lo, double hi, int StreamSelect); - -public UniformStream (double lo, double hi, int StreamSelect, - - long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; - -}; - -The range covers the interval specified by lo and hi. StreamSelect indicates the offsetin the random number sequence to begin sampling, and MGSeed and LCGSeed can be usedto modify the seed values used by the RandomStream class.4.3 ExponentialStreamThe ExponentialStream class returns an exponentially distributed stream of randomnumbers with mean value specified by mean.public class ExponentialStream extends RandomStream - -{ - -public ExponentialStream (double mean); - -public ExponentialStream (double mean, int StreamSelect); - -public ExponentialStream (double mean, int StreamSelect, - - long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; - -}; - - - - -The JavaSim User’s ManualsStreamSelect indicates the offset in the random number sequence to begin sampling, andMGSeed and LCGSeed can be used to modify the seed values used by the RandomStreamclass.4.4 ErlangStreamErlangStream returns an erlang distribution with mean mean and standard deviation sd.public class ErlangStream extends RandomStream - -{ - -public ErlangStream (double mean, double sd); - -public ErlangStream (double mean, double sd, int StreamSelect); - -public ErlangStream (double mean, double sd, int StreamSelect, - - long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; - -}; - -StreamSelect indicates the offset in the random number sequence to begin sampling, andMGSeed and LCGSeed can be used to modify the seed values used by the RandomStreamclass.4.5 HyperExponentialStreamThe HyperExponential class returns a hyper-exponential distribution of randomnumbers, with mean mean and standard deviation sd.public class HyperExponentialStream extends RandomStream - -{ - -public HyperExponentialStream (double mean, double sd); - -public HyperExponentialStream (double mean, double sd, int StreamSelect); - -public HyperExponentialStream (double mean, double sd, int StreamSelect, - - long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; - -}; - -StreamSelect indicates the offset in the random number sequence to begin sampling, andMGSeed and LCGSeed can be used to modify the seed values used by the RandomStreamclass.4.6 NormalStreamNormalStream returns a normal distribution of random numbers, with mean mean andstandard deviation sd. operator() uses the polar method due to Box, Muller, andMarsaglia [3].public class NormalStream extends RandomStream - -{ - -public NormalStream (double mean, double sd); - -public NormalStream (double mean, double sd, int StreamSelect); - -public NormalStream (double mean, double sd, int StreamSelect, - - long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; - -}; - - - - -The JavaSim User’s ManualsStreamSelect indicates the offset in the random number sequence to begin sampling, andMGSeed and LCGSeed can be used to modify the seed values used by the RandomStreamclass.4.7 DrawThe Draw class is the exception to the inheritance rule, instead using RandomStreamthrough delegation (for historical reasons). This returns true with the probability prob, andfalse otherwise.public class Draw - -{ - -public Draw (double p); - -public Draw (double p, int StreamSelect); - -public Draw (double p, int StreamSelect, long MGSeed, long LCGSeed); - -public boolean getBoolean () throws IOException; - -}; - -StreamSelect indicates the offset in the random number sequence to begin sampling, andMGSeed and LCGSeed can be used to modify the seed values used by the RandomStreamclass.4.8 Example - - - - -The JavaSim User’s Manuals5. Advanced Simulation ClassesSimulations formed by the interaction of objects derived from SimulationProcess canbe considered causal (synchronous) in nature: events occur at specific times and form a welldefined order. However, it is sometimes necessary to simulate asynchronous real worldevents, e.g., processor interrupts. To do this requires finer-grained control of the schedulingof simulation processes than it provided by the scheduler; the scheduler simply activatesaccording to simulation time, whereas asynchronous events may have different activationrules, e.g., activate when another process is terminated.The SimulationEntity class and others to be described in the following sections givesthis required level of control to the user, extending the types of simulation which are possiblewith JavaSim. Asynchronous simulation processes are derived from SimulationEntity,but the implementation enables these asynchronous process to execute in the same simulationas SimulationProcess objects. However, because these processes are suspended andresumed outside of the control of the scheduler, it is possible for deadlock situations to occur.Therefore, some care must be taken when using these classes.In addition to the active, suspended, passive and terminated states which a simulation processcan be in, asynchronous objects can also be in the following states:•waiting: the process is suspended waiting for a specific event to occur (e.g., aprocess to be terminated). The waiting process is not placed on the scheduler queue.•interrupted: the process, which was in the waiting state, has been interrupted fromthis before the condition it was awaiting occurred.The conditions on which a process can wait, and can thus be interrupted from, are:•time: a process can attempt to wait for a specified period of simulation time.•process termination: a process can wait for the termination of anotherSimultionEntity process before continuing execution.•semaphore: critical regions of a simulation can be protected by semaphores, whereonly a single Entity process can acquire the semaphore; other processes aresuspended until the semaphore is released.•user specific: it is possible for other asynchronous conditions to occur which are notcovered above.The classes to be described in this chapter can be found in thearjuna.JavaSim.Simulation package. - - - - -The JavaSim User’s Manuals5.1 Asynchronous entitiespublic class SimulationEntity extends SimulationProcess - -{ - -public void Interrupt (SimulationEntity toInterrupt, boolean immediate) - - throws SimulationException, RestartException; - -public final void trigger (); - -public void terminate (); - -protected SimulationEntity (); - -protected void Wait (double waitTime) throws SimulationException, - - RestartException, InterruptedException; - -protected void WaitFor (SimulationEntity controller, boolean reAct) - - throws SimulationException, - - RestartException, InterruptedException; - -protected void WaitFor (SimulationEntity controller) - - throws SimulationException, - - RestartException, InterruptedException; - -protected void WaitForTrigger (TriggerQueue _queue) - - throws SimulationException, - - RestartException, InterruptedException; - -protected void WaitForSemaphore (Semaphore _sem) throws RestartException; - -}; - -Because SimulationEntity is derived from SimulationProcess, all of the usualsimulation methods are available, and can be used in conjunction with those provided by thederived class.Interrupt(SimulationEntity toInterrupt, boolean immediate)interrupts the asynchronous process toInterrupt, which must not be terminated andmust be in the waiting state. toInterrupt becomes the next active process (i.e., it ismoved to the head of the scheduler queue). If immediate is true then the current process issuspended immediately; it is scheduled for reactivation at the current simulation time.Otherwise, the current process continues to execute and can be suspended later in anapplication specific way.Because it is now possible for one process to wait for another to terminate theterminate() method must differ from that provided by SimulationProcess. Beforethe terminating process ends it moves the waiting process to the head of the scheduler queue,and then calls SimulationProcess.terminate(). Currently only a single processcan wait on this termination condition, but this may change in future versions.Wait(double t) is similar to Hold(double t), with the exception that the process ismoved into the waiting state as well as being placed on the scheduler queue. It is thereforepossible to interrupt this process before the wait period has elapsed. true is returned if theprocess was interrupted, otherwise false is returned.WaitFor(SimulationEntity controller, boolean reAct) suspends thecurrent process until controller has terminated. The process is placed in the waitingstate. If reAct is true then controller is moved to the head of the scheduler queue tobecome the next activate process, otherwise (the default behaviour) the application will haveto activate controller. If the waiting process is interrupted then the method returns - - - - -The JavaSim User’s Manualstrue, otherwise false. The controller and the current process must be different, i.e.,it is not possible for a process to wait for itself.Trigger queues are lists maintained by the simulation system of process waiting for specificevents to occur, which are outside the scope of those described above. These will bedescribed in the next section. WaitForTrigger(TriggerQueue queue) places thecurrent process on the trigger queue _queue, and passivates it. As with the previousmethods, the return value indicates whether the process was interrupted, or triggered.In addition to trigger queues, process can wait on semaphores, allowing the creation ofmonitor regions, for example. WaitForSemaphore(Semaphore sem) causes thecurrent process to attempt to exclusively acquire the semaphore. If this is not possible thenthe process is suspended. Currently, a process which is waiting on a semaphore cannot beinterrupted, and is not placed into the waiting state. As such, when this method returns thesemaphore has been acquired.5.2 Trigger queuesProcesses waiting for the same application controlled event can be grouped together into aTriggerQueue, as described in the previous section. When this event occurs theapplication can use one of the two trigger methods to activate the queue members. Thisinvolves placing the process(es) onto the head of the scheduler queue.public class TriggerQueue - -{ - -public TriggerQueue (); - -public void finalize (); - -public synchronized void triggerFirst (boolean setTrigger) - - throws NoSuchElementException; - -public synchronized void triggerFirst () throws NoSuchElementException; - -public synchronized void triggerAll () throws NoSuchElementException; - -}; - -•triggerAll(): triggers all of the members on the queue.•triggerFirst(boolean setTrigger): triggers only the head of the queue.If setTrigger is true (the default behaviour) then the trigger() method ofthe SimulationEntity object is also invoked.If the queue is not empty when it is garbage collected by the virtual machine then allremaining queue members will be triggered, and placed back onto the scheduler queue. - - - - -The JavaSim User’s Manuals5.3 SemaphoresApplication code can be protected from simulation processes through semaphores, which areinstances of the Semaphore class.public class SemaphoreOutcome - -{ - - static final public int DONE = 0; - - static final public int NOTDONE = 1; - - static final public int WOULD_BLOCK = 2; - -}; - -public class Semaphore - -{ - -public Semaphore (); - -public Semaphore (long number); - -public synchronized long NumberWaiting (); - -public synchronized int Get (SimulationEntity toWait) - - throws RestartException; - -public synchronized int TryGet (SimulationEntity toWait) - - throws RestartException; - -public synchronized int Release (); - -}; - -A semaphore can be used to restrict the number of processes which can use shared resources.The number of shared resources available must be presented to the Semaphore when it iscreated. By default, a Semaphore will assume that there is only a single resource, in whichcase a semaphore is exclusively acquired by a simulation process. However, it is possible tocreate a Semaphore with different resource counts.A Semaphore can exist in one of two states:•available: the semaphore is available to be acquired.•unavailable: a process (or number of processes) currently has the semaphore. Ifanother process attempts to acquire the semaphore then it is automatically suspendeduntil the semaphore is available, i.e., until a resource has been freed.To be able to manipulate semaphores, a process must be derived from theSimulationEntity class. To obtain the semaphore, the Get(SimulationEntitytoWait) method should be used, where toWait is the calling process. If the semaphore isunavailable then the process referenced by toWait is suspended. If the semaphore issuccessfully acquired, then SemaphoreOutcome.DONE is returned, otherwiseSemaphoreOutcome.NOTDONE.If the process wishes to attempt to acquire the semaphore but does not want to block in thesituation where the semaphore is currently unavailable, then it can use the TryGet method,which takes the same parameter as Get. However, unlike Get, TryGet will returnSemaphoreOutcome.WOULD_BLOCK in the case where the caller would normally blockif it had called Get, i.e., the semaphore is currently in use. If the semaphore is not being used,then TryGet will acquire it for the caller. Errors will result inSemaphoreOutcome.NOT_DONE being returned.When the semaphore is no longer required Release() should be called by the processwhich currently has it. Successful release of the semaphore results in - - - - -The JavaSim User’s ManualsSemaphoreOutcome.DONE being returned, otherwise Semaphore.NOTDONE isreturned.NumberWaiting() returns the number of processes currently suspended waiting for thesemaphore.If the semaphore is garbage collected with processes waiting for it then an error message isdisplayed. No further action is attempted on behalf of these waiting processes.5.4 Example - - - - -The JavaSim User’s Manuals6. Statistical ClassesThe purpose of a simulation typically involves the gathering of relevant statisticalinformation, e.g., the average length of time spent in a queue. JavaSim provides a number ofdifferent classes for gathering such information. These classes can be found in thearjuna.JavaSim.Statistics package.6.1 MeanThis is the basic class from which others are derived, gathering statistical information on thesamples provided to it.public class Mean - -{ - -public Mean (); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public int numberOfSamples (); - -public double min (); - -public double max (); - -public double sum (); - -public double mean (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, - - IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -public void print (); - -}; - -New values can be supplied to the instance of the Mean class using thesetValue(double) method. The number of samples which have been give can beobtained from numberOfSamples().The maximum and minimum of the samples supplied can be obtained from the max() andmin() methods, respectively.sum() returns the summation of all of the samples:SSii=1nmean() returns the mean value:SSii=1n1_nAn instance of Mean can be reset between samples using the reset() method. - - - - -The JavaSim User’s ManualsIf the state of a Mean object is required to be saved between simulation runs then it can bemade persistent by using either of the saveState methods. The first instance saves thestate to a file, whereas the second can be used to save the state to an instance of thejava.io.DataOutputStream class. There are likewise two corresponding ways inwhich the state can be restored.The print method simply prints to System.out the current state of the object.6.2 VarianceThis class is derived from Mean, and in addition to providing the above mentionedfunctionality also provides the following:public class Variance extends Mean - -{ - -public Variance (); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public double variance (); - -public double stdDev (); - -public double confidence (double value); - -public void print (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, - - IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -}; - -variance() returns the variance of the samples:Si=1n1_n(Si-Mean())2stdDev() returns the standard deviation of the samples, which is the square root of thevariance.6.3 TimeVarianceThe TimeVariance class makes it possible to determine how long, in terms of simulationtime, specific values were maintained. In effect, values are weighted according to the lengthof time that they were held, whereas with the Variance class only the specific values aretaken into account. - - - - -The JavaSim User’s Manualspublic class TimeVariance extends Variance - -{ - -public TimeVariance (); - -public void reset (); - -public void setValue (double value) throws IllegalArgumentException; - -public double timeAverage (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, - - IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -}; - -Whenever a value is supplied to an instance of the TimeVariance class the simulationtime at which it occurred is also noted. If a value changes, or the timeAverage() methodis invoked, then the time it has been maintained for is calculated and the statistical data isupdated.6.4 HistogramsMean, Variance, and TimeVariance provide a snapshot of values in the simulation.However, histograms can yield better information about how a range of values change overthe course of a simulation run. This information can be viewed in a number of ways, buttypically it is plotted in graphical form.A histogram typically maintains a slot for each value, or range of values, given to it. Theseslots are termed buckets, and the way in which these buckets are maintained and manipulatedgives rise to a variety of different histogram implementations. The following sections detailthis variety of different histogram classes.6.4.1 PrecisionHistogramThe PrecisionHistogram class represents the core histogram class from which allothers are derived. This class keeps an exact tally of all values given to it, i.e., a bucket iscreated for each value. Although buckets are only created when requires, over the course of asimulation this can still utilise a large amount of resources, and so other, less precise,histogram classes are provided. - - - - -The JavaSim User’s Manualspublic class PrecisionHistogram extends Variance - -{ - -public PrecisionHistogram (); - -public void finalize (); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public long numberOfBuckets (); - -public double sizeByIndex (long index) throws StatisticsException, - - IllegalArgumentException; - -public double sizeByName (double name) throws IllegalArgumentException; - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, - - IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -public void print (); - -}; - -As with the Variance class from which it is derived, and whose methods are obviouslyavailable, values can be supplied to the histogram through the setValue(double)method.The number of buckets maintained by the histogram can be obtained from thenumberOfBuckets() method. Each bucket is uniquely named by the values it contains,and can also be accessed by its index in the entire list of buckets.There are therefore two ways of getting the number of entries in a bucket:•by the index number of the bucket: sizeByIndex(long index).•by the unique name of the bucket: sizeByName(double name).If the bucket does not exist then each of these methods throwsIllegalArgumentException.It is possible to output the contents of the histogram to standard output using theprint()method.6.4.2 HistogramThe problem with the PrecisionHistogram class is that it can use up a lot of systemresources, especially over the course of a long simulation. Histogram attempts to alleviatethis by presenting a histogram which is less accurate, but consumes less resources. Instead ofmaintaining a bucket for each individual value, it keeps a fixed number of buckets. Initiallyeach bucket will store separate values as in the PrecisionHistogram, but when thenumber of required buckets would exceed the specified maximum number it merges pairs ofbuckets, thus reducing their total. The policy used when merging buckets it set on a perinstance basis when created. Current policies are:•ACCUMULATE: create a new bucket with the same name as the largest of the twobuckets, and it has the sum of the two old bucket entries as its entry number. - - - - -The JavaSim User’s Manuals•MEAN: create a new bucket with the name as the mean of the two old buckets, and ithas the sum of the two old bucket entries as its entry number.•MAX: create a new bucket with the name as the largest of the two buckets, and it hasthe same number of entries.•MIN: create a new bucket with the name as the smallest of the two old buckets, andit has the same number of entries.public class Histogram extends PrecisionHistogram - -{ - -public Histogram (long maxIndex, int mergeChoice); - -public Histogram (long maxIndex); - -public void setValue (double value) throws IllegalArgumentException; - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, - - IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -public void print (); - -}; - -When an instance of Histogram is created, the maximum number of allowed buckets mustbe specified. The merging algorithm can also be provided, with the default being the MEANpolicy.6.4.3 SimpleHistogramAs with the Histogram class above, SimpleHistogram keeps the number of assignedbuckets to a minimum. However, it does this by pre-creating the buckets when it is created,i.e., the number of required buckets must be provided at the start. A width is the assigned foreach bucket, and whenever a value if given to the histogram class it is placed into the bucketwhose width it falls within.public class SimpleHistogram extends PrecisionHistogram - -{ - -public SimpleHistogram (double min, double max, long nbuckets); - -public SimpleHistogram (double min, double max, double w); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public double sizeByName (double name) throws IllegalArgumentException; - -public double Width (); - -public void print (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, - - IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -}; - -When the class is instantiated, the range of values it will receive must be provided. Then,either the width of each bucket or the actual number of buckets can be given. If the width is - - - - -The JavaSim User’s Manualsprovided, then the histogram automatically calculates the number of buckets, otherwise itcalculates the width for each bucket by equally dividing the range between each bucket.The values of a bucket can be obtained from the sizeByName method.The width of each bucket is provided by the Width method.6.4.4 QuantileThe Quantile class provides a means of obtaining the p-quantile of a distribution of values,i.e., the value below which p-percent of the distribution lies.public class Quantile extends PrecisionHistogram - -{ - -public Quantile (); - -public Quantile (double q) throws IllegalArgumentException; - -public double getValue (); - -public double range (); - -public void print (); - -}; - -The p-quantile probability range must be specified when the object is instantiated, and can beobtained via the range method.The actual quantile value is provided by getValue method. - - - - -The JavaSim User’s Manuals7. JavaSim classesFor convenience, in this section we shall include the JavaSim classes which programmers willuse when constructing simulations.7.1 Schedulerpackage arjuna.JavaSim.Simulation; - -public class Scheduler - -{ - - public static double CurrentTime (); - - public static synchronized void reset (); - - public static synchronized boolean simulationReset (); - - public static synchronized void startSimulation (); - -}; - - - - -The JavaSim User’s Manuals7.2 SimulationProcesspackage arjuna.JavaSim.Simulation; - -public class SimulationProcess extends Thread - -{ - -public final double Time (); - -public synchronized SimulationProcess next_ev ()throws SimulationException, - - NoSuchElementException; - -public final double evtime (); - -public void ActivateBefore (SimulationProcess p)throws SimulationException, - - RestartException; - -public void ActivateAfter (SimulationProcess p) throws SimulationException, - - RestartException; - -public void ActivateAt (double AtTime, boolean prior) - - throws SimulationException, RestartException; - -public void ActivateAt (double AtTime) throws SimulationException, - - RestartException; - -public void ActivateDelay (double Delay, boolean prior) - - throws SimulationException, RestartException; - -public void ActivateDelay (double Delay) throws SimulationException, - - RestartException; - -public void Activate () throws SimulationException, RestartException; - -public void ReActivateBefore (SimulationProcess p) - - throws SimulationException, RestartException; - -public void ReActivateAfter (SimulationProcess p) - - throws SimulationException, RestartException; - -public void ReActivateAt (double AtTime, boolean prior) - - throws SimulationException, RestartException; - -public void ReActivateAt (double AtTime) throws SimulationException, - - RestartException; - -public void ReActivateDelay (double Delay, boolean prior) - - throws SimulationException, RestartException; - -public void ReActivateDelay (double Delay) throws SimulationException, - - RestartException; - -public void ReActivate () throws SimulationException, RestartException; - -public void Cancel () throws RestartException; - -public void terminate (); - -public synchronized boolean idle (); - -public boolean passivated (); - -public boolean terminated (); - -public static SimulationProcess current () throws SimulationException; - -public static double CurrentTime (); - -public static void mainSuspend (); - -public static void mainResume () throws SimulationException; - -protected SimulationProcess (); - -protected void set_evtime (double time) throws SimulationException; - -protected void Hold (double t)throws SimulationException, RestartException; - -protected void Passivate () throws RestartException; - -}; - - - - -The JavaSim User’s Manuals7.3 SimulationExceptionpackage arjuna.JavaSim.Simulation; - -public class SimulationException extends Exception - -{ - -public SimulationException (); - -public SimulationException (String s); - -}; - -7.4 RestartExceptionpackage arjuna.JavaSim.Simulation; - -public class RestartException extends Exception - -{ - -public RestartException (); - -public RestartException (String s); - -}; - -7.5 RandomStreampackage arjuna.JavaSim.Distributions; - -public abstract class RandomStream - -{ - -public abstract double getNumber () throws IOException, - -ArithmeticException; - -public final double Error (); - -protected RandomStream (); - -protected RandomStream (long MGSeed, long LCGSeed); - -protected final double Uniform (); - -}; - -7.6 UniformStreampackage arjuna.JavaSim.Distributions; - -public class UniformStream extends RandomStream - -{ - -public UniformStream (double lo, double hi); - -public UniformStream (double lo, double hi, int StreamSelect); - -public UniformStream (double lo, double hi, int StreamSelect, - - long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; - -}; - - - - -The JavaSim User’s Manuals7.7 ExponentialStreampackage arjuna.JavaSim.Distributions; - -public class ExponentialStream extends RandomStream - -{ - -public ExponentialStream (double m); - -public ExponentialStream (double m, int StreamSelect); - -public ExponentialStream (double m, int StreamSelect, - - long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; - -}; - -7.8 ErlangStreampackage arjuna.JavaSim.Distributions; - -public class ErlangStream extends RandomStream - -{ - -public ErlangStream (double mean, double sd); - -public ErlangStream (double mean, double sd, int StreamSelect); - -public ErlangStream (double mean, double sd, int StreamSelect, - - long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; - -}; - -7.9 HyperExponentialStreampackage arjuna.JavaSim.Distributions; - -public class HyperExponentialStream extends RandomStream - -{ - -public HyperExponentialStream (double mean, double sd); - -public HyperExponentialStream (double mean, double sd, int StreamSelect); - -public HyperExponentialStream (double mean, double sd, int StreamSelect, - - long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; - -}; - -7.10 NormalStreampackage arjuna.JavaSim.Distributions; - -public class NormalStream extends RandomStream - -{ - -public NormalStream (double mean, double sd); - -public NormalStream (double mean, double sd, int StreamSelect); - -public NormalStream (double mean, double sd, int StreamSelect, - - long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; - -}; - - - - -The JavaSim User’s Manuals7.11 Drawpackage arjuna.JavaSim.Distributions; - -public class Draw - -{ - -public Draw (double p); - -public Draw (double p, int StreamSelect); - -public Draw (double p, int StreamSelect, long MGSeed, long LCGSeed); - -public boolean getBoolean () throws IOException; - -}; - -7.12 SimulationEntitypackage arjuna.JavaSim.Simulation; - -public class SimulationEntity extends SimulationProcess - -{ - -public void Interrupt (SimulationEntity toInterrupt, boolean immediate) - - throws SimulationException, - -RestartException; - -public final void trigger (); - -public void terminate (); - -protected SimulationEntity (); - -protected void Wait (double waitTime) throws SimulationException, - - RestartException, InterruptedException; - -protected void WaitFor (SimulationEntity controller, boolean reAct) - - throws SimulationException, RestartException, - -InterruptedException; - -protected void WaitFor (SimulationEntity controller) - - throws SimulationException, RestartException, InterruptedException; - -protected void WaitForTrigger (TriggerQueue _queue) - - throws SimulationException, RestartException, InterruptedException; - -protected void WaitForSemaphore (Semaphore _sem) throws RestartException; - -}; - -7.13 TriggerQueuepackage arjuna.JavaSim.Simulation; - -public class TriggerQueue - -{ - -public TriggerQueue (); - -public void finalize (); - -public synchronized void triggerFirst (boolean setTrigger) - - throws NoSuchElementException; - -public synchronized void triggerFirst () throws NoSuchElementException; - -public synchronized void triggerAll () throws NoSuchElementException; - -}; - - - - -The JavaSim User’s Manuals7.14 Semaphorepackage arjuna.JavaSim.Simulation; - -public class SemaphoreOutcome - -{ - - static final public int DONE = 0; - - static final public int NOTDONE = 1; - - static final public int WOULD_BLOCK = 2; - -}; - -public class Semaphore - -{ - -public Semaphore (); - -public Semaphore (long number); - -public synchronized long NumberWaiting (); - -public synchronized int Get (SimulationEntity toWait) - - throws RestartException; - -public synchronized int TryGet (SimulationEntity toWait) - - throws RestartException; - -public synchronized int Release (); - -}; - -7.15 Meanpackage arjuna.JavaSim.Statistics; - -public class Mean - -{ - -public Mean (); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public int numberOfSamples (); - -public double min (); - -public double max (); - -public double sum (); - -public double mean (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, - - IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -public void print (); - -}; - - - - -The JavaSim User’s Manuals7.16 Variancepackage arjuna.JavaSim.Statistics; - -public class Variance extends Mean - -{ - -public Variance (); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public double variance (); - -public double stdDev (); - -public double confidence (double value); - -public void print (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, - - IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -}; - -7.17 TimeVariancepackage arjuna.JavaSim.Statistics; - -public class TimeVariance extends Variance - -{ - -public TimeVariance (); - -public void reset (); - -public void setValue (double value) throws IllegalArgumentException; - -public double timeAverage (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, - - IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -}; - - - - -The JavaSim User’s Manuals7.18 PrecisionHistogrampackage arjuna.JavaSim.Statistics; - -public class PrecisionHistogram extends Variance - -{ - -public PrecisionHistogram (); - -public void finalize (); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public long numberOfBuckets (); - -public double sizeByIndex (long index) throws StatisticsException, - - IllegalArgumentException; - -public double sizeByName (double name) throws IllegalArgumentException; - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, - - IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -public void print (); - -}; - -7.19 Histogrampackage arjuna.JavaSim.Statistics; - -public class Histogram extends PrecisionHistogram - -{ - -public Histogram (long maxIndex, int mergeChoice); - -public Histogram (long maxIndex); - -public void setValue (double value) throws IllegalArgumentException; - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, - - IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -public void print (); - -}; - - - - -The JavaSim User’s Manuals7.20 SimpleHistogrampackage arjuna.JavaSim.Statistics; - -public class SimpleHistogram extends PrecisionHistogram - -{ - -public SimpleHistogram (double min, double max, long nbuckets); - -public SimpleHistogram (double min, double max, double w); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public double sizeByName (double name) throws IllegalArgumentException; - -public double Width (); - -public void print (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, - - IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -}; - -7.21 Quantilepackage arjuna.JavaSim.Statistics; - -public class Quantile extends PrecisionHistogram - -{ - -public Quantile (); - -public Quantile (double q) throws IllegalArgumentException; - -public double getValue (); - -public double range (); - -public void print (); - -}; - -7.22 StatisticsExceptionpackage arjuna.JavaSim.Statistics; - -public class StatisticsException extends Exception - -{ - -public StatisticsException (); - -public StatisticsException (String s); - -}; - - - - -The JavaSim User’s Manuals8. References[1]G. M. Birtwistle, O-J. Dahl, B. Myhrhaug, K. Nygaard, “Simula Begin”, AcademicPress, 1973[2]O�J. Dahl, B. Myhrhaug, K. Nygaard, “SIMULA Common Base Language”,Norwegian Computing Centre[3]Knuth Vol2, “Seminumerical Algorithms”, Addison�Wesley, 1969, p. 117.[4]R. Sedgewick, “Algorithms”, Addison�Wesley, Reading MA, 1983, pp. 36�38.[5]D. L. McCue and M. C. Little, “Computing Replica Placement in DistributedSystems”, Proceedings of the 2nd IEEE Workshop on the Management of ReplicatedData, November 1992, pp. 58�61.[6]I. Mitrani, “Simulation Techniques for Discrete Event Systems”, CambridgeUniversity Press, Cambridge, 1982.[7]M. C. Little and D. L. McCue, “The Replica Management System: a Scheme forFlexible and Dynamic Replication”, Proceedings of the 2nd International Workshopon Configurable Distributed Systems, March 1994, pp. 46�57.[8]G. D. Parrington et al, “The Design and Implementation of Arjuna”, BroadcastProject Technical Report, October 1994. - - - - -The JavaSim User’s Manuals9. IndexActivating a process................................12Contact person..........................................5Controlling a simulation.........................14example.............................................14Platform....................................................5Processes.................................................10class definition..................................11Re-activating a process...........................12Resetting a simulation.............................15Restarting a simulation...........................15Scheduler..................................................9class definition..................................10Simulation models....................................6continuous time..................................7continuous time-discrete event...........7discrete time........................................7Terminology.............................................6 diff --git a/docs/rtf-rawtext b/docs/rtf-rawtext deleted file mode 100644 index cb8ea41..0000000 --- a/docs/rtf-rawtext +++ /dev/null @@ -1,1970 +0,0 @@ -Object-Oriented - -Discrete-Event - -Simulation in Java - - - - - - - - - -JavaSim - - - -User’s Guide - -Public Release 0.3 - - - - - -Version 1.0 - - - - - - - - -Department of Computing Science, - -Computing Laboratory, - -The University, Newcastle upon Tyne, - -NE1 7RU, UK. -The JavaSim User’s Manuals - -Copyright Notice: - -Copyright 1995-1999, - -Computing Laboratory, University of Newcastle upon Tyne, UK. - -Permission to use, copy, modify and distribute the JavaSim software for evaluation, teaching and/or research purposes only and without fee is hereby granted, providing that this copyright and permission notice appear on all copies and supporting documentation, and that similar conditions are imposed on any individual or organisation to whom the program is distributed. - -The University of Newcastle upon Tyne makes no representation about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. -The JavaSim User’s Manuals - - - - -Table of Contents - -1. -PREFACE ................................................................................................................................................... -5 - -1.1 -AVAILABILITY ........................................................................................................................................... -5 -2. -INTRODUCTION....................................................................................................................................... -6 - -2.1 -SIMULATION MODELS................................................................................................................................ -6 - -2.2 -TERMINOLOGY.......................................................................................................................................... -6 - -2.3 -CATEGORIES OF SIMULATION MODELS....................................................................................................... -7 - -2.4 -EVENT SCHEDULING.................................................................................................................................. -7 -3. -BASIC SIMULATION CLASSES............................................................................................................. -9 - -3.1 -THE SIMULATION SCHEDULER ................................................................................................................... -9 - -3.1.1 -Scheduler class interface .............................................................................................................. -10 - -3.2 -SIMULATION PROCESSES ......................................................................................................................... -10 - -3.2.1 -SimulationProcess class interface ................................................................................................ -11 - -3.2.2 -Example ........................................................................................................................................ -14 - -3.3 -STARTING, ENDING AND CONTROLLING A SIMULATION............................................................................ -14 - -3.3.1Suspending the main thread ......................................................................................................... -15 - -3.3.2 -Exiting the application ................................................................................................................. -15 - -3.3.3 -Controlling the simulation............................................................................................................ -16 - -3.4 -RESETTING A SIMULATION....................................................................................................................... -16 - -3.4.1 -Example ........................................................................................................................................ -17 -4. -DISTRIBUTION FUNCTIONS............................................................................................................... -18 - -4.1 -RANDOMSTREAM.................................................................................................................................... -18 - -4.2 -UNIFORMSTREAM ................................................................................................................................... -19 - -4.3 -EXPONENTIALSTREAM ............................................................................................................................ -19 - -4.4 -ERLANGSTREAM ..................................................................................................................................... -20 - -4.5 -HYPEREXPONENTIALSTREAM ................................................................................................................. -20 - -4.6 -NORMALSTREAM .................................................................................................................................... -20 - -4.7 -DRAW ..................................................................................................................................................... -21 - -4.8 -EXAMPLE ................................................................................................................................................ -21 -5. -ADVANCED SIMULATION CLASSES ................................................................................................ -22 - -5.1 -ASYNCHRONOUS ENTITIES ...................................................................................................................... -23 - -5.2 -TRIGGER QUEUES .................................................................................................................................... -24 - -5.3 -SEMAPHORES .......................................................................................................................................... -25 - -5.4 -EXAMPLE ................................................................................................................................................ -26 -6. -STATISTICAL CLASSES ....................................................................................................................... -27 - -6.1 -MEAN ..................................................................................................................................................... -27 - -6.2 -VARIANCE............................................................................................................................................... -28 - -6.3 -TIMEVARIANCE ...................................................................................................................................... -28 - -6.4 -HISTOGRAMS .......................................................................................................................................... -29 - -6.4.1 -PrecisionHistogram...................................................................................................................... -29 - -6.4.2 -Histogram ..................................................................................................................................... -30 - -6.4.3 -SimpleHistogram .......................................................................................................................... -31 - -6.4.4 -Quantile ........................................................................................................................................ -32 -7. -JAVASIM CLASSES................................................................................................................................ -33 - -7.1 -SCHEDULER ............................................................................................................................................ -33 - -7.2 -SIMULATIONPROCESS ............................................................................................................................. -34 - -7.3 -SIMULATIONEXCEPTION.......................................................................................................................... -35 - -7.4 -RESTARTEXCEPTION ............................................................................................................................... -35 - -7.5 -RANDOMSTREAM.................................................................................................................................... -35 - -7.6 -UNIFORMSTREAM ................................................................................................................................... -35 - -7.7 -EXPONENTIALSTREAM ............................................................................................................................ -36 - -7.8 -ERLANGSTREAM ..................................................................................................................................... -36 - -The JavaSim User’s Manuals - - -7.9 HYPEREXPONENTIALSTREAM ................................................................................................................. -36 - -7.10 -NORMALSTREAM ............................................................................................................................... -36 - -7.11 -DRAW ................................................................................................................................................ -37 - -7.12 -SIMULATIONENTITY ........................................................................................................................... -37 - -7.13 -TRIGGERQUEUE ................................................................................................................................. -37 - -7.14 -SEMAPHORE ....................................................................................................................................... -38 - -7.15 -MEAN................................................................................................................................................. -38 - -7.16 -VARIANCE .......................................................................................................................................... -39 - -7.17 -TIMEVARIANCE.................................................................................................................................. -39 - -7.18 -PRECISIONHISTOGRAM....................................................................................................................... -40 - -7.19 -HISTOGRAM ....................................................................................................................................... -40 - -7.20 -SIMPLEHISTOGRAM ............................................................................................................................ -41 - -7.21 -QUANTILE .......................................................................................................................................... -41 - -7.22 -STATISTICSEXCEPTION ....................................................................................................................... -41 -8. -REFERENCES.......................................................................................................................................... -42 -9. -INDEX ....................................................................................................................................................... -43 - -The JavaSim User’s Manuals - - -1. Preface - -JavaSim is a Java implementation of the original C++SIM simulation toolkit, which was developed as a direct consequence of research conducted within the scope of the Arjuna project [8]. Therefore, it shares many of the same requirements: - -· easy to learn and use: the interface to the simulation library should be easy to understand. - -· correct abstraction: existing Java programmers should not find the simulation paradigm in conflict with the programming paradigm presented by Java. Simulation programmers used to other environments should find the transition to JavaSim straightforward. - -· flexible and extensible: it should be relatively easy for anyone to add new functionality to the system, such as new distribution functions. - -· efficiency: the system should be efficient and produce efficient simulation runs. Simulation packages which we have experience of tended to be extremely slow and consume large amounts of system resources. - -These requirements were realised in the following design decisions: - -the discrete-event process based simulation facilities provided by SIMULA [1][2] and its simulation classes and libraries have a considerable experience and user community which have found them to be successful for a wide variety of simulations. In later versions of the system additional simulation classes were added which provide extra functionality.1 - -inheritance was to be used throughout the design to even a greater extent than is already provided in SIMULA. This enables JavaSim to be more flexible and extensible, allowing new functionality to be added without affecting the overall system structure. For example, our I/O facilities, random number generators and probability distribution functions are entirely object-oriented, relying on inheritance to specialise their behaviour. - -1.1 Availability - -JavaSim has been tested with JDK 1.0.2 and 1.1.x on Solaris, linux, and Windows 95/NT 4.0. - -Technical questions about JavaSim can be sent to M.C.Little@ncl.ac.uk. - - - - - - - - - - - - - - - - - -1It is not necessary for the reader to know anything about the SIMULA programming language or its simulation classes, but such knowledge would aid in the understanding of the concepts and classes presented within. -The JavaSim User’s Manuals - - -2. Introduction - -This manual is not intended as a tutorial on the concepts of simulation in general, but rather how to write simulations in the JavaSim system. However, in order to be able to do this certain key simulation concepts will be briefly described. The interested reader is referred to [6] for detailed descriptions of these concepts and for further discussions on simulation modelling. - -2.1 Simulation models - -To model a system is to replace it by something which is: - -simpler and/or easier to study. - -equivalent to the original in all important respects. - -Therefore, before constructing the actual simulation, it is first necessary to abstract from the real system those components and their interactions that are considered important for the actual model. Building a simulation system model involves making certain simplifying assumptions to aid in the actual implementation and study of the simulation (without such simplifications the model would be as complex as the system it is meant to be simulating). However, the accuracy of the results obtained from the simulation depend upon how valid the initial assumptions are. For example, when considering the trajectory of a projectile through the atmosphere, the friction due to the air molecules is usually ignored. This assumption is valid only within certain boundaries: if the size of the projectile is on the same scale as the air molecules and its speed is sufficiently small then friction plays a significant role in its movement. - -Thus, the first step towards building a simulation model of a system is to determine exactly what are the important features which are to be measured, and what characteristics of the system have an affect on them. Any boundary conditions for the simulation (e.g., size of projectile) should be considered at the same time in order to simplify this procedure. Building a final model can often take several phases, where results from the initial model are compared with those obtained from the real system to determine their accuracy. Any discrepancies are taken into account by possibly adding new components to the simulation until, within certain error boundaries, the simulation results match those from the real system. - -2.2 Terminology - -The system components chosen for the simulation are termed simulation entities. Associated with each entity in the simulation are zero or more attributes that describe the state of the entity and which may vary during the course of the simulation. The interaction of entities and the changes they cause in the system state are termed events. - -The collection of these component attributes at any given time t defines the system state at t. In general, the system state can take any of a variety of values, and a given simulation run results in one realisation of a set of these values (the operation path) over the observation period. -The JavaSim User’s Manuals - -2.3 Categories of simulation models - -There are three categories of simulation model, described by the way in which the system state changes as a function of time: - -Continuous time: is one whose state varies continuously with time; such systems are usually described by sets of differential equations. - -Discrete time: the system is considered only at selected moments in time (the observation points). These moments are typically evenly spaced. Some economics models are examples of this, where economics data becomes available at fixed intervals. Changes in state are noticed only at observation points. By choosing a suitably small interval between observation points, a continuous time simulation can be approximated by a discrete time simulation. - -Continuous time-discrete event: the time parameter is (conceptually) continuous and the observation period is a real interval, usually starting at zero for simplicity. The operation path is completely determined by the sequence of event times (which need not be evenly spaced and can be of arbitrary increments) and by the discrete changes in the system state which take place at these times (i.e., the interactions of the events). In between consecutive event times the system state may vary continuously. Although it is possible to model the passage of real time by suitable event timing, this is not necessary for a discrete event system: the simulation model can advance its own internal time directly from one discrete event to another, taking any appropriate action to advance the state accordingly. - -It is this latter category of simulation modelling that JavaSim supports. Examples of discrete-event simulations are most queuing problems: entities (e.g., customers in a bank) arrive according to a given distribution and change the system state instantaneously (e.g., the number of customers in the queue). The operation paths for this system are step functions: they jump up (or down) by one when a customer joins (or leaves) the queue. - -2.4 Event scheduling - -Given that a simulation consists of a series of interacting events (the operation path), a simulator can be defined as that program devoted to the generation of operation paths. The simulator allows the creation of events and controls their interactions according to a set of rules, using an internal “clock” to keep track of the passage of (simulation) time. - -It maintains an event list, which indicates which events are to be scheduled for execution at specific simulation times. Events are executed according to their simulation times. There are two approaches to the way in which a simulator can schedule events to produce an operation path: - -event-oriented: there is a procedure associated with each type of event in the system: it performs the action required to handle that type of event and it is invoked every time such an event occurs. In an event-oriented approach, an operation path is obtained by taking a global view of everything that happens in the system; the manipulation of events is explicit. - -process-oriented: an operation path is obtained by the interacting of a number of processes running in parallel. The management of events is implicit in the management of the processes. The simulation system provides primitives for placing processes at particular points on the event list, removing and re-scheduling them. -The JavaSim User’s Manuals - -The process-oriented approach best fits with the object-oriented paradigm which we want to present to the programmer of JavaSim. As in SIMULA, simulation processes then become active objects which interact with each other through message passing and the simulation primitives. Refinements of these objects can then be obtained by inheriting from them and redefining the appropriate methods. -The JavaSim User’s Manuals - - -3. Basic simulation classes - -This chapter describes the core elements of the JavaSim simulation system. It is not intended as a tutorial on Java, and basic knowledge of the language is assumed. Note, all of the classes described in this section can be found in the arjuna.JavaSim.Simulation package. - -3.1 The simulation scheduler - -Chapter 2 described the event list and how simulation entities (processes) are executed according to their position on the event list (i.e., with increasing simulation time). In JavaSim, as in SIMULA, simulation processes are managed by a scheduler and are placed on a scheduler queue (the event list). Processes are executed in pseudo-parallel, i.e., only one process executes at any instance of real time, but many processes may execute concurrently at any instance of simulation time. The simulation clock is only advanced when all processes have been executed for the current instance of simulation time. - -Inactive processes are placed on to the scheduler queue, and when the current active process yields control to the scheduler (either because it has finished or been placed back onto the scheduler queue), the scheduler removes the process at the head of the queue and re-activates it.2 When the scheduler queue is empty, i.e., there are no further processes left to execute, the scheduler terminates the simulation. - -Scheduler Queue - - -t1 t2 t2 t3 - -Scheduler - - -t0 - -Active Process - - -Figure 1: Scheduler-Process Interaction - -As Figure 1 shows, the scheduler co-ordinates the entire simulation run, effectively monitoring the active and passive processes to enable it to determine when, and which, process to activate next. A simulation application cannot affect the scheduler directly, but can do so only indirectly through modifications of the scheduler queue. - -Note: the scheduler queue can be structured in a variety of ways, including a linear list or a tree. The implementation of the queue can depend upon the type of simulation being conducted. For example, a simulation which involves many (concurrent) processes would suffer from using a linear ordered queue which would typically have insertion and removal routines with overheads proportional to the number of entries in the queue. However, a linear - - - - - -2In SIMULA the currently active process is not removed from the head of the queue. -The JavaSim User’s Manuals - -list may work best for a low number of simulation processes. JavaSim comes with a suite of scheduler queue implementations which can be chosen when the system is built. - -3.1.1 Scheduler class interface - -The scheduler is an instance of the Scheduler class. It is the responsibility of the application programmer to ensure that only a single instance of this class is created. - -public class Scheduler -{ -public static double CurrentTime (); - -public static synchronized void reset (); -public static synchronized boolean simulationReset (); - -public static synchronized void startSimulation (); -}; - -The scheduler maintains the simulation clock, and the current value of this clock is obtained by invoking the CurrentTime() method. - -To enable multiple simulation runs to occur within a single application, it is possible to reset the scheduler and simulation clock by calling the reset() method. This causes the scheduler to remove all processes (simulation objects) currently registered on the scheduler queue and to invoke a class specific method on each of them which resets their states (detailed in the next section). Once this is finished the simulation is ready for an additional run. A suspended process is informed that it has been “reset” by having the method it called to originally suspend itself (i.e., place itself on the scheduler queue) raise the RestartSimulation exception, which the object should catch. It must then perform any work necessary to put itself back in a state ready for restarting the simulation, and should then suspend itself again before the simulation can be restarted (typically by calling Cancel.) - -3.2 Simulation processes - -As was described in the previous chapter, JavaSim supports the process-oriented approach to simulation, where each simulation entity can be considered a separate process. Therefore in JavaSim the entities within a simulation are represented by process objects. These are Java objects which have an independent thread of control associated with them at creation time, allowing them to convey the notion of activity necessary for participating in the simulation. - -In keeping with the object-oriented paradigm, and to make development of process objects simpler, classes inherit the process functionality from the appropriate base class (Process). This class defines all of the necessary operations for the simulation system to control the simulation entities within it, and for them to interact with it and each other. - -At any point in simulation time, a process can be in one (and only one) of the following states: - -active: the process has been removed from the head of the scheduler queue and its actions are being executed. - -suspended: the process is on the scheduler queue, scheduled to become active at a specified simulation time. - -passive: the process is not on the scheduler queue. Unless another process brings it back on to the queue it will not execute any further actions. -The JavaSim User’s Manuals - -terminated: the process is not on the scheduler queue and has no further actions to execute. Once a process has been terminated it cannot be made to execute further in the same simulation run. - -A process which is either active or suspended is said to be scheduled. - -3.2.1 SimulationProcess class interface - -The SimulationProcess class definition is shown below. Before considering how to build an example class derived from SimulationProcess we shall discuss the methods which it provides. - -Because the constructors are protected, it is not possible to create an instance of the SimulationProcess class, i.e., classes must be derived from this. Processes are threaded objects, and typically each thread package schedules execution of threads according to a priority. By default, all processes in JavaSim are created with the same priority, but this can be altered by calling the setPriority method of java.lang.Thread. Note, however, that priorities have no effect on a simulation run. - -public class SimulationProcess extends Thread -{ -public final double Time (); -public synchronized SimulationProcess next_ev () -throws SimulationException, NoSuchElementException; -The JavaSim User’s Manuals - -public final double evtime (); - -public void ActivateBefore (SimulationProcess p) - -throws SimulationException, RestartException; public void ActivateAfter (SimulationProcess p) throws SimulationException, -RestartException; -public void ActivateAt (double AtTime, boolean prior) - -throws SimulationException, RestartException; - -public void ActivateAt (double AtTime) throws SimulationException, RestartException; -public void ActivateDelay (double Delay, boolean prior) - -throws SimulationException, RestartException; - -public void ActivateDelay (double Delay) throws SimulationException, RestartException; -public void Activate () throws SimulationException, RestartException; - -public void ReActivateBefore (SimulationProcess p) - -throws SimulationException, RestartException; public void ReActivateAfter (SimulationProcess p) - -throws SimulationException, RestartException; public void ReActivateAt (double AtTime, boolean prior) - -throws SimulationException, RestartException; - -public void ReActivateAt (double AtTime) throws SimulationException, RestartException; - -public void ReActivateDelay (double Delay, boolean prior) throws SimulationException, -RestartException; - -public void ReActivateDelay (double Delay) throws SimulationException, RestartException; -public void ReActivate () throws SimulationException, RestartException; - -public void Cancel () throws RestartException; public void terminate (); -public synchronized boolean idle (); - -public boolean passivated (); public boolean terminated (); - -public static SimulationProcess current () throws SimulationException; public static double CurrentTime (); - -public static void mainSuspend (); -public static void mainResume () throws SimulationException; - -protected SimulationProcess (); - -protected void set_evtime (double time) throws SimulationException; protected void Hold (double t) throws SimulationException, - -RestartException; protected void Passivate () throws RestartException; - -protected void Suspend () throws RestartException; protected void Resume (); -}; - -There are five ways to activate a currently passive process, which results in it being brought to the correct position in the scheduler queue corresponding to its associated simulation time. If this is the head of the queue then it will become the active process. -The JavaSim User’s Manuals - -Activate(): this activates the process at the current simulation time. - -ActivateBefore(SimulationProcess proc): this positions the process in the scheduler queue before proc, and gives it the same simulation time. If proc is not present then a SimulationException will be thrown. - -ActivateAfter(SimulationProcess proc): this positions the process in the scheduler queue after proc, and gives it the same simulation time. If proc is not present then a SimulationException will be thrown. - -ActivateAt(double AtTime, boolean prior): the process is inserted into the scheduler queue at the position corresponding to the simulation time specified by AtTime. The default for this time is the current simulation time. The prior parameter is used to determine whether this process should be inserted before or after any processes with the same simulation time which may already be present in the queue. The default is false. - -ActivateDelay(double AtTime, boolean prior): the process is activated after a specified delay (AtTime). The process is inserted into the queue with the new simulation time, and the prior parameter is used to determine its ordering with respect to other processes in the queue with the same time. The default is false. - -There are correspondingly five ReActivate methods, which work on either passive or scheduled processes. These will not be described in detail as they have similar signatures to their Activate counterparts and work in the same way. - -Hold(double period) schedules the currently active process for re-activation after the simulated delay of period time. If this is invoked by the object (e.g., through a publicly available method) when it is not the current active process then it does nothing. - -evtime() returns the time at which the process is scheduled for activation. - -next_ev() returns a reference to the next process to be scheduled for execution. If the queue is empty then null is returned. - -The static method current() returns a reference to the currently active process. - -The current simulation time can be obtained by using either the CurrentTime() or Time() methods. The former method is static and as such can be invoked without an instance of the SimulationProcess class. - -Cancel() removes the process from the scheduler queue or suspends it if it is the currently active process. In either case, the process is set to the passive state. Passivate() functions similarly but only works on the currently active process, i.e., if it is invoked by the object (e.g., through a publicly available method) when it is not the current active process then it does nothing. - -terminate() removes the process from the scheduler queue or it is suspended if it is currently active. The process is then set to the terminated state, and can take no further part in this simulation run. - -idle() returns false if the process is either active or scheduled to become active. Otherwise true is returned. -The JavaSim User’s Manuals - -passivated() and terminated() indicate whether the process is in the passive or terminated state, respectively. - -Because SimulationProcess extends the java.lang.Thread class it is necessary for the simulation class to provide an implementation of the run method which will do the actual work for the process. If this method ever returns then the thread is destroyed. However, in order for JavaSim to detect the termination of the thread, the terminate() method must be used instead. - -3.2.2 Example - -To illustrate how a simulation process could be implemented from the Process class we shall consider the example of a queue of customers arriving at a bank. For this example, this involves three classes: - -Customer: instances of this class represent the customers in the queue. - -Queue: the instance of this class (queue) is the queue into which customers are places. - -Arrivals: this is the process which creates new customers for insertion in queue. - -The implementations of the Customer and Queue classes are not important to this example. The implementation of the Arrivals class could be: - -class Arrivals : public Process -{ -public: - -Arrivals () {}; ~Arrivals () {}; - -void Body (); -}; - -void Arrivals::Body () -{ -for (;;) -{ - -Customer* c = new Customer(); queue.insert(c); -Hold(20.0); -} -} - -3.3 Starting, ending and controlling a simulation - -When a SimulationProcess object is created in JavaSim it starts in the passive state, and must be activated before it can take part in the simulation. This is typically performed by the first process object to which control is transferred after the simulation is initially started. When writing JavaSim applications it is typical for the main thread to create a single controller process which is responsible for co-ordinating the entire simulation run. This creates and activates all of the simulation entities and the scheduler, and provides methods for suspending the main thread, thus allowing the controller object to execute, and exiting the application. An example controller interface is shown below, and the implementations for its methods will be described in the following sections: -The JavaSim User’s Manuals - -public class Controller extends SimulationProcess -{ -public Controller (); - -public void run (); - -public void await (); public void exit (); }; - -Because Controller is a simulation process itself, it derives from Simulationrocess and defines a run() method, which will do the actual controlling of the simulation. It also provides the following methods: - -await(): this method is called within the main application thread and suspends it, effectively transferring control the Controller process. - -exit(): this method is called to exit the simulation. - -3.3.1 Suspending the main thread - -When a threaded application is started it is important to realise that before any application threads are created, the Java virtual machine has already created one to run the application. This thread must be suspended before any simulation threads can run. - -The await() method of Controller is responsible for suspending this thread: - -public void await () -{ - -Resume(); SimulationProcess.mainSuspend(); -} - -It must first resume the thread associated with the Controller instance (since Controller is a SimulationProcess it starts in the passive state). This thread does not execute until the main thread is suspended by the call to the static mainSuspend method. - -The code for main would then become: - -public static void main (String[] args) -{ - -Controller c = new Controller(); c.await(); -} - -3.3.2 Exiting the application - -In order to exit a simulation application, the application can call System.exit. However, if it is only necessary to resume the main thread, then this can be accomplished by using the static mainResume method of the SimulationProcess class. Once the main thread has been resumed, it will continue to execute from the point it was suspended. In the example above, this would be from within the await method. The thread which calls mainResume can then suspend or terminate itself, depending upon the application requirements. -The JavaSim User’s Manuals - -public void exit () -{ -if (resumeMainRequired) -{ - -SimulationProcess.mainResume(); Suspend(); -} -else -System.exit(0); -} - -3.3.3 Controlling the simulation - -The controller’s body creates and activates the other simulation entities and the scheduler, and controls the overall simulation (e.g., resetting the system between consecutive runs). - -public void run () -{ -sc = new Scheduler(); - -// create and activate any other simulation entities - -sc->Resume(); // we must create a scheduler for the simulation to run - -execute the simulation - -print results - -sc->Suspend(); // suspend scheduler // suspend simulation entities - -Thread_Type::mainResume(); -} - -The final call to mainResume prevents run() from exiting, which we must do to ensure the application is portable between thread implementations. - -3.4 Resetting a simulation - -Resetting a simulation involves resetting all of the objects involved in it which will be required for subsequent runs. When the reset method is invoked on the Scheduler, this causes the current simulation run to be terminated, and all simulation objects which are currently suspended on the scheduler queue will be woken and the RestartException will be thrown to each. Any objects which are required to participate within a new simulation run must catch this exception, reset themselves to a state consistent with the start of another simulation, and then become suspended, to await the restart of the simulation. -The JavaSim User’s Manuals - -3.4.1 Example - -If we take the Arrivals example above and add a reset method then the code could be: - -public class Arrivals extends SimulationProcess -{ -public void run () -{ -for (;;) -{ -try -{ -for (;;) -{ - -Customer c = new Customer(); queue.insert(c); - -Hold(20.0); -} -} -catch (RestartException e) -{ -} -} -} -}; -The JavaSim User’s Manuals - - -4. Distribution Functions - -Many of the aspects of the real world which a simulation attempts to model have properties which correspond to various distribution functions, e.g., inter-arrival rates of customers at a bank queue. Therefore, simulation studies require sources of random numbers. Ideally these sources should produce an endless stream of such numbers, but to do so either requires specialised hardware or the ability to store an infinite (large) table of such numbers generated in advance. - -Without such aids, which are either impractical or not generally available, the alternative is to use numerical algorithms. No deterministic algorithm can produce a sequence of numbers that would have all of the properties of a truly random sequence [3]. However, for all practical purposes it is only necessary that the numbers produced appear random, i.e., pass certain statistical tests for randomness. Although these generators produce pseudo-random numbers, we continue to call the random number generators. - -The starting point for generating arbitrary distribution functions is to produce a standard uniform distribution. As we shall see, all other distributions can be produced based upon this. (Interested readers are referred to [6] for a more complete treatment of this topic). All of the distribution functions in JavaSim rely upon inheritance to specialise the behaviour obtained from the uniform distribution class. These classes can be found in the arjuna.JavaSim.Distributions package. - -4.1 RandomStream - -The actual uniform distribution class is called RandomStream. This returns a series of random numbers uniformly distributed between 0 and 1. We experimented with several random number generators before settling on a shuffle of a multiplicative generator with a linear congruential generator, which provides a reasonably uniform stream of pseudo-random numbers. - -public abstract class RandomStream -{ - -public abstract double getNumber () throws IOException, ArithmeticException; - -public final double Error (); - -protected RandomStream (); -protected RandomStream (long MGSeed, long LCGSeed); - -protected final double Uniform (); }; - -The multiplicative generator uses the following algorithm3: - -Y[i+1] = Y[i] * 55 mod 226 - -, where the period is 224, and the initial seed must be odd. - -4. Distribution Functions - -Many of the aspects of the real world which a simulation attempts to model have properties which correspond to various distribution functions, e.g., inter-arrival rates of customers at a bank queue. Therefore, simulation studies require sources of random numbers. Ideally these sources should produce an endless stream of such numbers, but to do so either requires specialised hardware or the ability to store an infinite (large) table of such numbers generated in advance. - -Without such aids, which are either impractical or not generally available, the alternative is to use numerical algorithms. No deterministic algorithm can produce a sequence of numbers that would have all of the properties of a truly random sequence [3]. However, for all practical purposes it is only necessary that the numbers produced appear random, i.e., pass certain statistical tests for randomness. Although these generators produce pseudo-random numbers, we continue to call the random number generators. - -The starting point for generating arbitrary distribution functions is to produce a standard uniform distribution. As we shall see, all other distributions can be produced based upon this. (Interested readers are referred to [6] for a more complete treatment of this topic). All of the distribution functions in JavaSim rely upon inheritance to specialise the behaviour obtained from the uniform distribution class. These classes can be found in the arjuna.JavaSim.Distributions package. - -4.1 RandomStream - -The actual uniform distribution class is called RandomStream. This returns a series of random numbers uniformly distributed between 0 and 1. We experimented with several random number generators before settling on a shuffle of a multiplicative generator with a linear congruential generator, which provides a reasonably uniform stream of pseudo-random numbers. - -public abstract class RandomStream - - -{ -public abstract double getNumber () throws IOException, ArithmeticException; - -public final double Error (); - -protected RandomStream (); - -protected RandomStream (long MGSeed, long LCGSeed); - -protected final double Uniform (); }; - - - - - - - - - - - - - - - - -The multiplicative generator uses the following algorithm3: - -Y[i+1] = Y[i] * 55 mod 226 - -, where the period is 224, and the initial seed must be odd. - - - - -3Thanks to Professor I. Mitrani for his help in developing this. -The Uniform() method uses the linear congruential generator (seed is LCGSeed, with the default value of 1878892440L) based on the algorithm in [4], and the results of this are shuffled with the multiplicative generator (see is MGSeed, with a default value of 772531L) as suggested by Maclaren and Marsaglia [3], to obtain a sufficiently uniform random distribution, which is then returned. - -The Error() method returns a chi-square error measure on the uniform distribution function. - -By abstract method getNumber must be provided by derived classes, and is used to obtain a uniform means of accessing random numbers. - -The RandomStream class returns a large sequence of random numbers, whose period is - -2^24. However, unless the seeds are modified when each random distribution class is created, the starting position in this sequence will always be the same, i.e., the same sequence of numbers will be obtained. To prevent this, each class derived from RandomStream has an additional parameter for one of its constructors which indicates the offset in this sequence from which to begin sampling. - -4.2 UniformStream - -The UniformStream class inherits from RandomStream and returns random numbers uniformly distributed over a range specified when the instance is created. - -public class UniformStream extends RandomStream - - -{ -public UniformStream (double lo, double hi); - -public UniformStream (double lo, double hi, int StreamSelect); public UniformStream (double lo, double hi, int StreamSelect, - -long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; }; - - -The range covers the interval specified by lo and hi. StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. - -4.3 ExponentialStream - -The ExponentialStream class returns an exponentially distributed stream of random numbers with mean value specified by mean. - -public class ExponentialStream extends RandomStream - - -{ -public ExponentialStream (double mean); - -public ExponentialStream (double mean, int StreamSelect); public ExponentialStream (double mean, int StreamSelect, - -long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; }; - -StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. - -4.4 ErlangStream - -ErlangStream returns an erlang distribution with mean mean and standard deviation sd. - -public class ErlangStream extends RandomStream - - -{ -public ErlangStream (double mean, double sd); - -public ErlangStream (double mean, double sd, int StreamSelect); public ErlangStream (double mean, double sd, int StreamSelect, - -long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; }; - - -StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. - -4.5 HyperExponentialStream - -The HyperExponential class returns a hyper-exponential distribution of random numbers, with mean mean and standard deviation sd. - -public class HyperExponentialStream extends RandomStream - - -{ -public HyperExponentialStream (double mean, double sd); - -public HyperExponentialStream (double mean, double sd, int StreamSelect); public HyperExponentialStream (double mean, double sd, int StreamSelect, - -long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; }; - - -StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. - -4.6 NormalStream - -NormalStream returns a normal distribution of random numbers, with mean mean and standard deviation sd. operator() uses the polar method due to Box, Muller, and - -Marsaglia [3]. - -public class NormalStream extends RandomStream - - -{ -public NormalStream (double mean, double sd); - -public NormalStream (double mean, double sd, int StreamSelect); public NormalStream (double mean, double sd, int StreamSelect, - -long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; }; - -StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. - -4.7 Draw - -The Draw class is the exception to the inheritance rule, instead using RandomStream through delegation (for historical reasons). This returns true with the probability prob, and false otherwise. - -public class Draw - - -{ -public Draw (double p); -public Draw (double p, int StreamSelect); -public Draw (double p, int StreamSelect, long MGSeed, long LCGSeed); - -public boolean getBoolean () throws IOException; }; - - -StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. - -4.8 Example -5. Advanced Simulation Classes - -Simulations formed by the interaction of objects derived from SimulationProcess can be considered causal (synchronous) in nature: events occur at specific times and form a well defined order. However, it is sometimes necessary to simulate asynchronous real world events, e.g., processor interrupts. To do this requires finer-grained control of the scheduling of simulation processes than it provided by the scheduler; the scheduler simply activates according to simulation time, whereas asynchronous events may have different activation rules, e.g., activate when another process is terminated. - -The SimulationEntity class and others to be described in the following sections gives this required level of control to the user, extending the types of simulation which are possible with JavaSim. Asynchronous simulation processes are derived from SimulationEntity, but the implementation enables these asynchronous process to execute in the same simulation as SimulationProcess objects. However, because these processes are suspended and resumed outside of the control of the scheduler, it is possible for deadlock situations to occur. Therefore, some care must be taken when using these classes. - -In addition to the active, suspended, passive and terminated states which a simulation process can be in, asynchronous objects can also be in the following states: - -• waiting: the process is suspended waiting for a specific event to occur (e.g., a process to be terminated). The waiting process is not placed on the scheduler queue. -interrupted: the process, which was in the waiting state, has been interrupted from this before the condition it was awaiting occurred. - -The conditions on which a process can wait, and can thus be interrupted from, are: - -time: a process can attempt to wait for a specified period of simulation time. - -process termination: a process can wait for the termination of another SimultionEntity process before continuing execution. - -semaphore: critical regions of a simulation can be protected by semaphores, where only a single Entity process can acquire the semaphore; other processes are suspended until the semaphore is released. - -user specific: it is possible for other asynchronous conditions to occur which are not covered above. -The classes to be described in this chapter can be found in the arjuna.JavaSim.Simulation package. -5.1 Asynchronous entities - -public class SimulationEntity extends SimulationProcess - - -{ -public void Interrupt (SimulationEntity toInterrupt, boolean immediate) throws SimulationException, RestartException; - -public final void trigger (); public void terminate (); - -protected SimulationEntity (); - -protected void Wait (double waitTime) throws SimulationException, RestartException, InterruptedException; - -protected void WaitFor (SimulationEntity controller, boolean reAct) throws SimulationException, - -RestartException, InterruptedException; protected void WaitFor (SimulationEntity controller) - -throws SimulationException, RestartException, InterruptedException; - -protected void WaitForTrigger (TriggerQueue _queue) - -throws SimulationException, RestartException, InterruptedException; - -protected void WaitForSemaphore (Semaphore _sem) throws RestartException; }; - - -Because SimulationEntity is derived from SimulationProcess, all of the usual simulation methods are available, and can be used in conjunction with those provided by the derived class. - -Interrupt(SimulationEntity toInterrupt, boolean immediate) interrupts the asynchronous process toInterrupt, which must not be terminated and must be in the waiting state. toInterrupt becomes the next active process (i.e., it is moved to the head of the scheduler queue). If immediate is true then the current process is suspended immediately; it is scheduled for reactivation at the current simulation time. Otherwise, the current process continues to execute and can be suspended later in an application specific way. - -Because it is now possible for one process to wait for another to terminate the terminate() method must differ from that provided by SimulationProcess. Before the terminating process ends it moves the waiting process to the head of the scheduler queue, and then calls SimulationProcess.terminate(). Currently only a single process can wait on this termination condition, but this may change in future versions. - -Wait(double t) is similar to Hold(double t), with the exception that the process is moved into the waiting state as well as being placed on the scheduler queue. It is therefore possible to interrupt this process before the wait period has elapsed. true is returned if the process was interrupted, otherwise false is returned. - -WaitFor(SimulationEntity controller, boolean reAct) suspends the current process until controller has terminated. The process is placed in the waiting state. If reAct is true then controller is moved to the head of the scheduler queue to become the next activate process, otherwise (the default behaviour) the application will have to activate controller. If the waiting process is interrupted then the method returns -true, otherwise false. The controller and the current process must be different, i.e., it is not possible for a process to wait for itself. - -Trigger queues are lists maintained by the simulation system of process waiting for specific events to occur, which are outside the scope of those described above. These will be described in the next section. WaitForTrigger(TriggerQueue queue) places the current process on the trigger queue _queue, and passivates it. As with the previous methods, the return value indicates whether the process was interrupted, or triggered. - -In addition to trigger queues, process can wait on semaphores, allowing the creation of monitor regions, for example. WaitForSemaphore(Semaphore sem) causes the current process to attempt to exclusively acquire the semaphore. If this is not possible then the process is suspended. Currently, a process which is waiting on a semaphore cannot be interrupted, and is not placed into the waiting state. As such, when this method returns the semaphore has been acquired. - -5.2 Trigger queues - -Processes waiting for the same application controlled event can be grouped together into a TriggerQueue, as described in the previous section. When this event occurs the application can use one of the two trigger methods to activate the queue members. This involves placing the process(es) onto the head of the scheduler queue. - -public class TriggerQueue - - -{ -public TriggerQueue (); public void finalize (); - -public synchronized void triggerFirst (boolean setTrigger) - -throws NoSuchElementException; public synchronized void triggerFirst () throws NoSuchElementException; - -public synchronized void triggerAll () throws NoSuchElementException; }; - - -triggerAll(): triggers all of the members on the queue. - -triggerFirst(boolean setTrigger): triggers only the head of the queue. If setTrigger is true (the default behaviour) then the trigger() method of the SimulationEntity object is also invoked. - -If the queue is not empty when it is garbage collected by the virtual machine then all remaining queue members will be triggered, and placed back onto the scheduler queue. -5.3 Semaphores - -Application code can be protected from simulation processes through semaphores, which are instances of the Semaphore class. - -public class SemaphoreOutcome - - -{ - -static final public int DONE = 0; static final public int NOTDONE = 1; -static final public int WOULD_BLOCK = 2; - -}; - -public class Semaphore - -{ -public Semaphore (); - -public Semaphore (long number); - -public synchronized long NumberWaiting (); - -public synchronized int Get (SimulationEntity toWait) - -throws RestartException; public synchronized int TryGet (SimulationEntity toWait) -throws RestartException; -public synchronized int Release (); }; - - -A semaphore can be used to restrict the number of processes which can use shared resources. The number of shared resources available must be presented to the Semaphore when it is created. By default, a Semaphore will assume that there is only a single resource, in which case a semaphore is exclusively acquired by a simulation process. However, it is possible to create a Semaphore with different resource counts. - -A Semaphore can exist in one of two states: - -available: the semaphore is available to be acquired. - -unavailable: a process (or number of processes) currently has the semaphore. If another process attempts to acquire the semaphore then it is automatically suspended until the semaphore is available, i.e., until a resource has been freed. - -To be able to manipulate semaphores, a process must be derived from the - -SimulationEntity class. To obtain the semaphore, the Get(SimulationEntity toWait) method should be used, where toWait is the calling process. If the semaphore is unavailable then the process referenced by toWait is suspended. If the semaphore is successfully acquired, then SemaphoreOutcome.DONE is returned, otherwise -SemaphoreOutcome.NOTDONE. - -If the process wishes to attempt to acquire the semaphore but does not want to block in the situation where the semaphore is currently unavailable, then it can use the TryGet method, which takes the same parameter as Get. However, unlike Get, TryGet will return SemaphoreOutcome.WOULD_BLOCK in the case where the caller would normally block if it had called Get, i.e., the semaphore is currently in use. If the semaphore is not being used, then TryGet will acquire it for the caller. Errors will result in -SemaphoreOutcome.NOT_DONE being returned. - -When the semaphore is no longer required Release() should be called by the process which currently has it. Successful release of the semaphore results in -SemaphoreOutcome.DONE being returned, otherwise Semaphore.NOTDONE is returned. - -NumberWaiting() returns the number of processes currently suspended waiting for the semaphore. - -If the semaphore is garbage collected with processes waiting for it then an error message is displayed. No further action is attempted on behalf of these waiting processes. - -5.4 Example -6. Statistical Classes - -The purpose of a simulation typically involves the gathering of relevant statistical information, e.g., the average length of time spent in a queue. JavaSim provides a number of different classes for gathering such information. These classes can be found in the arjuna.JavaSim.Statistics package. - -6.1 Mean - -This is the basic class from which others are derived, gathering statistical information on the samples provided to it. - -public class Mean - - -{ - -public Mean (); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public int numberOfSamples (); public double min (); - -public double max (); public double sum (); public double mean (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -public void print (); }; - - -New values can be supplied to the instance of the Mean class using the setValue(double) method. The number of samples which have been give can be obtained from numberOfSamples(). - -The maximum and minimum of the samples supplied can be obtained from the max() and min() methods, respectively. - -sum() returns the summation of all of the samples: - -n -Σ Si - -i=1 - -mean() returns the mean value: - -n -1_n Σ Si - -i=1 - -An instance of Mean can be reset between samples using the reset() method. -If the state of a Mean object is required to be saved between simulation runs then it can be made persistent by using either of the saveState methods. The first instance saves the state to a file, whereas the second can be used to save the state to an instance of the java.io.DataOutputStream class. There are likewise two corresponding ways in which the state can be restored. - -The print method simply prints to System.out the current state of the object. - -6.2 Variance - -This class is derived from Mean, and in addition to providing the above mentioned functionality also provides the following: - -public class Variance extends Mean - - -{ - -public Variance (); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public double variance (); public double stdDev (); - -public double confidence (double value); - -public void print (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; }; - - -variance() returns the variance of the samples: - -1 -n - - -2 - -_ -Σ (Si-Mean()) - -n - - - -i=1 - - -stdDev() returns the standard deviation of the samples, which is the square root of the variance. - -6.3 TimeVariance - -The TimeVariance class makes it possible to determine how long, in terms of simulation time, specific values were maintained. In effect, values are weighted according to the length of time that they were held, whereas with the Variance class only the specific values are taken into account. - -3Thanks to Professor I. Mitrani for his help in developing this. - -If the state of a Mean object is required to be saved between simulation runs then it can be made persistent by using either of the saveState methods. The first instance saves the state to a file, whereas the second can be used to save the state to an instance of the java.io.DataOutputStream class. There are likewise two corresponding ways in which the state can be restored. - -The print method simply prints to System.out the current state of the object. - -6.2 Variance - -This class is derived from Mean, and in addition to providing the above mentioned functionality also provides the following: - -public class Variance extends Mean - - -{ - -public Variance (); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public double variance (); public double stdDev (); -public double confidence (double value); - -public void print (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, IOException; -public boolean restoreState (DataInputStream iFile) throws IOException; }; - - - - - - - - - - - - - - - - -variance() returns the variance of the samples: - -1 -n - - -2 - -_ -Σ (Si-Mean()) - -n - - - -i=1 - - -stdDev() returns the standard deviation of the samples, which is the square root of the variance. -6.3 TimeVariance - -The TimeVariance class makes it possible to determine how long, in terms of simulation time, specific values were maintained. In effect, values are weighted according to the length of time that they were held, whereas with the Variance class only the specific values are taken into account. -public class TimeVariance extends Variance - - -{ - -public TimeVariance (); - -public void reset (); - -public void setValue (double value) throws IllegalArgumentException; - -public double timeAverage (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, IOException; -public boolean restoreState (DataInputStream iFile) throws IOException; }; - - -Whenever a value is supplied to an instance of the TimeVariance class the simulation time at which it occurred is also noted. If a value changes, or the timeAverage() method is invoked, then the time it has been maintained for is calculated and the statistical data is updated. - -6.4 Histograms - -Mean, Variance, and TimeVariance provide a snapshot of values in the simulation. However, histograms can yield better information about how a range of values change over the course of a simulation run. This information can be viewed in a number of ways, but typically it is plotted in graphical form. - -A histogram typically maintains a slot for each value, or range of values, given to it. These slots are termed buckets, and the way in which these buckets are maintained and manipulated gives rise to a variety of different histogram implementations. The following sections detail this variety of different histogram classes. - -6.4.1 PrecisionHistogram - -The PrecisionHistogram class represents the core histogram class from which all others are derived. This class keeps an exact tally of all values given to it, i.e., a bucket is created for each value. Although buckets are only created when requires, over the course of a simulation this can still utilise a large amount of resources, and so other, less precise, histogram classes are provided. -public class PrecisionHistogram extends Variance - - -{ - -public PrecisionHistogram (); - -public void finalize (); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public long numberOfBuckets (); - -public double sizeByIndex (long index) throws StatisticsException, IllegalArgumentException; -public double sizeByName (double name) throws IllegalArgumentException; - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, IOException; -public boolean restoreState (DataInputStream iFile) throws IOException; - -public void print (); }; - - -As with the Variance class from which it is derived, and whose methods are obviously available, values can be supplied to the histogram through the setValue(double) method. - -The number of buckets maintained by the histogram can be obtained from the numberOfBuckets() method. Each bucket is uniquely named by the values it contains, and can also be accessed by its index in the entire list of buckets. - -There are therefore two ways of getting the number of entries in a bucket: - -• by the index number of the bucket: sizeByIndex(long index). - -• by the unique name of the bucket: sizeByName(double name). - -If the bucket does not exist then each of these methods throws - -IllegalArgumentException. - -It is possible to output the contents of the histogram to standard output using the print()method. - -6.4.2 Histogram - -The problem with the PrecisionHistogram class is that it can use up a lot of system resources, especially over the course of a long simulation. Histogram attempts to alleviate this by presenting a histogram which is less accurate, but consumes less resources. Instead of maintaining a bucket for each individual value, it keeps a fixed number of buckets. Initially each bucket will store separate values as in the PrecisionHistogram, but when the number of required buckets would exceed the specified maximum number it merges pairs of buckets, thus reducing their total. The policy used when merging buckets it set on a per instance basis when created. Current policies are: - -ACCUMULATE: create a new bucket with the same name as the largest of the two buckets, and it has the sum of the two old bucket entries as its entry number. -MEAN: create a new bucket with the name as the mean of the two old buckets, and it has the sum of the two old bucket entries as its entry number. - -MAX: create a new bucket with the name as the largest of the two buckets, and it has the same number of entries. -MIN: create a new bucket with the name as the smallest of the two old buckets, and it has the same number of entries. - -public class Histogram extends PrecisionHistogram -{ -public Histogram (long maxIndex, int mergeChoice); public Histogram (long maxIndex); - -public void setValue (double value) throws IllegalArgumentException; - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, IOException; -public boolean restoreState (DataInputStream iFile) throws IOException; - -public void print (); }; - - -When an instance of Histogram is created, the maximum number of allowed buckets must be specified. The merging algorithm can also be provided, with the default being the MEAN policy. - -6.4.3 SimpleHistogram - -As with the Histogram class above, SimpleHistogram keeps the number of assigned buckets to a minimum. However, it does this by pre-creating the buckets when it is created, i.e., the number of required buckets must be provided at the start. A width is the assigned for each bucket, and whenever a value if given to the histogram class it is placed into the bucket whose width it falls within. - -public class SimpleHistogram extends PrecisionHistogram - - -{ - -public SimpleHistogram (double min, double max, long nbuckets); public SimpleHistogram (double min, double max, double w); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public double sizeByName (double name) throws IllegalArgumentException; - -public double Width (); - -public void print (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, IOException; -public boolean restoreState (DataInputStream iFile) throws IOException; }; - - -When the class is instantiated, the range of values it will receive must be provided. Then, either the width of each bucket or the actual number of buckets can be given. If the width is -provided, then the histogram automatically calculates the number of buckets, otherwise it calculates the width for each bucket by equally dividing the range between each bucket. -The values of a bucket can be obtained from the sizeByName method. - -The width of each bucket is provided by the Width method. - -6.4.4 Quantile - -The Quantile class provides a means of obtaining the p-quantile of a distribution of values, i.e., the value below which p-percent of the distribution lies. - -public class Quantile extends PrecisionHistogram - - -{ -public Quantile (); - -public Quantile (double q) throws IllegalArgumentException; - -public double getValue (); public double range (); - -public void print (); }; - - -The p-quantile probability range must be specified when the object is instantiated, and can be obtained via the range method. - -The actual quantile value is provided by getValue method. -7. JavaSim classes - -For convenience, in this section we shall include the JavaSim classes which programmers will use when constructing simulations. -7.1 Scheduler - -package arjuna.JavaSim.Simulation; - - -public class Scheduler - -{ - -public static double CurrentTime (); - -public static synchronized void reset (); - -public static synchronized boolean simulationReset (); - -public static synchronized void startSimulation (); - - -}; -7.2 SimulationProcess - -package arjuna.JavaSim.Simulation; - - -public class SimulationProcess extends Thread - -{ -public final double Time (); - -public synchronized SimulationProcess next_ev ()throws SimulationException, NoSuchElementException; - -public final double evtime (); - -public void ActivateBefore (SimulationProcess p)throws SimulationException, RestartException; -public void ActivateAfter (SimulationProcess p) throws SimulationException, RestartException; -public void ActivateAt (double AtTime, boolean prior) -throws SimulationException, RestartException; public void ActivateAt (double AtTime) throws SimulationException, - -RestartException; public void ActivateDelay (double Delay, boolean prior) - -throws SimulationException, RestartException; public void ActivateDelay (double Delay) throws SimulationException, - -RestartException; public void Activate () throws SimulationException, RestartException; - -public void ReActivateBefore (SimulationProcess p) - -throws SimulationException, RestartException; public void ReActivateAfter (SimulationProcess p) - -throws SimulationException, RestartException; public void ReActivateAt (double AtTime, boolean prior) - -throws SimulationException, RestartException; public void ReActivateAt (double AtTime) throws SimulationException, - -RestartException; public void ReActivateDelay (double Delay, boolean prior) - -throws SimulationException, RestartException; public void ReActivateDelay (double Delay) throws SimulationException, - -RestartException; public void ReActivate () throws SimulationException, RestartException; - -public void Cancel () throws RestartException; public void terminate (); - -public synchronized boolean idle (); - -public boolean passivated (); public boolean terminated (); - -public static SimulationProcess current () throws SimulationException; public static double CurrentTime (); - - -public static void mainSuspend (); - - -public static void mainResume () throws SimulationException; - -protected SimulationProcess (); - -protected void set_evtime (double time) throws SimulationException; protected void Hold (double t)throws SimulationException, RestartException; protected void Passivate () throws RestartException; - - -}; -7.3 SimulationException - -package arjuna.JavaSim.Simulation; - - -public class SimulationException extends Exception - -{ -public SimulationException (); - -public SimulationException (String s); }; - - -7.4 RestartException - -package arjuna.JavaSim.Simulation; - - -public class RestartException extends Exception - -{ -public RestartException (); - -public RestartException (String s); }; - - -7.5 RandomStream - -package arjuna.JavaSim.Distributions; - - -public abstract class RandomStream - -{ - -public abstract double getNumber () throws IOException, ArithmeticException; - -public final double Error (); - -protected RandomStream (); - -protected RandomStream (long MGSeed, long LCGSeed); - -protected final double Uniform (); }; - - -7.6 UniformStream - -package arjuna.JavaSim.Distributions; - - -public class UniformStream extends RandomStream - -{ -public UniformStream (double lo, double hi); - -public UniformStream (double lo, double hi, int StreamSelect); public UniformStream (double lo, double hi, int StreamSelect, - -long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; }; - -7.7 ExponentialStream - -package arjuna.JavaSim.Distributions; - - -public class ExponentialStream extends RandomStream - -{ -public ExponentialStream (double m); - -public ExponentialStream (double m, int StreamSelect); public ExponentialStream (double m, int StreamSelect, - -long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; }; - - -7.8 ErlangStream - -package arjuna.JavaSim.Distributions; - - -public class ErlangStream extends RandomStream - -{ -public ErlangStream (double mean, double sd); - -public ErlangStream (double mean, double sd, int StreamSelect); public ErlangStream (double mean, double sd, int StreamSelect, - -long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; }; - - -7.9 HyperExponentialStream - -package arjuna.JavaSim.Distributions; - - -public class HyperExponentialStream extends RandomStream - -{ -public HyperExponentialStream (double mean, double sd); - -public HyperExponentialStream (double mean, double sd, int StreamSelect); public HyperExponentialStream (double mean, double sd, int StreamSelect, - -long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; }; - - -7.10 NormalStream - -package arjuna.JavaSim.Distributions; - - -public class NormalStream extends RandomStream - -{ -public NormalStream (double mean, double sd); - -public NormalStream (double mean, double sd, int StreamSelect); public NormalStream (double mean, double sd, int StreamSelect, - -long MGSeed, long LCGSeed); - -public double getNumber () throws IOException, ArithmeticException; }; - -7.11 Draw - -package arjuna.JavaSim.Distributions; - - -public class Draw - -{ -public Draw (double p); -public Draw (double p, int StreamSelect); -public Draw (double p, int StreamSelect, long MGSeed, long LCGSeed); - -public boolean getBoolean () throws IOException; }; - - -7.12 SimulationEntity - -package arjuna.JavaSim.Simulation; - - -public class SimulationEntity extends SimulationProcess - -{ - -public void Interrupt (SimulationEntity toInterrupt, boolean immediate) throws SimulationException, -RestartException; -public final void trigger (); public void terminate (); - -protected SimulationEntity (); - -protected void Wait (double waitTime) throws SimulationException, RestartException, InterruptedException; - -protected void WaitFor (SimulationEntity controller, boolean reAct) throws SimulationException, RestartException, -InterruptedException; -protected void WaitFor (SimulationEntity controller) -throws SimulationException, RestartException, InterruptedException; - -protected void WaitForTrigger (TriggerQueue _queue) - -throws SimulationException, RestartException, InterruptedException; - -protected void WaitForSemaphore (Semaphore _sem) throws RestartException; }; - - -7.13 TriggerQueue - -package arjuna.JavaSim.Simulation; - - -public class TriggerQueue - -{ - -public TriggerQueue (); public void finalize (); - -public synchronized void triggerFirst (boolean setTrigger) - -throws NoSuchElementException; public synchronized void triggerFirst () throws NoSuchElementException; - -public synchronized void triggerAll () throws NoSuchElementException; }; - -7.14 Semaphore - -package arjuna.JavaSim.Simulation; - - -public class SemaphoreOutcome - -{ - -static final public int DONE = 0; static final public int NOTDONE = 1; -static final public int WOULD_BLOCK = 2; -}; - -public class Semaphore - -{ -public Semaphore (); - -public Semaphore (long number); - -public synchronized long NumberWaiting (); - -public synchronized int Get (SimulationEntity toWait) - -throws RestartException; public synchronized int TryGet (SimulationEntity toWait) -throws RestartException; -public synchronized int Release (); }; - - -7.15 Mean - -package arjuna.JavaSim.Statistics; - - -public class Mean - -{ - -public Mean (); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public int numberOfSamples (); public double min (); - -public double max (); public double sum (); public double mean (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, IOException; -public boolean restoreState (DataInputStream iFile) throws IOException; - -public void print (); }; - -7.16 Variance - -package arjuna.JavaSim.Statistics; - - -public class Variance extends Mean - -{ - -public Variance (); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public double variance (); public double stdDev (); -public double confidence (double value); - -public void print (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, IOException; -public boolean restoreState (DataInputStream iFile) throws IOException; }; - - -7.17 TimeVariance - -package arjuna.JavaSim.Statistics; - - -public class TimeVariance extends Variance - -{ - -public TimeVariance (); - -public void reset (); - -public void setValue (double value) throws IllegalArgumentException; - -public double timeAverage (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, IOException; -public boolean restoreState (DataInputStream iFile) throws IOException; }; - -7.18 PrecisionHistogram - -package arjuna.JavaSim.Statistics; - - -public class PrecisionHistogram extends Variance - -{ - -public PrecisionHistogram (); - -public void finalize (); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public long numberOfBuckets (); - -public double sizeByIndex (long index) throws StatisticsException, IllegalArgumentException; -public double sizeByName (double name) throws IllegalArgumentException; - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, IOException; -public boolean restoreState (DataInputStream iFile) throws IOException; - -public void print (); }; - - -7.19 Histogram - -package arjuna.JavaSim.Statistics; - - -public class Histogram extends PrecisionHistogram - -{ - -public Histogram (long maxIndex, int mergeChoice); public Histogram (long maxIndex); - -public void setValue (double value) throws IllegalArgumentException; - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, IOException; - -public boolean restoreState (DataInputStream iFile) throws IOException; - -public void print (); }; - -7.20 SimpleHistogram - -package arjuna.JavaSim.Statistics; - - -public class SimpleHistogram extends PrecisionHistogram - -{ - -public SimpleHistogram (double min, double max, long nbuckets); public SimpleHistogram (double min, double max, double w); - -public void setValue (double value) throws IllegalArgumentException; - -public void reset (); - -public double sizeByName (double name) throws IllegalArgumentException; - -public double Width (); - -public void print (); - -public boolean saveState (String fileName) throws IOException; - -public boolean saveState (DataOutputStream oFile) throws IOException; - -public boolean restoreState (String fileName) throws FileNotFoundException, IOException; -public boolean restoreState (DataInputStream iFile) throws IOException; }; - - -7.21 Quantile - -package arjuna.JavaSim.Statistics; - - -public class Quantile extends PrecisionHistogram - -{ -public Quantile (); - -public Quantile (double q) throws IllegalArgumentException; - -public double getValue (); public double range (); - -public void print (); }; - - -7.22 StatisticsException - -package arjuna.JavaSim.Statistics; - - -public class StatisticsException extends Exception - -{ -public StatisticsException (); - -public StatisticsException (String s); }; - -8. References - -G. M. Birtwistle, O-J. Dahl, B. Myhrhaug, K. Nygaard, “Simula Begin”, Academic Press, 1973 - -O-J. Dahl, B. Myhrhaug, K. Nygaard, “SIMULA Common Base Language”, Norwegian Computing Centre - -Knuth Vol2, “Seminumerical Algorithms”, Addison-Wesley, 1969, p. 117. - -R. Sedgewick, “Algorithms”, Addison-Wesley, Reading MA, 1983, pp. 36-38. - -D. L. McCue and M. C. Little, “Computing Replica Placement in Distributed Systems”, Proceedings of the 2nd IEEE Workshop on the Management of Replicated Data, November 1992, pp. 58-61. - -I. Mitrani, “Simulation Techniques for Discrete Event Systems”, Cambridge University Press, Cambridge, 1982. - -M. C. Little and D. L. McCue, “The Replica Management System: a Scheme for Flexible and Dynamic Replication”, Proceedings of the 2nd International Workshop on Configurable Distributed Systems, March 1994, pp. 46-57. - -G. D. Parrington et al, “The Design and Implementation of Arjuna”, Broadcast Project Technical Report, October 1994. -9. Index - -Activating a process 12 - -Contact person 5 - -Controlling a simulation 14 - -example 14 - -Platform 5 - -Processes 10 - -class definition 11 - -Re-activating a process 12 - -Resetting a simulation 15 - - - -Restarting a simulation 15 - -Scheduler 9 - -class definition 10 - -Simulation models 6 - -continuous time 7 - -continuous time-discrete event 7 - -discrete time 7 - -Terminology 6 From 4b6c88634620eed04a463fda2583c2a29e1eeb28 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 4 Aug 2015 17:59:22 +0100 Subject: [PATCH 103/230] Renamed https://github.com/nmcl/JavaSim/issues/41 --- docs/{javasim.pdf => javasim-0.3.pdf} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{javasim.pdf => javasim-0.3.pdf} (100%) diff --git a/docs/javasim.pdf b/docs/javasim-0.3.pdf similarity index 100% rename from docs/javasim.pdf rename to docs/javasim-0.3.pdf From 557690d5fe24c4088b24c8dcaeb9ae8868fce83b Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 5 Aug 2015 13:56:57 +0100 Subject: [PATCH 104/230] Fixed hypelink typo --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 42e3454..3675914 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -20,7 +20,7 @@ Currently JavaSim has been tested with JDK 1.7 and 1.8. In the past it has worke == Introduction -This manual is not intended as a tutorial on the concepts of simulation in general, but rather how to write simulations in the JavaSim system. However, in order to be able to do this certain key simulation concepts will be briefly described. The interested reader is referred to link:http://dl.acm.org/citation.cfm?id=539335 [this book] for detailed descriptions of these concepts and for further discussions on simulation modelling. +This manual is not intended as a tutorial on the concepts of simulation in general, but rather how to write simulations in the JavaSim system. However, in order to be able to do this certain key simulation concepts will be briefly described. The interested reader is referred to link:http://dl.acm.org/citation.cfm?id=539335[this book] for detailed descriptions of these concepts and for further discussions on simulation modelling. === Simulation Models From 55ca8d978815fe4e5ba26c64abeb57f24cb82a45 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 5 Aug 2015 13:58:36 +0100 Subject: [PATCH 105/230] Update manual.adoc --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 3675914..9947f3d 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -395,7 +395,7 @@ THIS NEEDS FIXING!! plus mod superscripted?! , where the period is 2^24, and the initial seed must be odd (Thanks to Professor I. Mitrani for his help in developing this.) -The uniform() method uses the linear congruential generator (seed is LCGSeed, with the default value of 1878892440L) based on the algorithm in link:http://algs4.cs.princeton.edu/home/[this text], and the results of this are shuffled with the multiplicative generator (see is MGSeed, with a default value of 772531L) as suggested by link:http://www.amazon.com/Art-Computer-Programming-Volume-Seminumerical/dp/0201896842[Maclaren and Marsaglia], to obtain a sufficiently uniform random distribution, which is then returned. +The uniform() method uses the linear congruential generator (seed is LCGSeed, with the default value of 1878892440L) based on the algorithm in link:http://algs4.cs.princeton.edu/home/[this text], and the results of this are shuffled with the multiplicative generator (seed is MGSeed, with a default value of 772531L) as suggested by link:http://www.amazon.com/Art-Computer-Programming-Volume-Seminumerical/dp/0201896842[Maclaren and Marsaglia], to obtain a sufficiently uniform random distribution, which is then returned. The error() method returns a chi-square error measure on the uniform distribution function. From 18b71a27d1cc02e416d7044dfd4169f84732da73 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 19 Aug 2015 13:28:57 +0100 Subject: [PATCH 106/230] Added images director --- docs/images/queues.png | Bin 0 -> 26822 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/queues.png diff --git a/docs/images/queues.png b/docs/images/queues.png new file mode 100644 index 0000000000000000000000000000000000000000..6f2d72fb01d43f6dbab608f8e0f48ea8124aaddc GIT binary patch literal 26822 zcmcG$Ra9Nu(lrVMch?}n-Q5Xp!Ciy9yA#}lI|K;sEZp5K1b26L=U-&+?DMsDpD!=K zm~-f=QPq2|f-w0n;s~&~upl5H2$B*aiXb3hULYW#BG8b)mNwcgI1munLUUnZc}Zbm zB6$Z}6LTwL5D1+fbAjR_HXj?`yGz`P^0lY7_F98K zyvk;|W1sXj-6TUje(VeS)wAv{*jfJw`p=rV*X)6d4iY+*+H*WyiMaSc-L66EfD8?9 zspgoJ2m4o0xY4cgn+f~4K^iN6uGETOaHGa8542U3WRXpsRvVjuR$A44Fu30VeUBHZ zr=JX7+>$EYf|Y%lD9(A+;WFaUajQEQTJ7E-#${kGG>+{t=7MtdFGgWLBV7>uX2vqz zs=_iIl!Cp{%%D@`{lKw0rlY+V67~e4L2n={Wbva>fPY3wdtww3MIb$>RUa;6^cGQj z8U{TZ2^!Q#A`KL-Q)CJ?1>`$M2f3w-{+v^n<|hUws)%tB8yVirzCCQbsWBNDI?$9h z-z(oU&&B1oZ)S5?mfEHuv?`!}g_xF9mmp3%U_>~z>W15(f--`Kh96@YJ==q`Ub;bu zzk}BZf);_vZu{VULem8GT!&xw=YR&uA%ZOf|M(qz$`82=@~D$s9y+{>z6wj(&%zFS zI>2xp+ziUJ6T%K+8RSJDnisrBAHEd~ZJi_~mz~}s z&WLvFFT8_FLxdI ztX`^ys-l~xKL&9@=LzfCK(~YBgwh6yjvDF4*u33}-W=b8v^Q*&b3@fdunoTJ6yJKd z_wvGNNAX1z2=$H5CYL~|g>eZ40ZXn*s*1M@oRn;o#3qqJ%MXLk{lJuvBC{+)OTmuD zfJTV27B4}H5JyK9+Dl?hniwA)UlAuJkv+t0XdIX4jXY*#uTCoRZCoSPsntl$A1=1jT|KJqa6+(>K+o`2p@VM{>FumVvO>N!i*Y7 z6OqLm10Pcyvl)Y-W1|x&ch;2EM5={ZWM7nAe5&=VEp)=>M&Z_SUUb%F+{U35L(B`i zkVwuw`k9`imFKC2RBD=+oa-uBsYf{5FfBJ#Io)9nf~Ssi4v&Zpk8J>Njqni67VH`| zC?=C{|DV>*ms=EldZVAhmEEz(H4=G?SSS@%c$SgP;y&mH< zNi=B~quM3d#T(@rUDL!?@74NP+h{6TcMVv!Sg?K=8(x$$o3UcEDL2Nq)G_v+6PqQU zG-(-A(TXgOIDuSZsn0$sJFYqYGXG+1Ym{xUX7*-)W2o_5Loy3^f-nME0<^58tfnj-U2F!z$`xH#4Qg7%Qh&A$>yx(Cr#Peqir&KRz2eID z%E^Y`NViwFOIvq?dP~`7YXl%*>Y$!r1W?RiEMUF}-H;HFDv*3|>Lu(?=S8T?VOI> z(Gx~gM^Z&L0lrlmjD=g$V5k*T@U}=fV0g|9smoZ2SQ#Fxxq!3;^WhAHmxiaWH#*$f z>)K~F{sY~%Fe-o85a?v8^cev5+0)8cJl#gIaWg*&sUThn~`@Cdbv zaxeR+4Rkk zWzTV3&IP7fS5Kmqaj~uBX`^p2qJaTI=dk72@!=37h6c+sg>SEtTbs{u>~!(qh<$F! zR(-|nsP5SMW$dzHmcO*UK7E#h=h6C!2Pz361J4P!)o$cuHgTzJi6i(q1oAX+rOB0J z_w=0av<>S{>8!*1`-}eLM!$H9xM)m1K{B6$kK$F!>KR>+YLBV-vY1D9Ft0b~Fpl?) z_%5N|0Bn{*RwAF8=jwU)abK!^%*AW+h+cFXYHOO0&VAu^wu-IOTE^qZL*;7NU|4lS zcLU2=eTSNx-d)$G@SV~6c6^LEVPRo7Kb2R>o7Gj*o^)^W-tW?m&GsbU-%qm-D|=6Q zskNy%pjv}j05D3@4e(yV*3u7ts1P6+7h@t}?!LTOldXl>B^>o^h0=kM@Rct7G|{3vE91C(2-uRv{d&>Fpvr~Kilrq)PoN!ENjt3 zJ*(ngGX1R#*$8?hy}C=ODQW80CA~Sj>rm_%+j9S=~upR)*Wq)|&pS zk*$F-y_>Zi5YmEx@VapWf3!As`by+xZDr%g?Z!v^=M8S)&+p9)#6*8yakAtiR+p70 z61H_PCSs#!rDr7Ohb1B+;&m`G;Z_t8`?ovrH$GxBCnq~@1_oDGS9(_#dRqrm1|}{p zE(S(s24-eD;2U&~?lw+e-RNu_N&Xq+?>HjHj)o5Ac24HDHbn2^el@UlcH$!@exK;S zuYcBQ>}LMInQR>Y-4<|z4DU}EnCKZ9{u>+EmG`}sTi)Ew*h*c*+}ha25jY1wI}1DS zpZEViPyRRK|LLjmzn(12tpB&?|9SFnPhN)i4g8-C{c~D>T7k#K56jE&-_i5KKF!RX zgMbKvNQww4yMZ3BAZRPAJVKpkL&8!Qp{JQe1SQ(QCEAqlY8JJb6&So7%hHx3I9p

OG_9SaAgIi)r+tD0DkkRI_m+31hQc`|JLq}&7>pFeQ;Bnl805!!nNl9K? zK^nnGVd;18ZQzgYD!ljj(?ss|jPt(^1oS}4(8H55miONnGWYi^f9C*!;MMkn$qsR4 zOc(!mS`dho^9$4ehJ$r$1kQ$N7X56p@>rNg= znN->SI&}T(90~rjygV}4i}x?{Yp1f+8hpI$R$L+fBLzc8N@vRDI)u{X(eC{(uloXK z#Oh<_) zNFQT9FU+4~|D^BuAT)4C!sdgxD=Yg8O#~vBP9S5a>CA9-^9Hh?(TVAp>r(6Bl$Esb zM9{;dUQ;$jZ^>dN@wC4so3L|Z*~zfcr=O4FY+tJC(Vr?MIrlbhzW|&zn~NY|{Hjk* z&!#8N9IncuOZftV)abNlYYUQxOHlP63uK3(T&7%C_V*y8!wtXxq=HOPnZTZ+rdzpP z(0?c(Tvk)L`pj~4cSk0UHyo;XX<05X(N02>cyH(3l8btELS52MG=waW(EDuBGHmgC z=mtWn?3l1eOJ7hwI@js%pJ`C0TOG)iHh8_{P`*%b2y?Z-O_`U@IO%cST$^ zEHB~Y0GhOl>0=V>^VN;F9NRuvPH`8$r$5)F(e+|9?H=*Z{iqE9L2GvrG(usA4z=2C z+&Dk(qoU*`5kK!5Ln;U-nX;c=b;rw1P+|`>S<7j^%{(PGox^C4Dqh5}?_D3-H;Ln; zQ_W`NP07jk>KqL!wr)IAq={UkdcV<~v0#{6G|^?D#!7-1=O@AZV&ONT(8s~cmwQaS zy-p2j6F)8nB|-;^HDeJVp|E3;crb#NF8WK4zSrw6?_m;zjfh8fO>5j4PE8_5Y+W;W z{Aj5}6kS^DZ=QxvAP@-86R+(2Hn+t@KU$+L81mVExpcEpDmM0Zp9xt_w*3Q(Enaki z_;5{xt95@G240oaY6HclgxeFpcYlB(guxFPh>90o;9X77$Gf1u<>TMo@? za1g_(h`hQ$sGQxg5#y<+6??Y~xF*V&&z#C}*OIN(=l*C#eL*Dn=M{-%6c&UYVLFm> zDjJdg^pOkec@}l93pH9_CobkY!d{F!{unG%c-viqAu+GlJB)tro~^Uab-;5FG!7q% zf;#z>V|D(7kk~Ky$ie!S~9i9kbVCIF`B~-Z{3cR zjY%A;d8-_~;t-o3k6z=C@*@lrl8W79t4J|nO1WdY zALv$=)JsWISCW&zYnh9>&QcGV?2(42lP@jWST4@a)?lPR&WD>^A-~(X4LJx$MDm75 zpkRL7N5kfgwS-7f8k~nQ3Y-VYM8&#Fxd4V|3s;8Jd0Nf+K*f#1(L^XF+z%f>ilYbR0pZ+-@Y8P*tI zwBJuA+-s8S?_Q)+c-{1w1LvStU=q``lozo=5%R%acv8(gjrjT+C=J3mI}52#qnLEptt zOf%I%xb&gPac%QxL@u9#&S9Xtik5aazcM`++HBZU>TqGPU|N5+c4j*i$coVK5yxCR ze1)o>1uU36;d%~OBAnC}ugo^cB8(T*fC4|wvYX}ncSDtY52?i*D^oO=d ziD4~J;%1WHH|D2~;a{>E-^yZaDXNicJDQ}^2Mve$7k_rB$u8HiZ-kRm z#mfR2#+$;71sqow}38l&&xA0wrjoXYlTu!0Y85dh6z zw;R<_^BekQ$#k*E_1Kpp$^xq<+Xu&yXn4?w%xc!-eefp8W|9(hK6Lx|iS&9@S&re8 ziQZuAUSzDmOQAz<|D9f8DFg8qODs3fXW!P_>igA6BDix=Jtjf}ThZc;c+`(|-sdBB zHcRaXh?qF>W24@djI`&G@-yn*AD*%lgeuohOgkQ5=wJncb8!5gQ;uS&m9F}_zhmpMhU1A)7lJSoTHLu8 zOw>38Vpz(QVR54bK=S_Tljy!@x@LGfxnYvc0Vt&jS_lxDEL4kFaAu)6TB|9wrb{aE z*4HAmG`-+?4>)pY>ts4|M+#WBazg`K_9v09v}eD58z2${VQ84#-Qe@WM~H8Pk5mvQ zu?f_ws-%Pvr)MAG`uWf8Gf-gBOV6$q7WNt3wu#X~0O%^ak29Un@u!3F$5vg|E8dzu zd<{h}KEtY$S3;<_T@4Q34b$Wtc(xXZ^kw{YFZS3P^L5o?3(ACt?QN*nk3g5^W#kd`*T-bV&8y@*1vv1pt<7lNV z6>R|+*sI5U&-A2X7UH!1cs!cY4;EGC7hos)y>v0`vXIp|E9?zp!8M;$@oMv9qM|nb z1a>(zyNY8?b|#eF0qd5P<2dF_B`da=|gP*+flCry~2f*jd{MJ zmQL}uDfwYCVc3v-t%_o#bm8F5E^XF;WqqK8a*dCB@-S`0j&$zk?}RB$g*f&8d{%+6 zs-IFBxnhczIO1L=)zviHHN*zsU!ruDkti|2P(%mi@WN%K2Sobuk{yai<=E?$Dk4nV z5wjlvPVu8jVng9b4V)Bo9m?gx6|%`D>UoUxzxBz987pG2;!SFqAeV=~2)h@gx;DmX zPA*@0?RW&n_Pce9rnC9hnc*#2D=k^kYE|dQXxVRwzk|nR4ZoxFCdad;ug5n}qiFcC z(`3ffeLFK!&c?-Ysb*5Q$caBw3UQ#AWi0o@-u9WvaUWmQ0e!KSiKCoK#Hh*D6Gh6t zL_G|>2$U#-oP7OI(~Y??%OEm_UY z3v+nI!%F*{ssV__-=)@^ZieV~@HQ4Kyg6oHr7ul7ncXPhti^DM( zKG8nS*Wi1Jz6Tr@a3Dny6KIyBIlP*Qt=bP1A>;2)NJ)JY{+OO%9D8gYMKd8==T;NQ zOTo-8Nj2+`8th&0i*-w2cQYlBmaIcEx1dr^>%38DNY0u(CoYQ%MQ<+!6&FOGRG+IYo;b`HpC7g;-o9ng zsLEzq0$EIy^f(*2P65i75$-%R1i42>NSFFd3o;t2ilCH0OQ(!Dg~?~saf>0<`j%#0 z0d_OlrAU+|^?Dgp>jOhWzJE~9C$LN-o?ZcLAnqph=T1me&hu3-dZeA}Z^lg^ictrXc=CheZ zyy)BLgmsy)XueOr;M)&mw%z6u>ih5m09}xtlFFyeTT#Jmeej~IExcdz`yU9?_l7xg zOUmHu4!7Y6!EXf8Q{C6C=PMTi9)x~N^r|rT=V+JU8kKqrACijmp`GE#-WA#(hOjRW8h!3eDL_-` z_XMMyxV@1%Hsoe~;jtC3a9s{9?)2<9UuC8kkzBV@Sr?h|PTfs`gzqZS$B2e<5)>?| zsI*w-@dW)#4&f`OvahcR6nHQ7AK?B20!X3hI?t{DO!v;-*Qvl-Lnf3w z;!gg@<>}s8Bxta$(tqS!4h6VnD!w6?|A??ZCeTjnKzbVfjQdAMD12W_LY5KFf81FR z4u~E!{Wg~VquZTI;P>*RatD$~R^o<+B<-({mR`3Drh{W+eHU8;d{v1jOQZq<0?!vQ zzP)U7+5x2%&9EyiuC{BiWwa+Dgg)|5vbQT;0Z`?3F%-3hCYWl6brS>qAcnlG>B?{$$SP!udyvjZbKI6c{}@5h|bYO0%<6htCW8#Zg}+JFe5w ztgQQCabZGpGk4)lmBc7UY;D!V;=JkNM9aOn1WH))@5htL9O2;%E=Tm(vZ}M={g$f< z0X>ZtmvZ8_U@k+nu&lU*grCWkak2`)R%9UUCb*WO;$@N=5>vOLdYe4q1l zj?62n&N|)*)U@p(oVf8lZjZw(E8A30S|%qacMTxe(5k!U`q;R>f0FWiQpKHcR{nu`$~$Xl-52O-%jtCE9Al`r&fN z?YMeCQ=l53Usgh*6HSgcCy7)%sIDUs6cqGCzS$JZ{_)!UcmW{(k~uOl5%SFUT}_Pt z<@z@wPQG(^J%uU2D*Xut9TStfy}kX=x4c5Vy88up{WFU1^Tj~81g`Q(xmE)=D>K)W z-AxPv1z>!n^7d446k+GzC8v^lsH2`LD3L*IT@)C=-mz{ z(x^y3aL8z*x|(?!>zR|(goTA6mXG{~!)idJ+RJp!T6C38qP>{k?Kafv4{pluq-$8t zeVtnIJZrPT=_rMu69ZA6_#_-mx#>e264YS7C03X9`tn4>#>R$NI-muMc{fG1nZ-YI zedhbt(vzm6qLP3A^i+D|b>0O9d?6h+i_5X#(EVzRgQs?3t3OKVsOjzX312g&0sVE= z^Q<`QQZ)r=ke)_>)N^;EhGx^elG4(|@k}0?P3E{upsBQ&l4#Rf*t@G7th6*dh8!>1 zb~vj$IVj6%$H}W!>Yh|_x0bJ~>3OTL;q$nZ^`z0CB__U*(;sk`A==WY%P1}Hs=_%eXUZgoDm>!^WQsLg3gHVci8fl+*yq2qPY z_nif^X@P<0>_a@jd58S0+Hv}J#dWP%GzN#IUqQu9rzve`wapWM*5y{~>36t-jkd=@ z{^1()1IHN3QoHxlwtkd{Z(+*vZYXtYjg0B@xHBm&T6^@g=?W%T;g?KBJx7ONh=>)2 z+I)@eDTL_7dDjz$(iegZUiX?8IF5utA4mA|yr<}w-K>}0l%jHmM40RwRo=LFNB0|i z8yb=0-EEzabp}?pk!t*-a=bevI|ZOuqhDl#kN8hHtW5@rAGdKvT>tYtqCoAh$!vg; z_CMb@sS9*Zi_&pB|9Le~EDWHd%f;`h`kxQ;gaLX(2FWDh|Aa!FS@mO{Tfi(~(8!1^6f^g)D{tYzVM1%H-RqE zq==|@HcrBkAJR|blm{wSo5Gnyod$OPAi6&I4J9P>8k$lA?*5EaqB@=Ngo4Ju=K)~n zKrI^5ilE@oB8RrPZ~iQU5~kaIw}OmzAck=HO+Nhu5PlMx8c(cA81{42DRCQY)zYuhhVpK(`iu^&PFO8{ehSd^fQ z;mj018_LhZpP9U-w2!IA7|Fa3aPFgV^aifeH7zk_$MwE_zT(%U>H0}hJg~peaI-yPnK+!VIJlYVUM8@3x{1Y(`+mQKDO=I zevab(BpqJhY0r1)>x7ZgA`%Omme<(~E>?E5E7ZWtqsnwaWQ$@}R{FWlBWJ?yO!r>l z_}Pxe13ohbD&@FoJ4UF~dp3`wn>@;#=`>hr;3hi=NwmWc6KM+y5tVYG9z1}YfjuGX z8&Gl$O7|f6K%d?zvLdu=O;z9L6W*w`OwM#TY9yzu*ua2vG&5{qZwT(&w79vtx(B>k zwhBpmvtaz6@~SSklt11^35J_VPV1=|9$EdC9XwrboSISuMv{R~vSwCRP7+PC=!>`f zG(9|rgQ&=WdmB~(NHbaRXg;w;?vgb`LjL3VbuGF!M7`tX0K1DL6|?)Z(mYSs&1`Yc z^)5-IuhZ+RbXh0#VUPYFpe6yP6PQcCW|54V#+NjY3V)dN6j3jKO9@Tg1W0VpR`lv~ zjIdhtPBCXSHfeCU8DLe((o+zT8(}vnnLPD#tT^rsQDg@`Uk;Wdc&k=>^Cd|}o`dsx zYo(0TOwZ05%vXJ-$J1N-0N1%f(_paQe}K)b^fEzH_GKyj9PnDYO%T@Xl*(qQy5z3C zD|7TzTwsOt+H{CwFJMyt>Cvi}w;6M3Zd7bg<7vhiHxfzUdD8it`GCZ75!_<+4DE0} z_^Q{Htg@==W=Uy*2Sa6P*fL+qc&jPVdKBlJNQp8LcOo(S2{b zR++op*r$Un=<13jM6SaO$MG(*ulyGWB5h_{8Wpci(z*1W zG_0)XE6r>i7bETMy!M;mK92_!Pq5V&$AH^-^$KdAeiBZvA&{$d1NlZD#K(xWs$l2% zb$XZ(?UWTX4%dr25zk87_~#Il@eHoU^>1)hP6vwHySpB3VI-hQ40_QmXYEU$RKTI2 z@(dY}7N^Q!duWgCeqz{mo+nj)TvROTiB3!gzdKzy`hK}{wzgPjiLdCQ1$*L9AHPhg zkSr_tU4pL;o#OfR}Bo=tLgZ!%}qs*pe!5*Bu z5Ynbi|4;cl2`-!Vhuzy;hhhir7G+lWeoOFeLfQvu3^cR=EIlt2oo3c2ie5|Jd3jTq z{VHQ0-$9tHuqKVhsNWTt5Nn7xjcU28hzKrg#9rT+4lZN|<)WEtbCC1JN3k@V)(V;& zw@+hjS^$iO4anbS{)P`;fy>lYJygk8MqEjIHQmGUi_Og-Dea;Fz?) zIfl`Bx2WO=qu1h4Q&j*)A(tgGSD};MezI8kLf^YDLByw3hE#9GTkwV(kf3se60d3% zd(JkSxSm&rF07?^zTlhHGpQge9_}Pe+n0=0r6ls>9}bGaRADnuDuAT(Z+j8ev7tvx|hdR#U5Ie z>97$4I~UQ;RdsmRkJOW&vqjm~7cBQQ z6dXA**Sw=J1}?teVq&}1)qhm_L@t*et)T>Ff3oeHcMq76MZH1627O!(=p$3l|7=xMQDIAwV)Ncas232YyUj!cI4 zw4$-rp|iK5+A4y9TxK+r2kZ6q)$Oe9j_7R3v4PI*UVBTYw2dl zk}9U4#(_=w<*}RAA;3BOn{(ERQ-h68=VZ%wbT%Z%?aY@2Ds@7Fh~@C7*pH|-qAe*! zTK?1YA*@Ssi44SLq@ral$>q`8qCwsf=7u*Bf#Q8+Ir=Z~flzp7p61D%>Jm#3qi-0N zo>aW?V37Vm?za^yPSB+!#}@>HM&4K#p=TF5!f!KD{uLja_i5C>5s`))8_+OosJQUy zhZfNz_?@b$6q0G~DdR;w#5du~sbVq;_d`Mn?ASRj_ZfWpp`u7@CBD8t%R&`&A~JcOxWU6Z(Xef;IP z@MW9Ni++ji6l;FESgG3iNR{04bk6w?BmXbaUB!})g^s>GdZ>=|M+yL9OjTe)8-N-f zq5-R{qOvg0f8zcA7yTB(*#%A}9PC7X6dLlZN2z-pj|gl?F&lNliQ704b<%4lsPwXAB$u<@9!-@4$Kzrh?$Jx;pl@ zw`cU~w&BqB?EL)xeo1SI*O=0kv&dFmORe+yK@j`u0C?M;-$$1vdty2TSXv%KA6ZD32?5>Pr!Oc(g z6iCum&NX(}*=NH-EIXjmD$z<^q*P??GrEuY6W_&w%PDJds{lxZZy#mL%FFu-WYf8c z!DC9VdXNMHWqx=9x$;I&2v3>!J82v7xtUSJR}E>vDATa0k2dR2bT%N|$`v(MRD3~sqb$mr z;Ju0zPIo$A7s}Uau(8nDB;*a5-9ZS7@a2Q$7^c{fqf zAcxbYy^^d=g?L132Svp=%?bCt%))0NUv)IoS(U%<4MS6zz_V%WGE9eyvBtqOsp}ky zr$`(i@RVtKxn07jPN|szR(5r+`8>%s9TcQb>$R@0>l@!5FNDj8^u5SL7maTXC-^iq zH4Q&MTqS~jfGmm@4nb6L;?C?@qJHy_AM!}1*GbR6mXPP9B zIVIhWz+v=i?@!u%wMtzJZ{Qg<)c|pUsCJx_Qyqa)`|}d%o7hl?$|lZc$yOA{>i&6$ zMvZQ@!#BJrd5u7hoPMlZYX=Y&+5jNuw$@bmK@?ig+1Et@L{>OxN2;3h+b`F36`T2|J% zd3pK}iQO=L?FNtVH0=}c;RGs5ivZjhTImY8$D_&)+$EQT{A2?lj>(P~qN=g@Xj$Kbr&)FeY+h#_V!F) zhFl1!-c*5DudsiO>*`Iu9$*$Dprh>*f*qyu^hI0a^IE$%U-K9+H`wgSS7<*oGlTht zal%Dsxt8Q~vWT&%==OwZA#Q$2mZPH>$y)w z{!U^sjy(pzOb04)@rTPzEZbJvaysAgxgf~B#){AR{v+$_LSWiSeF5Bnx`M%{=GWVX z4xv@TfvCSe?+g`4+#z1*Y!{R7s6r2R_kq$0R&9#xPoT#6r({9fFGiJR?!3yIYwHXs zm-Wo)`9=X%CXZ)?VuD$3tAEvmA1mOT-E%ex6)NA=wWRT9(2iI>k&pxoWm!5S<-KR_ zfn#y1_{Fnl44=p+3lGYW&omcR5{dx*rgD-59md_%B%4kOJdD6nCk4(VEv4!nWhvHUQmp zH09T|VSB;9d-4M-0ZBHt?;!+#Xv_m%A{-434Y#B62D>f@tj4c2*vx-p%Qz}9&I5if z6=wnC{Ib{8n1wl^*Ewi>n~Q@n)4wa1!(6A;;W%E|+%$m4WgSEyF&+H7C#OK5m=Y~- zn)$auzB3H0_2-eualNvNhQ>nDZ@2%6F^s?<$D-Ic`$bsz117z8s5pUpZylH+>)*bO znZN_WIZ6Ipy0zr+bQ zfK11JAe*9J=I-Eq(jFL10M87LxCM zz@yHop3^T;AXZZX>~S8+y02wbR#pN^4Eg@<$SuroiQKDDE?f1?Ha;GA8(Q~wx#QkA z&;mKedCqvRf%-F0I^^`aXSA@iOeZL5Ctx;$o~_V{01C793lk6Ie?KO4J2lV->3ek1 z_lOZ78i83%;)$wD?t-Q3_6ZX4W06nt)1|%Pm`-zIvd75q@cCAZ0B(nrwDbkg!<2Ya zX3Mr%Eih|4&!`}t{C)%K;)i@5LPA1_hMvC!|kw`H`uJeW_~G5VzXXkZN1-&*q^J+)-mSb)0ibg8)oQuMzw9dfP4fB zNY}{!#}rSf*D+zTTjkCU3bR$w7*iP`z`@sn`|k~eL0i1ZY5>NljgyA8U@tLiL&H37 ze}kLDnMR;&y$JCF)b#~rWZ=o=vdYLS@VzJWTUf(`{%UgTmtgeS=PJs|`ojrShoLDl z-}|HRLU342itcu}q}0Yw6G!sAo=zGpFz!}88D`71LV%ifebaCh9!H6E`QQ_{@7vQ_ zL(|7BiU0IFD-64XK)LA9C;~oQhyL=`xf7s`^Z^;LjV0ca*K^0)i|tKKX$BvU$td>V z98moSG__6$ynV#M!Eply*2#Qntn`UJn7^ODd?x{Dvh4jfi%|#?Va1oS@6rXlPsad@ zDN{MaC5H;_OVL?6(>owtADgeY#+w_ogd?5!*Okcs=mFQh{AF>O#pjNrHvTh_#YPXP z_ajQ)8dbs*@L~gJw20A)A5f@ie-^2sx|IDo3Z-mUtA*yXo*Hc!u!YGa`S=T=3 zB%G$A^W|=>GML$NmNp?FK|PRc4obV)Ajl&-r*$pne-)#47@)~g_dqzvoEn#&5k`~k zvmuqP{l&O96ou30nR9z|nnM^4sM<)*{jUVnf8`w_j@T$fQG+sG&P&Gx#K$p8HAB=F!$Eh4rjs*#%!x)e@i%5+OrO(E1eUCnSd0a$Q(7!yXd zwxIrb32{yZJ;KAFxJ z2yK%{qmAyMlHH$@@sl0CzR5|6mLJ-IhJ6U|lFQNxW?|J;mtLri)_3fA(oQuI15I*k{P^Ri!UKJp&DQdT*lOj z+uhX%&W!X5apbo%)8(!IytgTuT^R6O+*v6o#AP#VfH^ck-!W?Th$sBc?O|zUiRE=M z!|}a<&P7M$kgm1~)hwS6M}H)4$U+2rPCGAF^~Pg&2R&^=Q<7hm{d}z{VXig*?{+lE zwR#EO?0daXj^5STsb|Qw;6$LlD{P^t6|w%e61Ni5E-X-vT-G5zMmBz8$T@_Lm-pj4 zvQ9g0d)Q5P3GrHwml4K^#eSj~ktFo_)Kh)AhI6==7~*TKrNjTi#9m@uxagWhNDmFD z1V1^3v<~^FR1ugSsFM8AgVql8KVb?#$}J`@B{5HHhf3J2 z%{Z!v^QmPfPDd}5knR)Pt(j?f-c#UMN?W1{c}>!okoFW<41TSb@pEuu0r zScOcDh=hYM6)C3coB3wlgI~U$uS~lwag`w`Carp;al~5~^^ImZAu;)izjUc<=pB~+ z#isH7-m9kJLHVgVTA@Vv+&FIe_+=C}4;s~ihWg#SGJI+?$U*MQ!okS*XM6k7nRDTP zEv5z5$*ns%Ik|9A$7R9T#=NNSr4LJQ9?Q4W?wPM+h-9HAd1Fz?Kc(FZuY{JFNm#|% z^SraOT0)3Z5zeC8sh<;`kmW-uvjGCsPkqS}_j+SkCSH1+r;;NDz08Htt3;Pe6AoPE`hFl2mLHS1|=`!R-th{O94knOvWa(~O5w7M9b2+ZPk{S4WRMaH+G zER!$GR{ti#gd!5LJ>2E3RT`T8Z#-I7{UMCj{<~1l5GXlQuLfc1?k9x;GxD*xcfe%f zNp#2EB#s#}i^EnPZG@BtBaXLMp`mA3-*?>0I0BTRtj0jR4oKIKbo&0_=#)?iVU!L+ zY%`4%UVi!yo=M}K>#IKJM||ikgpo`Hd1QLdqPB*I9v3eE)K2PTB04vV!8Zv-j^osS zX5v<(6rMWi>P}@wCGwG_?UtF#K>^lI!c*lwHr@InB+33-RqeQ|a+`UCJKDMylDMZF z^?t7G2iszPjcRh8=r0J?RF2qoy`5a`pJ@Cy-*-;xk0^WZ^RR=(%FbRgQr$Rmyj+mE zRv7cT+7bYT#QstwTj|{!xh$%MC;vT`vj1eX0X>q?iLD+TCwSc{NF6|=#iu_UNHdBA z{%wE=(EKq!Khe!4V<%G2UB42Jp0$Mo8QbmvdgQ9Fbjs?bO#kNu%8&`gJ=7z~896i@uClkIhI5O#?1QIoS3>tcn<$I2{pzj?^v69;YOFpL zAZkQz1}8#Wn)$I;sx4c&ibeUf2_r8~`OQ!%Et1Gt$rt*kVCD4O=^ZIG4&KZB9LJ28 zpp_E}C?b5XbgXJ@$ep%xfQin+33u;0X|>hLNJ_l>%&_a0MEa+)$q$TxW-+D7b3;S28=N_eUJ7 zt=-$P2+QV~vaGfY(@S5J*9*Le7hlI8F|Q2H^XbtKQV(ivjWg+gtNoz)Nbsjhk@BA^#ktWOwxFfz_Zr1`V2z^H&Mq&2WXZIl+`eA! zgf{3Oin2}*hM#u6z(&1G+^sofp{DihS_4$667r z5`Uqos}j%RJb$ZB7^y!0nR$NOY$TZ<+bz{aFI#=nxXp*Wu8)b$y^+CycM5T~XYP1v zAI|oqo>QisvA}OJ68Q$2PUqxPy1}B?s9wsdjn70qC*270R$jfbu{*Qg--{~seo<{! znv2!BGnvTjXn1j~yuI6S0kcW$Y@KJHmq{tuLt#)G_?r-d&2b8H4}Aj7Pd3%Haj2PT zJM4H<%+e5;Y()rZ7ve%nnz@w|Pr42@)C@1FiB4{KZjNpbq+;_s=q8jazD^|E{oEQ+ z^gao&ZS3JRC-q*1meHtzFm~RAY!kyDzP0MQ{()kUEA}y~g$_R8?Mz4ncbHn67gM@E zJ$EM2D|8P2hM>GeIbOg$U9aH^5_eoe=utd)t1oohqj^*`lnfqf?%gSC?-c z^hh*mC#-v0GX#weM{m2P^ewF!H&)xar!2OINKGPEOYzlUtA?WI?GbfzwBV8+6OQ-} z23{oFzlTvy<~me%DP*bpy2sWT%C}d@8%4tR#oH|2`_t6O@wG25Kd8@ZwRQ)C$)k-- zID30`yBjs|pEl&iR|-HPrk7N_B-fw86kTce;eL}eukJU*iXjaAr6fjTaE*SClm=^U z$Lx9GcJF!^IM-`2nWGlPiZ7t?QNWv<*y~9@E$Jjo4j`JlU_J{>SQbWJ32$+!Bqlz3 zYi(MU^_<4kL>hZNE^rk565ne1Q+5ZGEZnjLL&&{=V!Al6jtPifEGvy=Ggd?eUasRc zcYs03N_++s+beN&+2DHuc8o;z`sMxC0AzG*(zwzgd5QzEequ+xx*bh>{;%rIh3G@} z3bKdMB8sY1s;lhk-W^6GUf{aCI17sk2EVpH`72fBQ6gROK!iiYM`i0TY=26rQO(Xp z$jppf-=NvP{6@}~q2_T; z%jcKuE#d5AX8-N|fypI{Dlb8f<>HJLza>p)W)U0L^=?XtwnHPBn@3@ICq`}JR3{o-=(`(g%1c!BZOtuyOxWn{Z>CO2B1Fsc%v|3hoc5qK zKrhc#^wpRbpagetZ+S0Ogls^L4{iC}dvb*5x32FEMm1-0eep}LrjE=deX}-SpFsK_ z;%evUk0^Jq>v2HFdpmE4&E-J4xtWF|>+n@Sm1fOxf^U-wVdlM#?tG(1hf_0H?61_( z0PD0*rV~ale!qP?qo#*LAy{PF*!4CvP&{NLx7y(fl(}1kdf{XLYAd$r`{#jYQ_>85 zz#=yL%WX-Z;@GG{=yjjtgW84fx(wPfyWv=>%A)>Pnp>6y;%j~wcF$X@89F{boy^V+ z#83w#Ica&*v9uk;Pb^}8-)vRxBtvaKFp!J}>ehq~{YOBmzMM<*o_Z*j9+F961O;;M z|JTlUzf{)FfHet&UYE*$UmTK9dwUYk?5tu8B`uioQIwOs2GfFv_Md<06Y3^BL=^1Njs zw|=(ZGK9nKip_ns&T?DUqo(^;-GVy8{ds*c=jM{Q>kpD?zhj5wb!t(5kM1-6Y>dThbKr`NWf*Qd z#(D9Z-K>vo#4(rfu@R{Js@KZCY=LbPJ8OQw>PHg(5?)$*wO10AA*Ly-#`m?}i+_G$ zf!Csg@Z{uYZ^y!US^{81BXI6n<^6P@Q8WHAjR#me&QAu{6V#CO^qo2I*4B z6>jUL@mlOCBa?iO&FN~uS{Rf>F=$;#SfN*{eOg&*d3fGUyNw#Nv9oLPr2g062tcw22KVy8t#%4 zb(#+r6TQvLt7%**uNM0vPO$E0k9a?T;p?UVfw%oV-EkhgbzPoYsFh*mh78WE1kS92 zN4+cw_eGa;07_^(?=crbIj&9Di*C0;Bh>*|Lip9Ht?w#UfHnddghR0P`*^d+aqmaJ z?CV>cnnsc}ld`hn;EhL0uLCFg`Y>uR%2jq2yCwirV;5DnA|k3)W7B_I z;^;?C_3xwA60tDci-X1V#+ii74bpHW%ce^EOMz#oyw1Jn4bam5Do0Z{g^~;%&Zb3g z0B0${V0lN(3^OdKbjTVP4=s;zEm`^^rdQp>kSKPBL2 zWk_I0p}{9eL<@X9>A%zq+11G24xV0in(+7?{EP5|cSP=Htzfl~KBN}!eNCb^(EanTg#h_bV* zmfBk1va2nY=XN_~onG+&1vZnSHGz`*-NG}oh+Zk}EXe%ZTYMKX!bv%RYOWcci2*I0lVuLCk67Xj*KPKg%ec4-|4Qu2wF3)!3?trq0*G?{OdARDi*gd-tP#gKTP4(b!`I0#_`3Ixa?`3Ci8U~Oos5k;7(`S&vF(N>V`Dv-WR6^MrVK^79rK8aL%RfUCq zl}Lm3?`TB-DKRDk3NJykHlZ1i7P0WA-!xH_JPLqKoMLw^GJoX&{4omc@D{%CGzGt9 zd-!^39ry6)$b6_kv-(?-;Se0e;jszDF+cP}QzHeu)?h(H(OY$?Lu?SwG+8|)c0Mx# zMOYXVqbrpk*KV{_urd#P{V`mWye;TqK=DHP2o&-(#CkQ(%;pvrG4Pr{J|h-wdoDUU3J7gl!ug-A^r>j95+oI0^xpNE8w zE_!#@RSpWZ072Cgv`uIj8ru0{s!3=WK5Ku?`dZ}Wm-p`ll)b!?|L_YU55YUK@YSy+ z$J*Jp-_dkHivymSj)oG^7K=oMq2CbNcFjtF8?wvu%s}GgtG$i{#2p#9o;>8LInG~a z=7=VQRU6hXJG@f2I9Omf{c-u_1(c2?+6k1E}P5eypB-!K{d!_x?pp+DkbYU6V&fGFWy&46Tk-|5Ep0c;@Cf1n)O4+1$Zyj zN0Jl?FFyD6@em;28F+qfstB-VaRL%)cb>omR`pul=IErqe~1nKgPM#Lc@L>4xJD!k}l-*#ob^*qrMZ z8)kA`6EWOhFW6eUY#Y3&NA0Eoqscw3ADr;nU<0F&9#>)#Qq(D14# zlNM8x-;+CZjeoM&ICOL8wsF_x|GbZGGcrmN%#YDaNIbsPC^lf$U)n1yh3k7ogvi50 zxOolX!n=*h+r?V>RyVT)T3=~rg)~MRN+u8R@;{GLxa}2Yfj*%9c(ZAyi*;jbfeJq8;Er1{+%ZY2#XqRT(-PFp*CJ=oU%Y8K#fR^`;h1&yGF71Kkf5 z>u1H8j+Y_jOC#>Sron^q1KEYDl-pb~Yvf1Um8V?Y!=Dc3z`8r~gbNXS2MCS2cv* zIbiYiqusoQre=R7R)*JzA|it3oyu{eaV>3*$newsIdRj4{=d+LIwiWRc=J(ZFH7Ky z7bNMin=hUl9`u%nYFAFZvQ{D&&m}KTJhOw0ze@f{tXQ&xsaK;Zk6 z4#S#~g$NcSM(-ij0p5;uhA=9aL}qf+b^PglYyOE&qfD~OG`dpq9Z$j> zVRIU!VF}Wk+LU%lj_P&a%2={?&Kd}>c$NY0rM_WY*=>PSzDx}xhYks4vi-WAMR^0c zM_k-jRr7h*M3>i(#BmnUJV$_jrWdnze#!)vHX#L%taBrl<`pb9 z_z9jaXF0Z4#*4Y$a21#G(vj{$?dFDUYra&$Q-3QWj$hTt1Ye46md`YROxbY@^K6^uCTLPHBzoE+MVczxkW+&gEauz2HHJHIH!5?mr zXYLgzI`mXt(o*aVq+zjix{^L8&*mmG=|+D>GF%lxH~Pr%V+f`OaT!>#h(V+*v z{!D0+A`m3NP{|V@4XMoNurR!a&MuD%ttS3^a}s{GhBYvu$eQ)0I_hd*U!O+B8<3@z zcnFN)mvFJMY1mPVJk2JxwIDxRtsz*g2TIz|F|Rq1U3-Xev{>Kb8?{8SAf{+-)g$EP zJ(BLqiiN{J5onAREK^E4bDbFrEd>Qh>o&kaZi$M1RW?|!wu0!FVZ&fBDghgkeD$o2 z>PWpmQlJ7XF#4$d#8DXL@A7!w`+04k4` zt;n+YPW}lxqTo(57P<`1Gv{oXF#M+j3Ss>S^YdF~o23JH*yCiy{WtDkL2D{fw%n*B zIsfUTdeHr=bk-y1X*33omIu4qe#{E{&bURqB zZ+W1^KhuVyP|Q?!rewX*_>_ONk_y9digH ziyw!d$5ZLw4N^EE;}i4VJ_eW+Qxs43uX>!>WwS9_nOrLQsoH_8pkt_JRSTk5vx zD?NetzG36GJ0tUX3<~DUQ%QlBwG!aZ^@ zUG`2&CT5%b555fc01`yIUfw6^*zT;3A0(uFuTHbu!WGG2dVZ^TpX+v?xh-4i#}ze+ zxmg9g(Tx>o(61()sj{=O=ScHDd&#q)F95kDVK*|QiDkaK{tEULFRr((sdStfq7Tt# zOs&~ql!IpkKlI0^;r#GxPx!+|g+Oi;?d0to$fuO_{Q2M12_&~!1&7EVb>`mE%P66U z*cB!CNR#uXh^Xzf`*q+QFBJ=-D=vsF6nSB_#BbFu5?!AvZvE)jwNLPN279CXZb*bj zSxbch?E=io_*zo0VT8q{%gyS#F}6+p;idxkm`5DhMPtvaX2yb}Z{#%x&{G}My{u-m zq6rPNg;HI$U#RK`U9hs=m!UjVVjce=e(6iHPZX=P-?jUu|BsG<-dTikj%vn>4WUiV0!r?p=Z$Hq}tQ za}RIqD>F|2XunOMm&GkEM1!wgidB1p>0%v+xm1+W;sRiXEkaCDWl&*A=$n~3M`uKo zGLa8)D#-?3=idKjw+*k4*ZJ!FWmOpw{i%c5nxjU)Qz>zK(uTR|A(?JwPMbm~?SG`O zP$-9{=1V14pHQtSjeI7BbYGSp)h_r$&SI_}EpudrNVZ%@9!LA|Z7H`RU8SG=(Qd5Y z5^1J&6L&J?WQ{eI?wQx?OK7zHa_?9$m?-4F&(}fwD#gF!&9_uAoyp0#e#coQcUiFY z)z}ytVpPLi3sndk+W2y(gOofu*U~DVX5wZ8DIfO&qC=OUXT^PVQ@ai4@io)x_{0iz zb{>jf7EedkV5#$E72}~>DV8u(ubTLTV*i-Wa`H2>2Hhv1p8-8vVwSqw49p6Mmnpo? zN*b_*E&pZRd0rJ?#RWgkK+B==mOj3&7J;0V^_UVrVMHJsKS!a=X{rA8$3E(Q0~&>k zOO$N-ibuiPERx?9!?e;KsbsV+@DT}8H43h2o40MxZHsoGR-*=YKS7x}zKz#a;DlmB zvlh#fn$y&Hl@H2=sHBR!)OFf0a(PR~xKDNdBXCZ{j%pJ$QdCjpV{uXBizw;RyiK&! zp1({gQ*pmPRs_*DGUi9?p+u4ErU&>ZN-U#PoUISSR^wE=$P4Xc8^Dl{B7yKzSo>p`OoW<{vMU#(a3deXoUCPZd`e<26H6Os z|I2)5OJ|ydL`J1i$33f@ASdcjci|z9;ZV)aVowJq{^`VM+oiM$QzKnn>8k0`O7|sJ z8U+UA0vSTWxRZRl-Nq^E_ke<}g?4wnt&3b4Z4s4$_3r!`G^0)e_KDx{S*ZM`MiCRV zlZnNEy^oJ_@AET@9VXIrJ??9LO1#l{%h1Ihy3Im3L{~|fGp6%}7Ch#%P}Wu|t6mb| z3 z!{})kd)_dGS>$qt736uk*DV(0qIq<-mg1e*9eMVeSNUI7@->AQS|UT>G3!F8#N;(n zegZPVEK2;cLix+4&n+xf-o~4j_8zUSszOt5&;PwOAVc2fVHNHrv*9`>;T(WXXpuM} zZRF(S3QU0t>QgzHcDk$gBQ=?Nl?hMXFR)N77EXKdicq1xP1%huEt(CY6^GNnHtzu z?bIytb#U;IX~WK8eG%iez&JbeSgew4D7AfrTJLxYN}``k=Z@5|7ow33GeS_p*<^D{XVocqoKYO;d{6tUp3FdfI-fxrKKX|L*++ zI7mB#ccmC<`IGwBde{;2hiQ_{k;1;%DUUc0YwEvRlOMbDN_MRe6%IZ;9-n-Yb%%?i zK+f4dmm>ZkGpG=GG~3B7-+{Wv%6$*^q-@z*hQ7j+<48^dzaQr;NAt`8TZmiL61q=b zF!7w+xg@c`k_qyRE{?|_Sl-GsPP&ndht)Pmty$t@Tey>s)XPg}5{q?Pp}@NqiXT~Cw!%^p>ObxNiMJAH{4&gyDg6<<#_p!u3Ugm|)702} znyu{SQTnZj>r446NN-rEO6TaP09J)9pUIb^GA^Us&no$H_&&Skq*sHW7mYB# zMep{dBN-Rl=ogCWIxn8+Kp!jBf)!j&){DZNFnI(~<>!@@JFG$1ghnHtvSOl|h+cAM z%aCGzREey<&%q+p#&K-WfIH)pRIG>9ZvQyZ$f5GxT*vQ&a-%%0uE-LuZr$q^yZl;% zkwk;u-7FL~u%XDknX)Up1T87O1FC#kVzw0SzXBf&%0(A^Prl6C9sJ56N^4+8c{l=Z zZ#YlMAV^P3uFW<>)c&FS;MC=x`iTC*BSj)rV%weZdZI#H!gV2Wg>)ir3mFxI1iq*k zFiwhgWDU_in&eK&)Tv)<9v|x!UZJlrVY%%11D?;H=3-8i@aS!PjX)IWy8IK=dj|H< z!*2uvkDQqWg|tqIeLRcfP1%znkNxaOzC>CwQzdQRVRDbqZ$Da~jpQDQ(p zjdnC~M`A+j#Su!r4u$bF*3(umMJN(E_lUUJBS>-+^l8oGUDBCc`MNGM^H0x0h_1U3 zetN+9*eMhxf4it8q+o2`PPUF9o^Zsxq}3dWy*j{!RIx$E-}#Ps9}{(Vlrl=bY|ob} zYdEM0=D2m%7g&YHFdt5}n;BAmFnS`d9GPZFt8N&rE8cP9om-h?0){}^zohF7zNsbA z@@6;s4u^~Cm!i*Q<_SN^Ys@}WE7_>*tGKlls4v?X+=nIkw8}py%84g>Rik9ImRJlv9jYGjPhcpq38v`lkbM(!oeE-YloYK9}ueCm^3*XLY;3r&tiXD*O z2QHv!Hz2Vg>wQ^LoaE7Qc$y4@SgO@~~BiNy!|^4{G|A@0pLvN}4?t3PpPhukl( zqSe%S7;3PWBnzfA5tHvd&Z=qlnA35cg&t&jOVRj=Vx1E3P<*K`r^~KrG_P#epO_kB z%bz|tXo32`3kww*eh{0U-o!Q>n!$T5(xtxpvb6N_u$%R!A*BWk51nAIfwQ%yWKjQC zB$o0t>(`dfK%*}jDX)xyStGp=sm$}f5dcY;0za{ey2kjA?Q;icCL$`1^&c%YicUR_ zeB1EOfrjh=V^GSj%`bFbRH@B-=n}z?f%o1;DQgCXmPpkdcwY4FkUjMU#qIwt>3_s2 z1)e%qUBw3j+Npx~9Dk9dMBy~6+zr48WHLLro|S@uiG__va&wF4&H>4<=l*-oZ=q+o NE6S_MmEJQ8`adtVS|k7f literal 0 HcmV?d00001 From 243ba44d23c76954056a1e0e4e083c79b3ecf809 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 19 Aug 2015 13:30:52 +0100 Subject: [PATCH 107/230] Added queues diagram https://github.com/nmcl/JavaSim/issues/34 --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 9947f3d..9bfeaa8 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -75,7 +75,7 @@ The previous section described the event list and how simulation entities (proce Inactive processes are placed on to the scheduler queue, and when the current active process yields control to the scheduler (either because it has finished or been placed back onto the scheduler queue), the scheduler removes the process at the head of the queue and re-activates it. (In SIMULA the currently active process is not removed from the head of the queue.) When the scheduler queue is empty, i.e., there are no further processes left to execute, the scheduler terminates the simulation. -FIGURE 1 GOES HERE!! +img::images/queues.png[simulation queues] Figure 1: Scheduler-Process Interaction From 166deab5256703509a5db3d0ee122256fb06c494 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 19 Aug 2015 13:34:16 +0100 Subject: [PATCH 108/230] Added jpg version of diagram --- docs/images/queues.jpg | Bin 0 -> 29730 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/queues.jpg diff --git a/docs/images/queues.jpg b/docs/images/queues.jpg new file mode 100644 index 0000000000000000000000000000000000000000..5c46aa13c46336f6db6047c5f1d3e99f235dc7c1 GIT binary patch literal 29730 zcmeFY2Ut_hx<9%?mELBVWDet`Vd*7Kw`b?Swn9m!T z8UYXp1TXc0)BvaI6(0W1Aqkh3jkzK$o@(p zLp~w@3quTkUL;{?M0`U+0yPyB0)pk;JrP&Dd3V=2=BGBE#&nrau zikA;O;H>CYbDO9z-1DrcgPOUbd7!?RFWlrtkeBTZ3pS%5ytd9ut5>}H}l~)u6?+)_x*0eD& z`rEzWe`iJiR>|=2aQSc*c|?$pg3_5YXA~5b6_l0bz#MYHkpUs@5pn^+VtBLakfmgs&35gKww&+s9j^e8;)H`-1|V$!r>%SuA&6jKM4+&WydrS=oT)j*Pm%?OU-;xN$UG{LJeda6 zP^{jhd9;o{ha%0>FPiG>!>nv9jZ7~Xf*cM2=ttcH1Fw-W1Au=(NRW;3Ibla9XJP7D zfC``iKT-gtyGL-Ko|V;wUuFKMUwh*}i5>uq$o(wqKh5&LPh{}~X%Wa3t-vf-JcB*_ zL0kvMCXc|N5C9+#1k=UBLjr%|hahGT0xJmO(x2GpPu%hoU-=V%`jyAdMjyB3{=&YYCKvz09>MxxU;cTor@MjKUpUn7qTXNFJqSd9%L5NFwfhSP zA#8q^?-gul`&YWJm+4Pg`Bk5QYZkw;H{8hduk;(fb`F2xFu1+NUpUy$_IDj_`0D>o z4+^#UU1#qgqu*`x4+ii2+p|2}|6Yd>Upvq=`LhmQ!H&P{;OS*x_&Yt|;_o^KhMfCd zX5h77vi__7Ue}C&rw51G{=PRP$nJOgRrm8&f0Y>+V)eU!09(KujLLv2pa(`ZKoI~! zydpsP0|0$QU}O;7$2UY+51cVx!lnTp^0LCpib`q#@N@qC%mV=1oWJH3g!BF1(>!$n zKur*|qW1ru=En^H?NI>0Wc~LvNfZFkf<{^Ul1FGz*stP#Sy})kKnpMd>;MlS2#A66 zTMn$DI-mvU0*1hOz!Ifgm6pKmxabI3NkQ2V?-*KtAvkCfTlN*~H_$~ekQ%3{iT${xxw$|cG@Dk>^Y zDoH90DibOvs;g8{RLNAiR8>^%R6|q?RJ+vF)I8KO)Mu$JsokkVsN<*~QQ4dou zQR7e0oe(;qe8T92^ND~HF()!lyg1Q%V)(?$2?7l>%}E+f8cP~ann;>7nj)Genn9W+ z8Uif~tt9PPT07dSw6|y<(N@y-(0-xarlX@1r8`4sO$VpDN%x5ECEZ&(4BY`eE4?(m zKK&*7Q2JE*68d)fN&0OD1_lWRT?S`{5QbES=L}s8GYoh}Hb!|yQ$|llG-D291LH8` zCKCMj*nM}1zgG}qpG|Upr`poXkDCQjI*US^lyDV%hN-UNv{w&EXFIe8O zd}F0%m0&ew^<=%n`joYcb%BkXO^i*S&4cYWTM=6i+Y&n!yCl0Q`&ITN_6qio>{t#~ z4pk0&jtGt%jyD{0oaCGmoTi-DIMX<5ILA2;xdgcMxV*R$xGK4Zx%RpFxOKU`xD&an zxW~8;d4zckdHi_p^EC2&<)z@2=C$Sx=gs5o;a%rr=hNcz;7jDI;hW+ohG@kA%C0 zu_F8;CL*CC1tK3s2%?gr7e!-4t3w3)+vS+7ZNuYM~at;Po1PWdHSU9 z$*hxoC-)^JB^)H;B^o8ZNpee?O5Ttxll&sZAO)4WE>$QsdW!1Q=~I5Ea!-AdCX-f^ z_La_&9+V-IQI~>bIMXzlTuwwHF1_QF}wv+idL&d%uw>s;1(qB92-fx1Hrq4T<8x}Lhlx+{98^sefa z>usJ>JQsAX{@lL4rhc@3y8*d@u|cB2M?+S_i-y^TGe)9DK1O9mSYtKgDC2e$N)t1a z`z8~n0;V3O&rPxCHO@z$?>3`1vo*^$o4+7^A?QMrIhpx+^9SZ%EKXVkSTtG!mZp{u zEWcVwT3xqlwx+VSvd*zywo$S{+Vt77*}`mJ*zVb#vrDs^z9@Au^kSzyll>+8=l1&! z1`g>CbB+p*(T@F2yiRbZSI*SV_Rhu5yDo+<87@ng)Gozc8h4d+jc|SE#_M*??G20x z<_@d9OnKSi@{7wvcT4v|_uVU|SN^zy_0ado^7!tl>-o@g)$6QRy4Q;LS?_f3Z$4*z z9{8;KLVYuR*Wvo`Y&hMAxvnYxvkEl+h2=W#Z6Rj6rfP$c|pgPfF=sW18o5nXwZ_(cJyY(SPF(y4`=eEP` zraJ<6Zr)jlHI6NdV~h)mn~2wn&%aA?7k>9+f=a^UgyTfd#P>;xNtsE+WRK+cDM~4i zQb?)ZsUOqS)AH_7-3z!kejj?jG@T{=M*6}7^9KzNg&!t9+{u7tyvtP0%+I3D3eB2( zbm7sf$KsFgJtk)RW{>5Z%c=T<|Br+}_H#XRhx2svD)R;MlkyLrz@L0BFfM2)lqk%6 zO7%4C>2i^MQQx!E&z=|a7AF-Sl?0T`mD-ecKi7Ev{00Auv@)`?(6ZI?OXZ&`3@Tn# z%2gIraaJY01YU-|T&uoZJzis0(^-4EwzBSI-5>RA^@$CThR6nNqi^HfE2mdOug|~k zY|?6~ZeHD|O+(s4t;5ja zjuC^A-ci%h{xOTOq4A63pC>L&%zgI!{B82uByK8fiZFfi3+0!@ugqUFXZU9dXHU&m z&8g45!5Cl$=56Pv7d#feF9t6Xm+mYxEN89=tvvsx{H$Y^a2C$CUC0r1W^dotjXS-xab*FRJYIkPOe~+-Ai08qV9-KbtJ9Ic)A%qjD ziI0v>9W@=B9e*MDlSqN?LGHh}z)$xqnK#G}ev|+JgA)L-eFFIcy}52g?NGPkLmh3y`U({ElGC&k*dbqWlX$ z=z{=&5>Fy+3jhFh6960qkw}DG66vT2l#_Bd4IGqCP=GO9y7CX9oS&@jVVYpcpac%p=1?N(xYOtcBdA-&aQmxe!&T`bJZOjHbYo(l`BCpG_;&t+&sJ| zB_yRzNvo=@e4d=b%r7i1 zEw6lAUBms@-r3#T#~&R2Y!?I||Fc=YTlOE?#R9gAjDmukg8FB>AY|cSBxj+Z6j7pL z)w8B{zs@GAeCq`Jx%&mx9W-JpHdu};K|{2h;;NXFxSvh?)v|xBVKM)=TK2nPe{a_` zpbwD!3gl$qD3OzcBSirQN@~iVf%*hUtH5yLZ-Mq#0BH~%9msJ07D!+r5U>pJW-9QH zfrgsquS@^>FX=1Dnx#ln06jSb6ee;O016xt3lpV)|G|-*^yy!%BXN}k#1!I_=8faf zUO8`!G5Ar#$KyMAqNPNJipy7t7-Uxf+{|`@=zzwOk2!-xG7YS&)nu~c>>SY zQ;pOf*?EKLbyG+mShM-2!(Hdn-|qs19Tl%GWzt1Oe2x)g9jH3Rcf}z<=EglMbF-*= zg!qGH%i4({!{*Pu4E@9XTLI(f_?gU=rsg8wVUv!Fda~VffMzbns4pad zyv1i>kd~ye81DQzPAz!v)MmQIJ>~q2sF98|ew5T` z3$&=e)X^6qY(E*Ux#9XPSPyJb0pyXt#kiG@D7srq8lkKT%!KRW%MDNh?a<|?Q4CTp++bvvtB-pO|teX{NA zM5FD@l!3jSHzZ$6@3bWUAB;qB97%uyE-Yalfj?Chr)H)=A5qffJc@#hOODkcSYqTU zyQ+WWeU5&y{I;lC%5}V!yHS2zWUQT#)`_lZmm#K_sU_z%`p6 z??NIsouiCw)FR3&>85EY5b3GxZ_9N%F7Y1G;v{?9D2Wo-mD{Sha5V;77*4KS(YJ{z z!TT_-tW=d*Y+y)Fh>l)bFEi5lv0xwnFSpkt3F}(XGNT+=lzd;` zS#0wj{wTjyDT2@?#MnZoQy*R$(J;Qb+_`Kn?^v$yWHe$<_i^^JF8V8>l5$ZSk|qn$ez<<37xqiZ-ka6V!>WWMxyWu*d)yU z9U?gvwFsY4$3Lyo$82cXoYZ&hUgC5TljW989`55tdT~sS#$QyMgwJ9v5t9|j6WU7i zXKBrYyMtwe-6Ezom+f%|Q|X|{H{D0*oT5k+uy%RRO>0%D_g*>3Cf!*Qp}wBe_^x7V z!eYZE(LxE~P*vFMa8S3mPJBR!OC)9-r9-cx`68Ik;|H-x3mY>f3w(n&vxccBHlCX0 zp4-w(Db_#Rsaj~7{Z)8d;Kz@L_o%+CnMK3rNx-!69M}>RBi?Ueyb4ieHkZb3l;-z* zYPCY~*0U?sCkNcS?>#;tVrp|InUkW_Ukq-fa=R&`f&?J^_t)Oo8oYXEVK=q^01lSa zOsuyYDqfHFH;ho|PMeZxpJh~=wmiWn5Zogu*)mczPIViTqV8&I6@MX3q;kasd(Xg; zJ#8QqUPLL%I9Czbb^N6b;)NGc*kCAfUAxhETQ=ah?GVbtb>rPyL zRYaBBa2=*>EgKQLGpS~lqTbPXE&Ds%aeiC9F^dPSsY_$vMKPSSh~F8j%69NutdGuY zrf^WUIQ!t>EZe~wuDtk9Ar6m`!uT%i_Cn(=Ssiht;+TWOr+RWx@eV;Av23vhlV^## zRs46qUW^x`S1w{(tq;Cac;H$7Hu+)3d}pH6b1A99MBu+7l7{}ZMXM@@1o%Ry=sID* zCXpT`cCt>86<1uZ5U(a+vw@?^mmRM)57<6sQ%vI~#$W!~ajda=iXmF$(n^B107ijF z-_L)3gUfOpQ~gTAe&{Oa&{uJlM@8`ih8d33Kc3y!faF$o6{snj9}9)_piU#j@%;qBHI@i;?~Ec&p!E;!Q-v2&yh@!v>cKG$DQ)3?BGdG^QuTH5 zbA{?Quvr~$VklOq9X36?7lWK^iw% zDuf`or-i3xpX$&Y<)bKw>f_VhZA`6#5guJPYK?Hw&F6>Zu5B6wMK3yurZ`=Esr=+- zpvrJVOBD7t2HK>u5)uTY;lsvr&^SRO9~-D*hb2xO$XVgGPxeK{`Qf+RP1MEXDK}NT(tO%ynfbUftb=~tu(m?< z0)wWMniieZwQ_C4(&7T|iN^6(D_c$K6pUZI^|Cg@%Nk1WJWRWscbFG8=BWK8Iky$MqW+C0%G3 z3rRBje9hzXi~fKI-QQ_53@C(wSnJOYXG)JhKxe&cm#J_VcE*^JKd_LKcic%{P|z|obXn>D_Mp-Hs(Ib415MwG%+a3Z`;8E& z5DD-mR87`?z`w(K>{a5zN|ld4ZVoOs8Up}+>ph9(=1Uy2?;>WNKwxCkY zBAyLmdyDPhE=8*mQV{NoZcKn$+ zvwnZ$4jn4&@~v>MfboV2-hd20xU8afii}Yj`_=a;Vk$2w$hseVFfAqW;PuP!?@*#w zXHH-@wh}LDS65tuht;f!gmG8zWhVC@mp>%ThGeYvcu2#V_RM^Ez*uu&B(6rhWtiho<{ZzhG@E%k!VNn zB<{=Ob)sD?4#n_Ajr=S@}R->&Sy-sM`dh{d-nA5ncTA^@mqLmMCY%>yK5V6y*^?|lG zDvJF z+`dpjLPLJNCqwV#qkXk8n-Vqnc>R{VUu4iLsIgCIYg^-zCWAyqc8O8DLDYu~1PNdkqPAbl&0BS%;_O zmbL~7IB_#;@VGJ`PT+3f(C=I}Eg{P1F!tS)q%eU`cq1MyS=-e!DH zPi;U`FxS7tST#{S{=Way6xW+`tTg0_AG4F$)7J{Kj+&PDNI>IGV?f2rjHUO7B@!fH zV~Jy*kaKY0chFA)C{6L83ODW)VrfdH3?KJ+RHjh^Br$x3us`iGlwc$|&LH zJ!pSpILG?#fhEBb-Jz_lgp-`7tm@smInm@0)8g+F%s`y-Kh77Jh!55358GySs^~l& zyLef9UNqxmue03J*P6sY3p($u=!1at8?cMd*2}k0hX_fYXOcKW=h=bEDTi;nH`ZD= zkkoTrF-WI{SpfAJTJQfcCAj1psDM;0nR_rY@WPPSEhED-KlB2{Bu{!W&_3_@vPOs? z*U`s4STOF48pMllb#29mp=5_Ek=AF1E2z>KI^QAFKfBgtkvVcH(Do*!|De>*0Mftl z?ek$6pW-&742N~pBV0P0%%&!LV@N>fVb6!9iqY?}p)N9IeBljuQ|)+`#WwS8!_ANK zP>^r^sBFtF1dUVWb8Rk%GOBnl?$>!!mYO^#=}s^XnQix4oQDo5MpiuUvA$ly6r=O; zD+vgjCIRm%r>ACeEE^x@*Jbs7ncmnct?J5fiONsM;b-SQW)UKgx+EZWVd1Q$E_S~g z!5HCVhc!;vN#j`KrAi6*fP0Gh&g@@kX^fqZq$rkrJfOD_Sk7z61nomG9S`0>tXmTd z;B7TC8Ih5gvF1;kYL+a|cr(K-zKA5f8y3%V~7S9j@ zc_}_*T}Th5=x1aG>K~R^^DZAWAYb=!g!j!-wlX6xX1+%!;GnZ zy6BO7b=^?)#VZhLMjCRlTdo(Sx9u{_kQV-+&L!q2F1j`C*DT-Rea36KUOIWumxH}( zX=yQmq9bsx3e|4jn%iRcB>}aZNugeIW@zSt>Z>)EzPL{MX~yW$hueNO3ze-g^Jhu9 zylrcN~iO4aUACsNmQ!0IsJ*!z)F!F09GAd zTs3<<>y`vNiC7K!Tv{cAhK;{Dmnc=<%WiE5{8vOYY4~3wq@X8={5C!V2W^K^w+KZo zY$e?I+HmX1DgjC8Pwx&0jx{h~5KmXaSaakylf(F!@TaId`aAaWnIaVC-QJY6DPGk? z+^H<8e+Anz`Z!b#dy!Z`Fo%b^X&=?1y{qC{PbI@5yqFS^rs_FTUlG@z!|i>?ZQjSn z6SUIbG6|`W-!rKiIu8(uBp^NssZIh4;W!^qD<6;m{Du$~hlrcqG1rkL0T>}D2@t6I zq$x$dy?rbwhn+r7DCx;3imi}CLZO)XS%$W6*+?f)!RVlmwTy|{ zE||t6Hp?U^-guA%^!e>DCIUnPSkrVQ{m9!_xU9HikqF}p)T~#tXJZvaYVPK5wYUYR zbudJCVT8Ew9(}F6BP||tA1tOFhtzyI=ieU=b>I8Ic0EJvQ_KnN=M>B*L>rgm`0l#R zU^pG0*`%hD%gE3(>&?ZS7M@tCTBq}2idADugVF6+UB=GdK}oHRAD&DN7Kp8QZ>-dK z2Tgx|F~hCB@n;y(eq!Q6mVJ1Vd3793mBLn0S^$Q! zzR6UKQnnxm!v2yn&JYPIJ|-@_=d3D>;aKKvd`1X1w!>cF?$O-bE{8rQ;IYqwC0?qn zPlz=lQz<$M`@O4`b%>}w!mwc3Fn(>Zxmodcr*?Wkf3o_7*GKN#hmyKN`T74eW>5d) zXw@H58v-cQKaW}3e;loeZvyO)15g(JY0Um?}*el^w3z1Nw9x1yf@IrouexCeV5 z@N8J)9=bUumNkdNzGT6Ze?)|LO(72}i^KwX%!+7jMBnR6zx_5)q)5R(@!+5PvKD-1 zwrgI+9Fq{zb@VBhjts6b4XGzz_1r|mQZ_7Hj-dsTCPN|3l*N7EaJ~KiU6b&D9OJX` z4of#*lI)M-cbU05!-)&sGcS&xuaI9bX?{JWayR*fdzi4N@PkMJ_H7t!q8*C06=GU# zMA!HvXa|b@KCpy1aGPu(QYGZs2GN5tNZOIF0y9w?W$xqGXvFJeX%%ob~8&=i56W zA(BCP-Q>E0#-IxbF9luS#tgDu6=cLNM8x+sHQZNmSyRMo8NMD%AGbU06*(%-P=`e} zA_bX*C(isQ(!LL!q;5av!ABF6iK?GkSlO`cj?mPbm3bH8&6-o&O4{Glm33a zJOA=&fT`%eTS@-!)p^@Lsq+=Yt=W2q4uvV+1*_p>zVAV%74Q?{qam(F)o=vFtDkodsp$fPmE++^q%9hw>z_ANA>;ORy8uq zduedT)gIUC+-s{J-T$Zr>LyBd>)%m`H1e-6kK5Y|mc$~yy+9K1k}DOulc;$_UiEP+ zsVOtJ6tvCsNPy3+lCOFp{;FvL)0ZNZW%KM-y;yu_;aaYGJhm~)$}&4fH)*8`Z_>sr zFHgOnap`|&b3)iC-O20n-Mdd^2fA+p{OJ)KI7uSAOCOpI#fN&=s)R#yekb_L?{PHL zx3=7SD_`)k^|73%y15WdaFZA9x>3)U_xg9lCQ$Sd=x#v;JQwBz*8(aF^X9T;@v4p7 zvvM0Z$9{U|>3)jzz8mo>vhS85aVI)Vt{AP^ZJi$Vv#`&q7(vIj-q@4&dyq~7{Bp33 z2gj}-_c2vJ&15updA+M8Cj4%Bi@AH@n%pxtH~6|&Jy!y|ZH@71LAyC)WdWQ@v8n6y zZOAIeK@w9zVZ-cOg}3R8&;f{?QD!Rslt#Wf zxeY5-OaeH~%+Fg#^TC3BK?mGTS|af%5xQ7M(zV%ImnXCNXkuwXck!h5#=S8iDSd+83MBpg9unk|UnQhlC}46(f#?c&w*U5wF+%iGeB-OU^-h|ox^z~NcHePP-KotDnAbGu zW-y#P3!PU;L53pSU!XhP<(4bvKe)KY&~Tb-o^E(nUcOrAIO+T(_4MF-c9jO#ugU61 z=@n5j8dVSf@L#G8A0Mx;YG_HY3(2ecI!$0J2{E+(_M`2lrr!aPFi{QK_)>-(Ua00sX>9J<3d zrk7S6o&4?)DjXPJl%GPkvxv^!=UjJLc~XdT|$Q|73kIZ!`5%0>v@qc zoCI7FCjp<#QK!HIB#mk76WHKATdYDCTF@^$C9nBuaj`t+w&AG!g8udAu3wB3o-{^G zE4?k+@Q4YFq_Cpi_{#B%Tl@#fNW(|&uSb#qefcVoOm2eX^0p2@cc?)Zzt%Gm1X@7X z)3Ytulh6Z@JyCRy%7r2(GyUy*lBV78UEPh$wWn-6GIt-F+5<6q{4Dojg{pwHAv@rZ zy(YwS%(UvJ6pvYczL3x8gnxm#FFGVSRv|W;yU1hcV*l`hQ~Xy*P?SS^8#TCfIOQU{@zslCRkbGdrn%mSz5#3DJC{=Ri=kD)lOdT zN5_1yb-7K=dv2M#P4&AC)g?Dl6H&Vxiw(2OB!KE`UE8`j#}bt68WC1PWWzGVcT+tk zS|TvH5_0a9F39C0IS(#D4>a4stwzBWwY9M~H&7qTpO-|bSIzXP@&18L-e`JdZOC!I z0J}nD&pE!3HlKAA@fp3^JKWlZ%_1f?X&l|&K=0U0^yOo15C_W8MA+_vI|(S^JCAA6 z0(~Z`NB7E+&|;@c_y_h*{_7j__n4Tj7EzgunY^v_|9^*ty_(u zck~^=ZM3ezHjlwWo=`MVG8A!aSVeVIik>UTubJ(JPEO2g+(OD#t%dXUHe)`V>wJGI zMD9FA@G;m^y`SgRak7SVXu}+QreuL0(=P z)qYPf682{4;D^M~8{8k^l@sQpbsIjGjbn95r3&Q;QPYY||01V?Y)Kx6RD+YQj{Gq+ z6d_fETT=>Muo|CEbGlv_FZ!y0#7GY>xY670;%YyB*8Y$#%2y=rtcnSl(w^^?M{z2r z()PC_YtAd@_@g@%)*!(HQQZwt(+@IDdmqkP;(G{kgCRZE$CCPhFz3Ohu##{)b=fP59RW*@L!sZx z_s^wVh&1}IEa9Mq$BZ-_+CeZoM?fuORxaTfCNjj}*+E6=Q&VrJ&A(1Ji`#z!xXaG3 z4QF`9dR}k1sflLBC!NFQr3KG3vCeiB!^abO{c^HcdLN6}dG2~&;jr_pWd_7=Icjd+ z(-Fa6eJ^9~U_T_QK+GvitC3lq*q$j|vJB~Cg zi70WXB?J^aEkpY}UW^o}zyE{R_ldV+MenfH1-1_-&QsA2Fxlz~{gKZ~gcjf(_BM|m zw?Hw?bkQp2HQ=^rDk~l6QjmIT>wO1f2T3;--xW`flxQ>h{-5!bCuE6IPnc5L=ANJ^ zajB9?ofekj!LsifoMGXdd+MdbUo09N8updTtxM&^^Xx8MWaspV1=1-)(U4ZT zFIPb&CyO+j7ov!0>uksq7+#m1n!Y$x;%~oc7Ueq})-WPxKYuWEa^UI(k)jSyTS5M# zvxZV`((vdqWOi#?uyoL}mF4;@36Q8K0Xq*-ZXjb)Uz%vq@W2^&&M0EDl3J8XK~j9U zk{GhJG0U))?O%83H8m}Z*egr&Y;ZEQC1l<^A829&5!Y zvJ9~m4ocKLN)!s!BlN=#4WA`QH?|#Ga-eQatgNhClYo=Pd$}Z_rYwpC6ydC>L5mWU zo&0P#rS#JL2(}(C!L$p9GjIgXZTiXAH^}i55JK_a~r{ zI`~=moC149e^+n>BcZFgMX98rK-@WNN?zP#<%~(i5b;}kI-G@Sz9;5s#sV6imNs)1 zm)|1;i_;_l?dZfjVZ7}V|JUP~PeiRy&4>q%w-$WM7atb($lnj>$kyk(A1*Dgf*8oJ z+_CFbPxg?rX(mi(&3!#K`?!B*+roBj7#3oO7H<)BL9ajz@Xsij$DW?7Hiopt#1z$qT9o_zFx`i78|wIN(0Z+2pr1OOjEx6{OK zDX5vnq}I?s7@A2yB`f-yL@O7#xdN)+cgaL0FzLp`ah^iiW{TypUL$(9)AER7q7!6M z7oZ19`Ek(QL2xI3q-Ph1-Y{hUWr4HV9-B{Ff%A3{iQ7^w{ZO{x8H&fEI^N(q{2ogjWe7E*>Tzt32cq<#0s@SDNkYCgMYqvuqPFM(g&+XuP z(_^mSlgUhRjgV)7Cqron2}{Pyk<(lQ(~V&|{%@}5z51YYw;@Aoiz5BNH~$4pW-Vj* z>WVzv!fZpUE${o#?q=Q8{*S7dHg+*^>wm!vpW{>X<=bIEi_fd!f|knxk|PEmGaGG$ z0mHr03~$FDJr~<$E&RrO3;(DD$&VK0$Y4X!oRXvy;=u<^)XEQNk4U@jX4a9$iY54Qf(Q3A^8!HjUo%$CoV-;)Yu! z-Qn{|TDjH*>5f!!+#G}M%Zskp$F2;pVL!1jX zYGO?YoH?{3rFkS5x@>=h)?awk766;PZHHs5$8PsHFE&w?xPz~+@658UhO09KX2&)S z3N-a;!&>r87TfE^27_PQt9MkI?E!eb7eqNMG_5`6!o|+FNZA^{%alYW4a2&?kAIg1mfzBvFVv`d!p?TSLV@J zf>xzlR@>af+SZSa=b)Gh|MYrpZ|@C|fb=1PJPDXI`FTXC%gY?z5QIdNMrvei%!k%oAa(hrcI-B)lH*|4arSTlhSG*x)|^GibpJb>AUGV zWNd#KBK8P-2?c$nkv*8YSX<{etFWFecX!)kq|khFJK(d-r7xzhB4aO#nisIRFv#BI zLGj^cDi-`hOfe}ZKDN8^QD}N=5mXbTYg=4H(0#kS@=3dz+3S<_Lnnfv9^PstKM0c ziP;Q$7rs-o19>y2_(=eput(o(b_lkF zsJ*?%13G(ixsGY-(~k8(A7Lbc9u#GZpSI*wAISbEzJSA$jUXO^_BCpPD0MtAf?gSB zBJ8zcbcN{AU4u~f{KHd2=(!w6&=}waZNB`MgGcP&+OX#3pfZadJbDZonS(__`y1%a zwDk`f$I-$hpv~_Xe16}5^Ygv7i0t3@bko_mZnv1dh!}K0$<_H&>y9qBy+&+y*G}sR zqG#?oSQ40!XK`EcNWKMyL@2vz?li%m}bx)5R-S@C0mfz{dq#{v_F?4MU>Ev zVEz6Z8-EQ8Z`tve=@zC+&&BgQZ|Z;xM|>Wt3%X-l_;Z=B22Cf`e;O%5K0(Et1mv4Q zx4>=USfPI$WO58>eXXpkkN`tX1tOcD5b-wXhW}q>rRp`fDWf`juygzPs0wfWkHdUZ zhx@;~22f4y>!8IVia#|EV_4G>Jj!u!#y?-kA(;B_R45pJ+GUd0di}6S+4Ws81sy-_ zqRRbO8`LGvhkkqK@n=ejkfT3{4A?BE$C9IUa%Vpf48n~XvugXp1Mkju-|truZRE?) zYyT+o&C!2jW3-~hlvz?-G?wC+L+wwZVn#fL?<+d);O$G%p*{ZO>|Of|uY+b=;{`if z+uyJF(kz^dH>_GDXMNwsMLdmTl-0|T;*8`ItMX%TAB9Q#C=UIt#1I^De-9FH&u>fp zVyM)d^2-hiPv$7zlK){{{Xbx^CBV~MLQ^tb`HfsLE_+@_nd`e~cFE+eb-B<%F7*fD z@PcpIu63)S!7_uP{D#FxZw=EfGrfwvLa;lo{p{3L;yAs!ckrX)iiyXUps?NoBg;xk z$JEpFdi>{ExC%?#g>II7g1EWkYB94!xxqVvs`$(DhB^3>b8W*+q$o!js*7>%tza5MqP}9 zJ%Zu%-=)pj{Y0)wFXqN(Q5?4Y(@bkQ8OJlypQm;|IJc6V{)oZ;|4T~vpB90l|3!Dm z|I}V;`^J0TIV3>m9(op}U$oG_D;_KA<&#xul1GhgzO%8%B6z=o@9Ho*6uawJeCB=+ zZ)?7KK4bOsewLVz(-uxKEq7bqiE&WFMPhREeAdj_tso!``72VB#{ZF3;L=i{b&?(6 z^0(c!&<*26n!yVV6%jSg)ylJOO`vkAFLy6~xOnq?<=9(UyI@_xK|_?AE4o8pM?50M zAfE>GN258`!hYNwx)hOPRfnCg5!BzfcZv1HBJd@3*M55M+fi|d_qMhN;f!gp&sfPP zI8_ODyLaGybwqHl`ht0L(`-ud zSbv>L{4ock_%&8G{)wp&(8=ZDhZ6nNqCxrQV;dS#(ia}ekkNd}r21gOfuTmqgJNkh z3}fe+-~Nf}Ly(&Sg6G4tF2tNziE&h@a_@dqLb}PdjY-G4RSFmLkr;MaBS*W_N?l1gS12k)TlxY3U&N-O1Uw=fx&|@10;-d{=K9XBem@x=Rj0n_t=h;u$<=1MfD`9^X;g zmU=9?7LiSG9Yx>B42Wcg;}mHS^iI;T92P1miRVrrH7eRRAOusS{!xLNy#}vkyuu0= z8uK*3Bc{*dN@Ldb)W^+_AH`#0GWC0bL-k*bSbKjS+F1obI(^FNI@TT*9^JrRP<}am z{o2a0vz{_${`y);Uc8uS)p38DKnns3o43y;$P+`yE7gwJVDxQF+ODX{SC5~5FM_>C z9d*WN$4e@7dTtt6d~69{XzLQkS7E1Zup4Fd4YmG_)}N|85b`c(?MIYd%=nVowR(Hq zKaQVXz6rG##jV6wwzx~)s+&AHs%GXm&~&pdxu5C}+Bn1JN2pC6FA8pq+;UScM*F3s zvELj6nGn~Ph|L}I=YBS)636HFEY(83hgnrIJdB_TNcT{#sd{{>@6jd)8Qyr^7{_FU ze@aloOZIBo=Odnd`QrQzQ8qQ*D@yKIpE1{Zf1>hWlco4%LfAIsimCXKi!LR{fh6Gq z65g1#H;*l8hbFl}$6NW3Dmpyo_A~x`HaX{x$HyzZGEXnO8GYirlsYP^c#%~!vQ$Ie z(PK?0W|m$@1}TTf&1=cI^ty@T2D@@yI`>%dsPC{h8pH6cu*TrX@f4})6|Fu^%}XW~ zs`pEc!+ta>o!_?3GFoiI^35FOG$efpH_d>FU0-`00`hMA#>}QR$;sOFCYcolX4C|< z79ES!*NAJ;TX>`Xaef@X8txEKD0(DB(-x9ZQ@xT-je4o@33wx$foEOyhwRo=d!_nmhN-~1eS?uCs* zV$}J)Xw{^w#iWcgQtzfO`fGkaDfA(~RMp`j@+5u0l8Sig_}S&sRp;{O+&Z4vNvDqBz@bhZp9k-iik16-iFS1L$_5SQ&B^1l_-W86 zVG9*v!^@cBTI`*nck81bBP!-croLwLt12BR8r7TTtmtZ`YfZ3xTB@jf$L+TAPz9CAiPGxhe~UYZH?at%y|v--r?!M$qb z$Bcmvh%;~~oYo&{nKg9(l+;Lu<&wj$@oFvy2F47Y#Hza4MjQHA8;Yau%??N_btz{G zrH@@whlhlFHP$PFv8hlo9^ihPG*mJ9^k}bS>NO`X$gktovVa_UT_K1O3-q zW-oY)eoVu&vJ}zfi8QXK2M1o5EPQuZJwd^2q_-wTjxE^}NnqQ%g1y$iZF>FanQEnl z(_-|wm0+dKC=|zTG_sMPv08&v9Bmao{?JsaI7?K=sjY`uL#bTZZ0}dD%d-m>8s2}j zaQf|_^I`hmdtxF5_xA;yRb+Kd?p%}HelS0S}6ifIamgqHFYm z02g?OH8hO{@4WIp5)sl|R~uud+Gww^6w@eOL54{Ccrl`r^Pa|chg7r|)2%jUVkERj zf!Vk59=_MNqQEu${MfF5q;;H@UAn4cN%iYn3zXtsfhDXA&HLBP-zb1D-fd$f+qcUG zu`Bun0TOW6hhS0le8%FaBO_%eSOLd-&-P-vZ)J+FaO*f32l&3z`B3k< zvGjD;-r2uJx>q?ld$~5rVR#%~KfbzFQJhMsKrtUZUOsx*Du?dSRE5$b&%GKRysc_3 zue3lH88FprW^Vr;Q8y^NMUkLsCi{Iwgr3(cv|XfOJU&4cb=9Z4x3DoiRmsYgu2_@1DlZwf0nQ{%9I60@?A~8{yrh$Fh@1jgdkey#pGN zc5MQBIrUr6NmuAc0&50T`4;0C@-*b8Sj#vG@IuG9iQ!+vanlaN^`^+s%R@&G>@AtU zE7rGMkD*Y~k-d}@&9#6{{3*v(ncMdN`ck08u5^;xn_6Sc73xg~3vpIj8;ucgM9PP#-&j0p~! zm_5DD*KF|evB1&;cz3FG+P8_DU_)THz}JJ2@Cu|pHZ!fX58O&I!1_6aPaRjkU^uVA zExIZ5efn;|35r-{F%F6iF^QI~P9dyiK6ub251KR&i)$5_?5LRfszs5e^6d;pFA2(pR^=@e_PTwXj)(K64kZZ_WbIJ^&afF+zlZr z;+Y}Y_=Jkh@_M6mwxI3FnUvb8_}n7jjUs@Y-pgYSS)aW6dN}Y+TewuDpH$t<*ZOV$ z44xmOw$21x)>ke*g*Hn$rh&mJjf=x+>tY0PC%XRN>pIPI)Nw4*JmN0VXNSEFKROx= zyjYAL);%rmFx*xTCFWPHKPCaLNEo;sVl`0#9)hz#f9^7>NwZACJj?i^_|-6!c~k+h zl`V0nS=M)-OIf+y*~sUPkhIa6`;Iq_pG1`GLGk1ZLfmkjv*UHH7ehagac|W5rBPs zDa{`CV5i9DLVex?i|S-fKHF-IL>d!y9 zQK3p`_WM7YIq#^Z)-{d80i+5DDBYmop-B-zr3OWsG)3tp2ays&QxqcvBA_4$Dj;wK zF^Uu^p$H-L2%&=_AT5-T&`Tge#0W{8ea@P>bMCCW?l?2|+&h1yuARNJlJDE^{+{Re zyzm9%(6?pLzg!d#AGxT7$JmOcLxidumYKPjZw0Wx@-NF!$DvzNYyD$cIveQKVO-|4 zQw<#QZibI~Zk2!bJ%{y2Cx=GZ9<9&?@2g%u#RXjy&ij^Dd6B=?c@BL`C-?PAc*Efg zzt=8?{h2$O<{_dp9yXDoJyQ4gxjoFvyz@Nfv!!Zv)xxi7Hh@RhlC!U|GA~K_cM#z> z7~xO8vHu|r$MM;FXO@19{9fN<2nVx^bB$azQl_TlIMY$*u@dPJ>ddB=sWJO>n17f8 zLZq*&|I&dvR02>fjsgB)t)~{%VHdK3eZvE^nG*X|IxpkouM5_sr(1@toUHP(rQ4k$ z<0|;eG{f&~9mt8&b{i_b^J~8^4)aI@jBohVl)lrae*T88!F%EEW2ipAV{bT)CQ&Ef z;DR-{e8)P$9BK^Pswm3kHdkipS#`bj>UuErFz%E}0WKLF(2V$IB*M&LSZ|@S^k#~@ zUz?$a^@|i$gsy+O$lY>MMcG%5P0MnYO?5#DNSoSCMv~>>qNG_&J>6wie^~=zS3IMg zSV(_(rS?{)>>=e>0-d7C11do5KeXrouVE=3SCv5FrG2=rNHHNtLb%~3^2j&?NqxhP z-CN4YVoj3Jv_EO8TuIQ#LK+)DY^?6qqVrJ{oX`NNu}{~gbfV|@$+j8SVi7khjswRU_qCloZr3U# zrKzIV8@ouD*&(>;*Nyrsnk6|;`FO|(_nL>EZLKh(R>bJo?F)F}_?WCZS+QT+THJi( zHlz=xC~edirGWBxZrNEbI?aa2lNTu;VqXz+QiRS`@Oi=uH(O7v@*ZmTjdiT7GsnJg zzECQO9(Ay*IoB9lQ@NP}QF7LlyY=+X9)&-$fA+tF$#XoXY1~7coRhW)Y_cnyTs<*q zopox_hq=()j=bToAOZJ*kkU>$$)@WlX^X4T&zdGo;dt!E|o{+-QCEz!5I6qiw2+~Ad_dF zy<|=EMMKH^jdU)17vBM2`;?O=sc|GRx=)@xZt0wy;|JoA>-Bf_8&u`ZY5VSzCCU{) z>PUNB(6@S4R(^Qs+OwyaHg90_t8H$`VkqH5F06D#{36kL zrY-BxnB&m#$^n5ANrm4a8(9mLcTdiCmtsE9QPyJ^!z1XX6JnTo?3HXXV1a84WHTb6l>baJXK zzO6^;TQ|3dsgCS1)6Aa*fn0!cx7-$w{2T4ne@`ppjH2}saQY+}k}|}4kE}jUuuUyl zc6HaoK4e@jo79=tvxj)Ehu4nIQqoq>8wD$H@f{czFy>y?IruFR5HkICMnZt=fPm8J zu5@gxl(FPy%wnh#;1X!;0a5e85#aKGB$|(;^|CSb^Kd7?Br6sHxqZv&I~)D{3W#yz zF&+5TYf(&Dz<*{P&@=zeCi7BgxIy)^C`$}SDFVi$0}@zU*ro!xi9cz#szU8gqJeNE zr?x)vfz;`aC=D|6#bbUVgdXNjovuyS>A=(xwI-&VPaw~9N?)y?tP|L$2xVhBBe1-rqePr&G{E^_X5v%&$wQ90p;p1<6jg;_)Fz ztEzoMa)L@tMANKO8)e(Rd~HYZFSAtbxaqMjHIaR_DcUQWWX*{Hjia&hmhg zKbHfuimYJoD44bho}Ys5re;ogm?U$?uWD$zSrk2a&)GXpIOi9!4EJ_#pb4gB-``1% zdNs8PU#$9c-V6L2d0H62qBI>enysYRCxewWj24f(5I3e(M_m|x;$ge~` z+&lvrfcqK^tp8S0mpRr6ziY5%6o})n_I{Pm?xP#8s)o1e3Jr}7b=PGy&+=uZnftzT zFy%~xv)Kn73)jvGcgxmxx(g7!uNaC{WNQQ{i3>gOpn~BM=~oE%wy0Fe(!)?#0z4_o z4v9Q+O^@&1jfw5JGE4W~i5pd89bX}G8EMiTLHp?G?NW&B%ov?VrOc|r0BA6KT}-eP zq4#{lJ)i88y!Nke)c3|+Q0u{?3Ev9Bo9#!?JwZyJw=pam0xN51X}IQ+>5==_)`(ji zpO9-qNG97T#s~J7SL|;%I*_x#gxvBb@_%Pr8@mEPHRy$?F$f>B6>vl6yMBXm#>$HU zDAKKWul%o|gnyJE{olh4|D|(KiB#b;zp@pqt65&z4z{wnsW;8Q+B@|^rI4i4!WjzHhVIu~NhYM#Z*Olsy=1k9nfm7S*JOX=m5sM#*GJ*F%YC zKpY5_?`-KbX32N9Y5Hw|&N8nU&SrGdfm4m*+#Yb>NZtI-X8qV00GHT_C6l_6`>Sy61}OLf)NG zr#t1%n0UQe3$KcL6q(z`ejR3T`$SoR!^90~6%k{FUp|vxF4*J)EHHcS8Qso< zbIO#cC_U7RXeDaX3u)#nocA=p{V2u*W*cd>NB0{I9wlF?-{Yzs&xn0F9)G6xr^ZC@ z%&YJn&}2q1nsp|+Z@2J?bwnDR>ZXu1>9#)H=c_K7#_n`BjwmD8w4J@VK0@p3A__K% zm%y>^)XsF8IVs~y?$>)oLtYJ0%8nl-$eDy)m+J;q5DEN+t0@LA4_>k05Z_is#u7!M z6%irS$DMX5AD3MnD)5t57%D5~)y!1D!=DSH5Bj#$H`HO?vK>A8;FYs;DO;zlW)!!= znkmuZQy7q04$f~0p33~zEXa2|g6lnoE+&2v!Rl&$MC20pNO-)pp&y$!azGBER&PPgCydFku+`gFJBIB z2{GgVtR`famjMX2xM%=aA^QVmRGP&HL>AA2V?kdx+d&K)wx}pm1Q4#}In5B8WW^#m z!JEVfV0t!~v=8v^bC4hHW)qluG;Tn#HU>d1L4f_V?FR%9KpKCEY8Bf1N)}@M{Fr_g zH(N;D7Ns8n2pa}~*|dM;9vev^>t2n+6Y@Wwv6y>XciZ=jgF{N9!Va5LAA}l*Y_-8H zD^g8ZOgeD*#Ik1CPB63HNDF$~h>zYyQ*1RlKrPQl`Hpx~)pPG$M@IQ5iW)0^3Xekd zTNiE*a4tCeSa1XLx>Y-Mj+wv`FDr@WjlvdK-lfKq-pfxx~SmchcoX@ZGRSIdAI-mZe%KV>p+Yk0hqahD5BI&nhE0PcM z(`C!2dq9bdJ3(*US1d}Gvim2~d(d#XS8d*GpM<`W11Y<=Ne7H{sPi7;=cmT`qF9ZAER(-UYXyNCjT+OmPYn*^F<>)WULl0OB0!>WXymE@LlZE={uHHJp0`_(?&9N%g9y>M2b za6t2!lWoXqNc>eG54i0Sv5C)VYD8bQz{GFxOUlkY60383q3iU)uT877=ZT3{mGQ8$ z62tmUN1ykylq%V6V3IhCiwANl!7POpBTcGcD%mT9nT3X@8`oimicVX#96NpK&R}Oh zN>?Ok{Fxu&W$I2rbGvw``7PK{8-eb(<_dw5vJyTn&Y@?y7z9yA*p+^L^+{pz{nalS5_Fdk zYVg?kERtc(iAgwe9YlRJMOd+4MawuY9tarY)hB3gsZd0uamTBD@;xmEX52?!H3jvp zRg>@|M?4+spS0+1};4JfZFnnEkF&^MtaqE zJq%^PKs`^j)XiMVd-(;HdwT3z-dK4BW;+tvj!<|@Z!85)MHg7w1b4*QG%F7di;rCs zi$kPTkVX9oPtzj&Gwz9dMzD(P#^n11GmrTLYdD^04FvLc7i5n3Za@V7&}=x^fXgSZ zFz$^%!P5B%%06Y|e6`7K!@mA=Pam0Tl~meaJR+BTo*uS$9-+f*U?6FbR!^>4n%zB? z!ZJY?wbMjsZb1pA?M9dgun=l3i@v=4Z_6$TuMd_la7`Rz<~E7bs`0>D3)BgIcvy?> zg@z;XAki^%8@;VL`;Xeb7~Cly%-^|~9c8%I z2qU@`jjUqo3)LY_#rD!z8%Di1GGo~0rfbl(P%s}DW|y>!U7w(#uFx~kT`*cCsSsln zONh$25BSFE-L<>!n#R4>g8|}q;=&mHx5ZTN%YQUdiXKFY8n6QaSGMR6POgl^Ijhb6 zAW`^0haTj<2EtSaU6GiO(RWLR@ht_5D zj6_G4KzDYDi8r@19Qg-C{S{0KC0|YP&tAZus61Dy)|h!DH;kKdiJGvJNL```%?=QT zcdiWu890?fvrXub_7;hThNSLQsms>G%8y*KwK=tutwN?ArD|G=M-1N^zOr!HYDGic zxvr?N_9=6zaH;|}b$v9naAzb4O$dVB{N{bLX#-m|%IX62X?=tV(A|gyLil~e@S+i? z^=wE)i2+ix30`xpRzzQM^Y~_7a)+LmTR;q6`0Qje73i1)RJ1K`mhN}9ie{njY_^%0 z4I-xwhyd<#We&81QnC+X@wv*!ZQ?U#b8O6HuZC%-C1ieQyV#thklZppqL%mI?t?8! z_8X0eA{L+WEa)Lf0_lggn*G`a=JKQ$U7^YB+-RP1+6_u6h=qO)bw`~cdQ5gxl+L|5 zYRNE;Xz3@~YklD#3KIk!+~FEM=CvKWkzM>KHkM4sGug7cS4P#0vM)SWqe(dm(8PlJC{{H&XId6{#smH_aq=?pB zJ-G{}?%V4U2lE*i7BNhzDNAuW6nVSq;gI9O8)YFPmO(*er|cOw{?dHSlN-E?T2@=R z-TU|vfM~#j?UF#wz8pe?J|+cMvbfS)U%z`_oMLD4`E-go1x)y9YBe_Gt#@vL(O@-7 z5!vIJ0*eZ`IsDa6*|Kq&sPOdGM8Fs-EKBftC^g5m^Moa0gc&hI5TK5Af(VLTD5-U% zk3VKw)pV>$h$OA%M?U>IaOe+yyE zL^ava5=c%IRj40%KaBL@-U|il4mN+XHb?wHVDL387MtXM+PczuO#G6(!7q7Nt&6wt zmMhVEbTAD`0#N|F2xH!syALTt59=ft=m{kw4E=5g1r<-~yzQ*?B=E0L&;<^{=L-Z% z@EQ|X#SFw*W-?2THS$7Z8k1(7>GPAu(8!AAZD;x8o+|;ov!_0>9oFO`EEd3$t!UDHf6DSCKAUG zq)br!s6>Ls0A()EnW0Zlc(qCZrvw|EEp~n^K{wLpHw0S^X*Yg6Ynf{uENMVxtNCy31=;&AX$^bL_aVPIpst zb?uAM-bnztH-DtV1dzJO+V@r1OH?;NNQzBZjg}rX;$@gqeY0lghYm@rS&?1W4rP6w zhK?o|vl0r6p4%|nRbvd=&*wioEH|D^i-5%70>KlibGUYZ&x<7rQlixmC+Qhwc4T;9 zJQkWay%K>T?KfIchx1vg7(X(F5B)4+*7|A9DdT;o`e1;2MM*TJqH*HF)Y!<{;IEgS zeiK{F(py;c0Chx9yW-SPYUoeMWT3DkAMT2;w^GN*PVG@5UrDxTGUQMf2_+d2ww(T6 zJ<_s7*5Zly?RoYEcCn!DDn6yh`%t%q<1&iYyi2m1S$^z;k#MxR#-w>|mB zDDu@OrpL9;%4|W*i)yadjGnA{A9~;yM`yalR&Vx<<{&sgjEap{HwYrZz)2VB>7Ji{ zrftTq9~(By@q6h`kU*D}O*+7Q>S31NN%kJC*%P46BH>zlx zxToYW<1!lVx!Fn-x)o&K28-cJ=~r|Xx6jGxlZJ1~LGz@86`q>JJXw(_E)6eHbwiKV z4)K--e`&M@&0JVqo8{{}tPC{2dG9U-5nZ)-gH$2kjRA*605j?{R#e_%~7g4nY6_ literal 0 HcmV?d00001 From eb9699f009ea030785c288e3cf4b16a26b148faf Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 19 Aug 2015 13:34:35 +0100 Subject: [PATCH 109/230] Use jpg version of image --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 9bfeaa8..2c22e00 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -75,7 +75,7 @@ The previous section described the event list and how simulation entities (proce Inactive processes are placed on to the scheduler queue, and when the current active process yields control to the scheduler (either because it has finished or been placed back onto the scheduler queue), the scheduler removes the process at the head of the queue and re-activates it. (In SIMULA the currently active process is not removed from the head of the queue.) When the scheduler queue is empty, i.e., there are no further processes left to execute, the scheduler terminates the simulation. -img::images/queues.png[simulation queues] +img::images/queues.jpg[simulation queues] Figure 1: Scheduler-Process Interaction From 70cd586abaa547f78bcaecdf7474ef3cf0b671d4 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 19 Aug 2015 13:35:38 +0100 Subject: [PATCH 110/230] Fixed typo --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 2c22e00..c528a15 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -75,7 +75,7 @@ The previous section described the event list and how simulation entities (proce Inactive processes are placed on to the scheduler queue, and when the current active process yields control to the scheduler (either because it has finished or been placed back onto the scheduler queue), the scheduler removes the process at the head of the queue and re-activates it. (In SIMULA the currently active process is not removed from the head of the queue.) When the scheduler queue is empty, i.e., there are no further processes left to execute, the scheduler terminates the simulation. -img::images/queues.jpg[simulation queues] +image::images/queues.jpg[simulation queues] Figure 1: Scheduler-Process Interaction From 4aba0691affdea6698885bc6a813d87db868c2f9 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 19 Aug 2015 13:38:38 +0100 Subject: [PATCH 111/230] Removed png image --- docs/images/queues.png | Bin 26822 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/images/queues.png diff --git a/docs/images/queues.png b/docs/images/queues.png deleted file mode 100644 index 6f2d72fb01d43f6dbab608f8e0f48ea8124aaddc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26822 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 NE6S_MmEJQ8`adtVS|k7f From 5b02ab135c1c7d2d6fc688f0248b1ee3042644ee Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 20 Aug 2015 15:42:14 +0100 Subject: [PATCH 112/230] Added superscript for exponents https://github.com/nmcl/JavaSim/issues/40 --- docs/manual.adoc | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index c528a15..6d8136b 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -389,11 +389,9 @@ public abstract class RandomStream The multiplicative generator uses the following algorithm: -Y[i+1] = Y[i] * 5^5 mod 2^26 +Y[i+1] = Y[i] * 5^5^ mod 2^26^ -THIS NEEDS FIXING!! plus mod superscripted?! - -, where the period is 2^24, and the initial seed must be odd (Thanks to Professor I. Mitrani for his help in developing this.) +, where the period is 2^24^, and the initial seed must be odd (Thanks to Professor I. Mitrani for his help in developing this.) The uniform() method uses the linear congruential generator (seed is LCGSeed, with the default value of 1878892440L) based on the algorithm in link:http://algs4.cs.princeton.edu/home/[this text], and the results of this are shuffled with the multiplicative generator (seed is MGSeed, with a default value of 772531L) as suggested by link:http://www.amazon.com/Art-Computer-Programming-Volume-Seminumerical/dp/0201896842[Maclaren and Marsaglia], to obtain a sufficiently uniform random distribution, which is then returned. @@ -401,7 +399,7 @@ The error() method returns a chi-square error measure on the uniform distributio By abstract method getNumber must be provided by derived classes, and is used to obtain a uniform means of accessing random numbers. -The RandomStream class returns a large sequence of random numbers, whose period is 2^24. However, unless the seeds are modified when each random distribution class is created, the starting position in this sequence will always be the same, i.e., the same sequence of numbers will be obtained. To prevent this, each class derived from RandomStream has an additional parameter for one of its constructors which indicates the offset in this sequence from which to begin sampling. +The RandomStream class returns a large sequence of random numbers, whose period is 2^24^. However, unless the seeds are modified when each random distribution class is created, the starting position in this sequence will always be the same, i.e., the same sequence of numbers will be obtained. To prevent this, each class derived from RandomStream has an additional parameter for one of its constructors which indicates the offset in this sequence from which to begin sampling. === UniformStream From f48a3c954f85678e389a916ce3971d0918624206 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 20 Aug 2015 15:46:48 +0100 Subject: [PATCH 113/230] Added maths images https://github.com/nmcl/JavaSim/issues/40 --- docs/images/maths1.jpg | Bin 0 -> 12566 bytes docs/images/maths2.jpg | Bin 0 -> 14024 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/maths1.jpg create mode 100644 docs/images/maths2.jpg diff --git a/docs/images/maths1.jpg b/docs/images/maths1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d46dd1703acae981a46f5861e47a9e7fe06177c2 GIT binary patch literal 12566 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 A`2YX_ literal 0 HcmV?d00001 diff --git a/docs/images/maths2.jpg b/docs/images/maths2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8a9d4b5d83cb736ec2ec3d47e9142c8f140418d3 GIT binary patch literal 14024 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 literal 0 HcmV?d00001 From 25894511c1f85e3fdabf32ec793f6b5046fb16e8 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 20 Aug 2015 15:47:35 +0100 Subject: [PATCH 114/230] Use maths images https://github.com/nmcl/JavaSim/issues/40 --- docs/manual.adoc | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 6d8136b..ed4e227 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -667,17 +667,11 @@ The maximum and minimum of the samples supplied can be obtained from the max() a sum() returns the summation of all of the samples: -n -Σ Si - -i=1 +image::images/maths1.jpg mean() returns the mean value: -n -1_n Σ Si - -i=1 +image::images/maths2.jpg An instance of Mean can be reset between samples using the reset() method. From 383e906b7042a839fef64a7688371b38d95e187e Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 20 Aug 2015 15:50:40 +0100 Subject: [PATCH 115/230] Fixed missed alt in image:: https://github.com/nmcl/JavaSim/issues/40 --- docs/manual.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index ed4e227..6e52685 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -667,11 +667,11 @@ The maximum and minimum of the samples supplied can be obtained from the max() a sum() returns the summation of all of the samples: -image::images/maths1.jpg +image::images/maths1.jpg[] mean() returns the mean value: -image::images/maths2.jpg +image::images/maths2.jpg[] An instance of Mean can be reset between samples using the reset() method. From a2a07fd69dbb87b3dedbc152821dc001d8240515 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 20 Aug 2015 15:51:52 +0100 Subject: [PATCH 116/230] added variance image https://github.com/nmcl/JavaSim/issues/40 --- docs/images/maths3.jpg | Bin 0 -> 19906 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 docs/images/maths3.jpg diff --git a/docs/images/maths3.jpg b/docs/images/maths3.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c2921869bb096f368215c1d66b79f5232ace115f GIT binary patch literal 19906 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 O{O9wm|4*MY^WOjl{lBIF literal 0 HcmV?d00001 From 73d231c2ddc4cd12432199fa8b906ebba2dfb6d7 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 20 Aug 2015 15:52:49 +0100 Subject: [PATCH 117/230] Added variance image https://github.com/nmcl/JavaSim/issues/40 --- docs/manual.adoc | 14 +------------- 1 file changed, 1 insertion(+), 13 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 6e52685..652bbaf 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -707,19 +707,7 @@ public class Variance extends Mean variance() returns the variance of the samples: -1 -n - - -2 - -_ -Σ (Si-Mean()) - -n - -i=1 - +image::images/maths3.jpg[] stdDev() returns the standard deviation of the samples, which is the square root of the variance. From f9843e214674886034c7efad07c58708c45d3f33 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 20 Aug 2015 17:01:01 +0100 Subject: [PATCH 118/230] Removed https://github.com/nmcl/JavaSim/issues/40 --- lib/ext/junit-4.10.jar | Bin 253160 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 lib/ext/junit-4.10.jar diff --git a/lib/ext/junit-4.10.jar b/lib/ext/junit-4.10.jar deleted file mode 100644 index bf5c0b9c6ad26f515407effa28232a3e05200868..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 253160 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 Yw@xWsR6GN7?^BUq&LVA^JqvL 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%0D;ifS?#HmxOc?~%#59-k`6GKjp6kN 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

YsZq(Mlan0|cQ4s6cpaq4`FPUc@gsSxE=qGmBP` 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 From 413200ec2c59167101a8d5859e034605a3b6ec7a Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 29 Nov 2015 15:30:53 +0000 Subject: [PATCH 119/230] typo --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 652bbaf..bbe29c5 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -214,7 +214,7 @@ Because SimulationProcess extends the java.lang.Thread class it is necessary for ===== Example -To illustrate how a simulation process could be implemented from the Process class we shall consider the example of a queue of customers arriving at a bank. For this example, this involves three classes: +To illustrate how a simulation process could be implemented from the SimulationProcess class we shall consider the example of a queue of customers arriving at a bank. For this example, this involves three classes: - Customer: instances of this class represent the customers in the queue. From 014d997385717f34cb2e907e8dea68a2acf24d98 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 29 Nov 2015 18:22:16 +0000 Subject: [PATCH 120/230] Create README.md. --- docs/README.md. | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 docs/README.md. diff --git a/docs/README.md. b/docs/README.md. new file mode 100644 index 0000000..7da4a3f --- /dev/null +++ b/docs/README.md. @@ -0,0 +1,3 @@ +javasim-0.3.pdf - the original (last) JavaSim manual. Out of date with respect to the current codebase but included here (for now) for historical purposes. + +manual.adoc - the current user manual. From bd72194909d0a7eba46e4c7b29f60f4bd3c7fcff Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 29 Nov 2015 18:22:46 +0000 Subject: [PATCH 121/230] Rename README.md. to README.md --- docs/{README.md. => README.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename docs/{README.md. => README.md} (100%) diff --git a/docs/README.md. b/docs/README.md similarity index 100% rename from docs/README.md. rename to docs/README.md From ab914923b26dc4a0e5130ecf1752efc88d1f3263 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 2 Dec 2015 16:08:17 +0000 Subject: [PATCH 122/230] fixed typos --- docs/manual.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index bbe29c5..91fd878 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -776,9 +776,9 @@ There are therefore two ways of getting the number of entries in a bucket: - by the unique name of the bucket: sizeByName(double name). -If the bucket does not exist then each of these methods throws IllegalArgumentException. +If the bucket does not exist then each of these methods throws IllegalArgumentException. -It is possible to output the contents of the histogram to standard output using the print()method. +It is possible to output the contents of the histogram to standard output using the print() method. ==== Histogram From 979a9b78cb2b2088cd33c29c8edcf997ccd5e2df Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 13 Dec 2015 14:42:29 +0000 Subject: [PATCH 123/230] Added info about images directory. --- docs/README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/docs/README.md b/docs/README.md index 7da4a3f..c9bec41 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,3 +1,5 @@ javasim-0.3.pdf - the original (last) JavaSim manual. Out of date with respect to the current codebase but included here (for now) for historical purposes. manual.adoc - the current user manual. + +The files in the images directory are used within the manual so do not move independently. From 5605407cef897d46fef967fc10de4951f5b69fd3 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 13 Dec 2015 14:46:58 +0000 Subject: [PATCH 124/230] Improved formatting of some code samples. --- docs/manual.adoc | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 91fd878..5843841 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -145,8 +145,10 @@ NOTE: Thread priorities have no effect on a simulation run. public class SimulationProcess extends Thread { public final double time (); + public synchronized SimulationProcess nextEv () throws SimulationException, NoSuchElementException; public final double evtime (); + public void activateBefore (SimulationProcess p) throws SimulationException, RestartException; public void activateAfter (SimulationProcess p) throws SimulationException, RestartException; public void activateAt (double AtTime, boolean prior) throws SimulationException, RestartException; @@ -160,13 +162,16 @@ public class SimulationProcess extends Thread public void reactivateDelay (double Delay, boolean prior) throws SimulationException, RestartException; public void reactivateDelay (double Delay) throws SimulationException, RestartException; public void reactivate () throws SimulationException, RestartException; + public void cancel () throws RestartException; public void terminate (); public synchronized boolean idle (); public boolean passivated (); public boolean terminated (); + public static SimulationProcess current () throws SimulationException; public static double currentTime (); + public static void mainSuspend (); public static void mainResume () throws SimulationException; @@ -408,7 +413,7 @@ The UniformStream class inherits from RandomStream and returns random numbers un ---- public class UniformStream extends RandomStream { - public UniformStream (double lo, double hi); + public UniformStream (double lo, double hi); public UniformStream (double lo, double hi, int StreamSelect); public UniformStream (double lo, double hi, int StreamSelect, long MGSeed, long LCGSeed); @@ -425,7 +430,7 @@ The ExponentialStream class returns an exponentially distributed stream of rando ---- public class ExponentialStream extends RandomStream { - public ExponentialStream (double mean); + public ExponentialStream (double mean); public ExponentialStream (double mean, int StreamSelect); public ExponentialStream (double mean, int StreamSelect, long MGSeed, long LCGSeed); @@ -442,7 +447,7 @@ ErlangStream returns an erlang distribution with mean mean and standard deviatio ---- public class ErlangStream extends RandomStream { - public ErlangStream (double mean, double sd); + public ErlangStream (double mean, double sd); public ErlangStream (double mean, double sd, int StreamSelect); public ErlangStream (double mean, double sd, int StreamSelect, long MGSeed, long LCGSeed); @@ -459,7 +464,7 @@ The HyperExponential class returns a hyper-exponential distribution of random nu ---- public class HyperExponentialStream extends RandomStream { - public HyperExponentialStream (double mean, double sd); + public HyperExponentialStream (double mean, double sd); public HyperExponentialStream (double mean, double sd, int StreamSelect); public HyperExponentialStream (double mean, double sd, int StreamSelect, long MGSeed, long LCGSeed); @@ -476,7 +481,7 @@ NormalStream returns a normal distribution of random numbers, with mean mean and ---- public class NormalStream extends RandomStream { - public NormalStream (double mean, double sd); + public NormalStream (double mean, double sd); public NormalStream (double mean, double sd, int StreamSelect); public NormalStream (double mean, double sd, int StreamSelect, long MGSeed, long LCGSeed); @@ -493,9 +498,9 @@ The Draw class is the exception to the inheritance rule, instead using RandomStr ---- public class Draw { - public Draw (double p); - public Draw (double p, int StreamSelect); - public Draw (double p, int StreamSelect, long MGSeed, long LCGSeed); + public Draw (double p); + public Draw (double p, int StreamSelect); + public Draw (double p, int StreamSelect, long MGSeed, long LCGSeed); public boolean getBoolean () throws IOException; }; From 9c008f6f152398bf89e394fba2e3dc5c073cce25 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 14 Dec 2015 14:30:22 +0000 Subject: [PATCH 125/230] Added info about 0.3GA build. --- distributions/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/distributions/README.md b/distributions/README.md index e2852f7..5b97c5d 100644 --- a/distributions/README.md +++ b/distributions/README.md @@ -1,3 +1,3 @@ Pre-built distributions. -Currently only 0.3GA. +Currently only 0.3GA. This was built with JDK 1.4 several years ago. From d94f024143d0136ba108c2abdd299fae69bff83d Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 14 Dec 2015 14:33:31 +0000 Subject: [PATCH 126/230] Added references section. --- docs/manual.adoc | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 5843841..d50487a 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -871,3 +871,14 @@ The p-quantile probability range must be specified when the object is instantiat The actual quantile value is provided by getValue method. === Example + +== References + +[1] G. M. Birtwistle, O-J. Dahl, B. Myhrhaug, K. Nygaard, “Simula Begin”, Academic Press, 1973 +[2] O-J. Dahl, B. Myhrhaug, K. Nygaard, “SIMULA Common Base Language”, Norwegian Computing Centre +[3] Knuth Vol2, “Seminumerical Algorithms”, Addison-Wesley, 1969, p. 117. +[4] R. Sedgewick, “Algorithms”, Addison-Wesley, Reading MA, 1983, pp. 36-38. +[5] D. L. McCue and M. C. Little, “Computing Replica Placement in Distributed Systems”, Proceedings of the 2 IEEE Workshop on the Management of Replicated Data, November 1992, pp. 58-61. +[6] I. Mitrani, “Simulation Techniques for Discrete Event Systems”, Cambridge University Press, Cambridge, 1982. +[7] M. C. Little and D. L. McCue, “The Replica Management System: a Scheme for Flexible and Dynamic Replication”, Proceedings of the 2 International Workshop on Configurable Distributed Systems, March 1994, pp. 46-57. +[8] G. D. Parrington et al, “The Design and Implementation of Arjuna”, Broadcast Project Technical Report, October 1994. From 9ed06e9f44b9691bbe0debc335091a64b4d855ad Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 14 Dec 2015 14:34:08 +0000 Subject: [PATCH 127/230] Fixed formatting. --- docs/manual.adoc | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index d50487a..970bbe7 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -875,10 +875,17 @@ The actual quantile value is provided by getValue method. == References [1] G. M. Birtwistle, O-J. Dahl, B. Myhrhaug, K. Nygaard, “Simula Begin”, Academic Press, 1973 + [2] O-J. Dahl, B. Myhrhaug, K. Nygaard, “SIMULA Common Base Language”, Norwegian Computing Centre + [3] Knuth Vol2, “Seminumerical Algorithms”, Addison-Wesley, 1969, p. 117. + [4] R. Sedgewick, “Algorithms”, Addison-Wesley, Reading MA, 1983, pp. 36-38. + [5] D. L. McCue and M. C. Little, “Computing Replica Placement in Distributed Systems”, Proceedings of the 2 IEEE Workshop on the Management of Replicated Data, November 1992, pp. 58-61. + [6] I. Mitrani, “Simulation Techniques for Discrete Event Systems”, Cambridge University Press, Cambridge, 1982. + [7] M. C. Little and D. L. McCue, “The Replica Management System: a Scheme for Flexible and Dynamic Replication”, Proceedings of the 2 International Workshop on Configurable Distributed Systems, March 1994, pp. 46-57. + [8] G. D. Parrington et al, “The Design and Implementation of Arjuna”, Broadcast Project Technical Report, October 1994. From 7d55236c24e20ee41feaf86091044ac73b1b9423 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 17 Dec 2015 17:29:28 +0000 Subject: [PATCH 128/230] Renamed download. https://github.com/nmcl/JavaSim/issues/44 --- .../{JavaSim.tar.gz => JavaSim-0.3GA-JDK1.4.tar.gz} | Bin 1 file changed, 0 insertions(+), 0 deletions(-) rename distributions/{JavaSim.tar.gz => JavaSim-0.3GA-JDK1.4.tar.gz} (100%) diff --git a/distributions/JavaSim.tar.gz b/distributions/JavaSim-0.3GA-JDK1.4.tar.gz similarity index 100% rename from distributions/JavaSim.tar.gz rename to distributions/JavaSim-0.3GA-JDK1.4.tar.gz From 448987028d40739d4961d7934239819536b22432 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 29 Dec 2015 09:16:54 +0000 Subject: [PATCH 129/230] Deleted 0.3 pdf - new manual more up-to-date. https://github.com/nmcl/JavaSim/issues/42 --- docs/javasim-0.3.pdf | Bin 100601 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 docs/javasim-0.3.pdf diff --git a/docs/javasim-0.3.pdf b/docs/javasim-0.3.pdf deleted file mode 100644 index a6df0cab473e72128544e9ab436fc64cb31fa8d0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 100601 zcmc$`1yr5MvoDIfLjnZbxVyW%dvLel?(XjH65QS0Jy_5{aCZU(dytu&nK^gXz5jdG zdhhkxy}#<}YT5O57yaw%hFDHWgqog)0Um~Ub8BiA9)=!32e8)v1P{Z-1rI~3;bRMzp3-@Dt&o*xnDBH zuNDMB0b>MXf%5nOAJiv@pMqb#K!;z9l@0MK@H?DI1!t9w0N0j%gG&Vp1sR!xirLE+_lcG!QK0C4d)kxLpw zjFfE*!T}Gz2Zfg_`8-2IB+-q|ze&83bC>G!g>eH(h zWHH9CUKC>hAdNGJ0$0aCSs-<@^1zP|5J5=>)%e2o6G7=>{Z+@GR4uMo>v%si#OPrP zkKmLh4p;JfDL-#U9vC%THB2WNqeTM1RBG`E93}&HDhglRr?FZunXy!kj9Tca|D~>H z!F7*u&BY4-vzM-mY8&tNa96M{HK#|%FLVSan{0P41W?NEOwx7;D z_|YYt@)e!zGvz%5*E+WHwifVUT1ke`?oMmd6VLT#PH=g@|kXFOk1fS8^oASn#50K0PT!{$NPr z5sMZCz|cUkseXn~NOSnbsEmIfW4}s1G&E?;ySFLbC^t}j*6VuZT~PyD5PRP<8-=3! z!7qduS(yA1B!cKIXAVK4#0>wH+|994!c4&+0IK?x+}Jo5LWGFXX(IxK3ISvc6aC^o zjx$B_1?lSZQvzHeglS)BJTSrS@P1`Ihv*I-D|r(^sD?0r>-S@*{^Gt60Jr<`Ge7}q z-~$RUK>pyp;3qP`soBTyas8>G(boy%^$E16>5u%yi6Fl07 zzn0$*D&F}mZK&)r;rqSP6aw1TSbPZtf{9;KaAz3rE$iiy2pa$MHcJQ~{*UytWS#u5 z@pw>!5JQeXxA&XK>y+rz13_A0gxAl(O7-Xc#d>*&+t6Law(*9HSz`F0cnNR#i~l@m z!EA`04TiXJ3GuF7@lABM`}`BWZ-*D(`E(ANzulYIW4IwA0u_Iim)4uW%e^CNEhM-h zhMzk-do1ZM*2|-z7=aqHX($ijAL(aR4evLK;JZI9d|;3T%@|x8EgYtkHU`7_;z#4& zQuE4evt>8WAK7oxzr&Bl%%XMk!jg*0R`W3}>(^?Q*hr2383Es*mz-q& z5!Zj0|K~HgrWOkfYI5)`d)HXZ(4PnsKMrn%Sj5;cNQ{9$4ioSX`Q^2W=f*PgJ^d=q zciu10!hL#9+E}o)=Zjj&LA}ReB!WvWuRrHEcj=%q?e()v>MmRVAY1>BnqFQRZ@gJ8 z=2WC%j*!9bP|=#|0Zvqpw{Uwi$z~9>>&6 z5`haEwg^UAg7+H_4J~!Mb#u9^FYsi*4I<6GGofQOp{S*O64%x^DI(v*_>D+%8A{ z$l|YjVxCjf=@*gNE@revMvl>i{UviBlbYH-2N_HUW9SPFxAaH3XCX{Rc!MVTx6~EB zJzUH4OyAcd z#KezMKhN&tD`%TUue$AZ5-qvu@*%NlB|0?-%_Bz-)Uir3i zhPR7^oxHC(3``9CDU22|#!EFs0?<92RDMpHe-(JyaW@>_{;|Dn_R8DVAO$;adyB(K zTJe5PZ&6tLZ^AEcBkAUKERS9pS!{&8ny&ld*Rk{d*8uY5Rylin!!Iuv8XYP_lrj2% za{<6erRXb%a?TiTh2kWt^%d6j%r#G1vfq%sUrTJ$GrelxaH z{&u=ZODV4fu!3 zm6`5!&GsKGX9JX_6<6qxI@||e^rCZTp*+D7q`3?;VG2oeI1C8c=HN#Ki^FsZa$!!2Zg+vUa-`+S-5n+&m$rvkJUwv&Lv~*z7#b}G zSH<3u+S0-p_#7-7WwxX&8;$0S;w_t?Z8RVB);UN-FKcsWu1zut+$S+q@ps?h9B4xH z>AW9?sH6+cE+O*+&mRm^NCOPhkcA_CVa$TF_uxpznC`#7ckJ55M`EW}n<8fNmQKzi zy`si+O(jv!hY)9@kz~MV6E&FKe)iUtDLCM#fg9OIpfQzc4y(cWbe%LQ-sw*{B4(w3 ztXH3WGBxk-!qlc)h=EMf8{zBK2OMF|){B7kZ8{(8TNy`A>}ubBY!v}=shIs4k_Ua{ zDP4|S*j#Re$9FdS{I!lQL|G*rFU;Irkf#v)Lj*|*ncApR*kI=!5LL>R$IXnY4F|3D zr5LFoLn+JhLs3n#UOLPn%%g^8uJx}?b*+AqoOL^+o8JPa0?cpqA4A$I%#p}~YARAH z!*q^*nx!X}>51$Ydi7Pn9yB9M3UyDS;E*-Am_rk{H1&J^pj)P;VsWMr5;5!yw~ucj zY0kz5?KlKND2bxR0UC@rj{+jBE^ zZ}p~|P2j?JKYosS9dijVc@bByUu8T5$+DUi$l7x+Gjt_2jTKrXPppHIh~Obwg)uTA z-~yd)D~BD)U##@b=Xp8lO-fnSVny(BV*)+BF4&lZQU=J2G`s^%ODmI_yMY~TAIj6NcHqTC@LNVMiPS7V=zfQ7o ze2>&i9o@`ig>ah(##X@5-~bbvLCk*v!vK;u>iGDtlZWLWlSj_Z+Cb6B0iZ$qickTx zN=7aYZ#eT6bqf6X6#VlkuJty(tY2Z}FOVZb4`BThPl_-C*nX2t0QTP`^DDyqgMPz4 zztQaH~3cEOnDmuKP(LY2*6<L?eH$?lZCxWj6 ze?r^0{I~cUJHD}hfk+KnaVtY37b8Q!D_nCjGcZyR6?p9c{jYXkf7tH=zZiev^552k zUr|t8oQ?UvAm48U{R%SQn)?k|?d%w=?d{oQy#DCIZ}xvx{;zh6h4~Gt{%+}i1H%K9 z#;jiLRy)=?FO^$~(jpwOhV80Bw&^kicwUAdu4!oFqC^3og44~d7SA@D@Rwd6qE2ID zlVC5!NfTAPO8nOaXSNZ$+~aric+}QFth88=yEL3L51;p+2rHQ2{D(Bw3RTPG~Vu#^IoQq97M4den5X4}`^+Ba3%*%7D z6?G75)%qPAgsc*oDR5@#fEO5vd2wKk`Z2^1-ans%z zf{T-sDCy_&VK)vYM_U|WUwLz7@Q;(F5L!^WV;;hd_kq$0<(DD8 zy;bKnVJJ+j83&~o{$A4^46Ap(ah7BkL>BoFu}@k3T*o|-;4+@&BHhL%TC=wzcf^n&Y@C+=EhpZ1&U zYuq$D3O=J&pzq{F?hB0x%qPY**z5_EOiJIr&!p^%+9BMA0%6s6bzudC)jENLvtqF><7JkiCva3zp&jqU^OO#dNzfd}JZex1gRN z&DQ2r{*R5Q6@r(jPcuOrKodv+apTK>NxrfD?cLS-K+&MoO{aiR@jU>&T?p z(&SB4bU#5I3NXcWKjFR{d%@BHL712f{Hs-=|390R|7Jf}0QCQ5Kv)6v|7Ahg0Q7&F zkhiHt`+u+o|CsIn+*JE>k}}fKz3uM&2NP^gb;WLF7}?V~@del#xU?5~H_Ej@d`%N2 zmsre1tCWk5!IJTFxH<9J?$xY)pCbgNt3lYzLK=}zDu4Fr?A~?T{0i#}+k0pkmF)G- z9-@)&ymv8RI~3%05p1iio)09lo!#-I?_@f;+C3RZmHuY! zwXW2*V)#`3bYhJ;NaQ(8LL^PY;=Invin!FJa&{9tgCnlX%~-T-9iS`ZLI5tx-ayJK zdT+q;(mC?6Rr-{dwCCo*$Ndh6NtgIecC~m5F1BF~mEaG!>Hf5jHLMNUdS%C9~UmK8N`Y@xE zc38$oqJy;e*xuj)WdWqjknV6NJDo`3_W9w*!`h7cljoQ8!HpWm#ndOiGCn<(Yaa75 zXefHC$g=R!QxTa7grlL9z?Q(EqX>hL<{^c!1SY_)vv_=E8xxDw?v`QF$~FlQu+__| ztnK|qjvm^fHtCziz#OgAgQAF5GwB-6`y)U;;7Xt`5*FJhovm3_uNl*C zBG548if2`|q{qr^|I>G-4H^kh6W2Wa=<`NCu%;$%Lpe_HZzYG&W5~&b8w!x8R1h={ zwD?d+dBDkEQHnL`1y2qi$s(J?WUs3f^0Um_*XAk6qZ!9%3K+gRaEP@|R?}E69P3)O z9+Ecx4D=-W_!I!E_%uP;xMQV*NgpE#$(|GfGLav{2zf6LXQ$tFu4r#&)fQS|A9EY8>xvGZSL-?2lk5z+)%ZbPX}gwM^c$T#t;AWOoSoce=>2pc zaqc;kQer?WVM#1`GpI5v{9UU^av|fEE;xl`D9aZ0vvZKSlY-pv`fNl#79^zViM`g|^0I9S z^Q(ZuuR2ZHo$D6f{`wM?)+~tUB`>m0x?gVwrgS%0ziLFz;7W`w0dhDn;&R^AB5!$^ z`l4+L^t)kHFuRU}*n$%c8Vt}m8q2Bs(+b?E)=7KOGdlQZK6WLsJcfkomCo{#@m|nJ=lRQ$j zMx{M~m6_(Vk+QmZ#PVEUtal?XUf^c_M>AH8h_jcm7q41#2~;|lfB7a) z5A|&iaa>+&Bu(jSI38d6*ZjJzcn(neWvlMeI+bSFyv-r5f_mKe6ME|3_t;Y@ zcvHJ3iCNuACTBiW#&qWJhC@dK!tnu~H9pE;|{t$(kA6u zlY=1xUe>OsS-_uH%za((wWe->7CG~3-YqD6to?KvI28v@ka=sd6v|CZ z@xw&FP&dy^>1*pqIvv2U{#~uxwpuXbAUulCC;VVc4U8$f4BzZ8--cRq#D0Rc+qvh9 z{iH)__x@%-tGZpNlqRjM_*3(TQhbLWJhpf|k9BRdegL5l*sz|v{>{O|O|9lfe~ky( zzMd;Usb4A_i+dm=S;C0!?eLzl+`AA*7IvTkK_1Tf5rhyN$~;1(GS5L%rx2lpbh4_M z9aj-dAVDw}V1T0GYER(^Gi+Z8(B!-Jr$xjYfv5rt>&vv^?E|69AQ|=ReCRD2y&{7( zBpw$7xTASITHrDDpKf#tR&EM)Xg-La;RuCSqPdel!=z_4O+qIH`8kYw5lvCS3*;0z zv$)D9sef8XUD);$L7S+zN!5-p;waK}4vMV1mS6?m!4ika7aRFOgPcXt4-x#7V`9eQ zs?3Em<1k()mfUtPc3KP)PwA<_jB}GsZ|t{FkIQSgq2F#d5RK!dM4%7>^pT4{nQW2l zgB^U~hUJM)FB@!wZ1H-DtdD?fWkseoW~0`}m8)z9P&xDGHi?$($HFVb*@0uIVh-6- z#>fPwt95qGRHwb})D{)xpL!Tz^h~$exXqEF*Cw11Vv`2(I8~%=W)b!PaI_#MW-`pR z@wjQ6ttU@cHA}< zdI$kE1qtL`K?wC@I3Cip@LfFrgpT;fT9&Q_+v^O?dKorDW%a1rBX{P%<$kl`6|QZS3ibtYF&vQ*oO!_|i@9EyXMB31$1| z{oUrvY^v&8SJ$j^6(={Rz&uWvl4oZ!6SqSTv_B_z-!B4wyzhzx(#F~oF2Ho~&ulh< z#79BjB$sk}@5cUeSK%Rz3RX>IM*93#{QE%9&%N6QL$ zZ`S~6Sv1RwJ)HyCcKsf}6>dH4Z=2hedJ{D}fnbly54>*B?u!ifNn!iZ%pXR|l-x+~ zy?*Mcn~n5%e!U~`^?Mo{5X+$v<6w#c&(pmj7?fWaw6$35!w$niEQ(9jh83FR$H~o~ z`f5dyx*tkw>Xbt|{llrMF#Z?gQYI79BkoeGHK?HTG4jPg*kCb;>I9Wv_)Fx7YyDslH*3u20~(U zM`O#;QO3}v0wvk8pN$Ow(qxk3)1TeFCOUPfpWxPLzSFTa10{n8C-o?b%jB*%G;v0h zwk@m-RH$G=)RnZ&*}WTwJE}r7fq>&}*F37}O291F zZR^p%Q_(5tZwn?-$Yk<#?wLY()nl*{CFqdd{N2Ru3QrIx^eaG0azYbJeng-+iPK*CQ00h?AS}3n7-KnqNEt#=tRVfY76qj%Q%fNzAt(c4nrCDc zWiTK!B5+~x6G<|MqD2QfGJv`KS2V)#U%>y@4#B@|a{RxKMwotYKK$y#?=1uR|8$#j zPF31^l?ADTw)%y?Ndb}`+v}=Xt?C4RQ)`Hl6d?jPfzywI3TjiGtX~E<^Mj!Sx(%zF53hey6n_)pFUAzKuA>d`>0&K>Ogx7 zJ;LJl`-9edIojlg{vu; zvJKtFcjk+7^x#koPzGR#U8zJa$#1~Y7_N|7fHbQNG=Jvqa5=?sWqlOQs@XnYyhzBO zxhl3Jun4DUBm-u2%pvGRclEF=b|NVe!>Oe9hact1o+d0QMlt9!7@#NBl$W)b@$A{P znL{3GVw6_oj9S~u%_?{EtEIpcINXbJykp2N^xCHL^yY!NUqp_I$ifPEjYW!5*ndBn>l4b9>)IrU~ttejU7SQP&;UJMYn2C6Hhr$g8}^ z?neNy$b%DfJV=mzxb8%tuD}@ffV=jTWG6^Mp+cm;Cu;g+6c;W(xC50QCSNOp80W09 zi~F7@qbh`eTs{M+8wSnn&Vl2|fXBK_R22IIqh}lFbxr5Qz2Zz3sAEZ)K>ClH(td0q zDz#zJp!;F5JLi+8FF&yjDE(`RvWNK#p`>PSgL64)tQRiqe87<^VR6bHEUwJl`Rts* z-qCFz4wR6`|$yDb4y2MFHL5lorF55!Qyp(yDzXs@7<|6@|$HjMt-o&D3KGB7eT|7ROK1#cTXY$$(h@JOD1jBtq+o0v5= zc4~~nnX*VsT!ys9B}1u=Io|{-c=z&@Wd(#rJj9&7To4vyW9g91<9R;&ST;!I$e#Sqp}BG_n1x3 zd!=tBDjswSFT@dBM0DQ?p!+SCB8?1sqgQSn48KQH9mfW8GU!y~Q8|jvJo94*uE^FC zIY}nTcS_V4KfsCvVo??LP>rntQj^X}ZhN|Vm2>)tVjgPazJ+`}%_MbI`bcQZ3cor} zBO{expMtaBfwG6S_YQe*j1N=37wm#Za|4|@`>yE|9#*J`WVTgKC;v_6{;fWnT=ss0 zn-3o7{1;vSo5hPu5O$Bv2;Fc+=acNd0gk)x!EMe>$x*WTj?cXo80JcxEb*9v>#W)H zHiS`-%DGp7D5l-sX0h60q;NKYyTW`@NDD5iPxnOW&+-d-0q8;%_2m%qH<__IB1_6~ zR%M@KKUX5m=|s=_EQvB>D~Wm`9WyKHp|13UJdYWmPl_?ZWVNM5u4+7)1w2fGHdUkQ z(7yy6imrJR_@DI&BcpAq4=~XJ!p?%5BsY_%*b)Y`}EesF_th zZ3-Agw(ZXRdAP9DDkjY?z{zk06A>;*@y3f#kF`xsvkdV|J-(4MvU80nKonTXeOqET5Lx$&AFO{YNF1PoDsx4x15)q{-D@6 zTqrq`-RZp1O0TZ>N+sSg_$`b!4{%Hm`~Aq8XV&X_Y&kzPYWlk5UG^6SZU#|@$D-bk z>nB*RuDv!g)D*;8U1Kb-hKi<_L{B_sYK8#iPY(D}g%AR_*oEk~gQO_VNkFw54#_7v zm=yQq_>=9R>T%xbHvVw~>B+h_XG!8G0sA#b?Qsk5bn*K4nlxrj~-~Vx+4<4PT@>Bv)ee8BTB0 zo5p0I>4Hu?DDkV5%tMU5uaE+68VAHrs{Jd&n>fd=Q!|Jgj6QD8_vCZ(S7-L}bw%$h z*S8#f>@@q`7!Cr>NQ%tka^F7O^w1k;E(ocy%ZO!Lrg zNRo)95knHge^r!?%JT`t`3QAp@{%%KHphIWhEN9IM?K)G$6Yr%w8PN_;xmwgF)vHf z+%dkW%R*z8ZVR@tLhgE3cT1v9NpP>)u~h%X_OOGV1+u;|2QdFOOTV)8N^kpaD30&cJsd!Lc<3np=$K17GiGzj$U5Jj}FWP?j!lh(rf zFAQ7B(5!J>(dXwQ3^NOlY|xvq?;P)AM&bg96&{MrTxix*c`i!@#Z{3ky2p_Z*F=`y zKl-1FRyI7b(J5!tfffqfI^%*ebt6`zfXs%9hn4S zeg?XvuY12^sek1Z+8&u})(F|&Wf)u@vpcX-62ejxcCubY8$NC9S;DRO(rr*B$F`ES zljNh6LNM_Gzm7O*TlHjJMqJ54+uf6BR$5j@zrmJp6cbMnhb{nvH&Rv(i%1Mg?couN zP3*@>%eo+08~h}*#S7T3X&U1fR^=>LGaM#u)BL2^yLaT%itP9$xjyKH?acvwmz;dZTHa?ORYMISmpE3$isULkb zZjDS#iDVv7GAnk7Tt|$vV&En^3wttw9lC7Kidkr*2}z;M2^dSeCc&vJcM99~GsgK{n1! z`;BjQZ!3K8WaFTds8DEAJ8`Ni$`LY4M@2kdk5GXxM8%(If(+F)O*rdxfY2&95*LCA zSmkFER%>7v>zQt^x0Z&EQheZbAA^QBmxI0IwvBz7^tM=9Z=%y6v-LFE!Wgm*7)3IX z8$5?Y69C@U(doI)ZcLsZr6E^AMq(;c#v03)?1}Wi8E7Fx;We`bp;AvJU3C7Qm$NNN zUV(}R`Q;|5WxvIbPUZT05 z5#)n;=YjDqFtce4^DiXeP!+^=r+?xTIrr+Ve${Z*IM=0?5O!oYyq)EuZ`Jy=kiX2Q zGfkT%$jRSAAKZF?)MV)6fh`6qs|!qJ{LbP`DqWGrT>)cU3m?#bVs(OqSC8E>xf@K($aN$ceV z0b6NhXY+_wi4uFoqTiSCguZ;7e<7Z%<*L1)i0%zq^5@AzzDQDp>$8cYWfFfMNX@*i&2nxG}Xhoo-wXY01HA{jgE0tWCV) zH-eSrN!WitiPTL(Sqe3Y}?L#IF z``{%N+;!&~RcBfavRe?#e(qf+YY;B^#p875^o5fxX~FSscJ`T;s~!*1N{$w9q3)|< z%_zz_(@zrVTAPOamav`>^Qr@q&0SqsbfWaNKJaoh@hnc!^=|w!E^My%j|yiG1WT=f zbVFX@S6YUUjuQP{lRy+Ra+<- zO1(GXrZLk#mRAR#`I-H~f0H%)X@WJ}1XwqOnsyKYAkJB^Y9C#5CyIuZnza8PoKE*>-{ObkQ)qz|a5>Ip3FBRTym2^r9;U z`1Y>ERL=C#sIkCGFyTuXV?}JkCMFZfk9zHog67J{Kckz23LO{SqV*n|)rl<}AvK?$@4epu?!E^GuU6-o|4Q2Ru@I9tj2!KDwp)e9)s5$yY@d0;_L&7 z;PEi@Aahr_(N(KbaSgKxTCw8VDx8-ha|e$t)b`Oj=Y`0_aZ4zT`UY1?Xvpnj7)IXj zg8`Y4>3@0x;83PCH=5!DLLcU~01ofZWhEW@kkyR7+I5q34I>MM4Y&6p5Byx9h(i>v zI{Y;BtBpH>?{_jt{2m()h>EY>Uq@rbY&QKA{n&+2v%1?6S{?|D>O=3)RFUGURacOl z3(%N*&`p_;=rN@!yF0_pXknCpmg&e-(t&=tD&wiu~XW)x>tPra9*T?{T| zVqG7pc-xomb1J0Tw4;+QH%J6V!=xe-hXJfEqq_$+A2Pnn_db!#MAeduV{oW=^iP_G zW$C;=n8t~Qk*C)=^8OmWU3KWmGBNMgU>>hgha-I<&aoVxWYV_^Pz9j4HAHCH&Ll?H zYqsd4yG?Dj=^}#a8`y~ zO|q@nc=mUxFGKQU;6aYsfvJqW8_g$6T;Izes!cK9+XTXX!3cj}EW}gNKmIhY1QGcI zg1lUK9RK40kVvJe!1~7;JZ@K$SXO84Suhy?y;wx35rxfYoVk^3rg<)c>NE#hAD;I3 z*7<}>y@B{P4Nd-z&36Gv6c`OrXfY``@(zOFKp;Uc#D;-5vOHwk%ph8}3V|0Xf(q{% zb2E@7-!Fs45u~iN$8ZHOs?kTIG$a_`)Wh7*y;Qb0u+OQg*tLimf-nXGIT%+AT{m$V)OV zuGj!MFrR_D9lT+X&Rn9Gyyn)X6ap-_ZD4jR`t%e8`H9-pAK-8*XKskVPOURy{c#he-;uGFvC>^xyZoI)OYK{4mNDjh?fhF#d^~XQ5D$ zywk|T$T5=3(|XKBBpSZWji#AMYc1gbI$t`sX~(=?995exCX%kK zwewuV0(UKZ2%?1bv7>LLxHMFx9-xqO%?k9vi4qWZ@oFx?O##+ou5Dhwby4;$5uU@+ zl>s17O((IA$K6;t^^Idv1m}Kzh&4SqbrPT8AOG~Y zs#x8IsmtYgE+zA&kbf`FBQs%u5dCwHFym15+^6#eal5Gjb1X8jpsOf5+mPLwCWrDW z%p{4ux$XIAAa63X6M&x=H4fsJBb1?2eCVRAfIV!O5}=O_j)p8)ddp=yrds*}0j_;r zc+)iAY{jo2q`zZ$?>2>u>#!#seg2E02hin=An9g=Z6YXBsoJv3gTM}#pZRQK*xJy2 zvodN?m=EvSU{9NU;r*T42Vgt-Q+P7@=C&yg=mKW8nPrHX(WYBpn2H!2KTVvB>!p|3 z6`DSclz8CqXK4F&$#4pC7DQKkA|>7-*Qgj9Oz2h!!7k8uyWUx4R>o=rUho^pe<2LJYT%73cG-T z3=HUR|8-@}_h9o(;yyH1qL zv$UpkUeSJ;;I4jkO;lyxq4&$10}=2yR2G=6ak4+Mc_aBF-0`^7b% z_%k8`C$rn}U6dbgZpG-tl;9ER%9_wuu#@ur$=DEFJ0SGLhm99h$T5 zj~1T_V|v1DQKh7L%xRU~<>n`ke&XqWg0$r{R7+65wT#)ch>}kM7fgY;F6(s(kJgcj zxZyK+(bVOmjob#B@cOKF`OcuPDrC$iS=%7GElwq!bD%580`8~SmIBTT)U0KW$PeL; zFC?j7D%{GLJ2cvq`zVbIg5xth%2;gC)*o^P?d5RL##4eh?bw3)+W6kxDF)l})lqxd zf~e7l6-tFf&+>IhQFn})bmxkA<~8AJ4dZEQj|2*mhK4?%r^+lri(*ze%wUv)u`Y_;?>MM2j^`z3e0PK0iYgPD zaOuoq;f1gP*}#OE0DDY=2+Uv#Gm1kRMIyz_AR+m5sQ~|Obr?(8GaI9vq!n% zg!g@Qpy0@J565*GOG1k8485HUJ1ct4itt1K&}l4vJu2KlL@o{;n3SB-$cOfM;t7O^ zTP-;dtPtlutb`#XnFu{W?=a%ZyBozJ3^QcZ4Rpz3fNvxh7vy%3<6Ne5UlxtcF^sYt zii0T9qFQO!8B@fHPfI-Ru8*a$ajt}{MSoUbh&d`T;{G(0NfT3VK84fCO_H639sw*h?>bFE|-l1T@!XUm!>5M=MGwHr&W0{wtUts*rQZ`5C&N~?kXumgL@I=yeQT?El|(P z)Zv&=wWR!wY75;<7Ml?CbH?exRCvI*6$AX>gfD|ahshk)se*xgz8}afIE+^!KL9rX zh}1vKyVD6B?w#w3$8(b(Rx+xWtMj6Fj&B=~aPNwmFK5VYjj{)QjIdUo*S=rP97T8N zOEkI9(xJF?x~Vab@Ywdt2|Ikq6&%I|@f_8nmz1q0hSY9RKT;Z*F$~Cg(aBR&)OoM7 zw+HXas3eAn@9nYfA)a4OCb~JhC+OAN=sP@!0<8a0>1n^@hP{3%otM1DoH~w0|J6O* zx8D<+zr%joFS-SFatty6%Po6UxlL**`OR|cUh4O^oZs>eB=-eYS&z z_`1MEbFk~%hkgg?Mi&$`fv!C{w#@CGeIS!L`|dEIZGZhf{ndxAymiY%Q@B7XAzwo5 zKyTXO_`(1lV)Tl~yfnG6Z51BuRNcjCzDuK+Os*A_9pF>}ouuK=M<0q>#{_2+w{p3U zk0?D$@eVzP4zyq{wiN3@@r!jBgsXHO;_4p{^8oxF+f_hb{)EVuk*h9bacCkq%3pA- zjYAlZw!tYOQhR(qyK4LNp_6>gwzWJt(~FaX(?{3GuaX-bQ5s-6yu!YfFQDeMzX2=K z?4L;WkLZ!m(IaRTIGt?hVlh~g9`9_J``S!Z*U2b?hjn3mT!5(g&1|p>_lUBXc+8BPcd_2g2NT}WeEUkZ+=3Jf3oRO%L^r2tBF=U7DVYLg%;X@ft~0p zcZ(#1TMT{6!x~M6D~>Sns&ToIw)Ot(e>a_%#xS-9yUO4~l!#)xqp(Lz7o1;5msaK5 zHozR?78JhnaY}kq0hQEr_2IUI{SJ)(hgvobn9YaJw^xz)j)@@(2M<<&&}%Gc#uySu zSa+RRna-M6@mkYt&uPv0#lT$&V5%uHRxxMa?$C+if&r=1>EWlEi)6&B;&yWGPiBlN zfN8=0^t`qfmBN@&=}JscNfF6hMmQq}L!nL%wVo(=-JWPu&$GPU*aVo*UhsI$_5}gL zhsR;YE;wKX+tPisa9lhxkKG2_nLneMk{~n48yY`BL=r=fbur0OQ#o$;Ft&`Z*t<0y z>r?Vpuc!!3T@z)T^kRGo)`CJ`*S?fEUTVvf5#4736r`|Cf`;2|8XMY`7Vq%Yk`>3} zXNy-%4J{Y?-OXO+D7uG35RPE1jtrGHwH2y-*x2HH?_4Vrbz{kK^Xc%5@I@vHS_mAT z5p=(Zb7m4+tE0B3zbWgbo#M_O47WW`gz5xjkuKx)N2M8+k^LAxwNi)ZY=1Y7P)SU| zUC9`s?>xg9q2s9`ahYYBMEo%GOY0)R!E2f&V`IJ@$IpY(6KIagGUI4R649s^G`5wW z+f1#su0RHYj-3TK_hUkXFe6hEmP@IZr9w)eLaicM2pRp``8gpck{Lv}-#5=27Kk1E z*sniL`UwH%L`K~t1OC5?P_dHrKcQ*c3^V2%g-VvHMG@zLx4^QKmw+MF54qtL`z!fxBJR})l%fiNg zCQ8!5&oe9)lSy*6HyPq<###XthnWSAueya|0Mzm3PZw^LW>o{dz67pb6~wG%CY|Bi zMeALnwhU1F*^&1KV&^EJcQ?+&w>016yoacuPoVnIHz@kaVJ~lZ$PF}Wo1}M>Nfe`e zKfP}Y&$40WN`q%zdygXSv(bjUC~q%fzxf!NCW*y&_;xDNR`te4)TyQ1n;)g4dMfVq zI6FNJM5EvE)3|r~PJ@n@ zs#3Lc{R}%HaJ68NWOIZ=li|FLr6R@V-~~Dw^bo=$d2|f#Y}p|XHegEfmH|DAS#^El zffosgZBb#LI10UOE5%;5NRjXBXAKRv`!aKK&7!cO8I~y5{K;0gx*jYS^s&t4lkb49 z#iyk=ZVTt`1rpwyGPMy@4|by(Yn;Zmq4WtT#>9p#UjlJE!W@Wqs!~UylM~D2K-%cB z4Zxb~+dPm@@&%8>_q!aDC1F75k%VsjoQIwGga;DctvA4XF^FPt1@i5^9+L4G%G5{{ zwMx7kOYYsQ`Ex#mcUOj)`HXu{xTo-U3nchXVP0b)rLON3S0bgYS?x%*Q4kY*C4Yv( zxp%lG4=fP&6}on$1m$c4B#)GI6ngM8<7lk0WzOEKL-x~P{opBPcIV)$X^9EdtvC(# zMyT{kAu3@u`g#XbVQd`1$L(mT$)%E&F^U?3(svfwxa20S7z@3yMLOv~?2zgPd)2J2 zOo)%1hesyhWA%A{7{Mp zUmie}y#Ha35tuXLu_med>Pih?0)P5TE}`1q{V}UKBz*K?!GduBdes^vjnM!XEd_+^ zCyvsNJ?~}FR=dP1G&v=s4!cmIB%qC^@2Oc)_k@@h!vtLe zIC0Shuq{;SSZV}ohXUU#N70nfU21fLa7hoHEPziOE?wd>BBE3+d`xA~FgiZ)C)?|y znuY#Af)rKEw*;y8FB@9gimIZ+VG))yQ6xEg*JDUB#qXMJMZ~4|=`h|_x(GE!z@U+^ z$GsM9N-2L9g@-tBIr{7;L3&dteLnOqTH>HB`S;ZEid0j~{ByQ?Hb4n1nxJ{cx7BdI zt6g6yN3*$yEIkiEQSM?&TkwRAcK*5){Q^FGxfVgKqtkex=vT4eS|WCHZ|Y;-s+QS~ zK?X7t)O$V;{2JYNOc5M#jkiV;SMa=aZ?|@Z`>?S8eRJT=5%z!OcKf@7?SFo!j_KbW zY3y_?|JhW?P?faaW8A72~!~Us{7^7zR^Y?72DtmOl_^VCzJhG-{|lRDMr;&*xh&_{@mW8{t*%^+<@HeLXs3NiAp5J~*ogZqvhUhWZp<06D$p+BE|p01@Gyjk{@pH#M*$nQ2xhI>LCtAi+c$_0FC z-%HL*Z(la#JxuoEXkJJA@iNOQWSV%9p1`%jTJ;^JZCXW`?kG{FIy*We2F8Ah3N$Sa zS>Mf;JoOF}$pAx*Jerpu7-Yf91Xwx}49OQr1!4Axa!2}Qfcl6FZX_%0?Ai~g;iV*L zQo+@SVE%sghK zA*8|}3D8!5;?SeY3Z=Cm(m8cvibd&xX#|ATJsI3GO|EaY<#^RweRAcy-uvwiOr?{#O}ZV zALC*$y0s0`JDOiYKWv*O4%b>vL71w~klH}tMuk)+RLRmgS>_|#!sHwHYhamY(yLbi z=O}B3aj99zq)ZY zo~_&*Km_iR_0W3(NC9xi2ygb*4dukpYAinx(KIg~s_x2NkUF*tZRW}cq<5((5Tx#d z@`ddwdf3^U$-UqZ@URLDUh%om#e#NX|A!K{kF^HZh0e9bRi*NhsEm-`t``W^=lkkJ zLA1|1V&SP}*QgrSte`v}Dz9?;gpTC>R{<5U;-5MlKshP%NvPk_!O^+ywK`Rksn(Tb z9+#O>_Nu}y!IDcyj^L^ixjm{Q`}1#?w1_{NlMTyO=8AL&gXZz~@JG4=q#%Vu>2dlV zcP^o~Ul(*DU=HZO-4~|E`!0Et^DyDgtU{K|Tg?VdFuo&u*j~mHjJZER>GRk^ZQ>yV z8_bZOFW`a@Jr0I|f89k;jD_L=c}|}~9(~e)7}g(_Zp?D%X&Z?A4h2QB5egVO(I2K^ z(j%~4{^mgVq7z-`HJ$@>XuTB$Wub}FS0{Fjzhrx=-+WRNt2k3>p&!3Be|rq8f<0R4 zON~~bJumF*~W>_&~={Y)Z`7f3&p3gjru3L7cJ;j`cDr7LNgg0(!!B z*A9+HSWP(ayot)}-Ceppv&+=lqw2|G#A%Ck_Lnr@QsV-^oV0+H3PG# zcCdtxvz9b1X)Sk>S$V;VY*^V=2agazaS47`7sIjLWuNPrarb8j&0*c7iaCIMOVDEE z_wuT+mNKNk0u4E$OpKhZ{85-s!KHZEofKok*~^T!$W{DpUX(mS?Qfza)68gdMDhK` z*L!agtcVf|PzjTgkP;DU8+L-YSJ0(-IT!UCy9hiWV81~=x^zhz7fINKF?kY1#I81l z*HaS3$O*^1d#u>r9S-VKtt+R}R&7rc*5tZefc>b6Ce?#x?Y6r>DZRmoL~Y27ObaDnFQXf z?jFnNuu+9h7v70FuX?97Hwiu1J6oe4cI0Y1TOb?OuA2InirenyF)v$dGGuW_6$?|LcP{~zzw-XV<4pBNgXCurP* zka3{$vLlMGGomQRz_Q0vDPfSRc)W$!%T8f>nt<3T&ObLkO17z*h5?SEIK5Zs@v(h;JHvyNC8m(ZfUOBW1oUh5{9ZF5g z2Wg_g1s9qpsL#6?N^G@z^to_Xk5cKiS<24MwxIAx#O&^<;T4_ll0@W&kb&I;u!rIj z@25ZBmxOSe3Y1|VT1rBaLf19xKqMT=#aFU;FOdY2;;_#2CBSI5=O<&s&C!(6QF5h% z0N$Xnj4_W^JkHt=M!GaBUfN?6D4*yK{;zuDLV<8>EC7Szlx#Pcgr=S66AD{g!?5;Q zIo`SvGcm=}Ze9Pmah6nqAk;xnv&G3{1RZ%sb6b9&m;rvaI9Qy+LNF+(CGw1eM?U?s z9uIC{6(Bv6HWUPGJBULW!-{ygq^D(TcOaOMLjd>*3RZtgvHs#pPIzZ}VD&kk@RmV5 zApv`7Fh1`SBjc>S&}>|;+ompJZY>N(^k$F$j%f~Q!}@k(fmy2#ce9zhzr~f7vGbyJ zwbg0PB_yl-T;K=Cy;RU1@;GKMZU2kSZs~2anbm(qbqBt&oFV{SeO93BqTM)(`Z^u6 zWapeTTTmu=7Yz--B_#Cf;IIF(<6lx9&u~7P{?}tXNpnOtHlli5<6(eqd6w zbDvSH7XOckkxJX@*X?@bDYlEaQPxOFUOJ*z5t*3+>G05`f*!x)&i~?8i0$ zA`_S&x*CSTGhn1=O;b+`uiN>3*<{qudx70efe0C5O8sytWwnMCvj_lJXz~&3#3C1# zr*%8rs=VPBaH>la96?*|d!>*@)$r0Qmoyq1*`T`|QQ?jpk){oaH6gL&DWJhC1KSUK z#gm?}tLGTaKJ#}ysp@@jL4Sv->{obhp+XX1B8SJ)$h;VQ24E2+hYrD4Uwv*c!aJgH z+n5GB-4DI0UgQPUwQ(9T1-|Px71gWC(;Q*gyba+-RO1DHP$@0pqpFgJF4o_rT2M|6 zAJ(UMtL?2^aBw&EdhHkO4VxcEOil;Mc+}NhAA17Kg`|H|RGbe%_h-z>+GDI+3kjan z^IdK+fXJpoD_XMG?-1^zQ{KYCuj6TAAw>K51t+5k>AC9=;1f*7WeEOchAiV8#X>oa z0XuT*-=O#J7*ik%LCW+OfV&*Bo?`g@4OO-KTq4#t28FaRD#i1@?$_vGPZM6!j>w zmVe#>{FjM?gYDlOuB-n_^NL0hyWK^8!aFc=Y8n6n2j5vP)IErB+&m5!n&2T)!`1UkPmYiLm8E+4_`OfzGo#fX9KBISt)YGIn&Us%PQz_P zlrb#v@Y}ATYrK`oBYqVA`o*T*z11%QiEQ@x{Q1bqp%&yzV>d*;R_AXq_d^v^$T7P| z2Dhpo^{lnX^?7nf9L1xNsNE9j>0~gnbFhk+vHoCH0lti~NB4?Gwh{2B;+vWq(j)u^ zeTg~8sM*W-s=45XR~a46uFy8$)VapdFQJn4SBGBeZQ!%Dm(%g1BUywp-jMk93LBTrKCt|Y4f5S7 z1F}50B~N)j?1^bnCfL&W-fb6_3`7u1w~leI-D$Uv3i^Xc>fn$8+v+K|>HcK{z(!;{Zx&YX%V6pj zv{w|nhJ2WV{QkgzK1^_RpT#|}&-KP6u+U|h{rsVJ!N+umWN=Z+w7ynJg#(I4IGHXQ z7!zGJARAlx(g%X1T!%f{;(@bOh!oI8ed zk>F@{E%@Gshmp)ZjlRo?Pm(DOW(l=6-oLApv+hV(lNCYgn>If@ z-bW6i3X~F36AFTUJg_ws*W&PzyqD8%u1#vDenV}T`n0n5V|+H|%?dO2&S>^k8T52M z|FH-!vH|gi)f?EMYnF27+3qP?TJPHGmVV{)GXGfrJTEc8*YG(~de_!g`(t&~GnBcN z!ecBHy>~a26ry0F+T8r6x>Sg}bFx#iE?J=k@SZszHFR`y;Wf-iw$hPj{ov+}Vmw-7 zub-{oX_iIKqYYc-4c{xm?{kmt>m!~o-uY5!W9z3n2Fx*YTeI6EZF$CbBH5jEXPq3v z?B)b&uGZ4cZ(VY%ohM$!(a837;HY(xR{Yl^m=YnDu`p>P#VlOx0hfMOLrGGH2N?ps z1J-KhVyIble*v9x!;CsLZvfGW`m~gi1vO4d+uuo5eS#5x^mA{ys>og<5qvIA6) zc+D-5AC$~u`h_~lL{Tc$#+ss%zn!WVpD2MnKvxwhxG*(SMs0RA0q7v%O6gbiipMsyID~8c;`@E ztNV;@V{1v^9Bbj1Otm~xyug8V@Qr0Lgl%WgMgm~Y4**^K)i&PXmFf*e^tGT~F#;M? zU^0DGfoM_?m0S)vnYQ6OxCH>>d@4JP_x3)_3#wIBAr{WA`z(&MUwAqq@(`Wpk^IES z_;2olhhF`wHPd0%@Ocio?uBA0vrS_jlSV zF)F&-xDV*AMk1gCiYBewWxa1$DW>k4o*t*AeNRF)sTq)p@=53 z%4hKmmhXbrad{-kkphOfPqu_gWvuF=5U1B=%S>)PQ#81BVeCk)FvqqtWWtPU#(5%20m*CA8AUWcc!;0gqxy=BK#I%LK z;UZuKN*af1&=#LB2sDNT-rE1pQh>J)=iU}Bj&foFxF7vI3ZoChp`P*09+c>ywPY%d zGDw8Zi?+k;bl2O*hyV zQ^yih@rDg&g9Kms4>N99#e8>euMdDgaW!LeqElsh@C027L{Ae)+hH@UEuG?o;BqLp zzSmM4E=Qon;#1On9ABOU5-fUufzg)wuMGSo&-i~Ds(VAN8Y zeoi`PT_RS-TCQvjGn7|>?229{Wy-mCWwdJxwn3EPI!J2K$c0XcWfXJxi}q4jFN|cP zWjVR~33lgr2=Ky5q`Hz@2nujyS+&?<7Y>C~0#+HVpd!aWODh9Odl>fE*T`l*80NM* zSfKsxAYVVo%%F%T~sPfSyElWfZ z8lzAQmIEe?EfPAzZk+%DSkZz1bwCEo|2VGi{~sdmFDv&SOb-8&m1AUK`ZraGIqDmB z2W$ww?7RLMtxBOoQ4J=NSIWV5&@{8Q0d4Zxh54jh%gbpxx;e5R54n4yY4q!bvH+p` z3OUT?(=eIgPd?96@ze-)+tcPmAprh&@<{gt!7Kd z3v3E1xyz|}H;%bgAHA1)fBiW}9jy$=EheqI!q%A!IEfAz>!QA>WTn@&6?k25rEinK zy&UCK{pDC;Ky|}Cw3kjb@&_E|(69(aNP(>ZXdKQ-6R|0l$queTVY=XrdwX$GCxC`J z*!t@!L&!geT_=V_i2BZxVc>rD<}4K`r1W}YaA$m!$M8jmw-g25oHa;0ol%#2a zWH{JF8qZ-rU2G10E4a=T;jj`^xP`FvPV&ibjk7mI?)+U%`QP4Nsl}gi+UHSb_#IB%oS&hRfhtJeS*AiR8M8Ok3`UI5DBlE_(5DAkE+m zf$aYzqZG##tJ|P(|22myws^)Xl)K`nv{pfH9Dgz#YkZuv0W0ITP;pTuBQvdF&7JE} z%xj0G^)o)^JFT^5cp9YxZ6eB&fxiE_QwV6sTQ;%MN{GF7_L9R)ra}{QexHJ=m!-#a z736iT-cXabr#U#GCA3dr*--GyajT!Zkd)M|+3ttfmPHD3^#7cZY*UdxZJR5G>DM?_ zhmEsF@NsMxXwD~{|5c#;gDGvPFvpq3tcrtIVG!vMtBzSZBb`WUV_ypd@ht(t;m~$5 zRiwm4BsolM;SZu_4H*6$RdDL z^aMO^G;DGndEAQPc(3~}BI@Kl&ioU+nS(U(IIRkFnql3<%=3Cb7tQyRKx|fv0VItl z&)CLGJ5vwY5+J*?hjp3JzE$LeCE=N|c|hUx6;H&9;=*Ecs@OZsAR2<Qx)&;5wycFF$1)Ea&u+tcrLek-)lACcp3-NBO*;Bs&+y~%z+ zsV9?2`3o;LYo_JLNX7w&+ZbhpB)y(@SeOh|S>J!n%Pq#mq6mSfi{L=A zbj;Wvo<&2QXwT8?1?qI)|Hyir?}%oc36Cz8IUB#LNrETE+DEyL4jw9Rt?^}xHHl!a z?;cvB^fFmuKIL~3G|82A>P=P$)ldJxp&A1!)v>$l{B7;5=vtKc7)yub2T2D>35k^p z!`%Ym@=ATfj_>qRA{cb_UK!ucpN*>E$_~TttVN1Gf4>IEOj(TB?ixp}9pt~oTH%&4 z&Xhj!ntq!DFfHGTCL zYqdWa^5pV6B0^DbPF#snA&=tv^-%pPBn2=ulIRPP6y5W=Jw6Hh*1Wls{RA+Qqmrl7 zwPnfi+dirht!t{!1ziaKi$l-k`cg+r-!h*2FE))6%gsNY-)WsG4L8iN^W|5~yl3yR z#>j&$7wLGvJL1;mx+b>LT{ELi+sBrT6z6^mp{UDxDn`g}lmBG$|5$T*$_^wIqAW;? z#4i!a$>cXd1WQc5*3p(GA0aZ9I&()1uM@DiyHwdENGz_`z~NfM*;7klW(2n!IPGwx z31&T8VPpg^OZYQ_3$}7axL`jLj;gD+Bg{OMc8zE4i`G}S;Fx4>ZE;zTTRqrmABpNl zPso4sUGnOR^sWnryGWS3APnQ?I{0NRwRF@D!5&@s-|r{M=S94TZkcSD`5&$M+F*l8 zUiOM{4K7nRQyr%pnUn~hJVeUn z3ffXA{-8bZWG6t=iV;lkL8iBb$QcS|+kHdH4OURMBX6kf4T^4#f^Az{@* zD<ejz15xy$sXt)n`v8GvEQYpwu1L_JI;B6gZQ>H6X9vRuKGK*vmoYc#K0zag`eF0PeXr~Qwj8Bvk$NxXRp zx(p|m{}wG?M<&_+>Jaim*j_AY+(I=N!Zlc|MdSmcok?QUW296pJWsLLZ~(qBt`M4! z+Y-bz*ugvNivTzL$+U4e^gito4<~EMhGZtpWm5F17f0hMHAFW)#efTr zp;WKP05*>pCI?IY*2;KppPdubK>0(9_L1AHQw^wCz6zEBai;5>E2WoK$GNx{U^Hd< zbp?2}1E;CmO6|+Yg(REV>_o#~E}SCaSjiXG@XIs+Dg2=1Dj?_|wKUcmp`1IAh;7r0 zjnTpS;-%#gP1SE58jO;;sud}OPo{iO@eXhH2 zxz?D@r`S@gb&YX}7`=j9cElccALzWQt`@VL8tx5|xXD(YC)SO|K63~t*dy_=321d6 zP7W7eOK`0*EhgrZTuZ{ypJ;U(2aZu_0RH<42*nCHEw zOu!SRqh~kgycK5GYo2kH@yx@T<;q?*fHH}1A7zOsq6_tvniKPX^T92{L83ij%yS#& z$&ifAWOY*M2DQjk@KZ*ShY_sITz>MldW6qQy`C{Rx?FMg4 z)z`{aC3J`yOKv}Cs+w+t=f|M``)`%2HPJP%-s+d{ALkQRjTm0V;VB?O#Fh6AQ-&8` zep}rRL2xGD&KvIdL4;VeBlg`)+w&)w8mTO$S)I={8tepR5@Ozi~THL`XqK|$4PrP5&+VxE zLRep#6!En}@g&g_xBty#b+CHHMg#h=!77iGiJF;-$f0}ZNchedp)ukHET81V%j4OFwP-&^Nvs{lbZ=&Dq)H$!sP$NAaj^kF6al?tE zEWzzAcE*esgn;EWnzxoZjA{Pzk{JY`S8d)87zO#x_K%3VKh)-z(36G_3|jI7U--pIz@iJ$ddl5{ED8qCF0pI%yFqBxK?QK}ongBl5rs+bYaG6rro*w`Q4 zGH}pmguTO_(g!sd;nO)R-2=Ke?#R2rp09g8zZl-|9n@>AKxol2{2AKpQm8{a2@HZi zgk*#>x4dAay3gtLE4WOy;o1FN4ZX6a3>rJkB$9mLN8!`u~A6{9c(>$4@Rn;J! zsCEvi6D-IQwFC^wcL4jeDec;Yq);*0XEdRrtJOOc69ptD0CY4YKEY*rIlh92<3<9) z<^iLGM>zYVDQx5`8c9JQK?>wIwWzp7<+Vv;sYA2e5d;>SB{0|J!-{g`Z|<`y=Gw)b z0_(2oSu7 z1$Zzf$f0LCI!3dh#4-2=s_v}`^2||o_UfE)F^a^v!KZk0l01#U!N@+Ddhl_*BBq)* z)UnQd>k3t9lBC+%FQD9PG=1ghg~H(K+v)(&*-Px{yf>vhr24Vz%a_rHapzqwzaS0q zEXu@EFqFoahzUT<)i*E=YJ@Qpn?*91E1d{yz)`!{5%nHCe#WY+Fo8SpiClA|f{E5Q z;Qdjs>E76OJQm#Qw*k8}jX_=!I>P-68lXa*;ssdkLJO^T!@n+lH`y9U)G*@G_998R z?zvN+7QW$GS&lKcar?UnW3BN_N~&D>HXlil;B5za`*5Q88@sC|vEoHs?D(O``?&;Y zV;R7oGNh~rsNFngH=5twjO2)pe6eTt^GtoQjBb^9wJICY!FQr*rQIpUDDm&GL$YTF8=Nf$c15CN_<`nJbiOy zvn1VQhI$w9O{80#1Tv>~;j+qVi`-EJGWMXj0l$CUUN33wCTZ1%DmzWH4vOO0rh&Y);)p$jz@g4_U zh* z3fp3qtLbS$Qp0OW_BSb8ghuOn=`BfJW`J4WBc*_G(?(2a{>k==rp+}fbOF^Iy%T%A z_LR{QmnkK&tH`mLL}9jUINnPO>Hv!?YUMut`qzCFb_Tm#So8Cv+u?Dw+W8hrT{AI+ z(4X{48NFLQ3iCnBYh0$SeCL(!wHUKu%C>ICp5%`_wtRb_Q6m7&NpS6gJwZmgm>x*^ z8J`4Z&u$mEn5PEVmVwQoi|)!}w}s5q85aI_uJuP~=w$_yGm1{)4#C_y$Y~m8SOm=F z3b^CRFQOm|=D%CihtSjDl@@MBix&guD>jzDclz-1rC1ghESP>X+@-q-{s5~+1#Y!u zGmga{@lAja7#^XbHi;j|TB%z{K4mF}Nsq-BMp>iU={2nu>Mdtc>az$wN7>-#>|H5I zJ4oAl4Ga%!Cr-nBzHmWv^HbXB4Dmag%MNd4n$(>j=D)?F!^ZG5i{EYHok1dWT)>o$ z8i4&Nd}|0ciV9xaGRX1UybHohv|^^B)Xm3}S;rIOA^@mDI1SIndu?lJ#MJ!4+@Rl+ zw5UXsjha;@pb^{|cF;Lw1I}izSt9R;0Xi-UJKW^#&D&;XM~w}Gn>x_yPe8UuyAJh_ zpHs7^8h*4E*3$O0t4&%oX27v^URE1Nu$o}G0W7G*8%}%AmjH|RAbB5r$HrPBFLlj5 zO%mIr2*MWN&9(Jqa%0y8uov%8*qw0PD;J{87aS{-oVzTws3AI2$cnV9pT-$=B$@Zg z6tg=H1Wj>yB*2vHzWRF5ja_0@gB^}l|nu}J4{=^WKoX? zsKIQs=s0BsWqUd$%d#=Gi~kd^$>b^^UyXvqlQ}%P*uQt)*Z*cVJDM2x?9RE~8E`9# zMlT*-2D`nwqlnQHWV=9k<;Si56PX>|?|zBXcKocfe1qzsm2wqwYvT@9+Wegiw}j2= z3kBJV>hOG=b^|Y5730iV-IP@@dL;>O>4H)oASOayMB}G_fgMQ_+mh?(XgudERgZch zIB2oV5GhRCTm>#C-G#>#qjRoc8~~<3r-0Y7Pu(^Gwq6tp5kon+H|LO^40XC?5hVQa zyp&O3Ns*Zq-172j6yHn_zr;J=i8f-Ut2FXY%~TN=^vd0CVZd4;#f}n=9&1nAQB%R+`oK-=zpFG4Sv0UaL=4{ z!-pV2Sh;rhe4N_22mPU!8w&TD`QCzlBWH&YDs%rcYxqO4ZanvR?cZ{fXo_Hw$M+zF zXKM4Iu5%DOU2yvGt^!l&<&>x6{(%W^^8S%hl<@kLiXdnfVj!wr4~o585N}Bqobb`{ z^^*}ooIJ}=p-bC3%yTkCx}eC?QC#jtsiCU4Pt!UAy7H+Wd2#PyP$3S%S;F~=oS&fuc-tTdiMhY~z^tbu zBb2+VeOnYVNFB<6VoOLs8XWAQ8rUz@LVOeO@+sUsF}a~N`7KO%UWz-P6qy6}{i}F6 z*yAKr9XYtnA>+x$)Wze|5Uxh85KiYv(;fVJ7&{Vpq?EZ4;P=(nbEF+)ex&{w<|VCt zXg_6Mo#c~lxcNwtMwHGZLv~}1fZ4st3+D+D9!3VIXYo<$6?ad?{)O2nFx|Wy^FD(3 z0N@Qj0C6W@X)aokJ(cf>fv|5Xwgfh(y0trleb|F*{2nxKb_pDq9L?`XmADO>#<`4! zR$M^zI(Vvy{?q!aHBE%7MYwX0#I5bWE++YT>y=va z)m0_7fm9rKwgMbMBKewWX&H)_&O*gR9XDHjV}!GqVUXfWfO+)uFb29+dU3~MQ^?Yb zXQAinga*E)D{}Vm9JXHe8PSi>Mt2K*7?=vC-p5+-b*->R5M@{I^Q`1kN=^s`copQY zq84etK(&CksDK9)yLnSu=_G65A5rM;ItRDTb3VOFFjw>rh}K=&@kQg`jFdF!WfG17 zOtf06-legSSV;Pvys6G>8(bJnyzCfEXtzvwq=$!(+SRx8T{d}d%TlixEb(AN7)PaU znH~zwmDlK`H)EQ|jk`%MO)Nc|DP$2%5b|`(5GcSl5azpr`~*mcCe;?V4aTqDF23QP zFxHT%AO@A{WLyL_WYI$A_Y;Dga6X+Z9GJ*6zQ~t;y%c?HTVUM&M&`5kg%l;Y0$`sb zr+HQtkAQ-@=T<^bh^j?s>E_Y2brM0?mcdHcDKn-{QXY0vW3up^RD0ftD3t*~PHT*! z#&4U~%l9Rc4PQ02DF4Pki1Iaq|Cb#VG_}*I27xwnYK!XfD z$Lt_=b2UJ{<-l;5pszPKQUI{3Xj=)rVk;v95W>BFn_{h0yTN0@(LiOjwW}MoUZkLC z^TN+E_J+e^t@ZKu7~1egJx!_jMERGSHZHC_){Pi?7osBEAIR_4jMF^%~6;?Ywo z5e>UYb=FL)r)rpNggeC-h`1#V1F#MnXKH4U7#=`yG;i|L+3eD+$vBE8CpJaeoFjm4 z{KO}rm5y<3^~_CkH88}#PLgGU{7dOy<5DkYW?^zia+_Bp3S-Jzcg>2lMWObpPPIsu zdW<(n!^z8Z5{V`eirgq|T&hs~;&KO5QTSbDpAG{&zM}wUk?rjQXT@3}5so=qLW%%- zrZC?rgBGX%K4O|=qM4;4pUMc;WE#FG^w@}4WU?qMF|EV-BfF&Y01FG1mewaGcGcsb zuD8y~PbOTR+9HyKxnn$ldeKL=e?1&2BaM+w?ZLs;J?mcOH@$fS{5WE0cDcplOWj|QuA!l;y$#LaIY|FIF>+i;!;XDC|Up>5ocOtAN zr8rw!zW7|eDyE;MyJOk$N`M2N_%c)hFn5d=Sw5#Ti7Ci1jrr93-ZzOV9M8OI^Y z5T#b^05|KlQugM8e9x2ThZ9E>9_GxS{|x#S1(_5M}6KAj&BK ziw7cysPGG`t@}SU~C`WOuH1K(Gu<*PE@Y!|)pCyukuXiwPs#=Y)Vnr#YPa z?CDK4@}$T_u%)i-7lyah#-Bx`5N-gW-B`0$Jiq|zO-zTn0ne+hsykotgFGQFNm9#V zXW%mbK4ztTd(np-==VrAaq)r(Db6nJaJKcJ=*7mGa4gAkBa{qa^xq3dIu&hSaHvr1 zVgACcC$%2U}%2#A>L7F3z}xcmAeQEpxiiEj0%X==TYn$sGqSX z2!-EehrvYaMzu`gxsUyr2>Dd$n0_c#**}j_x zganwzNq8dF3^{Y`X9v^^Q%KC=3*5Z7BNnT#dFF;(Y9vqt{Eo1hgKN$K${8aL$oY(s zSm_h>`Hg^s5tb4h!bA^-&g*J$wpChS{vs5A5kLePhQ&8DAVTe4$Q1;OX8{f4SV^6K zGgNm`iRYRLWS6xF1NCm~PjIUW=E|P)4q!i$N15S%vKA@r!Aj+_9E8Z;Z6wH$LQD`E zbP#wA$~r7hml%K}CR)3o%2P_+UoXeYAJDuD$Dw@*zqN&E2r*Id$a@hwQ3WvBUQcZC_D-Tm6vS5U%pJRPXYoc^3PkCWZBTQx7?NUVR z8v#+SJG!g570x^N0|tOhmg?~@_q=TXIOY4_oaes*dH>IFvuyutg7_~a%*?{_?;>I8 z_`gYI-R!eJfvpmP*@zV{Anh^@o-hcP1Y3e|%-#ypF4}>#oJlq_1f%{tl|+pg3}EGw-_SfBjEvm`o?>Bpr4od z`D}pjKnN%V^TpFg!s)js*sQQXZRuApF`e`Dt6b*kjD7; z()NXK#S&Iwqa+1LJev2)5WYSRp9~S5(|y6q&K$UyDwRiGb|VlTtxNl%oT=kzvH~?T zJd1bM?``#;msT%2Px*U~QO&qM)k=K!}PiNy#xf($rF z-aqk`G;)884pT9|fhtYvzK-NW>e`&fbsCqgq%J!+Ux|kiUK=~iL-D<<$w9&pgBZAh zpawMh@B!R-A34@Pu=i|#VfcXJiGcg6Q=FYM(=I7*)biGejv-(Q4s0GnKAGq9Yj!8@ zN&@N~D$TZB0HvJ+9iz$)Q8m|KgQ{zKP#srvEko@FIQkaRKLu5G+!;RTy>?BEy5iL>(X^gw#SO=TcGOBE5>SoXUSCQguTXk{^I9dOgfK znNZDZ6trlo2K^BI9*$@BQo3?{-Ad0Kkyv~KT71%8a&3b00VDFkO=@Y|&t)N@5Y_bn9-`S2iEg>lCF6$a^T$R@zzuG3#LqUa)wm-P5I)w+f2H2yhm~+=$ z@!Cc2Y^oDTA$_o1^<+;5+ZwwhxrTI8*ofI>7uFXJ>#S#%umqtxj`hCjA4BA84b0eS}3_(U(z_W>mB`f-s zekYcGE%!9ia(1!8yBsmSy^R)S=rkMd{^Zb`Ru|rOy@#{-7*-)F8I;g6ov9;aWF>ZL zVD*nbMa`P$?v7O1IZ{`IH43Sip=wGKMP7Cvi`s2Gcf23Nn^0+ZcZXlapR1fz2u~E? z$GwB9Y_kIEIn+prcdlusG|RBYf4QK=N)f_!UoQJ7g_{-$u{*^M(Jr-b0knV`2uBFl zUF$Te^XVUdWmSstM;)3w+}#%(;iS@{M1^GnLqoHz7)@j&5!$|iwmUSvULz1`FM=L{08cT^R+E#nnc9-?RZ^vP@3_h)#w=4k}@F$mJ*=y zv$8iOS{3_#09Sp)Q+IX|;*rUQsxS)8PGa=LD*v~x^O&E5z@un z9B9g4=3`SeSuDa(h+oC<%#FXY?=ViK%2AoSusUiPvbe#))VvqYDf*szA)T=Zo;dnA zMVusjtirtPr?~R-Iy5argG6HBIAlxS=Bmip%!*1_X4zqDa#>c0x*J_QDC)jC?_Xg& z?6O7wcy&~qZL&PLEk0MY=Tqsoq|y~lkTJ!ig>7mOc)IkUw>6ddhN{~KWT#vS`nD}K zhWRpqH?`4@g~?>}!`R{2_?EI=R=x1J2mp0|4n|$q=r5i#1QhA2E|8K;vIv2jakXrx zYt;mW+fBMe>Y@sp%@-aOs!hW8EOh(#%nFd%J$rO7-;nhxNM=&ilIGN zq@NB)k;G+;CLx1~R??jT=p6V&q5y$l*mg5F2a-q}p>LmbKQ zd;TV4d9g1iUz(zkV}Yvjo;%C*MVeDjxFc1;;gR8Kps2f{*sCRQ5Pf046M*I)x>VVA50w&^Ou z@LZxcBV{CnVc(ZLq#zKLAAO}`H32)OUJU8rRD?4wY`0u(v4$sRw7D?LH;y3Oo~N58 z$Rw^=zr=tah6SIzKk%c)sXicbj^A(QrIxWHaL?)#ph%)zg|?{d@DW5*u9)u?Q$0EE z>tBM19Dyi+6LV(AB4!rufTVX^`@6}CZM%E= z-ptM9B>xX5nVIB#U8%LIDz)l)pZEER@i6WHJ9~eBebUk4TMFO0VU-T8m5BPKPwhmU z3ejpJm6w0yZ~#$`{(c!ui(6%4Xgo0$gdd2Xi<1rwFJ@98;`!F;BOZ4MFNN|qgUvbv zrPCq$o=`TMgKCDK%~p~4`Vu1%1_*HqXw3%wgYik5qk&f$im+g`Qq$y|FgMz%Y9VJ=mTz5Ky|<96ctO(;LC8AzvW8YnUR zH~yb2>e_k2?;2`E6_q=2S$;QtVP7`2@up&{ZTZMSjS_5jKEG0Br5xqnF3Rl)`V#k7 z?5XiE0GA?xFF&UM*WiXRr~`Y|e2@{=NWK&mOWJu&qwqUMj_f21;Z)~=j3m7(O&pS? zT(QB<2WR*i25t=!^=uWw;G)@Gwr5B9Hy>0zWh~fY%rb$}VFoF?BF!_-Zk2uZ7aEts z_*3BkyJwt$&VXIXmw2`-zuN~&?dDgEX-VKuS4{M^CCiOAU&^~qW}hN@8={H14~YdZ zkn2LpxYA3Em=4Dn*7dHhmL;w_?FPqUoSCQjR`a-Z!$87F>Y`F~ekJ5}!)Hs*1cF4x zp_WSF>}%odg;S=U0MJ5zu?Wc%MIvS0GMCEZJ!mAs(elKgHJ18Eop)IMs!|Zz)Td4s zp9Nt)%!pHr8c|}1E#cc}Jrn3S>Ulu}X-7PmKL<$=T@zgFjP6x83d=h*A1&)8o-8^u z<-=)2EMGK}T>D7hPDrF}dlq2WtT$LIGFZtnx;&Y8Rqlas4F_vXx%39$_3O#_%?xK^ z0ni-)NBojlFpL(1)IBkJA*s&L3!nozeVZv9aPofAGm)>8K;C_ zi_}i-6-52Dq8WqR3<&t8wyDN5M+;nzv3<75T)6z1XETrQ}X-2fWX z!aa60^%gp;SxZB}WnARy5r9SeyVt#^qTSX8>1!?$KG~7WuDvQ6RPV<5!gNe1cJ~P> zwm6S;kTjf8>XvBBr)uzO|06xDZN+wGfv@dJOqRD?U4GKj17yb<@1)Vol)v^1XbfX@ z44N=ue8T!{e=0q6SfzzgnPmQP4X7(%(dcX-!Q&!Ra7hOcYcTSyVmeukJ|(oJi<~&9 z#1+3hSJR(f>R2F-S*V82<|0kE(fp|}4Wb6;8ZGn0HcMxnY^ii@LxF_uNcUB9^p3_#E=>&XCs)mP|J1EP6&!^6c z=CoU;=?G-x)_4Yl6I2f;?XfFOILFhG_s8WQ!4;;z#;?%}v#&jBY773EMy@*??7Mb}p${HBX9Qdd$Z{tYfyl?Z|vmSzbKb zwk(F%W{LE~=ssp+43MUQN-NCeDpwAXJ@tsB0%_2aytt+D4McKxb0x!|{Io{z492PU zniZ5|XTG*EST^!6UP}Ae`A#VV#GY&`*6HDgt~18mRC+1)>90|Rdt?em$%KX%gQ z1wBWL5kX5{?eTXp#e6xH>~-M4h$xDM3-}FuT==lF#rCrR%3gJRS#t*CIF;)ROPrNQ zh;aIsy&L|TxqLWzONuWOl0-L)8+-)Np86^fDi-YB(qX2w7LB68MC7A%o>roahUiZ6 z#mVB{c~na~b3x(IScSzQ4p4Mu-dBg;pGZ}^IHMHJz5~d7VacgWv*}elfr_qF3)Nos zR#l$jptQ0sB`D6utPk+Jhl@#yykc((_-btJdN2fd2l~l}a5B@wP0DZ(d>NV)l9M@W zPLbMUY&}qW>|R#dR7JV$XAjf0*=`(-jjE&-t{)y+Yw|Np{D{n-PpTlIBw$uL52@`+ z5BIcGPz!XIT^LKnctUpjOb58^AwUQHkx@mRD+lcD9}`bP9&^$&ZD!4h7>8tds$G>S z8jWcvLlV|dSULEQoKvF_ z7Oo;Ts1`XiS-9ipHS+sK%gOL@WFFnntY}1HMjSb#WEx0JvDT{=(Ic_p4xLdm*$qBe zAMCx9gbMa?>^aZ*jl2?jgLF?N-X4_d;r^adt7{~5@}|c=Pjpfo7X$)r4G?bFeF>bu znJ;I^Qsj3t$(rRzTokTdUraMn2c^^A@N8-e58<*=7ChY9viIcBB1sbP<;-^&N~c1$ zkr_C9)0!nkiT{j_^ulg46UQ(OT$aKISuY^g_G#JYk;QR;&bUH4aP_MO%q4PQREQ%d z1oL8EHZ-!E!q#5H56&e?ZE{Qq!Pa6LprGwW{40y$KdOMR z{j(1y6WhNXD5n*--}*lcixMMIH7U#4u;Q*P>lvA-+MvSpO|Z4Xk-y`KLXxh5h2K5L z*oloMT1d=M(ImHyv>#J$yuMwY-Y;*Pi9^;cKHlL-sQr8|6o|Mg)zOBzgEL>Z1cr3< z_g!%eUJP+?QQ=|;(AN5Wyg9gdxj~Dvjd*_)yp_G4k`mtF{yP8zO`?xC+!a0sg0Ie( zKPiMwLo=y_N#lSc4$=(q8IBRR)_0gBLksbiP|jfT3?`b9O+7kDL$$r1ijL{{5X;09 zhqjSFB#K!buIEhi$=00hCqG`4Y$Br@S)za9VPGuWyL6K;oE~azdw>~Iz0KrPc7SUz zEzaY;$S`vFH+x-ycMj*~!bP(ZyN4JS{R%#0^coyYZ{qet#FnS_Z@!0N z-*c|_u4_wd^NV%ZGTg)VRROnygsT){G>W@$8beqy$E-i&cr2W)Mg-Okr_HHHGc7E@ zSz-k$Z0M>+i78T7sEJY$K8A_EgH`(S(k;Cz&;+eqkYVNv(~_en_1|piS_}%q^2c%( z)yy4e*656H(ga`==ZOGhCv3_Nk$Tn^;w9$cS^{ZWK1}2_8Ruacf9z~_#b=p+he)98WT1Pr;@%QJCA{a1?$l!KBnxJZd9H|)YLc#ZCJg(-X-4v7 zG6NG&V0atGqe!c42B=9>)|d3;9SxLDdz`_InFNn?B7Lx!2m^BESaO$ zVUiTMqQZiZr#fA>UyIuhu5R(8wYmb@LoDfXB2$UL9_$B(13|-~*wOYIvs!mh&9<4r zdARd)NRV73NXqG%a2NYW3$9RUi%|VzDM^>a%Cm{roo(vY1PJ4-=~K|(gI8=XZV~*( zF#N`f-GtQbS7>UD!(h=f2QsY>L_>6|bl)$w$-GKyH51@gazoEedDv;3eahIqCCGXO zH9@W}$d>SDLj`#M!Y1hxFA(*oNxnN47M!U|u^JlEK!4!mI|$q*%f<0onB6M@Yyt|B zWeQFu^(JWT5e{H;vE9|@nTr-aPE0wqF-zpR`9t&2@hP=d%wFRF6GgbzpMLTGwZv%0 zyL|K_oZm{ND(Qi>YE=Mw#}M$K35etuH(#o0fGzB?83fbOVjTf z7w<{~9Aa#cr;KnEznRVxDTs?S#1yxejCd%hChmk1rHm zhEeXpgvXe+@~gZ4mwjH4A7W0h1Ex1I!M#@{dz2(16h1@=!bruaBs@>402#Dm1s;JN7cmfy0i)yH=~NFp5hL(6DP)j;o^6 zy)U|Fb_qm_ppkZJ0IH=c`-6=K zD*bcLV@Bk3y~a=KrXtjG!~ieIT@r(&i#GL$juD9;briYH0Thi1R>>Mq3~r|9x<@?3t4duT{ILO=77Yo_hAX}Ym?EGH0~L_hvSc5Sq4>HY~Xem!*BZ%R0b z=ZHhyd~^)D@YHB}9#j_vZ}i~%xvbAo#IumPw^;y@M!0RCHylB;?Q`Mb^A)|<7L_(;J4XZsg3AIDd3)^)LP-{dy zXI`^wCGs`LJ>MI$%tn0qyt+E15VRP`>+R{?Lg)p&{ppv9uYnD)_cxS@>o*XYY53X}w*^jk4;ysh8J#6Ly;Ui5SfV9?3lIA1Jb8aCRj|LV`tracd#_qZTflOK=Q@CT^(B>X(_kwS$Fca7X|X z&u%Ukm&s3sT^1NvMu)W6@B7~krZ&8lkRIGq`3x!Qd>S4a!1Ml>k%U+n%Rm>AWU1~Y zL%xce6OKpMGyrdeDEPci8C_VYtN0HbB;tT6ta)bO7mWD?LGuGWM7fNO=`D zX9>-If117swUW%P9?Vc1&f-R5`!d~6j<~JAckzAN2%)dyUR|S;{dlMo?K4w~<1%Ch zo;v%XC6J}RegYH8oqgHj%#s5Mfq*i3_WXWFwvG$@knc@~yA$?REPNLlMTb*vKLUJJ zXBE<@x;egtYd5iNiyqCKXD3_#y{6Kkt3roj`yHf&;dC|24ft$tX>9trFe1tzv-u21@3W^ZIAWpJi?Y;);*s)+(8K6ey`OH1)o7aB^qQf* zJJpO9=2-59*hub9aV`-5#IK%v=+U1<{04sq9#7b%*blKLiq}vYlrS8;kjI(mVzV6zVx{$V?dJaN|G$%CJdIIvT12 zRzM89h%igNZ}FEplT{FVnG1}(kiiKmC9)h)z_p^-)8FseY7~k(suJ`U7R>cXqY}wf zrHMr#yje|qscMK3Bqm6mC}v@QpPU3D<8yJ{~{DWA2m)dD#7Pbrt#fg!{z zi?plsK>HHFwNXryE&c6kLcs4`VMh)nY|z>2r%ljfs=^8?>=TbyjIN?-d!g6@AOt&t zc*ZN;WT)qt!BVXH2A7)dAW_OK7k?H0q3e51sl7Q5(no2A#0M4E z`Za5)Dxa#o_`w1A^4mjjY|$ARQQpEn{%=bo&~h{ZiBL-EitCRIfMxi=Ea)w zWrnVIyp#0BHb(j(l4z6}^b)7hrmU=;X2x}3H&Q%Ot}}Bz)s5l8l|F3kYj$FamAN&+ z-%K8ev?L&Bv^B&N;3P{I&)j5&1;2BE-P!-4+sc^va62=Qw29z0w(qrMKbgG%ugT^v0 ztmFe4AZv$j7m7C|vuHbR@dSc~QP`y_n{h;CZNEEdKSZZ%kzWby%wH8}pw8iPNgl=l z#u&$OBO+?R=s$a@@;fqDsp6uFI~C`P0Y%VlzQRp}IT00dvKXP%u+~2bLQa(~N!SM^ z4yQ2GD0FA?aA0f!HNE%q3%w90R*eH*aY1-nhT z$jlWn%jT;Ojf8fNL*Z+a_>FpbwQ4`=+F1s-2kPZ{7bdF8!;s06n|WAX;DU(|S_ z#;b`gp(i6e-w+fKg|RTPvq+?hEt^EzV*%xhh3*-1`c-EPiw0}JSa%@G;yG!-UQ0kd zab5F;XbiML(!!^E%>Db#PJV|~ArmETY}+_$8WT%!$l%M#qwR^2U0uWKF`^>BtYIcS ztfdQzJ05vGwk}?dn-51PFvKIxyQNKDx8nXXYQI6o?BDrK1nOG#i;mQ_CY-dX$J_PV z)Vo>^E%&^S8}uF3H!MoKi_q0QIc_(vEY|^mqjxuB`sxw7es5LH3$zDeEh*y;-%{Zb zs<$yvbQMO=$F;6bA(-Inv$wW17pSQ0BD9RRYkIz&pTdlrB8&v%Vf@fFt zFrFE#5L;vv7VP_lZrFUZXsh=Z+d56m?N*aCCT~$GrPYIc%JJg5YS%ewzvHt)%5?O| z^YaV3B$w$tE?m){7N*Us+u9w@Bn34(SxZ_s;(0egTxYtHD}N{$8?(;6YL*7+`<;@^ z@^uL=vx!UYPTONA8mXd)WFARQEzUg2s@uoirh&CL@f zG9JiGkGjJBjF!|N4YUbzt7z5Up==>1e~zVyB|`Phm!a?yqc!&98;WhH3F&d{sVM{H zDOwR@$G+xTCUu_s6{^bWj)|H4O=yq4edOaYAhqKa0P)*6M1=aUeVt_faaed5Z8@@v zmPsU*l5KAW!=ihZP+;XnEILSTqgXRDw2&7!9pvg>zwcL!D`gqF3C~-6CCFWg$j7%~ ztAXPB-|ZR)vzJ5ZilT{}hp-j+yh5Z+`r7TR1RGNA@RITy@G2&nTw55+q3ih8tZwKd z``J#%j0P7W{@sFIgk*qOr`ik$uJOm-8sjN2UA$bqd>pjoDrhvEAa)gDx8y!qhIzZ* zS}j?zgZ&nDj!zgaNX?>hNDtkf>u0Vqwx=$6t7U-d37(IfaeG;wn^w=Zsboq$yl@lc ztPEU7jWH-6rOMB1J+dZa%9Vco6>a6tsrOlwKgV@;M3hl}R&8cOI)_So3gvrUI+1aZ z%RV4JtZNkbgMd}mHkh70 zjwUU6-`~Q1_)ebb)97S?A7Oe3WdeeG{t6&7zPwPQsJ-4^gQKmP)2Vibr0z}#A@e1;;$&bKhMmJ5*f^x@TFu$q*b@G%$kba zl+rjiw@-3(m%q;7?maGgW6KN7dwI(Gv>=Hm*j71fTtqDOmAJW;J44eZ^-MDDB6-H( z-o11ZCBHppUNw>Y#(?T*FRs0M9+Bwo(*`CkfBr~(myH|Ux_wa7y&*NAW*V5DQlcxuon(WDLUYnQJRZbn(-PS-b6T-}dToReccq+ybF;+J$K zYRvtsY;jqCKRjO!?pK;liUe5PA%A?kuKrdD-B&isnm;wzHdR$q$)&b@N@fQiVl%4Dy>!frsZ|CM5p#RZz2yqb1APTC*J@T0eZCrRP_)9g4 zUYHfa+n#IPSV`OTE|i19@tVFEXI!@%Wgr>Se0ZHf=lR5*Qsi1i-$~rooD2KhWi7MBH45Q)CR>BzGG33r5;Jy*Xd`IDap47+Q-n2Dir1 zKwuc3aj?bcCJSYcAEebdq+AXTJ-NFNC{hg$Zk0UMY;S^deoGL_EonGV4X`+ zDb(IqIjh?jn~!CrLMdsv0lTD(efi#WS*yQ;V$wVTi=ZlK>HLl{12)M-2gDszyv{>~ zU=+-sUn%jwLATv>nN|OD;e$ee(eUP-7C!%NVe1rEwN66_HEqZ zGNtr9m1xKfki{UxZo(#Re}gR*#@~TkaH6j?bAl1pz-n;Da8@}OTOwMypj*do=haC% z7#$n;_MVNa>AZ?Kmq;6PDS&k<_5{~{+|DP_*5&3!Y9G6#UWraG&;dY@9NOBEm08hR z_~d}3%q3a)MDb{isb>aAsi@J3#%SW0{(wD_xCHqTU|DpJOu{K1IT22mn%wP;jbBWM zxDx^h>_1Mkh)_@wFxqiTes91slBb2k_hwQNqOii(m-H@NdP|= zi(3QQelnzQ4KIm`waZEANdhNRkgtR`q+pa!wbCKYZ|KzVkz(&ALs|?NX+$i7hyn42 zC$38vY?5D|4nII1I|m8@AD&jSnf3?h&4ZgDLcv=+v#H(yrf@_@vq#F=K2DCBYm9ju zY;e=D9bZ=GOddNXK=D&*GiqEPA#$t=H?kAj56NH{Z6RdDKxJm>neaJ#5x%B(_37t+t+;LqxH&RD4aQ|!sXa(0ZW*>%F z!Qd^Zhb6l?@_f*?Y(k{Yj#^{?JjoSMRK>{o6c_7T`#pYd#!Hg#iSoJoG2_lP!-KeO zKyAy5^JaA=-9W+76YfvSn+2k7;j~7!Go=MRHGMsX0<5qo^3RRi)C@C6&me^KuLPU& zx1}Ka_)Ha=E5hcpTS^b*VB0%zM2#L+W{2!LAjT;S+9zj5Q=sL^T_Vyb zCs&6{$Lsl9>jf}XMC%S$7{0_)0$-Z7JBlN^miF;U1u+rG*z8BsZ_pgi9kBIc4=QXA z4pB(-W`mkZGwa}xMDL>S{vsrWhsdqJ0%A00248Y!iz1k`@!lmqiNyt13Np76+VKMg zXmiUs{O8s5UxDiXsMVDHUo{~AvzpQ~GX8toiVIb#|Dw+IV%_+qYfnmpO{$-P!+V|%4xL5iGbd+@} z{IatPm$q`O3mHMyEdEQAbLAnfPSAf5J3q#hb&c#j%4^c(4foqh z<$DKwm+7*dHz-bH)ilKQE8P!2Meu=>$KD5*nBGs!D{<6Rrl#>z8pU#v{hlv^=d{B} z7Czz`F_4enzgzpbs#*aPQ&`D{Rg=Yi#b;5YqxMO@_5H{9tm?O>N-Z*b?TxxphD$}O z?D)@|O5H-%xs?yuLt+HZz3(qYWM|_LiF@r%@X=y++_jlxjacX}?oQTUyG82liB#^H z4;wvy^?bWYn7bch{qAD<+|5!_>Xm0KTSA8&gj8MnSKZcKWG9ZA_R0Rry9ukDP#AwF zqc|_PimkC1BpGd(+G42X>hv@YJ-Z`oW8Q0_p&~sdh}iDj%4fem{H-@@J%cyVycdw+ zcBekjHBanV&+v{7IbdXYjW!(6l^)Fr9|{V;IdIm4We^;Mt`+DV*;m$mf6M5pVj78A zafnY#)A=rpD20642#i}8=t^|7K z_oIu=Vl*s>3nEfaQd1{i>`O}9)I5gKp#zgGUk_XYGoFFD4DTL(PgheW3$#3-yqZ-5 z{Zu|TEPpgrQ=>^agk4&pHc#USXfW(&Re|Z!W>bmz%m-K~s#2uGhIQf|zAmki@&PWF z8>g#hb*btdeavO=_)2H%>Q4yk)J%*^^+;gL%h^fwL&ObD(>zU8IiGwABPeKPmLy?| z=T2Pqu?V_!w^p@R^4{LTP&SwM`P;H*L_#4~L_63eleb^a4lR4Q)J8;fHbWcb4N?VE zg(h3^89e=?#VSoA-?e~NK)*u{3YeTL`K>8Kmi0|o$}I_INKO|qm&T3ITJ>B}r^zsm zqW~T~^0=vWFw!w3<~y3S@(}P_j`u_bgg0(aH&yJFVa}vTE5(2b`mY!7FMsX0p~l)9 zrGA6mZk(V#Pxw7paI8(p0VsFs>wx^>xxQCqdtg*fwQ;U`YiBI#4A8RBkCJ-a{PJ;{ zbgaGtobQ=C7nogK7Fagk%5o04sq(o)_AH;t8$AxHzNEODQ%{iv|=MLd=- zughg=DV*|tI9O!+$#W~QQ=)B!QL;s3@5ho^(YK#1$mKCBEg`w)7Eq}_chjSqj0bL| zRi7~Sachnr3haO`c1-s$#Gn0f9gr>z(o!6G&hFTEI^-SBRcT0V()B)S9b zT=@pIO!Y`NCmuN)=w@3`I*xkA=nBV;r}|o2k!2LrF3J?mX+kZt=~XP-pV2}#4s5W;BdNEYCxzvhdT6&Lp1s?pE4ZhuqH^?Nz+CP8lVJVGt~Q#*^IICz1MN%~@Ea&% zF}OCkt`m_|fvedr1=?A-zfXZWaRAH($4*xL0wR16O$3|RLn4_~-R#(Xf{W_G=x%+! z*Khy;FlbV@P(c6gCLZZT9i2cnp1RYB+ufh9aBl5T= z1#yij8rCk#7T6n0Xi%x z49)$!Cd%n<;gA@_y`gG0Gk_aEWYZ>m?q%V=dgA;5PYPSkUSDAbg9pIlmSjZd@FX#R zDQ0a4?XAtdIY3+$FJCYZI@$2$SsC!Oo`j`s6V$Y#jn@e&Pq&_$(S4@w8PE(nc|;%Q zgiKFz*Eq#1(3-U*iAD|?qxY5Pfv0#3D}nVF&~I?VIUCFn7^rL=HK~w-FPlquSS%n3~GR509{I{kOKG|6FXWfr(~@O%kmb^e zGJuXWAVTNb&@Xf-0{vEM*li?%hjsI3RDr?TaZuRXd>l_=zIy`K{*)Iz zkATEVz#kyv9Yam&PrLau1u@g zw4xV39B3qM#|0z_itZC<$ER+Wqo-_*HZ6+$1DLskA1~%7=1?~%M^G_vCM7ADag|4^ z=MvVx?HceMX+R4xx*)Rv-}#>EcOe%5lD;B$SD2xeAJGv+_M1n=4>SM#g{%jBH>^DE5DxhBC6U{+l+b%|FtojUO!fzg?mTLFSu<70{l> zrfQQ|>PJbh@ZoZY1c@5TTI8jWaOPP9Kc1CuXI3vT%=Q^JYE%=d&#U58uAkc2?6$=I zki8FH#!QEUeeY12E=Wo2y)yrrJ$)J`imShy#`C#b+1$F|KJ&mI70Az>YGcdG{#1yE zTXlMB;7;&!F8mBSfB$>Bf#WnPr@>>aa{Sf!?N4b`l&BO(RdXjn5o;7TT%ibk>{M}@ zgrvyk=3L(!+0nMp@ z+9oOLXM+IfxR;c;u_X*4V}uw+5M#JE8-8(9gwnL7)pZBfJ zbfET#L8{V~16HL%=6r!p87||;U!;$FjTn9Y^82n#){ZSal03g!UAk0kAAx$)0qxcw z2(LvNNYbThg(Je++tv+}&M)~Xc2TU=4^`C!!FAeQMUD>gG$K^gnd8X>rf#hCa`VS) z1H3M6(xs7|$F#FHENP$3(|b#S7PmW>u1EtBLRx@`a`7cEP1g@Rz2N5$Ft@B7tCoEw zUqS7R61UhcNm~DAb=qZBB3=ro*0^UqV--fLN4vLTStn`1Jnd|#Aso8YYOkM)G53c0 zW^I_7r3(@c+QE|14PZ89*(7OA${Nn6f6BS90N_gtQBzfgsCFz4pu;15Yy-lR&ah}# zP*-hOnjstbJ;ngS4`ZJ%+qTNowuu3%Ci!&9*gj?oab6a~y{yK`1o*zK z>>`1xi@E~;Jb(be=GwZF*E)YVGj%psuAfhGqK($yYj%NsD7!*Ev$XBZzSxDdH*Ax% zdP02}Z|eGwi`Y%%MoNcVZ9TtQkjg52+$&&U3)&v)3bshwGA5NmCo7rX`K)ZXCB%+a zpf!IirmmZ37`HT9b<@rO+;LSaY`U8wW~vE{ONFl#Tkh~0hv8t(uKIU zBDk?Q1&o!qy2IKlF9AJI5w54!^-Y2C&|LvdykWG zD1^0mfvsU}oCvSz-r=Bn8oJ@>&ObYB9A{mqh5!It7eB^2h%{6ZjsWVBj88(V6~|ox zg=2+I$nR5d&q9VrZIwl33;9?@#25kWpR!X_KsV{JHPMK}LeBux9&}Laj}4-wmF)24F9I4RW8iA;kPQRLY3!t*9H=b0IOm|O{2DuGx^ZVd zTzg7Tplt>~fA7UmllC$2;EX5?euZk+IVQ|Ve!ZjBJ5Kf>)h^+vPg0oTJhgzy<>Wy2 z+Jwdl1#D`SX~7$}aLql>h^V3#OWPgt#%bencaFPOoVZ$~i8Q9bbM+nCOw`_=|D7%$LVyXmCHZ5uJMhjk<#a!MWU>Q#C&`D}l}=bxGSFcZ~c^aKXIVsDSj3$#U= zhHui#c@D9X;50)y)rI}Ws(%aS;|y^>w28^f+tfLG2$xPgUF1>597ia)p?P+(cSu3T zJH?^!QgqE^(MJrDFz?6QKzFb_5CA#FLNa)bh=in@w z5NNiVQGe4s6alkO@d~K*g*c3)DwRWt8Jb7h6=L*=%Q|~=FIp~qZ|<#Z>+GS3%4)D# zgJBTRBe6r=|nj1YHcNR3yMyYc09kaCnk8$cvim*VH-%K1f8~ z*#o>AgU#W=#16k}etE{rciUSHHNGYu`?=U5rb~-ef@4c=L4apf&f!4w(bLedoBk;s zfnGN!JtgtdMmkG7p2~#GH%0VUtUQiC;_VO-37Wd^IF%`F#L8;U~i*Ocvq)M_`NrnB~)%u+&AdL)>pQ+p!mnvXM5xd+9#V}7@($Ktt` z8t$^88zcB?%1h>{8QZY6R#mz55Y$ositDszLj{e;vN$-iF*YgkmJBNHLB$f_xn zBt-aE1a3r?r(aAfC8$h*Bzm*Z0WxFI%QQ=<$|^D2Ay6u6lt)-(;=I=&X;T>rQ|$Jj zQexY}4q}+|+VPLx$4=c1sHS+0m0IgK(oz?sb{_g*+F&EV7}3vC`k4&ILC-Q?2F`zU z%WNtoo97qES8Gx1?tQsfLBB4(U|!gf%WccE!VuJ^sK(=9I0E5-UuGohoc9kMB|P9~ z0jaB6CFIO4Plhw9b=|<|py|}P!)wwwQTaE&+IJzV!!9o z_exvZ(EAF_h@{wwMX3%)1&~Ow9R)>*$ZH%Q!+<=n4K8J#gv_{?^A79Kr!AJqTNG$a zl3WTDgL4Pks>t%ifw^{vpL`RgO?|`Q9A4ba2|N;CZmb;KCP2bnGJss zz%LN+i?g2~>!4>(!~-thL%KWZuUe6NEI#OrvQL`((L9gMTgmrt_fJ@r(1Ll4c$%Ww z*zPZcW%t5m)|?wXzdtryZBeu6(1Scqixn!DHsO|Xg&h(!;qT5f@blCTcw8W2^u`qg znYq&!ypl6ThaUP+S$S&Zoi@rU5vD&5jWZ|JacH-LefusJxipo5X0t3YGzpmtkW-496G9}T3M|2JVr`Kd z>=y%Vjf;hxipTt%ld|lSuxoa4el`c|S>~hDIVZuSQp*4& zx?&Ku+nj2xcYcA>FkBArTOxOUfBUM`-9n4%P<_rcGY=z=JT`|AX7el-6WmJwW}Clvu8BiqrmYCV zE;Xqo{QD8K3nKYGml6Uwse))R+~J8gL7k9F);DjYRgiZ!FrJ?@mazM}_b)NklNl{9 zAl%?ROWUIGSPJ^ek|0Y93-s2*kC~yYRogQ<{}Z};SQqY!xJ^N zOh2VG7O1{2n2r`p_1rZi=OyLG-3VHGdN7jFx?AG|YRINO92H^4WllU)DzI8Lt~#I} zD=0DhV_@&oIAMoFiX0R;g+&(|LFzCA#3ZV%Re}&NwAHRYyes|`F~*rE(v5RVnwfmf zW%WFVlDs*p?fX~13IW840?@gaHT22}=?LYKFtNi1wHSu_-?yS1OGQZ?YbdzLn-;$9 zF@Y1&`Cb|C?-aGAA|~|~O^31rPi3im3(v4c0lvNmFT@$*!GY56+6A7XWNJLpZ71|-bY(h|KCDV>APk2O$pRsmxi}>8x{ICIiRy(mpd0q@B*u|NX zrSsktv{P#O@JFDP#jD+4YH(pdbIPBMW6*Vfvt2cq=F~GXqtH`H~;+jLLgB7E5$bi(eik4pky>oW+DenC4d@$^gpP6n71F!A9e%T zr5<$ANgebC5St-ZdA)QvEukGKp#;&2&)d9+e(#-#RqUl*fB%fXFT(?uQ3lXXZfM9) zxpgibRE-y=i@JhdA~EcjdD&fm`&tM?7n6C9gtNR>B2W(yI9mQu8B4@AnWTC>k3>-j z*Vf;RWa)UvW_Qi~egB&2y%?bnFtY{mSwbrdGgG4nXb>${6LU$n+PBd03@fP;NVIJA ze%q(l88KeucA=eAw~BH2_iws6*=y#vru|{*nBD@^Mg<;~11S2(ixdGZxY@*out%&& zx8+l%_u>UkG1Euq4N$O8&TJQUmci!9&#AfB4KV8bdP(&jIY3ymzwLPa{2QLWZ_sgf zxpe9&^;j@oCZ}Bbe_uBbodQ6+k#~|ZuUrOGt@PZTzAKiojMZB$*L%rCU-{ir=yMeyANq}sjlFRWi?tq#EJ zqm%!I{N7OJFz!s)KE7+<8w%C)42zUE6gq318d>|2Ol|HlEmWrS3VS5eZXv7j5Z((i zJ8%fWA?UWD&L)p4H5Usk&=f^sx2mZ_q$A{WGcb2IEr#w26t|Hy>)`5wfxW50o+Rry z;>kCs!`HZ@-^R_uOwLpn#}ztZ{y{IiN)K}xGf~2RS8EyImB;S5KCB;H@BOUHa&T*4 z!CO9ITo14S3)=x9g`?xIA)91995x~`t+E{i@Mm=+63yd^QYf2msmA&@wKQNn`m@m_ zg3Aj6Id^E9nkE8qH{YYs|6=YPV|0tsZQ-(Q+qKKKtzEWl+qQPuwr$%scG5nH&bAq=K!Q_Re^%JA* zk@T`j&y$_@CG&;%3oXAYlh!Pj_o5~u-2sQ%8f>SyIlatX<>1`!UFiWBYB=n)pfHN5 z64UW-epWb#T5#FR_H;$8`|^DgJ_fX#JtN_!Ew)!MGBwwitwDOaNxPEx^_GEsB7zfe$5ctk6CznA2ROs`o4r?I3po((ZcdK_H;Xp zLU+FI7f9)(pH~zK;evx;LL8jAc|RIexnzDM`pDtm^So}}yty`?Ggj24OcMD@P0-R{ zyDFso+^%{v_vFzvPa-xk=_}w|3zoxQ3q@inphBfd4m`aK!8)*($Q5P)cG`Y z@3&11hIXp^T~4WuS|%Nc)U5G6_X_$pblVi z7YSMZ;8Zfi@ZO|9LF~*VQXh)<=M|Tl{Xrq&Xm5RL7`1-G)u%tA!9vxqKY}ZuZ^eJ7 z!);aWy@DY(Q6ai3bv@x0mEj8HbEh3j`PwE(*mTgIr)?2mRvLF&G1rcaH4u!mI<3Yo z2R?CMiS57az$m0KoROIb3N|4q?#wQ_U{AjEi|E^srR$`Gu7SuBHp3_%W&>;u-tKN* z_b*p6V&VBdU|Lr}R1Xx$+x>pV--GI1XRNRMOV$z$7m~$Ili4;!!nS?Hv8e3Bf!}fr z;RTPo7S&6_Mr4PKMRFgHSPy}_CS5II(>WWI^WhSeHO^6L( zsrHmK?WLM)k`+_twu5D|Hbhe3P{^1;m%9QrcdpJ6`^^u}>ua?#B zl%KQ%F#-7I0Fx3UpTwIHlXegr8{4DMeetK=v1wwwhPg z5;thB{}5Z^X6O2^`q2>Eh3ei=!TMgph(bkN11z!c1UR1>;PjnT^kB8ZT-gODPbDdC zGuIc0UcZQ{+2-bWJA`9;`Q)LBOMeL6fV5_>I_(vzpw{7@{`#B9^WfYv6gaSrEFvjc zUQ??_cH+xr%p**|+sPh#@ZUF~-$3lz)YR={-_w9tQUDrHGqhs5niV`di%I+)Jfyy5 zF&|tt=<_iLzgc9uY1xIN`gT8kjvhyzVET?tejUk&&AMt>Ne2^`0n|)v;I18P(9{qD zyseU`FD20kQ{c5kG06N%GeN!Y-=`p_sJ|-~DNrIEVV=dKW@x)P3S1_TuLS{)r;}~S zR>z=R)vqByX^RiQm==Nhl}&jv7be5f$QzdE#Aro}9Ka69gg)5WOsY(7VKpKCKI?ho zTm+fN7dZ>a*u>=nfK7euf2O+RSoW|+#$RV>tQ{Sq@I`@lIWJ24+qmxJvDo2THG{#j z!a#V3gM)zI083m$#V%yB3M&pGq51G#h?=c8+l}m0(Vyo4%caQSv(d7GXS&)v4}neF zapy3^7A&tfgz}JL)au^ALO{f-Ff7=fGPSS(ItJ;TIDtdb971uN5Pl9c{<*leFKWLc zDv%N?`{KqOIJ*EZvDq-*x~c_xRUs>6&<-*^_;&G1KmSxmf^3BfJ=FdQZaXf(T}!vdH`d5FvR;6j_V6>mUYfpuaCW zGaU1?OiCWoMm2lIHgsBkaXG&RJgoC$o@Il@%<0dHxs_(JL*1Z*5Gq7h>b|i=szd8= z!C+h5*KS1UJdno;hVl$w!9n1odr70*HdLT^i05fuc^l0mkBv`ol^Y-8RCw2;R^G_x zvgW)ZIbcOq9f6pL)W%+1q@jP<``20C_-`WN#P;mMHUz;F3ak6Z7^{@%MIn0>^gh8a zG;e`<$5AVtyTMg<#;e5W}&l zqyuB04BUH-x2`om6eGtM!=Bt(tIjOUWaK-%IkDUPR*pvmR@Re5zN|y?Qr{9ftvkWS z%l~9a&Xoc6$W$FaJ0eaa=T8~{$QTYAqJYH-gr^Emq=e4k+xBdGdA;oZFonCRDL!{m zYqhK40`({hxfHVl;Ru$5G05XI;6$UZp8yex#xgO=Dvvtw#U(995lMkmL8E0E zVPeyTmo3~)(sC-@BIxMI%ON|`K^1~gav5bb!09C4Z49QS;7c5HLz;D|k)=#4TuE~? z^TX*C9+WQmYSg?$SfmYJ-0BYHzb@M#ZcER*sk;f`K|}hMTj;|?$Og?&dFLZ?Xd17n zGH+46P@@6nq{g(hRh^maPKv4R^wQs)D8Qq)Cxl%~azhdR-#&B?hok zBZ4;2!|9$F1y@|^)KgtP^?K`xL`b8+n1rW{>#`)2>= z*2;>2RJ~NJtZLx^QGw^;Nf0hk`VwaKL)84m#6BV0phALyx&PSCNb{OJYJkr{`W=UQ zp9Uqc2X8y^dlW@QAsn>$>{YrSvge~y(XRepogg?dm0ho2Y~}SL&Daz+_I1Wfb@|4q z$$caVD(z5UbjNc0!QJ@v`650>$%0)`5Fx@0bPaeYXw;>Bn(lb{#QHDpx<+K^rO8wS zzEVqiX#_}_!V+v63Eo(*PRdkx2~5EvbrKSWMJ#dOW@Bv9KxD zcXUL`{yHG{AmrGk(E=P{aCssl7=NU^H>pkZ+V}#D9otWNwlAwUkD95L&WqnW(4M=l ziSyyH5u!+<_o;J;Xup4=4-ufiz}A6ii+S{c*azkux0L%X*pPkVM66lb{;4Q=dW41-QnACKypr>S1g-)*bDJhM zdEyAhg0ogW6)K6hSj);%h{mE}d~UQC46|E{XM#O|H8Z>siOz9{3Cd`vkQkNWJK(=i zTbB~CVK2z!0%D~>>AFqE&i(beo@6a#blP@Kp{mPyO-`nzIh|MmWf4;|%%TAIxP8~s zg}kpvH$oU~ez$4UFm`Ur&^O_H+E_C(8ez;oi^3`~RO8@n5w9?Ck$` z4#WS~X7|TH`;$n9O0BXuh2|}uUMTKI0)PHQs)^DlQU`(Hwj|Q2Za!rGX6@sy1@r{E?*uKqu##Ws6osy z{Iy_ps-gju465HWjtu&T*nsgo4Uc*E+&w-=F*CI?2<*=_L#|zjOeTFbsGR6G+&Em1tDT-CF`N#(gMM^ND(t@~@3; zF`z>)-4hpxR3dQHGmJu)-+n!~7`9k?cG<9#u#%qNjFH`2aHv&&&;Dz?{m z@wywWwtPOsnnW$cJTJQ7PvvC}gGw(F10$WpYNTbuUdv-GJ(U!bsp^~MXnEYXkb>Lf zhYW%MGE`U1CzO(4yt3u?fVR#-Y5F^|nBDxZAdi~Lp=3dfUk_6>2;~dgkqPf-Wu2 zHf8UUmix%N>774X657qcl)74joDs*VtUkxZ(&0K7fVSLECEa(4;;y?u!b^Z1`c|!} z9n%5&selqm2u>)W7NQGC=Buw6|P)j_z3BaUzS1WcSXHoNTR`_r}v0vkI)w(T-btOq5ao2VdA*EuNP%^7kLc zpfXKW^sO>Wm|KaQrN<}wXvwhAog@;7rGHyFaGWskO9(cX+pTIf99_SKbAoUml92*++t zdwh6ysqPhr{gzSi-1{iZrJ!-W6BJ(lLp8 z+A)=ew)7tlDbC@dEg9@PQ&@DWgfso7f-dho5pr^pj9ZyfCQ8-l-kg+unyhWa{FldO zh@rvtwXYRS5vO`__ECUW5Bmf>oNaIPo_XbI-=?HHFV8*HuG8=1OYw8}rh~6J5 zdo3JKmQ#jU>4XjcSpuL!`pg3&7mBr~iDvEYd$|Vyehi)fArT^o6#2sBfo5&R`c=t= zNyM8#Tts`nEsGkf-H^G8qC}JN&S#D{rl((!z=ls|#6Zk$qQH1&GIffLnw+~D({?RiMshw!qy~RC!&<5nHLTxEa=zM!SAC7&Y0`$GO z=g@*VMqpxsTuvMGE;4+$12l5TkmM|3+Lq>q;RwE? zYTJq$gUG8WjB?@`?Dc8v)?3op5kozH%fqN@l>4jxL``{ApJOtYGH(tsz4#{;T=@$d zAUAg~^Irl92Ks;2vH$Z(;y(nr8R-AH)zg3Rzx2%X|6U1V=1)7N{pSDMPAM2@xl;VI zb}=6wmR42kAHd?sn2w?msp}}~m$k4(mdM<97ZVBTM*S(YM`#iy+*sP{Q3m4i`_$)_ zF7HuL!qn4O3^dY!?~6J#T1sIU$HWf<+!HwlUHNfLOiuUqWrNzl4kiE##KyV#muGHD z_78qV%bEP;SWhEPcO*Nyk{GqXn4B`3N>z-{#zzE)=E8Z8ygwsW$+Y+A$ zVd)lm>F{tB%q@|MAj$koDdU_!51I<`r&iOSyBrf7FM*~bPik)omF;Hthl@ac3Oz@g z6$W<^4>P(()?xETaXqmXaj*BH?B?9N^$S9M37)y>JMxIfuFN3N@yftgxjc7WS&ZV(pwYmbI_v z8O`0qKu<55#zb0iiWNAVQvyWsC3)K@Q{!Kp)FuR0Hfq*8N;Or!R}+TO4;n4fa+jhe zA-R%G`gt{v4b%sbh<3QyM~tEGFe&o9|4utgnd^)>n)8Ev2NmY-iiua7!C0~`!W9f8 zLH%ettKg=99me%gcpe~lq;?C)`$fs2bRAFO{Zu*~X!?lL*U&zg8PP)%zGxx?WsAo+Yf0{*$Li=|rQtzfrQzusd!RqW;i?0^lm<${)Mdi2QgYbe z0ET?rWPXBxbf4u5mt;@vT<_9BUaib=zjCM z6#|4sDPCHMcia+crfO zpuwc%I7ud3*MaA@o~$?UJJ)-3T9xY=TXNU@18Jz4hF@`bciVV*TgqJ^Wr_h1UPI%x z3&x^G;cx5@g%NiQ`^H(u_7eq+V=-TXVgmn@6Ty?JOeN(I(+qFZd}6+u znRET%<=hAS;x=t{f#DOdH-zqTKhyZ_BQ4@vCeX7*24L@S!szCk*Me79 zAj;_{3p()Wpok;fy(D!1X;hj-Zi+Wa*gnLqQ~QACEO?iT%b-;7$imfV&O6$2t}=LT z$f(;uL;|lKk9N3-_p8zmdJQe2W?(;aP^x0yVd^Kr6MFpfiAYQ~_#am*+1V`YBq{4k z(;8yYK92gUr~dn@Zg*! z!xTLci3S*V^kx?o{T9ozowRLTdN6_6e^cL#(9 z)=Sg<>SP-#mhr6p`nH}8@OYVfpVZ;H#&IYRR4o89VTfXxhn9;bj!N=0DceJau=-@i z;@`F{6GYTs=+*uXT|mqnzYhTS`YA4Q%8n7(o5z(6=O;SrOKde*CeQ1bIStx6hn7+SZIaIjYHw*E!D|`vfWhM-RNf+ zg0Z2UAXMb}7vIY$H;Xvc1@P-9J^*uED0K~VFHV2)ssxe<{l(V85U`Pts|7yHSDomS<#yNYn=2a}Whl;DVTNS78XTtJjILS~`7O_e?d zcD-TRU0=maByX304ckq?0cx+1`(`PMK$ zo}6AoFR<=p@8cQn<*0~j2m`|iT^fyXRr@2|h_r}a_Dm5@c`~eFlCrke+^6;9&o-FA zx>{I%2xROi>z9GyyvxmW!wmZ*G9I#OObyT#S`@$!>b$28vX zWQP-_Znk@S5isr&U*Pbmi^OMHQe6YY1~3Ehxq!*&3IE0h$h#Qi{%;`9KP$=qiy_ZH zR~P*klfuFNZ%W=j9>baqRwN(3-dA|9ipE-Xc{ZsN#Q@d}loQaf4R7%$f3f`7rg-5R z+8-YH2k;1uC&x;Yn*|ukwfyq`Qi-R^F%Q6gJ)czPiaLhtZ#vl7BPB!dQ!^IPEI z13kfze}C%K9)I2HxSaJOEec$ zdVcq8;L8^xsF+OOCl=24k8W8RbW22Owem6th=;jiF%C=o4i*(1R^DD86=F9T%TJ;W3y=Tq|vv-h@?hi8U zAM(iIl!%@k7e)yff!^LYSkVl8Po1^hWy0LN$-4bycHKl*t16g=c?4}zrpr?agLft_*)Sau@U_2!AIrC15e0|#IFTh zb(`q}zSZGvA6Ao1cPdhP_cKlBaCd0ik=bvCSo_!bUR`I#<%8Dt;b73WAXNsr(RB@t zqoQ3eNtw%Q;G^jeGCb3c^SK1T8Dg!DKAYmuK#n6C%~olNq9Kz{FpzO7pUYIrA?g%b zhe6O^S!CSO4Ev>W!B)SzvZFQZ6wOTAzhBNLH})Y)G(dxsB&>+OIG;q1-r%Yk)Hbn+t zf5HtKFqH?}mO@c~JW1la5^B9LkQ2SwPf**F?KSCjqC_EifDLetwN&s!Fd$m^8(ej# zFATN7EkQ&4XW386fOMWJu+sZb-=cgs?Qn7_m1mgQ)nhp6O&+=4)7!852bW&86!U%C zZWbhnP6f7ujW=GRY2v4<(ylO%`~=X*#oTEZds7}H&7;A94cK5X`3->B%uBT^MNKjw z?kLlfj*s>P{ipi?jUtuGo{Kq3ZTaYa8$>1+8)hY47i$RtQ=%%D0KVl$T(i)r(CX+r zDS$3Unn!_asydt_<-h!Gehn|eQ_?~;eFcfIs z2jCqmRpU#}kPK`wa)*^^K(vMaqh?MxLKtMhLc+Mm-UorGo z|1qD@>otF;A3qr}1|GxnA#LaN6NQu3R+|GWB7@*tz#jQq{{blybHh!<=5|}vb*pVP zSZ4jG^kS#HwwtBCfq4Vy5Im5<%P$t>Dje~TL0R=Cs^PU|;w0}o6SkHAsNFnc7!8v` zPCASDGqnBC0P&u7gOW7YmQz#u+c=)T1+UI!&byHQa*nISHNx)_kC!Ng&~C{x(C(~> zheb|i3Sq~E^&+$^!v(f#+|gUk+My@~<$H%GdWam9yWz~C4B6eMqBT^}K2#VSKK(8N z_BN=76+~lU4(Y@!Wc_{BV+Tb%XoUO>nrF*TU!V}|Z*Ag2puq_GHc4=)wR7!fvb40A zw95cLYER=jql*a~15I%SK@yluf~0C$pD<)=eWeT6QeWtmGOnJoW2rLmMxp|bNm{^3 zsik*01)N$96j7amfMPkixsfBL!ofKSTGNH+()}3UakhUN(lj-d7qy+f)ajy&py~wT zJrUlz&pq|HQZVMi33_q5^H~=UyajXTTJ{5x-ZJ8$jm1HpcCrkCcy&f^4Mi2Wqc-Q3 zGqv9>wrhg(~uj%!vn zqFhLe-^F?cF4N|+Vj!e@GJ7aC!>f*vs1up7)RM9o2AgyhnOuXMB(6uM?~-X8V1X$^ zt$=}jlReOR*}3)#I&6{a5LNZdcs~<-!hwmmiD0>E&l`2hk^c|Yc>9ho?&AAH&vfX)xQZFtZ+Vm(?0QE zT;``VP#-5$t|&9eR-D!gne5*jJmDLqYuw{WRTG!TwjO-x02KZhXKY&^r2=hX?=y zF>z|`dQEBBlzb|1L&{l<@m{Wf&6sgNF!x1szc7_|&R_iMN#WZ|%G}_(Czv@=!AkW! zz9&g7InsIYGNR3w>hx}*QtpdTFq`r*H_B@)ufR{VIUf*HLu;NE?6o0tYYY9 zf#iVy)6kGI^ei=kY$DO?=plIRJAl1fal}39_+CXXK7HjdmX%UuA2)QwXqf|@?0$py z;hS0h2Qc|1f{M0{Cp)Ciz~``4>Pi?%tZU?1Jlmql1Y0>=;Zs!yEIvqJvc_!p&&Ixd z%=Q)U)gLYazrev)4hWhJU6D1yFlX5FKRmk+eWsVqW$@`;bW*Pr<115!EeXo+PnLww zG^;l-^fPm9n^+wOPj0RJuJ-t@W7>WV+%WmC96O>w2a#kGcOnQn_BbV*c)F7#W}Qx( zq^?8&F1x270_v)T$Za_&=x4Fg~C?+ox=Xllr%0)cZTL z!6G_+UwSts>jFXoDzRho+$d6O5Wpy(^u1om?iS}Rqh8yOXT1&I6Vz=Fd@cIYMW_6d znB&``>Nt>1BBrNw<+}y1Vm$wuGu`WM9vQh__Q{~jHl~;;T zP#5+j@{b9Qh15Z^lQTNST_VMwu$(Gh{6Tb%DZ{Sn?n+r3p?m)0>qPXh{$ zJ5YbF8)2%q@lYe|D+gplT=ZLfNY$X1(v>PhR4uJ*Cuy!}TeZNn4Bb;DJs88(rbyet z6GyW8B*KvMPnLW?n_9tZ~%V=`yq$6D_{YcvE}wCrfl%W=Cb9{^$p zWHcN;-}ogATXoVxqPc*3vDN)G=7r~3INLQ_SmeUOX)a%7Tw*L*(_lT5sJ>1uUB0NT zYBJ(lv#~q@6d_jc@=$OtnXnb5WOhsa*%9tJZ4@R&yZ;>*M6ZwpT)U59_>#%t!l(8rZM;h6qQ6mS;y{QFd=hHmmb>T@TDdwLQFtLX`5 z(C;bO3JuiD9*$hblU-^N#4gq2&k}ZXJ?fz>KStlTpULA?tiv@ju!DA8-GM@{m+Qu`BmZ=v;lkfxSppl=Eb zppt9RbFq@)*bB?KQ4D-;NP)=t9MbG+#4ZY`vL^4M;1QGvjX&=VtJ8ImrRx5V7+x^)+jM(Pq!I$VuTbilvAEmfZA7 z=xXY*)?jT=Ynh5%Z{GlBI9XaB?q&@29mrV9nhV)G>ShpO$hohW+WCbmFJ1T|J8JQ+ zg@lbH2tmqQjFv<@C@8AZ2J{08Cx9ex&=b8I%ok%D)rM_%Ncr|nEF}oYqppf!jUf8Q z9Dq;(h$x^&MknHFB#kvqDlb9o{vdw77F2sv5yl!uc(X#!Dh*LkNRmh_3pBG)X3LX! zR}c1;+Cmrdr;h%T3H}n~uRr;D_uG8-;DXUp)xZ2eJIGJ(6~7@}99mszuE7I<=w%y} zq%RV)6seEr0*d&ep5#j z2ZL>Ipkou0V|T!DLJrIg;4uw(&H2N-dXmAEt+cxDILep{wV<^~h#{WsP>J>vdJ0+V zy22jdD@KWTf%oSBf|ZE_<^_Dr%RsG_M^^Sj<2Q)wPgCirM!|sT3w9uZJ6e0-(Vj_# z%VUzr7|Zt+-ZhP5B>A{{+IihMXa(|z?2(Ho6E0(6&7j(pU6rRgakY$DDDG|~JjaVF^lNN27IRHxPppN416=E|6yB)W1RRRiJ53!d|Y0_87z$34;wCwGj6lGDi?2KgA`pOa{y=F-eOIj63A}#1n zFmFSLeadcrK~jR#s`krc)c$xx5H+r(H3Fy4trVRfOhl#26wz4^^;$xFUro=8?{O}s z8bGqu@T?Qsk{7N?qq&9(ANod=k{90d66zr+iiI8xI|89u&deawADEJ^he z#}9&MiTwiVic)ztC?#~ZU38314_Y)6w0!2usO1!L^XsIp>{*j8#>zO1(iC1 z-F|6U1O4t;g8BSj2x{Uf)1@wTTlltFb~uj;7*tH?X$%MEFPAOo718K z!@clu&iv`6_G9aD#b%gBJ3ptsVnF}uBYnbQGY+4~Ldd;*OqyV=y|;zWwEij9XghDE z1&{)GIJ5J9l(W43wK}uL>p9wTaUEUyZQyvN9?kRo>q$zbS$%HxTjL{&O0i(x*l`9D zsQJas+nC2g-iq!kn*G=$@H&WaHK?@$MWe^7y^XB{sR2?)|0z@B$Tit}#_CFALc>U* zHY#baH+%h1m2izPWkxz+*SHz9RQ|kbR8pmCNdu2c1(mv?C#|kht4_;8Y}SqSIA)|N zSgg;D_1a?n@}VM?!Z<4uEa|9TzU8kKU6b0HO^)zolp%|19ly0Ntq$8aMsOsTL<^|F zVyKxpxQg|AvY#c`Hz^sMEylLM?2hUXY_;yKNmzEj{Yvv+c=KbGP}G;gZ9OF6PzhwT z!QJg9dTtB*N+6)>>|JPr8;dL{Z|`LfC$iZxLgWNgi!v|0Z0DdkfCP|{pp)+Nlh{M@AwseZQB-C3gm_u9C6@(Q>xZ;43)!z5MTTuHFuw%e3WM z%bW$5grz zV(+1K-trf2U!d<4nT>SfnIt|L-pEHm@yJ8ylX-T;c*1bU=!2A*55s{ELFC&P6<$MF zguW9IDt=-WP}$JUBO7Aa(}vo(ST5klo(ZUIkHuU4?jH~JC|r=Hhm-nzN}r*Psr}Kd z=z6DfdnmG;7lM9r6X#{+P#=k`YdYNGR(7$=z)l$A2b^?+Jj^-7J$wt*cL3BW%}M=~ zngh%Zn=i_md?t+Vo8#KleHMVqYFhzowoGe}b*bhFlve&gV~(R()BB^{M(ZBT?V-rMp9l*+I_EAeK7zP4j;lCfv<^@k zAyH)0cLcJf?Z54dqshG;+26AjbJK}n#HA5~PK+1L9)G-Pizotp_-Nz_hhbHq=Cj`0 z$6~;klZ@GzEIq6DgB~i1-jI$&6PFw?OKyL~wM-5bc2HIkV|_lPropxr`mE`xF49&J zoAlg;5+au>i2*gezVgXGXllt=lJhavgVf}ez)2YekRJ-HH=HJ;-Z6wC5DT|nK1mio zwl4IDw2uuAYlDgW_*E33-v~bHD|@Aa3yVV1ye5(nxCt6iflsxyFYl88*xuZ|Nte|% z#rdb8Z+6vx@7}`{cZpgbdu*)X^a$^}qGqykHFmG@ws>@7V9Tcf@;t`;#pjrniVo<# zxQl}1?`NJ3zbB0E>JRm@yzgCKbNovMV#ewWKurN!;7gASyE7LLdQ&|J@>M(sxUe`g z+iM>s82bFwrQ;wR0Sh~pUEY-{a|*Gr!0eaOA^7`k-qAXDzXE|vrVNY~RKs!7H#~`$ zQv=L2Q;r-(g?=`p-HM@3mtk0K6Qe*(3@t@18U zIw<*#gfiqJHE)JctGocLYUfCcWTncqa$Ei%MP#@$eRE(qTNQE-lIqT&A*iRx#s=EA zv4rr87i|{@G4=-e9gEu>)*6u+3(V~E{efY|HS`!AX2y!5f)%zmhf!5+@53pxcM6ub zA4g5oT4Ya*r`hb|?|7P=X!TV_)79bJlxlk3qSe4pOt^=zrt+av+K%B?>x)4JSI?6k z$xekmi?Vk{PZew@zUtoq&j&c!4fzs1tq@glMx zbTSMrGI_XFqd8MK6XTwnt_I#Nj*1*z(u;X#x@S5d^&u?Ss80qsI350LZGrV}^QSy{ zV20Cm<=goTb9u@t;(v5zBe-=Y7p5!7Qb|=exI35aTeREv?8LY6!S}o-9Vnz{kcek5 zgK-Hy9iwNHm6_4Z1DsN8nbt9>EcIhcJetgo_2!Kd{t7nF7?d#7<}vD=P;20oUOgRV zA6#%zXhnOTU%jP;StXHeI~}^&4hQT&ylbg68`?R*vyBxOmJgFr*<8$Up_Y_jgrW<- z@tQ|dY(TMK>}L-0+z^vT$Z^wC zTHJj{!2i8!xRhU)Z1ogd4$wOxRuugi=GnWF>L0`8xQ8+8_aD=poin7d&A5I@6$$N% zW_qeoG_nUP^4|Chb;VD3&`z$VNQU+|vCDCwK~c)?6@oJeUo@(7D=QQF)iM99OQX^T zhdkmpW&_LagjaGE*G%em+`H^;^UVtE=9VC*kh)EehGY#hRhvynm1whz6`J(#)?_2q z`PGGEC^myawNHZH@$9Dzld$o8rwq(&>Pt1`5Z*mC2i8l;72DTqtJefWoW-yucJp=^ zyIKpgtDax9q+@cK2lJS@cJpfR^_<>dqVmJ@?bM;;<9~J3>D6CT;DCb@L^~*BEXGgx zrW@Pj|B6f>$v`P7Rs)7prXX}hVO4Pt4@k+hq5KpsyJlcC_wu0rwCpD!DOWdukzFOa zUfVF5N3QX9uX>X`ScpO!3i1HvpykHRvd5ACF2eg?E4yz3$q zjL^4`G|G0;T8JA5z3IRdfiK9$gFBF3sC*0B!bRzvkDaYX%raU!{jw^%(vYE0U!$UZ z0kH*L6Od-=C0%60@SSADbusnSYLHup8z4%uRdf82DG%6z9{x4fWB6yo)Bj?u_pfEj zpRARC&zY5|qFJ-gjNntV_`So1bUK*9o7G*SSH(6VLXZm2r=}9{jw$u&H^RS8ht9hJbnJ=` z)O?u&J#*X*AA|&9;;KQ*%XywJ%q_k4rip@Dm{2OTf~QPc0e%G5UEo@u#@cwLRI^c)!J*x4`kK4pU9Ft9^4LJl z7}{5jbEY+sy&G+^ie7Jc8GB6I*GW^h@0TvhTXJJNZmWTsDF2_XEdL~QE_rN7nb{N za^C-16hK?TGzLX{eef0&gfX>v(_pzb-sFBp;W*NXN1%sL$_)%7OD%ln;pJ+rAejhr1-IjwW1t!Zy?Bi#RqA%oht zsT4>9V=1l=OIWFQlGKqm5N2~D3P9vi+d*GTkFHJU*DJ&CWv@T9Ut}5Rx4LL)T&Z{eBWx!EmcZ8KddxN66S`JG5(@J74XV2@=?2crAYS;BH$s6QbXV64s6HaTB44dH`OwlRv}@wFq2s4{_GQgpo+-quO| zob~wLuLF6r#OPNJ)1xtWhn{R~fGoM78VtPxO;~YIIaOBRa3mt(LheAF{Z#m+>F6wra6w&ao5y z8lx8addwy?+NOy(#3XyG0a&wSD2!c1cs;syZsc4(0;56q=Wo10zcs5F9Icc=S=0nR z+s_4B1ryg~YUirR_zm&N`Hyq3tp&V%g4ve(MGLW5kZ4%O9Uh&}N|h^hD&$%3_TTCO zr$=@u3M>qVcj{KcQsSR&bOU+ScLee*igLCPH1xz^7U9B;`5v%5kZs<9X%81!*r52R z%}QsR4pucW8wIfZZh6(6OKxXj%gG z`iGb&I2D)br^Q!__x4|00YpME=Kq^j_0-n?SmLhtpe7wDOSDUz79e9DE13LLBIYPH#KDVT3b#$=L%6FB7i_a-)c3B_8x!Rf z#d$$B$e8eSp$w&}uVfar!2a3z4rYJ7-<)~TmmPgsZ{=$SG8n5Ce2YVF;PO67NkO4w zi3zvNMWj93)T+6O;cG)$qsSXgE zQRVaxeK;GmHou@3xtEwyM^kd6NM=BcJ+K}tPw+=!08mPk@jDUb~HQ#P{7ZB0|X~P*;UV*SFhFx)vMhNnhFNh#L2TugmBzu1OfVZ zjW&;vQRpx1=>q@QN|#`Q|hZWi9VG+t(m)@UF29}Ve8~A$09sgrHFSY^shoCNc zhQ#;73C?|bV$AMlq9z2AwG9(ac#`O?2p#*L!dQZ&mCT$2NBDxt`@V&`k2htYuOUnf z5mFI}^|~7l9A7j+b7b4(d2PvS?2AhKc0n!7O(`a4i1zY-Q>%Xq=JekR6vD8)JZ zb{I<5_k4r<*7QqvHzY6vnF!O!iJHoTFyYA=*D@P| znX|GPn)<5hKEGDWdH899j=Z-@&4JjmMb!0NF7h=|23=jfK8x!*V%_VgTbVW|$;v^q z)vCFvvhPo0s?{=!mUC+yTwl;Z{FdLRXQvv@Z6SlWFi#{QE-l)SwP+LV=H$Iqp9%Hb z!KzWW(}jlE`VBibSd`Y;rfUod1d@0IO&ctxX7TJkQ0IEAGt{2n-(!LmOkOr6WUVuY+pg{&$zB5tHj=^}Kp#B@yMxh3xy1WiS|qv5h4~*^?xaWQ#1xz86uEr7RWMOObueT1frxd$f)5{XYGk z_y2z0-_zqWbD#TM=bYlr{=&r60qrY%0&Fj^iBfGfUp)AYC!~h?_;0*4 z4Z7^)b2#;5z{}xKo*j?g5TxUyr9_`8<&*V=ojxag3QwIOGDXHSN2YFMvoNq>*i7?sJrzU3@K4E##_jp{$glj0mC zaOV)skY3GHQ=SxU36*TX0lsvM{gXG*jT4lEe(zKDVrmOHvh9CBt1puT5D) z;w7CQ3oP)f$^gC9d&u z$lmfc1N+C`sX~GVv#;N2N99{P0iarDC3N46)jJ>9a- z&#&2Bv$U1bNtyM)cZoI5CR|5XU-IDpH?ju*N6Q@TGaY^wF~c!`S;U;Ktw`=X#ag=c zm1mp&;U`@VkL7wbFt)Gm5HIQA+K<12+aSXEy%TP)k^JuN@;u4x`l1$`ovZNB@p|B` zagX*G)}@5Sc{cf6pI>q+$I6XmU4TU=BS>rqEnEHLfP3T zTxJQP50(0_@w*v))jzAL+}o6#?s*$l6;?kQeXv(5r(->z7ZJd3z@#mZm}iG%3V07U_r6_9s~zh7w)>WP%;!5A{=j=g&9_BXz3xg& z6gFoz3wm+gX7^l`n#y6Z+iJMnQ(r2%r8_#3lCL^VJt{TO+M27gGm5GGv~z^0nupDc z=68OhVeQp#^R`Eu3zRc=hs0#)z2|*i6pv^~HDO61FL@ne60K%ocS(;&oeb$o7(;5O!l(R+P2*{mCjbXukfJi zsShjj7UHoA$2&LV^(9Z#u3gvpZ3;37HRe2Bs(q%jH~TT``9QTJ@e6!=4ksw)fXdKbNEIqU>s_J!V zt9WZ&P}3G;je0nuqV(Q_0=C0D6`|*C7|(y%+%0EB5*K}?&)`oAYPUHhbvZ0DFjEW= zJijYLtU~{>ekY6klnUC@HqN%TxLLGOtYrksHMMATYzW5{igbAF;v>t)9jejMm&ZSU z#sGCqnV>G@{LO!(UU&p%(2 z=RLykxqpr*{p|k6?oUe5pJtoYvZ5Sb-*DMn&sN6N;GCu$vbmg>Wf8K!o{gurV6Wf4 zE`#vCcYBEMzfM{&3ZDoWvp5|BDKB-iN;;+mV>tc!;HY~LvEihytRaWCaPpHISzN;X!Pe&hYv zWib~%ZP+Gx(4*$juCo(2(Yu2%I zH7_~D_lecNF5hm?1))5IS_Wt1g}(b|_1d@Dp$^yc>9N??Xij=GeG|{DI376irT}Rk zXjk)w7?I`9{?)Crt`~l7yp+{{bhM>wqEtNiAo)(OPeI7mocC9yeAt+`boP(C06&uK zB`)ghZb57)JTfeKC*cV)_*~XprnCEJ*CTvizOP;5-4i$PA3Qs4n)UymeDME~XQzD# z$xqLYK>y`0a`Pkf$y^v#-}f5_B|c>cJ~4M2V0W|P#Mrz_Jdq)eyUa!%!6OAU3p}w7$k{~=47X)8NZfC@$7tBRDo9`)|+%aMAg#&59sN5yY3al%gnq@D(v-$s-}tBuh5AGeyj6}8_qA{2_<9<$OC8edpU7cPA{zEP&u zBevBxEjfm{TCc$sZ|ZPWcQFul&$hU* zO>1$Ml05l&mwygscS92eYRfimrTF)G4@;}}f|eu)i}5L*J%ls*&~tOi*32=9_HZ#*#v&d zF~j7_jdmqT`T>Rc$B@b{y3Jj2q~fGC72C(++B905tX<|8vFTH8mE&5G!TSE##zQf8 zn8nJEwAA^03Ea;dHt!E}8{Kw?W2sbYVL&K$azjnLY;A?Gr*DmTreKD3b%j!UfK{tZl=KK;bHBXfRlyB{)qo;<5sTrp6; z|7G7%lz}xCZP4v%QjDoA>9Z2=$+cWU3*Sba?cUdbl<@Cn6ztrBOg-vV?{SJ@Zo5za zkhrzAc4{|YP;lO-Ye$q^cH7?j>PXVE+{=T%Q-6{-|G!@{5VTL5__<`D zaG1Y4D$EBr16bBl;62hGYzPp%Tp$Pk%o|c@!c*tRqm?|j6I5(kRISe#$|-dSExdO* zpsGe9?k;*FDtmOm4NJ!M)Zbeb9!g+w0}S2%c*Kn52 zJ2X5mzNOT#hp_D;|C;)y3a6*z?XDSdoYi`W`**8g=}>EBvY4X9rE0elKT_)*(GS_>Jr1IiHKfVOob{(< z-gu#G@ViRtKDN7kIG&$oZ!5&dxe;}D;VFCQ+P>rQ=1f}tV`DviDXuoM(VlNpUW3Mfqr!X?4ob@ISIk#KzVdl}FwB`0UUyN4AW$*RR$eBr<5qfctTgUWE<+^s~Y}4W{XL6C}W4W7V4=-QwIx)pl zEL6~NK~ieWF1Y)iBlh~-jJwgbm@SeQ#_jyN?;-lNxfZdFM@~76WWc{z){HyPeZ958 z?1bRvE!(PPH(XasAfTtCjJw6#K2kJqf>ySSc(Sy+g9kfa>1h!&Yd&0A594OSUVJv`eeu0Td)2eUx=~Z*;$7#8 z5Nch0?NXA4OU|=yL}$&6JsURfkirEY3A{VX(fg98nY^B?=AwOG<*Z1yFmb1}Jg3R< zsSNEM#qyk+jE=^Rt6%z{VVS6WdEdDDwN8%w&^-}d9s-XP&-Q&jA`~`ND`#*^ugtQ`mve=Tkj+Hy9ZuW6yRd5?R}8SWm9^;%rnT0{Suey#!4ZFx9d5o$1gPo z9ziumFC4dVkf|GJOiZhOGT~N;l(En6JL0o2a%k{Su-dje2B$v?DLmEAzpHQ;I}AMZ zUhHVoXWd-Btj5OPc@OQAm7FBSNXjQ&?cUI_mh{jE$f7*c#!Gj~RZ~^D`I$lwyjsqVIEKYq-dQ4?;5+{ke{a>0ZDuvN0>?S!Cd_KbP?lb4-iDBDiQc*nl>w^))2 zt%?$;xZ~Jr9oD*+c%ssxS?Fo1F;?F9idNu0ZUk0F|Bl9OdrqM8DWs znRCeOnL8oMf?sxL9;a4tj*1zFsIPFK{WULgt+$-`SS0zTxfzl=da{>j_xSf_;VZ zgrjn;y5d?f5xRQ)?dGOaW!Qm!nWTklAHy%HufL0x*BMk=AE)Q#|4DuzHr;pI7C+s#hzoC_0rpcsu#Rf+=~<@6lq)Ij+P?78%N3J1>CV2I64a_hUlh z*pI=}!GIZlXdbEp%Xn&F5an2%P(k$OFdj?FEI~g*Z3`Mq(^uN42ug z9ZfCtQr-03@MuaHCN??m$;WS?7txa{v{u>sBm;7#cKB8+SL-oj4QU~rjLMM$=FGbV zYck&63gSOKn7t#h`AC8;VHZ@Q(pswL>qqgcLyG73Rg@+yy%SZs%Rs@fZbNgdA3^G| z%IycHfPR+b`>TG$XU5j);p*_aSm!N1jiqL`KHnX-@7lQM!07Abli`j;0>^2&i@~ae znV!d;lM~f-K|Af0b;45i&IINRojBp^I7CH>k${t%r;Vndv!UvYzP<8_CgolBn^)C8X=yS6A@?8xSycg0!=A9L?_Me{7ps3D%3V?JIF z(2;#VW5UOie00l3?F~XzcSGJadX|aq8ZF#&E%+pl--fy^ZI2e=JO&%`lyUB1?+62x zUKcEq{Y>7Bypt2d}+iMUL&cwhkS6!DA58t6IGAb2`*(`aF!yK14{OIqm$SG;g%#3-xz7 z!(CW4HOHKTJ8a4)PO{u=|C%+5wrC%oE`IUg%(|2~N@RhILFu4nj9T$V!8X^#?XjHZ zH+nju__^>yB`Ew&w)<$Ish%655w>~0n|A1S^!vEzp} ze4mMtVY}vAy{9}rPoz+8JQ}uOr8gXpD>-~W-AtHCra3oksQvI_q%U;A=N|l&8v`#l zTO+aV;|%enMN{O*1I*ahN8_8kalG6P^7niuo1(>)Bpw}~pZ+p7)A~L@`^`X-y2B7r zH$cj8hW+8qrO!|F**iSC#1vUvrLZ#s>b5=;7iabiwxQwX7wu{wN)J^k4oWrEC>+1a zU_W?N{(<~H-;%923^qlCdHYm%I17VVCk}`O@p|WG+Ugb?=Wa~yG~)6!w@6zgD`W;gn8`;y1D-d@wEx@Z-XnMx zmgK8;vd5AI)V}qWy{r|p_B$OD>Q!Cl=wl}v;B@A;SCqnKCk%;M`oOwlL&GN^2A5Lz zQ4BxYTAyg#@w7TGWf!~Lx|)JF-6s>u+<9>wQ1)FUo8`9G3BH?2MqCR6~kBFLR8{xfFeaM0C|t)%~UqBT}Ur*v9MbZsv5X z;qDG`zvs;P#{O~I73-GXu?gLWh0{~T$&Uv{8$2FGll;Gq#{Btt z2HrNRUgE+{YD=IRddQqiI?O;}%VBYSSX&2=fJ(FLNi z@Z`-k(X4zU0iB`!;7a0@P~-g{RubA%j{gNK32oid&y@s*hX378>rsRn~hhxqI-!Axf*s-mMESilH~iZOM2Nd$9N19#T2*HF^q~| z;JPNx-vs4%*C$;Wv8w!LSvw2e&TH1FBy3jRwPQ9}r!Y(+g?vH2NIBK*zKiana>=uX zq_=$~&zvs2vsk!+702X{s#36E`Taq%BqoXZzT(F|Z zmjQT6qpdq`$^XtNePL#+-pp|zOPG0UN%N?@R{CSxVK4vTd5X4^W~XM}oJ?Hzj*L9x z9bDH)RgTrsu(zT&9cqQYW>IiF@5DDb+D;#T)6c<4bQMssj2_RkijCUK;Wd)ihUfMw z=+WDF+u_2_t6%y!(s7kZnMTvSw$pC9^=%~Ge4$Pq+b?|mOiPc=^uG_(`%sKp>Wglc>I&D&? z@YP|=yxhjm`W!=IX^2d|jPl)A;E=FM&X_K9WUlRDvq%FACYb-;8KHG4|iG_ zj<gw9ft_ip5zLZtyvH9y|%qn+O z=Ns-Yn8Y`|vk_G@*eTfZNT6LgY&4&&c684qtL+f)_918uzVdcq(>5)I0pr&6eeWSg zi;Kzb??}V*7v4Pqvj{L19!gY%rKmhuxKA-UsUg{3*&1$*1hJ^_D%8joVoJ$pT$K#3&fK@6r9eAwk&CqtjnK zCv)Yw-I{s31Ejij=SYTHjhA*!=Y~k-2)jE&1rc1c!1vcJc&K1TRVMq>uEh-uk60M4 zHia}t-ina<0=yRVBSweyKR8?3gNOeG&X%^$?5DGZ<4}L=Yz@FtF24z;FA|?@;jbL{ zWG=IxD@d=uxz2|1*@$A^)=E5gK_Q2%!)=>3&-d{Pl{rZfa()D%S8W#@T*X~w%LXjP zW4^jZi#+YuZn_+DH1Y9_)EOT0qf8sGZOKRp3lSQ^c;dE`+7%9FNdaN|&JBfeWy%MQ zyygq=6Vshv({=LRbE!qqMeTGn@_VrpR|x$dFhS_$jvn_9v<>!XD4 zxoD7{GNNM+9Da#xvaj1-e=;_^buO+$;h^@lr$GmGSu`K9nC_X@fT&B1l^%($)IYRA zdwr+udnOtz?zFy=bGer+;(m-4E%Z}nZWyMFd z`agPfrC^(Vx}Y!FE^=4hx0L#L+VnzH(fm+yX?s3LLHxm7(d6v7oetdXQhrjW-bM-% z-FX0-h?_40Q*wfacG{*bOfuy@^i1#gXr*pg-n1`_HMA^KntPKlUt0RN%ApD9+Lr=y z_F06}-ZI>q&YTqFlvux6voM3AHZGdxdd}i{FMCY>)27Wfr0q*ZMbd0GpC`EEC=5ny7DM=x5Hr28~H-dNpWt{vBM<| z6Qab$!1gOdo8hGS`Qjrx&0VEroKohIm|l@G>AhCAyWh)V^8=LCq{i!rT{F-1Yw+kJ zqBn}ZkFDXVEKjrHb?HZv7xIOAMev7>y{#bf?Kj>4jIN`1Uq2*ca3REXSsF9$Gp#Hl%Jme~8hntxT$D;scs}#&5E-8)AHSa^S*d-Uzv^=!wvAgJ<>!oU(U6 zH@>-aLz{v#NS>Z+K8c<7Ir#c^*TU1BCbnI{??k7JuPc=$HU%ZszD(om6W;u_SjqaF zqj+jpx^C%R($<@K-H<>xlSq``>6^Y{CIj_x1T^>C#~TF1gdq+ZEZm|jv?vK-Nz zenvXM`(V6nuA)IlFf&|AD)U$i!{goF3SkD8t&z+-(>is<@nO1pnnAfGZGv32u_NgZ z(%PW4q)=@)-O(c*0$r*aq17!?Y~3Mzvl++sKYd)?kk~5^cztfst(sxqmdq^O^ozN1K~CS#*8&=c*<=kT;ZTIW95#DKTC; zg=Jd$OO=>B!{p4NXZTw)ye#fBIdu~{;mwaz@-z##PUXyhHh(tkPng%p`JAVVRn*qi+~DF}X&n)^OMqnO(o^qJH<< zy7HKZ!BMBm`x*S%4!yV~8t^3i-iz=qo5JAUKGA!tBFz>d_YM2rciE#=|) zhbI(AwFwt=GXqO(-da@KTer`^1b`}~v%{x!GA`$}e*F?C9Voldu%?_>H=gq{<>bw% zmUBj%9{v?tBCjKU*LL0v&go znkN~`c0WFkYtkyHZz+wwOt!;q^)N`1QA~1vKWA8l6#D+)U0;e(#aSC!*Zg&l^s#Gf z8H?7cb}uLbM%O%!Rx7e&aISJf%*x3G+%0T9fJh&Fc(H(Abg4fnd~#SNK+3k zXJVC8PI6bt!IO+qlw5Y*w=L5=TB^3AC**V@*W{}T)5x9bC%hCccKt=G_E)=G}mwY+UDBgVL^?KTUUC+1vMID(lym$NPKn%Qk%Uv*QrZ%oV)5=QK~Ps z;h3p4CuP0znrE-KgyiQ)b>^LPzhCe!*?+dP7Oj}nhOp&jZokealHhq+{%(ny4IO9I#8lcd%#kZOHKP(Bfsq+5?OTy|I7dY;3%b~Q+ICi30 z%iOEJuPyT0%f|mS<(%VzgG~n<#BQqXYveX&EWGup+bi+i*Tr$+6St?@5JT~I+4kwI zDOnuz*!RWU<=j+f=M7(yi~Bit`JGQ#Y$G|IhW1GwVi##nIk>jOJ946sw`4>~`Rj=d zYj-n>w53!xg+b4|yc#V%r_z~g9(T;fW3pUjs$rVnf~$Gk{ozMhC7%c3Tn7Cugz>ZH za(rHO51%c$2|s#=Im=$cf2k&vp=Gqin9y)bu?pJ|%_bF=|9qE661m{@)re0gl_h(# zdShg+*WA@*%~l_G_}VkSho$tQr*D43(T@{i&o@q&UnGx?U5%JzcSJ9lw$FwezWQ_! zc2d8O`x}BGGbLQTq%zK6&Hrbu$kLw{32#mD#gNSmChDu-bH-Lq%KS*6|+y zgN_~peP<8n8D&3C3@VI`GZBMjO~Q@Mc8DKlh%SANjjCg+3*I%FuHvq!PR!57f9Y1+ zuw`0mZ4#edhND9r^y+x=#;p;$(zBoTU#~m3Z}yDX>{jDQ$1V4;B97mlZ^d;ZO{^~E zW+$)NSy!MVm0Zh~!(XJnCVwkub^M-no~~+BOakBL?;c$5QKe;LP{dSmJbc%r5(56g z(fi6~Uv0$zoi(upr1CyHa{b*o6QxSQ9b%}#9*@CVzp6IIdPQ=+_jJ2+W>$i((S?gs zNGVTa&%$u0%Y(%vKfS12l^w^@EJt>>+{%@B6O;Dd!^qj@qmk*m*VfuZD`>iM@!4$m zr{yBs(IM}$!lqsOzrL8>fA5Lb#B+a-qgN)-ey>NAiyt*wNtk5gDp;o&PF~!d@aEc- zF2|*iT3mIgF4nqd_l=s@7V7Dn>NWB#o;(cCyK&r}$y=<7=eEF_wGXn^pcfr-+s z-XnDEL$>+UL(x9I0J*q9$>hrnh?`XxBf<_b9LdvbAC2Kwx;=To27X1FBL^8MV~$$V zsr-07T$(?jZhjtDde-!~UT^Gt*WM2IO>c%IMxlJhTh>Bx6-$&IJPyQ<0u-#8E}Do~ISYVu+7UNwQtamZu+V1yQLHqO}W z%9Ds$mH3BH-o40iBoE6c31r{<^}ug*3Q^lS)}3Ywo^izwuyl-d<_S5SV+gOl&IwB> zuc-CPuv=WHx>1u5G7_f}`ciTJj-vM5vwi(Ol%y(yi&v!i4jb+a#ff!q7i(vDxoHrg zc1rJs@yQKMu^I0kT&%ljCh~xfd*_$&?9R2jSn>xMvvh18bZ>ga@_@*Mkp=xF3GL84O=y*}LaiX4KHdCf6tNvgwzjuilQcGG2H6jAbM6 zW@(kBnYZZgEWURMfku1eia91d6YRL3ofOCxVXw8*!@{upYU=|wyoqH?mq+ScU zR<>no9s~SnTFThk@QA6rXsmmH{AUGCt?|hc$BYtoMWzdU#?5l&R_QM<$e3gW45_3c zrfn>52nl}Nc`beuE_dy(jtr^+Giir`1Ts8ZH`s*J!+^h}m5aICqeBE{P#O78!vO}pxGPV{oWkWAB~A2V-qE?xlp4qHmhLPqhHt?4(#I%R1g{V zmV_vLicVZCIGZL>ecGRMIiMbG z=6B0CCHgSefiV|+9PrAyp65#{;a3&7^3@A6bakL`|M@9nqXLb?~qqM$qK&^IskNNRRt8F}!-$uB#;zM4DD`Y?5Po#@T% z#aCITOQx-+jKvBHF74b4zDs5u-;fb{cMCeq2<9*9`<-Inxr*YyUZqSK%uk8=OkUZO z_*QRU6q|XLf)ejg)2sVL+iev-xH+$Fi@Z+`oX{}lx$Ur~`1-8STqEOSmgBL$nhWVI zi)WiN+IuAYo{BO~2E1f?-*~049#L*cuAJN!c3t^3IIFiamk&N%Ow4 z4(m5&8%HIo`j0-jZsMUzg!z`j&U>HzN=a_gLoud$AL06RK&LqCW<_mO(P@gntNDm0 zF}mA|$O*%If@zOLgFB5*RDV8OGA;UH``5mOgHP6sN3Y{weWIZL#~WoB1e{ycNq~mH zetpM4s6Q^J!hcVc|MA>F(N;aBz$P&=TZB)eckzPr^G9ZOKAvWE;FKa7)e!Pa>Kws|JiZ)tv}7S`g}s zH+6n+N1}m;1N`Z}Xg%xiu7J%cCQj4=1EJvHEVDfYem#kIB!H3tqe&n+6P$>qcv`x& zrKf*Ice%*L!O=;|67K*(fND~}|G0vqK(5+EGbc+&h&~*!b2tVIL117I6z~c&@DB?l zi7)_+3P&Iy2=EV!1Iz^t0rA0W@DsddV*J_apFXLaezXExf`3RP5}<%VVyOJkz`}qL z!2#cq5b!$+g@$0z2nZGd2Y6zrd@*pKC2$XiL<4XD9}CKW7C}sa-%JsA7RkkQf{l3ls!}g+t&t7zB<$QUwFQ zV*!H#;V3{DPzXR|G@u?F3W9_q0kwmj1TfGjKvbX=44?v10{H#p{qqx)0CYJ2?cd*F z{OSk51qSqb<*>kk=ZpV@Apiw}e`pavWdI!H@bez{2@V;cJ2;lAuRke+cd3en!GIwY z`7w~o{Q~>6^6#hF{Kf#jVSztjpg>$;@dtRF`|NZK6FUuhmjyE;jcDGo$}18p~!t!rgJe#!`lD@`;vCpZAn z1_4-XARv3bt00?2v8fmsRP*-YT`fuaLmX~cvEm? zhnfLw364ZZfSdzh(oj=^8IeT7LoF$`7I+7W4GB+if|4zOILI1!lQT#GXiFkEIufDg z!2f{ep$d*9yrU(QwEUsBjCF4L!-i-}aRj_J)Sg0i0{BqlAsl*HR0s?q^2ZGmV6g_s znUlzXB+GC!6A}o85=bPX9Uvvt3~ymUaQN{7-2Jnkb_53}OESd~Z)*lsr?LmASx|^1 zDq9l4+zF~I1A!q?%e1Kgs#p$S#Pf^cZ#Y1I`IZTVL?Sprfk+MLC_t281Ah6TSSJU( z8NmkcU=4L#?(;8}%ZlLcV4D3HYCuji zf`tQt0JS4g9H|2Vb#fs)QUE;>$qrB_OW@wGt7WUPp#T9j0!qa&1MP!K?}tqQ1OYSn z)q?C`W`lP$rI4sHVX@#%dkWqGXajz=1j6TK9zTGNz(y7hm0UJb$z^_$zs(e&F1c)} zl0P*Cm86=aqzqK*r&-D@Hdy-e>713f%2=J4G`%Q?MQA=lu|BDEost!Cbxqqqy7+-M86PBA3Xqp2Pd3kC>iOX2T zWh~-vEGY384gpYy?J`3$6&(|ap^BFyEr{ugQ3DzxFN#T5T2HT8KIU`Kw@rapIRh1~Gf z7Mg#i{X@z>XoLMH>Kg&ZG&Ez0_@N~l=k2v2S2I zNgp%Q(xzrpKp}t6N^0_vR_;}FvTDNOA8Dh0jNEVg{u!13sc#h6m;bJlRpdtfu;xE# z|IiW*ZLlx@W7@!Oc7?uCKP=}@+UV7?LjR}}U}L|6Hu}eGqM`lIesC3?0NI|Ev{$hc zV0Zj)bV4_GfTRPJ+n;h{{(0`KA~%N4p8#nYdfNZ&PgbK%=TCq%3q9?B_OYwc{-J^2 zHi-FQl{7k8Z6`%*CqOb~dEkD}OY9E~{H6`$4d~sM36NI%7qo#S#Q{Oa=4>*wdG4bABOP3XLu{Pe*yY_;ea_BY}4s`Tj`84Sok)9W8dN&l?SG(84ZT5Hf6QNMevp>_&p4iz{y)3@jDL2R8cVGJ z)IdfJI9jFNqlO2-6*UF|w6HAa^5UolTvPk>_d+fEjQ=jx^4bLu|1oyUYXNZmV-S~p zD|o#u@UpK0u9r9Qz~{1RVar?L|ABD-aWDIO5Mj%EU@)^w)ej6w)y!`uh<~t?|Fkau z!D3nS%h5S-zO~F}d9eWaE}O`2hDea3B9MT?Q%}f2`Y2%3ut+$7^QVad&(Q|%t<=2~ z9ylQXjhE~df0OSkFw$flV&>?A27!HR6f+!Tg0SAYHr3paosTswT z-~c%!37iC&;GH1SK*AVE_5&b;Taw0_8$3jsW_fQo1@2%)t{s7z#Ly0*(@Y z{0Bj!P{6o?w|@KwMhM`45a5`983dfy0tQVB6G4FC1q}=bM}V(prh$n7ui*ou;8IS52LnnD>G+CZ!RU$x4+qDAX)78S&=T|kv@o0qxC5Yp z;Sj*6uYkdDRIf;b2ZzJJv@#70CxQbPJX#oVmcLSFIPjiIIv5HLdfXLl;Xu^}EewuA zg3gNu501vs&0icw1oZGUcsMi?Ov=#0fJ%pzb_K_XVCnc`f!RgZ7D=Z+pd1~H>S=f& zU}!pjfJ30b*41 zp@%~u>0&Mn3Poq97&I14iLYpj0^>>=7zQIk=i4!Wds%7sIG`4fPFGm4dXSbL76|NC z>JNtk>l9bw0bXn+42GrCJr0GXizBdbz$vb53;gVrzQ2H1q{Bmk=@%LuV39!Jv;u|$ z>JL}y3X7zV8L((zfa%)eR#{hJbp8~JM$z%bVzA)8lSV!q8cr`WR)lVzV}UtCCo`5l z_QB#r=yVEhCsyhd2l#usvBbdt^zA@-3=!C3FfmeV?9_?pz;YO{s7;Mb2KMm3PVeMw z&B?$eARYDaR8AVAFNQQh;V~v?1fBqc;mzy+rZDk;#`v+}a&!U; WQ Date: Tue, 29 Dec 2015 09:18:00 +0000 Subject: [PATCH 130/230] Removed reference to old pdf manual. https://github.com/nmcl/JavaSim/issues/42 --- docs/README.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/docs/README.md b/docs/README.md index c9bec41..6bdf37c 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,5 +1,3 @@ -javasim-0.3.pdf - the original (last) JavaSim manual. Out of date with respect to the current codebase but included here (for now) for historical purposes. - manual.adoc - the current user manual. The files in the images directory are used within the manual so do not move independently. From 8914c5b6797acb8fcdceabb5db34bbe417786055 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 1 Jan 2016 08:57:50 +0000 Subject: [PATCH 131/230] hyperlinked references. https://github.com/nmcl/JavaSim/issues/45 --- docs/manual.adoc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 970bbe7..10ab25e 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -874,18 +874,18 @@ The actual quantile value is provided by getValue method. == References -[1] G. M. Birtwistle, O-J. Dahl, B. Myhrhaug, K. Nygaard, “Simula Begin”, Academic Press, 1973 +[1] link:http://dl.acm.org/citation.cfm?id=1096934[G. M. Birtwistle, O-J. Dahl, B. Myhrhaug, K. Nygaard, “Simula Begin”, Academic Press, 1973]. -[2] O-J. Dahl, B. Myhrhaug, K. Nygaard, “SIMULA Common Base Language”, Norwegian Computing Centre +[2] link:https://books.google.co.uk/books?id=4cCqCAAAQBAJ&pg=PA185&lpg=PA185&dq=O-J.+Dahl,+B.+Myhrhaug,+K.+Nygaard,+“SIMULA+Common+Base+Language”,+Norwegian+Computing+Centre&source=bl&ots=ZY5oBb1Hcy&sig=UurKDDPwtl_AMg6CgZcZ5Yyk8Ew&hl=en&sa=X&ved=0ahUKEwiygoLsiofKAhWDShQKHbtgDLkQ6AEIIjAA#v=onepage&q=O-J.%20Dahl%2C%20B.%20Myhrhaug%2C%20K.%20Nygaard%2C%20“SIMULA%20Common%20Base%20Language”%2C%20Norwegian%20Computing%20Centre&f=false[O-J. Dahl, B. Myhrhaug, K. Nygaard, “SIMULA Common Base Language”, Norwegian Computing Centre]. -[3] Knuth Vol2, “Seminumerical Algorithms”, Addison-Wesley, 1969, p. 117. +[3] link:http://www.amazon.com/The-Computer-Programming-Volume-Seminumerical/dp/0201038226[Knuth Vol2, “Seminumerical Algorithms”, Addison-Wesley, 1969, p. 117]. -[4] R. Sedgewick, “Algorithms”, Addison-Wesley, Reading MA, 1983, pp. 36-38. +[4] link:http://algs4.cs.princeton.edu/home/[R. Sedgewick, “Algorithms”, Addison-Wesley, Reading MA, 1983, pp. 36-38]. -[5] D. L. McCue and M. C. Little, “Computing Replica Placement in Distributed Systems”, Proceedings of the 2 IEEE Workshop on the Management of Replicated Data, November 1992, pp. 58-61. +[5] link:http://www.cs.ncl.ac.uk/publications/inproceedings/papers/630.pdf[D. L. McCue and M. C. Little, “Computing Replica Placement in Distributed Systems”, Proceedings of the 2 IEEE Workshop on the Management of Replicated Data, November 1992, pp. 58-61]. -[6] I. Mitrani, “Simulation Techniques for Discrete Event Systems”, Cambridge University Press, Cambridge, 1982. +[6] link:https://books.google.co.uk/books?id=CF04AAAAIAAJ&pg=PR4&lpg=PR4&dq=I.+Mitrani,+“Simulation+Techniques+for+Discrete+Event+Systems”,+Cambridge+University+Press&source=bl&ots=zw-1g5mS30&sig=GxA8y1Moew5QYY3tYR6Hh19ifLw&hl=en&sa=X&ved=0ahUKEwjM0dCIiYfKAhVFwBQKHYogAcAQ6AEINDAD#v=onepage&q=I.%20Mitrani%2C%20“Simulation%20Techniques%20for%20Discrete%20Event%20Systems”%2C%20Cambridge%20University%20Press&f=false[I. Mitrani, “Simulation Techniques for Discrete Event Systems”, Cambridge University Press, Cambridge, 1982]. -[7] M. C. Little and D. L. McCue, “The Replica Management System: a Scheme for Flexible and Dynamic Replication”, Proceedings of the 2 International Workshop on Configurable Distributed Systems, March 1994, pp. 46-57. +[7] link:http://www.cs.newcastle.ac.uk/publications/inproceedings/papers/29.pdf[M. C. Little and D. L. McCue, “The Replica Management System: a Scheme for Flexible and Dynamic Replication”, Proceedings of the 2 International Workshop on Configurable Distributed Systems, March 1994, pp. 46-57]. -[8] G. D. Parrington et al, “The Design and Implementation of Arjuna”, Broadcast Project Technical Report, October 1994. +[8] link:https://www.usenix.org/legacy/publications/compsystems/1995/sum_parrington.pdf[G. D. Parrington et al, “The Design and Implementation of Arjuna”, Broadcast Project Technical Report, October 1994]. From 00e7c117d93cbb754fb1a9def31e6e22b80ca018 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 3 Jan 2016 18:21:12 +0000 Subject: [PATCH 132/230] Changed CR1 to Final. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Was after the release, but … --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index dd41b4c..ab8d20a 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ javasim javasim javasim - 2.0.CR1 + 2.0.Final http://maven.apache.org From bad41ba0ce4dc3c43c18b50f8803254d36db5476 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 4 Jan 2016 20:22:58 +0000 Subject: [PATCH 133/230] Removed version number and slight title change. --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 10ab25e..bde2cd3 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -1,4 +1,4 @@ -= JavaSim Manual Version 2.0 += JavaSim User Manual :numbered: JavaSim is an object-oriented, discrete event simulation toolkit for Java. It's a Java implementation of the original link:http://www.cs.newcastle.ac.uk/publications/articles/papers/200.pdf[C++SIM simulation toolkit], which was developed as a direct consequence of research conducted within the scope of the link:http://www.ncl.ac.uk/computing/research/publication/159390[Arjuna project from Newcastle University] in the 1980's. Therefore, it shares many of the same requirements: From c56ddffd70a2af0a16ac544c02f0ad5851e647a2 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 4 Jan 2016 20:28:06 +0000 Subject: [PATCH 134/230] Update manual.adoc --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index bde2cd3..c592c0d 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -113,7 +113,7 @@ public class Simulation To enable multiple simulation runs to occur within a single application, it is possible to reset it and the simulation clock by calling the reset() method of the Simulation class. This causes the simulation to remove all processes (simulation objects) currently registered on the scheduler queue and to invoke a class specific method on each of them which resets their states (detailed in the next section). Once this is finished the simulation is ready for an additional run. A suspended process is informed that it has been “reset” by having the method it called to originally suspend itself (i.e., place itself on the scheduler queue) raise the RestartSimulation exception, which the object should catch. It must then perform any work necessary to put itself back in a state ready for restarting the simulation, and should then suspend itself again before the simulation can be restarted (typically by calling cancel.) -A process can use isReset to determine whether or not the simulation has been reset. The start and stop operations allow the simulation to be halted or resumed respectively. +A process can use isReset() to determine whether or not the simulation has been reset. The start() and stop() operations allow the simulation to be halted or resumed respectively. === Simulation processes From a2fe15cf95c8ee7b02729cdf0c582a1e055ae370 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 5 Jan 2016 11:13:49 +0000 Subject: [PATCH 135/230] Removed as we now have an official release. https://github.com/nmcl/JavaSim/issues/49 https://github.com/nmcl/C--SIM/releases/tag/1.7.5_Final --- distributions/JavaSim-0.3GA-JDK1.4.tar.gz | Bin 138113 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 distributions/JavaSim-0.3GA-JDK1.4.tar.gz diff --git a/distributions/JavaSim-0.3GA-JDK1.4.tar.gz b/distributions/JavaSim-0.3GA-JDK1.4.tar.gz deleted file mode 100644 index eac62c0b540cb38aabb399769de497817f28c988..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 138113 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 z�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 N{s(jx8U6s!2LL5sE)W0! From f74e45bec43dbfee64e5fc35b34f644bf2c122c2 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 5 Jan 2016 11:14:30 +0000 Subject: [PATCH 136/230] Removed as we now have an official release. https://github.com/nmcl/JavaSim/issues/49 https://github.com/nmcl/C--SIM/releases/tag/1.7.5_Final --- distributions/README.md | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 distributions/README.md diff --git a/distributions/README.md b/distributions/README.md deleted file mode 100644 index 5b97c5d..0000000 --- a/distributions/README.md +++ /dev/null @@ -1,3 +0,0 @@ -Pre-built distributions. - -Currently only 0.3GA. This was built with JDK 1.4 several years ago. From 883dd13e530e552c576c8755bea52e169bb3f2ab Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 7 Jan 2016 20:04:15 +0000 Subject: [PATCH 137/230] Added class --- .gitignore | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 61d8179..c03c3d1 100644 --- a/.gitignore +++ b/.gitignore @@ -3,5 +3,6 @@ target .classpath .settings *.iml +*.class .idea -.DS_Store \ No newline at end of file +.DS_Store From 3e013c82040e4264882afe7d5591a11bf3dd68a6 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 8 Jan 2016 16:27:38 +0000 Subject: [PATCH 138/230] Update README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 6bdf37c..9d249b2 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,3 +1,3 @@ manual.adoc - the current user manual. -The files in the images directory are used within the manual so do not move independently. +The files in the images directory are used within the manual so do not move independently - the URLs used within the doc are relative not absolute. From ca485979908fb732921fd683aa42019e57973153 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 9 Jan 2016 17:33:41 +0000 Subject: [PATCH 139/230] Deprecated. https://github.com/nmcl/JavaSim/issues/50 --- src/main/java/org/javasim/simset/Head.java | 4 ++++ src/main/java/org/javasim/simset/Link.java | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/src/main/java/org/javasim/simset/Head.java b/src/main/java/org/javasim/simset/Head.java index f8e7959..d5a0241 100644 --- a/src/main/java/org/javasim/simset/Head.java +++ b/src/main/java/org/javasim/simset/Head.java @@ -27,6 +27,10 @@ // Thanks to Jim Bean for converting the C++SIM classes +/** + * @deprecated As of release 2.1 use Java's own linked lists. + */ + public class Head { public Head () { diff --git a/src/main/java/org/javasim/simset/Link.java b/src/main/java/org/javasim/simset/Link.java index 4f7482a..3bcb6f7 100644 --- a/src/main/java/org/javasim/simset/Link.java +++ b/src/main/java/org/javasim/simset/Link.java @@ -26,6 +26,10 @@ // Thanks to Jim Bean for converting the C++SIM classes +/** + * @deprecated As of release 2.1 use Java's own linked lists. + */ + public class Link { public Link () { From 72e894ab6068c2a7ee9a47210848b6ce0581a231 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 9 Jan 2016 19:05:14 +0000 Subject: [PATCH 140/230] Fixed throws format Old-style C++ throws. --- src/main/java/org/javasim/SimulationEntity.java | 10 +++++----- src/main/java/org/javasim/SimulationProcess.java | 3 +-- src/main/java/org/javasim/TriggerQueue.java | 6 +++--- .../org/javasim/internal/SimulationProcessList.java | 8 ++++---- .../java/org/javasim/stats/PrecisionHistogram.java | 7 +++---- src/main/java/org/javasim/stats/Quantile.java | 4 ++-- src/main/java/org/javasim/stats/SimpleHistogram.java | 12 ++++++------ src/test/java/org/javasim/examples/basic/Queue.java | 2 +- .../java/org/javasim/examples/interrupt/Queue.java | 2 +- 9 files changed, 26 insertions(+), 28 deletions(-) diff --git a/src/main/java/org/javasim/SimulationEntity.java b/src/main/java/org/javasim/SimulationEntity.java index 1a61b26..0355d18 100644 --- a/src/main/java/org/javasim/SimulationEntity.java +++ b/src/main/java/org/javasim/SimulationEntity.java @@ -43,10 +43,10 @@ public void interrupt (SimulationEntity toInterrupt, boolean immediate) throws SimulationException, RestartException { if (toInterrupt.terminated()) - throw (new SimulationException("Entity already terminated.")); + throw new SimulationException("Entity already terminated."); if (!toInterrupt._waiting) - throw (new SimulationException("Entity not waiting.")); + throw new SimulationException("Entity not waiting."); toInterrupt._interrupted = true; @@ -149,7 +149,7 @@ protected void timedWait (double waitTime) throws SimulationException, } catch (SimulationException e) { - throw (new SimulationException("Invalid entity.")); + throw new SimulationException("Invalid entity."); } _waiting = false; @@ -157,7 +157,7 @@ protected void timedWait (double waitTime) throws SimulationException, if (_interrupted) { _interrupted = false; - throw (new InterruptedException()); + throw new InterruptedException(); } } @@ -252,7 +252,7 @@ protected void waitForTrigger (TriggerQueue _queue) if (_triggered) _triggered = false; else - throw (new InterruptedException()); + throw new InterruptedException(); } /** diff --git a/src/main/java/org/javasim/SimulationProcess.java b/src/main/java/org/javasim/SimulationProcess.java index 5778da6..86b3840 100644 --- a/src/main/java/org/javasim/SimulationProcess.java +++ b/src/main/java/org/javasim/SimulationProcess.java @@ -85,8 +85,7 @@ public synchronized SimulationProcess nextEv () if (!idle()) return Scheduler.getQueue().getNext(this); else - throw (new SimulationException( - "SimulationProcess not on run queue.")); + throw new SimulationException("SimulationProcess not on run queue."); } /** diff --git a/src/main/java/org/javasim/TriggerQueue.java b/src/main/java/org/javasim/TriggerQueue.java index 3cafdf5..7b2578b 100644 --- a/src/main/java/org/javasim/TriggerQueue.java +++ b/src/main/java/org/javasim/TriggerQueue.java @@ -76,7 +76,7 @@ public synchronized void triggerFirst (boolean setTrigger) throws NoSuchElementException { if (head.size() == 0) - throw (new NoSuchElementException()); + throw new NoSuchElementException(); SimulationEntity removed = this.remove(); @@ -118,7 +118,7 @@ public synchronized void triggerAll () throws NoSuchElementException long currentNumber = head.size(); if (currentNumber == 0) - throw (new NoSuchElementException()); + throw new NoSuchElementException(); for (int i = 0; i < currentNumber; i++) triggerFirst(); @@ -128,7 +128,7 @@ protected synchronized void insert (SimulationEntity toAdd) throws SimulationException { if (toAdd.isWaiting()) - throw (new SimulationException("Entity already waiting on event.")); + throw new SimulationException("Entity already waiting on event."); head.add(toAdd); } diff --git a/src/main/java/org/javasim/internal/SimulationProcessList.java b/src/main/java/org/javasim/internal/SimulationProcessList.java index 0c3893c..4c02620 100644 --- a/src/main/java/org/javasim/internal/SimulationProcessList.java +++ b/src/main/java/org/javasim/internal/SimulationProcessList.java @@ -120,7 +120,7 @@ public synchronized SimulationProcess remove (SimulationProcess element) // Take care of boundary condition - empty list if (Head == null) - throw (new NoSuchElementException()); + throw new NoSuchElementException(); SimulationProcess p = null; @@ -145,7 +145,7 @@ public synchronized SimulationProcess remove (SimulationProcess element) } } - throw (new NoSuchElementException()); + throw new NoSuchElementException(); } public synchronized SimulationProcess remove () @@ -156,7 +156,7 @@ public synchronized SimulationProcess remove () if (Head != null) return (remove(Head.car())); else - throw (new NoSuchElementException()); + throw new NoSuchElementException(); } public synchronized SimulationProcess getNext (SimulationProcess current) @@ -165,7 +165,7 @@ public synchronized SimulationProcess getNext (SimulationProcess current) // take care of boundary condition - empty list. if ((Head == null) || (current == null)) - throw (new NoSuchElementException()); + throw new NoSuchElementException(); for (SimulationProcessCons ptr = Head; ptr != null; ptr = ptr.cdr()) { diff --git a/src/main/java/org/javasim/stats/PrecisionHistogram.java b/src/main/java/org/javasim/stats/PrecisionHistogram.java index e1329bb..8183305 100644 --- a/src/main/java/org/javasim/stats/PrecisionHistogram.java +++ b/src/main/java/org/javasim/stats/PrecisionHistogram.java @@ -121,7 +121,7 @@ public double sizeByIndex (long index) throws StatisticsException, Bucket ptr = Head; if ((index < 0) || (index > length)) - throw (new IllegalArgumentException("index out of range.")); + throw new IllegalArgumentException("index out of range."); for (long i = 0; (i < index) && (ptr != null); i++) ptr = ptr.cdr(); @@ -131,7 +131,7 @@ public double sizeByIndex (long index) throws StatisticsException, // we should never get here! - throw (new StatisticsException("sizeByIndex went off end of list.")); + throw new StatisticsException("sizeByIndex went off end of list."); } /** @@ -150,8 +150,7 @@ public double sizeByName (double name) throws IllegalArgumentException break; } - throw (new IllegalArgumentException("Bucket name " + name - + " not found.")); + throw new IllegalArgumentException("Bucket name " + name + " not found."); } /** diff --git a/src/main/java/org/javasim/stats/Quantile.java b/src/main/java/org/javasim/stats/Quantile.java index ca097c3..0a2e148 100644 --- a/src/main/java/org/javasim/stats/Quantile.java +++ b/src/main/java/org/javasim/stats/Quantile.java @@ -48,8 +48,8 @@ public Quantile(double q) throws IllegalArgumentException qProb = q; if ((q <= 0.0) || (q > 1.0)) - throw (new IllegalArgumentException("Quantile::Quantile ( " + q - + " ) : bad value.")); + throw new IllegalArgumentException("Quantile::Quantile ( " + q + + " ) : bad value."); } /** diff --git a/src/main/java/org/javasim/stats/SimpleHistogram.java b/src/main/java/org/javasim/stats/SimpleHistogram.java index 92123f5..18f1e31 100644 --- a/src/main/java/org/javasim/stats/SimpleHistogram.java +++ b/src/main/java/org/javasim/stats/SimpleHistogram.java @@ -97,9 +97,9 @@ public SimpleHistogram(double min, double max, double w) public void setValue (double value) throws IllegalArgumentException { if ((value < minIndex) || (value > maxIndex)) - throw (new IllegalArgumentException("Value " + value + throw new IllegalArgumentException("Value " + value + " is beyond histogram range [ " + minIndex + ", " - + maxIndex + " ]")); + + maxIndex + " ]"); for (Bucket ptr = Head; ptr != null; ptr = ptr.cdr()) { @@ -114,8 +114,8 @@ public void setValue (double value) throws IllegalArgumentException // shouldn't get here!! - throw (new IllegalArgumentException("Something went wrong with " - + value)); + throw new IllegalArgumentException("Something went wrong with " + + value); } /** @@ -145,7 +145,7 @@ public void reset () public double sizeByName (double name) throws IllegalArgumentException { if ((name < minIndex) || (name > maxIndex)) - throw (new IllegalArgumentException("Argument out of range.")); + throw new IllegalArgumentException("Argument out of range."); for (Bucket ptr = Head; ptr != null; ptr = ptr.cdr()) { @@ -155,7 +155,7 @@ public double sizeByName (double name) throws IllegalArgumentException return ptr.size(); } - throw (new IllegalArgumentException("Name " + name + " out of range.")); + throw new IllegalArgumentException("Name " + name + " out of range."); } /** diff --git a/src/test/java/org/javasim/examples/basic/Queue.java b/src/test/java/org/javasim/examples/basic/Queue.java index 34da0a0..f1ffc5a 100644 --- a/src/test/java/org/javasim/examples/basic/Queue.java +++ b/src/test/java/org/javasim/examples/basic/Queue.java @@ -46,7 +46,7 @@ public long queueSize () public Job dequeue () throws NoSuchElementException { if (isEmpty()) - throw (new NoSuchElementException()); + throw new NoSuchElementException(); List ptr = head; head = head.next; diff --git a/src/test/java/org/javasim/examples/interrupt/Queue.java b/src/test/java/org/javasim/examples/interrupt/Queue.java index 2387ad4..d7ef1f2 100644 --- a/src/test/java/org/javasim/examples/interrupt/Queue.java +++ b/src/test/java/org/javasim/examples/interrupt/Queue.java @@ -46,7 +46,7 @@ public long queueSize () public Job dequeue () throws NoSuchElementException { if (isEmpty()) - throw (new NoSuchElementException()); + throw new NoSuchElementException(); List ptr = head; head = head.next; From 41a17aad0b9ee453ab0bf771fcb60cb78e18e479 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 9 Jan 2016 19:28:44 +0000 Subject: [PATCH 141/230] Update manual.adoc --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index c592c0d..7f16466 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -868,7 +868,7 @@ public class Quantile extends PrecisionHistogram The p-quantile probability range must be specified when the object is instantiated, and can be obtained via the range method. -The actual quantile value is provided by getValue method. +The actual quantile value is provided by the getValue() method. === Example From 411459cc870d0a3fd6ffba177f46c382ccf7f634 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 9 Jan 2016 20:48:36 +0000 Subject: [PATCH 142/230] Change revision number for next release. --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ab8d20a..3e60141 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ javasim javasim javasim - 2.0.Final + 2.1.CR1 http://maven.apache.org From b6061f45de4a2f607e529604010873e4925e0a9c Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 9 Jan 2016 20:48:49 +0000 Subject: [PATCH 143/230] Added Streams example. https://github.com/nmcl/JavaSim/issues/38 --- .../org/javasim/examples/streams/Streams.java | 42 ++++++++++++++++++ .../streams/StreamsExampleUnitTest.java | 43 +++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 src/test/java/org/javasim/examples/streams/Streams.java create mode 100644 src/test/java/org/javasim/examples/streams/StreamsExampleUnitTest.java diff --git a/src/test/java/org/javasim/examples/streams/Streams.java b/src/test/java/org/javasim/examples/streams/Streams.java new file mode 100644 index 0000000..e8d5d65 --- /dev/null +++ b/src/test/java/org/javasim/examples/streams/Streams.java @@ -0,0 +1,42 @@ +/* + * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne + * and others contributors as indicated + * by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * (C) 1990-2008, + */ + +package org.javasim.examples.streams; + +import org.javasim.streams.NormalStream; +import org.javasim.stats.Histogram; + +public class Streams +{ + public static void main (String[] args) throws Exception + { + NormalStream str = new NormalStream(100.0, 2.0); + Histogram hist = new Histogram(10); + + for (int i = 0; i < 1000; i++) + { + hist.setValue(str.getNumber()); + } + + System.out.println("NormalStream error: "+str.error()); + + hist.print(); + } +} diff --git a/src/test/java/org/javasim/examples/streams/StreamsExampleUnitTest.java b/src/test/java/org/javasim/examples/streams/StreamsExampleUnitTest.java new file mode 100644 index 0000000..2ceb067 --- /dev/null +++ b/src/test/java/org/javasim/examples/streams/StreamsExampleUnitTest.java @@ -0,0 +1,43 @@ +/* + * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne + * and others contributors as indicated + * by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * (C) 1990-2008, + */ + +package org.javasim.examples.streams; + +import org.javasim.Simulation; + +import org.junit.Test; + +import static org.junit.Assert.*; + + +public class StreamsExampleUnitTest +{ + @Test + public void test () + { + try + { + Streams.main(null); + } + catch (final Throwable ex) + { + } + } +} From 1c671b97dbc75af63c038e2a335ac0d8ff5da211 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 9 Jan 2016 20:54:13 +0000 Subject: [PATCH 144/230] Added Streams example. https://github.com/nmcl/JavaSim/issues/38 --- docs/manual.adoc | 45 ++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 44 insertions(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 7f16466..8d615db 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -510,7 +510,50 @@ StreamSelect indicates the offset in the random number sequence to begin samplin === Example -TODO +In this example we will take a NormalStream instance obtain values from it which are then inserted in a Histogram so that we can then print out the contents and associated data. As we have already seen that NormalStream derives from RandomStream along with the other stream types, this example can be easily changed to use something else, such as the ExponentialStream. + +---- +NormalStream str = new NormalStream(100.0, 2.0); +Histogram hist = new Histogram(10); + +for (int i = 0; i < 1000; i++) +{ + hist.setValue(str.getNumber()); +} + +System.out.println("NormalStream error: "+str.error()); + +hist.print(); +---- + +If you were to execute this code then the output would be similar to the following: + +---- +NormalStream error: -0.047600000000002085 +Maximum number of buckets 10 +Merge choice is MEAN +PrecisionHistogram Data: +Number of buckets: 10 +Bucket : < 98.63959917087956, 541 > +Bucket : < 99.41934896772582, 1 > +Bucket : < 99.89948948370221, 17 > +Bucket : < 100.00514051631782, 2 > +Bucket : < 100.26527227806514, 1 > +Bucket : < 100.85347549916973, 3 > +Bucket : < 101.31195503916659, 1 > +Bucket : < 101.38562305997606, 1 > +Bucket : < 101.72199923851397, 432 > +Bucket : < 102.68618953365238, 1 > +Variance : 4.00810615160317 +Standard Deviation: 2.002025512225848 +Number of samples : 1000 +Minimum : 93.19494510640277 +Maximum : 105.9001968416066 +Sum : 100013.85724011554 +Mean : 100.01385724011554 +---- + +We will learn more about the Histogram class later in this document. == Advanced Simulation Classes From 5cd8a8170c53ed0dbeb21e6ffd72a53268b2a93c Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 9 Jan 2016 21:11:09 +0000 Subject: [PATCH 145/230] Added example MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Not quite a worked example yet … https://github.com/nmcl/JavaSim/issues/37 --- .../org/javasim/examples/stats/Stats.java | 42 +++++++++++++++++++ .../examples/stats/StatsExampleUnitTest.java | 42 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 src/test/java/org/javasim/examples/stats/Stats.java create mode 100644 src/test/java/org/javasim/examples/stats/StatsExampleUnitTest.java diff --git a/src/test/java/org/javasim/examples/stats/Stats.java b/src/test/java/org/javasim/examples/stats/Stats.java new file mode 100644 index 0000000..a66f926 --- /dev/null +++ b/src/test/java/org/javasim/examples/stats/Stats.java @@ -0,0 +1,42 @@ +/* + * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne + * and others contributors as indicated + * by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * (C) 1990-2008, + */ + +package org.javasim.examples.stats; + +import org.javasim.streams.NormalStream; +import org.javasim.stats.Quantile; + +public class Stats +{ + public static void main (String[] args) throws Exception + { + NormalStream str = new NormalStream(100.0, 2.0); + Quantile hist = new Quantile(); + + for (int i = 0; i < 20; i++) + { + hist.setValue(str.getNumber()); + } + + System.out.println("NormalStream error: "+str.error()); + + hist.print(); + } +} diff --git a/src/test/java/org/javasim/examples/stats/StatsExampleUnitTest.java b/src/test/java/org/javasim/examples/stats/StatsExampleUnitTest.java new file mode 100644 index 0000000..26bf9f7 --- /dev/null +++ b/src/test/java/org/javasim/examples/stats/StatsExampleUnitTest.java @@ -0,0 +1,42 @@ +/* + * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne + * and others contributors as indicated + * by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * (C) 1990-2008, + */ + +package org.javasim.examples.stats; + +import org.javasim.Simulation; + +import org.junit.Test; + +import static org.junit.Assert.*; + +public class StatsExampleUnitTest +{ + @Test + public void test () + { + try + { + Stats.main(null); + } + catch (final Throwable ex) + { + } + } +} From 40c0f2f3fc2a5000e8e6490def028e9815c77d11 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 9 Jan 2016 21:15:01 +0000 Subject: [PATCH 146/230] Added Stats example https://github.com/nmcl/JavaSim/issues/37 --- docs/manual.adoc | 55 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 8d615db..eabe33d 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -915,6 +915,61 @@ The actual quantile value is provided by the getValue() method. === Example +In this example, similar to the one we saw earlier when discussing streams, takes a NormalStream and pushes the data obtained from it into a Quantile instance (also a PrecisionHistogram, as seen above). + +---- +NormalStream str = new NormalStream(100.0, 2.0); +Quantile hist = new Quantile(); + +for (int i = 0; i < 20; i++) +{ + hist.setValue(str.getNumber()); +} + +System.out.println("NormalStream error: "+str.error()); + +hist.print(); +---- + +If you execute this code then you will see something like the following: + +---- +NormalStream error: -0.12180000000000302 +Quantile precentage : 0.95 +Value below which percentage occurs 103.2525536140605 +PrecisionHistogram Data: +Number of buckets: 20 +Bucket : < 95.4184404867909, 1 > +Bucket : < 96.77470267057221, 1 > +Bucket : < 98.06420534765873, 1 > +Bucket : < 98.51326185839879, 1 > +Bucket : < 98.83083271038129, 1 > +Bucket : < 99.02208650724813, 1 > +Bucket : < 99.25398638929686, 1 > +Bucket : < 99.61818993348244, 1 > +Bucket : < 99.69668527826141, 1 > +Bucket : < 99.90066145276452, 1 > +Bucket : < 100.13242192897384, 1 > +Bucket : < 100.16716965330903, 1 > +Bucket : < 100.29000453526925, 1 > +Bucket : < 100.6675785365828, 1 > +Bucket : < 100.79956320347745, 1 > +Bucket : < 100.8830352383034, 1 > +Bucket : < 101.04146043991506, 1 > +Bucket : < 101.30326745585228, 1 > +Bucket : < 103.2525536140605, 1 > +Bucket : < 103.56896793616222, 1 > +Variance : 3.588431232925933 +Standard Deviation: 1.8943155051168041 +Number of samples : 20 +Minimum : 95.4184404867909 +Maximum : 103.56896793616222 +Sum : 1997.199075176761 +Mean : 99.85995375883805 +---- + +Because Quantile is also a PrecisionHistogram, every unique number is assigned a unique bucket instance. + == References [1] link:http://dl.acm.org/citation.cfm?id=1096934[G. M. Birtwistle, O-J. Dahl, B. Myhrhaug, K. Nygaard, “Simula Begin”, Academic Press, 1973]. From a725aefd87bdc450d67bf6b061a172295490dda1 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 10 Jan 2016 16:15:56 +0000 Subject: [PATCH 147/230] Updated formatting and comments on example. --- docs/manual.adoc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index eabe33d..d4d2cd6 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -318,9 +318,14 @@ public void run () { sc = new Scheduler(); - // create and activate any other simulation entities + /* + * create and activate any other simulation entities before + * moving on to the next step ... + */ - sc.resume(); // we must create a scheduler for the simulation to run execute the simulation + // we must create a scheduler for the simulation to run the simulation + + sc.resume(); // print results From 4c5266e719c830e27767863402ac5f2384671e1e Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 16 Jan 2016 20:36:59 +0000 Subject: [PATCH 148/230] Some example update. https://github.com/nmcl/JavaSim/issues/39 --- docs/manual.adoc | 54 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index d4d2cd6..174dab0 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -683,6 +683,60 @@ If the semaphore is garbage collected with processes waiting for it then an erro === Example +If you check the _interrupt_ example in the source distribution you will find it uses the SimulationEntity to model asynchronous behaviour. For instance, the Processor class, some of which is shown below: + +---- +public class Processor extends SimulationEntity +{ + public void run () + { + Job j = null; + + while (!terminated()) + { + try + { + try + { + timedWait(sTime.getNumber()); + + if (!MachineShop.JobQ.isEmpty()) + { + j = MachineShop.JobQ.dequeue(); + MachineShop.ProcessedJobs++; + } + } + catch (InterruptedException e) + { + if (MachineShop.SignalQ.isEmpty()) + System.out + .println("Error - signal caught, but no message given!"); + else + { + j = MachineShop.SignalQ.dequeue(); + MachineShop.SignalledJobs++; + } + } + + if (MachineShop.SignalledJobs == 2) + terminate(); + } + catch (SimulationException e) + { + } + catch (RestartException e) + { + } + catch (IOException e) + { + } + } + } +} +---- + +As can be seen, the Processor uses timedWait to hold for a specified period of time but this can be interrupted by an event, in this case that a message has been delivered. + == Statistical classes The purpose of a simulation typically involves the gathering of relevant statistical information, e.g., the average length of time spent in a queue. JavaSim provides a number of different classes for gathering such information. These classes can be found in the org.javasim.stats package. From 038cc2faf3e393ba72290f015f03cfeb383841a3 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 16 Jan 2016 21:02:20 +0000 Subject: [PATCH 149/230] Updated text on TriggerQueue. --- docs/manual.adoc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index 174dab0..dcacd2f 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -632,6 +632,9 @@ public class TriggerQueue public synchronized void triggerFirst () throws NoSuchElementException; public synchronized void triggerAll () throws NoSuchElementException; + + protected synchronized void insert (SimulationEntity toAdd) throws SimulationException; + protected synchronized SimulationEntity remove () throws NoSuchElementException; }; ---- @@ -641,6 +644,8 @@ public class TriggerQueue If the queue is not empty when it is garbage collected by the virtual machine then all remaining queue members will be triggered, and placed back onto the scheduler queue. +Typically TriggerQueues are used by the Semaphore implementation. However, they are available to be used by the application developer if you use the insert() and remove() methods directly in derived classes. + === Semaphores Application code can be protected from simulation processes through semaphores, which are instances of the Semaphore class. From ee02653162d388b21fb140cc5314619e44a0f8f8 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 16 Jan 2016 21:11:30 +0000 Subject: [PATCH 150/230] Added Semaphore example. https://github.com/nmcl/JavaSim/issues/39 --- docs/manual.adoc | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/docs/manual.adoc b/docs/manual.adoc index dcacd2f..34a791d 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -742,6 +742,39 @@ public class Processor extends SimulationEntity As can be seen, the Processor uses timedWait to hold for a specified period of time but this can be interrupted by an event, in this case that a message has been delivered. +Semaphores are used within the simulation system. However, they can also be used by the application developer. For instance, the following example creates a Semaphore which protected 2 resources that are being accessed by 3 SimulationEntities: + +---- +public void test () throws Exception + { + Semaphore sem = new Semaphore(2); + DummyEntity e1 = new DummyEntity(10); + DummyEntity e2 = new DummyEntity(20); + DummyEntity e3 = new DummyEntity(30); + + assertTrue(sem.numberWaiting() == 0); + + Semaphore.Outcome result = sem.get(e1); + + assertTrue(result == Semaphore.Outcome.DONE); + + result = sem.get(e2); + + assertTrue(result == Semaphore.Outcome.DONE); + + result = sem.tryGet(e3); + + assertTrue(result == Semaphore.Outcome.WOULD_BLOCK); + + result = sem.get(e3); + + assertTrue(result == Semaphore.Outcome.DONE); + assertTrue(sem.numberWaiting() == 1); + } +---- + +As can be seen, the number of resources is passed to the Semaphore when it is created. We then create 3 SimulationEntities. At this stage there are no entities waiting (blocked waiting) on the Semaphore (numberWaiting returns 0). The first two entities gain access to the resources by calling Semaphore.get() before they would access or manipulate the resource(s). In this example we know that because no entity has yet released its access to the resource (e.g., lock on the resource), the next entity to try to acquire access via Semaphore.get() will block. To verify this we can use Semaphore.tryGet(), which in this case returns Outcome.WOULD_BLOCK to indicate this fact. Regardless, we then try to acquire access to the resource(s) and that entity is then blocked. This is verified by checking the number of entities waiting on the semaphore being released, i.e., numberWaiting() returns 1 in this case. + == Statistical classes The purpose of a simulation typically involves the gathering of relevant statistical information, e.g., the average length of time spent in a queue. JavaSim provides a number of different classes for gathering such information. These classes can be found in the org.javasim.stats package. From bbc6fb631120fa08bf874de0461b17c22dfbcf66 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 16 Jan 2016 21:12:49 +0000 Subject: [PATCH 151/230] Made Outcome public. https://github.com/nmcl/JavaSim/issues/52 --- src/main/java/org/javasim/Semaphore.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/Semaphore.java b/src/main/java/org/javasim/Semaphore.java index 933eeaa..9e3a329 100644 --- a/src/main/java/org/javasim/Semaphore.java +++ b/src/main/java/org/javasim/Semaphore.java @@ -39,7 +39,7 @@ public class Semaphore * could be returned. */ - enum Outcome { DONE, NOTDONE, WOULD_BLOCK }; + public enum Outcome { DONE, NOTDONE, WOULD_BLOCK }; /** * Create a new mutex (resources = 1). From 01dc89d31ebc6cc5cba5e078bacc45630be083cd Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 16 Jan 2016 21:13:27 +0000 Subject: [PATCH 152/230] Added Semaphore test/example https://github.com/nmcl/JavaSim/issues/39 --- .../org/javasim/tests/SemaphoreUnitTest.java | 82 +++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 src/test/java/org/javasim/tests/SemaphoreUnitTest.java diff --git a/src/test/java/org/javasim/tests/SemaphoreUnitTest.java b/src/test/java/org/javasim/tests/SemaphoreUnitTest.java new file mode 100644 index 0000000..d8c9d15 --- /dev/null +++ b/src/test/java/org/javasim/tests/SemaphoreUnitTest.java @@ -0,0 +1,82 @@ +/* + * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne + * and others contributors as indicated + * by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * (C) 1990-2008, + */ + +package org.javasim.tests; + +import org.javasim.RestartException; +import org.javasim.Semaphore; +import org.javasim.SimulationEntity; +import org.javasim.streams.ExponentialStream; +import org.junit.Test; + +import static org.junit.Assert.*; + +class DummyEntity extends SimulationEntity +{ + public DummyEntity (double mean) + { + InterArrivalTime = new ExponentialStream(mean); + } + + public void run () + { + try + { + hold(InterArrivalTime.getNumber()); + } + catch (final Exception ex) + { + } + } + + private ExponentialStream InterArrivalTime; +} + + +public class SemaphoreUnitTest +{ + @Test + public void test () throws Exception + { + Semaphore sem = new Semaphore(2); + DummyEntity e1 = new DummyEntity(10); + DummyEntity e2 = new DummyEntity(20); + DummyEntity e3 = new DummyEntity(30); + + assertTrue(sem.numberWaiting() == 0); + + Semaphore.Outcome result = sem.get(e1); + + assertTrue(result == Semaphore.Outcome.DONE); + + result = sem.get(e2); + + assertTrue(result == Semaphore.Outcome.DONE); + + result = sem.tryGet(e3); + + assertTrue(result == Semaphore.Outcome.WOULD_BLOCK); + + result = sem.get(e3); + + assertTrue(result == Semaphore.Outcome.DONE); + assertTrue(sem.numberWaiting() == 1); + } +} From 39398e15225d4bc041c5696905ae528946b5c337 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 16 Jan 2016 21:33:30 +0000 Subject: [PATCH 153/230] Changed resume to resumeProcess https://github.com/nmcl/JavaSim/issues/36 --- docs/manual.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 34a791d..4bfd3c4 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -272,9 +272,9 @@ When a threaded application is started it is important to realise that before an The await() method of Controller is responsible for suspending this thread: ---- -public void await () +public void await () { - resume(); + resumeProcess(); SimulationProcess.mainSuspend(); } From 7f4faba950de23abcd9b7e80da843d4c076dd2c5 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 16 Jan 2016 21:37:40 +0000 Subject: [PATCH 154/230] Scheduler no longer used directly. https://github.com/nmcl/JavaSim/issues/53 --- docs/manual.adoc | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 4bfd3c4..229d273 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -316,20 +316,21 @@ The controller’s body creates and activates the other simulation entities and ---- public void run () { - sc = new Scheduler(); - /* * create and activate any other simulation entities before * moving on to the next step ... */ - // we must create a scheduler for the simulation to run the simulation - - sc.resume(); + // we must create a scheduler for the simulation to run the simulation. + // starting the simulation does this for us. + + Simulation.start(); + + // do whatever we need to in order to suspend this thread/process. // print results - sc.Suspend(); // suspend scheduler + Simulation.stop(); // suspends the scheduler // suspend simulation entities From d050ba4cf7dadbad7c8d7f71e57e2d4a63f272b3 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 16 Jan 2016 21:40:49 +0000 Subject: [PATCH 155/230] typo --- docs/manual.adoc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 229d273..e42c7ff 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -359,7 +359,9 @@ public class Arrivals extends SimulationProcess { for (;;) { - Customer c = new Customer(); queue.insert(c); + Customer c = new Customer(); + + queue.insert(c); hold(20.0); } From d560e18e0182852126ba9a9e44192ba61700d958 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 17 Jan 2016 15:57:53 +0000 Subject: [PATCH 156/230] formatting update --- docs/manual.adoc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index e42c7ff..cf93dc2 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -749,7 +749,7 @@ Semaphores are used within the simulation system. However, they can also be used ---- public void test () throws Exception - { +{ Semaphore sem = new Semaphore(2); DummyEntity e1 = new DummyEntity(10); DummyEntity e2 = new DummyEntity(20); @@ -773,7 +773,7 @@ public void test () throws Exception assertTrue(result == Semaphore.Outcome.DONE); assertTrue(sem.numberWaiting() == 1); - } +} ---- As can be seen, the number of resources is passed to the Semaphore when it is created. We then create 3 SimulationEntities. At this stage there are no entities waiting (blocked waiting) on the Semaphore (numberWaiting returns 0). The first two entities gain access to the resources by calling Semaphore.get() before they would access or manipulate the resource(s). In this example we know that because no entity has yet released its access to the resource (e.g., lock on the resource), the next entity to try to acquire access via Semaphore.get() will block. To verify this we can use Semaphore.tryGet(), which in this case returns Outcome.WOULD_BLOCK to indicate this fact. Regardless, we then try to acquire access to the resource(s) and that entity is then blocked. This is verified by checking the number of entities waiting on the semaphore being released, i.e., numberWaiting() returns 1 in this case. From 135e6e6ba640b586a22ce9c0990e7b3b75e64982 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 17 Jan 2016 15:59:09 +0000 Subject: [PATCH 157/230] formatting update --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index cf93dc2..74137c0 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -370,7 +370,7 @@ public class Arrivals extends SimulationProcess { } } - } + } } ---- From ea08ebccc373397f11ae2e096c2e1e78913e19fb Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 17 Jun 2016 16:26:46 +0100 Subject: [PATCH 158/230] Renamed. --- LICENCE => LICENCE.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename LICENCE => LICENCE.txt (100%) diff --git a/LICENCE b/LICENCE.txt similarity index 100% rename from LICENCE rename to LICENCE.txt From 38ac62ad5f9653f573211d623c8cea9453d113f5 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 1 Jul 2016 18:11:11 +0100 Subject: [PATCH 159/230] Made explicit where cancel resides. https://github.com/nmcl/JavaSim/issues/54 --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 74137c0..f23cf04 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -111,7 +111,7 @@ public class Simulation } ---- -To enable multiple simulation runs to occur within a single application, it is possible to reset it and the simulation clock by calling the reset() method of the Simulation class. This causes the simulation to remove all processes (simulation objects) currently registered on the scheduler queue and to invoke a class specific method on each of them which resets their states (detailed in the next section). Once this is finished the simulation is ready for an additional run. A suspended process is informed that it has been “reset” by having the method it called to originally suspend itself (i.e., place itself on the scheduler queue) raise the RestartSimulation exception, which the object should catch. It must then perform any work necessary to put itself back in a state ready for restarting the simulation, and should then suspend itself again before the simulation can be restarted (typically by calling cancel.) +To enable multiple simulation runs to occur within a single application, it is possible to reset it and the simulation clock by calling the reset() method of the Simulation class. This causes the simulation to remove all processes (simulation objects) currently registered on the scheduler queue and to invoke a class specific method on each of them which resets their states (detailed in the next section). Once this is finished the simulation is ready for an additional run. A suspended process is informed that it has been “reset” by having the method it called to originally suspend itself (i.e., place itself on the scheduler queue) raise the RestartSimulation exception, which the object should catch. It must then perform any work necessary to put itself back in a state ready for restarting the simulation, and should then suspend itself again before the simulation can be restarted (typically by calling cancel, which is available on the SimulationProcess class.) A process can use isReset() to determine whether or not the simulation has been reset. The start() and stop() operations allow the simulation to be halted or resumed respectively. From 6908c20c09f6928647d48c00294c702195f02bfd Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 1 Jul 2016 18:19:54 +0100 Subject: [PATCH 160/230] Updates about binary distributions. https://github.com/nmcl/JavaSim/issues/55 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b5c28f6..622c4a4 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ The system also comes with complete examples and test routines which illustrate Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under their own licence. However, in late 2007 the University decided that the code can be released into open source under LGPL. -We are in the process of providing new releases of JavaSim and C++SIM. In the meantime, if you want the old versions then you can find C++SIM 1.7.4 GA and JavaSim 0.3 GA available from the relevant distributions directory. +We are in the process of providing new releases of JavaSim and C++SIM. Older versions of binary distributions have been removed as they are too far out of date to be maintained. In 2015 we moved from Codehaus due to that being closed down. All JIRAs from there were also migrated to github issues. From 6673e7a63e6d19540c6f2c1cb908ddeecbd13eb4 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 1 Jul 2016 18:23:06 +0100 Subject: [PATCH 161/230] Updated text on releases. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 622c4a4..7eec7eb 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ The system also comes with complete examples and test routines which illustrate Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under their own licence. However, in late 2007 the University decided that the code can be released into open source under LGPL. -We are in the process of providing new releases of JavaSim and C++SIM. Older versions of binary distributions have been removed as they are too far out of date to be maintained. +You can find details of the releases in the https://github.com/nmcl/JavaSim/releases section as well as binary downloads. In 2015 we moved from Codehaus due to that being closed down. All JIRAs from there were also migrated to github issues. From 889ec96cf1ad151621b855181a2621d39f82853c Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 20 Dec 2016 21:16:48 +0000 Subject: [PATCH 162/230] Removed reference to debug classes. --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index 7eec7eb..a7b3f2e 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,6 @@ JavaSIM has been available since 1997 and is an object-oriented simulation packa - entity and set manipulation facilities similar to SIMSET. - classes allow "non-causal" events, such as interrupts, to be handled. - various statistical gathering routines, such as histogram and variance classes. -- debugging classes. The system also comes with complete examples and test routines which illustrate many of the issues raised in using the simulation package. It is used by many commercial and academic organisations. From fd50b98d3f59b5db0a5dee1cab6687e507cac7b9 Mon Sep 17 00:00:00 2001 From: nmcl Date: Thu, 22 Dec 2016 18:07:20 +0000 Subject: [PATCH 163/230] typo --- src/main/java/org/javasim/Semaphore.java | 2 +- .../java/org/javasim/examples/basic/BasicExampleUnitTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/javasim/Semaphore.java b/src/main/java/org/javasim/Semaphore.java index 9e3a329..c666fa6 100644 --- a/src/main/java/org/javasim/Semaphore.java +++ b/src/main/java/org/javasim/Semaphore.java @@ -110,7 +110,7 @@ public Outcome get (SimulationEntity toWait) catch (SimulationException e) { } - + toWait.cancel(); } diff --git a/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java b/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java index 189170e..4ebe0c6 100644 --- a/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java +++ b/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java @@ -44,7 +44,7 @@ public void testNoBreaks () { } } - + @Test public void testBreaks () { From 3efdb6ab5edcd75cbe1ab9a8d7a7eb672f9aae6d Mon Sep 17 00:00:00 2001 From: Bruce Date: Mon, 20 Feb 2017 10:25:28 +0800 Subject: [PATCH 164/230] add triangular stream! --- .../org/javasim/streams/TriangularStream.java | 92 +++++++++++++++++++ .../streams/TriangularExampleStreamTest.java | 51 ++++++++++ .../streams/TriangularStreamUnitTest.java | 57 ++++++++++++ 3 files changed, 200 insertions(+) create mode 100644 src/main/java/org/javasim/streams/TriangularStream.java create mode 100644 src/test/java/org/javasim/examples/streams/TriangularExampleStreamTest.java create mode 100644 src/test/java/org/javasim/tests/streams/TriangularStreamUnitTest.java diff --git a/src/main/java/org/javasim/streams/TriangularStream.java b/src/main/java/org/javasim/streams/TriangularStream.java new file mode 100644 index 0000000..4c70432 --- /dev/null +++ b/src/main/java/org/javasim/streams/TriangularStream.java @@ -0,0 +1,92 @@ +/* + * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne + * and others contributors as indicated + * by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * (C) 1990-2008, + */ + +package org.javasim.streams; + +import java.io.IOException; + +/** + * Returns a number drawn from a uniform distribution with the given lower and upper bounds. + */ + +public class TriangularStream extends RandomStream { + /** + * Create stream with low bound 'l' and high bound 'h' and 'm' value. + */ + + public TriangularStream(double a, double b, double c) { + super(); + + this.a = a; + this.b = b; + this.c = c; + } + + /** + * Create stream with low bound 'l' and high bound 'h' and 'm' value. Skip the first 'StreamSelect' values before returning numbers from the stream. + */ + + public TriangularStream(double a, double b, double c, int StreamSelect) { + super(); + + this.a = a; + this.b = b; + this.c = c; + + for (int i = 0; i < StreamSelect * 1000; i++) + uniform(); + } + + /** + * Create stream with low bound 'l' and high bound 'h' and 'm' value. Skip the first 'StreamSelect' values before returning numbers from the stream. Pass the seeds 'MGSeed' and 'LCGSeed' to the base + * class. + */ + + public TriangularStream(double a, double b, double c, int StreamSelect, long MGSeed, long LCGSeed) { + super(MGSeed, LCGSeed); + + this.a = a; + this.b = b; + this.c = c; + + for (int i = 0; i < StreamSelect * 1000; i++) + uniform(); + } + + /** + * @return a number from the stream. + */ + + public double getNumber() throws IOException, ArithmeticException { + + double F = (c - a) / (b - a); + double rand = uniform(); + if (rand < F) { + return a + Math.sqrt(rand * (b - a) * (c - a)); + } else { + return b - Math.sqrt((1 - rand) * (b - a) * (b - c)); + } + + } + + private double a; + private double b; + private double c; +} diff --git a/src/test/java/org/javasim/examples/streams/TriangularExampleStreamTest.java b/src/test/java/org/javasim/examples/streams/TriangularExampleStreamTest.java new file mode 100644 index 0000000..6cc0810 --- /dev/null +++ b/src/test/java/org/javasim/examples/streams/TriangularExampleStreamTest.java @@ -0,0 +1,51 @@ +/* + * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne + * and others contributors as indicated + * by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * (C) 1990-2008, + */ + +package org.javasim.examples.streams; + +import org.javasim.stats.Histogram; +import org.javasim.streams.TriangularStream; +import org.junit.Test; + +public class TriangularExampleStreamTest { + @Test + public void test() { + try { + + TriangularStream triagular = new TriangularStream(0, 20, 7); + + Histogram hist = new Histogram(25); + + for (int i = 0; i < 10000; i++) { + int value = (int) Math.round(triagular.getNumber()); + + System.out.println(" " + value); + + hist.setValue(value); + } + + System.out.println("NormalStream error: " + triagular.error()); + + hist.print(); + + } catch (final Throwable ex) { + } + } +} diff --git a/src/test/java/org/javasim/tests/streams/TriangularStreamUnitTest.java b/src/test/java/org/javasim/tests/streams/TriangularStreamUnitTest.java new file mode 100644 index 0000000..b56cb7f --- /dev/null +++ b/src/test/java/org/javasim/tests/streams/TriangularStreamUnitTest.java @@ -0,0 +1,57 @@ +/* + * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne + * and others contributors as indicated + * by the @authors tag. All rights reserved. + * See the copyright.txt in the distribution for a + * full listing of individual contributors. + * This copyrighted material is made available to anyone wishing to use, + * modify, copy, or redistribute it subject to the terms and conditions + * of the GNU Lesser General Public License, v. 2.1. + * This program is distributed in the hope that it will be useful, but WITHOUT A + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * You should have received a copy of the GNU Lesser General Public License, + * v.2.1 along with this distribution; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, + * MA 02110-1301, USA. + * + * (C) 1990-2008, + */ + +package org.javasim.tests.streams; + +import static org.junit.Assert.fail; + +import org.javasim.streams.TriangularStream; +import org.junit.Test; + +public class TriangularStreamUnitTest { + @Test + public void test() throws Exception { + TriangularStream str = new TriangularStream(0, 10, 6); + + try { + str.getNumber(); + str.error(); + } catch (final Exception ex) { + fail(); + } + + str = new TriangularStream(0, 10, 6, 1000); + + try { + str.getNumber(); + } catch (final Exception ex) { + fail(); + } + + str = new TriangularStream(0, 10, 6, 1000, 772532, 1878892441); + + try { + str.getNumber(); + str.error(); + } catch (final Exception ex) { + fail(); + } + } +} From 31580eeec0e282bddc43c1c0867daa694a0f675d Mon Sep 17 00:00:00 2001 From: Bruce Date: Tue, 19 Sep 2017 15:34:04 +0800 Subject: [PATCH 165/230] update documentation and some comment --- docs/manual.adoc | 23 ++++++++++++++++--- .../org/javasim/streams/TriangularStream.java | 10 ++++---- 2 files changed, 25 insertions(+), 8 deletions(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index f23cf04..fbbea07 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -489,9 +489,26 @@ NormalStream returns a normal distribution of random numbers, with mean mean and ---- public class NormalStream extends RandomStream { - public NormalStream (double mean, double sd); - public NormalStream (double mean, double sd, int StreamSelect); - public NormalStream (double mean, double sd, int StreamSelect, long MGSeed, long LCGSeed); + public NormalStream (double mean, double sd); + public NormalStream (double mean, double sd, int StreamSelect); + public NormalStream (double mean, double sd, int StreamSelect, long MGSeed, long LCGSeed); + + public double getNumber () throws IOException, ArithmeticException; +}; +---- + +StreamSelect indicates the offset in the random number sequence to begin sampling, and MGSeed and LCGSeed can be used to modify the seed values used by the RandomStream class. + +=== TriangularStream + +TriangularStream returns a triangular distribution of random numbers, with lower limit a, upper limit b and mode c, where a < b and a ≤ c ≤ b. + +---- +public class TriangularStream extends RandomStream +{ + public NormalStream (double a, double b, double c); + public NormalStream (double a, double b, double c, int StreamSelect); + public NormalStream (double a, double b, double c, int StreamSelect, long MGSeed, long LCGSeed); public double getNumber () throws IOException, ArithmeticException; }; diff --git a/src/main/java/org/javasim/streams/TriangularStream.java b/src/main/java/org/javasim/streams/TriangularStream.java index 4c70432..edc9fc4 100644 --- a/src/main/java/org/javasim/streams/TriangularStream.java +++ b/src/main/java/org/javasim/streams/TriangularStream.java @@ -23,12 +23,12 @@ import java.io.IOException; /** - * Returns a number drawn from a uniform distribution with the given lower and upper bounds. + * Returns a number drawn from a triangular distribution with lower limit a, upper limit b and mode c, where a < b and a ≤ c ≤ b. */ public class TriangularStream extends RandomStream { /** - * Create stream with low bound 'l' and high bound 'h' and 'm' value. + * Create stream with low bound 'l'(a) and high bound 'h'(b) and 'm'(c) value. */ public TriangularStream(double a, double b, double c) { @@ -40,7 +40,7 @@ public TriangularStream(double a, double b, double c) { } /** - * Create stream with low bound 'l' and high bound 'h' and 'm' value. Skip the first 'StreamSelect' values before returning numbers from the stream. + * Create stream with low bound 'l'(a) and high bound 'h'(b) and 'm'(c) value. Skip the first 'StreamSelect' values before returning numbers from the stream. */ public TriangularStream(double a, double b, double c, int StreamSelect) { @@ -55,8 +55,8 @@ public TriangularStream(double a, double b, double c, int StreamSelect) { } /** - * Create stream with low bound 'l' and high bound 'h' and 'm' value. Skip the first 'StreamSelect' values before returning numbers from the stream. Pass the seeds 'MGSeed' and 'LCGSeed' to the base - * class. + * Create stream with low bound 'l'(a) and high bound 'h'(b) and 'm'(c) value. Skip the first 'StreamSelect' values before returning numbers from the stream. Pass the seeds 'MGSeed' and 'LCGSeed' to + * the base class. */ public TriangularStream(double a, double b, double c, int StreamSelect, long MGSeed, long LCGSeed) { From e98c7db60c5c4a0bd67b271606380708a461e61c Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 23 Nov 2017 14:59:40 +0000 Subject: [PATCH 166/230] Updated maven options https://github.com/nmcl/JavaSim/issues/58 --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 3e60141..ced87ef 100644 --- a/pom.xml +++ b/pom.xml @@ -11,8 +11,8 @@ maven-compiler-plugin - 1.5 - 1.5 + 1.6 + 1.6 From 05bcfed844140a908e52ef0f9b2b6e0fc7a9979b Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 28 Nov 2017 06:53:47 +0000 Subject: [PATCH 167/230] Fixed some typos. --- .../examples/streams/TriangularExampleStreamTest.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/test/java/org/javasim/examples/streams/TriangularExampleStreamTest.java b/src/test/java/org/javasim/examples/streams/TriangularExampleStreamTest.java index 6cc0810..115d9e3 100644 --- a/src/test/java/org/javasim/examples/streams/TriangularExampleStreamTest.java +++ b/src/test/java/org/javasim/examples/streams/TriangularExampleStreamTest.java @@ -29,19 +29,19 @@ public class TriangularExampleStreamTest { public void test() { try { - TriangularStream triagular = new TriangularStream(0, 20, 7); + TriangularStream triangular = new TriangularStream(0, 20, 7); Histogram hist = new Histogram(25); for (int i = 0; i < 10000; i++) { - int value = (int) Math.round(triagular.getNumber()); + int value = (int) Math.round(triangular.getNumber()); System.out.println(" " + value); hist.setValue(value); } - System.out.println("NormalStream error: " + triagular.error()); + System.out.println("RandomStream error: " + triangular.error()); hist.print(); From 5461be3f0b4a1dc9e7cb211b38ae8f8db9dc7473 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 29 Apr 2018 17:09:21 +0100 Subject: [PATCH 168/230] Create README.md --- docs/images/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 docs/images/README.md diff --git a/docs/images/README.md b/docs/images/README.md new file mode 100644 index 0000000..ba2c21f --- /dev/null +++ b/docs/images/README.md @@ -0,0 +1 @@ +Images used within the user manual. DO NOT REMOVE. From a35f8e87e576be98b80a7634bfc6d290838e47e4 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 8 Jul 2018 14:37:35 +0100 Subject: [PATCH 169/230] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a7b3f2e..43d1c49 100644 --- a/README.md +++ b/README.md @@ -7,11 +7,11 @@ JavaSIM has been available since 1997 and is an object-oriented simulation packa The system also comes with complete examples and test routines which illustrate many of the issues raised in using the simulation package. It is used by many commercial and academic organisations. -Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under their own licence. However, in late 2007 the University decided that the code can be released into open source under LGPL. +Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under the University's own licence. However, in late 2007 the University decided that the code could be released into open source under LGPL. You can find details of the releases in the https://github.com/nmcl/JavaSim/releases section as well as binary downloads. -In 2015 we moved from Codehaus due to that being closed down. All JIRAs from there were also migrated to github issues. +In 2015 we moved from Codehaus to github. All JIRAs from there were also migrated to github issues. ---- From bb7fd40b67fb8d675c40b1acc48cdf12fcdc9050 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 8 Jul 2018 14:38:33 +0100 Subject: [PATCH 170/230] Update README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 9d249b2..578bafc 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,3 +1,3 @@ manual.adoc - the current user manual. -The files in the images directory are used within the manual so do not move independently - the URLs used within the doc are relative not absolute. +images - the files in this directory are used within the manual so do not move independently - the URLs used within the doc are relative not absolute. From e52f17403c312dfd63913dbc103ae3a20abb69c4 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 8 Jul 2018 14:39:09 +0100 Subject: [PATCH 171/230] Update README.md --- docs/images/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/images/README.md b/docs/images/README.md index ba2c21f..a8d0a22 100644 --- a/docs/images/README.md +++ b/docs/images/README.md @@ -1 +1 @@ -Images used within the user manual. DO NOT REMOVE. +Containes images used within the user manual. DO NOT REMOVE. From 88613e527608fc9c279b9070d27e7a30d5aba392 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 19 Aug 2018 12:49:10 +0100 Subject: [PATCH 172/230] Fixed typo --- docs/images/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/images/README.md b/docs/images/README.md index a8d0a22..4c46314 100644 --- a/docs/images/README.md +++ b/docs/images/README.md @@ -1 +1 @@ -Containes images used within the user manual. DO NOT REMOVE. +Contains images used within the user manual. DO NOT REMOVE. From 0826ffeb0bd9bd04286e38ea674b409a03e294fb Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 2 Sep 2018 15:56:34 +0100 Subject: [PATCH 173/230] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 43d1c49..2c498c1 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ JavaSIM has been available since 1997 and is an object-oriented simulation packa - the core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms, and thread package interfaces. - entity and set manipulation facilities similar to SIMSET. - classes allow "non-causal" events, such as interrupts, to be handled. -- various statistical gathering routines, such as histogram and variance classes. +- various routines for gathering statistics, such as histogram and variance classes. The system also comes with complete examples and test routines which illustrate many of the issues raised in using the simulation package. It is used by many commercial and academic organisations. From f177848b7c31e882aed1486ca4084be51682246c Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 2 Sep 2018 15:57:54 +0100 Subject: [PATCH 174/230] Update README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 578bafc..e0f199b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,3 +1,3 @@ -manual.adoc - the current user manual. +manual.adoc - the user manual. images - the files in this directory are used within the manual so do not move independently - the URLs used within the doc are relative not absolute. From fb8d55ea19a06e1155778b6366f7e630bd95bf13 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 20 Sep 2018 17:13:08 +0100 Subject: [PATCH 175/230] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 2c498c1..f90a3e2 100644 --- a/README.md +++ b/README.md @@ -7,7 +7,7 @@ JavaSIM has been available since 1997 and is an object-oriented simulation packa The system also comes with complete examples and test routines which illustrate many of the issues raised in using the simulation package. It is used by many commercial and academic organisations. -Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under the University's own licence. However, in late 2007 the University decided that the code could be released into open source under LGPL. +Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under the University's own licence. However, in late 2007 the University decided that everything could be released into open source under LGPL. You can find details of the releases in the https://github.com/nmcl/JavaSim/releases section as well as binary downloads. From 82c0c9bb13d8f4de8512e91a58fe45c5c9137cbc Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 25 Sep 2018 17:50:52 +0100 Subject: [PATCH 176/230] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f90a3e2..2dac8ba 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Prior to 2007 both C++SIM and JavaSim were freely available in source and binary You can find details of the releases in the https://github.com/nmcl/JavaSim/releases section as well as binary downloads. -In 2015 we moved from Codehaus to github. All JIRAs from there were also migrated to github issues. +In 2015 the code was moved from Codehaus to github. All JIRAs from there were also migrated to github issues. ---- From 7479c040adc328d224bf19083bfa8923d937a5c7 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 1 Oct 2018 16:57:37 +0100 Subject: [PATCH 177/230] Have Licence.txt now. --- Copyright.txt | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100644 Copyright.txt diff --git a/Copyright.txt b/Copyright.txt deleted file mode 100644 index 7f568f8..0000000 --- a/Copyright.txt +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright 1990-2008, Mark Little, University of Newcastle upon Tyne - * and others contributors as indicated - * by the @authors tag. All rights reserved. - * See the copyright.txt in the distribution for a - * full listing of individual contributors. - * This copyrighted material is made available to anyone wishing to use, - * modify, copy, or redistribute it subject to the terms and conditions - * of the GNU Lesser General Public License, v. 2.1. - * This program is distributed in the hope that it will be useful, but WITHOUT A - * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A - * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. - * You should have received a copy of the GNU Lesser General Public License, - * v.2.1 along with this distribution; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, - * MA 02110-1301, USA. - * - * (C) 1990-2008, - */ \ No newline at end of file From f7d4431025f435e98931cab071ffaeaf2f87eaf0 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 1 Oct 2018 16:58:08 +0100 Subject: [PATCH 178/230] Update README.md --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 2dac8ba..e4bd642 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ JavaSIM has been available since 1997 and is an object-oriented simulation package based upon C++SIM. It provides discrete event process-based simulation similar to SIMULA's simulation class and libraries. A complete list of the facilities provided follows: -- the core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms, and thread package interfaces. -- entity and set manipulation facilities similar to SIMSET. -- classes allow "non-causal" events, such as interrupts, to be handled. -- various routines for gathering statistics, such as histogram and variance classes. +- The core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms, and thread package interfaces. +- Entity and set manipulation facilities similar to SIMSET. +- Classes allow "non-causal" events, such as interrupts, to be handled. +- Various routines for gathering statistics, such as histogram and variance classes. The system also comes with complete examples and test routines which illustrate many of the issues raised in using the simulation package. It is used by many commercial and academic organisations. From 85c75b9aff6a6aa47efe20ad31b79a41e8b6a2fd Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 8 Oct 2018 15:37:52 +0100 Subject: [PATCH 179/230] Update README.md --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e4bd642..ebe3057 100644 --- a/README.md +++ b/README.md @@ -1,11 +1,13 @@ JavaSIM has been available since 1997 and is an object-oriented simulation package based upon C++SIM. It provides discrete event process-based simulation similar to SIMULA's simulation class and libraries. A complete list of the facilities provided follows: -- The core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms, and thread package interfaces. +- The core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms and thread package interfaces. - Entity and set manipulation facilities similar to SIMSET. - Classes allow "non-causal" events, such as interrupts, to be handled. - Various routines for gathering statistics, such as histogram and variance classes. -The system also comes with complete examples and test routines which illustrate many of the issues raised in using the simulation package. It is used by many commercial and academic organisations. +The system also comes with complete examples and tests which illustrate many of the issues raised in using the simulation package. + +Over the years C++SIM and JavaSim have been used by many commercial and academic organisations. Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under the University's own licence. However, in late 2007 the University decided that everything could be released into open source under LGPL. From 625eb0b0d83869961869df99e4168b7647bee5f5 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 4 Nov 2018 11:02:32 -0500 Subject: [PATCH 180/230] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index ebe3057..b44271a 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ The system also comes with complete examples and tests which illustrate many of Over the years C++SIM and JavaSim have been used by many commercial and academic organisations. -Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under the University's own licence. However, in late 2007 the University decided that everything could be released into open source under LGPL. +Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under the University's own licence. However, in late 2007 Newcastle University decided that everything could be released into open source under LGPL. You can find details of the releases in the https://github.com/nmcl/JavaSim/releases section as well as binary downloads. From 6f4b7c386feef095c957ee01d8e13cb3847415ec Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 6 Nov 2018 09:01:56 -0500 Subject: [PATCH 181/230] version fix https://github.com/nmcl/JavaSim/issues/56 --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index ced87ef..b3e7fda 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ javasim javasim javasim - 2.1.CR1 + 2.1 http://maven.apache.org From 332b59b33ebbb75437cd824050862da00506ecd8 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 6 Nov 2018 12:01:13 -0500 Subject: [PATCH 182/230] fixed plugin version warning https://github.com/nmcl/JavaSim/issues/63 --- pom.xml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pom.xml b/pom.xml index b3e7fda..eb6b3ec 100644 --- a/pom.xml +++ b/pom.xml @@ -6,13 +6,18 @@ javasim 2.1 http://maven.apache.org + + UTF-8 + maven-compiler-plugin - - 1.6 - 1.6 + org.apache.maven.plugins + 3.6.0 + + 1.8 + 1.8 From 4ca9d9702752485843d6d8e42d807a5d5edf9d62 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 6 Nov 2018 12:04:26 -0500 Subject: [PATCH 183/230] Fixed encoding warning https://github.com/nmcl/JavaSim/issues/65 --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index eb6b3ec..514732e 100644 --- a/pom.xml +++ b/pom.xml @@ -18,6 +18,7 @@ 1.8 1.8 + UTF-8 From 8a3d401f536750ca31ea162d2c7ba1dc532ec110 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 16 Nov 2018 11:19:39 +0000 Subject: [PATCH 184/230] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b44271a..8c110b0 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Over the years C++SIM and JavaSim have been used by many commercial and academic Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under the University's own licence. However, in late 2007 Newcastle University decided that everything could be released into open source under LGPL. -You can find details of the releases in the https://github.com/nmcl/JavaSim/releases section as well as binary downloads. +You can find details of the releases in the https://github.com/nmcl/JavaSim/releases section as well as binary downloads for various releases. In 2015 the code was moved from Codehaus to github. All JIRAs from there were also migrated to github issues. From c2850bd15f77ba78f2571ba3854e34ef4f175f56 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 2 Mar 2019 20:42:26 +0000 Subject: [PATCH 185/230] Update README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index e0f199b..5373953 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,3 +1,3 @@ manual.adoc - the user manual. -images - the files in this directory are used within the manual so do not move independently - the URLs used within the doc are relative not absolute. +images - the files in this directory are used within the manual so do not move independently (the URLs used within the doc are relative not absolute). From d298ddc31d77f2ffe70d439213dfe285093f7347 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 17 Mar 2019 20:28:11 +0000 Subject: [PATCH 186/230] https://github.com/nmcl/JavaSim/issues/66 --- pom.xml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pom.xml b/pom.xml index 514732e..e39a82b 100644 --- a/pom.xml +++ b/pom.xml @@ -21,6 +21,15 @@ UTF-8 + + org.apache.maven.plugins + maven-surefire-plugin + 2.17 + + + -Djdk.net.URLClassPath.disableClassPathURLCheck=true + + From 67bc6485e4478853ae0890d27d8edaaf7e48372f Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 5 Apr 2019 21:48:50 +0100 Subject: [PATCH 187/230] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8c110b0..6f70c88 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ Over the years C++SIM and JavaSim have been used by many commercial and academic Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under the University's own licence. However, in late 2007 Newcastle University decided that everything could be released into open source under LGPL. -You can find details of the releases in the https://github.com/nmcl/JavaSim/releases section as well as binary downloads for various releases. +You can find details of the releases in the https://github.com/nmcl/JavaSim/releases section as well as binary downloads for some releases. In 2015 the code was moved from Codehaus to github. All JIRAs from there were also migrated to github issues. From fad09846fc66207fd9fa6cb2e3a37a54e68060c9 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 8 Apr 2019 06:05:38 -0400 Subject: [PATCH 188/230] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 6f70c88..63a3943 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -JavaSIM has been available since 1997 and is an object-oriented simulation package based upon C++SIM. It provides discrete event process-based simulation similar to SIMULA's simulation class and libraries. A complete list of the facilities provided follows: +JavaSIM is an object-oriented simulation package based upon C++SIM which has been around since 1997. It provides discrete event process-based simulation similar to SIMULA's simulation class and libraries. A complete list of the facilities provided follows: - The core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms and thread package interfaces. - Entity and set manipulation facilities similar to SIMSET. From a2ff77729dc6f6ba0f7e5d8a64aa774301b0ae2b Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 26 Jun 2019 14:42:36 +0100 Subject: [PATCH 189/230] typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 63a3943..9ac2665 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -JavaSIM is an object-oriented simulation package based upon C++SIM which has been around since 1997. It provides discrete event process-based simulation similar to SIMULA's simulation class and libraries. A complete list of the facilities provided follows: +JavaSIM is an object-oriented simulation package based upon C++SIM and has been around since 1997. It provides discrete event process-based simulation similar to SIMULA's simulation class and libraries. A complete list of the facilities provided follows: - The core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms and thread package interfaces. - Entity and set manipulation facilities similar to SIMSET. From e7f867e37d8ca2afb65ff66d454557a3c2c7d292 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 28 Jun 2019 16:32:33 +0100 Subject: [PATCH 190/230] added temp output files --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index c03c3d1..f904c43 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ target *.class .idea .DS_Store +*.out From af986df03ae5410d674729e872adb742a6e8e2aa Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 5 Jul 2019 06:36:07 +0100 Subject: [PATCH 191/230] Update README.md --- docs/images/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/images/README.md b/docs/images/README.md index 4c46314..889ba90 100644 --- a/docs/images/README.md +++ b/docs/images/README.md @@ -1 +1 @@ -Contains images used within the user manual. DO NOT REMOVE. +Contains images used within the user manual. DO NOT MOVE. From a8ba5f169525fb4245a92bbc3520bdfedbf4b5f0 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 16 Aug 2019 13:30:49 -0400 Subject: [PATCH 192/230] moved some tests https://github.com/nmcl/JavaSim/issues/71 --- .../{ => tests}/examples/basic/BasicExampleUnitTest.java | 4 +++- .../examples/interrupt/InterruptExampleUnitTest.java | 3 ++- .../{ => tests}/examples/stats/StatsExampleUnitTest.java | 3 ++- .../{ => tests}/examples/streams/StreamsExampleUnitTest.java | 3 ++- .../examples/streams/TriangularExampleStreamTest.java | 4 +++- 5 files changed, 12 insertions(+), 5 deletions(-) rename src/test/java/org/javasim/{ => tests}/examples/basic/BasicExampleUnitTest.java (95%) rename src/test/java/org/javasim/{ => tests}/examples/interrupt/InterruptExampleUnitTest.java (93%) rename src/test/java/org/javasim/{ => tests}/examples/stats/StatsExampleUnitTest.java (94%) rename src/test/java/org/javasim/{ => tests}/examples/streams/StreamsExampleUnitTest.java (93%) rename src/test/java/org/javasim/{ => tests}/examples/streams/TriangularExampleStreamTest.java (95%) diff --git a/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java b/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java similarity index 95% rename from src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java rename to src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java index 4ebe0c6..07d0c71 100644 --- a/src/test/java/org/javasim/examples/basic/BasicExampleUnitTest.java +++ b/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java @@ -18,9 +18,11 @@ * (C) 1990-2008, */ -package org.javasim.examples.basic; +package org.javasim.tests.examples.basic; import org.javasim.Simulation; +import org.javasim.examples.basic.*; + import org.junit.Test; import static org.junit.Assert.*; diff --git a/src/test/java/org/javasim/examples/interrupt/InterruptExampleUnitTest.java b/src/test/java/org/javasim/tests/examples/interrupt/InterruptExampleUnitTest.java similarity index 93% rename from src/test/java/org/javasim/examples/interrupt/InterruptExampleUnitTest.java rename to src/test/java/org/javasim/tests/examples/interrupt/InterruptExampleUnitTest.java index 5db920b..cf2cb70 100644 --- a/src/test/java/org/javasim/examples/interrupt/InterruptExampleUnitTest.java +++ b/src/test/java/org/javasim/tests/examples/interrupt/InterruptExampleUnitTest.java @@ -18,8 +18,9 @@ * (C) 1990-2008, */ -package org.javasim.examples.interrupt; +package org.javasim.tests.examples.interrupt; +import org.javasim.examples.interrupt.*; import org.javasim.Simulation; import org.junit.Test; diff --git a/src/test/java/org/javasim/examples/stats/StatsExampleUnitTest.java b/src/test/java/org/javasim/tests/examples/stats/StatsExampleUnitTest.java similarity index 94% rename from src/test/java/org/javasim/examples/stats/StatsExampleUnitTest.java rename to src/test/java/org/javasim/tests/examples/stats/StatsExampleUnitTest.java index 26bf9f7..456893f 100644 --- a/src/test/java/org/javasim/examples/stats/StatsExampleUnitTest.java +++ b/src/test/java/org/javasim/tests/examples/stats/StatsExampleUnitTest.java @@ -18,8 +18,9 @@ * (C) 1990-2008, */ -package org.javasim.examples.stats; +package org.javasim.tests.examples.stats; +import org.javasim.examples.stats.*; import org.javasim.Simulation; import org.junit.Test; diff --git a/src/test/java/org/javasim/examples/streams/StreamsExampleUnitTest.java b/src/test/java/org/javasim/tests/examples/streams/StreamsExampleUnitTest.java similarity index 93% rename from src/test/java/org/javasim/examples/streams/StreamsExampleUnitTest.java rename to src/test/java/org/javasim/tests/examples/streams/StreamsExampleUnitTest.java index 2ceb067..b7ad6be 100644 --- a/src/test/java/org/javasim/examples/streams/StreamsExampleUnitTest.java +++ b/src/test/java/org/javasim/tests/examples/streams/StreamsExampleUnitTest.java @@ -18,8 +18,9 @@ * (C) 1990-2008, */ -package org.javasim.examples.streams; +package org.javasim.tests.examples.streams; +import org.javasim.examples.streams.*; import org.javasim.Simulation; import org.junit.Test; diff --git a/src/test/java/org/javasim/examples/streams/TriangularExampleStreamTest.java b/src/test/java/org/javasim/tests/examples/streams/TriangularExampleStreamTest.java similarity index 95% rename from src/test/java/org/javasim/examples/streams/TriangularExampleStreamTest.java rename to src/test/java/org/javasim/tests/examples/streams/TriangularExampleStreamTest.java index 115d9e3..33eea25 100644 --- a/src/test/java/org/javasim/examples/streams/TriangularExampleStreamTest.java +++ b/src/test/java/org/javasim/tests/examples/streams/TriangularExampleStreamTest.java @@ -18,10 +18,12 @@ * (C) 1990-2008, */ -package org.javasim.examples.streams; +package org.javasim.tests.examples.streams; import org.javasim.stats.Histogram; import org.javasim.streams.TriangularStream; +import org.javasim.examples.streams.*; + import org.junit.Test; public class TriangularExampleStreamTest { From 6247f676e36d2de0a1abe56a840d2ee99c74f24e Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 29 Aug 2019 17:11:40 +0100 Subject: [PATCH 193/230] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 9ac2665..536c763 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -JavaSIM is an object-oriented simulation package based upon C++SIM and has been around since 1997. It provides discrete event process-based simulation similar to SIMULA's simulation class and libraries. A complete list of the facilities provided follows: +JavaSIM is an object-oriented simulation package based upon C++SIM and has been around since 1997. It provides discrete event process-based simulation similar to SIMULA's simulation class and libraries. A complete list of the capabilities provided follows: - The core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms and thread package interfaces. - Entity and set manipulation facilities similar to SIMSET. From f22f3897b7c9bae8168ae81b47926c7a3d146284 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 2 Sep 2019 15:13:31 +0100 Subject: [PATCH 194/230] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 536c763..3931f46 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ Prior to 2007 both C++SIM and JavaSim were freely available in source and binary You can find details of the releases in the https://github.com/nmcl/JavaSim/releases section as well as binary downloads for some releases. -In 2015 the code was moved from Codehaus to github. All JIRAs from there were also migrated to github issues. +In 2015 the code was moved from Codehaus to github. All JIRAs from there were also recreated as github issues. ---- From dc6460a30039f64081697711862cf7634c0ea875 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 3 Sep 2019 17:29:08 +0100 Subject: [PATCH 195/230] Create README.md --- src/test/java/org/javasim/examples/basic/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/test/java/org/javasim/examples/basic/README.md diff --git a/src/test/java/org/javasim/examples/basic/README.md b/src/test/java/org/javasim/examples/basic/README.md new file mode 100644 index 0000000..2a9ca09 --- /dev/null +++ b/src/test/java/org/javasim/examples/basic/README.md @@ -0,0 +1 @@ +Probably the first example ever written for C++SIM/JavaSim. From a59877a8cc4621d87b529cc08576b753cc39e0e1 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 3 Sep 2019 17:29:35 +0100 Subject: [PATCH 196/230] Create README.md --- src/test/java/org/javasim/examples/interrupt/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/test/java/org/javasim/examples/interrupt/README.md diff --git a/src/test/java/org/javasim/examples/interrupt/README.md b/src/test/java/org/javasim/examples/interrupt/README.md new file mode 100644 index 0000000..530e2cc --- /dev/null +++ b/src/test/java/org/javasim/examples/interrupt/README.md @@ -0,0 +1 @@ +Example showing the async interrupt capabilities. From 0e4fa9677779b72ac5fb817cebe38c362440e69f Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 3 Sep 2019 17:30:15 +0100 Subject: [PATCH 197/230] Create README.md --- src/test/java/org/javasim/examples/stats/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/test/java/org/javasim/examples/stats/README.md diff --git a/src/test/java/org/javasim/examples/stats/README.md b/src/test/java/org/javasim/examples/stats/README.md new file mode 100644 index 0000000..bc84ffc --- /dev/null +++ b/src/test/java/org/javasim/examples/stats/README.md @@ -0,0 +1 @@ +Illustration of the statistics classes. From 6d7bca69cf8039c18ecafb6bff2cfaee2024c2d7 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 3 Sep 2019 17:30:48 +0100 Subject: [PATCH 198/230] Create README.md --- src/test/java/org/javasim/examples/streams/README.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 src/test/java/org/javasim/examples/streams/README.md diff --git a/src/test/java/org/javasim/examples/streams/README.md b/src/test/java/org/javasim/examples/streams/README.md new file mode 100644 index 0000000..527d7e7 --- /dev/null +++ b/src/test/java/org/javasim/examples/streams/README.md @@ -0,0 +1 @@ +Show some of the random number generators/streams within the package. From ccd0c6ffb4979620347d12cc58e0f2dd6360aeb4 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 5 Sep 2019 20:15:45 +0100 Subject: [PATCH 199/230] Update README.md --- .../java/org/javasim/examples/basic/README.md | 31 ++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/javasim/examples/basic/README.md b/src/test/java/org/javasim/examples/basic/README.md index 2a9ca09..0dc1593 100644 --- a/src/test/java/org/javasim/examples/basic/README.md +++ b/src/test/java/org/javasim/examples/basic/README.md @@ -1 +1,30 @@ -Probably the first example ever written for C++SIM/JavaSim. +This is an example of a simulation written using the simulation package. The example is taken from the book by Isi Mitrani (Simulation Techniques for Discrete Event Systems p22). + +The simulation is of a service which attempts to execute as many requests for jobs as possible. The job requests are queued until the service can deal with them. However, the service is prone to failures, and so jobs started will be delayed until the service has been reactivated. + +The classes provided include: + +Arrivals - This class controls the rate at which Jobs arrive at + the service (Machine) + +Breaks - This class controls the availability of the Machine by + "killing" it and restarting it at intervals drawn from + a Uniform distribution. + +Job - This class represents the jobs which the Machine must process. + +Machine - This is the Machine on which the service resides. It obtains + jobs from the job queue for the service and then attempts to + execute them. The machine can fail and so the response time for + jobs is not guaranteed to be the same. + +MachineShop - This is the main part of the simulation which starts the + various processes (Scheduler, Arrivals, Machine, Job) + involved. It also prints out statistics for the response time + for the jobs. + +Queue - This represents the queue which Jobs are placed on prior to being + used by the Machine (service). + +Main - This is the body of the program which initializes the threads package + prior to the simulation starting. From 70e87b8a9c6a908ab37fd11377801c44ebde5b31 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 8 Sep 2019 15:30:55 +0100 Subject: [PATCH 200/230] Update README.md --- src/test/java/org/javasim/examples/interrupt/README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/javasim/examples/interrupt/README.md b/src/test/java/org/javasim/examples/interrupt/README.md index 530e2cc..b2fc268 100644 --- a/src/test/java/org/javasim/examples/interrupt/README.md +++ b/src/test/java/org/javasim/examples/interrupt/README.md @@ -1 +1,3 @@ -Example showing the async interrupt capabilities. +This is a basic example of the new interrupt mechanisms added in version 1.5. + +A Processor object has two message queue, one for general messages and one for interrupts (signals). The processor will wait for a set period of time and will then inspect its general message queue for work to be done. This will be performed and then it will go back to waiting. A Signal object will periodically wake up and send a signal to the processor and place a message in to its signal queue. From a6a2e1d10b4c7874af68293c0ff856acf9a59d39 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 10 Sep 2019 16:03:30 +0100 Subject: [PATCH 201/230] Update README.md --- src/test/java/org/javasim/examples/streams/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/javasim/examples/streams/README.md b/src/test/java/org/javasim/examples/streams/README.md index 527d7e7..53bb243 100644 --- a/src/test/java/org/javasim/examples/streams/README.md +++ b/src/test/java/org/javasim/examples/streams/README.md @@ -1 +1 @@ -Show some of the random number generators/streams within the package. +Shows the distributions produced when using the NormalStream and Quantile implementations. From e22e0381b4b81dd92a64d634eba97b1c0448f53b Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 13 Sep 2019 11:14:10 +0100 Subject: [PATCH 202/230] Update README.md --- src/test/java/org/javasim/examples/stats/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/javasim/examples/stats/README.md b/src/test/java/org/javasim/examples/stats/README.md index bc84ffc..53bb243 100644 --- a/src/test/java/org/javasim/examples/stats/README.md +++ b/src/test/java/org/javasim/examples/stats/README.md @@ -1 +1 @@ -Illustration of the statistics classes. +Shows the distributions produced when using the NormalStream and Quantile implementations. From 3074566b80e2f282a7afeb6337d563a630874121 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 13 Sep 2019 11:14:48 +0100 Subject: [PATCH 203/230] Update README.md --- src/test/java/org/javasim/examples/streams/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/test/java/org/javasim/examples/streams/README.md b/src/test/java/org/javasim/examples/streams/README.md index 53bb243..538a631 100644 --- a/src/test/java/org/javasim/examples/streams/README.md +++ b/src/test/java/org/javasim/examples/streams/README.md @@ -1 +1 @@ -Shows the distributions produced when using the NormalStream and Quantile implementations. +Shows the output of the NormalStream and Histogram implementations working together. From 4828c9ac1b74b803ee70504e2675197d6a772cb0 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 11 Oct 2019 14:17:37 +0100 Subject: [PATCH 204/230] Update README.md --- docs/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/README.md b/docs/README.md index 5373953..f54047e 100644 --- a/docs/README.md +++ b/docs/README.md @@ -1,3 +1,3 @@ manual.adoc - the user manual. -images - the files in this directory are used within the manual so do not move independently (the URLs used within the doc are relative not absolute). +images - the files in this directory are used within the manual so do not move (the URLs used within the doc are relative not absolute). From d9af257039cceb46cbcb3108d06405f3ef337456 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 10 Nov 2019 14:50:16 +0000 Subject: [PATCH 205/230] Updated the Java threads --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3931f46..f7edc6e 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ JavaSIM is an object-oriented simulation package based upon C++SIM and has been around since 1997. It provides discrete event process-based simulation similar to SIMULA's simulation class and libraries. A complete list of the capabilities provided follows: -- The core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms and thread package interfaces. +- The core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms and in the C++ original there are thread package interfaces, though for Java that's not necessary. - Entity and set manipulation facilities similar to SIMSET. - Classes allow "non-causal" events, such as interrupts, to be handled. - Various routines for gathering statistics, such as histogram and variance classes. From da709be8a1569eb3dd2092c624ef14f4f6757211 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 28 Dec 2019 15:34:41 +0000 Subject: [PATCH 206/230] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f7edc6e..b0a0449 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -JavaSIM is an object-oriented simulation package based upon C++SIM and has been around since 1997. It provides discrete event process-based simulation similar to SIMULA's simulation class and libraries. A complete list of the capabilities provided follows: +JavaSIM is an object-oriented simulation package based upon C++SIM and has been in use since 1997. It provides discrete event process-based simulation similar to SIMULA's simulation class and libraries. A complete list of the capabilities provided follows: - The core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms and in the C++ original there are thread package interfaces, though for Java that's not necessary. - Entity and set manipulation facilities similar to SIMSET. From ee48f4b52bc3916f16e52d10b75ac7bf56ca995d Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 4 Jan 2020 21:26:30 +0000 Subject: [PATCH 207/230] updated version --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index e39a82b..791d0cf 100644 --- a/pom.xml +++ b/pom.xml @@ -4,7 +4,7 @@ javasim javasim javasim - 2.1 + 2.3 http://maven.apache.org UTF-8 From ecd77b0abf795862a6178f258b166bd6a95dada2 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 4 Jan 2020 21:26:52 +0000 Subject: [PATCH 208/230] first attempt to fix https://github.com/nmcl/JavaSim/issues/64 --- src/main/java/org/javasim/Scheduler.java | 11 ++++++++++- src/main/java/org/javasim/Simulation.java | 9 +++++++++ src/main/java/org/javasim/SimulationProcess.java | 1 + 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/Scheduler.java b/src/main/java/org/javasim/Scheduler.java index f743665..7b56612 100644 --- a/src/main/java/org/javasim/Scheduler.java +++ b/src/main/java/org/javasim/Scheduler.java @@ -130,6 +130,7 @@ static synchronized void reset () throws SimulationException Scheduler.SimulatedTime = 0.0; SimulationProcess.Current = null; + SimulationProcess.allProcesses = new SimulationProcessList(); } private Scheduler () @@ -148,10 +149,16 @@ static synchronized boolean schedule () throws SimulationException if (Simulation.isStarted()) { SimulationProcess p = SimulationProcess.current(); - + try { SimulationProcess.Current = Scheduler.ReadyQueue.remove(); + + if (SimulationProcess.Current.getThreadGroup() == null) + { + SimulationProcess.Current = Scheduler.ReadyQueue.remove(); + p = SimulationProcess.Current; + } } catch (NoSuchElementException e) { @@ -165,6 +172,8 @@ static synchronized boolean schedule () throws SimulationException if (p != SimulationProcess.Current) { + Simulation.printQueue(); + SimulationProcess.Current.resumeProcess(); return true; diff --git a/src/main/java/org/javasim/Simulation.java b/src/main/java/org/javasim/Simulation.java index ade771f..76de245 100644 --- a/src/main/java/org/javasim/Simulation.java +++ b/src/main/java/org/javasim/Simulation.java @@ -94,6 +94,15 @@ public static synchronized void start () Simulation.running = true; } + /** + * Print out the contents of the current simulation queue. + */ + + public static synchronized void printQueue () + { + SimulationProcess.allProcesses.print(); + } + /** * Has the simulation started? * diff --git a/src/main/java/org/javasim/SimulationProcess.java b/src/main/java/org/javasim/SimulationProcess.java index 86b3840..39c5794 100644 --- a/src/main/java/org/javasim/SimulationProcess.java +++ b/src/main/java/org/javasim/SimulationProcess.java @@ -544,6 +544,7 @@ public static void mainResume () throws SimulationException protected SimulationProcess() { + Thread.currentThread().dumpStack(); wakeuptime = SimulationProcess.NEVER; terminated = false; passivated = true; From 3c766d48c6fce5a4a1e987c552f0806d33a1d592 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 5 Jan 2020 16:52:36 +0000 Subject: [PATCH 209/230] removed rogue dumpStack --- src/main/java/org/javasim/SimulationProcess.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/javasim/SimulationProcess.java b/src/main/java/org/javasim/SimulationProcess.java index 39c5794..86b3840 100644 --- a/src/main/java/org/javasim/SimulationProcess.java +++ b/src/main/java/org/javasim/SimulationProcess.java @@ -544,7 +544,6 @@ public static void mainResume () throws SimulationException protected SimulationProcess() { - Thread.currentThread().dumpStack(); wakeuptime = SimulationProcess.NEVER; terminated = false; passivated = true; From 7368fc0fc3f8bf2b27e301a84b8a36c0809e05eb Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 5 Jan 2020 16:59:55 +0000 Subject: [PATCH 210/230] improved workaround for thread group issue --- src/main/java/org/javasim/Scheduler.java | 40 ++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/javasim/Scheduler.java b/src/main/java/org/javasim/Scheduler.java index 7b56612..06569de 100644 --- a/src/main/java/org/javasim/Scheduler.java +++ b/src/main/java/org/javasim/Scheduler.java @@ -152,18 +152,52 @@ static synchronized boolean schedule () throws SimulationException try { + /* + * For some reason when executing tests in junit an old and dead + * thread appears in the simulation queue. Have only ever seen this + * be a single thread instance, but it is reproducible every time. + * + * https://github.com/nmcl/JavaSim/issues/64 + * + * Will try to find out what actually causes this and remove the + * workaround eventually. + * + * https://github.com/nmcl/JavaSim/issues/76 + */ + SimulationProcess.Current = Scheduler.ReadyQueue.remove(); + boolean done = true; - if (SimulationProcess.Current.getThreadGroup() == null) + do { - SimulationProcess.Current = Scheduler.ReadyQueue.remove(); - p = SimulationProcess.Current; + if (SimulationProcess.Current != null) + { + if (SimulationProcess.Current.getThreadGroup() == null) + { + SimulationProcess.Current = Scheduler.ReadyQueue.remove(); + p = SimulationProcess.current(); + done = false; + } + else + done = true; + } + else + throw new NoSuchElementException(); } + while (!done); } catch (NoSuchElementException e) { System.out.println("Simulation queue empty."); + + return false; } + catch (NullPointerException e) + { + System.out.println("Simulation queue empty."); + + return false; + } if (SimulationProcess.Current.evtime() < 0) throw new SimulationException("Invalid SimulationProcess wakeup time."); From fbc7af18f6332b46137cdb57727b537b08586694 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 7 Jan 2020 17:06:28 +0000 Subject: [PATCH 211/230] tidyup --- src/main/java/org/javasim/internal/SimulationProcessList.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/javasim/internal/SimulationProcessList.java b/src/main/java/org/javasim/internal/SimulationProcessList.java index 4c02620..b58623f 100644 --- a/src/main/java/org/javasim/internal/SimulationProcessList.java +++ b/src/main/java/org/javasim/internal/SimulationProcessList.java @@ -204,4 +204,4 @@ public void print () // package? protected SimulationProcessCons Head; -} \ No newline at end of file +} From 4934e2e991afa31bdd18a47bfbde8643a95d7c68 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 7 Jan 2020 17:06:44 +0000 Subject: [PATCH 212/230] removed spurious print --- src/main/java/org/javasim/Scheduler.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/javasim/Scheduler.java b/src/main/java/org/javasim/Scheduler.java index 06569de..247fc5d 100644 --- a/src/main/java/org/javasim/Scheduler.java +++ b/src/main/java/org/javasim/Scheduler.java @@ -69,7 +69,7 @@ public static double currentTime () * * @throws SimulationException if an error occurs. */ - + static synchronized void reset () throws SimulationException { boolean finished = false; @@ -206,7 +206,7 @@ static synchronized boolean schedule () throws SimulationException if (p != SimulationProcess.Current) { - Simulation.printQueue(); + // Simulation.printQueue(); SimulationProcess.Current.resumeProcess(); From 6a74414aba655f530e9b4760eba990749ed23139 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 7 Jan 2020 18:19:07 +0000 Subject: [PATCH 213/230] Update BasicExampleUnitTest.java --- .../javasim/tests/examples/basic/BasicExampleUnitTest.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java b/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java index 07d0c71..ff61b87 100644 --- a/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java +++ b/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java @@ -33,11 +33,10 @@ public class BasicExampleUnitTest public void testNoBreaks () { boolean isBreaks = false; - MachineShop m = new MachineShop(isBreaks); m.await(); - + try { Simulation.reset(); @@ -51,7 +50,6 @@ public void testNoBreaks () public void testBreaks () { boolean isBreaks = true; - MachineShop m = new MachineShop(isBreaks); m.await(); From 7dcf558da25cc6cf18c1aea8a45e3a1e746d186a Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 8 Jan 2020 16:26:05 +0000 Subject: [PATCH 214/230] added ability to skip tests --- pom.xml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 791d0cf..89b9a75 100644 --- a/pom.xml +++ b/pom.xml @@ -8,6 +8,7 @@ http://maven.apache.org UTF-8 + false @@ -26,7 +27,10 @@ maven-surefire-plugin 2.17 - + + ${skipTests} -Djdk.net.URLClassPath.disableClassPathURLCheck=true From fbfbcea2aeddb3a3b24ab8b61f82186ae274918f Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 11 Jan 2020 14:31:21 +0000 Subject: [PATCH 215/230] Start of refactoring examples https://github.com/nmcl/JavaSim/issues/81 --- examples/pom.xml | 54 +++++++++++++++++++ .../org/javasim/examples/basic/Arrivals.java | 0 .../org/javasim/examples/basic/Breaks.java | 0 .../java/org/javasim/examples/basic/Job.java | 0 .../org/javasim/examples/basic/Machine.java | 0 .../javasim/examples/basic/MachineShop.java | 0 .../java/org/javasim/examples/basic/Main.java | 0 .../org/javasim/examples/basic/Queue.java | 0 .../java/org/javasim/examples/basic/README.md | 0 .../javasim/examples/basic/expected_output | 0 .../javasim/examples/interrupt/Arrivals.java | 0 .../org/javasim/examples/interrupt/Job.java | 0 .../examples/interrupt/MachineShop.java | 0 .../org/javasim/examples/interrupt/Main.java | 0 .../javasim/examples/interrupt/Processor.java | 0 .../org/javasim/examples/interrupt/Queue.java | 0 .../org/javasim/examples/interrupt/README.md | 0 .../javasim/examples/interrupt/Signaller.java | 0 .../java/org/javasim/examples/stats/README.md | 0 .../org/javasim/examples/stats/Stats.java | 0 .../org/javasim/examples/streams/README.md | 0 .../org/javasim/examples/streams/Streams.java | 0 .../examples/basic/BasicExampleUnitTest.java | 0 .../interrupt/InterruptExampleUnitTest.java | 0 .../examples/stats/StatsExampleUnitTest.java | 0 .../streams/StreamsExampleUnitTest.java | 0 .../streams/TriangularExampleStreamTest.java | 0 27 files changed, 54 insertions(+) create mode 100644 examples/pom.xml rename {src/test => examples/src/main}/java/org/javasim/examples/basic/Arrivals.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/Breaks.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/Job.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/Machine.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/MachineShop.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/Main.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/Queue.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/README.md (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/basic/expected_output (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/Arrivals.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/Job.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/MachineShop.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/Main.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/Processor.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/Queue.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/README.md (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/interrupt/Signaller.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/stats/README.md (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/stats/Stats.java (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/streams/README.md (100%) rename {src/test => examples/src/main}/java/org/javasim/examples/streams/Streams.java (100%) rename {src => examples/src}/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java (100%) rename {src => examples/src}/test/java/org/javasim/tests/examples/interrupt/InterruptExampleUnitTest.java (100%) rename {src => examples/src}/test/java/org/javasim/tests/examples/stats/StatsExampleUnitTest.java (100%) rename {src => examples/src}/test/java/org/javasim/tests/examples/streams/StreamsExampleUnitTest.java (100%) rename {src => examples/src}/test/java/org/javasim/tests/examples/streams/TriangularExampleStreamTest.java (100%) diff --git a/examples/pom.xml b/examples/pom.xml new file mode 100644 index 0000000..fb6c5c6 --- /dev/null +++ b/examples/pom.xml @@ -0,0 +1,54 @@ + + + 4.0.0 + javasim-examples + javasim-examples + javasim-examples + 2.3 + http://maven.apache.org + + UTF-8 + + + + + maven-compiler-plugin + org.apache.maven.plugins + 3.6.0 + + 1.8 + 1.8 + UTF-8 + ../target/classes + + + + org.apache.maven.plugins + maven-surefire-plugin + 2.17 + + 1 + false + + ../target/classes + + + -Djdk.net.URLClassPath.disableClassPathURLCheck=true + + + + + + + junit + junit + 4.0 + jar + test + true + + + + diff --git a/src/test/java/org/javasim/examples/basic/Arrivals.java b/examples/src/main/java/org/javasim/examples/basic/Arrivals.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/Arrivals.java rename to examples/src/main/java/org/javasim/examples/basic/Arrivals.java diff --git a/src/test/java/org/javasim/examples/basic/Breaks.java b/examples/src/main/java/org/javasim/examples/basic/Breaks.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/Breaks.java rename to examples/src/main/java/org/javasim/examples/basic/Breaks.java diff --git a/src/test/java/org/javasim/examples/basic/Job.java b/examples/src/main/java/org/javasim/examples/basic/Job.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/Job.java rename to examples/src/main/java/org/javasim/examples/basic/Job.java diff --git a/src/test/java/org/javasim/examples/basic/Machine.java b/examples/src/main/java/org/javasim/examples/basic/Machine.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/Machine.java rename to examples/src/main/java/org/javasim/examples/basic/Machine.java diff --git a/src/test/java/org/javasim/examples/basic/MachineShop.java b/examples/src/main/java/org/javasim/examples/basic/MachineShop.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/MachineShop.java rename to examples/src/main/java/org/javasim/examples/basic/MachineShop.java diff --git a/src/test/java/org/javasim/examples/basic/Main.java b/examples/src/main/java/org/javasim/examples/basic/Main.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/Main.java rename to examples/src/main/java/org/javasim/examples/basic/Main.java diff --git a/src/test/java/org/javasim/examples/basic/Queue.java b/examples/src/main/java/org/javasim/examples/basic/Queue.java similarity index 100% rename from src/test/java/org/javasim/examples/basic/Queue.java rename to examples/src/main/java/org/javasim/examples/basic/Queue.java diff --git a/src/test/java/org/javasim/examples/basic/README.md b/examples/src/main/java/org/javasim/examples/basic/README.md similarity index 100% rename from src/test/java/org/javasim/examples/basic/README.md rename to examples/src/main/java/org/javasim/examples/basic/README.md diff --git a/src/test/java/org/javasim/examples/basic/expected_output b/examples/src/main/java/org/javasim/examples/basic/expected_output similarity index 100% rename from src/test/java/org/javasim/examples/basic/expected_output rename to examples/src/main/java/org/javasim/examples/basic/expected_output diff --git a/src/test/java/org/javasim/examples/interrupt/Arrivals.java b/examples/src/main/java/org/javasim/examples/interrupt/Arrivals.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/Arrivals.java rename to examples/src/main/java/org/javasim/examples/interrupt/Arrivals.java diff --git a/src/test/java/org/javasim/examples/interrupt/Job.java b/examples/src/main/java/org/javasim/examples/interrupt/Job.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/Job.java rename to examples/src/main/java/org/javasim/examples/interrupt/Job.java diff --git a/src/test/java/org/javasim/examples/interrupt/MachineShop.java b/examples/src/main/java/org/javasim/examples/interrupt/MachineShop.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/MachineShop.java rename to examples/src/main/java/org/javasim/examples/interrupt/MachineShop.java diff --git a/src/test/java/org/javasim/examples/interrupt/Main.java b/examples/src/main/java/org/javasim/examples/interrupt/Main.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/Main.java rename to examples/src/main/java/org/javasim/examples/interrupt/Main.java diff --git a/src/test/java/org/javasim/examples/interrupt/Processor.java b/examples/src/main/java/org/javasim/examples/interrupt/Processor.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/Processor.java rename to examples/src/main/java/org/javasim/examples/interrupt/Processor.java diff --git a/src/test/java/org/javasim/examples/interrupt/Queue.java b/examples/src/main/java/org/javasim/examples/interrupt/Queue.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/Queue.java rename to examples/src/main/java/org/javasim/examples/interrupt/Queue.java diff --git a/src/test/java/org/javasim/examples/interrupt/README.md b/examples/src/main/java/org/javasim/examples/interrupt/README.md similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/README.md rename to examples/src/main/java/org/javasim/examples/interrupt/README.md diff --git a/src/test/java/org/javasim/examples/interrupt/Signaller.java b/examples/src/main/java/org/javasim/examples/interrupt/Signaller.java similarity index 100% rename from src/test/java/org/javasim/examples/interrupt/Signaller.java rename to examples/src/main/java/org/javasim/examples/interrupt/Signaller.java diff --git a/src/test/java/org/javasim/examples/stats/README.md b/examples/src/main/java/org/javasim/examples/stats/README.md similarity index 100% rename from src/test/java/org/javasim/examples/stats/README.md rename to examples/src/main/java/org/javasim/examples/stats/README.md diff --git a/src/test/java/org/javasim/examples/stats/Stats.java b/examples/src/main/java/org/javasim/examples/stats/Stats.java similarity index 100% rename from src/test/java/org/javasim/examples/stats/Stats.java rename to examples/src/main/java/org/javasim/examples/stats/Stats.java diff --git a/src/test/java/org/javasim/examples/streams/README.md b/examples/src/main/java/org/javasim/examples/streams/README.md similarity index 100% rename from src/test/java/org/javasim/examples/streams/README.md rename to examples/src/main/java/org/javasim/examples/streams/README.md diff --git a/src/test/java/org/javasim/examples/streams/Streams.java b/examples/src/main/java/org/javasim/examples/streams/Streams.java similarity index 100% rename from src/test/java/org/javasim/examples/streams/Streams.java rename to examples/src/main/java/org/javasim/examples/streams/Streams.java diff --git a/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java b/examples/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java similarity index 100% rename from src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java rename to examples/src/test/java/org/javasim/tests/examples/basic/BasicExampleUnitTest.java diff --git a/src/test/java/org/javasim/tests/examples/interrupt/InterruptExampleUnitTest.java b/examples/src/test/java/org/javasim/tests/examples/interrupt/InterruptExampleUnitTest.java similarity index 100% rename from src/test/java/org/javasim/tests/examples/interrupt/InterruptExampleUnitTest.java rename to examples/src/test/java/org/javasim/tests/examples/interrupt/InterruptExampleUnitTest.java diff --git a/src/test/java/org/javasim/tests/examples/stats/StatsExampleUnitTest.java b/examples/src/test/java/org/javasim/tests/examples/stats/StatsExampleUnitTest.java similarity index 100% rename from src/test/java/org/javasim/tests/examples/stats/StatsExampleUnitTest.java rename to examples/src/test/java/org/javasim/tests/examples/stats/StatsExampleUnitTest.java diff --git a/src/test/java/org/javasim/tests/examples/streams/StreamsExampleUnitTest.java b/examples/src/test/java/org/javasim/tests/examples/streams/StreamsExampleUnitTest.java similarity index 100% rename from src/test/java/org/javasim/tests/examples/streams/StreamsExampleUnitTest.java rename to examples/src/test/java/org/javasim/tests/examples/streams/StreamsExampleUnitTest.java diff --git a/src/test/java/org/javasim/tests/examples/streams/TriangularExampleStreamTest.java b/examples/src/test/java/org/javasim/tests/examples/streams/TriangularExampleStreamTest.java similarity index 100% rename from src/test/java/org/javasim/tests/examples/streams/TriangularExampleStreamTest.java rename to examples/src/test/java/org/javasim/tests/examples/streams/TriangularExampleStreamTest.java From 1bd0a76577f97ced05fa82102f4d766e0b50ecf7 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 15 Jan 2020 11:07:00 -0500 Subject: [PATCH 216/230] Update README.md --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/README.md b/README.md index b0a0449..8a38680 100644 --- a/README.md +++ b/README.md @@ -21,10 +21,18 @@ To build: mvn compile +Run tests: + +mvn tests + Run tests and create installation: mvn install +Run examples, go into examples directory: + +mvn compile + To cleanup: mvn clean From dbe97db6237bbcd92091a88091649fe9465ad9c1 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 20 Jan 2020 15:23:54 +0000 Subject: [PATCH 217/230] Fixed typo --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8a38680..b4e12ad 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ mvn compile Run tests: -mvn tests +mvn test Run tests and create installation: From 6ac82d0c59ee88c64e2c8520e7f7c9751b894898 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 20 Jan 2020 15:35:00 +0000 Subject: [PATCH 218/230] Fixed classpath issue https://github.com/nmcl/JavaSim/issues/83 --- examples/pom.xml | 13 ++++++++----- pom.xml | 5 ++++- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/examples/pom.xml b/examples/pom.xml index fb6c5c6..0165804 100644 --- a/examples/pom.xml +++ b/examples/pom.xml @@ -19,7 +19,6 @@ 1.8 1.8 UTF-8 - ../target/classes @@ -29,9 +28,6 @@ 1 false - - ../target/classes - @@ -48,7 +44,14 @@ jar test true - + + + javasim + javasim + 2.3 + system + ${basedir}/../target/javasim-${version}.jar + diff --git a/pom.xml b/pom.xml index 89b9a75..f296fd4 100644 --- a/pom.xml +++ b/pom.xml @@ -1,11 +1,14 @@ 4.0.0 + javasim javasim - javasim 2.3 + javasim + http://maven.apache.org + UTF-8 false From 034f1a649419d1e7ab577945fd9abf793f7435ba Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 20 Jan 2020 15:36:02 +0000 Subject: [PATCH 219/230] Create README.md https://github.com/nmcl/JavaSim/issues/84 --- examples/README.md | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 examples/README.md diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..a13a2e8 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,3 @@ +To build and run the examples: + +mvn test From 30a44e44a997f377737b5da0ecca0bd982b062bc Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 20 Jan 2020 15:37:45 +0000 Subject: [PATCH 220/230] tidy up --- README.md | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/README.md b/README.md index b4e12ad..fcfecab 100644 --- a/README.md +++ b/README.md @@ -29,10 +29,4 @@ Run tests and create installation: mvn install -Run examples, go into examples directory: - -mvn compile - -To cleanup: - -mvn clean +Run examples check the README in that directory. From 4acbefb7a4fe03ce8c4bf676c538d4a521f39cf0 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 20 Jan 2020 15:45:10 +0000 Subject: [PATCH 221/230] Update README.md https://github.com/nmcl/JavaSim/issues/81 --- examples/README.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/examples/README.md b/examples/README.md index a13a2e8..ff52105 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,3 +1,7 @@ -To build and run the examples: +To build the examples: + +mvn compile + +If you want to run the examples as unit tests then: mvn test From 5aad991be384528405353a3bec891d73d8f3e06d Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jan 2020 17:34:08 +0000 Subject: [PATCH 222/230] Update README.md --- examples/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/README.md b/examples/README.md index ff52105..1bf9cff 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,4 +1,4 @@ -To build the examples: +To build the examples (after the main source tree has been built using mvn install): mvn compile From a5832734eb7121eeeb579cd7b9bd37624c738f06 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Tue, 21 Jan 2020 17:35:09 +0000 Subject: [PATCH 223/230] Update README.md --- examples/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/README.md b/examples/README.md index 1bf9cff..ee13590 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,4 +1,4 @@ -To build the examples (after the main source tree has been built using mvn install): +To build the examples (after the main source tree has been built using 'mvn install'): mvn compile From 16abd0299097b7988241a6e4d5320db12ee9ce67 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Thu, 23 Jan 2020 15:34:56 +0000 Subject: [PATCH 224/230] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index fcfecab..4594798 100644 --- a/README.md +++ b/README.md @@ -29,4 +29,4 @@ Run tests and create installation: mvn install -Run examples check the README in that directory. +To run the examples check the README in that directory. From daf9941854dc0946653f41bcd91fdd494e66fff7 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Fri, 10 Apr 2020 19:49:21 +0100 Subject: [PATCH 225/230] Update README.md --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 4594798..c757baa 100644 --- a/README.md +++ b/README.md @@ -9,12 +9,10 @@ The system also comes with complete examples and tests which illustrate many of Over the years C++SIM and JavaSim have been used by many commercial and academic organisations. -Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under the University's own licence. However, in late 2007 Newcastle University decided that everything could be released into open source under LGPL. +Prior to 2007 both C++SIM and JavaSim were freely available in source and binary from Newcastle University, under the University's own licence. However, in late 2007 Newcastle University decided that everything could be released into open source under LGPL. In 2015 the code was moved from Codehaus to github. All JIRAs from there were also recreated as github issues. You can find details of the releases in the https://github.com/nmcl/JavaSim/releases section as well as binary downloads for some releases. -In 2015 the code was moved from Codehaus to github. All JIRAs from there were also recreated as github issues. - ---- To build: From d865bd7c4d11585d62a7f7593d6ccf2b916577a2 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Mon, 13 Apr 2020 16:59:09 +0100 Subject: [PATCH 226/230] Update README.md --- examples/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/examples/README.md b/examples/README.md index ee13590..c09058a 100644 --- a/examples/README.md +++ b/examples/README.md @@ -1,4 +1,4 @@ -To build the examples (after the main source tree has been built using 'mvn install'): +To build the examples first ensure that the main source tree has been built using 'mvn install'. Then here: mvn compile From 0df5667b3d754fe11ad1e0281d1543efc87c2d03 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sat, 9 May 2020 18:03:15 +0100 Subject: [PATCH 227/230] fixed syntax --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index fbbea07..956d60e 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -12,7 +12,7 @@ These requirements were realised in the following design decisions: - the discrete-event process based simulation facilities provided by SIMULA and its simulation classes and libraries have a considerable experience and user community which have found them to be successful for a wide variety of simulations. In later versions of the system additional simulation classes were added which provide extra functionality. -- inheritance was to be used throughout the design to even a greater extent than is already provided in SIMULA. This enables JavaSim to be more flexible and extensible, allowing new functionality to be added without affecting the overall system structure. For example, our I/O facilities, random number generators and probability distribution functions are entirely object-oriented, relying on inheritance to specialise their behaviour. +- inheritance was to be used throughout the design to an even greater extent than is already provided in SIMULA. This enables JavaSim to be more flexible and extensible, allowing new functionality to be added without affecting the overall system structure. For example, our I/O facilities, random number generators and probability distribution functions are entirely object-oriented, relying on inheritance to specialise their behaviour. NOTE: It is not necessary for the reader to know anything about the SIMULA programming language or its simulation classes, but such knowledge would aid in the understanding of the concepts and classes presented within. From 7a864db99e012277c45a3a691fa3ab5884ea17b9 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 20 May 2020 20:11:54 +0100 Subject: [PATCH 228/230] Update manual.adoc --- docs/manual.adoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/manual.adoc b/docs/manual.adoc index 956d60e..efbf2ea 100644 --- a/docs/manual.adoc +++ b/docs/manual.adoc @@ -36,7 +36,7 @@ Thus, the first step towards building a simulation model of a system is to deter === Terminology -The system components chosen for the simulation are termed simulation entities. Associated with each _entity_ in the simulation are zero or more _attributes_ that describe the state of the entity and which may vary during the course of the simulation. The interaction of entities and the changes they cause in the system state are termed _events_. +The system components chosen for the simulation are termed _simulation entities_. Associated with each _entity_ in the simulation are zero or more _attributes_ that describe the state of the entity and which may vary during the course of the simulation. The interaction of entities and the changes they cause in the system state are termed _events_. The collection of these component attributes at any given time _t_ defines the system state at _t_. In general, the system state can take any of a variety of values, and a given simulation run results in one realisation of a set of these values (the _operation path_) over the _observation period_. From 85845dea16843bd03834c20cf27cd4cad146771e Mon Sep 17 00:00:00 2001 From: Mark Little Date: Sun, 2 Aug 2020 16:49:24 +0100 Subject: [PATCH 229/230] updated for https --- .gitignore | 1 + pom.xml | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index f904c43..fb9ab82 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ target .idea .DS_Store *.out +*~* diff --git a/pom.xml b/pom.xml index f296fd4..2147312 100644 --- a/pom.xml +++ b/pom.xml @@ -8,7 +8,7 @@ javasim http://maven.apache.org - + UTF-8 false From 9ce1fcea4fa9e64d7385fd224c82152ba70ed9e5 Mon Sep 17 00:00:00 2001 From: Mark Little Date: Wed, 9 Dec 2020 13:57:37 +0000 Subject: [PATCH 230/230] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c757baa..97e7422 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ JavaSIM is an object-oriented simulation package based upon C++SIM and has been in use since 1997. It provides discrete event process-based simulation similar to SIMULA's simulation class and libraries. A complete list of the capabilities provided follows: -- The core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms and in the C++ original there are thread package interfaces, though for Java that's not necessary. +- The core of the system gives SIMULA-like simulation routines, random number generators, queueing algorithms and in C++SIM there are thread package interfaces, though for Java that's not necessary. - Entity and set manipulation facilities similar to SIMSET. - Classes allow "non-causal" events, such as interrupts, to be handled. - Various routines for gathering statistics, such as histogram and variance classes.