diff --git a/.gitignore b/.gitignore index c578a02bd73be65fe626f2446fbadc6d695411f3..eea908e3148e5530c62b46d7390876f9cdb4a371 100644 --- a/.gitignore +++ b/.gitignore @@ -20,6 +20,8 @@ *.rar src/main/resources/output.csv +src/main/resources/pythonOutput/*.csv +src/main/resources/pythonOutput/*.png # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* diff --git a/LICENSE b/LICENSE index 261eeb9e9f8b2b4b0d119366dda99c6fd7d35c64..9ea99b2e6e9aadca1fff47a3febfcd7cfa9afbae 100644 --- a/LICENSE +++ b/LICENSE @@ -127,7 +127,7 @@ reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. - 5. Submission of Contributions. Unless You explicitly state otherwise, + 5. Submission of Contributions. Unless You explicitly SEIRSState otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. diff --git a/outputToGraph.py b/outputToGraph.py index 52739c54d4afb39f0acec846d1315660bd455f98..ed40da3a8e7714c00ba882d257c7ea90a3fd347f 100644 --- a/outputToGraph.py +++ b/outputToGraph.py @@ -1,12 +1,28 @@ import csv +import yaml import matplotlib.pyplot as plt +OUTPUT_FILE_LOCATION = 'src/main/resources/output.csv' +OUTPUT_FOLDER = 'src/main/resources/pythonOutput' +JAR_LOCATION = 'out/artifacts/SMA_SEIR_jar/SMA-SEIR.jar' +YAML_FILE = 'src/main/resources/parameters.yaml' + def readCSV(fileName): with open(fileName, 'r') as csvfile: reader = csv.reader(csvfile) return list(reader) -def showDiagram(data): +def getValues() : + with open(YAML_FILE, 'r') as file: + data = yaml.safe_load(file) + incubation = data['incubationRate'] + infection = data['infectionRate'] + recovery = data['recoveryRate'] + looseImmunity = data['looseImmunityRate'] + return f"incubationRate : {incubation} InfectionRate : {infection}\n RecoveryRate : {recovery} LooseImmunityRate : {looseImmunity}" + +def makeDiagram(fileName): + data = readCSV(fileName) suceptible = [] exposed = [] recovred = [] @@ -18,6 +34,7 @@ def showDiagram(data): recovred.append(int(row[2])) infected.append(int(row[3])) + plt.title(getValues()) plt.plot(suceptible, label='Suceptible', color='gray') plt.plot(exposed, label='Exposed', color='yellow') plt.plot(infected, label='Infected', color='red') @@ -25,14 +42,36 @@ def showDiagram(data): plt.xlabel('Cycles') plt.ylabel('Peoples') plt.legend() - plt.show() + plt.savefig(f'{fileName.split(".")[0]}.png') + #plt.show() + plt.close() def runJavaJar(fileName): import subprocess subprocess.call(['java', '-jar', fileName]) + +def copyToOutputFolder(fileName): + import shutil + shutil.copy(OUTPUT_FILE_LOCATION, f"{OUTPUT_FOLDER}/{fileName}") + +def createFile(): + with open(OUTPUT_FILE_LOCATION, 'w') as file: + file.write('') + +def editYaml(key,value): + with open(YAML_FILE, 'r') as file: + data = yaml.safe_load(file) + data[key] = value -runJavaJar('out/artifacts/SMA_SEIR_jar/SMA-SEIR.jar') + with open(YAML_FILE, 'w') as file: + yaml.dump(data, file) -# data = readCSV("src/main/resources/output.csv") +# if __name__ == "__main__": +# for i in range(10): +# editYaml("infectionRate", 0.05+(0.05*i)) +# runJavaJar(JAR_LOCATION) +# copyToOutputFolder(f"output{i}.csv") +# makeDiagram(f"{OUTPUT_FOLDER}/output{i}.csv") -# showDiagram(data) \ No newline at end of file +runJavaJar(JAR_LOCATION) +makeDiagram(OUTPUT_FILE_LOCATION) \ No newline at end of file diff --git a/src/main/java/RunExperiment.java b/src/main/java/RunExperiment.java new file mode 100644 index 0000000000000000000000000000000000000000..2084dc0588e48bbcb60a8eb77d65a2f80b495613 --- /dev/null +++ b/src/main/java/RunExperiment.java @@ -0,0 +1,54 @@ +import agents.RandomWalkingAgent; +import agents.SEIRSAgent; +import agents.states.InfectedSEIRSState; +import environment.SEIRSEnvironment; +import models.Parameters; +import scheduler.FairAsynchronousScheduler; +import scheduler.FairSynchronousScheduler; +import scheduler.Scheduler; +import sma.SEIRS_SMA; +import sma.SMA; +import utils.YamlReader; + +import java.awt.*; +import java.util.Random; + +public class RunExperiment { + + public static void main(String[] args) { + SMA sma = new SEIRS_SMA(); + Parameters parameters = YamlReader.getParams(); + Random r = new Random(parameters.getSeed()); + + SEIRSAgent[] agents = new RandomWalkingAgent[parameters.getPopulation()]; + Scheduler scheduler; + SEIRSEnvironment environment = new SEIRSEnvironment(parameters.getSize(),agents); + + //Populate agents + for (int i = 0; i<parameters.getPopulation();i++) { + Point position = new Point(r.nextInt(parameters.getSize()),r.nextInt(parameters.getSize())); + RandomWalkingAgent agent = new RandomWalkingAgent(position,parameters.getSeed()+i,environment); + agents[i] = agent; + } + + //Infect agents + for (int i=0 ; i< parameters.getNbOfPatientZero(); i++) { + SEIRSAgent agent = agents[(r.nextInt(parameters.getPopulation()))]; + while (agent.getState() instanceof InfectedSEIRSState) { + agent = agents[(r.nextInt(parameters.getPopulation()))]; + } + agent.changeState(new InfectedSEIRSState(agent)); + } + + //create scheduler + if (parameters.isSynchronousMode()) { + scheduler = new FairSynchronousScheduler(parameters.getSeed()); + } else { + scheduler = new FairAsynchronousScheduler(); + } + + sma.init(environment,scheduler,agents); + sma.run(); + } + +} diff --git a/src/main/java/agents/Agent.java b/src/main/java/agents/Agent.java new file mode 100644 index 0000000000000000000000000000000000000000..07fba3ca7c4a95a1fad565c22740022945f3b228 --- /dev/null +++ b/src/main/java/agents/Agent.java @@ -0,0 +1,6 @@ +package agents; + +public interface Agent { + + void wakeUp(); +} diff --git a/src/main/java/agents/Agent2D.java b/src/main/java/agents/Agent2D.java new file mode 100644 index 0000000000000000000000000000000000000000..efc183b074d4b9676452696b70608233d7897348 --- /dev/null +++ b/src/main/java/agents/Agent2D.java @@ -0,0 +1,8 @@ +package agents; + +import java.awt.*; + +public interface Agent2D extends Agent { + + Point getPosition(); +} diff --git a/src/main/java/agents/RandomWalkingAgent.java b/src/main/java/agents/RandomWalkingAgent.java new file mode 100644 index 0000000000000000000000000000000000000000..09f3c0b0d5c9c48bb45366c9898f9804d9fe35e3 --- /dev/null +++ b/src/main/java/agents/RandomWalkingAgent.java @@ -0,0 +1,102 @@ +package agents; + +import agents.states.InfectedSEIRSState; +import agents.states.SEIRSState; +import agents.states.SuceptibleSEIRSState; +import environment.SquareEnvironment2D; +import environment.SEIRSEnvironment; +import utils.YamlReader; + +import java.awt.Point; +import java.util.Random; + +public class RandomWalkingAgent implements SEIRSAgent { + + private Point position; + private final Random r; + private final SEIRSEnvironment environment; + private SEIRSState SEIRSState; + + public RandomWalkingAgent(Point position, int seed, SEIRSEnvironment environment) { + this.position = position; + this.SEIRSState = new SuceptibleSEIRSState(this); + this.environment = environment; + this.r = new Random(seed); + } + + private void move() { + SEIRSState.onMovement(); + int move = r.nextInt(4); + Point newPosition = switch (move) { + case SquareEnvironment2D.LEFT -> new Point(position.x- SEIRSEnvironment.RADIUS,position.y); + case SquareEnvironment2D.RIGHT -> new Point(position.x+ SEIRSEnvironment.RADIUS,position.y); + case SquareEnvironment2D.UP -> new Point(position.x,position.y- SEIRSEnvironment.RADIUS); + case SquareEnvironment2D.DOWN -> new Point(position.x,position.y+ SEIRSEnvironment.RADIUS); + default -> throw new IllegalStateException("Unexpected value: " + move); + }; + if (newPosition.x <= environment.getSize()-1 && newPosition.x >= 0 && newPosition.y <= environment.getSize()-1 && newPosition.y >=0 ) { + environment.notifyNewPosition(position,newPosition ,this); + position = newPosition; + } + } + + @Override + public void wakeUp() { + move(); + } + + + @Override + public void changeState(SEIRSState SEIRSState) { this.SEIRSState = SEIRSState; } + + @Override + public boolean isExposed() { + boolean isExposed = false; + for (SEIRSAgent neighbor: environment.getNeighbors(position)) { + if ((neighbor).getState() instanceof InfectedSEIRSState) { + int roll = r.nextInt(10000)+1; + if (roll <= YamlReader.getParams().getInfectionRate()*10000) { + isExposed = true; + } + } + } + return isExposed; + } + + @Override + public boolean isInfected() { + boolean isSick = false; + int roll = r.nextInt(10000)+1; + if (roll <= YamlReader.getParams().getIncubationRate()*10000) { + isSick = true; + } + return isSick; + } + + @Override + public boolean isRecovered() { + boolean isHealed = false; + int roll = r.nextInt(10000)+1; + if (roll <= YamlReader.getParams().getRecoveryRate()*10000) { + isHealed = true; + } + return isHealed; + } + + @Override + public boolean hasLostImmunity() { + boolean hasLostImmunity = false; + int roll = r.nextInt(10000)+1; + if (roll <= YamlReader.getParams().getLooseImmunityRate()*10000) { + hasLostImmunity = true; + } + return hasLostImmunity; + } + + @Override + public SEIRSState getState() { return this.SEIRSState; } + + @Override + public Point getPosition() { return position; } + +} diff --git a/src/main/java/agents/SEIRSAgent.java b/src/main/java/agents/SEIRSAgent.java new file mode 100644 index 0000000000000000000000000000000000000000..b926e8d65069c7221e3dc3c6cfb03eefb0ded984 --- /dev/null +++ b/src/main/java/agents/SEIRSAgent.java @@ -0,0 +1,13 @@ +package agents; + +import agents.states.SEIRSState; + +public interface SEIRSAgent extends Agent2D { + + void changeState(SEIRSState SEIRSState); + SEIRSState getState(); + boolean isExposed(); + boolean isInfected(); + boolean isRecovered(); + boolean hasLostImmunity(); +} diff --git a/src/main/java/agents/states/ExposedSEIRSState.java b/src/main/java/agents/states/ExposedSEIRSState.java new file mode 100644 index 0000000000000000000000000000000000000000..b4b39c32e64849bfecc876d0eb67edf5013c3651 --- /dev/null +++ b/src/main/java/agents/states/ExposedSEIRSState.java @@ -0,0 +1,20 @@ +package agents.states; + +public class ExposedSEIRSState extends SEIRSState { + + public ExposedSEIRSState(agents.SEIRSAgent SEIRSAgent) { + super(SEIRSAgent); + } + + @Override + public void onMovement() { + if (agent.isInfected()) { + agent.changeState(new InfectedSEIRSState(agent)); + } + } + + @Override + public String toString() { + return EXPOSED; + } +} diff --git a/src/main/java/agents/states/InfectedSEIRSState.java b/src/main/java/agents/states/InfectedSEIRSState.java new file mode 100644 index 0000000000000000000000000000000000000000..db3bfc874d4cd6d6971a8e066bfe891839e8e435 --- /dev/null +++ b/src/main/java/agents/states/InfectedSEIRSState.java @@ -0,0 +1,20 @@ +package agents.states; + +public class InfectedSEIRSState extends SEIRSState { + + public InfectedSEIRSState(agents.SEIRSAgent SEIRSAgent) { + super(SEIRSAgent); + } + + @Override + public void onMovement() { + if (agent.isRecovered()) { + agent.changeState(new RecoveredSEIRSState(agent)); + } + } + + @Override + public String toString() { + return INFECTED; + } +} diff --git a/src/main/java/agents/states/RecoveredSEIRSState.java b/src/main/java/agents/states/RecoveredSEIRSState.java new file mode 100644 index 0000000000000000000000000000000000000000..f9643243f0f0ebf4ead02fe3e166afa9b32c1620 --- /dev/null +++ b/src/main/java/agents/states/RecoveredSEIRSState.java @@ -0,0 +1,22 @@ +package agents.states; + +import agents.SEIRSAgent; + +public class RecoveredSEIRSState extends SEIRSState { + + public RecoveredSEIRSState(SEIRSAgent SEIRSAgent) { + super(SEIRSAgent); + } + + @Override + public void onMovement() { + if (agent.hasLostImmunity()) { + agent.changeState(new SuceptibleSEIRSState(agent)); + } + } + + @Override + public String toString() { + return RECOVERED; + } +} diff --git a/src/main/java/sma/agents/states/State.java b/src/main/java/agents/states/SEIRSState.java similarity index 64% rename from src/main/java/sma/agents/states/State.java rename to src/main/java/agents/states/SEIRSState.java index c797634ba06608c026db2d390d9ac0a7a5bcc5f8..78725a4808b0ff3541a126aee59485e4f61758a2 100644 --- a/src/main/java/sma/agents/states/State.java +++ b/src/main/java/agents/states/SEIRSState.java @@ -1,17 +1,17 @@ -package sma.agents.states; +package agents.states; -import sma.agents.Agent; +import agents.SEIRSAgent; -public abstract class State { +public abstract class SEIRSState { public final static String EXPOSED = "EXPOSED"; public final static String INFECTED = "INFECTED"; public final static String SUCEPTIBLE = "SUCEPTIBLE"; public final static String RECOVERED = "RECOVERED"; - protected Agent agent; + protected final agents.SEIRSAgent agent; - State(Agent agent) { + SEIRSState(SEIRSAgent agent) { this.agent = agent; } diff --git a/src/main/java/agents/states/SuceptibleSEIRSState.java b/src/main/java/agents/states/SuceptibleSEIRSState.java new file mode 100644 index 0000000000000000000000000000000000000000..f333f05c9fae315547311f1989729fddbc7bde98 --- /dev/null +++ b/src/main/java/agents/states/SuceptibleSEIRSState.java @@ -0,0 +1,20 @@ +package agents.states; + +public class SuceptibleSEIRSState extends SEIRSState { + + public SuceptibleSEIRSState(agents.SEIRSAgent SEIRSAgent) { + super(SEIRSAgent); + } + + @Override + public void onMovement() { + if (agent.isExposed()) { + agent.changeState(new ExposedSEIRSState(agent)); + } + } + + @Override + public String toString() { + return SUCEPTIBLE; + } +} diff --git a/src/main/java/environment/Environment.java b/src/main/java/environment/Environment.java new file mode 100644 index 0000000000000000000000000000000000000000..100ed085ce0e990d6aa695c6b744cbeff5f1bb19 --- /dev/null +++ b/src/main/java/environment/Environment.java @@ -0,0 +1,4 @@ +package environment; + +public interface Environment { +} diff --git a/src/main/java/environment/Environment2D.java b/src/main/java/environment/Environment2D.java new file mode 100644 index 0000000000000000000000000000000000000000..59a1643cdf6e8e121a319d8b0c3663cb6d83c66d --- /dev/null +++ b/src/main/java/environment/Environment2D.java @@ -0,0 +1,10 @@ +package environment; + +import agents.Agent; + +import java.awt.*; + +public interface Environment2D extends Environment { + + void notifyNewPosition(Point oldPosition, Point newPosition, Agent agent); +} diff --git a/src/main/java/sma/environment/SquaredChunksEnvironment.java b/src/main/java/environment/SEIRSEnvironment.java similarity index 73% rename from src/main/java/sma/environment/SquaredChunksEnvironment.java rename to src/main/java/environment/SEIRSEnvironment.java index f835005c5c25df2b1d54c496057d4793217efae0..c4ab08ab5ed2a18dbbdc92550d047c49ee701dca 100644 --- a/src/main/java/sma/environment/SquaredChunksEnvironment.java +++ b/src/main/java/environment/SEIRSEnvironment.java @@ -1,23 +1,25 @@ -package sma.environment; +package environment; -import sma.agents.Agent; -import sma.agents.states.State; +import agents.Agent; +import agents.SEIRSAgent; +import agents.states.SEIRSState; import java.awt.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; -public class SquaredChunksEnvironment implements Environment { +@SuppressWarnings("unchecked") +public class SEIRSEnvironment implements SquareEnvironment2D { public final static int RADIUS = 10; public final static int CHUNK_SIZE = 2*RADIUS; - public int size; - private Agent[] agents; - private List<Agent>[][] chunks; + public final int size; + private final SEIRSAgent[] agents; + private List<SEIRSAgent>[][] chunks; - public SquaredChunksEnvironment(int size, Agent[] agents) { + public SEIRSEnvironment(int size, SEIRSAgent[] agents) { this.agents = agents; this.size = size; } @@ -29,7 +31,7 @@ public class SquaredChunksEnvironment implements Environment { chunks[i][j] = new ArrayList<>(); } } - for (Agent agent : agents) { + for (SEIRSAgent agent : agents) { int x = agent.getPosition().x/CHUNK_SIZE; int y = agent.getPosition().y/CHUNK_SIZE; chunks[x][y].add(agent); @@ -57,12 +59,12 @@ public class SquaredChunksEnvironment implements Environment { }; } - private List<Agent> getChunkNeighbors(int relativeTo, Point p) { + private List<SEIRSAgent> getChunkNeighbors(int relativeTo, Point p) { Point newPosition = getRelativePoint(relativeTo,p); Point chunk = new Point(newPosition.x/CHUNK_SIZE,newPosition.y/CHUNK_SIZE); - var neighbors = new ArrayList<Agent>(); + List<SEIRSAgent> neighbors = new ArrayList<>(); try{ - for (Agent agent : chunks[chunk.x][chunk.y]) { + for (SEIRSAgent agent : chunks[chunk.x][chunk.y]) { if (detectCollision(p, agent.getPosition())) { neighbors.add(agent); } @@ -73,12 +75,11 @@ public class SquaredChunksEnvironment implements Environment { return neighbors; } - @Override - public List<Agent> getNeighbors(Point position) { + public List<SEIRSAgent> getNeighbors(Point position) { if (chunks == null) { throw new IllegalStateException("Chunks aren't initialized, you should use the initiateMethod() first."); } - var neighbors = new ArrayList<Agent>(); + var neighbors = new ArrayList<SEIRSAgent>(); for (int i = 0; i < MAX_CHUNK; i++) { neighbors.addAll(getChunkNeighbors(i,position)); @@ -86,30 +87,33 @@ public class SquaredChunksEnvironment implements Environment { return neighbors; } - @Override public void notifyNewPosition(Point oldPosition, Point newPosition, Agent agent) { if (chunks == null) { throw new IllegalStateException("Chunks aren't initialized, you should use the initiateMethod() first."); } if (oldPosition.x/CHUNK_SIZE != newPosition.x/CHUNK_SIZE || oldPosition.y/CHUNK_SIZE != newPosition.y/CHUNK_SIZE) { - chunks[oldPosition.x/CHUNK_SIZE][oldPosition.y/CHUNK_SIZE].remove(agent); - chunks[newPosition.x/CHUNK_SIZE][newPosition.y/CHUNK_SIZE].add(agent); + chunks[oldPosition.x/CHUNK_SIZE][oldPosition.y/CHUNK_SIZE].remove((SEIRSAgent) agent); + chunks[newPosition.x/CHUNK_SIZE][newPosition.y/CHUNK_SIZE].add((SEIRSAgent) agent); } } - @Override public HashMap<String,Integer> getAgentStatus() { var map = new HashMap<String,Integer>(); - map.put(State.EXPOSED,0); - map.put(State.INFECTED,0); - map.put(State.RECOVERED,0); - map.put(State.SUCEPTIBLE,0); + map.put(SEIRSState.EXPOSED,0); + map.put(SEIRSState.INFECTED,0); + map.put(SEIRSState.RECOVERED,0); + map.put(SEIRSState.SUCEPTIBLE,0); - for (Agent agent : agents) { - String state = agent.getState().toString(); + for (SEIRSAgent SEIRSAgent : agents) { + String state = SEIRSAgent.getState().toString(); map.put(state,map.get(state)+1); } return map; } + + @Override + public int getSize() { + return size; + } } diff --git a/src/main/java/environment/SquareEnvironment2D.java b/src/main/java/environment/SquareEnvironment2D.java new file mode 100644 index 0000000000000000000000000000000000000000..308242fb34c10588c4ae7379ddd120d0ecd27d99 --- /dev/null +++ b/src/main/java/environment/SquareEnvironment2D.java @@ -0,0 +1,16 @@ +package environment; + +public interface SquareEnvironment2D extends Environment2D { + int LEFT = 0; + int RIGHT = 1; + int UP = 2; + int DOWN = 3; + int CENTER = 4; + int UP_LEFT = 5; + int UP_RIGHT = 6; + int DOWN_LEFT = 7; + int DOWN_RIGHT = 8; + int MAX_CHUNK = 9; + + int getSize(); +} diff --git a/src/main/java/models/Parameters.java b/src/main/java/models/Parameters.java index d97ca635011168624f23d6a0e4c3df3f513a689c..ad96e8a01bd9e147375d574eca811e584f500e35 100644 --- a/src/main/java/models/Parameters.java +++ b/src/main/java/models/Parameters.java @@ -1,5 +1,6 @@ package models; +@SuppressWarnings("unused") public class Parameters { private int seed; diff --git a/src/main/java/scheduler/AsynchronousScheduler.java b/src/main/java/scheduler/AsynchronousScheduler.java new file mode 100644 index 0000000000000000000000000000000000000000..92f48a720f6e3a9805c0293e02eb42bfd6710889 --- /dev/null +++ b/src/main/java/scheduler/AsynchronousScheduler.java @@ -0,0 +1,4 @@ +package scheduler; + +public abstract class AsynchronousScheduler implements Scheduler { +} diff --git a/src/main/java/sma/scheduler/FairAsynchronousScheduler.java b/src/main/java/scheduler/FairAsynchronousScheduler.java similarity index 67% rename from src/main/java/sma/scheduler/FairAsynchronousScheduler.java rename to src/main/java/scheduler/FairAsynchronousScheduler.java index ee65acbc40bea22b5b06b7fcc9e59af61b799864..4df02c25151ff6e6f3afef9e03664ee23e7a9308 100644 --- a/src/main/java/sma/scheduler/FairAsynchronousScheduler.java +++ b/src/main/java/scheduler/FairAsynchronousScheduler.java @@ -1,7 +1,6 @@ -package sma.scheduler; +package scheduler; -import sma.agents.Agent; -import sma.agents.RandomWalkingAgent; +import agents.Agent; import java.util.Arrays; import java.util.List; @@ -10,17 +9,19 @@ import java.util.concurrent.*; import java.util.function.Function; import java.util.stream.Collectors; -public class FairAsynchronousScheduler implements Scheduler{ +public class FairAsynchronousScheduler extends AsynchronousScheduler { - private ExecutorService executor = Executors.newSingleThreadExecutor(); + private final ExecutorService executor = Executors.newSingleThreadExecutor(); private Queue<Agent> queue; - public FairAsynchronousScheduler(Agent[] agents) { + @Override + public void init(Agent[] agents) { this.queue = new ConcurrentLinkedQueue<>(Arrays.stream(agents).toList()); } - public void nextCycle() { - List<Future<Agent>> results = queue.parallelStream().map(agent -> executor.submit(() -> {agent.move(); return agent;})).toList(); + @Override + public void doNextCycle() { + List<Future<Agent>> results = queue.parallelStream().map(agent -> executor.submit(() -> {agent.wakeUp(); return agent;})).toList(); Function<Future<Agent>, Agent> futureTreatment = futureAgent -> { try { return futureAgent.get(); diff --git a/src/main/java/sma/scheduler/FairSynchronousScheduler.java b/src/main/java/scheduler/FairSynchronousScheduler.java similarity index 57% rename from src/main/java/sma/scheduler/FairSynchronousScheduler.java rename to src/main/java/scheduler/FairSynchronousScheduler.java index a8fe123d41638cb0bebc617c811da332f2087f11..3c56381efe3b08d063a4c132c91bd194992bb13c 100644 --- a/src/main/java/sma/scheduler/FairSynchronousScheduler.java +++ b/src/main/java/scheduler/FairSynchronousScheduler.java @@ -1,19 +1,16 @@ -package sma.scheduler; +package scheduler; -import sma.agents.RandomWalkingAgent; +import agents.Agent; import java.util.*; -public class FairSynchronousScheduler implements Scheduler { +public class FairSynchronousScheduler extends SynchronousScheduler { - private RandomWalkingAgent[] agents; + private Agent[] agents; private Stack<Integer> executionOrder; - private Random r; - public FairSynchronousScheduler(RandomWalkingAgent[] agents, int seed) { - this.agents = agents; - r = new Random(seed); - executionOrder = new Stack<>(); + public FairSynchronousScheduler(int seed) { + super(seed); } private void generateExecutionOrder() { @@ -25,12 +22,19 @@ public class FairSynchronousScheduler implements Scheduler { private void wakeAgents() { while (!executionOrder.isEmpty()) { - agents[(executionOrder.pop())].move(); + agents[(executionOrder.pop())].wakeUp(); } } - public void nextCycle() { + @Override + public void init(Agent[] agents) { + this.agents = agents; + executionOrder = new Stack<>(); + } + + @Override + public void doNextCycle() { generateExecutionOrder(); wakeAgents(); } diff --git a/src/main/java/scheduler/Scheduler.java b/src/main/java/scheduler/Scheduler.java new file mode 100644 index 0000000000000000000000000000000000000000..bb2437f7d4ed4c41f50fbfb6b235c5e924f18525 --- /dev/null +++ b/src/main/java/scheduler/Scheduler.java @@ -0,0 +1,10 @@ +package scheduler; + +import agents.Agent; + +public interface Scheduler { + + void init(Agent[] agents); + void doNextCycle(); + +} diff --git a/src/main/java/scheduler/SynchronousScheduler.java b/src/main/java/scheduler/SynchronousScheduler.java new file mode 100644 index 0000000000000000000000000000000000000000..e8fb3174f07900f152806e39bfee3474765550d1 --- /dev/null +++ b/src/main/java/scheduler/SynchronousScheduler.java @@ -0,0 +1,12 @@ +package scheduler; + +import java.util.Random; + +public abstract class SynchronousScheduler implements Scheduler { + + protected final Random r; + + public SynchronousScheduler(int seed) { + r = new Random(seed); + } +} diff --git a/src/main/java/sma/SEIRS_SMA.java b/src/main/java/sma/SEIRS_SMA.java new file mode 100644 index 0000000000000000000000000000000000000000..6125e9dd4777ba2aa0b6036d2546ebe3fe5068b4 --- /dev/null +++ b/src/main/java/sma/SEIRS_SMA.java @@ -0,0 +1,109 @@ +package sma; + +import agents.Agent; +import environment.Environment; +import models.Parameters; +import agents.RandomWalkingAgent; +import environment.SEIRSEnvironment; +import scheduler.Scheduler; +import utils.StatsRecorder; +import utils.YamlReader; +import view.DisplaySquaredEnvironment; +import view.FrameBuilder; +import view.StatisticsCanvas; + +import java.io.IOException; +import java.time.Duration; +import java.time.Instant; +import java.util.Date; +import java.util.HashMap; + +@SuppressWarnings("InfiniteLoopStatement") +public class SEIRS_SMA implements SMA{ + + private final Parameters parameters; + private RandomWalkingAgent[] agents; + private SEIRSEnvironment environment; + private Scheduler scheduler; + private StatisticsCanvas statisticsCanvas; + private DisplaySquaredEnvironment display; + + private HashMap<String,Integer> stats; + + public SEIRS_SMA() { + parameters = YamlReader.getParams(); + agents = new RandomWalkingAgent[parameters.getPopulation()]; + } + + private void initGraphics() { + statisticsCanvas = new StatisticsCanvas(500,500); + display = new DisplaySquaredEnvironment(environment,agents); + FrameBuilder frameBuilder = new FrameBuilder(); + + frameBuilder.addComponent(display,FrameBuilder.TOP); + frameBuilder.addComponent(statisticsCanvas,FrameBuilder.RIGHT); + frameBuilder.buildWindow(); + statisticsCanvas.updateValues(environment.getAgentStatus()); + statisticsCanvas.repaint(); + } + + private void updateGraphics(){ + display.repaint(); + statisticsCanvas.updateValues(stats); + statisticsCanvas.repaint(); + } + + private void doNextCycle(){ + scheduler.doNextCycle(); + stats = environment.getAgentStatus(); + try{ + StatsRecorder.writeToCSV(stats,"src/main/resources/output.csv"); + } catch (IOException e) { + e.printStackTrace(); + System.exit(1); + } + if (parameters.isGraphicalMode()) { + updateGraphics(); + } + if (parameters.getTimeBetweenCycles() > 0) { + try { + Thread.sleep(parameters.getTimeBetweenCycles()); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + } + + @Override + public void init(Environment environment, Scheduler scheduler, Agent[] agents) { + this.agents = (RandomWalkingAgent[]) agents; + this.scheduler = scheduler; + scheduler.init(agents); + this.environment = (SEIRSEnvironment)environment; + this.environment.initiateChunks(); + initGraphics(); + } + + + @Override + public void run() { + Instant startTime = Instant.now(); + System.out.println("Starting simulation at : "+ Date.from(startTime)); + if (parameters.getNbOfCycles() <0) { + while (true) { + doNextCycle(); + } + } else { + int cpt = 0; + while (cpt < parameters.getNbOfCycles()) { + doNextCycle(); + cpt++; + } + Instant endTime = Instant.now(); + System.out.println("Simulation done !"); + Duration duration = Duration.between(startTime,endTime); + System.out.println("Elapsed time : " + duration.toHoursPart() + " hours, " + duration.toMinutesPart() + " minutes, " + duration.toSecondsPart() + "seconds."); + System.exit(0); + } + } +} diff --git a/src/main/java/sma/SMA.java b/src/main/java/sma/SMA.java index 210768b8f06954aba68a7be9010cf06acf85b79b..1d40aab645afd0d85a4a50a86a4ae85f9334e880 100644 --- a/src/main/java/sma/SMA.java +++ b/src/main/java/sma/SMA.java @@ -1,137 +1,11 @@ package sma; -import models.Parameters; -import sma.agents.RandomWalkingAgent; -import sma.agents.states.InfectedState; -import sma.environment.SquaredChunksEnvironment; -import sma.scheduler.FairAsynchronousScheduler; -import sma.scheduler.FairSynchronousScheduler; -import sma.scheduler.Scheduler; -import utils.StatsRecorder; -import utils.YamlReader; -import view.DisplaySquaredEnvironment; -import view.FrameBuilder; -import view.StatisticsCanvas; +import agents.Agent; +import environment.Environment; +import scheduler.Scheduler; -import java.awt.*; -import java.io.IOException; -import java.sql.SQLOutput; -import java.time.Duration; -import java.time.Instant; -import java.time.temporal.ChronoUnit; -import java.util.Date; -import java.util.HashMap; -import java.util.Random; - -public class SMA { - - private Parameters parameters; - private Random r; - private RandomWalkingAgent[] agents; - private SquaredChunksEnvironment environment; - private Scheduler scheduler; - private StatisticsCanvas statisticsCanvas; - private DisplaySquaredEnvironment display; - - private HashMap<String,Integer> stats; - - private FrameBuilder frameBuilder; - - public SMA() { - parameters = YamlReader.getParams(); - r = new Random(parameters.getSeed()); - agents = new RandomWalkingAgent[parameters.getPopulation()]; - } - - private void populateEnvironment() { - for (int i = 0; i<parameters.getPopulation();i++) { - Point position = new Point(r.nextInt(parameters.getSize()),r.nextInt(parameters.getSize())); - RandomWalkingAgent agent = new RandomWalkingAgent(position,parameters.getSeed()+i,environment); - agents[i] = agent; - } - } - - private void infectPatientZero() { - for (int i=0 ; i< parameters.getNbOfPatientZero(); i++) { - var agent = agents[(r.nextInt(parameters.getPopulation()))]; - agent.changeState(new InfectedState(agent)); - } - } - - private void initScheduler() { - if (parameters.isSynchronousMode()) { - scheduler = new FairSynchronousScheduler(agents, parameters.getSeed()); - } else { - scheduler = new FairAsynchronousScheduler(agents); - } - } - - public void init() { - environment = new SquaredChunksEnvironment(parameters.getSize(),agents); - populateEnvironment(); - environment.initiateChunks(); - infectPatientZero(); - initScheduler(); - if (parameters.isGraphicalMode()) { - initGraphics(); - } - } - - private void initGraphics() { - statisticsCanvas = new StatisticsCanvas(500,500); - display = new DisplaySquaredEnvironment(environment,agents); - frameBuilder = new FrameBuilder(); - - frameBuilder.addComponent(display,FrameBuilder.TOP); - frameBuilder.addComponent(statisticsCanvas,FrameBuilder.RIGHT); - frameBuilder.buildWindow(); - statisticsCanvas.updateValues(environment.getAgentStatus()); - statisticsCanvas.repaint(); - } - - private void updateGraphics(){ - display.repaint(); - statisticsCanvas.updateValues(stats); - statisticsCanvas.repaint(); - } - - private void doNextCycle() throws IOException, InterruptedException { - scheduler.nextCycle(); - stats = environment.getAgentStatus(); - StatsRecorder.writeToCSV(stats,"src/main/resources/output.csv"); - if (parameters.isGraphicalMode()) { - updateGraphics(); - } - if (parameters.getTimeBetweenCycles() > 0) { - Thread.sleep(parameters.getTimeBetweenCycles()); - } - } - - public void run() throws IOException, InterruptedException { - Instant startTime = Instant.now(); - System.out.println("Starting simulation at : "+ Date.from(startTime)); - if (parameters.getNbOfCycles() <0) { - while (true) { - doNextCycle(); - } - } else { - int cpt = 0; - while (cpt < parameters.getNbOfCycles()) { - doNextCycle(); - cpt++; - } - Instant endTime = Instant.now(); - System.out.println("Simulation done !"); - Duration duration = Duration.between(startTime,endTime); - System.out.println("Elapsed time : " + duration.toHoursPart() + " hours, " + duration.toMinutesPart() + " minutes, " + duration.toSecondsPart() + "seconds."); - System.exit(0); - } - } - - public static void main(String[] args) throws InterruptedException, IOException { - SMA sma = new SMA(); - sma.init(); - sma.run(); - } +public interface SMA{ + void init(Environment environment, Scheduler scheduler, Agent[] agents); + void run(); } diff --git a/src/main/java/sma/agents/Agent.java b/src/main/java/sma/agents/Agent.java deleted file mode 100644 index 8584df1e5dbfb5811f4f9faeb77db345357c24cb..0000000000000000000000000000000000000000 --- a/src/main/java/sma/agents/Agent.java +++ /dev/null @@ -1,17 +0,0 @@ -package sma.agents; - -import sma.agents.states.State; - -import java.awt.*; - -public interface Agent { - - void changeState(State state); - State getState(); - boolean isExposed(); - boolean isInfected(); - boolean isRecovered(); - boolean hasLostImmunity(); - void move(); - Point getPosition(); -} diff --git a/src/main/java/sma/agents/RandomWalkingAgent.java b/src/main/java/sma/agents/RandomWalkingAgent.java deleted file mode 100644 index 0921be307026021d173b3ba38b0f683fb5ac4d5c..0000000000000000000000000000000000000000 --- a/src/main/java/sma/agents/RandomWalkingAgent.java +++ /dev/null @@ -1,96 +0,0 @@ -package sma.agents; - -import sma.agents.states.InfectedState; -import sma.agents.states.State; -import sma.agents.states.SuceptibleState; -import sma.environment.Environment; -import sma.environment.SquaredChunksEnvironment; -import utils.YamlReader; - -import java.awt.Point; -import java.util.Random; - -public class RandomWalkingAgent implements Agent { - - private Point position; - private Random r; - private SquaredChunksEnvironment environment; - private State state; - - public RandomWalkingAgent(Point position, int seed, SquaredChunksEnvironment environment) { - this.position = position; - this.state = new SuceptibleState(this); - this.environment = environment; - this.r = new Random(seed); - } - - public void move() { - state.onMovement(); - int move = r.nextInt(4); - Point newPosition = switch (move) { - case Environment.LEFT -> new Point(position.x-environment.RADIUS,position.y); - case Environment.RIGHT -> new Point(position.x+environment.RADIUS,position.y); - case Environment.UP -> new Point(position.x,position.y-environment.RADIUS); - case Environment.DOWN -> new Point(position.x,position.y+environment.RADIUS); - default -> throw new IllegalStateException("Unexpected value: " + move); - }; - if (newPosition.x <= environment.size-1 && newPosition.x >= 0 && newPosition.y <= environment.size-1 && newPosition.y >=0 ) { - environment.notifyNewPosition(position,newPosition,this); - position = newPosition; - } - } - - @Override - public void changeState(State state) { this.state = state; } - - @Override - public boolean isExposed() { - boolean isExposed = false; - for (Agent neighbor: environment.getNeighbors(position)) { - if (neighbor.getState() instanceof InfectedState) { - int roll = r.nextInt(100)+1; - if (roll <= YamlReader.getParams().getInfectionRate()*100) { - isExposed = true; - } - } - } - return isExposed; - } - - @Override - public boolean isInfected() { - boolean isSick = false; - int roll = r.nextInt(100)+1; - if (roll <= YamlReader.getParams().getIncubationRate()*100) { - isSick = true; - } - return isSick; - } - - @Override - public boolean isRecovered() { - boolean isHealed = false; - int roll = r.nextInt(100)+1; - if (roll <= YamlReader.getParams().getRecoveryRate()*100) { - isHealed = true; - } - return isHealed; - } - - @Override - public boolean hasLostImmunity() { - boolean hasLostImmunity = false; - int roll = r.nextInt(100)+1; - if (roll <= YamlReader.getParams().getLooseImmunityRate()*100) { - hasLostImmunity = true; - } - return hasLostImmunity; - } - - @Override - public State getState() { return this.state; } - - @Override - public Point getPosition() { return position; } - -} diff --git a/src/main/java/sma/agents/states/ExposedState.java b/src/main/java/sma/agents/states/ExposedState.java deleted file mode 100644 index ec0b3eb90cd676ed8db1d9382fe45dfdbcadc767..0000000000000000000000000000000000000000 --- a/src/main/java/sma/agents/states/ExposedState.java +++ /dev/null @@ -1,22 +0,0 @@ -package sma.agents.states; - -import sma.agents.Agent; - -public class ExposedState extends State{ - - public ExposedState(Agent agent) { - super(agent); - } - - @Override - public void onMovement() { - if (agent.isInfected()) { - agent.changeState(new InfectedState(agent)); - } - } - - @Override - public String toString() { - return EXPOSED; - } -} diff --git a/src/main/java/sma/agents/states/InfectedState.java b/src/main/java/sma/agents/states/InfectedState.java deleted file mode 100644 index eef377fb1e58254691bbe2c16fa68b3c1bbd1e51..0000000000000000000000000000000000000000 --- a/src/main/java/sma/agents/states/InfectedState.java +++ /dev/null @@ -1,22 +0,0 @@ -package sma.agents.states; - -import sma.agents.Agent; - -public class InfectedState extends State{ - - public InfectedState(Agent agent) { - super(agent); - } - - @Override - public void onMovement() { - if (agent.isRecovered()) { - agent.changeState(new RecoveredState(agent)); - } - } - - @Override - public String toString() { - return INFECTED; - } -} diff --git a/src/main/java/sma/agents/states/RecoveredState.java b/src/main/java/sma/agents/states/RecoveredState.java deleted file mode 100644 index fdc0ad5ec719962de4e6509b6f5be117e54a665d..0000000000000000000000000000000000000000 --- a/src/main/java/sma/agents/states/RecoveredState.java +++ /dev/null @@ -1,22 +0,0 @@ -package sma.agents.states; - -import sma.agents.Agent; - -public class RecoveredState extends State{ - - public RecoveredState(Agent agent) { - super(agent); - } - - @Override - public void onMovement() { - if (agent.hasLostImmunity()) { - agent.changeState(new SuceptibleState(agent)); - } - } - - @Override - public String toString() { - return RECOVERED; - } -} diff --git a/src/main/java/sma/agents/states/SuceptibleState.java b/src/main/java/sma/agents/states/SuceptibleState.java deleted file mode 100644 index 3e4d3b3e4a5526deb244764b1bc1f15c4f1ee8ba..0000000000000000000000000000000000000000 --- a/src/main/java/sma/agents/states/SuceptibleState.java +++ /dev/null @@ -1,24 +0,0 @@ -package sma.agents.states; - -import sma.agents.Agent; - -import java.awt.*; - -public class SuceptibleState extends State{ - - public SuceptibleState(Agent agent) { - super(agent); - } - - @Override - public void onMovement() { - if (agent.isExposed()) { - agent.changeState(new ExposedState(agent)); - } - } - - @Override - public String toString() { - return SUCEPTIBLE; - } -} diff --git a/src/main/java/sma/environment/Environment.java b/src/main/java/sma/environment/Environment.java deleted file mode 100644 index 0172070eb1bc32b280c57188b25fe54435b3476d..0000000000000000000000000000000000000000 --- a/src/main/java/sma/environment/Environment.java +++ /dev/null @@ -1,24 +0,0 @@ -package sma.environment; - -import sma.agents.Agent; - -import java.awt.Point; -import java.util.HashMap; -import java.util.List; - -public interface Environment { - int LEFT = 0; - int RIGHT = 1; - int UP = 2; - int DOWN = 3; - int CENTER = 4; - int UP_LEFT = 5; - int UP_RIGHT = 6; - int DOWN_LEFT = 7; - int DOWN_RIGHT = 8; - int MAX_CHUNK = 9; - - List<Agent> getNeighbors(Point position); - void notifyNewPosition(Point oldPosition, Point newPosition, Agent agent); - HashMap<String,Integer> getAgentStatus(); -} diff --git a/src/main/java/sma/scheduler/Scheduler.java b/src/main/java/sma/scheduler/Scheduler.java deleted file mode 100644 index b891c69233d83cf6473030f5f7377760862870cd..0000000000000000000000000000000000000000 --- a/src/main/java/sma/scheduler/Scheduler.java +++ /dev/null @@ -1,6 +0,0 @@ -package sma.scheduler; - -public interface Scheduler { - - void nextCycle(); -} diff --git a/src/main/java/utils/Pair.java b/src/main/java/utils/Pair.java index 2d902c76b6df9e1013a3f404d103d4187c1c396c..f204cf8de8fbcbb28aeb8eb0586361a43ca36864 100644 --- a/src/main/java/utils/Pair.java +++ b/src/main/java/utils/Pair.java @@ -1,15 +1,6 @@ package utils; -public class Pair<A,B> { - - private A first; - private B second; - - public Pair(A first, B second) { - super(); - this.first = first; - this.second = second; - } +public record Pair<A, B>(A first, B second) { public int hashCode() { int hashFirst = first != null ? first.hashCode() : 0; @@ -19,22 +10,20 @@ public class Pair<A,B> { } public boolean equals(Object other) { - if (other instanceof Pair) { - Pair otherPair = (Pair) other; + if (other instanceof Pair otherPair) { return - (( this.first == otherPair.first || - ( this.first != null && otherPair.first != null && + ((this.first == otherPair.first || + (this.first != null && otherPair.first != null && this.first.equals(otherPair.first))) && - ( this.second == otherPair.second || - ( this.second != null && otherPair.second != null && - this.second.equals(otherPair.second))) ); + (this.second == otherPair.second || + (this.second != null && otherPair.second != null && + this.second.equals(otherPair.second)))); } return false; } - public String toString() - { + public String toString() { return "(" + first + ", " + second + ")"; } @@ -42,15 +31,7 @@ public class Pair<A,B> { return first; } - public void setFirst(A first) { - this.first = first; - } - public B getSecond() { return second; } - - public void setSecond(B second) { - this.second = second; - } } diff --git a/src/main/java/utils/StatsRecorder.java b/src/main/java/utils/StatsRecorder.java index 616915a8de09b4a82aff1dbec1933fe4e8135b63..be4fe72f1356c08475db739a24d8d65546c1d816 100644 --- a/src/main/java/utils/StatsRecorder.java +++ b/src/main/java/utils/StatsRecorder.java @@ -4,11 +4,13 @@ import java.io.*; import java.security.InvalidParameterException; import java.util.HashMap; import java.util.List; +import java.util.Objects; public class StatsRecorder { private static int nbOfCycles = 0; + @SuppressWarnings("ResultOfMethodCallIgnored") public static void writeToCSV(HashMap<String,Integer> data, String outputFile) throws IOException { if (!outputFile.endsWith(".csv")) { @@ -29,24 +31,24 @@ public class StatsRecorder { List<String> keys = data.keySet().stream().toList(); if (nbOfCycles == 0) { bw.flush(); - String str = ""; + StringBuilder str = new StringBuilder(); for (int i = 0; i < keys.size(); i++) { - str+=keys.get(i); + str.append(keys.get(i)); if (i != keys.size()-1){ - str+=","; + str.append(","); } } - bw.append(str+'\n'); + bw.append(str.toString()).append(String.valueOf('\n')); } - String line = ""; + StringBuilder line = new StringBuilder(); for (String title : keys) { - line += data.get(title); - if (title != keys.get(keys.size()-1)) { - line+=","; + line.append(data.get(title)); + if (!Objects.equals(title, keys.get(keys.size() - 1))) { + line.append(","); } } - bw.append(line+'\n'); + bw.append(line.toString()).append(String.valueOf('\n')); bw.close(); nbOfCycles++; } diff --git a/src/main/java/utils/YamlReader.java b/src/main/java/utils/YamlReader.java index 584434c4c85be68aae5bc8f3396d03ba1e2a44fd..7a55f6dfa739c311814d643e8be00e446d094aca 100644 --- a/src/main/java/utils/YamlReader.java +++ b/src/main/java/utils/YamlReader.java @@ -8,8 +8,7 @@ import java.io.File; public class YamlReader { - private static ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); - private static ObjectMapper om = new ObjectMapper(new YAMLFactory()); + private static final ObjectMapper om = new ObjectMapper(new YAMLFactory()); private static Parameters parameters; public static final String FILE_PATH = "src/main/resources/parameters.yaml"; diff --git a/src/main/java/view/DisplaySquaredEnvironment.java b/src/main/java/view/DisplaySquaredEnvironment.java index 20fc6589a1c1c3ae2f4569bf9018c15eeee08c24..45f0d12a2e7bd15fac73edd5fcd70cfae060b4fe 100644 --- a/src/main/java/view/DisplaySquaredEnvironment.java +++ b/src/main/java/view/DisplaySquaredEnvironment.java @@ -1,8 +1,8 @@ package view; -import sma.agents.Agent; -import sma.agents.states.*; -import sma.environment.SquaredChunksEnvironment; +import agents.SEIRSAgent; +import agents.states.SEIRSState; +import environment.SEIRSEnvironment; import javax.swing.*; import java.awt.*; @@ -10,49 +10,40 @@ import java.awt.*; public class DisplaySquaredEnvironment extends JPanel { - private int windowWidth; - private int windowHeight; + private final SEIRSAgent[] SEIRSAgents; - private Agent[] agents; - - private SquaredChunksEnvironment environment; - - public DisplaySquaredEnvironment(SquaredChunksEnvironment environment, Agent[] agents) { - this.environment = environment; + public DisplaySquaredEnvironment(SEIRSEnvironment environment, SEIRSAgent[] SEIRSAgents) { this.setDoubleBuffered(true); - this.windowWidth = environment.size; - this.windowHeight = environment.size; - this.agents = agents; - setSize(windowWidth,windowHeight); + this.SEIRSAgents = SEIRSAgents; + setSize(environment.size,environment.size); setVisible(true); } - private void drawCenteredCircle(Graphics g, int x, int y, int r) { - x = x-(r/2); - y = y-(r/2); - g.fillOval(x,y,r,r); + private void drawCenteredCircle(Graphics g, int x, int y) { + x = x-(SEIRSEnvironment.RADIUS /2); + y = y-(SEIRSEnvironment.RADIUS /2); + g.fillOval(x,y, SEIRSEnvironment.RADIUS, SEIRSEnvironment.RADIUS); } @Override public void paint(Graphics g) { super.paint(g); - for (int i = 0; i < agents.length; i++) { - var agent = agents[i]; - if (agent != null) { - colorAgent(g,agent); - drawCenteredCircle(g,agent.getPosition().x,agent.getPosition().y,environment.RADIUS); + for (SEIRSAgent SEIRSAgent : SEIRSAgents) { + if (SEIRSAgent != null) { + colorAgent(g, SEIRSAgent); + drawCenteredCircle(g, SEIRSAgent.getPosition().x, SEIRSAgent.getPosition().y); } } } - private void colorAgent(Graphics g, Agent a) { + private void colorAgent(Graphics g, SEIRSAgent a) { var state = a.getState(); switch (state.toString()) { - case State.SUCEPTIBLE-> g.setColor(Color.GRAY); - case State.EXPOSED -> g.setColor(Color.YELLOW); - case State.INFECTED -> g.setColor(Color.RED); - case State.RECOVERED -> g.setColor(Color.GREEN); + case SEIRSState.SUCEPTIBLE-> g.setColor(Color.GRAY); + case SEIRSState.EXPOSED -> g.setColor(Color.YELLOW); + case SEIRSState.INFECTED -> g.setColor(Color.RED); + case SEIRSState.RECOVERED -> g.setColor(Color.GREEN); } } } diff --git a/src/main/java/view/FrameBuilder.java b/src/main/java/view/FrameBuilder.java index 0f25ddbd16fed51ae87c039f2aaeee978dcd6540..e2ee26674535c1df2308203facc3306ad36e180a 100644 --- a/src/main/java/view/FrameBuilder.java +++ b/src/main/java/view/FrameBuilder.java @@ -47,7 +47,7 @@ public class FrameBuilder { components.add(pair); } - public JFrame buildWindow() { + public void buildWindow() { JFrame frame = new JFrame(); frame.setLayout(new java.awt.GridLayout()); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); @@ -64,6 +64,5 @@ public class FrameBuilder { frame.setSize(windowWidth,windowHeight); frame.setResizable(false); frame.setVisible(true); - return frame; } } diff --git a/src/main/java/view/StatisticsCanvas.java b/src/main/java/view/StatisticsCanvas.java index aeef20de31ccb079831eced21b00a4fd0e15fd3c..78a8ee0c8b7fb03668e9bb8d95a2705d46d90565 100644 --- a/src/main/java/view/StatisticsCanvas.java +++ b/src/main/java/view/StatisticsCanvas.java @@ -1,6 +1,6 @@ package view; -import sma.agents.states.State; +import agents.states.SEIRSState; import utils.YamlReader; import javax.swing.*; @@ -9,10 +9,10 @@ import java.util.HashMap; public class StatisticsCanvas extends JPanel { - private int canvasWidth; - private int canvasHeight; + private final int canvasWidth; + private final int canvasHeight; private HashMap<String,Integer> values; - private int total; + private final int total; public StatisticsCanvas(int width,int height) { this.setDoubleBuffered(false); @@ -26,10 +26,10 @@ public class StatisticsCanvas extends JPanel { private Color stringToColor(String str) { return switch (str){ - case State.EXPOSED -> Color.YELLOW; - case State.SUCEPTIBLE -> Color.GRAY; - case State.INFECTED -> Color.RED; - case State.RECOVERED -> Color.GREEN; + case SEIRSState.EXPOSED -> Color.YELLOW; + case SEIRSState.SUCEPTIBLE -> Color.GRAY; + case SEIRSState.INFECTED -> Color.RED; + case SEIRSState.RECOVERED -> Color.GREEN; default -> throw new IllegalStateException("Illegal state : "+str); }; } diff --git a/src/main/resources/META-INF/MANIFEST.MF b/src/main/resources/META-INF/MANIFEST.MF index 64987c2350fb64fa75cdcbb3384f84d9dd85ab95..7c66a6f1069b1b4909a549b63d57a4fcf9882b9c 100644 --- a/src/main/resources/META-INF/MANIFEST.MF +++ b/src/main/resources/META-INF/MANIFEST.MF @@ -2,4 +2,4 @@ Manifest-Version: 1.0 Class-Path: jackson-core-2.13.2.jar snakeyaml-1.30.jar jackson-dataforma t-yaml-2.13.2.jar jackson-annotations-2.13.2.jar jackson-databind-2.13. 2.2.jar -Main-Class: sma.SMA +Main-Class: RunExperiment diff --git a/src/main/resources/output.png b/src/main/resources/output.png new file mode 100644 index 0000000000000000000000000000000000000000..26f0e188e8b42f7e5058e9e7730231d057497782 Binary files /dev/null and b/src/main/resources/output.png differ diff --git a/src/main/resources/parameters.yaml b/src/main/resources/parameters.yaml index d1bb7409f96ecc1192fee3aaa793e69404728d04..3ddf6aed6d973b2ca91423d04dcbd18c69932fb9 100644 --- a/src/main/resources/parameters.yaml +++ b/src/main/resources/parameters.yaml @@ -1,12 +1,12 @@ -seed : 120 -population : 1000 #number of agents -size : 500 #size of the world in pixels -nbOfPatientZero : 1 -infectionRate : 0.3 #chance that an infected agent will spread to a susceptible agent -incubationRate : 0.1 #chance that an exposed agent become infected each cycle -recoveryRate : 0.3 #chance that an infected agent become recovered each cycle -looseImmunityRate : 0.05 #chance that a recovered agent become suceptible again -nbOfCycles : 10000 #if the number is negative, will run endlessly -timeBetweenCycles : 0 #in milliseconds, 0 or lower will run cycles as fast as possible -synchronousMode : false #if true, will wake synchronously the agents in a pseudo-random order based on the given seed otherwise will wake up the agents asynchronously -graphicalMode : false #if false, will run without graphical interface \ No newline at end of file +graphicalMode: true +incubationRate: 0.3 +infectionRate: 0.035 +looseImmunityRate: 0.09 +recoveryRate: 0.6 +nbOfCycles: 2000 +nbOfPatientZero: 10 +population: 5000 +seed: 120 +size: 500 +synchronousMode: false +timeBetweenCycles: 0 diff --git a/src/main/resources/pythonOutput/.getkeep b/src/main/resources/pythonOutput/.getkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/target/classes/META-INF/MANIFEST.MF b/target/classes/META-INF/MANIFEST.MF index 64987c2350fb64fa75cdcbb3384f84d9dd85ab95..7c66a6f1069b1b4909a549b63d57a4fcf9882b9c 100644 --- a/target/classes/META-INF/MANIFEST.MF +++ b/target/classes/META-INF/MANIFEST.MF @@ -2,4 +2,4 @@ Manifest-Version: 1.0 Class-Path: jackson-core-2.13.2.jar snakeyaml-1.30.jar jackson-dataforma t-yaml-2.13.2.jar jackson-annotations-2.13.2.jar jackson-databind-2.13. 2.2.jar -Main-Class: sma.SMA +Main-Class: RunExperiment diff --git a/target/classes/output.csv b/target/classes/output.csv index 490f0ab2859274974646b297e46a09ffbe237d83..1c377d16c4dabd632950f7f9cef693f34698f071 100644 --- a/target/classes/output.csv +++ b/target/classes/output.csv @@ -1,10001 +1,209 @@ SUCEPTIBLE,EXPOSED,RECOVERED,INFECTED -996,3,1,0 -997,3,0,0 -997,3,0,0 -995,4,0,1 -994,5,0,1 -994,5,1,0 -994,4,1,1 -991,6,1,2 -989,8,2,1 -986,10,3,1 -983,12,3,2 -981,14,3,2 -978,16,3,3 -973,20,4,3 -973,21,3,3 -967,25,5,3 -963,25,6,6 -961,23,8,8 -956,23,12,9 -954,22,15,9 -949,25,16,10 -949,24,14,13 -946,28,16,10 -940,36,17,7 -934,39,18,9 -929,40,23,8 -927,40,24,9 -919,43,22,16 -913,44,25,18 -907,46,30,17 -903,50,34,13 -901,45,34,20 -888,53,38,21 -888,52,41,19 -876,62,48,14 -872,64,50,14 -865,60,52,23 -859,65,57,19 -853,67,55,25 -846,71,59,24 -847,70,60,23 -837,73,68,22 -835,72,70,23 -838,69,73,20 -836,70,73,21 -833,66,77,24 -828,64,83,25 -823,69,88,20 -823,64,92,21 -822,58,95,25 -819,60,97,24 -815,64,98,23 -816,63,104,17 -816,70,99,15 -813,71,103,13 -813,71,96,20 -814,67,100,19 -812,65,107,16 -807,70,109,14 -811,62,112,15 -805,62,116,17 -798,71,121,10 -798,75,117,10 -797,66,114,23 -788,69,114,29 -781,75,115,29 -769,86,117,28 -763,87,118,32 -758,85,123,34 -755,85,120,40 -746,89,131,34 -741,95,133,31 -740,92,143,25 -735,89,148,28 -733,90,153,24 -733,92,149,26 -729,94,147,30 -726,97,149,28 -717,96,158,29 -708,101,163,28 -713,99,161,27 -707,101,162,30 -701,96,166,37 -692,109,164,35 -688,111,166,35 -680,116,165,39 -675,123,166,36 -670,132,170,28 -669,126,173,32 -665,123,172,40 -661,128,176,35 -658,126,180,36 -655,128,181,36 -650,127,185,38 -645,131,185,39 -645,134,183,38 -643,134,181,42 -639,140,184,37 -630,145,185,40 -631,140,187,42 -628,139,200,33 -631,141,199,29 -628,136,197,39 -628,130,195,47 -621,134,203,42 -621,138,201,40 -610,136,214,40 -606,140,215,39 -596,143,223,38 -594,140,226,40 -581,148,223,48 -578,153,228,41 -578,155,224,43 -573,155,226,46 -574,159,222,45 -572,152,224,52 -562,152,232,54 -558,153,243,46 -554,153,248,45 -558,148,243,51 -560,147,245,48 -554,151,240,55 -544,153,243,60 -524,169,249,58 -522,164,254,60 -515,161,256,68 -511,163,264,62 -501,178,269,52 -492,175,268,65 -494,169,272,65 -486,164,276,74 -468,174,287,71 -457,185,299,59 -458,181,298,63 -451,177,305,67 -450,174,315,61 -448,170,321,61 -457,169,317,57 -458,162,316,64 -448,170,327,55 -445,171,332,52 -455,165,323,57 -453,175,315,57 -446,181,314,59 -441,186,324,49 -441,179,319,61 -422,192,333,53 -417,193,338,52 -415,201,334,50 -419,193,333,55 -415,199,332,54 -404,203,338,55 -410,197,337,56 -401,204,329,66 -401,204,335,60 -402,203,333,62 -383,218,344,55 -382,218,341,59 -378,215,339,68 -379,209,336,76 -363,218,335,84 -361,215,344,80 -348,221,350,81 -338,218,356,88 -353,209,359,79 -345,212,360,83 -354,200,367,79 -354,196,368,82 -353,207,373,67 -344,214,382,60 -348,211,370,71 -335,221,369,75 -326,225,377,72 -318,229,376,77 -316,231,363,90 -308,230,377,85 -306,228,378,88 -296,223,391,90 -289,233,399,79 -299,233,399,69 -295,239,396,70 -289,253,393,65 -294,244,391,71 -291,243,395,71 -285,242,393,80 -289,239,393,79 -290,240,391,79 -290,234,393,83 -290,231,400,79 -284,234,401,81 -286,225,407,82 -284,222,413,81 -282,225,419,74 -285,220,420,75 -284,226,422,68 -277,227,427,69 -282,225,425,68 -281,223,432,64 -286,209,434,71 -299,208,424,69 -292,210,437,61 -287,219,436,58 -293,221,435,51 -303,210,437,50 -300,212,429,59 -316,208,414,62 -319,202,413,66 -325,192,413,70 -311,213,411,65 -310,214,417,59 -313,209,415,63 -319,200,416,65 -313,197,423,67 -328,192,421,59 -332,192,416,60 -333,195,407,65 -331,197,408,64 -328,197,417,58 -327,200,415,58 -329,198,406,67 -325,193,414,68 -318,202,417,63 -327,194,416,63 -332,186,419,63 -335,189,417,59 -333,202,409,56 -344,194,399,63 -335,208,391,66 -346,207,380,67 -345,207,367,81 -339,207,375,79 -339,202,379,80 -336,194,386,84 -333,201,389,77 -325,206,400,69 -315,202,400,83 -316,201,406,77 -314,200,411,75 -316,199,407,78 -314,200,413,73 -318,200,410,72 -308,204,410,78 -313,190,415,82 -313,195,414,78 -303,212,415,70 -298,211,423,68 -298,208,426,68 -302,205,423,70 -300,208,431,61 -302,203,428,67 -297,198,437,68 -308,193,430,69 -319,186,430,65 -316,188,415,81 -304,196,421,79 -306,202,430,62 -316,204,419,61 -314,204,414,68 -314,206,414,66 -310,211,413,66 -317,216,410,57 -328,215,402,55 -336,213,398,53 -343,200,391,66 -346,198,383,73 -348,206,380,66 -351,215,371,63 -344,201,381,74 -330,209,380,81 -324,215,380,81 -312,224,383,81 -304,220,389,87 -301,220,394,85 -302,221,386,91 -305,221,385,89 -302,224,394,80 -304,218,393,85 -305,222,397,76 -307,213,399,81 -302,213,405,80 -298,210,407,85 -288,217,410,85 -281,223,403,93 -275,219,412,94 -280,210,421,89 -279,211,423,87 -272,218,428,82 -263,221,429,87 -267,218,433,82 -260,224,433,83 -267,226,429,78 -278,212,423,87 -271,216,431,82 -264,226,441,69 -269,224,441,66 -271,219,448,62 -273,203,453,71 -279,208,447,66 -268,211,455,66 -271,208,456,65 -272,208,450,70 -276,207,450,67 -280,207,442,71 -290,209,445,56 -307,206,426,61 -311,208,418,63 -304,212,417,67 -310,205,410,75 -320,212,398,70 -312,218,401,69 -311,213,400,76 -311,199,398,92 -298,197,416,89 -298,207,415,80 -293,207,422,78 -300,198,426,76 -305,206,414,75 -307,199,412,82 -300,194,422,84 -298,194,427,81 -293,203,427,77 -280,210,429,81 -267,213,435,85 -272,209,436,83 -275,206,434,85 -275,207,437,81 -276,202,445,77 -274,197,453,76 -268,210,457,65 -273,215,450,62 -288,213,432,67 -288,201,438,73 -283,201,437,79 -292,195,434,79 -294,202,428,76 -297,192,430,81 -289,201,440,70 -290,203,444,63 -288,207,444,61 -289,203,443,65 -286,206,441,67 -283,202,453,62 -296,199,436,69 -294,201,438,67 -295,196,433,76 -288,200,434,78 -288,202,436,74 -285,199,437,79 -279,203,454,64 -285,201,439,75 -286,206,445,63 -292,205,435,68 -284,217,438,61 -290,219,443,48 -292,219,435,54 -298,224,420,58 -298,225,411,66 -303,222,408,67 -296,227,413,64 -290,229,415,66 -286,225,411,78 -272,234,413,81 -265,235,423,77 -270,232,430,68 -265,237,432,66 -277,226,425,72 -289,224,422,65 -287,215,426,72 -288,204,427,81 -297,201,429,73 -307,204,426,63 -319,204,415,62 -326,198,414,62 -334,198,406,62 -336,196,401,67 -333,203,402,62 -337,197,407,59 -340,194,403,63 -345,190,394,71 -345,190,398,67 -350,195,397,58 -358,195,387,60 -353,199,386,62 -344,200,388,68 -330,213,388,69 -333,215,391,61 -322,222,393,63 -329,221,383,67 -326,214,394,66 -323,220,395,62 -314,219,403,64 -312,213,411,64 -302,219,421,58 -318,214,406,62 -324,206,410,60 -328,204,406,62 -330,201,407,62 -328,202,402,68 -319,208,405,68 -321,203,408,68 -314,208,400,78 -321,209,403,67 -318,214,402,66 -315,215,399,71 -302,223,411,64 -299,221,414,66 -294,221,415,70 -298,220,410,72 -294,227,416,63 -289,224,417,70 -282,232,413,73 -291,227,415,67 -293,225,406,76 -288,231,403,78 -294,226,404,76 -290,220,415,75 -284,219,416,81 -272,234,421,73 -273,216,419,92 -276,215,417,92 -276,215,412,97 -275,213,414,98 -269,217,422,92 -267,213,442,78 -270,205,446,79 -267,206,439,88 -276,208,436,80 -270,213,436,81 -268,211,445,76 -261,228,439,72 -263,231,435,71 -256,236,434,74 -250,233,440,77 -254,228,439,79 -248,229,440,83 -257,218,438,87 -263,221,441,75 -253,223,440,84 -246,229,452,73 -255,231,440,74 -261,225,440,74 -265,228,432,75 -264,222,435,79 -254,225,445,76 -255,225,449,71 -264,227,448,61 -259,223,443,75 -259,210,445,86 -251,206,444,99 -256,206,449,89 -266,207,448,79 -267,197,451,85 -285,195,445,75 -289,194,447,70 -288,198,440,74 -273,203,445,79 -275,200,460,65 -282,190,462,66 -285,195,457,63 -286,202,459,53 -286,198,458,58 -294,190,454,62 -303,188,451,58 -306,184,449,61 -301,196,443,60 -288,201,430,81 -292,203,425,80 -284,214,425,77 -286,216,430,68 -293,211,427,69 -295,209,425,71 -301,215,424,60 -304,212,431,53 -303,197,435,65 -307,198,423,72 -292,211,435,62 -298,210,434,58 -303,197,428,72 -308,197,429,66 -311,198,431,60 -324,201,424,51 -342,189,408,61 -338,189,408,65 -341,188,409,62 -342,193,400,65 -338,204,396,62 -343,196,393,68 -339,197,394,70 -333,206,396,65 -327,196,405,72 -332,195,409,64 -337,201,401,61 -337,202,402,59 -350,199,394,57 -351,197,391,61 -340,208,391,61 -329,207,407,57 -342,197,401,60 -340,196,397,67 -331,203,398,68 -330,199,398,73 -328,192,406,74 -323,196,409,72 -320,207,403,70 -336,203,398,63 -333,206,404,57 -341,199,397,63 -338,205,398,59 -341,193,393,73 -331,207,398,64 -346,214,381,59 -340,211,383,66 -336,226,378,60 -336,232,375,57 -341,220,375,64 -343,211,373,73 -338,209,383,70 -342,211,378,69 -339,213,385,63 -342,212,376,70 -334,209,377,80 -330,211,384,75 -316,216,395,73 -319,228,392,61 -333,223,383,61 -325,219,383,73 -322,226,381,71 -326,213,385,76 -328,210,392,70 -331,209,395,65 -329,212,394,65 -330,204,394,72 -321,228,379,72 -324,234,379,63 -321,239,374,66 -326,230,372,72 -321,234,376,69 -319,225,381,75 -316,227,370,87 -304,239,369,88 -302,246,372,80 -303,239,379,79 -293,243,381,83 -282,240,388,90 -282,232,392,94 -274,237,409,80 -278,233,411,78 -274,229,422,75 -271,233,422,74 -272,223,418,87 -282,219,414,85 -292,221,404,83 -283,225,407,85 -276,220,413,91 -270,218,427,85 -262,222,439,77 -262,222,433,83 -265,223,440,72 -269,226,446,59 -268,223,450,59 -263,225,451,61 -273,226,446,55 -277,225,437,61 -259,230,442,69 -253,234,448,65 -255,242,445,58 -256,232,439,73 -267,226,425,82 -263,234,429,74 -272,228,428,72 -269,233,426,72 -270,222,441,67 -261,229,438,72 -277,224,416,83 -264,225,431,80 -269,226,437,68 -278,213,430,79 -273,216,436,75 -264,215,438,83 -269,204,440,87 -275,201,445,79 -279,198,450,73 -293,191,448,68 -292,187,450,71 -301,188,441,70 -305,188,435,72 -293,196,441,70 -290,206,435,69 -292,204,432,72 -305,194,428,73 -295,196,432,77 -299,198,434,69 -303,189,438,70 -305,186,440,69 -313,181,438,68 -315,179,443,63 -318,181,444,57 -324,178,449,49 -335,177,425,63 -345,175,418,62 -337,177,423,63 -333,177,425,65 -328,184,427,61 -331,186,431,52 -337,180,426,57 -337,186,422,55 -342,175,413,70 -345,173,417,65 -351,174,416,59 -352,170,418,60 -355,178,419,48 -366,170,418,46 -364,170,409,57 -357,173,409,61 -364,170,406,60 -373,162,413,52 -377,159,407,57 -375,164,402,59 -380,167,404,49 -394,167,392,47 -386,173,387,54 -390,174,382,54 -398,168,374,60 -390,176,373,61 -396,164,375,65 -396,162,379,63 -387,169,387,57 -388,169,384,59 -380,182,380,58 -390,176,390,44 -397,170,375,58 -387,182,371,60 -387,184,368,61 -389,185,368,58 -386,190,364,60 -383,193,369,55 -391,182,370,57 -379,186,374,61 -378,183,376,63 -378,178,375,69 -365,191,381,63 -362,190,388,60 -370,193,382,55 -373,192,384,51 -374,185,387,54 -377,196,376,51 -375,192,376,57 -373,199,366,62 -364,198,372,66 -361,201,366,72 -367,189,375,69 -367,194,365,74 -363,195,374,68 -357,191,376,76 -349,198,377,76 -337,207,380,76 -340,210,377,73 -340,210,384,66 -348,214,373,65 -339,218,378,65 -336,216,381,67 -329,212,394,65 -319,218,398,65 -321,219,394,66 -323,228,387,62 -325,227,386,62 -322,227,388,63 -315,233,386,66 -318,232,381,69 -317,230,385,68 -318,229,386,67 -314,225,387,74 -320,230,384,66 -324,222,389,65 -329,213,385,73 -314,225,394,67 -299,223,401,77 -290,229,417,64 -292,222,420,66 -277,222,426,75 -276,215,424,85 -267,221,430,82 -270,224,432,74 -283,217,431,69 -285,221,430,64 -292,217,424,67 -290,218,419,73 -285,210,433,72 -279,217,438,66 -281,204,433,82 -280,204,434,82 -283,202,440,75 -278,208,437,77 -275,196,445,84 -281,196,442,81 -270,203,449,78 -272,206,448,74 -270,201,458,71 -289,191,448,72 -299,187,440,74 -293,190,437,80 -283,196,448,73 -286,200,445,69 -289,200,441,70 -293,195,439,73 -295,191,443,71 -292,189,439,80 -295,191,437,77 -303,191,436,70 -306,189,430,75 -299,192,436,73 -291,198,446,65 -294,195,443,68 -304,192,437,67 -301,184,445,70 -307,183,444,66 -304,188,444,64 -313,187,438,62 -316,184,440,60 -325,190,428,57 -330,188,428,54 -330,193,415,62 -318,198,419,65 -320,193,410,77 -322,198,413,67 -318,201,418,63 -326,196,418,60 -321,195,415,69 -324,201,411,64 -338,196,399,67 -324,200,411,65 -327,196,410,67 -323,208,408,61 -318,207,402,73 -303,204,415,78 -300,203,423,74 -294,217,424,65 -287,216,435,62 -288,213,436,63 -294,210,423,73 -300,204,422,74 -306,201,421,72 -307,202,416,75 -303,204,415,78 -302,211,413,74 -289,224,421,66 -291,216,422,71 -286,210,424,80 -275,218,423,84 -284,213,419,84 -283,218,423,76 -277,219,429,75 -282,219,425,74 -286,220,420,74 -282,227,422,69 -282,228,423,67 -280,232,426,62 -279,236,435,50 -291,230,423,56 -291,220,421,68 -294,223,415,68 -291,218,414,77 -291,226,414,69 -293,217,415,75 -289,217,415,79 -284,218,409,89 -292,202,416,90 -300,205,412,83 -295,214,417,74 -311,200,412,77 -309,202,418,71 -313,196,423,68 -309,196,425,70 -312,197,418,73 -315,193,432,60 -325,186,426,63 -321,186,427,66 -316,187,434,63 -315,186,423,76 -323,189,406,82 -331,192,405,72 -332,197,397,74 -337,204,406,53 -340,200,393,67 -336,211,399,54 -333,206,398,63 -322,217,402,59 -339,205,392,64 -332,205,403,60 -325,204,399,72 -333,197,405,65 -343,190,400,67 -348,191,404,57 -344,192,397,67 -347,182,390,81 -340,187,400,73 -332,195,401,72 -318,198,404,80 -309,205,415,71 -307,213,409,71 -312,214,408,66 -314,214,412,60 -314,210,402,74 -315,210,397,78 -312,215,398,75 -315,209,401,75 -304,212,398,86 -304,212,396,88 -299,213,395,93 -302,210,398,90 -298,208,406,88 -290,209,419,82 -299,204,423,74 -299,200,426,75 -311,199,418,72 -316,201,421,62 -318,203,415,64 -324,206,403,67 -321,208,398,73 -316,203,401,80 -323,203,403,71 -330,203,398,69 -332,212,401,55 -339,206,403,52 -337,210,401,52 -331,213,401,55 -339,194,396,71 -341,190,389,80 -328,207,395,70 -325,206,399,70 -329,210,394,67 -333,194,393,80 -326,201,406,67 -341,190,398,71 -337,190,402,71 -328,196,406,70 -327,193,410,70 -330,192,416,62 -335,198,405,62 -331,205,409,55 -333,205,407,55 -347,194,398,61 -353,193,402,52 -351,193,396,60 -350,199,386,65 -346,203,391,60 -346,205,390,59 -348,209,382,61 -355,210,374,61 -337,222,385,56 -340,216,384,60 -333,219,384,64 -318,222,383,77 -304,235,388,73 -294,240,394,72 -285,245,398,72 -284,230,398,88 -276,236,409,79 -284,236,410,70 -277,233,416,74 -276,224,424,76 -264,231,428,77 -267,234,427,72 -267,223,431,79 -262,227,444,67 -273,215,440,72 -270,218,448,64 -272,217,449,62 -274,221,447,58 -282,214,440,64 -281,203,438,78 -268,213,439,80 -271,202,448,79 -269,200,459,72 -263,203,464,70 -271,189,458,82 -273,189,467,71 -283,188,462,67 -296,181,453,70 -296,187,456,61 -308,195,443,54 -312,199,432,57 -312,199,435,54 -316,191,432,61 -330,185,423,62 -332,184,424,60 -336,184,420,60 -342,175,420,63 -328,187,425,60 -322,200,420,58 -320,203,417,60 -316,203,421,60 -321,202,412,65 -322,204,423,51 -313,213,415,59 -316,215,414,55 -327,207,408,58 -348,206,394,52 -345,210,393,52 -353,205,390,52 -362,193,378,67 -358,202,376,64 -359,200,382,59 -366,195,377,62 -369,194,373,64 -355,199,378,68 -350,213,376,61 -348,215,374,63 -337,220,373,70 -334,222,370,74 -333,222,372,73 -331,217,374,78 -328,223,379,70 -334,212,375,79 -327,218,373,82 -324,218,382,76 -322,213,387,78 -322,205,396,77 -318,217,395,70 -314,224,399,63 -306,223,402,69 -301,223,402,74 -300,224,409,67 -301,220,400,79 -302,216,412,70 -300,215,416,69 -300,213,408,79 -299,206,413,82 -296,198,423,83 -290,203,425,82 -295,211,426,68 -287,211,427,75 -301,198,420,81 -293,205,424,78 -309,199,415,77 -301,211,412,76 -294,221,422,63 -293,218,417,72 -288,206,424,82 -285,216,433,66 -289,205,431,75 -276,208,447,69 -274,208,444,74 -284,197,448,71 -273,202,449,76 -272,207,444,77 -264,217,453,66 -272,212,448,68 -275,201,450,74 -293,196,445,66 -282,211,441,66 -282,210,439,69 -292,204,440,64 -299,200,436,65 -300,208,428,64 -300,211,426,63 -301,208,425,66 -306,206,417,71 -310,210,414,66 -305,216,412,67 -306,209,418,67 -296,213,416,75 -292,210,418,80 -307,199,419,75 -314,197,417,72 -316,196,415,73 -313,195,418,74 -308,205,417,70 -301,210,416,73 -295,217,422,66 -304,213,417,66 -306,216,415,63 -307,213,413,67 -308,210,411,71 -314,207,413,66 -323,207,406,64 -314,210,414,62 -318,216,406,60 -315,220,403,62 -319,217,407,57 -322,208,405,65 -322,206,397,75 -327,212,407,54 -327,214,410,49 -325,207,412,56 -332,193,411,64 -321,200,414,65 -321,196,416,67 -324,202,415,59 -337,198,401,64 -339,197,397,67 -345,192,398,65 -345,193,387,75 -343,203,389,65 -343,194,400,63 -344,193,398,65 -341,194,409,56 -332,195,411,62 -343,199,396,62 -340,205,393,62 -322,217,392,69 -306,221,397,76 -299,217,398,86 -292,221,403,84 -292,218,392,98 -308,211,391,90 -290,225,404,81 -277,225,416,82 -273,221,422,84 -280,215,422,83 -266,226,425,83 -270,223,427,80 -274,224,428,74 -271,212,434,83 -264,220,434,82 -278,207,433,82 -280,218,426,76 -288,213,422,77 -290,214,418,78 -284,216,416,84 -280,222,420,78 -295,212,409,84 -294,210,413,83 -305,207,409,79 -301,214,410,75 -287,224,407,82 -290,224,406,80 -294,219,404,83 -283,225,410,82 -286,217,414,83 -289,223,412,76 -288,233,405,74 -303,221,404,72 -307,222,394,77 -297,222,399,82 -283,232,402,83 -283,229,405,83 -283,224,407,86 -281,233,417,69 -283,233,418,66 -284,236,417,63 -291,223,424,62 -296,218,426,60 -296,215,425,64 -300,216,421,63 -302,213,420,65 -304,217,418,61 -312,209,408,71 -309,210,403,78 -302,208,403,87 -306,202,407,85 -301,208,421,70 -290,212,431,67 -297,203,422,78 -305,200,407,88 -297,205,423,75 -291,196,431,82 -302,192,433,73 -302,192,442,64 -300,190,444,66 -307,189,435,69 -295,195,445,65 -312,190,436,62 -311,192,438,59 -331,191,421,57 -330,195,425,50 -331,192,421,56 -332,196,414,58 -337,197,413,53 -343,192,410,55 -332,201,411,56 -340,195,408,57 -330,203,412,55 -326,204,409,61 -316,212,409,63 -318,213,409,60 -320,206,406,68 -317,217,396,70 -313,220,396,71 -299,225,401,75 -304,230,395,71 -299,226,398,77 -306,229,395,70 -302,226,404,68 -314,214,402,70 -324,208,400,68 -321,204,403,72 -316,203,412,69 -315,196,409,80 -309,199,412,80 -304,206,418,72 -314,208,407,71 -305,202,417,76 -301,208,422,69 -297,211,419,73 -295,214,420,71 -287,214,425,74 -299,209,422,70 -297,210,423,70 -298,211,434,57 -303,203,430,64 -305,207,418,70 -298,208,415,79 -305,200,411,84 -297,204,418,81 -292,203,418,87 -283,214,424,79 -289,220,423,68 -303,215,418,64 -313,219,404,64 -320,215,398,67 -306,220,410,64 -304,215,411,70 -303,220,398,79 -307,222,395,76 -306,220,399,75 -298,227,402,73 -297,224,400,79 -288,232,396,84 -281,228,399,92 -270,238,398,94 -260,252,408,80 -259,247,411,83 -254,237,410,99 -241,236,424,99 -235,237,442,86 -247,238,442,73 -249,237,442,72 -252,223,441,84 -259,216,446,79 -273,205,440,82 -266,210,444,80 -275,207,450,68 -269,207,458,66 -275,195,454,76 -277,200,452,71 -284,203,448,65 -290,204,436,70 -284,209,441,66 -279,210,448,63 -290,206,442,62 -298,200,438,64 -295,201,433,71 -295,197,433,75 -299,192,439,70 -313,195,435,57 -311,196,423,70 -309,199,420,72 -309,198,436,57 -320,199,430,51 -332,198,414,56 -328,204,411,57 -328,205,409,58 -339,208,396,57 -334,213,403,50 -332,207,402,59 -323,211,406,60 -317,214,405,64 -310,208,419,63 -311,207,416,66 -309,210,417,64 -329,197,402,72 -324,198,407,71 -312,208,411,69 -312,214,411,63 -320,216,397,67 -322,212,398,68 -317,220,388,75 -321,225,393,61 -329,215,393,63 -326,221,390,63 -317,226,394,63 -313,232,386,69 -308,238,392,62 -310,233,392,65 -313,224,391,72 -317,223,388,72 -316,225,384,75 -324,225,374,77 -314,233,375,78 -314,233,385,68 -305,241,385,69 -308,233,388,71 -301,235,392,72 -302,233,404,61 -318,228,390,64 -319,224,399,58 -315,234,398,53 -322,233,387,58 -323,230,382,65 -327,232,375,66 -325,232,376,67 -329,237,371,63 -325,234,376,65 -321,227,375,77 -319,229,381,71 -300,234,393,73 -302,235,406,57 -305,230,404,61 -306,234,395,65 -307,226,397,70 -306,228,394,72 -304,230,401,65 -307,227,400,66 -310,228,403,59 -318,223,405,54 -318,220,402,60 -311,220,406,63 -309,227,407,57 -325,217,399,59 -331,213,391,65 -334,213,392,61 -329,211,385,75 -306,223,390,81 -302,223,398,77 -287,230,411,72 -285,230,417,68 -286,234,416,64 -302,227,398,73 -286,237,399,78 -288,241,388,83 -284,238,386,92 -283,243,385,89 -283,233,384,100 -281,235,400,84 -275,237,414,74 -288,225,405,82 -283,228,411,78 -286,231,414,69 -289,233,413,65 -290,228,410,72 -286,224,418,72 -285,228,418,69 -274,219,431,76 -268,215,439,78 -273,205,438,84 -275,203,446,76 -279,201,440,80 -283,208,437,72 -284,206,438,72 -282,196,449,73 -283,197,453,67 -292,200,450,58 -290,208,444,58 -305,198,444,53 -314,201,433,52 -314,196,436,54 -329,196,428,47 -335,191,428,46 -340,196,412,52 -332,193,420,55 -334,186,419,61 -324,185,422,69 -332,184,412,72 -325,189,418,68 -323,194,416,67 -333,194,409,64 -332,193,410,65 -324,199,409,68 -321,199,407,73 -309,206,413,72 -314,200,400,86 -307,212,400,81 -302,208,409,81 -311,199,410,80 -307,201,418,74 -300,205,425,70 -304,203,419,74 -301,207,426,66 -308,199,421,72 -312,198,416,74 -314,197,421,68 -306,205,422,67 -310,205,419,66 -314,206,413,67 -310,199,418,73 -312,196,423,69 -304,207,422,67 -295,218,423,64 -292,221,417,70 -290,210,426,74 -297,204,426,73 -294,201,434,71 -302,200,433,65 -291,208,427,74 -300,199,426,75 -302,197,428,73 -307,196,433,64 -308,197,427,68 -313,203,416,68 -310,205,421,64 -317,208,415,60 -317,209,412,62 -320,207,406,67 -330,215,389,66 -319,226,393,62 -308,233,388,71 -308,222,389,81 -299,225,403,73 -305,213,400,82 -300,221,407,72 -307,214,397,82 -302,214,402,82 -301,215,414,70 -291,214,424,71 -288,220,425,67 -277,223,422,78 -274,219,431,76 -286,207,422,85 -298,203,424,75 -307,200,420,73 -305,199,421,75 -305,211,414,70 -308,205,419,68 -312,198,421,69 -313,210,416,61 -315,211,418,56 -327,209,407,57 -330,204,401,65 -324,205,399,72 -327,207,396,70 -323,207,394,76 -309,208,401,82 -304,209,405,82 -302,204,404,90 -290,210,416,84 -287,208,415,90 -286,213,425,76 -282,212,434,72 -290,205,439,66 -292,208,437,63 -290,215,427,68 -294,209,427,70 -295,203,429,73 -294,200,437,69 -296,201,438,65 -311,196,431,62 -313,191,429,67 -314,183,437,66 -328,173,436,63 -333,171,433,63 -333,174,432,61 -338,173,427,62 -345,176,431,48 -344,175,422,59 -350,175,416,59 -335,184,416,65 -326,190,435,49 -323,182,428,67 -324,183,427,66 -322,184,432,62 -325,182,436,57 -332,184,436,48 -337,185,428,50 -339,186,424,51 -358,183,412,47 -363,187,397,53 -363,179,393,65 -357,182,397,64 -349,196,400,55 -363,200,380,57 -364,199,387,50 -367,195,387,51 -373,189,377,61 -369,193,379,59 -362,196,377,65 -358,195,379,68 -344,205,385,66 -340,194,392,74 -327,205,394,74 -336,202,388,74 -325,209,397,69 -323,198,399,80 -313,205,399,83 -326,207,398,69 -329,201,400,70 -329,200,401,70 -323,198,405,74 -330,187,407,76 -316,199,410,75 -315,199,426,60 -317,196,417,70 -320,200,412,68 -326,208,407,59 -329,211,404,56 -326,213,407,54 -328,213,403,56 -333,219,404,44 -332,214,403,51 -334,209,399,58 -333,211,396,60 -334,212,392,62 -331,208,395,66 -331,201,386,82 -325,205,400,70 -326,202,400,72 -318,207,403,72 -321,204,404,71 -313,204,412,71 -309,192,422,77 -312,189,424,75 -307,194,433,66 -313,190,437,60 -319,183,432,66 -325,181,424,70 -327,178,429,66 -328,182,431,59 -336,176,431,57 -336,171,431,62 -339,173,429,59 -346,174,420,60 -346,173,418,63 -347,174,417,62 -357,174,409,60 -360,167,407,66 -356,174,407,63 -356,172,413,59 -353,176,405,66 -349,184,401,66 -355,184,402,59 -349,180,411,60 -355,182,405,58 -354,179,407,60 -360,181,406,53 -363,175,398,64 -354,189,398,59 -354,187,403,56 -354,187,395,64 -363,194,382,61 -373,188,377,62 -363,194,387,56 -364,197,391,48 -373,189,383,55 -380,185,392,43 -384,178,391,47 -396,177,376,51 -398,183,366,53 -389,194,365,52 -388,196,360,56 -379,201,364,56 -379,196,362,63 -381,191,366,62 -382,193,372,53 -376,202,372,50 -380,197,371,52 -375,190,373,62 -369,194,378,59 -363,207,370,60 -357,206,380,57 -347,215,378,60 -352,209,379,60 -344,210,381,65 -342,210,380,68 -340,212,375,73 -332,223,380,65 -329,223,380,68 -329,225,376,70 -324,229,374,73 -323,223,377,77 -308,235,387,70 -304,228,386,82 -310,224,386,80 -301,236,393,70 -293,243,389,75 -294,236,382,88 -286,227,392,95 -263,244,408,85 -263,236,412,89 -263,235,412,90 -266,241,408,85 -271,238,410,81 -271,235,418,76 -270,237,422,71 -273,239,422,66 -271,239,428,62 -275,229,427,69 -288,223,428,61 -293,222,419,66 -299,220,422,59 -302,219,429,50 -302,215,422,61 -315,211,417,57 -313,218,417,52 -314,220,420,46 -323,220,415,42 -320,220,408,52 -314,222,398,66 -308,224,402,66 -312,221,405,62 -311,227,401,61 -310,229,397,64 -302,228,401,69 -301,219,405,75 -307,210,397,86 -301,207,408,84 -291,208,415,86 -285,207,416,92 -286,202,418,94 -286,211,420,83 -281,221,430,68 -288,226,420,66 -301,218,414,67 -309,211,406,74 -306,218,407,69 -300,220,405,75 -296,221,410,73 -290,221,418,71 -297,212,414,77 -288,215,426,71 -298,209,427,66 -305,206,419,70 -291,203,427,79 -298,199,421,82 -292,209,433,66 -289,207,444,60 -303,198,435,64 -303,206,427,64 -303,212,418,67 -294,210,425,71 -294,199,429,78 -288,201,426,85 -283,197,448,72 -292,189,449,70 -301,195,445,59 -299,194,452,55 -305,186,438,71 -303,192,444,61 -318,189,430,63 -319,195,415,71 -313,205,414,68 -320,207,411,62 -324,203,414,59 -321,207,421,51 -319,207,417,57 -321,202,424,53 -317,200,421,62 -317,203,413,67 -320,204,407,69 -328,202,403,67 -327,206,399,68 -326,206,396,72 -313,215,398,74 -308,214,401,77 -296,227,409,68 -297,226,406,71 -301,226,403,70 -287,233,411,69 -291,232,412,65 -301,226,408,65 -298,222,414,66 -297,225,415,63 -307,217,407,69 -307,207,414,72 -302,202,415,81 -299,211,413,77 -297,208,417,78 -288,203,428,81 -273,215,437,75 -274,221,438,67 -283,213,430,74 -284,214,427,75 -282,212,432,74 -282,212,437,69 -293,198,445,64 -293,194,449,64 -294,184,455,67 -290,192,464,54 -292,185,465,58 -287,194,461,58 -296,190,451,63 -312,188,438,62 -306,187,441,66 -317,186,441,56 -325,181,430,64 -327,189,428,56 -314,191,424,71 -312,194,428,66 -323,193,420,64 -320,195,416,69 -327,191,407,75 -312,208,413,67 -317,212,404,67 -318,208,408,66 -322,198,406,74 -315,198,404,83 -327,192,400,81 -329,195,405,71 -328,198,407,67 -322,202,408,68 -313,210,408,69 -303,213,417,67 -299,210,419,72 -305,207,420,68 -305,200,424,71 -291,209,420,80 -287,217,427,69 -301,212,419,68 -309,216,408,67 -308,209,410,73 -313,207,399,81 -303,225,398,74 -308,222,400,70 -289,234,403,74 -293,221,401,85 -293,209,407,91 -298,213,415,74 -298,213,428,61 -306,207,416,71 -305,211,424,60 -320,196,422,62 -318,195,437,50 -318,193,432,57 -323,198,421,58 -328,192,415,65 -333,186,410,71 -337,184,415,64 -342,183,409,66 -342,190,407,61 -339,183,408,70 -338,188,411,63 -348,186,400,66 -347,196,395,62 -353,194,390,63 -344,200,399,57 -351,193,395,61 -351,197,390,62 -353,201,391,55 -342,210,386,62 -335,213,387,65 -334,221,387,58 -325,227,386,62 -329,224,382,65 -331,234,364,71 -328,231,367,74 -323,239,375,63 -326,234,371,69 -317,241,371,71 -302,246,372,80 -303,233,377,87 -302,231,388,79 -299,230,396,75 -303,224,398,75 -291,232,401,76 -291,234,400,75 -296,230,406,68 -295,221,414,70 -298,218,411,73 -294,219,417,70 -294,222,408,76 -293,224,411,72 -282,232,408,78 -273,237,417,73 -291,225,411,73 -291,222,409,78 -287,221,411,81 -287,214,416,83 -269,230,427,74 -268,221,439,72 -271,218,442,69 -275,216,441,68 -272,215,439,74 -281,213,439,67 -286,212,432,70 -292,216,435,57 -295,218,430,57 -303,212,419,66 -311,217,402,70 -304,209,416,71 -300,216,417,67 -308,205,411,76 -298,207,417,78 -293,211,431,65 -297,211,424,68 -291,195,432,82 -288,196,441,75 -284,194,450,72 -296,191,435,78 -295,190,445,70 -285,198,447,70 -300,187,447,66 -293,197,451,59 -298,191,447,64 -295,200,443,62 -301,201,439,59 -299,196,446,59 -316,189,440,55 -317,181,441,61 -317,185,444,54 -325,185,439,51 -334,180,429,57 -348,173,422,57 -354,171,417,58 -352,186,410,52 -355,188,406,51 -355,185,405,55 -352,185,397,66 -340,192,399,69 -339,208,396,57 -339,214,387,60 -339,207,383,71 -331,216,380,73 -329,210,393,68 -318,216,401,65 -316,210,411,63 -313,200,416,71 -311,205,416,68 -297,216,418,69 -288,211,426,75 -291,222,418,69 -293,215,417,75 -287,216,417,80 -294,207,410,89 -287,205,424,84 -280,211,436,73 -291,199,442,68 -298,189,443,70 -301,188,438,73 -299,183,442,76 -298,187,440,75 -301,181,434,84 -305,183,432,80 -301,190,427,82 -295,201,431,73 -290,207,428,75 -284,221,427,68 -281,218,431,70 -292,212,422,74 -293,205,430,72 -297,198,427,78 -291,200,428,81 -285,208,423,84 -290,203,432,75 -290,201,443,66 -289,200,451,60 -304,197,439,60 -303,196,442,59 -304,188,442,66 -300,193,448,59 -296,195,443,66 -315,192,423,70 -311,191,432,66 -316,190,429,65 -306,204,435,55 -303,203,431,63 -302,206,431,61 -301,206,427,66 -308,214,415,63 -324,211,396,69 -321,207,394,78 -323,209,389,79 -307,217,404,72 -305,217,407,71 -300,217,406,77 -306,211,413,70 -295,217,421,67 -307,193,416,84 -311,191,422,76 -308,192,430,70 -306,189,438,67 -314,188,434,64 -315,180,431,74 -309,178,442,71 -297,184,439,80 -297,189,441,73 -300,196,429,75 -306,195,432,67 -316,196,430,58 -322,194,416,68 -314,201,418,67 -328,204,409,59 -321,205,415,59 -318,207,420,55 -316,205,425,54 -324,199,412,65 -313,200,414,73 -304,209,419,68 -303,207,422,68 -306,196,429,69 -314,194,422,70 -320,189,416,75 -320,194,410,76 -305,199,422,74 -299,200,430,71 -304,202,425,69 -292,204,428,76 -291,205,433,71 -298,212,428,62 -305,203,433,59 -306,203,435,56 -315,190,425,70 -310,191,421,78 -309,203,418,70 -299,211,421,69 -301,206,420,73 -293,206,427,74 -293,203,438,66 -300,203,438,59 -314,198,430,58 -313,193,432,62 -310,203,423,64 -306,202,430,62 -311,192,426,71 -307,198,431,64 -314,186,436,64 -326,181,422,71 -325,187,417,71 -329,187,414,70 -313,202,421,64 -311,209,425,55 -320,197,416,67 -310,203,424,63 -308,196,424,72 -301,201,427,71 -310,199,425,66 -311,202,420,67 -312,204,417,67 -314,208,404,74 -310,215,402,73 -311,223,407,59 -323,219,393,65 -327,212,388,73 -323,217,386,74 -316,220,395,69 -325,209,398,68 -318,219,398,65 -312,217,408,63 -313,221,411,55 -310,228,410,52 -318,220,399,63 -310,225,392,73 -312,213,403,72 -309,223,402,66 -300,234,403,63 -313,229,393,65 -318,222,391,69 -332,214,390,64 -329,217,394,60 -324,225,393,58 -314,224,392,70 -315,223,375,87 -312,218,385,85 -300,232,385,83 -305,230,383,82 -307,215,390,88 -296,224,403,77 -304,215,399,82 -298,221,414,67 -300,225,415,60 -288,233,412,67 -287,228,409,76 -278,231,410,81 -267,234,410,89 -273,228,411,88 -280,218,422,80 -269,223,433,75 -264,217,428,91 -265,208,441,86 -263,206,448,83 -276,203,451,70 -287,203,445,65 -295,203,431,71 -291,203,435,71 -299,203,426,72 -304,189,438,69 -309,194,434,63 -305,196,437,62 -319,188,431,62 -324,186,434,56 -324,184,432,60 -320,193,429,58 -324,191,421,64 -315,194,420,71 -305,206,419,70 -299,204,425,72 -304,205,424,67 -307,204,418,71 -304,208,414,74 -300,199,428,73 -294,196,431,79 -294,200,423,83 -305,200,420,75 -302,202,414,82 -305,193,410,92 -295,199,419,87 -302,201,422,75 -301,199,420,80 -294,212,426,68 -287,211,429,73 -290,213,431,66 -293,211,431,65 -289,212,428,71 -290,210,427,73 -301,202,423,74 -310,200,426,64 -319,194,422,65 -300,207,430,63 -306,204,421,69 -295,210,432,63 -297,209,424,70 -302,196,423,79 -302,192,429,77 -297,194,431,78 -294,191,440,75 -297,183,438,82 -298,177,442,83 -302,176,453,69 -308,165,454,73 -306,169,454,71 -308,167,453,72 -313,169,444,74 -319,176,439,66 -311,178,444,67 -316,181,439,64 -322,183,432,63 -325,188,425,62 -330,186,424,60 -335,180,433,52 -334,185,430,51 -327,191,432,50 -323,191,427,59 -334,187,421,58 -329,196,422,53 -335,193,415,57 -339,189,416,56 -353,184,405,58 -362,175,409,54 -367,175,395,63 -367,175,392,66 -368,176,386,70 -351,194,392,63 -356,185,389,70 -340,189,390,81 -331,201,389,79 -330,204,392,74 -326,199,400,75 -323,194,410,73 -319,197,424,60 -326,197,414,63 -325,192,420,63 -333,187,409,71 -332,193,413,62 -331,186,414,69 -323,187,416,74 -320,188,418,74 -335,184,421,60 -339,191,410,60 -353,184,401,62 -347,193,395,65 -344,206,395,55 -341,207,394,58 -331,209,400,60 -334,211,400,55 -337,215,389,59 -335,214,388,63 -342,214,382,62 -340,217,383,60 -327,222,393,58 -334,217,382,67 -335,210,387,68 -328,209,388,75 -318,222,395,65 -306,226,399,69 -304,227,407,62 -313,214,398,75 -303,220,408,69 -299,220,402,79 -307,207,399,87 -299,211,411,79 -300,212,416,72 -298,208,426,68 -302,209,420,69 -307,202,418,73 -309,199,421,71 -312,190,421,77 -312,195,424,69 -311,194,428,67 -314,195,437,54 -322,192,435,51 -329,187,432,52 -326,195,425,54 -331,192,414,63 -333,194,408,65 -332,192,407,69 -326,197,410,67 -322,197,405,76 -321,197,404,78 -334,191,405,70 -345,187,401,67 -344,195,400,61 -349,197,392,62 -350,198,395,57 -346,201,390,63 -335,199,389,77 -330,199,393,78 -330,200,398,72 -327,202,400,71 -326,202,404,68 -317,203,403,77 -320,211,398,71 -319,213,398,70 -317,212,398,73 -308,217,401,74 -311,217,406,66 -320,206,402,72 -311,204,416,69 -311,202,422,65 -313,203,420,64 -312,202,414,72 -309,200,416,75 -317,200,417,66 -320,189,418,73 -321,201,418,60 -310,208,419,63 -326,207,413,54 -327,198,410,65 -313,209,414,64 -313,205,408,74 -313,214,400,73 -313,210,398,79 -313,209,403,75 -305,218,402,75 -307,219,408,66 -294,227,409,70 -298,220,409,73 -287,219,420,74 -293,219,423,65 -297,221,417,65 -290,222,417,71 -285,228,416,71 -289,226,413,72 -302,213,404,81 -298,209,409,84 -293,205,413,89 -276,216,417,91 -276,212,428,84 -279,214,434,73 -286,216,439,59 -303,200,427,70 -297,205,424,74 -295,200,429,76 -313,195,423,69 -317,195,419,69 -311,206,421,62 -308,211,412,69 -303,215,407,75 -313,205,407,75 -309,210,412,69 -295,217,423,65 -295,209,424,72 -287,215,424,74 -285,217,430,68 -289,211,434,66 -301,207,435,57 -307,202,431,60 -311,212,419,58 -320,208,413,59 -337,198,399,66 -324,212,403,61 -332,208,389,71 -315,217,384,84 -308,219,395,78 -304,225,397,74 -293,233,403,71 -296,225,404,75 -296,230,402,72 -304,231,395,70 -301,229,403,67 -297,226,404,73 -299,216,405,80 -304,215,403,78 -307,216,408,69 -309,211,414,66 -323,203,400,74 -317,211,395,77 -315,209,397,79 -306,217,402,75 -307,214,406,73 -304,210,408,78 -298,213,412,77 -297,218,413,72 -300,217,401,82 -313,212,393,82 -313,208,396,83 -301,214,402,83 -304,220,410,66 -299,223,409,69 -301,217,412,70 -298,208,420,74 -298,218,409,75 -286,220,421,73 -282,209,424,85 -291,211,429,69 -297,205,422,76 -297,208,436,59 -304,204,426,66 -305,210,416,69 -320,199,404,77 -314,215,396,75 -300,224,410,66 -301,219,416,64 -297,221,417,65 -297,226,415,62 -293,214,421,72 -292,203,428,77 -289,203,438,70 -292,197,429,82 -291,189,454,66 -291,203,450,56 -298,204,443,55 -301,205,439,55 -309,209,422,60 -321,199,417,63 -316,197,418,69 -324,190,414,72 -322,201,422,55 -331,198,415,56 -334,197,415,54 -339,192,422,47 -343,192,421,44 -348,193,410,49 -349,189,397,65 -342,186,395,77 -337,196,394,73 -340,190,403,67 -341,196,405,58 -345,189,401,65 -337,202,392,69 -336,204,393,67 -326,208,402,64 -325,207,394,74 -326,204,393,77 -327,210,383,80 -323,217,384,76 -313,224,395,68 -316,226,389,69 -317,224,382,77 -316,220,378,86 -310,214,382,94 -291,227,400,82 -292,229,403,76 -283,231,404,82 -283,227,407,83 -282,226,414,78 -290,223,417,70 -295,220,415,70 -302,217,414,67 -312,212,404,72 -306,215,412,67 -305,214,412,69 -311,207,411,71 -299,213,406,82 -303,220,406,71 -302,225,404,69 -293,218,412,77 -292,211,413,84 -286,206,424,84 -275,212,428,85 -279,215,438,68 -279,220,436,65 -281,219,433,67 -287,209,443,61 -300,202,433,65 -306,197,434,63 -328,186,420,66 -329,183,418,70 -320,191,422,67 -329,189,422,60 -328,182,430,60 -334,173,436,57 -331,175,432,62 -325,176,426,73 -311,197,424,68 -317,191,419,73 -316,198,420,66 -316,202,420,62 -316,198,428,58 -329,188,421,62 -325,184,421,70 -322,193,418,67 -328,192,413,67 -323,203,418,56 -326,184,417,73 -325,192,417,66 -310,196,426,68 -310,206,423,61 -330,195,416,59 -336,201,400,63 -332,215,394,59 -344,202,378,76 -338,194,396,72 -332,197,408,63 -320,199,407,74 -311,206,408,75 -303,213,409,75 -296,215,416,73 -310,208,411,71 -315,201,416,68 -320,203,412,65 -326,198,412,64 -328,190,420,62 -315,196,422,67 -308,213,411,68 -309,208,409,74 -312,204,408,76 -300,217,421,62 -306,199,426,69 -299,203,426,72 -301,205,420,74 -295,208,426,71 -297,213,428,62 -301,217,426,56 -299,207,426,68 -304,206,422,68 -307,211,419,63 -308,207,418,67 -298,209,415,78 -292,207,419,82 -287,216,423,74 -281,230,415,74 -286,230,415,69 -283,230,415,72 -284,226,416,74 -283,233,415,69 -293,217,408,82 -288,221,412,79 -286,217,421,76 -293,218,419,70 -286,219,414,81 -291,220,408,81 -290,226,408,76 -283,212,420,85 -270,218,437,75 -280,225,425,70 -278,230,432,60 -281,226,426,67 -293,214,422,71 -291,217,431,61 -284,224,431,61 -288,220,421,71 -290,214,421,75 -291,214,424,71 -300,208,421,71 -314,202,420,64 -311,205,419,65 -313,200,417,70 -318,188,418,76 -326,189,420,65 -329,186,426,59 -346,184,418,52 -332,186,427,55 -331,184,419,66 -330,192,417,61 -337,191,412,60 -335,187,411,67 -336,192,418,54 -341,190,409,60 -342,188,404,66 -328,201,413,58 -336,189,411,64 -341,187,407,65 -341,184,405,70 -348,188,393,71 -366,179,393,62 -355,186,393,66 -343,195,398,64 -359,191,387,63 -370,192,385,53 -372,190,373,65 -374,192,364,70 -362,197,366,75 -357,201,370,72 -352,203,372,73 -348,207,384,61 -347,211,378,64 -331,220,383,66 -327,221,377,75 -328,214,390,68 -329,209,394,68 -335,204,392,69 -335,200,396,69 -328,197,399,76 -326,203,401,70 -343,189,391,77 -334,201,395,70 -334,198,400,68 -334,203,402,61 -328,212,399,61 -329,206,400,65 -324,202,401,73 -322,199,406,73 -315,204,417,64 -324,198,410,68 -322,206,401,71 -328,200,395,77 -330,209,394,67 -329,202,393,76 -331,204,388,77 -331,204,380,85 -328,214,382,76 -325,217,385,73 -331,217,384,68 -327,216,388,69 -324,210,395,71 -327,208,396,69 -325,210,398,67 -330,206,391,73 -319,215,398,68 -322,204,394,80 -318,208,399,75 -311,206,403,80 -300,218,414,68 -302,210,419,69 -304,207,420,69 -305,202,418,75 -296,200,423,81 -298,203,422,77 -299,204,436,61 -303,202,439,56 -309,207,435,49 -320,199,425,56 -323,195,427,55 -339,195,415,51 -343,197,406,54 -347,202,402,49 -347,199,400,54 -349,196,403,52 -350,202,398,50 -348,200,398,54 -343,197,392,68 -332,199,393,76 -340,205,392,63 -345,205,390,60 -345,207,389,59 -346,210,386,58 -346,215,378,61 -335,218,380,67 -333,222,381,64 -329,222,386,63 -328,224,371,77 -326,228,371,75 -319,226,375,80 -305,229,385,81 -299,233,389,79 -298,226,398,78 -295,222,410,73 -291,227,410,72 -302,225,408,65 -320,210,405,65 -319,207,404,70 -317,212,407,64 -323,200,404,73 -326,198,401,75 -317,190,414,79 -309,196,421,74 -314,194,424,68 -305,198,424,73 -303,203,425,69 -297,202,430,71 -304,200,422,74 -304,196,418,82 -284,205,423,88 -294,201,419,86 -282,201,427,90 -288,200,446,66 -296,197,437,70 -296,199,438,67 -306,197,433,64 -297,201,436,66 -302,200,433,65 -318,182,433,67 -318,183,428,71 -313,196,427,64 -317,194,436,53 -333,184,427,56 -339,176,420,65 -338,176,415,71 -339,178,412,71 -338,179,413,70 -331,184,418,67 -326,190,415,69 -334,200,407,59 -347,197,395,61 -345,191,395,69 -347,194,393,66 -343,200,398,59 -353,185,396,66 -351,187,399,63 -349,187,395,69 -345,197,389,69 -350,196,380,74 -340,210,384,66 -342,209,384,65 -333,215,376,76 -331,214,388,67 -323,217,392,68 -315,224,391,70 -308,228,393,71 -305,220,399,76 -298,216,399,87 -298,219,400,83 -302,211,410,77 -307,212,401,80 -308,216,402,74 -317,218,398,67 -330,213,395,62 -331,215,389,65 -330,211,402,57 -338,199,390,73 -318,214,392,76 -315,215,386,84 -323,215,393,69 -321,209,398,72 -319,213,402,66 -330,208,399,63 -336,206,400,58 -348,197,400,55 -344,204,406,46 -355,189,390,66 -341,194,389,76 -349,192,392,67 -342,193,408,57 -339,206,406,49 -339,207,399,55 -328,211,399,62 -326,211,392,71 -330,198,401,71 -328,209,396,67 -325,210,401,64 -337,214,388,61 -330,214,390,66 -334,211,386,69 -326,216,383,75 -327,205,383,85 -324,203,385,88 -318,217,384,81 -326,205,384,85 -314,224,385,77 -311,222,393,74 -319,216,390,75 -323,220,394,63 -322,220,398,60 -319,223,400,58 -321,220,395,64 -319,222,395,64 -321,220,392,67 -324,220,390,66 -329,209,388,74 -332,210,384,74 -324,211,385,80 -328,203,390,79 -328,211,385,76 -329,226,384,61 -330,222,378,70 -340,222,371,67 -345,217,368,70 -340,207,369,84 -329,213,383,75 -328,207,386,79 -325,211,381,83 -321,216,392,71 -312,221,390,77 -300,225,394,81 -293,234,402,71 -285,243,402,70 -289,238,404,69 -280,228,413,79 -274,231,414,81 -273,228,415,84 -271,227,424,78 -269,227,427,77 -267,235,434,64 -269,231,435,65 -269,225,440,66 -268,214,448,70 -267,210,447,76 -257,211,443,89 -270,203,447,80 -269,201,448,82 -281,194,450,75 -281,190,452,77 -281,198,460,61 -296,188,456,60 -295,186,458,61 -290,192,456,62 -303,192,446,59 -311,193,443,53 -316,189,437,58 -312,185,435,68 -303,179,437,81 -292,189,436,83 -289,192,432,87 -283,203,437,77 -276,203,438,83 -284,197,440,79 -291,200,435,74 -309,190,434,67 -309,197,425,69 -294,209,425,72 -296,212,423,69 -301,203,434,62 -298,202,427,73 -291,220,426,63 -309,208,414,69 -299,208,418,75 -295,208,423,74 -301,205,421,73 -308,205,419,68 -296,219,424,61 -297,216,422,65 -295,221,424,60 -292,214,425,69 -291,213,422,74 -292,214,422,72 -289,215,422,74 -298,214,422,66 -299,210,427,64 -289,222,427,62 -290,215,424,71 -307,209,410,74 -317,202,409,72 -325,199,408,68 -321,196,422,61 -323,197,418,62 -312,202,420,66 -297,208,418,77 -296,217,421,66 -296,220,423,61 -302,221,418,59 -296,223,417,64 -301,223,417,59 -298,217,419,66 -315,203,416,66 -314,199,419,68 -315,199,421,65 -311,212,417,60 -313,203,418,66 -314,201,410,75 -313,204,405,78 -314,205,410,71 -313,209,412,66 -307,214,411,68 -298,218,419,65 -294,225,423,58 -288,228,422,62 -285,231,425,59 -290,220,427,63 -288,222,427,63 -289,225,427,59 -292,216,425,67 -275,222,426,77 -280,219,433,68 -277,226,436,61 -275,221,435,69 -278,218,431,73 -279,223,425,73 -280,223,429,68 -291,213,418,78 -300,204,426,70 -306,206,414,74 -315,198,416,71 -313,195,426,66 -322,193,426,59 -317,201,433,49 -328,187,425,60 -331,185,423,61 -335,184,428,53 -334,190,416,60 -322,187,418,73 -319,189,411,81 -320,194,415,71 -326,194,407,73 -317,205,404,74 -318,202,405,75 -306,202,423,69 -312,203,413,72 -306,201,418,75 -301,209,420,70 -309,207,418,66 -315,212,410,63 -318,208,406,68 -318,203,413,66 -320,197,416,67 -326,197,409,68 -329,197,410,64 -316,204,412,68 -311,208,418,63 -311,212,417,60 -320,213,420,47 -335,205,412,48 -336,205,407,52 -344,196,400,60 -351,198,380,71 -350,196,380,74 -332,214,385,69 -330,206,391,73 -320,213,392,75 -315,212,392,81 -311,218,388,83 -299,224,399,78 -285,229,410,76 -275,235,418,72 -285,235,414,66 -290,230,412,68 -295,220,414,71 -289,214,412,85 -276,222,417,85 -283,209,424,84 -287,211,435,67 -294,209,437,60 -302,200,437,61 -304,194,442,60 -308,203,445,44 -324,189,436,51 -331,188,426,55 -333,182,417,68 -340,179,426,55 -321,191,427,61 -317,192,441,50 -325,190,433,52 -329,189,432,50 -336,192,419,53 -333,196,418,53 -332,199,412,57 -317,205,413,65 -316,204,418,62 -315,206,410,69 -317,204,412,67 -310,203,411,76 -300,211,419,70 -299,208,423,70 -300,205,422,73 -302,198,418,82 -298,205,419,78 -289,205,431,75 -290,202,439,69 -285,208,446,61 -296,202,429,73 -284,209,430,77 -277,204,445,74 -279,206,448,67 -284,206,443,67 -299,190,436,75 -296,193,427,84 -283,202,430,85 -285,206,424,85 -283,204,423,90 -283,218,420,79 -287,212,418,83 -288,212,416,84 -284,219,417,80 -286,218,422,74 -292,208,417,83 -297,212,419,72 -305,208,421,66 -311,197,423,69 -305,187,433,75 -308,186,432,74 -305,194,429,72 -316,195,424,65 -323,194,422,61 -317,195,421,67 -326,195,418,61 -323,193,418,66 -330,187,405,78 -339,184,408,69 -330,192,409,69 -332,189,406,73 -334,199,409,58 -329,201,403,67 -320,207,398,75 -311,207,401,81 -309,208,414,69 -316,199,412,73 -320,191,418,71 -311,190,417,82 -304,190,426,80 -310,183,437,70 -313,178,441,68 -308,168,448,76 -296,179,454,71 -306,176,450,68 -314,175,447,64 -320,174,435,71 -313,179,439,69 -319,182,447,52 -334,177,446,43 -343,175,433,49 -350,174,420,56 -353,173,421,53 -354,172,417,57 -357,167,423,53 -357,173,414,56 -360,177,402,61 -365,178,406,51 -367,181,396,56 -359,181,393,67 -357,183,399,61 -358,185,400,57 -369,178,393,60 -365,185,395,55 -354,193,396,57 -356,188,389,67 -359,178,396,67 -351,176,399,74 -352,187,391,70 -349,184,401,66 -351,182,400,67 -350,185,400,65 -356,186,392,66 -344,185,400,71 -343,190,407,60 -339,186,408,67 -339,186,417,58 -327,189,433,51 -333,181,423,63 -328,182,433,57 -336,178,426,60 -337,183,427,53 -342,188,416,54 -337,183,416,64 -335,182,418,65 -343,176,412,69 -343,182,411,64 -345,181,408,66 -340,186,409,65 -339,192,414,55 -354,191,412,43 -360,195,399,46 -361,192,393,54 -370,185,388,57 -364,185,395,56 -362,187,387,64 -360,183,391,66 -362,185,391,62 -367,182,393,58 -367,180,388,65 -370,181,389,60 -371,183,395,51 -377,181,396,46 -384,176,394,46 -391,174,388,47 -389,169,386,56 -372,173,397,58 -377,181,389,53 -385,181,379,55 -395,183,369,53 -394,191,362,53 -398,192,355,55 -394,188,357,61 -396,172,363,69 -401,169,353,77 -401,173,357,69 -399,174,365,62 -396,180,366,58 -385,185,371,59 -383,182,366,69 -378,180,367,75 -379,180,368,73 -366,201,361,72 -359,209,362,70 -358,205,366,71 -346,211,372,71 -350,206,371,73 -350,199,379,72 -334,200,391,75 -336,203,393,68 -327,206,406,61 -333,203,405,59 -331,201,402,66 -326,202,399,73 -325,205,401,69 -320,207,404,69 -320,202,400,78 -314,202,405,79 -318,203,407,72 -318,209,413,60 -319,203,414,64 -319,198,413,70 -323,196,413,68 -322,202,414,62 -321,200,409,70 -320,204,413,63 -333,199,405,63 -326,202,406,66 -327,206,405,62 -320,211,408,61 -329,201,399,71 -330,198,394,78 -321,201,402,76 -322,211,396,71 -320,204,403,73 -326,208,397,69 -314,221,397,68 -314,220,405,61 -314,215,404,67 -315,202,408,75 -307,204,411,78 -311,202,411,76 -298,200,420,82 -310,202,418,70 -314,202,413,71 -314,200,414,72 -311,208,419,62 -303,215,419,63 -314,208,415,63 -315,200,413,72 -313,207,406,74 -306,214,410,70 -288,229,416,67 -289,220,405,86 -292,221,409,78 -292,216,415,77 -296,206,420,78 -309,206,416,69 -311,211,419,59 -313,208,423,56 -331,199,411,59 -341,192,405,62 -351,188,397,64 -355,191,394,60 -358,188,388,66 -346,187,398,69 -340,188,410,62 -339,188,410,63 -345,183,404,68 -340,182,413,65 -334,183,415,68 -335,191,414,60 -336,185,411,68 -336,183,414,67 -328,182,414,76 -337,180,409,74 -333,180,409,78 -325,194,413,68 -308,199,422,71 -312,194,424,70 -314,189,430,67 -322,191,428,59 -328,192,421,59 -326,199,421,54 -325,203,417,55 -327,201,407,65 -323,195,408,74 -323,200,406,71 -314,209,410,67 -321,207,415,57 -330,206,402,62 -333,207,405,55 -337,214,407,42 -347,199,398,56 -349,188,397,66 -352,186,398,64 -350,194,396,60 -356,196,393,55 -355,189,400,56 -364,183,396,57 -363,190,390,57 -358,192,388,62 -352,198,390,60 -353,187,395,65 -354,183,392,71 -348,187,390,75 -346,188,399,67 -350,192,385,73 -349,194,384,73 -344,193,391,72 -358,188,383,71 -357,187,392,64 -351,200,383,66 -349,190,390,71 -341,194,402,63 -339,198,404,59 -340,197,409,54 -352,192,396,60 -353,198,393,56 -343,204,388,65 -333,212,392,63 -327,208,401,64 -319,207,399,75 -306,221,402,71 -307,215,394,84 -310,221,393,76 -309,223,382,86 -300,235,390,75 -307,232,392,69 -300,245,399,56 -293,236,398,73 -288,233,395,84 -283,239,397,81 -279,235,401,85 -284,226,405,85 -292,230,400,78 -290,234,402,74 -292,231,408,69 -292,236,408,64 -295,234,410,61 -305,227,406,62 -289,228,414,69 -288,221,421,70 -281,222,423,74 -280,221,423,76 -272,211,430,87 -264,221,432,83 -265,222,431,82 -267,215,430,88 -271,209,438,82 -273,211,448,68 -271,220,443,66 -280,212,447,61 -283,216,447,54 -289,203,441,67 -294,204,443,59 -301,202,436,61 -309,194,419,78 -308,197,427,68 -308,200,422,70 -309,200,417,74 -308,194,431,67 -311,196,428,65 -317,196,418,69 -317,194,420,69 -318,199,423,60 -318,196,425,61 -321,195,427,57 -337,190,410,63 -339,194,415,52 -344,186,412,58 -341,180,411,68 -334,182,418,66 -344,178,416,62 -335,191,416,58 -349,187,407,57 -355,179,398,68 -356,184,400,60 -348,186,402,64 -340,187,401,72 -339,191,407,63 -349,189,398,64 -345,192,395,68 -345,186,399,70 -331,192,405,72 -324,194,405,77 -332,192,402,74 -330,190,414,66 -329,198,412,61 -331,196,395,78 -323,207,392,78 -318,216,400,66 -317,226,399,58 -319,230,392,59 -312,231,395,62 -322,230,385,63 -322,221,385,72 -320,220,393,67 -316,217,402,65 -311,223,399,67 -314,215,403,68 -314,213,403,70 -312,224,397,67 -309,229,396,66 -304,234,396,66 -303,233,395,69 -302,237,397,64 -304,227,399,70 -303,226,395,76 -302,224,400,74 -302,224,404,70 -301,229,398,72 -294,227,406,73 -289,237,402,72 -295,226,399,80 -294,221,396,89 -286,231,396,87 -276,239,405,80 -280,232,406,82 -283,225,405,87 -273,222,411,94 -267,223,423,87 -274,216,426,84 -277,217,433,73 -273,218,444,65 -272,218,446,64 -289,215,436,60 -304,212,422,62 -308,213,412,67 -302,216,415,67 -296,218,410,76 -301,212,418,69 -300,219,421,60 -299,212,421,68 -301,205,414,80 -312,210,410,68 -307,217,409,67 -307,217,402,74 -313,214,404,69 -312,217,400,71 -309,222,395,74 -293,233,404,70 -288,236,400,76 -283,241,402,74 -281,232,411,76 -288,216,412,84 -277,220,418,85 -275,213,429,83 -259,219,441,81 -263,214,448,75 -259,207,457,77 -247,214,462,77 -256,210,462,72 -252,215,452,81 -256,211,451,82 -257,211,460,72 -264,201,453,82 -259,205,455,81 -266,195,460,79 -274,180,470,76 -275,183,470,72 -275,190,466,69 -278,183,468,71 -279,186,464,71 -282,190,467,61 -286,183,471,60 -289,178,476,57 -291,175,474,60 -304,163,467,66 -299,171,458,72 -300,172,462,66 -315,166,458,61 -314,166,457,63 -319,159,457,65 -314,172,453,61 -324,171,446,59 -336,174,430,60 -334,174,423,69 -340,171,432,57 -348,175,423,54 -360,168,413,59 -368,167,402,63 -362,165,403,70 -355,161,412,72 -355,170,417,58 -360,169,413,58 -371,167,400,62 -374,165,399,62 -382,170,395,53 -378,175,389,58 -373,181,395,51 -370,186,393,51 -372,185,388,55 -377,184,378,61 -368,190,373,69 -368,201,371,60 -363,198,370,69 -350,209,379,62 -347,209,381,63 -347,209,385,59 -353,200,376,71 -351,194,379,76 -351,202,371,76 -351,212,366,71 -343,224,372,61 -335,226,377,62 -338,228,379,55 -335,223,382,60 -332,216,388,64 -332,216,383,69 -328,218,375,79 -318,229,379,74 -320,220,384,76 -312,226,386,76 -311,229,396,64 -318,223,388,71 -321,216,387,76 -313,219,399,69 -312,217,404,67 -317,217,400,66 -314,216,399,71 -317,217,388,78 -321,217,390,72 -318,209,395,78 -313,206,401,80 -310,209,404,77 -301,213,412,74 -288,216,421,75 -298,216,418,68 -303,219,416,62 -303,215,415,67 -305,223,413,59 -304,214,417,65 -306,212,416,66 -316,203,419,62 -314,199,429,58 -314,196,435,55 -304,203,433,60 -296,213,432,59 -299,206,430,65 -303,210,428,59 -297,208,430,65 -309,205,420,66 -317,207,409,67 -307,204,411,78 -310,201,411,78 -299,201,421,79 -292,209,422,77 -290,207,436,67 -284,208,445,63 -289,207,442,62 -305,201,431,63 -312,202,422,64 -325,199,404,72 -321,198,412,69 -329,186,415,70 -334,181,414,71 -327,195,415,63 -330,198,406,66 -332,198,404,66 -320,200,411,69 -321,206,409,64 -341,203,393,63 -339,202,390,69 -337,207,388,68 -327,213,388,72 -323,214,391,72 -323,219,394,64 -326,218,393,63 -309,225,400,66 -313,216,401,70 -299,220,411,70 -305,210,406,79 -291,217,420,72 -301,209,416,74 -294,211,413,82 -280,228,416,76 -281,224,417,78 -272,222,420,86 -267,220,422,91 -256,224,424,96 -265,218,425,92 -259,215,441,85 -262,209,443,86 -262,212,444,82 -272,213,439,76 -267,213,437,83 -254,206,451,89 -257,207,455,81 -256,217,448,79 -264,206,453,77 -275,201,462,62 -277,194,456,73 -288,190,462,60 -294,178,462,66 -293,178,462,67 -293,184,464,59 -302,180,454,64 -296,186,455,63 -303,184,447,66 -301,186,442,71 -303,184,436,77 -303,193,440,64 -308,193,438,61 -312,191,427,70 -314,193,424,69 -311,191,430,68 -308,194,440,58 -316,192,439,53 -316,189,434,61 -301,208,436,55 -302,206,435,57 -302,208,435,55 -298,201,439,62 -299,204,431,66 -305,202,426,67 -297,196,431,76 -290,205,426,79 -285,217,429,69 -284,212,431,73 -282,207,433,78 -288,212,427,73 -295,209,420,76 -299,203,421,77 -303,201,422,74 -306,193,430,71 -307,188,437,68 -301,192,442,65 -302,193,437,68 -298,205,436,61 -299,205,427,69 -295,203,433,69 -288,209,427,76 -294,212,427,67 -289,213,432,66 -306,211,423,60 -305,212,423,60 -320,208,424,48 -324,215,411,50 -328,214,393,65 -331,213,390,66 -334,216,391,59 -326,212,403,59 -320,217,403,60 -329,210,391,70 -316,215,397,72 -307,220,413,60 -314,212,409,65 -313,208,410,69 -316,210,412,62 -326,194,407,73 -326,194,409,71 -332,199,403,66 -332,199,402,67 -325,205,411,59 -326,211,398,65 -314,213,398,75 -317,213,403,67 -306,221,410,63 -313,216,401,70 -309,217,405,69 -317,214,398,71 -317,213,397,73 -315,210,398,77 -320,198,415,67 -319,200,413,68 -309,211,411,69 -319,209,407,65 -314,197,414,75 -304,197,424,75 -301,202,429,68 -300,204,432,64 -305,198,431,66 -307,199,432,62 -327,196,416,61 -331,192,416,61 -326,197,421,56 -324,196,422,58 -332,190,416,62 -340,186,402,72 -329,198,405,68 -328,200,410,62 -327,209,404,60 -323,219,402,56 -313,224,404,59 -318,215,400,67 -312,214,410,64 -316,212,413,59 -318,211,410,61 -318,209,406,67 -324,204,399,73 -328,201,394,77 -332,210,394,64 -321,217,399,63 -316,215,400,69 -309,221,399,71 -314,224,399,63 -303,228,403,66 -303,229,403,65 -299,223,404,74 -310,212,400,78 -310,214,399,77 -313,213,406,68 -313,213,409,65 -313,213,410,64 -306,222,404,68 -305,208,407,80 -300,224,406,70 -296,222,414,68 -292,228,422,58 -288,227,429,56 -290,221,424,65 -292,219,419,70 -279,227,427,67 -272,229,425,74 -277,215,440,68 -277,210,435,78 -283,208,435,74 -292,207,434,67 -298,206,436,60 -302,202,434,62 -300,194,440,66 -309,191,427,73 -315,188,417,80 -317,196,414,73 -307,202,417,74 -306,196,426,72 -308,201,424,67 -313,196,431,60 -327,183,416,74 -330,186,415,69 -318,198,422,62 -306,203,429,62 -316,200,425,59 -335,187,422,56 -334,182,427,57 -334,191,420,55 -338,189,414,59 -333,195,410,62 -344,188,403,65 -351,186,401,62 -345,186,398,71 -350,183,393,74 -340,197,391,72 -328,210,396,66 -316,207,405,72 -300,216,407,77 -305,211,409,75 -306,214,416,64 -311,217,408,64 -308,212,415,65 -314,212,408,66 -311,210,406,73 -315,217,401,67 -317,220,395,68 -314,221,391,74 -313,219,391,77 -299,218,403,80 -298,222,404,76 -300,214,411,75 -303,212,408,77 -303,212,413,72 -293,217,420,70 -296,220,423,61 -302,214,412,72 -303,206,409,82 -297,210,414,79 -299,208,416,77 -306,203,421,70 -306,202,417,75 -305,201,415,79 -310,192,416,82 -302,203,416,79 -314,194,414,78 -312,201,411,76 -316,197,410,77 -319,203,409,69 -320,208,405,67 -308,215,413,64 -307,213,411,69 -301,220,422,57 -311,213,413,63 -309,215,417,59 -305,217,421,57 -307,219,416,58 -308,220,405,67 -307,219,401,73 -294,228,403,75 -282,226,403,89 -292,222,409,77 -300,219,402,79 -298,228,408,66 -305,231,395,69 -301,223,397,79 -295,230,407,68 -298,224,407,71 -302,229,408,61 -309,225,402,64 -314,225,402,59 -321,224,400,55 -316,223,399,62 -319,222,392,67 -311,226,398,65 -314,221,394,71 -315,214,386,85 -304,226,387,83 -296,228,393,83 -289,238,397,76 -281,243,404,72 -273,241,415,71 -271,234,422,73 -263,241,428,68 -276,234,428,62 -296,230,417,57 -299,220,414,67 -298,221,414,67 -312,209,406,73 -307,215,407,71 -306,218,407,69 -308,206,411,75 -313,200,418,69 -311,204,410,75 -304,210,409,77 -312,211,412,65 -306,201,416,77 -300,204,422,74 -304,209,422,65 -305,206,423,66 -303,194,432,71 -302,193,438,67 -314,188,433,65 -310,201,431,58 -304,202,437,57 -310,199,437,54 -317,186,426,71 -309,192,439,60 -309,186,438,67 -315,187,444,54 -326,182,436,56 -327,181,421,71 -341,179,415,65 -340,180,415,65 -336,187,420,57 -341,189,424,46 -341,184,417,58 -328,194,415,63 -336,190,413,61 -332,188,417,63 -328,188,417,67 -331,186,415,68 -338,180,409,73 -337,174,408,81 -339,170,414,77 -330,180,416,74 -352,181,402,65 -346,186,399,69 -340,190,393,77 -327,205,394,74 -325,201,404,70 -333,197,400,70 -328,193,410,69 -322,192,414,72 -326,186,414,74 -324,193,414,69 -327,194,417,62 -327,191,418,64 -332,183,426,59 -333,187,420,60 -343,192,410,55 -346,197,405,52 -344,196,405,55 -345,199,400,56 -337,201,400,62 -341,196,403,60 -343,200,396,61 -344,200,396,60 -335,203,396,66 -319,215,399,67 -314,216,397,73 -302,221,403,74 -303,216,396,85 -287,232,415,66 -294,225,408,73 -293,227,407,73 -284,233,409,74 -271,244,405,80 -269,244,410,77 -273,241,410,76 -279,230,411,80 -278,223,415,84 -279,210,415,96 -288,202,416,94 -288,203,415,94 -295,209,426,70 -299,207,426,68 -304,202,424,70 -303,204,429,64 -299,202,430,69 -321,195,423,61 -320,205,415,60 -330,204,408,58 -320,208,411,61 -313,216,410,61 -312,216,405,67 -314,209,403,74 -316,209,407,68 -321,207,405,67 -318,205,403,74 -312,207,419,62 -321,203,415,61 -314,203,423,60 -313,201,427,59 -306,202,430,62 -310,198,431,61 -316,197,427,60 -322,201,417,60 -342,197,401,60 -346,195,397,62 -347,197,397,59 -348,195,389,68 -340,199,391,70 -337,206,393,64 -340,207,396,57 -353,195,390,62 -361,185,388,66 -360,190,387,63 -361,191,383,65 -346,194,390,70 -341,193,387,79 -330,201,394,75 -321,201,398,80 -313,203,409,75 -311,205,408,76 -306,213,410,71 -319,197,409,75 -322,200,413,65 -323,193,408,76 -319,191,413,77 -320,192,416,72 -325,182,423,70 -322,186,424,68 -305,204,428,63 -306,196,433,65 -300,202,432,66 -301,200,426,73 -308,204,425,63 -314,206,417,63 -309,202,424,65 -318,205,416,61 -324,205,414,57 -327,207,411,55 -335,203,412,50 -337,206,400,57 -335,208,391,66 -327,214,388,71 -323,216,392,69 -323,220,390,67 -323,219,391,67 -329,217,387,67 -325,221,393,61 -327,219,390,64 -326,217,391,66 -323,214,392,71 -320,216,381,83 -313,224,388,75 -304,222,399,75 -300,218,403,79 -297,222,403,78 -293,213,402,92 -285,225,409,81 -286,221,411,82 -289,218,415,78 -284,220,430,66 -293,215,423,69 -303,208,423,66 -309,201,417,73 -302,204,425,69 -304,204,421,71 -299,204,426,71 -308,192,425,75 -310,201,425,64 -308,201,426,65 -305,195,433,67 -321,191,427,61 -324,191,432,53 -333,191,423,53 -327,191,427,55 -322,192,429,57 -323,195,425,57 -319,206,420,55 -328,203,413,56 -329,203,406,62 -334,200,402,64 -335,196,401,68 -331,207,406,56 -333,208,402,57 -330,209,402,59 -339,209,395,57 -346,197,390,67 -348,202,396,54 -351,196,391,62 -356,196,388,60 -347,200,391,62 -347,194,384,75 -342,198,393,67 -320,225,393,62 -321,209,403,67 -324,203,392,81 -323,203,402,72 -337,197,395,71 -330,200,398,72 -335,198,403,64 -330,199,403,68 -325,205,397,73 -318,212,400,70 -320,218,398,64 -306,231,396,67 -304,234,397,65 -310,225,393,72 -296,237,395,72 -290,233,397,80 -278,240,401,81 -267,237,408,88 -267,239,412,82 -267,241,415,77 -273,241,406,80 -260,245,413,82 -256,248,419,77 -262,248,429,61 -266,241,423,70 -264,242,426,68 -264,233,430,73 -273,220,421,86 -268,228,432,72 -270,229,429,72 -262,237,428,73 -260,231,427,82 -258,222,445,75 -265,214,442,79 -277,215,433,75 -269,219,443,69 -272,215,444,69 -282,204,442,72 -284,211,440,65 -308,201,418,73 -301,213,418,68 -302,209,418,71 -302,212,417,69 -298,210,419,73 -297,208,426,69 -308,197,425,70 -313,202,411,74 -308,202,424,66 -314,201,416,69 -317,194,422,67 -321,196,417,66 -320,191,426,63 -321,198,426,55 -324,202,417,57 -322,196,420,62 -331,191,418,60 -330,182,417,71 -343,178,417,62 -337,181,427,55 -337,182,426,55 -337,192,419,52 -348,187,417,48 -361,182,398,59 -360,181,396,63 -351,193,396,60 -350,190,394,66 -338,193,396,73 -336,194,400,70 -336,199,400,65 -333,205,400,62 -340,207,397,56 -334,202,400,64 -328,208,393,71 -322,213,388,77 -318,209,389,84 -309,209,401,81 -299,216,409,76 -300,214,408,78 -298,213,413,76 -306,195,417,82 -294,208,423,75 -292,209,425,74 -294,205,425,76 -315,200,413,72 -314,208,411,67 -326,205,402,67 -312,217,409,62 -319,210,401,70 -319,212,394,75 -321,218,403,58 -330,206,402,62 -321,203,409,67 -333,203,398,66 -333,203,402,62 -340,198,402,60 -328,205,400,67 -331,207,391,71 -342,216,379,63 -350,217,361,72 -336,223,370,71 -326,227,378,69 -324,228,383,65 -328,220,389,63 -329,220,389,62 -326,219,389,66 -325,216,385,74 -318,219,395,68 -320,212,400,68 -314,226,399,61 -316,221,393,70 -302,229,392,77 -296,234,395,75 -295,231,394,80 -282,242,405,71 -290,238,404,68 -303,227,399,71 -305,220,401,74 -318,213,395,74 -312,216,397,75 -306,218,397,79 -295,224,403,78 -295,221,409,75 -291,215,420,74 -308,208,408,76 -317,210,402,71 -297,225,411,67 -300,212,419,69 -306,210,411,73 -296,210,410,84 -304,210,404,82 -316,206,406,72 -308,212,410,70 -309,208,412,71 -303,220,413,64 -311,202,411,76 -316,202,406,76 -312,207,410,71 -307,209,417,67 -310,205,416,69 -307,214,418,61 -304,211,415,70 -310,210,407,73 -314,205,412,69 -320,200,411,69 -320,209,404,67 -315,211,406,68 -312,210,416,62 -312,198,409,81 -304,204,408,84 -300,204,420,76 -305,207,418,70 -306,202,417,75 -305,200,416,79 -292,209,423,76 -287,217,422,74 -283,223,434,60 -304,211,421,64 -311,208,413,68 -308,203,414,75 -316,206,408,70 -319,213,409,59 -314,212,410,64 -305,210,419,66 -300,202,417,81 -300,204,411,85 -296,211,418,75 -299,206,417,78 -305,210,406,79 -308,212,410,70 -301,218,417,64 -329,215,404,52 -329,204,402,65 -327,203,402,68 -316,209,405,70 -313,209,397,81 -311,217,408,64 -297,220,416,67 -302,217,403,78 -300,224,412,64 -296,220,410,74 -284,228,414,74 -286,227,409,78 -295,222,410,73 -283,231,415,71 -284,240,414,62 -274,241,411,74 -266,246,419,69 -262,241,425,72 -258,234,425,83 -271,228,427,74 -275,227,424,74 -279,222,427,72 -277,232,422,69 -292,227,405,76 -301,218,400,81 -299,211,408,82 -289,212,415,84 -291,198,417,94 -285,209,422,84 -290,204,423,83 -290,202,423,85 -287,206,426,81 -283,217,434,66 -283,212,432,73 -290,203,435,72 -288,199,434,79 -286,193,439,82 -277,199,444,80 -272,202,447,79 -276,198,449,77 -270,196,454,80 -277,200,444,79 -284,199,442,75 -280,203,446,71 -287,206,443,64 -289,199,443,69 -286,197,444,73 -279,207,441,73 -281,208,443,68 -280,216,427,77 -290,211,428,71 -290,213,427,70 -289,214,432,65 -300,200,431,69 -289,209,435,67 -299,208,431,62 -295,212,432,61 -287,218,434,61 -285,217,429,69 -280,223,437,60 -292,219,428,61 -302,211,415,72 -299,217,417,67 -297,217,421,65 -293,227,419,61 -300,222,407,71 -293,220,417,70 -295,218,419,68 -305,211,409,75 -297,221,409,73 -296,229,396,79 -290,221,402,87 -283,226,409,82 -271,228,412,89 -271,223,416,90 -268,223,431,78 -271,217,437,75 -263,219,438,80 -266,209,437,88 -256,214,445,85 -262,212,448,78 -270,203,458,69 -265,207,466,62 -272,202,462,64 -287,196,453,64 -291,188,453,68 -294,193,450,63 -300,206,443,51 -301,198,445,56 -305,191,442,62 -314,184,434,68 -321,179,432,68 -324,182,427,67 -333,171,424,72 -318,182,441,59 -318,185,438,59 -321,187,424,68 -320,183,431,66 -317,186,431,66 -323,183,428,66 -320,188,433,59 -337,188,426,49 -334,187,417,62 -333,190,413,64 -328,192,425,55 -332,185,425,58 -331,193,413,63 -330,196,407,67 -339,197,401,63 -341,195,403,61 -339,202,401,58 -332,199,408,61 -341,203,398,58 -330,211,402,57 -335,197,404,64 -337,205,392,66 -339,197,387,77 -322,218,389,71 -318,215,398,69 -324,202,398,76 -321,207,396,76 -320,210,397,73 -323,207,399,71 -322,199,402,77 -327,198,410,65 -320,197,416,67 -328,198,417,57 -331,190,414,65 -339,192,408,61 -336,197,410,57 -333,198,408,61 -328,191,402,79 -321,197,407,75 -304,203,418,75 -313,190,422,75 -304,194,431,71 -303,199,439,59 -308,196,438,58 -314,205,428,53 -317,199,430,54 -322,192,430,56 -327,193,424,56 -328,195,420,57 -321,206,414,59 -320,214,401,65 -315,212,406,67 -300,214,406,80 -299,218,417,66 -303,212,417,68 -299,215,414,72 -295,214,420,71 -295,216,420,69 -287,214,423,76 -276,212,437,75 -290,210,431,69 -297,211,429,63 -294,210,427,69 -308,207,423,62 -303,207,419,71 -293,209,418,80 -284,217,424,75 -298,205,424,73 -291,202,430,77 -290,210,435,65 -294,197,435,74 -298,193,446,63 -303,196,438,63 -300,198,439,63 -306,193,440,61 -309,194,436,61 -315,197,432,56 -318,195,426,61 -324,189,425,62 -336,187,412,65 -328,189,410,73 -328,197,410,65 -326,205,412,57 -324,197,419,60 -313,207,424,56 -313,199,417,71 -314,199,413,74 -305,210,415,70 -303,217,413,67 -307,216,407,70 -306,214,409,71 -305,216,412,67 -311,214,411,64 -316,198,414,72 -331,193,401,75 -315,209,414,62 -323,208,409,60 -323,197,406,74 -322,200,412,66 -313,213,410,64 -309,211,416,64 -314,208,411,67 -315,209,404,72 -313,218,404,65 -318,209,398,75 -321,211,392,76 -319,205,398,78 -313,207,398,82 -310,206,413,71 -308,211,415,66 -312,207,410,71 -305,204,424,67 -300,199,432,69 -308,200,424,68 -316,190,425,69 -325,186,414,75 -320,189,422,69 -318,191,423,68 -311,200,426,63 -317,186,428,69 -316,192,420,72 -308,199,424,69 -311,197,428,64 -309,200,432,59 -315,197,426,62 -321,190,429,60 -309,201,427,63 -309,200,429,62 -308,207,424,61 -308,204,424,64 -318,198,423,61 -321,194,420,65 -335,183,417,65 -332,187,416,65 -337,180,415,68 -337,183,414,66 -333,187,411,69 -337,185,411,67 -337,182,413,68 -334,188,409,69 -332,190,410,68 -325,191,416,68 -325,192,413,70 -336,179,413,72 -323,190,428,59 -328,188,423,61 -331,190,413,66 -328,190,419,63 -346,185,411,58 -348,194,404,54 -352,181,400,67 -344,190,401,65 -342,193,405,60 -338,185,408,69 -331,195,414,60 -331,192,407,70 -326,198,414,62 -323,199,401,77 -330,196,410,64 -331,197,412,60 -331,192,413,64 -320,203,406,71 -315,208,410,67 -327,205,405,63 -341,206,388,65 -330,212,390,68 -339,211,378,72 -342,206,380,72 -328,211,381,80 -322,216,390,72 -316,213,401,70 -308,221,401,70 -306,226,404,64 -315,222,402,61 -315,213,400,72 -316,202,406,76 -312,212,404,72 -309,208,405,78 -313,207,418,62 -300,206,422,72 -297,205,433,65 -286,222,436,56 -294,209,432,65 -301,200,439,60 -292,204,439,65 -302,199,437,62 -307,196,430,67 -301,196,435,68 -305,192,434,69 -302,200,435,63 -309,189,434,68 -319,194,426,61 -311,201,426,62 -316,198,418,68 -317,201,420,62 -327,193,412,68 -330,196,404,70 -324,199,416,61 -321,201,417,61 -326,194,410,70 -309,202,419,70 -311,200,411,78 -302,202,419,77 -308,199,425,68 -314,192,425,69 -320,196,423,61 -318,197,414,71 -315,195,420,70 -318,194,416,72 -318,194,416,72 -316,192,420,72 -329,195,409,67 -329,195,413,63 -344,190,408,58 -350,195,398,57 -349,198,394,59 -341,208,402,49 -343,194,401,62 -336,199,408,57 -342,197,406,55 -348,192,397,63 -342,201,399,58 -342,198,394,66 -341,201,389,69 -335,211,391,63 -334,209,394,63 -331,214,392,63 -336,210,396,58 -339,202,396,63 -344,192,390,74 -344,192,386,78 -344,184,393,79 -328,190,411,71 -329,181,409,81 -330,177,422,71 -324,181,424,71 -320,181,429,70 -321,177,431,71 -329,166,431,74 -337,163,431,69 -334,163,436,67 -329,169,437,65 -334,167,435,64 -337,171,427,65 -335,180,424,61 -337,186,422,55 -334,193,417,56 -335,196,412,57 -342,196,397,65 -345,189,395,71 -342,190,404,64 -332,195,406,67 -334,197,407,62 -344,193,408,55 -342,198,404,56 -335,198,409,58 -335,198,398,69 -339,198,402,61 -334,203,392,71 -323,208,401,68 -310,218,401,71 -306,213,411,70 -306,212,409,73 -295,214,418,73 -291,215,418,76 -286,215,429,70 -286,220,429,65 -289,216,431,64 -287,220,426,67 -276,218,429,77 -279,221,426,74 -288,209,426,77 -284,217,425,74 -280,221,430,69 -289,220,420,71 -299,218,420,63 -310,215,418,57 -307,209,407,77 -313,209,408,70 -321,199,408,72 -336,189,409,66 -331,186,413,70 -328,187,417,68 -320,197,414,69 -325,189,424,62 -326,192,423,59 -323,193,423,61 -334,187,413,66 -320,199,417,64 -323,194,419,64 -324,195,421,60 -311,200,421,68 -308,209,421,62 -308,193,422,77 -309,194,420,77 -304,199,419,78 -295,207,422,76 -292,216,424,68 -304,201,422,73 -307,203,423,67 -299,208,427,66 -306,204,414,76 -308,203,427,62 -314,198,422,66 -319,191,418,72 -326,194,407,73 -325,199,401,75 -333,202,399,66 -334,205,403,58 -332,210,404,54 -343,196,393,68 -331,207,385,77 -334,215,384,67 -321,220,402,57 -319,223,396,62 -325,223,393,59 -327,226,386,61 -328,224,381,67 -331,214,386,69 -323,220,388,69 -326,208,392,74 -326,215,395,64 -321,206,399,74 -316,208,403,73 -307,210,411,72 -303,205,413,79 -300,202,409,89 -288,219,418,75 -283,216,414,87 -275,224,424,77 -293,218,419,70 -292,211,432,65 -302,196,425,77 -304,196,428,72 -302,198,429,71 -302,196,431,71 -312,194,432,62 -315,202,422,61 -315,202,415,68 -315,204,408,73 -310,207,413,70 -315,200,413,72 -316,199,415,70 -313,201,415,71 -320,201,421,58 -325,206,410,59 -336,207,404,53 -343,204,400,53 -330,201,407,62 -338,200,404,58 -338,197,404,61 -346,195,398,61 -351,196,395,58 -344,198,392,66 -331,206,398,65 -326,196,402,76 -323,197,415,65 -321,203,417,59 -332,191,407,70 -327,193,413,67 -316,199,414,71 -313,201,420,66 -312,199,421,68 -312,206,413,69 -311,201,411,77 -298,201,423,78 -296,206,425,73 -292,206,426,76 -295,205,428,72 -311,189,425,75 -296,199,438,67 -306,191,438,65 -316,196,426,62 -320,196,428,56 -324,193,425,58 -326,181,426,67 -325,192,416,67 -325,193,414,68 -323,196,417,64 -326,198,416,60 -324,202,414,60 -337,201,401,61 -332,210,388,70 -330,213,390,67 -328,206,396,70 -325,201,405,69 -316,202,402,80 -313,209,407,71 -312,204,409,75 -307,209,410,74 -293,217,420,70 -306,220,417,57 -308,211,412,69 -306,203,415,76 -307,196,422,75 -305,200,424,71 -309,199,427,65 -325,189,421,65 -323,190,422,65 -320,202,420,58 -331,197,406,66 -330,204,407,59 -336,199,404,61 -332,197,408,63 -330,196,409,65 -325,194,404,77 -322,193,407,78 -317,200,410,73 -318,198,415,69 -320,196,416,68 -326,194,413,67 -320,202,407,71 -322,208,396,74 -313,209,398,80 -306,215,400,79 -311,216,402,71 -308,211,412,69 -307,208,406,79 -307,212,411,70 -305,214,410,71 -307,210,406,77 -304,215,407,74 -311,209,404,76 -309,205,408,78 -315,198,411,76 -324,185,416,75 -329,193,407,71 -328,199,407,66 -325,202,406,67 -327,199,399,75 -328,203,404,65 -328,205,398,69 -338,206,388,68 -337,204,390,69 -348,199,392,61 -356,200,391,53 -369,199,382,50 -370,204,370,56 -363,205,368,64 -366,194,382,58 -355,195,382,68 -348,202,382,68 -348,202,387,63 -359,199,379,63 -360,198,379,63 -359,196,380,65 -359,193,374,74 -357,199,379,65 -353,203,382,62 -345,210,380,65 -341,208,383,68 -339,207,388,66 -332,207,389,72 -338,197,397,68 -333,196,402,69 -320,204,414,62 -315,207,423,55 -319,208,420,53 -313,205,422,60 -309,202,423,66 -300,209,425,66 -307,204,425,64 -310,203,422,65 -311,200,428,61 -314,194,423,69 -319,193,417,71 -333,200,407,60 -340,197,411,52 -333,202,405,60 -339,198,400,63 -345,194,409,52 -355,186,408,51 -352,195,407,46 -359,195,400,46 -366,185,385,64 -366,186,387,61 -350,190,384,76 -337,200,386,77 -339,202,382,77 -341,200,390,69 -337,202,389,72 -335,197,383,85 -313,210,396,81 -303,210,405,82 -301,204,418,77 -297,212,410,81 -307,213,408,72 -305,216,397,82 -305,210,412,73 -303,210,421,66 -309,202,426,63 -298,203,436,63 -306,193,441,60 -320,192,429,59 -320,194,425,61 -327,199,422,52 -319,199,416,66 -318,198,411,73 -311,198,420,71 -307,198,428,67 -303,198,428,71 -300,202,428,70 -294,208,435,63 -296,207,436,61 -289,209,439,63 -290,213,440,57 -286,212,441,61 -300,209,432,59 -294,212,435,59 -293,197,438,72 -297,185,445,73 -302,182,448,68 -301,196,446,57 -307,195,441,57 -314,194,438,54 -321,193,432,54 -325,197,429,49 -331,202,418,49 -338,197,413,52 -351,197,404,48 -352,197,395,56 -350,200,392,58 -357,201,385,57 -344,207,395,54 -348,199,396,57 -339,195,405,61 -340,198,397,65 -332,203,393,72 -324,207,399,70 -325,207,399,69 -326,201,402,71 -329,209,398,64 -337,207,392,64 -325,211,398,66 -328,219,396,57 -329,219,390,62 -336,216,388,60 -329,220,391,60 -328,211,390,71 -342,198,383,77 -338,208,370,84 -332,217,371,80 -324,221,382,73 -326,219,370,85 -317,224,373,86 -311,226,381,82 -305,226,392,77 -316,210,388,86 -307,215,388,90 -295,215,393,97 -308,211,391,90 -300,213,406,81 -299,215,417,69 -313,208,415,64 -308,210,429,53 -310,210,428,52 -320,200,422,58 -321,202,424,53 -326,199,418,57 -330,198,414,58 -338,187,404,71 -331,191,415,63 -333,190,420,57 -331,191,427,51 -335,190,423,52 -348,191,414,47 -338,193,428,41 -350,188,417,45 -358,179,415,48 -360,172,411,57 -353,177,409,61 -343,196,405,56 -353,198,397,52 -353,197,396,54 -353,201,390,56 -359,193,383,65 -362,197,373,68 -356,206,369,69 -352,205,373,70 -337,214,377,72 -324,223,388,65 -326,219,381,74 -322,215,394,69 -323,207,398,72 -316,206,408,70 -329,195,405,71 -319,197,413,71 -310,210,415,65 -317,215,409,59 -325,223,403,49 -328,218,395,59 -334,211,395,60 -332,202,397,69 -323,209,394,74 -321,217,392,70 -323,218,388,71 -314,221,395,70 -304,229,405,62 -307,224,401,68 -304,223,400,73 -299,225,401,75 -288,230,395,87 -293,230,392,85 -284,236,400,80 -289,233,402,76 -292,234,396,78 -283,236,405,76 -277,233,413,77 -277,232,405,86 -273,237,414,76 -277,236,418,69 -281,225,422,72 -278,224,433,65 -279,219,437,65 -281,217,433,69 -271,222,443,64 -285,221,432,62 -288,216,436,60 -286,218,432,64 -297,207,425,71 -289,203,426,82 -304,187,426,83 -296,191,435,78 -297,191,443,69 -301,194,440,65 -303,191,435,71 -301,194,440,65 -310,186,441,63 -315,183,438,64 -329,177,446,48 -339,172,426,63 -331,185,421,63 -322,182,423,73 -324,178,430,68 -321,181,421,77 -321,187,426,66 -331,188,411,70 -328,192,402,78 -333,191,400,76 -334,188,402,76 -325,189,408,78 -312,198,416,74 -316,192,422,70 -314,189,430,67 -318,179,431,72 -333,179,421,67 -338,180,421,61 -336,190,418,56 -337,184,418,61 -347,182,408,63 -340,191,406,63 -349,193,401,57 -348,182,399,71 -344,190,398,68 -360,185,396,59 -342,194,399,65 -359,179,391,71 -354,184,402,60 -357,189,399,55 -358,192,397,53 -364,186,395,55 -379,179,377,65 -364,193,378,65 -373,186,371,70 -367,186,382,65 -363,186,389,62 -362,183,393,62 -353,192,393,62 -352,191,388,69 -344,206,394,56 -346,195,398,61 -343,198,403,56 -351,203,395,51 -345,202,398,55 -343,210,396,51 -350,205,393,52 -352,205,381,62 -348,199,383,70 -342,203,385,70 -346,204,376,74 -346,199,365,90 -336,195,382,87 -338,205,373,84 -340,203,371,86 -348,207,371,74 -346,205,378,71 -347,209,376,68 -347,207,376,70 -345,212,377,66 -342,216,385,57 -345,214,385,56 -342,212,386,60 -344,212,390,54 -337,218,384,61 -335,210,389,66 -345,212,386,57 -348,211,377,64 -359,206,366,69 -340,223,371,66 -342,226,363,69 -328,228,373,71 -327,225,376,72 -324,223,380,73 -325,213,383,79 -305,220,390,85 -309,228,385,78 -304,230,387,79 -297,228,395,80 -288,236,401,75 -281,227,409,83 -280,229,406,85 -286,228,409,77 -282,228,410,80 -285,221,404,90 -278,232,401,89 -272,234,408,86 -247,250,407,96 -234,256,416,94 -231,259,434,76 -234,257,429,80 -226,258,424,92 -223,258,437,82 -229,250,432,89 -229,242,434,95 -238,222,439,101 -234,217,450,99 -248,206,449,97 -243,203,446,108 -231,220,460,89 -236,213,474,77 -244,218,466,72 -243,219,465,73 -241,213,476,70 -249,212,463,76 -259,196,468,77 -263,196,457,84 -272,193,453,82 -267,197,457,79 -263,202,460,75 -271,203,458,68 -290,193,446,71 -292,200,439,69 -298,199,433,70 -305,195,435,65 -317,193,428,62 -316,186,427,71 -306,197,430,67 -308,184,436,72 -308,185,440,67 -311,189,443,57 -328,175,436,61 -329,172,438,61 -334,178,435,53 -333,184,435,48 -334,188,420,58 -333,194,408,65 -332,202,406,60 -337,202,409,52 -352,209,394,45 -362,205,387,46 -366,200,383,51 -361,200,378,61 -366,193,370,71 -359,192,372,77 -347,200,380,73 -347,197,375,81 -342,204,387,67 -340,202,389,69 -339,198,392,71 -344,194,388,74 -347,199,390,64 -349,201,391,59 -353,201,380,66 -352,206,380,62 -335,215,383,67 -344,218,370,68 -343,207,368,82 -336,202,371,91 -334,209,380,77 -329,220,384,67 -326,229,384,61 -333,230,377,60 -339,222,373,66 -338,217,384,61 -330,218,377,75 -324,213,380,83 -312,216,393,79 -313,205,402,80 -324,204,399,73 -308,218,401,73 -312,226,393,69 -320,222,394,64 -303,229,398,70 -308,225,396,71 -299,229,404,68 -312,226,392,70 -311,222,405,62 -323,215,404,58 -324,215,403,58 -317,215,410,58 -311,208,403,78 -297,214,404,85 -293,221,410,76 -284,221,422,73 -285,213,425,77 -282,215,426,77 -298,210,418,74 -303,211,415,71 -291,216,418,75 -284,220,418,78 -285,223,414,78 -282,224,411,83 -285,225,410,80 -286,219,416,79 -286,208,430,76 -281,210,436,73 -288,208,433,71 -293,204,427,76 -291,203,434,72 -281,204,443,72 -291,206,444,59 -296,207,441,56 -291,204,444,61 -291,205,435,69 -294,205,434,67 -293,199,436,72 -296,203,434,67 -303,204,427,66 -307,205,426,62 -290,211,430,69 -296,210,426,68 -289,217,426,68 -294,209,424,73 -299,208,419,74 -286,215,421,78 -295,206,424,75 -290,212,430,68 -297,212,426,65 -289,210,434,67 -303,196,435,66 -313,187,430,70 -312,191,437,60 -325,194,432,49 -324,193,432,51 -325,187,428,60 -327,184,432,57 -340,180,426,54 -340,175,430,55 -345,174,414,67 -350,175,409,66 -355,172,406,67 -366,179,400,55 -371,177,399,53 -376,169,395,60 -390,161,389,60 -387,168,385,60 -379,174,391,56 -383,169,382,66 -382,165,387,66 -387,162,390,61 -388,164,388,60 -380,169,393,58 -376,179,388,57 -375,190,385,50 -377,185,385,53 -373,190,382,55 -380,186,386,48 -380,184,384,52 -379,192,375,54 -381,183,374,62 -372,191,379,58 -372,193,379,56 -380,193,369,58 -392,189,355,64 -385,196,353,66 -376,199,360,65 -368,212,360,60 -367,205,361,67 -361,217,360,62 -354,222,366,58 -355,217,361,67 -339,225,362,74 -332,227,364,77 -321,233,372,74 -324,234,377,65 -319,234,377,70 -312,235,394,59 -319,231,386,64 -312,237,381,70 -314,234,383,69 -310,235,386,69 -310,236,385,69 -304,238,386,72 -308,232,388,72 -299,225,396,80 -314,218,392,76 -313,217,391,79 -315,224,383,78 -316,215,392,77 -295,228,396,81 -290,222,408,80 -293,219,414,74 -285,218,421,76 -278,230,428,64 -283,232,410,75 -273,239,415,73 -265,232,420,83 -268,233,421,78 -254,234,443,69 -258,228,454,60 -259,225,459,57 -266,212,455,67 -267,205,456,72 -266,216,457,61 -279,208,448,65 -285,214,433,68 -281,205,438,76 -291,207,434,68 -299,202,432,67 -291,206,444,59 -282,205,448,65 -289,193,444,74 -294,190,440,76 -293,185,454,68 -288,188,452,72 -287,198,448,67 -279,194,446,81 -275,206,453,66 -289,200,449,62 -291,199,448,62 -291,200,449,60 -292,193,456,59 -299,185,452,64 -300,190,442,68 -291,199,444,66 -289,202,449,60 -287,202,445,66 -296,195,441,68 -309,193,430,68 -303,197,433,67 -301,197,432,70 -296,203,439,62 -298,213,426,63 -293,218,418,71 -301,218,404,77 -308,213,400,79 -309,218,397,76 -311,209,391,89 -307,217,401,75 -308,216,401,75 -303,226,406,65 -294,231,408,67 -285,224,416,75 -286,219,425,70 -283,220,426,71 -288,217,426,69 -289,206,434,71 -291,201,438,70 -307,199,436,58 -317,197,422,64 -316,192,420,72 -319,194,417,70 -317,202,416,65 -320,198,415,67 -321,199,408,72 -306,206,420,68 -303,206,426,65 -299,203,435,63 -301,205,429,65 -307,204,425,64 -316,208,415,61 -329,192,412,67 -329,188,412,71 -331,192,409,68 -336,189,403,72 -338,190,407,65 -338,199,398,65 -338,197,400,65 -334,193,404,69 -325,197,417,61 -331,193,416,60 -329,193,412,66 -332,188,415,65 -341,182,403,74 -337,189,401,73 -326,200,402,72 -315,204,407,74 -313,210,410,67 -303,206,417,74 -304,205,413,78 -304,210,414,72 -306,213,410,71 -313,211,404,72 -309,208,416,67 -310,218,407,65 -305,216,412,67 -295,217,418,70 -295,221,413,71 -296,211,414,79 -298,207,416,79 -304,202,415,79 -313,195,412,80 -305,201,413,81 -310,207,417,66 -308,203,414,75 -315,204,418,63 -317,203,423,57 -321,205,411,63 -309,204,413,74 -313,202,407,78 -323,206,399,72 -322,212,401,65 -322,207,403,68 -318,200,410,72 -306,200,413,81 -298,208,415,79 -288,222,415,75 -287,218,420,75 -289,229,413,69 -292,220,417,71 -301,205,418,76 -288,216,417,79 -287,224,426,63 -282,227,430,61 -289,224,426,61 -297,227,414,62 -314,212,405,69 -318,209,405,68 -325,204,409,62 -316,206,411,67 -314,210,414,62 -303,214,420,63 -304,203,420,73 -318,202,404,76 -314,201,412,73 -308,203,410,79 -308,207,411,74 -300,202,419,79 -292,209,427,72 -291,218,415,76 -301,222,407,70 -298,225,415,62 -305,212,412,71 -305,212,416,67 -305,214,415,66 -313,205,412,70 -317,210,407,66 -313,214,403,70 -317,208,392,83 -321,211,397,71 -309,215,397,79 -307,225,387,81 -305,222,403,70 -295,225,406,74 -294,222,402,82 -280,234,401,85 -281,246,399,74 -276,250,402,72 -283,245,400,72 -283,246,404,67 -284,236,407,73 -266,243,416,75 -277,230,423,70 -280,230,426,64 -294,227,419,60 -300,214,418,68 -303,212,422,63 -298,214,422,66 -297,214,418,71 -293,218,412,77 -295,213,415,77 -295,215,422,68 -296,220,414,70 -298,220,413,69 -307,219,414,60 -317,214,402,67 -311,211,401,77 -316,214,404,66 -317,206,401,76 -315,214,400,71 -321,214,399,66 -310,208,413,69 -313,215,400,72 -312,211,399,78 -309,218,389,84 -297,223,398,82 -293,232,401,74 -296,233,394,77 -285,238,401,76 -285,232,402,81 -279,226,414,81 -281,228,405,86 -282,235,405,78 -283,243,407,67 -297,230,400,73 -296,224,398,82 -288,230,401,81 -283,223,402,92 -273,223,404,100 -258,236,409,97 -246,241,423,90 -259,235,425,81 -256,232,434,78 -259,231,425,85 -258,240,428,74 -260,226,443,71 -267,219,435,79 -256,225,447,72 -254,225,454,67 -260,226,454,60 -268,223,456,53 -267,216,458,59 -267,218,460,55 -262,220,454,64 -264,220,456,60 -254,224,457,65 -249,222,459,70 -249,224,455,72 -262,222,449,67 -282,210,436,72 -279,211,434,76 -288,207,427,78 -296,206,423,75 -301,196,426,77 -296,198,427,79 -294,207,426,73 -289,215,429,67 -294,220,414,72 -287,219,416,78 -286,215,422,77 -288,223,418,71 -295,218,416,71 -295,210,423,72 -311,206,414,69 -301,211,410,78 -295,210,414,81 -294,223,417,66 -296,217,413,74 -308,214,406,72 -308,215,401,76 -301,212,403,84 -297,211,413,79 -305,214,412,69 -313,213,410,64 -318,207,412,63 -317,210,411,62 -315,217,403,65 -314,219,406,61 -316,221,399,64 -329,220,391,60 -330,225,386,59 -320,228,387,65 -318,226,385,71 -317,223,385,75 -320,224,397,59 -334,216,380,70 -338,219,383,60 -328,220,380,72 -319,229,381,71 -318,229,383,70 -306,225,394,75 -310,226,392,72 -293,234,403,70 -303,230,393,74 -311,234,376,79 -309,234,373,84 -306,234,380,80 -294,229,392,85 -299,232,391,78 -301,229,397,73 -303,219,403,75 -299,216,403,82 -306,220,401,73 -308,227,398,67 -294,232,401,73 -303,230,396,71 -305,221,397,77 -309,218,403,70 -306,219,397,78 -304,212,403,81 -306,213,413,68 -316,223,410,51 -324,205,403,68 -320,211,397,72 -327,208,384,81 -322,211,398,69 -320,219,401,60 -320,209,401,70 -313,208,412,67 -315,208,413,64 -314,214,410,62 -317,210,409,64 -314,217,400,69 -316,215,398,71 -306,218,400,76 -305,228,399,68 -308,222,398,72 -311,220,393,76 -315,216,396,73 -310,224,391,75 -297,228,394,81 -295,234,398,73 -298,220,401,81 -297,214,407,82 -291,221,418,70 -302,224,404,70 -301,218,408,73 -296,222,416,66 -313,213,401,73 -315,201,410,74 -318,196,408,78 -316,204,407,73 -321,201,408,70 -313,202,411,74 -310,201,410,79 -301,216,417,66 -296,227,411,66 -300,222,415,63 -298,221,415,66 -312,213,403,72 -299,228,397,76 -302,231,390,77 -300,235,395,70 -292,243,396,69 -286,247,397,70 -293,244,402,61 -288,251,393,68 -283,249,386,82 -279,244,399,78 -270,245,410,75 -261,246,415,78 -261,245,420,74 -264,230,420,86 -263,233,436,68 -275,224,427,74 -274,224,433,69 -276,219,431,74 -286,210,434,70 -291,213,436,60 -297,210,427,66 -301,213,420,66 -307,206,421,66 -309,204,423,64 -313,201,412,74 -311,208,417,64 -307,212,415,66 -325,204,411,60 -321,208,412,59 -317,200,410,73 -325,198,406,71 -311,214,405,70 -308,215,401,76 -311,215,395,79 -310,214,394,82 -307,216,398,79 -308,214,401,77 -303,219,412,66 -299,216,418,67 -293,207,427,73 -290,196,430,84 -295,200,428,77 -290,199,438,73 -279,204,441,76 -279,208,446,67 -286,204,450,60 -294,194,443,69 -304,192,432,72 -301,193,436,70 -315,183,424,78 -324,178,435,63 -328,175,440,57 -337,170,439,54 -346,167,432,55 -355,168,414,63 -352,170,413,65 -359,175,414,52 -360,171,414,55 -357,165,414,64 -359,170,410,61 -357,176,415,52 -365,178,410,47 -368,180,404,48 -379,178,386,57 -366,182,398,54 -382,176,384,58 -388,176,373,63 -371,189,373,67 -367,190,378,65 -372,198,371,59 -365,207,372,56 -367,213,369,51 -371,214,367,48 -364,213,365,58 -351,211,371,67 -353,203,377,67 -348,212,371,69 -337,210,383,70 -330,209,399,62 -329,210,385,76 -328,206,380,86 -318,210,393,79 -304,208,393,95 -304,215,400,81 -298,223,411,68 -304,219,407,70 -305,216,409,70 -306,214,414,66 -309,214,419,58 -305,219,420,56 -317,213,413,57 -332,204,394,70 -330,202,394,74 -326,203,399,72 -322,194,407,77 -318,202,398,82 -298,224,415,63 -301,214,418,67 -302,217,409,72 -295,219,405,81 -288,227,407,78 -276,233,418,73 -272,224,428,76 -269,238,426,67 -270,237,423,70 -275,229,415,81 -265,236,424,75 -263,237,419,81 -254,237,425,84 -250,234,431,85 -245,232,435,88 -236,236,450,78 -245,235,447,73 -244,234,446,76 -242,239,443,76 -238,236,444,82 -239,239,445,77 -246,231,445,78 -252,223,447,78 -241,227,447,85 -238,224,465,73 -234,223,465,78 -235,219,472,74 -243,219,468,70 -248,220,471,61 -263,210,457,70 -276,200,455,69 -296,195,453,56 -301,192,450,57 -301,187,447,65 -304,192,441,63 -310,187,442,61 -307,190,439,64 -307,182,444,67 -311,189,442,58 -310,192,437,61 -305,202,445,48 -317,202,436,45 -330,193,430,47 -326,199,428,47 -323,198,421,58 -334,184,417,65 -339,182,413,66 -346,189,409,56 -337,200,403,60 -335,201,400,64 -337,201,395,67 -329,199,403,69 -322,207,410,61 -345,188,399,68 -333,196,412,59 -328,202,418,52 -333,202,414,51 -328,200,416,56 -333,196,417,54 -324,196,419,61 -326,195,411,68 -313,206,408,73 -306,217,411,66 -298,217,413,72 -305,213,414,68 -309,207,403,81 -291,215,409,85 -304,207,403,86 -309,201,407,83 -305,208,404,83 -316,213,399,72 -304,222,404,70 -304,215,399,82 -309,221,396,74 -301,224,406,69 -308,217,398,77 -319,214,401,66 -327,213,405,55 -323,212,405,60 -312,207,414,67 -309,208,416,67 -314,195,418,73 -320,200,409,71 -321,190,424,65 -327,186,416,71 -322,191,413,74 -324,196,416,64 -331,196,407,66 -335,199,407,59 -336,193,411,60 -339,190,405,66 -342,197,398,63 -332,195,397,76 -324,209,407,60 -318,205,401,76 -327,205,403,65 -324,200,405,71 -329,199,406,66 -320,195,407,78 -323,200,403,74 -320,199,415,66 -325,202,409,64 -316,210,407,67 -309,209,417,65 -318,193,417,72 -322,190,419,69 -316,197,421,66 -314,200,426,60 -316,202,425,57 -306,203,433,58 -300,203,434,63 -307,190,446,57 -317,192,431,60 -314,201,424,61 -303,209,417,71 -298,211,412,79 -305,205,408,82 -297,212,407,84 -295,207,415,83 -290,212,425,73 -290,217,412,81 -284,223,415,78 -296,222,407,75 -288,228,408,76 -284,225,421,70 -280,222,433,65 -278,216,439,67 -290,204,427,79 -292,199,425,84 -296,208,431,65 -297,207,429,67 -306,199,432,63 -297,207,430,66 -298,215,427,60 -302,218,419,61 -310,218,407,65 -311,211,403,75 -309,208,410,73 -297,217,416,70 -297,210,431,62 -310,196,428,66 -310,200,433,57 -318,192,420,70 -314,198,425,63 -318,198,419,65 -312,197,428,63 -304,201,430,65 -315,204,419,62 -322,192,412,74 -326,194,409,71 -329,180,418,73 -329,182,412,77 -321,188,413,78 -326,195,417,62 -330,190,420,60 -331,187,422,60 -328,190,419,63 -319,197,418,66 -334,199,408,59 -321,204,407,68 -318,201,405,76 -311,206,417,66 -312,203,418,67 -308,211,418,63 -321,209,410,60 -313,213,413,61 -317,216,402,65 -319,207,403,71 -313,202,407,78 -314,200,407,79 -309,197,417,77 -296,209,425,70 -289,205,432,74 -288,201,439,72 -283,207,437,73 -281,207,445,67 -283,211,440,66 -281,210,444,65 -282,214,440,64 -285,207,434,74 -286,209,423,82 -289,216,427,68 -297,216,419,68 -300,209,420,71 -314,204,419,63 -314,202,430,54 -322,188,425,65 -321,187,430,62 -330,186,429,55 -329,180,419,72 -326,186,426,62 -332,183,424,61 -333,188,423,56 -334,185,415,66 -338,195,405,62 -349,189,399,63 -330,196,407,67 -339,198,399,64 -342,200,395,63 -349,202,392,57 -355,197,384,64 -341,202,392,65 -329,208,388,75 -324,214,387,75 -326,210,391,73 -321,204,400,75 -316,200,407,77 -307,207,409,77 -291,212,425,72 -300,202,426,72 -306,203,416,75 -303,202,421,74 -303,199,420,78 -306,201,422,71 -298,208,427,67 -290,213,429,68 -301,212,413,74 -291,213,413,83 -279,218,423,80 -275,218,427,80 -283,216,423,78 -289,214,438,59 -283,211,444,62 -288,210,433,69 -296,211,431,62 -295,213,435,57 -302,209,427,62 -306,202,417,75 -303,203,417,77 -302,208,420,70 -313,206,416,65 -310,205,417,68 -304,213,421,62 -306,208,421,65 -309,209,417,65 -310,206,415,69 -303,205,420,72 -303,203,425,69 -310,207,411,72 -309,207,415,69 -300,207,417,76 -292,207,432,69 -290,211,436,63 -293,214,430,63 -311,202,424,63 -307,209,421,63 -312,207,418,63 -304,212,418,66 -312,211,411,66 -309,219,412,60 -312,226,397,65 -298,231,401,70 -286,243,401,70 -286,243,398,73 -301,238,380,81 -299,235,387,79 -294,237,386,83 -285,231,403,81 -287,229,403,81 -284,237,403,76 -273,232,408,87 -276,217,412,95 -270,221,423,86 -284,221,421,74 -278,216,432,74 -285,210,426,79 -282,215,425,78 -281,203,431,85 -284,203,427,86 -287,211,419,83 -280,211,427,82 -289,206,427,78 -279,221,430,70 -291,219,423,67 -290,216,417,77 -304,206,416,74 -302,213,412,73 -296,220,412,72 -295,215,413,77 -290,207,418,85 -289,211,432,68 -295,211,432,62 -296,207,423,74 -295,209,430,66 -296,213,423,68 -291,219,429,61 -292,221,423,64 -299,218,417,66 -298,222,416,64 -292,229,408,71 -290,229,408,73 -280,226,414,80 -281,220,417,82 -286,211,423,80 -285,208,427,80 -286,209,422,83 -282,212,429,77 -281,217,430,72 -277,219,429,75 -272,227,428,73 -267,234,426,73 -263,227,437,73 -258,229,438,75 -257,232,432,79 -263,224,435,78 -262,228,445,65 -255,228,441,76 -257,233,444,66 -265,226,439,70 -275,211,437,77 -277,215,447,61 -278,218,445,59 -286,206,445,63 -288,201,444,67 -289,194,444,73 -291,197,451,61 -285,203,456,56 -293,206,452,49 -306,195,438,61 -318,195,429,58 -306,193,430,71 -305,203,431,61 -316,193,428,63 -311,195,428,66 -317,193,423,67 -313,199,429,59 -314,196,427,63 -309,202,423,66 -302,190,435,73 -302,189,433,76 -292,195,438,75 -301,187,440,72 -305,193,433,69 -308,186,437,69 -311,200,420,69 -313,199,416,72 -317,191,417,75 -320,193,421,66 -311,198,427,64 -315,194,423,68 -332,195,410,63 -315,205,420,60 -328,193,404,75 -324,200,404,72 -313,215,405,67 -312,214,406,68 -311,216,403,70 -307,221,402,70 -302,220,400,78 -310,214,390,86 -304,215,397,84 -297,218,398,87 -292,211,408,89 -292,219,414,75 -295,214,409,82 -297,208,413,82 -301,206,426,67 -312,201,417,70 -321,196,408,75 -315,204,412,69 -320,197,422,61 -325,190,415,70 -325,194,423,58 -332,192,411,65 -326,202,417,55 -336,198,408,58 -349,190,402,59 -363,187,391,59 -363,182,385,70 -355,193,390,62 -346,203,395,56 -344,203,392,61 -345,205,391,59 -332,209,398,61 -324,207,409,60 -322,209,404,65 -313,220,409,58 -314,209,405,72 -317,208,395,80 -311,212,400,77 -316,207,404,73 -327,203,397,73 -325,209,395,71 -335,195,396,74 -330,203,394,73 -329,201,391,79 -323,214,395,68 -316,215,401,68 -300,221,410,69 -301,216,422,61 -310,208,412,70 -300,215,421,64 -286,220,426,68 -275,221,430,74 -277,218,427,78 -281,218,426,75 -280,211,438,71 -279,205,447,69 -279,204,454,63 -279,200,458,63 -276,200,461,63 -287,201,457,55 -291,195,449,65 -309,181,435,75 -315,183,436,66 -322,179,433,66 -322,190,426,62 -323,188,422,67 -318,201,413,68 -299,215,412,74 -307,218,406,69 -294,228,403,75 -297,218,404,81 -295,219,399,87 -296,213,419,72 -307,212,416,65 -302,202,417,79 -313,191,413,83 -306,208,416,70 -317,204,403,76 -312,202,412,74 -327,201,399,73 -328,197,395,80 -323,202,401,74 -324,197,408,71 -333,190,412,65 -341,185,410,64 -348,190,411,51 -352,181,414,53 -357,180,416,47 -360,181,408,51 -363,186,402,49 -368,180,394,58 -367,183,395,55 -368,175,395,62 -372,175,396,57 -374,173,400,53 -375,180,391,54 -381,175,388,56 -377,176,389,58 -378,175,382,65 -357,188,387,68 -365,183,386,66 -354,192,393,61 -346,199,392,63 -341,199,394,66 -348,199,388,65 -347,199,383,71 -339,198,394,69 -338,198,406,58 -345,188,397,70 -338,205,399,58 -340,202,401,57 -344,208,393,55 -349,209,390,52 -347,208,383,62 -357,200,377,66 -360,206,376,58 -347,204,386,63 -352,198,383,67 -352,199,387,62 -342,197,391,70 -341,198,382,79 -346,194,382,78 -345,201,389,65 -342,197,392,69 -333,200,390,77 -330,199,399,72 -310,201,411,78 -308,199,418,75 -309,200,420,71 -307,196,426,71 -313,192,428,67 -311,187,429,73 -305,191,431,73 -309,186,434,71 -308,196,430,66 -313,188,430,69 -318,186,424,72 -321,185,426,68 -332,180,419,69 -343,178,410,69 -343,185,410,62 -346,188,404,62 -349,183,404,64 -353,183,408,56 -355,179,401,65 -344,185,404,67 -343,179,395,83 -337,193,397,73 -335,198,400,67 -331,205,398,66 -327,207,398,68 -329,219,389,63 -339,217,381,63 -322,231,389,58 -316,229,389,66 -322,221,380,77 -327,212,388,73 -318,228,392,62 -315,224,393,68 -320,219,392,69 -324,216,391,69 -327,207,396,70 -319,214,392,75 -307,223,405,65 -304,226,405,65 -312,216,404,68 -308,218,396,78 -313,212,398,77 -309,213,396,82 -303,208,404,85 -302,204,402,92 -303,206,401,90 -299,212,393,96 -298,215,399,88 -294,215,414,77 -300,205,417,78 -306,200,424,70 -307,203,423,67 -320,202,413,65 -327,189,411,73 -334,181,418,67 -340,177,415,68 -339,182,413,66 -334,194,413,59 -334,192,412,62 -336,200,410,54 -342,196,408,54 -352,202,395,51 -350,201,394,55 -351,194,392,63 -349,194,386,71 -336,204,390,70 -336,211,401,52 -323,211,403,63 -332,205,398,65 -325,207,406,62 -324,197,411,68 -313,202,415,70 -313,206,416,65 -313,197,426,64 -319,202,418,61 -326,196,421,57 -328,202,412,58 -324,208,416,52 -323,203,420,54 -319,198,423,60 -321,192,427,60 -324,190,423,63 -336,188,410,66 -332,196,405,67 -328,212,401,59 -328,209,399,64 -340,197,398,65 -343,194,388,75 -337,197,388,78 -335,198,394,73 -335,196,402,67 -334,200,395,71 -334,209,389,68 -330,205,386,79 -312,224,387,77 -312,215,388,85 -306,220,398,76 -300,231,401,68 -307,231,401,61 -305,227,400,68 -315,223,404,58 -316,222,396,66 -319,229,398,54 -324,224,400,52 -323,210,400,67 -315,208,409,68 -313,212,409,66 -313,205,411,71 -316,210,410,64 -318,213,404,65 -324,204,404,68 -333,197,406,64 -344,203,398,55 -360,193,391,56 -359,199,392,50 -357,187,389,67 -345,200,384,71 -332,211,380,77 -317,230,386,67 -318,224,392,66 -316,224,387,73 -319,213,391,77 -320,206,382,92 -317,209,389,85 -309,220,395,76 -304,219,399,78 -311,220,393,76 -304,223,395,78 -302,220,402,76 -301,226,406,67 -303,224,415,58 -314,208,411,67 -307,210,414,69 -306,209,420,65 -304,215,423,58 -303,217,419,61 -300,214,422,64 -294,210,437,59 -299,208,431,62 -307,201,428,64 -308,201,430,61 -313,200,427,60 -317,203,431,49 -326,186,435,53 -328,191,430,51 -332,189,423,56 -323,209,410,58 -317,208,408,67 -311,208,413,68 -309,219,405,67 -318,216,401,65 -318,210,404,68 -317,211,406,66 -306,220,415,59 -306,217,413,64 -316,210,415,59 -322,204,408,66 -313,214,401,72 -306,215,401,78 -300,225,408,67 -301,219,406,74 -303,222,404,71 -300,216,408,76 -295,220,413,72 -289,230,412,69 -294,229,401,76 -288,231,401,80 -286,230,399,85 -280,230,416,74 -279,239,413,69 -279,225,421,75 -273,233,415,79 -274,232,418,76 -260,245,419,76 -255,236,421,88 -263,231,433,73 -258,223,438,81 -264,220,442,74 -276,207,435,82 -276,220,437,67 -281,213,428,78 -287,212,427,74 -296,211,423,70 -290,206,420,84 -298,217,407,78 -299,216,414,71 -301,212,412,75 -304,202,413,81 -304,205,413,78 -295,199,418,88 -294,201,422,83 -295,199,429,77 -289,197,431,83 -287,197,436,80 -291,199,438,72 -287,199,444,70 -303,196,438,63 -302,195,430,73 -307,197,430,66 -313,197,422,68 -309,198,430,63 -312,196,424,68 -313,193,425,69 -318,189,423,70 -326,185,423,66 -331,185,415,69 -334,194,404,68 -335,188,404,73 -326,195,405,74 -328,199,407,66 -328,200,405,67 -324,210,405,61 -330,211,398,61 -325,214,403,58 -328,212,395,65 -330,210,396,64 -326,207,406,61 -331,215,392,62 -332,208,386,74 -329,205,396,70 -326,203,401,70 -333,201,400,66 -338,196,396,70 -342,194,399,65 -337,190,401,72 -327,194,410,69 -324,195,412,69 -328,197,407,68 -323,199,401,77 -314,206,408,72 -315,200,415,70 -311,201,411,77 -312,205,411,72 -311,206,405,78 -312,200,407,81 -311,204,397,88 -310,202,404,84 -300,203,408,89 -290,213,421,76 -289,209,425,77 -278,221,434,67 -290,212,440,58 -295,206,440,59 -294,194,446,66 -300,189,453,58 -314,178,446,62 -321,183,436,60 -309,193,436,62 -305,189,439,67 -301,195,435,69 -301,197,430,72 -290,197,441,72 -283,200,439,78 -282,204,438,76 -275,200,442,83 -276,195,445,84 -270,205,456,69 -281,194,456,69 -292,193,446,69 -289,189,447,75 -283,205,460,52 -306,195,442,57 -299,199,447,55 -309,201,432,58 -324,194,420,62 -329,194,412,65 -329,195,416,60 -332,204,406,58 -329,205,407,59 -319,205,411,65 -324,202,411,63 -333,196,410,61 -333,193,411,63 -349,194,393,64 -345,195,393,67 -327,204,399,70 -330,200,402,68 -333,200,401,66 -332,198,403,67 -335,188,404,73 -337,186,411,66 -338,184,414,64 -348,183,409,60 -348,188,408,56 -341,190,411,58 -342,187,405,66 -341,182,410,67 -350,183,408,59 -350,186,411,53 -360,186,408,46 -364,184,403,49 -359,182,402,57 -355,192,400,53 -344,196,403,57 -345,194,405,56 -347,186,413,54 -348,188,399,65 -338,183,401,78 -336,190,412,62 -331,195,408,66 -322,193,420,65 -319,206,414,61 -320,196,415,69 -329,182,415,74 -318,184,417,81 -323,195,420,62 -322,191,421,66 -322,192,413,73 -312,203,413,72 -311,203,415,71 -312,199,419,70 -313,194,432,61 -320,196,429,55 -318,205,421,56 -309,205,425,61 -315,193,422,70 -318,190,429,63 -321,193,426,60 -318,198,429,55 -321,201,420,58 -329,198,407,66 -322,204,404,70 -326,208,401,65 -323,204,398,75 -322,199,397,82 -319,207,392,82 -315,210,397,78 -323,212,388,77 -310,216,396,78 -308,217,398,77 -320,220,389,71 -316,216,390,78 -316,221,394,69 -305,229,397,69 -307,225,396,72 -305,223,391,81 -307,216,392,85 -303,219,397,81 -304,218,407,71 -301,219,407,73 -295,220,409,76 -300,210,417,73 -310,200,403,87 -307,208,402,83 -308,206,411,75 -314,198,405,83 -310,201,414,75 -300,196,417,87 -313,195,409,83 -317,194,416,73 -313,191,414,82 -317,196,407,80 -323,190,400,87 -323,200,393,84 -318,208,398,76 -318,208,403,71 -311,206,417,66 -310,210,414,66 -313,209,421,57 -316,210,419,55 -323,211,413,53 -316,209,411,64 -314,209,416,61 -311,214,409,66 -306,219,406,69 -299,222,404,75 -297,214,413,76 -286,227,408,79 -284,225,409,82 -289,219,415,77 -287,219,420,74 -277,230,427,66 -270,228,429,73 -266,229,427,78 -275,215,427,83 -282,207,434,77 -289,205,430,76 -299,201,425,75 -301,194,429,76 -295,209,426,70 -298,204,436,62 -303,201,426,70 -290,209,425,76 -301,204,418,77 -290,206,423,81 -276,216,440,68 -293,206,425,76 -291,215,425,69 -290,220,421,69 -287,221,429,63 -284,214,436,66 -281,220,439,60 -294,216,431,59 -292,226,426,56 -302,217,413,68 -300,219,415,66 -311,212,401,76 -307,220,395,78 -283,238,404,75 -280,241,408,71 -271,245,414,70 -265,254,411,70 -268,236,420,76 -271,233,409,87 -259,238,421,82 -253,234,432,81 -254,231,437,78 -247,226,446,81 -251,225,443,81 -247,223,450,80 -254,219,438,89 -261,218,443,78 -264,217,451,68 -268,221,443,68 -271,213,440,76 -268,222,440,70 -277,210,442,71 -287,211,432,70 -285,202,444,69 -286,194,439,81 -282,195,442,81 -279,197,438,86 -280,200,435,85 -289,196,436,79 -298,199,440,63 -295,195,444,66 -306,185,448,61 -313,179,437,71 -321,168,434,77 -323,171,437,69 -320,182,441,57 -325,177,435,63 -335,172,435,58 -336,171,433,60 -334,174,431,61 -337,170,428,65 -352,169,422,57 -353,173,412,62 -353,176,416,55 -350,180,412,58 -341,183,407,69 -350,181,407,62 -345,185,407,63 -354,177,401,68 -351,191,393,65 -344,201,389,66 -351,189,394,66 -363,189,393,55 -361,188,403,48 -371,186,393,50 -371,178,391,60 -370,181,386,63 -369,181,386,64 -368,185,391,56 -364,186,390,60 -358,200,384,58 -355,200,377,68 -346,205,384,65 -331,208,397,64 -332,209,395,64 -346,208,387,59 -344,208,383,65 -354,197,383,66 -352,197,390,61 -348,197,383,72 -339,206,386,69 -347,204,390,59 -347,198,385,70 -343,202,394,61 -347,208,384,61 -343,211,382,64 -341,212,384,63 -334,210,388,68 -327,214,395,64 -333,213,389,65 -324,219,394,63 -324,219,389,68 -312,223,393,72 -318,217,384,81 -314,215,394,77 -309,219,391,81 -303,218,401,78 -309,214,395,82 -304,217,402,77 -299,213,408,80 -288,212,419,81 -285,208,427,80 -293,194,433,80 -292,202,438,68 -300,196,437,67 -295,201,442,62 -293,197,447,63 -295,197,443,65 -308,195,437,60 -306,194,434,66 -309,196,439,56 -328,193,424,55 -332,193,419,56 -330,194,417,59 -327,195,413,65 -321,197,416,66 -322,190,418,70 -321,187,413,79 -316,193,416,75 -300,210,425,65 -302,200,430,68 -303,202,423,72 -307,199,422,72 -307,196,433,64 -309,198,429,64 -317,194,429,60 -317,192,422,69 -300,197,435,68 -298,197,437,68 -303,192,435,70 -305,197,440,58 -298,203,441,58 -303,200,432,65 -311,197,427,65 -316,207,414,63 -318,198,416,68 -312,194,413,81 -307,195,416,82 -307,195,416,82 -307,201,422,70 -301,194,428,77 -312,191,425,72 -313,192,427,68 -320,185,427,68 -333,179,413,75 -324,186,417,73 -334,187,407,72 -341,182,408,69 -344,188,401,67 -335,193,407,65 -332,185,411,72 -340,187,399,74 -330,199,400,71 -328,193,400,79 -319,199,408,74 -320,198,418,64 -321,198,420,61 -309,195,432,64 -306,200,425,69 -310,193,427,70 -317,188,424,71 -322,184,419,75 -318,185,417,80 -321,191,421,67 -324,195,425,56 -322,194,421,63 -332,182,415,71 -316,194,420,70 -311,194,423,72 -311,194,418,77 -305,197,422,76 -296,201,431,72 -303,200,425,72 -303,197,429,71 -308,207,430,55 -306,205,431,58 -302,215,428,55 -314,207,418,61 -320,197,415,68 -321,193,413,73 -327,184,406,83 -326,193,402,79 -323,197,405,75 -322,196,401,81 -339,196,393,72 -340,194,386,80 -332,193,399,76 -328,194,411,67 -333,191,406,70 -337,192,399,72 -330,196,408,66 -320,197,410,73 -313,201,412,74 -316,203,409,72 -320,203,406,71 -321,210,400,69 -328,204,403,65 -329,204,412,55 -332,199,401,68 -330,194,411,65 -328,194,416,62 -325,192,420,63 -320,202,424,54 -320,198,427,55 -326,199,420,55 -321,208,417,54 -330,199,406,65 -326,205,405,64 -319,214,413,54 -330,208,402,60 -335,210,397,58 -328,215,404,53 -332,204,401,63 -326,216,404,54 -329,213,402,56 -344,204,396,56 -344,205,393,58 -352,198,391,59 -348,208,386,58 -348,214,383,55 -357,211,370,62 -351,216,367,66 -351,220,369,60 -357,209,358,76 -334,216,371,79 -337,213,379,71 -328,212,383,77 -326,218,398,58 -337,200,396,67 -336,210,398,56 -330,213,395,62 -324,213,390,73 -323,205,399,73 -321,202,398,79 -311,217,400,72 -309,217,410,64 -310,210,411,69 -306,208,415,71 -297,204,419,80 -301,200,422,77 -305,201,427,67 -308,199,431,62 -303,199,428,70 -308,195,432,65 -296,198,438,68 -294,201,433,72 -292,199,435,74 -299,201,434,66 -306,191,447,56 -320,190,432,58 -324,202,417,57 -338,195,409,58 -337,199,405,59 -346,197,396,61 -350,199,401,50 -353,194,394,59 -353,202,381,64 -355,203,373,69 -355,197,374,74 -353,195,387,65 -356,201,383,60 -368,193,375,64 -365,197,373,65 -359,198,377,66 -362,202,381,55 -361,201,376,62 -354,204,373,69 -359,197,362,82 -344,205,376,75 -336,213,379,72 -339,205,370,86 -337,211,376,76 -329,211,381,79 -320,216,388,76 -329,207,389,75 -334,209,387,70 -323,215,399,63 -326,210,398,66 -328,207,400,65 -323,219,399,59 -333,216,390,61 -338,212,387,63 -338,214,390,58 -328,216,391,65 -328,220,384,68 -335,231,378,56 -337,229,375,59 -335,223,371,71 -330,228,370,72 -323,235,372,70 -318,240,373,69 -315,247,370,68 -313,247,367,73 -314,247,372,67 -305,239,374,82 -311,230,377,82 -298,234,390,78 -304,228,398,70 -289,242,397,72 -281,239,398,82 -279,232,399,90 -295,229,396,80 -291,229,409,71 -298,218,409,75 -297,219,400,84 -290,227,414,69 -295,225,411,69 -292,228,405,75 -279,239,418,64 -266,242,427,65 -274,236,425,65 -287,230,415,68 -279,225,418,78 -278,228,418,76 -277,228,425,70 -285,224,413,78 -272,226,423,79 -272,222,425,81 -261,223,438,78 -267,217,454,62 -277,207,453,63 -269,218,457,56 -274,210,453,63 -287,198,449,66 -291,195,447,67 -295,202,426,77 -296,199,428,77 -304,202,422,72 -297,208,430,65 -302,203,428,67 -308,206,427,59 -299,210,429,62 -305,213,428,54 -311,204,420,65 -308,206,413,73 -299,215,413,73 -303,201,416,80 -301,208,422,69 -303,206,421,70 -305,201,425,69 -307,207,428,58 -315,203,424,58 -327,191,420,62 -333,189,419,59 -325,187,418,70 -331,190,420,59 -319,199,419,63 -312,207,414,67 -314,207,411,68 -300,219,414,67 -310,206,421,63 -303,202,421,74 -300,206,421,73 -293,208,433,66 -305,201,422,72 -315,185,423,77 -320,189,421,70 -323,189,424,64 -319,191,420,70 -314,186,423,77 -313,180,418,89 -309,186,427,78 -321,182,411,86 -306,193,410,91 -320,197,402,81 -313,204,406,77 -312,207,406,75 -311,209,418,62 -296,222,421,61 -300,218,415,67 -300,215,416,69 -303,212,413,72 -299,208,418,75 -290,219,421,70 -290,222,424,64 -300,226,423,51 -302,223,410,65 -301,220,404,75 -292,222,411,75 -284,234,413,69 -286,229,420,65 -285,228,423,64 -287,225,422,66 -287,228,416,69 -295,225,409,71 -303,212,412,73 -295,209,422,74 -283,210,422,85 -289,216,417,78 -281,215,424,80 -281,205,424,90 -265,208,434,93 -267,210,429,94 -252,220,436,92 -257,218,433,92 -261,211,438,90 -267,206,443,84 -276,212,442,70 -281,198,443,78 -279,198,454,69 -283,191,454,72 -293,197,443,67 -304,201,430,65 -309,207,419,65 -302,209,423,66 -294,208,428,70 -285,210,428,77 -274,215,442,69 -278,208,444,70 -279,198,454,69 -281,197,447,75 -280,195,449,76 -285,191,454,70 -301,180,447,72 -294,188,449,69 -303,192,449,56 -310,180,443,67 -315,176,437,72 -315,182,445,58 -318,188,439,55 -324,184,428,64 -324,187,424,65 -326,188,426,60 -330,190,419,61 -330,193,420,57 -335,182,419,64 -323,195,419,63 -320,189,426,65 -323,175,433,69 -322,184,439,55 -317,190,435,58 -317,197,434,52 -327,198,427,48 -336,195,419,50 -347,193,411,49 -361,191,398,50 -360,194,397,49 -356,196,392,56 -361,194,389,56 -363,198,370,69 -351,200,387,62 -352,199,383,66 -354,198,383,65 -348,208,385,59 -331,216,387,66 -328,211,393,68 -337,204,390,69 -338,202,387,73 -326,201,396,77 -326,204,400,70 -325,196,399,80 -322,202,400,76 -308,209,414,69 -317,206,411,66 -318,197,415,70 -317,210,405,68 -318,211,409,62 -315,208,410,67 -304,214,412,70 -299,218,406,77 -296,219,419,66 -302,224,415,59 -308,223,411,58 -309,215,413,63 -303,219,415,63 -303,221,420,56 -309,220,407,64 -307,231,402,60 -305,239,403,53 -314,234,401,51 -321,229,397,53 -329,222,390,59 -322,222,398,58 -324,218,399,59 -331,215,386,68 -316,213,394,77 -310,224,401,65 -305,222,418,55 -317,217,404,62 -309,217,402,72 -311,208,404,77 -307,205,415,73 -304,213,412,71 -294,219,416,71 -287,222,422,69 -296,225,417,62 -283,217,418,82 -296,212,415,77 -293,205,420,82 -280,208,416,96 -274,216,425,85 -285,204,421,90 -288,203,426,83 -288,208,419,85 -285,214,423,78 -290,215,419,76 -296,204,421,79 -290,214,428,68 -288,216,426,70 -288,207,428,77 -291,204,430,75 -300,194,425,81 -301,189,427,83 -288,195,448,69 -303,193,444,60 -309,195,443,53 -321,194,426,59 -323,194,427,56 -327,197,414,62 -324,192,424,60 -337,184,415,64 -341,185,407,67 -333,195,415,57 -326,193,416,65 -326,196,416,62 -331,188,419,62 -325,185,419,71 -321,199,417,63 -335,190,402,73 -344,184,409,63 -339,198,402,61 -340,204,394,62 -340,202,400,58 -345,200,397,58 -338,204,393,65 -343,210,391,56 -340,213,390,57 -340,213,383,64 -334,217,388,61 -332,207,386,75 -319,221,387,73 -318,221,380,81 -313,218,390,79 -312,219,392,77 -313,222,396,69 -314,217,398,71 -315,221,395,69 -314,220,399,67 -329,214,388,69 -320,223,387,70 -312,218,391,79 -314,229,390,67 -310,225,395,70 -299,226,405,70 -303,223,408,66 -305,231,396,68 -310,227,402,61 -317,217,400,66 -311,220,405,64 -317,206,408,69 -300,215,410,75 -303,213,405,79 -290,216,413,81 -294,209,426,71 -303,206,420,71 -304,205,427,64 -314,207,429,50 -316,197,431,56 -312,197,431,60 -310,194,432,64 -305,204,438,53 -315,190,430,65 -309,202,425,64 -307,208,426,59 -299,197,443,61 -299,204,432,65 -296,211,427,66 -292,213,428,67 -288,217,430,65 -296,217,424,63 -282,227,423,68 -275,231,427,67 -280,224,423,73 -285,219,425,71 -306,211,417,66 -306,209,418,67 -313,204,408,75 -318,198,406,78 -314,211,405,70 -317,205,402,76 -302,222,405,71 -301,213,407,79 -298,203,424,75 -307,202,419,72 -295,214,417,74 -296,214,420,70 -292,215,424,69 -300,217,421,62 -298,224,422,56 -294,225,431,50 -294,225,429,52 -298,211,431,60 -308,210,426,56 -305,212,420,63 -297,211,427,65 -299,208,423,70 -307,206,425,62 -301,207,432,60 -307,197,425,71 -306,205,428,61 -313,208,418,61 -320,204,411,65 -323,192,413,72 -322,193,415,70 -338,193,414,55 -344,197,400,59 -358,185,396,61 -354,190,392,64 -364,186,380,70 -364,192,378,66 -359,199,376,66 -356,208,375,61 -366,206,365,63 -357,203,369,71 -345,208,370,77 -339,205,380,76 -340,199,392,69 -335,199,396,70 -334,201,401,64 -328,204,407,61 -334,199,400,67 -334,202,394,70 -333,204,405,58 -327,208,408,57 -333,207,401,59 -333,212,401,54 -341,202,395,62 -337,190,397,76 -325,207,398,70 -320,212,398,70 -324,212,396,68 -319,212,395,74 -328,211,390,71 -328,216,391,65 -331,216,385,68 -327,214,390,69 -318,214,391,77 -316,220,392,72 -315,227,390,68 -315,226,399,60 -329,222,381,68 -323,224,387,66 -326,220,391,63 -318,230,389,63 -318,223,392,67 -315,224,405,56 -312,226,403,59 -318,225,392,65 -302,227,395,76 -297,237,386,80 -296,232,388,84 -285,247,388,80 -277,249,382,92 -273,244,387,96 -271,234,393,102 -260,234,407,99 -254,239,412,95 -246,232,429,93 -253,232,431,84 -253,225,434,88 -254,231,433,82 -255,232,437,76 -251,231,439,79 -244,232,446,78 -243,232,451,74 -259,220,451,70 -265,214,450,71 -276,212,451,61 -278,211,449,62 -291,203,444,62 -279,206,454,61 -273,209,459,59 -282,201,449,68 -282,204,442,72 -286,205,442,67 -295,204,436,65 -291,207,435,67 -295,203,440,62 -297,201,437,65 -295,207,431,67 -289,216,431,64 -290,221,426,63 -288,227,423,62 -281,236,422,61 -306,223,410,61 -299,224,413,64 -296,211,420,73 -294,205,419,82 -291,203,427,79 -290,206,433,71 -292,205,436,67 -295,210,434,61 -298,193,433,76 -300,188,439,73 -309,189,434,68 -312,185,429,74 -307,186,447,60 -315,182,448,55 -311,186,447,56 -316,189,444,51 -323,192,428,57 -324,189,423,64 -324,193,428,55 -323,197,428,52 -336,196,414,54 -336,203,408,53 -335,211,407,47 -332,208,406,54 -337,203,410,50 -338,198,407,57 -339,205,396,60 -341,207,389,63 -336,204,390,70 -323,205,407,65 -326,206,407,61 -330,206,406,58 -326,207,409,58 -330,206,398,66 -327,206,408,59 -322,204,405,69 -309,211,410,70 -318,209,401,72 -307,209,408,76 -304,207,414,75 -318,201,410,71 -311,201,415,73 -321,203,413,63 -323,196,411,70 -332,191,407,70 -324,191,408,77 -323,197,403,77 -323,197,410,70 -327,194,404,75 -321,198,403,78 -318,198,410,74 -323,195,418,64 -325,200,415,60 -328,201,412,59 -325,202,412,61 -323,209,407,61 -315,211,412,62 -323,201,411,65 -317,206,408,69 -316,207,412,65 -307,216,408,69 -328,211,396,65 -327,209,394,70 -345,201,391,63 -343,206,383,68 -346,197,384,73 -340,207,384,69 -351,203,380,66 -353,202,378,67 -344,205,384,67 -338,211,382,69 -331,204,395,70 -323,207,404,66 -327,203,406,64 -324,197,403,76 -321,202,410,67 -324,199,411,66 -326,207,412,55 -336,199,408,57 -330,203,404,63 -316,212,404,68 -333,207,389,71 -330,215,391,64 -334,220,393,53 -341,221,382,56 -333,219,384,64 -324,228,385,63 -318,226,392,64 -306,229,397,68 -313,217,401,69 -311,213,401,75 -307,212,406,75 -302,206,416,76 -312,205,416,67 -305,216,410,69 -298,220,407,75 -302,222,395,81 -292,232,401,75 -295,230,401,74 -290,233,401,76 -294,231,410,65 -293,223,419,65 -302,212,410,76 -303,213,413,71 -296,217,424,63 -308,203,425,64 -305,205,420,70 -306,210,418,66 -307,205,418,70 -309,201,419,71 -300,214,420,66 -302,209,418,71 -306,205,421,68 -306,213,414,67 -309,204,410,77 -312,205,409,74 -321,209,397,73 -331,202,386,81 -322,209,391,78 -309,210,402,79 -308,211,407,74 -308,206,414,72 -313,205,413,69 -316,200,407,77 -327,188,411,74 -322,192,416,70 -317,190,418,75 -317,185,420,78 -314,187,422,77 -311,187,433,69 -305,195,431,69 -307,197,429,67 -309,194,427,70 -326,190,414,70 -328,191,411,70 -323,201,407,69 -324,199,407,70 -319,199,417,65 -330,190,409,71 -322,189,409,80 -327,193,408,72 -325,198,416,61 -329,203,407,61 -327,213,404,56 -336,205,398,61 -327,207,404,62 -324,211,400,65 -330,210,395,65 -328,208,393,71 -331,211,392,66 -327,213,394,66 -326,208,391,75 -313,215,390,82 -312,217,400,71 -312,211,397,80 -312,209,400,79 -313,206,401,80 -302,204,408,86 -306,198,412,84 -311,201,420,68 -314,203,427,56 -334,193,426,47 -345,193,411,51 -340,204,405,51 -334,207,402,57 -335,200,399,66 -341,197,398,64 -324,199,409,68 -314,200,419,67 -310,200,428,62 -320,199,416,65 -322,198,421,59 -317,197,411,75 -320,198,417,65 -323,192,415,70 -326,189,419,66 -311,189,429,71 -314,197,422,67 -312,195,424,69 -310,196,430,64 -313,195,422,70 -317,193,424,66 -318,189,423,70 -324,194,412,70 -326,201,407,66 -330,194,408,68 -335,189,405,71 -330,190,407,73 -331,187,406,76 -333,192,409,66 -334,187,412,67 -334,181,416,69 -343,187,403,67 -346,182,405,67 -345,182,405,68 -333,197,404,66 -325,202,414,59 -324,200,413,63 -334,196,408,62 -338,195,407,60 -339,196,406,59 -329,196,411,64 -339,207,392,62 -339,215,393,53 -339,213,387,61 -346,219,378,57 -345,212,377,66 -334,216,382,68 -338,221,374,67 -335,227,376,62 -335,224,374,67 -341,208,381,70 -344,210,370,76 -336,214,384,66 -334,216,384,66 -341,209,381,69 -351,208,377,64 -343,205,380,72 -332,206,389,73 -332,206,388,74 -324,208,383,85 -310,227,388,75 -304,241,390,65 -302,234,399,65 -304,220,401,75 -310,211,402,77 -319,207,404,70 -311,211,417,61 -307,227,413,53 -309,222,416,53 -311,224,412,53 -315,216,405,64 -324,212,404,60 -324,205,403,68 -324,202,403,71 -328,194,404,74 -325,190,420,65 -325,194,417,64 -331,190,414,65 -335,187,413,65 -343,185,413,59 -359,183,398,60 -357,185,404,54 -356,181,408,55 -359,186,397,58 -369,183,383,65 -376,178,385,61 -381,178,389,52 -377,181,390,52 -380,181,380,59 -381,189,374,56 -386,181,368,65 -371,194,363,72 -363,192,375,70 -357,195,387,61 -348,187,392,73 -335,181,407,77 -337,190,409,64 -336,188,404,72 -335,191,409,65 -344,191,397,68 -343,193,397,67 -341,195,397,67 -351,194,385,70 -346,198,391,65 -343,197,406,54 -342,194,410,54 -344,198,400,58 -345,200,399,56 -346,205,400,49 -359,193,386,62 -365,195,382,58 -368,200,375,57 -376,194,368,62 -377,194,372,57 -372,193,371,64 -369,198,372,61 -368,200,374,58 -371,204,366,59 -372,207,363,58 -373,205,366,56 -378,198,360,64 -373,208,363,56 -370,203,361,66 -367,202,361,70 -359,211,366,64 -353,221,366,60 -353,214,360,73 -348,216,358,78 -344,211,357,88 -337,219,366,78 -334,218,373,75 -326,212,373,89 -317,208,392,83 -313,213,401,73 -311,218,404,67 -324,215,399,62 -322,209,399,70 -327,215,401,57 -330,207,404,59 -327,215,402,56 -326,214,399,61 -335,212,385,68 -328,223,383,66 -327,223,384,66 -321,232,387,60 -328,228,379,65 -327,220,388,65 -329,219,393,59 -325,219,392,64 -320,212,403,65 -316,213,414,57 -314,214,415,57 -295,218,419,68 -288,222,418,72 -286,222,416,76 -280,224,417,79 -275,221,425,79 -276,227,438,59 -290,208,429,73 -289,205,431,75 -297,206,429,68 -300,204,424,72 -304,198,425,73 -298,196,427,79 -295,210,431,64 -303,207,426,64 -296,207,432,65 -294,213,432,61 -295,208,435,62 -301,204,435,60 -305,204,422,69 -307,224,415,54 -312,217,422,49 -319,211,416,54 -322,211,407,60 -325,207,401,67 -313,207,409,71 -297,212,408,83 -295,218,409,78 -284,215,409,92 -283,219,421,77 -288,218,422,72 -295,217,417,71 -308,212,409,71 -305,209,406,80 -307,211,405,77 -313,211,412,64 -323,205,419,53 -332,202,407,59 -332,211,401,56 -327,204,401,68 -316,211,409,64 -306,223,400,71 -301,224,401,74 -316,218,390,76 -317,208,401,74 -308,209,407,76 -310,200,418,72 -318,198,416,68 -324,202,412,62 -324,200,414,62 -331,187,412,70 -334,190,408,68 -335,181,412,72 -349,181,399,71 -339,187,401,73 -332,197,400,71 -335,193,400,72 -328,204,393,75 -328,192,388,92 -327,197,393,83 -315,203,408,74 -307,205,404,84 -304,208,406,82 -310,208,411,71 -316,202,406,76 -319,204,401,76 -312,195,408,85 -306,192,414,88 -305,211,408,76 -313,203,410,74 -313,198,411,78 -312,205,407,76 -309,202,406,83 -305,198,421,76 -300,203,420,77 -296,205,427,72 -290,204,437,69 -302,196,437,65 -301,200,437,62 -301,197,436,66 -311,205,429,55 -320,194,427,59 -320,199,423,58 -321,193,422,64 -317,197,428,58 -325,184,426,65 -328,188,423,61 -336,188,412,64 -342,187,410,61 -337,193,406,64 -338,190,404,68 -334,195,409,62 -339,195,391,75 -339,202,392,67 -338,207,384,71 -333,214,381,72 -332,221,384,63 -336,223,376,65 -332,227,374,67 -337,221,378,64 -348,219,380,53 -346,208,373,73 -329,215,375,81 -331,212,377,80 -324,215,394,67 -339,210,387,64 -340,215,390,55 -339,210,392,59 -332,203,397,68 -329,193,405,73 -317,201,414,68 -307,207,422,64 -314,195,419,72 -307,200,424,69 -321,195,411,73 -330,201,404,65 -325,203,405,67 -318,204,413,65 -313,204,417,66 -331,197,408,64 -322,205,412,61 -328,204,404,64 -329,209,403,59 -328,204,411,57 -311,206,413,70 -319,203,400,78 -322,212,394,72 -329,205,397,69 -334,205,390,71 -328,208,396,68 -324,216,397,63 -324,208,402,66 -326,213,396,65 -323,212,397,68 -318,210,407,65 -327,207,399,67 -323,210,406,61 -317,221,401,61 -323,213,400,64 -322,218,399,61 -314,213,398,75 -312,214,397,77 -308,226,396,70 -303,223,405,69 -299,226,409,66 -293,229,408,70 -285,227,409,79 -285,222,416,77 -281,223,416,80 -276,214,418,92 -271,218,431,80 -282,209,425,84 -271,219,423,87 -265,223,438,74 -265,218,431,86 -251,226,430,93 -246,232,440,82 -241,228,450,81 -241,228,454,77 -261,221,448,70 -262,217,446,75 -266,213,446,75 -282,214,439,65 -278,213,437,72 -281,206,440,73 -294,193,439,74 -302,190,437,71 -302,194,433,71 -302,192,428,78 -305,197,431,67 -307,202,429,62 -298,210,428,64 -293,221,428,58 -293,211,427,69 -292,199,436,73 -295,205,423,77 -285,216,428,71 -283,213,422,82 -282,216,423,79 -276,221,428,75 -276,225,430,69 -290,222,414,74 -285,230,405,80 -277,232,414,77 -281,232,413,74 -274,230,420,76 -260,231,433,76 -269,229,432,70 -280,224,428,68 -281,222,434,63 -280,223,431,66 -283,222,428,67 -288,219,427,66 -303,207,421,69 -298,202,420,80 -297,200,424,79 -301,202,416,81 -305,196,415,84 -306,195,411,88 -289,216,422,73 -281,227,422,70 -282,222,421,75 -287,223,418,72 -296,218,412,74 -295,219,414,72 -293,223,416,68 -303,221,407,69 -300,212,405,83 -290,210,416,84 -280,213,423,84 -287,213,422,78 -286,216,428,70 -284,215,427,74 -278,219,437,66 -280,215,433,72 -275,206,433,86 -275,204,441,80 -276,198,444,82 -268,196,460,76 -278,196,462,64 -286,184,464,66 -284,185,458,73 -294,181,447,78 -280,192,451,77 -285,191,448,76 -294,189,447,70 -298,200,440,62 -304,192,434,70 -304,197,432,67 -316,194,422,68 -310,208,412,70 -310,210,419,61 -306,216,426,52 -304,212,428,56 -302,215,427,56 -304,204,420,72 -301,205,426,68 -310,203,426,61 -314,202,419,65 -313,204,415,68 -318,204,415,63 -310,202,424,64 -305,205,429,61 -303,206,428,63 -314,204,422,60 -321,205,409,65 -327,202,405,66 -329,199,397,75 -329,201,399,71 -321,209,406,64 -318,214,404,64 -316,214,411,59 -328,205,406,61 -329,194,405,72 -327,196,406,71 -329,199,402,70 -318,203,406,73 -315,204,401,80 -312,205,404,79 -317,200,408,75 -322,196,411,71 -318,198,411,73 -318,200,412,70 -314,193,432,61 -321,204,423,52 -323,205,411,61 -335,201,407,57 -330,209,408,53 -339,201,405,55 -338,198,403,61 -340,204,397,59 -348,185,401,66 -339,196,400,65 -332,202,400,66 -338,192,398,72 -330,192,404,74 -335,189,403,73 -336,190,405,69 -341,194,399,66 -334,197,403,66 -337,185,407,71 -341,190,402,67 -329,200,401,70 -331,195,406,68 -332,197,405,66 -325,204,408,63 -320,208,410,62 -311,208,413,68 -314,209,411,66 -321,200,404,75 -316,197,410,77 -320,199,409,72 -316,197,412,75 -313,201,412,74 -309,209,417,65 -309,202,427,62 -324,193,418,65 -338,188,405,69 -324,210,414,52 -332,204,412,52 -331,208,407,54 -329,204,408,59 -323,209,403,65 -323,209,400,68 -322,206,407,65 -323,212,406,59 -326,208,402,64 -321,216,407,56 -323,222,406,49 -328,210,404,58 -331,209,403,57 -332,202,402,64 -335,199,403,63 -333,203,396,68 -325,205,402,68 -323,215,394,68 -316,214,401,69 -314,209,404,73 -305,208,410,77 -311,203,405,81 -306,210,396,88 -305,215,403,77 -308,222,399,71 -309,222,403,66 -307,220,400,73 -305,231,392,72 -293,239,399,69 -299,222,394,85 -290,237,404,69 -287,226,413,74 -287,234,416,63 -293,221,413,73 -287,231,420,62 -290,221,422,67 -292,211,422,75 -292,200,430,78 -292,205,423,80 -294,210,433,63 -306,201,431,62 -321,197,425,57 -318,202,422,58 -329,198,410,63 -338,192,405,65 -344,185,399,72 -345,191,388,76 -339,194,398,69 -339,192,392,77 -340,194,392,74 -320,201,403,76 -323,201,409,67 -329,193,405,73 -315,199,418,68 -321,195,419,65 -319,203,418,60 -310,204,421,65 -310,197,418,75 -305,207,427,61 -301,211,423,65 -298,215,423,64 -294,216,427,63 -282,224,423,71 -283,211,427,79 -291,204,436,69 -297,209,438,56 -309,199,426,66 -307,204,423,66 -302,203,426,69 -299,204,435,62 -308,194,432,66 -316,189,426,69 -305,195,429,71 -307,205,418,70 -306,200,423,71 -306,200,422,72 -302,201,432,65 -305,198,434,63 -300,198,438,64 -296,197,441,66 -297,200,444,59 -312,199,431,58 -311,197,418,74 -316,185,425,74 -331,183,409,77 -318,200,401,81 -311,202,412,75 -304,207,409,80 -298,214,411,77 -296,215,413,76 -296,214,415,75 -298,205,415,82 -301,215,404,80 -298,215,411,76 -300,203,416,81 -301,199,426,74 -307,193,430,70 -311,193,427,69 -310,190,430,70 -317,191,424,68 -318,198,411,73 -324,198,418,60 -326,196,421,57 -320,206,416,58 -319,206,422,53 -330,198,414,58 -326,198,415,61 -336,201,402,61 -342,199,401,58 -348,200,395,57 -345,204,389,62 -353,204,381,62 -348,211,377,64 -359,213,359,69 -353,222,365,60 -350,216,363,71 -347,212,380,61 -357,200,375,68 -348,204,379,69 -349,206,375,70 -353,215,363,69 -343,218,376,63 -347,214,374,65 -357,207,369,67 -344,220,386,50 -336,228,381,55 -342,214,386,58 -331,221,391,57 -317,231,386,66 -321,219,389,71 -309,230,399,62 -306,226,400,68 -311,231,392,66 -308,231,396,65 -302,233,402,63 -287,243,408,62 -299,233,396,72 -279,245,413,63 -284,241,407,68 -288,241,400,71 -291,245,403,61 -298,240,394,68 -296,231,405,68 -289,230,415,66 -296,216,412,76 -300,221,413,66 -297,224,407,72 -299,220,408,73 -292,221,412,75 -272,241,423,64 -272,236,417,75 -272,235,424,69 -268,234,422,76 -267,232,430,71 -270,235,430,65 -278,227,425,70 -280,230,426,64 -280,221,423,76 -281,219,421,79 -275,221,424,80 -290,210,426,74 -297,207,422,74 -298,199,426,77 -293,212,430,65 -295,229,421,55 -303,228,403,66 -307,227,396,70 -301,233,391,75 -298,234,393,75 -281,232,398,89 -278,226,404,92 -273,230,409,88 -274,225,416,85 -266,221,425,88 -270,223,432,75 -278,210,434,78 -272,206,444,78 -266,207,446,81 -272,203,438,87 -277,208,434,81 -280,212,429,79 -281,216,429,74 -271,219,437,73 -289,206,428,77 -289,215,426,70 -293,203,431,73 -285,214,432,69 -282,213,424,81 -277,219,426,78 -278,220,431,71 -289,218,415,78 -291,214,421,74 -293,218,419,70 -295,211,420,74 -298,204,427,71 -291,209,431,69 -286,209,429,76 -294,210,431,65 -297,196,431,76 -296,202,431,71 -302,206,434,58 -311,205,426,58 -304,207,432,57 -312,208,423,57 -314,203,418,65 -313,209,402,76 -317,213,400,70 -320,213,412,55 -326,208,403,63 -323,209,406,62 -339,195,397,69 -335,205,400,60 -333,210,407,50 -355,197,394,54 -353,200,386,61 -349,204,399,48 -356,197,400,47 -363,195,395,47 -370,188,386,56 -364,189,381,66 -362,183,379,76 -358,188,380,74 -347,197,379,77 -338,212,383,67 -329,205,394,72 -329,199,389,83 -323,210,387,80 -318,211,390,81 -306,225,393,76 -304,228,398,70 -304,222,406,68 -299,217,419,65 -297,224,415,64 -300,221,416,63 -302,225,407,66 -308,212,404,76 -309,209,409,73 -321,209,397,73 -329,203,395,73 -322,214,395,69 -328,212,396,64 -325,222,389,64 -328,219,385,68 -325,215,390,70 -320,218,394,68 -310,217,404,69 -318,210,408,64 -319,221,403,57 -319,217,402,62 -304,222,401,73 -292,228,412,68 -291,229,412,68 -289,225,414,72 -287,222,419,72 -289,230,402,79 -274,232,420,74 -266,226,422,86 -276,227,418,79 -278,223,417,82 -272,232,422,74 -279,221,420,80 -273,224,421,82 -274,221,423,82 -267,218,434,81 -268,211,427,94 -266,211,437,86 -267,218,441,74 -266,216,447,71 -274,209,450,67 -269,201,457,73 -279,197,451,73 -287,199,453,61 -303,186,443,68 -307,185,432,76 -307,185,440,68 -307,193,438,62 -309,192,441,58 -306,194,438,62 -311,189,433,67 -313,188,429,70 -325,191,412,72 -328,186,411,75 -328,194,409,69 -339,201,397,63 -333,204,407,56 -321,205,405,69 -321,206,405,68 -316,211,401,72 -311,221,400,68 -297,225,407,71 -293,228,405,74 -286,222,412,80 -279,221,413,87 -273,228,422,77 -275,226,428,71 -272,222,435,71 -285,216,426,73 -294,209,427,70 -308,217,416,59 -308,215,416,61 -294,219,423,64 -305,210,414,71 -311,221,406,62 -320,214,395,71 -316,210,408,66 -322,206,405,67 -324,206,405,65 -322,214,396,68 -320,209,388,83 -313,208,398,81 -310,210,406,74 -317,204,404,75 -313,202,411,74 -310,201,411,78 -315,202,419,64 -306,204,413,77 -304,203,418,75 -299,202,431,68 -305,195,439,61 -303,193,437,67 -309,192,424,75 -310,193,425,72 -307,206,424,63 -316,202,416,66 -315,198,422,65 -306,193,434,67 -313,195,433,59 -321,188,428,63 -322,188,428,62 -325,191,421,63 -329,200,415,56 -333,198,409,60 -330,208,406,56 -328,206,406,60 -321,209,401,69 -319,209,404,68 -327,207,403,63 -327,202,405,66 -320,205,403,72 -312,210,404,74 -314,210,402,74 -310,209,407,74 -305,206,421,68 -310,201,414,75 -307,203,421,69 -321,203,404,72 -319,205,407,69 -324,206,402,68 -308,215,410,67 -304,219,405,72 -310,203,406,81 -303,205,420,72 -296,211,416,77 -292,221,423,64 -292,222,418,68 -288,223,413,76 -300,227,400,73 -292,228,403,77 -284,217,413,86 -286,223,413,78 -284,210,421,85 -290,215,417,78 -300,213,412,75 -295,219,408,78 -295,218,409,78 -303,222,409,66 -301,229,407,63 -298,228,405,69 -293,225,406,76 -297,220,406,77 -283,214,411,92 -271,219,414,96 -271,224,420,85 -272,221,423,84 -257,219,434,90 -256,219,441,84 -259,224,439,78 -259,208,444,89 -262,208,453,77 -274,202,446,78 -281,200,456,63 -295,195,439,71 -305,200,431,64 -303,204,434,59 -302,198,431,69 -297,194,432,77 -292,192,438,78 -292,199,438,71 -294,198,435,73 -292,199,433,76 -299,189,436,76 -302,189,438,71 -308,191,436,65 -318,195,429,58 -309,201,428,62 -304,208,430,58 -308,205,425,62 -305,212,422,61 -314,211,419,56 -316,204,405,75 -314,211,406,69 -331,203,398,68 -335,206,396,63 -345,199,390,66 -347,201,394,58 -339,205,391,65 -344,199,384,73 -342,198,392,68 -347,196,388,69 -352,187,397,64 -356,184,396,64 -352,187,394,67 -345,197,392,66 -338,205,383,74 -328,204,398,70 -332,199,392,77 -337,201,391,71 -334,191,393,82 -338,190,399,73 -341,183,403,73 -347,179,404,70 -345,182,413,60 -348,185,409,58 -340,198,412,50 -332,195,413,60 -338,193,404,65 -334,202,403,61 -337,192,406,65 -345,184,403,68 -348,181,403,68 -342,188,412,58 -345,190,410,55 -356,188,408,48 -358,193,405,44 -365,180,397,58 -372,178,397,53 -373,179,401,47 -378,173,392,57 -377,172,388,63 -367,187,388,58 -365,186,391,58 -356,195,387,62 -357,195,386,62 -359,195,383,63 -365,195,380,60 -365,199,373,63 -366,199,371,64 -357,200,376,67 -357,197,382,64 -353,199,385,63 -355,209,377,59 -349,213,378,60 -342,212,381,65 -335,220,380,65 -327,224,378,71 -320,224,381,75 -313,229,389,69 -298,231,399,72 -300,228,404,68 -289,229,413,69 -287,216,419,78 -290,214,416,80 -273,221,423,83 -269,229,418,84 -264,227,431,78 -259,218,437,86 -272,227,427,74 -276,221,434,69 -292,204,431,73 -305,203,428,64 -311,204,429,56 -319,209,415,57 -319,207,413,61 -324,215,398,63 -334,207,399,60 -332,205,400,63 -338,198,401,63 -338,188,402,72 -324,191,406,79 -330,192,414,64 -334,186,411,69 -332,181,419,68 -321,193,413,73 -311,202,414,73 -314,204,409,73 -309,200,419,72 -317,189,421,73 -305,203,421,71 -296,206,434,64 -289,204,436,71 -283,204,439,74 -290,197,441,72 -296,203,426,75 -301,202,416,81 -299,214,410,77 -297,219,420,64 -303,215,417,65 -300,218,424,58 -306,220,420,54 -306,220,414,60 -304,210,410,76 -279,224,429,68 -284,218,426,72 -279,221,433,67 -275,222,428,75 -278,221,426,75 -287,216,422,75 -279,221,427,73 -273,227,431,69 -287,229,419,65 -291,221,420,68 -291,217,423,69 -307,209,422,62 -306,212,427,55 -302,215,425,58 -314,207,418,61 -313,210,418,59 -313,203,420,64 -312,199,425,64 -327,191,411,71 -324,191,410,75 -321,196,416,67 -323,203,414,60 -326,204,416,54 -328,202,411,59 -329,204,407,60 -326,206,406,62 -315,219,412,54 -322,211,404,63 -334,211,394,61 -319,214,397,70 -308,226,401,65 -319,220,398,63 -325,216,403,56 -315,222,402,61 -321,217,400,62 -316,218,397,69 -316,215,397,72 -311,218,403,68 -314,216,400,70 -313,217,398,72 -314,212,403,71 -324,211,388,77 -303,218,395,84 -300,219,405,76 -293,225,406,76 -294,216,401,89 -296,220,406,78 -302,219,401,78 -294,232,407,67 -300,232,393,75 -297,234,395,74 -284,231,405,80 -288,216,410,86 -283,218,404,95 -268,231,421,80 -258,225,430,87 -259,225,429,87 -247,225,437,91 -264,222,432,82 -268,218,436,78 -279,211,437,73 -275,214,439,72 -286,209,432,73 -269,209,441,81 -264,208,453,75 -282,199,443,76 -277,194,452,77 -275,194,445,86 -265,189,458,88 -267,195,453,85 -270,190,460,80 -265,204,457,74 -263,205,457,75 -260,205,451,84 -262,207,454,77 -259,198,463,80 -271,199,459,71 -279,197,451,73 -276,201,452,71 -282,198,455,65 -295,191,443,71 -300,187,441,72 -315,185,429,71 -318,187,432,63 -320,187,421,72 -325,190,421,64 -336,186,415,63 -344,180,424,52 -346,181,411,62 -336,190,413,61 -344,187,404,65 -341,193,392,74 -348,196,396,60 -344,201,389,66 -340,205,392,63 -343,200,390,67 -339,202,394,65 -331,205,397,67 -328,209,395,68 -328,215,385,72 -320,214,387,79 -323,205,396,76 -303,222,405,70 -301,230,403,66 -294,227,409,70 -294,228,417,61 -298,223,419,60 -295,218,422,65 -309,218,413,60 -307,214,406,73 -308,221,401,70 -303,224,403,70 -300,222,404,74 -309,220,410,61 -314,215,407,64 -308,222,407,63 -315,213,400,72 -318,217,397,68 -325,223,389,63 -322,215,388,75 -317,211,390,82 -308,217,401,74 -307,227,405,61 -303,224,401,72 -290,228,406,76 -296,226,414,64 -297,218,407,78 -297,216,409,78 -304,218,403,75 -314,210,411,65 -310,197,408,85 -301,207,412,80 -289,218,415,78 -282,211,421,86 -273,225,422,80 -268,233,416,83 -265,237,415,83 -269,238,413,80 -265,239,418,78 -266,237,410,87 -250,242,414,94 -241,240,434,85 -236,240,434,90 -238,229,445,88 -246,217,448,89 -240,224,465,71 -246,210,457,87 -251,208,468,73 -260,205,463,72 -264,203,456,77 -277,201,452,70 -275,203,460,62 -274,202,455,69 -283,203,452,62 -281,201,445,73 -285,198,447,70 -284,188,451,77 -275,196,452,77 -276,198,453,73 -267,205,457,71 -253,215,471,61 -256,204,477,63 -264,202,478,56 -279,202,466,53 -287,200,458,55 -304,197,442,57 -316,191,433,60 -320,192,427,61 -322,192,419,67 -323,182,415,80 -315,191,423,71 -318,190,419,73 -311,195,423,71 -311,190,426,73 -306,191,443,60 -306,193,438,63 -313,193,435,59 -302,196,433,69 -305,194,423,78 -294,199,431,76 -294,199,430,77 -291,204,441,64 -293,205,445,57 -292,199,452,57 -311,186,445,58 -305,193,439,63 -300,191,438,71 -305,191,426,78 -305,194,430,71 -314,194,432,60 -323,186,427,64 -325,188,419,68 -330,182,422,66 -332,181,418,69 -346,180,413,61 -352,178,407,63 -357,174,405,64 -361,171,403,65 -347,184,408,61 -339,189,407,65 -346,184,402,68 -343,191,404,62 -335,199,409,57 -340,194,402,64 -337,196,402,65 -335,194,404,67 -332,195,414,59 -341,198,403,58 -323,210,412,55 -328,203,407,62 -337,201,399,63 -340,201,396,63 -338,207,396,59 -333,206,400,61 -330,207,402,61 -331,208,400,61 -328,206,399,67 -338,200,405,57 -347,190,399,64 -348,186,402,64 -341,181,404,74 -338,187,413,62 -334,193,402,71 -332,197,404,67 -328,196,397,79 -331,196,405,68 -332,200,403,65 -334,202,396,68 -330,209,402,59 -332,208,402,58 -333,206,403,58 -343,186,400,71 -344,189,398,69 -353,191,384,72 -354,193,379,74 -343,207,380,70 -355,203,373,69 -354,207,374,65 -342,206,383,69 -334,207,391,68 -331,209,399,61 -327,212,400,61 -318,222,407,53 -326,214,400,60 -334,205,397,64 -327,199,396,78 -321,203,404,72 -325,204,395,76 -337,194,389,80 -329,201,399,71 -329,192,399,80 -323,207,401,69 -314,211,411,64 -319,206,400,75 -318,203,399,80 -323,208,406,63 -326,195,404,75 -313,193,415,79 -315,192,415,78 -319,197,408,76 -319,197,413,71 -323,193,405,79 -329,198,397,76 -329,203,401,67 -318,200,407,75 -318,194,409,79 -311,199,421,69 -310,205,410,75 -318,199,418,65 -329,192,408,71 -329,194,410,67 -327,198,405,70 -324,198,408,70 -316,196,411,77 -327,190,411,72 -333,199,402,66 -331,200,395,74 -312,213,401,74 -309,216,406,69 -304,222,403,71 -314,205,406,75 -311,207,404,78 -318,198,405,79 -313,200,408,79 -316,205,403,76 -325,198,405,72 -316,204,413,67 -314,192,426,68 -311,190,430,69 -307,193,422,78 -307,196,430,67 -312,198,416,74 -309,206,413,72 -302,217,423,58 -302,213,415,70 -305,208,416,71 -295,217,422,66 -299,217,427,57 -301,222,425,52 -307,214,424,55 -305,220,421,54 -318,205,415,62 -313,203,418,66 -311,213,416,60 -313,210,410,67 -317,211,406,66 -323,215,402,60 -320,213,409,58 -318,218,411,53 -324,214,404,58 -322,214,406,58 -329,205,411,55 -332,206,404,58 -336,211,399,54 -339,214,392,55 -336,204,402,58 -338,209,398,55 -339,202,402,57 -345,194,395,66 -351,187,389,73 -335,197,392,76 -333,196,398,73 -318,204,404,74 -314,207,405,74 -309,204,411,76 -318,205,407,70 -315,215,405,65 -306,228,408,58 -305,227,401,67 -297,234,403,66 -296,241,393,70 -290,240,408,62 -288,235,410,67 -285,233,411,71 -289,228,415,68 -303,217,404,76 -299,223,403,75 -302,214,411,73 -303,209,419,69 -302,206,426,66 -296,212,421,71 -290,213,416,81 -285,220,418,77 -283,224,416,77 -286,220,421,73 -284,220,432,64 -278,224,435,63 -277,223,436,64 -283,214,438,65 -294,204,437,65 -299,204,437,60 -301,207,437,55 -313,202,426,59 -322,199,420,59 -329,199,414,58 -326,199,410,65 -316,198,415,71 -309,207,414,70 -313,201,414,72 -306,207,410,77 -302,210,409,79 -305,209,403,83 -308,205,407,80 -306,208,402,84 -301,212,397,90 -306,221,389,84 -301,223,389,87 -294,218,391,97 -283,218,396,103 -277,224,407,92 -271,219,424,86 -272,222,424,82 -274,225,427,74 -279,223,426,72 -280,219,435,66 -287,207,428,78 -300,201,417,82 -300,203,414,83 -297,201,415,87 -302,193,424,81 -291,199,435,75 -294,197,430,79 -290,206,437,67 -290,193,444,73 -293,191,449,67 -301,192,441,66 -314,196,433,57 -309,199,430,62 -301,203,437,59 -315,194,427,64 -320,194,416,70 -325,200,416,59 -327,201,414,58 -332,199,417,52 -349,203,400,48 -347,194,398,61 -352,177,401,70 -344,184,401,71 -335,192,399,74 -332,188,403,77 -323,194,410,73 -314,197,416,73 -318,194,418,70 -310,203,423,64 -314,199,422,65 -309,199,426,66 -301,207,427,65 -302,210,428,60 -301,212,417,70 -306,202,413,79 -297,199,419,85 -293,204,429,74 -290,205,431,74 -305,198,423,74 -302,193,441,64 -296,190,448,66 -284,194,450,72 -290,188,447,75 -292,201,441,66 -291,213,440,56 -284,199,438,79 -286,204,435,75 -298,206,428,68 -303,202,430,65 -296,196,430,78 -299,201,434,66 -298,203,437,62 -294,213,431,62 -302,206,422,70 -302,205,423,70 -302,206,427,65 -310,208,410,72 -314,206,415,65 -313,205,412,70 -306,207,418,69 -305,204,416,75 -305,206,412,77 -301,204,424,71 -303,211,427,59 -314,205,416,65 -313,207,412,68 -314,210,404,72 -302,213,410,75 -291,221,418,70 -300,209,414,77 -304,217,419,60 -310,207,420,63 -310,211,424,55 -313,202,421,64 -317,198,418,67 -317,197,421,65 -314,196,429,61 -316,202,425,57 -323,186,431,60 -331,174,423,72 -319,177,428,76 -323,174,426,77 -308,187,435,70 -296,197,431,76 -303,195,430,72 -301,192,434,73 -301,184,427,88 -301,183,428,88 -298,185,439,78 -297,184,435,84 -296,192,439,73 -298,188,443,71 -300,190,440,70 -301,194,435,70 -301,199,428,72 -294,195,432,79 -296,191,433,80 -306,188,429,77 -304,192,436,68 -315,187,429,69 -315,189,441,55 -327,179,437,57 -319,183,440,58 -323,180,437,60 -326,183,436,55 -326,192,427,55 -325,194,421,60 -327,203,417,53 -325,195,419,61 -325,195,417,63 -323,192,414,71 -315,194,411,80 -311,198,414,77 -311,198,417,74 -315,204,429,52 -322,201,422,55 -319,199,420,62 -321,198,421,60 -322,211,408,59 -328,211,406,55 -325,212,406,57 -326,206,408,60 -333,210,398,59 -329,205,392,74 -322,212,396,70 -319,212,396,73 -315,194,404,87 -311,204,407,78 -305,214,413,68 -305,216,409,70 -302,217,412,69 -297,222,414,67 -298,224,409,69 -306,220,408,66 -307,213,406,74 -318,209,400,73 -312,213,403,72 -312,211,403,74 -309,205,410,76 -301,206,406,87 -300,212,415,73 -297,211,418,74 -290,213,415,82 -283,219,427,71 -283,218,423,76 -288,214,421,77 -299,205,423,73 -296,209,430,65 -299,208,423,70 -298,201,429,72 -296,199,428,77 -293,192,438,77 -297,187,439,77 -295,192,439,74 -296,196,437,71 -296,190,444,70 -307,193,435,65 -314,197,430,59 -319,193,424,64 -329,191,423,57 -335,191,413,61 -334,196,405,65 -334,191,416,59 -334,182,415,69 -347,189,402,62 -353,187,406,54 -369,179,400,52 -371,182,392,55 -367,184,393,56 -371,183,404,42 -370,179,394,57 -371,184,387,58 -367,179,390,64 -359,185,396,60 -355,189,400,56 -357,183,400,60 -355,191,396,58 -357,184,396,63 -366,188,393,53 -355,202,385,58 -363,192,389,56 -351,200,397,52 -354,200,387,59 -340,210,384,66 -326,212,394,68 -321,218,398,63 -326,219,394,61 -317,217,395,71 -318,227,389,66 -315,223,393,69 -312,223,397,68 -315,215,393,77 -302,224,404,70 -301,210,407,82 -294,220,417,69 -299,208,406,87 -294,213,414,79 -291,214,419,76 -288,218,420,74 -294,211,423,72 -300,202,422,76 -294,209,426,71 -276,221,433,70 -283,212,437,68 -277,207,442,74 -280,203,450,67 -281,207,461,51 -290,194,454,62 -301,188,447,64 -314,187,441,58 -320,182,436,62 -325,178,434,63 -320,180,433,67 -310,187,439,64 -317,193,431,59 -315,202,428,55 -321,201,425,53 -331,196,417,56 -333,191,408,68 -321,201,411,67 -324,205,406,65 -319,203,415,63 -315,214,412,59 -318,212,402,68 -324,205,397,74 -318,207,399,76 -317,202,399,82 -325,206,395,74 -325,210,390,75 -321,219,381,79 -323,208,384,85 -308,220,391,81 -305,220,391,84 -293,222,400,85 -300,212,399,89 -302,213,415,70 -297,216,429,58 -297,213,423,67 -290,213,426,71 -306,203,426,65 -307,202,435,56 -318,200,424,58 -317,205,427,51 -326,195,425,54 -332,191,417,60 -342,194,404,60 -341,195,404,60 -343,190,406,61 -346,182,402,70 -349,179,409,63 -345,188,400,67 -338,190,399,73 -342,188,399,71 -348,196,394,62 -352,195,392,61 -359,193,385,63 -359,197,386,58 -354,198,390,58 -359,191,381,69 -351,197,383,69 -354,192,383,71 -357,199,383,61 -352,205,382,61 -356,205,376,63 -359,201,380,60 -356,204,384,56 -358,206,385,51 -355,203,392,50 -345,212,388,55 -353,207,381,59 -355,204,384,57 -357,203,382,58 -343,216,381,60 -346,206,380,68 -342,204,380,74 -331,205,394,70 -330,202,401,67 -325,213,404,58 -324,212,411,53 -306,216,419,59 -308,214,415,63 -302,214,414,70 -304,218,402,76 -293,222,409,76 -306,222,407,65 -299,231,403,67 -305,227,409,59 -308,216,411,65 -306,215,403,76 -304,214,395,87 -292,219,410,79 -289,219,418,74 -294,221,416,69 -301,220,417,62 -308,200,423,69 -308,202,423,67 -311,202,414,73 -300,213,418,69 -294,217,425,64 -295,210,428,67 -292,213,424,71 -296,219,421,64 -295,217,418,70 -289,220,422,69 -292,214,426,68 -291,215,419,75 -281,216,431,72 -285,222,428,65 -283,228,424,65 -288,219,428,65 -278,223,433,66 -296,218,430,56 -295,210,428,67 -292,215,423,70 -291,209,426,74 -289,213,425,73 -284,216,429,71 -291,215,424,70 -294,219,414,73 -298,209,422,71 -300,211,413,76 -297,217,413,73 -293,210,419,78 -289,220,417,74 -290,219,410,81 -285,215,413,87 -281,212,413,94 -269,218,430,83 -259,235,425,81 -261,235,429,75 -260,233,429,78 -256,232,435,77 -257,224,445,74 -252,231,441,76 -248,225,448,79 -252,227,446,75 -261,211,440,88 -267,210,438,85 -274,206,438,82 -275,212,438,75 -264,221,434,81 -267,216,430,87 -268,218,430,84 -270,215,438,77 -261,222,447,70 -264,220,445,71 -273,210,451,66 -279,205,447,69 -289,201,444,66 -287,196,451,66 -286,193,453,68 -299,186,446,69 -304,192,446,58 -318,185,442,55 -319,188,437,56 -324,179,435,62 -322,189,432,57 -324,186,427,63 -325,192,421,62 -322,201,427,50 -329,188,419,64 -324,191,420,65 -326,192,416,66 -318,195,412,75 -315,195,416,74 -313,193,417,77 -309,199,411,81 -319,188,410,83 -312,190,419,79 -318,184,421,77 -317,179,424,80 -314,186,431,69 -321,189,430,60 -330,185,425,60 -340,179,424,57 -332,178,431,59 -337,183,423,57 -334,188,414,64 -328,203,409,60 -321,208,412,59 -334,200,401,65 -327,203,402,68 -328,207,401,64 -337,208,389,66 -346,196,388,70 -342,197,386,75 -343,203,382,72 -349,200,380,71 -350,193,376,81 -351,195,383,71 -341,194,384,81 -330,203,389,78 -332,192,395,81 -330,196,396,78 -331,179,407,83 -331,181,414,74 -333,187,408,72 -343,184,402,71 -349,178,399,74 -337,186,406,71 -357,182,401,60 -365,176,388,71 -367,185,384,64 -365,185,393,57 -367,182,397,54 -358,192,398,52 -353,195,399,53 -346,188,401,65 -352,193,395,60 -349,187,388,76 -343,199,397,61 -345,193,395,67 -335,197,396,72 -330,208,396,66 -336,203,397,64 -329,202,395,74 -333,200,407,60 -326,211,394,69 -323,220,383,74 -309,223,397,71 -308,220,401,71 -319,217,386,78 -320,216,392,72 -323,212,398,67 -320,208,405,67 -318,211,405,66 -317,210,396,77 -303,223,404,70 -303,214,408,75 -309,217,405,69 -310,220,400,70 -316,214,403,67 -311,210,412,67 -314,208,420,58 -321,205,411,63 -324,209,415,52 -324,210,413,53 -327,207,399,67 -320,200,402,78 -321,206,401,72 -312,215,405,68 -318,211,402,69 -317,213,401,69 -314,211,401,74 -316,216,402,66 -310,217,394,79 -313,214,386,87 -311,218,392,79 -306,220,397,77 -303,215,394,88 -290,225,405,80 -282,224,420,74 -274,218,423,85 -276,210,419,95 -267,211,428,94 -269,209,441,81 -274,205,444,77 -272,207,445,76 -279,196,442,83 -285,194,445,76 -279,202,452,67 -279,199,449,73 -282,194,451,73 -297,188,439,76 -295,192,433,80 -294,199,430,77 -287,202,439,72 -295,198,439,68 -303,187,435,75 -293,198,430,79 -295,197,434,74 -297,199,436,68 -302,194,427,77 -310,193,426,71 -315,189,423,73 -305,195,434,66 -311,185,433,71 -311,180,438,71 -310,180,436,74 -315,176,434,75 -325,178,429,68 -318,185,434,63 -324,184,426,66 -322,192,422,64 -318,192,422,68 -328,195,406,71 -332,193,402,73 -327,194,399,80 -316,208,400,76 -311,207,406,76 -319,204,413,64 -318,210,411,61 -319,205,407,69 -322,208,400,70 -331,204,405,60 -324,207,407,62 -327,205,409,59 -330,199,401,70 -320,193,407,80 -318,198,406,78 -323,192,408,77 -320,191,418,71 -325,196,417,62 -329,192,409,70 -316,194,412,78 -306,209,413,72 -317,206,400,77 -319,209,400,72 -321,203,408,68 -316,207,406,71 -323,214,398,65 -328,213,392,67 -330,206,400,64 -333,201,399,67 -335,207,390,68 -341,205,398,56 -343,200,393,64 -342,198,390,70 -346,200,377,77 -338,205,382,75 -323,217,383,77 -314,228,377,81 -312,223,382,83 -315,220,384,81 -313,221,389,77 -310,222,389,79 -308,222,403,67 -311,222,400,67 -307,219,401,73 -296,223,404,77 -284,219,414,83 -279,225,407,89 -274,226,416,84 -270,219,426,85 -267,212,433,88 -268,215,435,82 -270,215,441,74 -280,214,435,71 -273,223,430,74 -266,229,434,71 -265,222,432,81 -270,219,432,79 -262,217,441,80 -275,208,437,80 -284,210,429,77 -277,214,438,71 -281,211,439,69 -280,221,436,63 -290,206,424,80 -288,206,422,84 -276,206,429,89 -282,209,418,91 -283,219,415,83 -272,221,426,81 -271,217,439,73 -272,219,448,61 -276,211,445,68 -282,202,444,72 -293,192,438,77 -295,191,449,65 -299,180,456,65 -298,183,451,68 -305,179,439,77 -308,182,446,64 -316,178,438,68 -311,183,445,61 -326,175,436,63 -336,176,425,63 -347,176,416,61 -339,187,421,53 -345,191,415,49 -338,196,414,52 -344,188,409,59 -336,202,407,55 -338,206,397,59 -340,206,386,68 -344,199,382,75 -347,204,378,71 -342,205,385,68 -345,199,388,68 -332,207,386,75 -319,205,389,87 -299,223,405,73 -300,230,402,68 -284,232,415,69 -297,217,413,73 -304,213,405,78 -300,204,407,89 -293,211,413,83 -301,214,414,71 -308,208,412,72 -314,198,413,75 -311,211,409,69 -311,208,408,73 -312,206,410,72 -316,206,406,72 -327,202,405,66 -326,214,397,63 -329,205,396,70 -324,210,395,71 -331,206,393,70 -325,206,395,74 -324,207,399,70 -327,215,397,61 -330,219,394,57 -338,209,390,63 -340,204,399,57 -340,209,402,49 -344,204,392,60 -343,212,394,51 -334,214,400,52 -342,199,398,61 -338,201,406,55 -345,205,394,56 -346,207,394,53 -338,209,393,60 -342,209,390,59 -328,214,397,61 -332,214,386,68 -329,209,385,77 -324,208,395,73 -331,208,386,75 -330,202,394,74 -318,210,396,76 -321,206,402,71 -322,197,408,73 -314,206,411,69 -310,212,416,62 -311,213,425,51 -314,212,423,51 -317,204,413,66 -307,209,420,64 -300,214,420,66 -301,219,418,62 -306,217,419,58 -319,214,406,61 -324,213,406,57 -322,208,415,55 -328,201,398,73 -331,199,402,68 -323,209,400,68 -320,212,404,64 -317,209,401,73 -310,213,405,72 -292,223,409,76 -291,219,407,83 -289,221,406,84 -294,213,404,89 -278,225,413,84 -280,214,414,92 -274,213,431,82 -272,225,432,71 -269,218,434,79 -282,215,427,76 -281,216,441,62 -282,216,437,65 -279,216,441,64 -280,214,437,69 -287,210,432,71 -296,212,422,70 -311,206,415,68 -314,202,411,73 -310,192,415,83 -305,193,425,77 -303,197,423,77 -298,202,428,72 -304,200,424,72 -301,205,423,71 -310,205,418,67 -303,217,420,60 -305,210,420,65 -301,211,418,70 -303,215,419,63 -301,215,421,63 -306,206,415,73 -290,216,424,70 -295,207,431,67 -284,209,437,70 -289,200,434,77 -296,188,439,77 -290,190,443,77 -292,185,451,72 -294,182,453,71 -289,191,456,64 -299,194,449,58 -313,179,451,57 -329,173,442,56 -327,183,435,55 -325,186,426,63 -310,195,434,61 -306,192,436,66 -306,197,428,69 -305,206,424,65 -304,208,420,68 -293,212,427,68 -303,202,422,73 -309,197,415,79 -306,198,421,75 -306,199,413,82 -305,205,412,78 -289,201,418,92 -299,200,419,82 -295,200,439,66 -297,195,440,68 -293,201,444,62 -301,198,439,62 -296,201,441,62 -295,209,431,65 -293,212,429,66 -297,219,426,58 -302,213,416,69 -293,223,419,65 -287,220,426,67 -281,230,420,69 -273,233,420,74 -277,220,425,78 -283,215,424,78 -285,218,421,76 -293,208,427,72 -292,197,429,82 -295,200,424,81 -286,194,431,89 -288,192,434,86 -297,183,438,82 -298,190,442,70 -298,188,451,63 -301,184,454,61 -311,187,444,58 -321,189,434,56 -332,192,419,57 -334,195,413,58 -327,197,413,63 -318,200,418,64 -311,204,421,64 -324,197,413,66 -328,204,403,65 -328,206,410,56 -327,207,409,57 -332,203,405,60 -339,202,406,53 -344,204,398,54 -348,207,388,57 -348,211,390,51 -353,208,389,50 -357,204,379,60 -359,204,379,58 -362,196,373,69 -366,208,361,65 -356,203,369,72 -347,208,373,72 -342,216,370,72 -338,211,375,76 -313,222,385,80 -292,235,395,78 -291,235,395,79 -292,237,399,72 -284,240,409,67 -287,238,402,73 -275,246,399,80 -274,244,397,85 -277,238,391,94 -262,237,398,103 -263,238,408,91 -273,236,401,90 -264,249,414,73 -258,257,415,70 -267,244,409,80 -259,246,415,80 -260,247,417,76 -262,236,426,76 -265,230,431,74 -254,228,441,77 -268,221,434,77 -273,215,438,74 -297,211,429,63 -302,202,432,64 -304,200,433,63 -303,209,434,54 -312,208,427,53 -317,197,431,55 -313,206,435,46 -318,203,434,45 -323,201,431,45 -326,199,412,63 -325,203,408,64 -316,207,414,63 -309,202,417,72 -304,202,422,72 -296,201,426,77 -291,206,434,69 -303,192,428,77 -302,193,424,81 -303,193,426,78 -313,189,421,77 -311,196,420,73 -310,201,421,68 -305,213,416,66 -299,209,413,79 -293,212,410,85 -293,217,403,87 -293,214,420,73 -293,219,421,67 -291,221,418,70 -287,217,425,71 -298,210,432,60 -302,206,431,61 -303,194,431,72 -292,209,437,62 -294,204,436,66 -298,196,434,72 -299,204,435,62 -316,200,424,60 -325,192,424,59 -337,189,427,47 -343,185,421,51 -343,182,420,55 -346,182,411,61 -335,188,410,67 -334,195,400,71 -339,195,398,68 -326,196,419,59 -325,197,423,55 -332,193,409,66 -335,193,398,74 -321,205,405,69 -321,210,403,66 -318,211,394,77 -326,209,392,73 -325,209,402,64 -308,216,412,64 -308,219,407,66 -305,221,410,64 -281,231,415,73 -287,212,417,84 -285,210,421,84 -292,212,423,73 -287,211,431,71 -294,206,428,72 -295,207,430,68 -289,202,436,73 -297,196,442,65 -315,185,438,62 -316,194,435,55 -321,199,426,54 -333,187,423,57 -333,188,420,59 -342,190,410,58 -336,199,403,62 -336,188,414,62 -343,192,399,66 -348,188,396,68 -335,200,414,51 -344,199,406,51 -349,197,398,56 -358,193,403,46 -352,204,390,54 -359,202,386,53 -361,200,386,53 -357,210,380,53 -346,217,378,59 -344,211,379,66 -335,202,390,73 -334,199,393,74 -329,207,394,70 -330,202,394,74 -320,214,405,61 -324,213,401,62 -323,210,398,69 -324,206,400,70 -333,200,398,69 -339,196,400,65 -332,208,401,59 -321,211,405,63 -326,211,398,65 -322,215,402,61 -324,212,395,69 -326,209,399,66 -322,208,401,69 -327,213,401,59 -333,200,397,70 -338,189,408,65 -339,180,420,61 -350,185,417,48 -348,187,419,46 -359,185,406,50 -359,190,394,57 -360,196,389,55 -362,192,389,57 -361,188,389,62 -364,188,385,63 -356,191,389,64 -360,192,391,57 -364,187,385,64 -354,190,385,71 -347,192,387,74 -335,199,390,76 -323,211,391,75 -325,207,394,74 -319,208,403,70 -313,201,406,80 -318,204,413,65 -323,205,404,68 -328,199,402,71 -320,205,409,66 -329,205,393,73 -336,201,392,71 -336,201,398,65 -331,206,401,62 -329,205,405,61 -332,192,405,71 -340,194,404,62 -339,206,400,55 -327,212,397,64 -317,207,398,78 -320,207,400,73 -321,208,389,82 -309,210,398,83 -300,213,403,84 -297,214,414,75 -300,220,418,62 -307,216,413,64 -305,217,417,61 -304,212,418,66 -303,212,415,70 -299,214,418,69 -310,207,411,72 -303,207,416,74 -304,209,417,70 -289,218,416,77 -294,217,421,68 -298,211,417,74 -286,212,422,80 -281,215,423,81 -288,209,434,69 -287,207,438,68 -289,209,436,66 -280,216,437,67 -286,225,435,54 -291,211,429,69 -297,203,430,70 -289,203,438,70 -290,196,449,65 -294,195,439,72 -279,208,441,72 -282,203,444,71 -283,204,437,76 -284,199,438,79 -293,202,424,81 -297,195,427,81 -281,204,438,77 -288,202,437,73 -287,210,447,56 -287,206,452,55 -280,204,450,66 -283,193,454,70 -281,195,457,67 -299,197,442,62 -311,192,439,58 -324,185,426,65 -329,181,425,65 -336,181,420,63 -320,190,419,71 -324,184,422,70 -326,181,422,71 -329,191,411,69 -335,191,403,71 -341,190,402,67 -349,190,399,62 -339,194,399,68 -332,203,402,63 -337,203,397,63 -347,195,392,66 -346,193,390,71 -340,201,390,69 -336,205,402,57 -339,203,396,62 -341,200,394,65 -337,205,405,53 -347,199,388,66 -351,196,388,65 -357,196,382,65 -346,201,387,66 -349,198,375,78 -342,200,383,75 -338,210,398,54 -339,209,382,70 -339,208,373,80 -332,217,380,71 -332,221,371,76 -343,213,368,76 -327,219,374,80 -311,220,386,83 -311,216,384,89 -315,216,381,88 -307,215,384,94 -304,208,396,92 -298,209,392,101 -291,220,395,94 -290,224,410,76 -295,223,408,74 -290,216,418,76 -281,214,426,79 -277,217,438,68 -287,196,439,78 -293,200,441,66 -301,187,442,70 -302,191,434,73 -310,190,430,70 -310,194,430,66 -306,198,432,64 -308,203,425,64 -312,204,421,63 -314,201,423,62 -320,190,424,66 -327,190,420,63 -337,183,419,61 -351,180,401,68 -343,191,402,64 -339,206,398,57 -327,220,399,54 -326,215,398,61 -318,225,394,63 -325,221,384,70 -316,235,385,64 -307,231,382,80 -295,236,393,76 -296,233,401,70 -295,230,403,72 -290,228,402,80 -287,220,417,76 -290,211,423,76 -295,213,422,70 -295,224,417,64 -293,217,426,64 -298,214,431,57 -302,209,431,58 -313,208,418,61 -317,208,411,64 -316,203,408,73 -317,212,397,74 -316,216,401,67 -319,217,401,63 -315,220,408,57 -307,222,406,65 -305,218,412,65 -307,219,405,69 -297,223,407,73 -291,222,412,75 -289,224,420,67 -287,215,422,76 -286,219,435,60 -282,221,430,67 -291,226,424,59 -300,222,419,59 -294,224,415,67 -294,217,420,69 -298,212,417,73 -300,212,418,70 -306,206,420,68 -314,197,421,68 -311,201,427,61 -311,198,430,61 -320,194,420,66 -326,193,423,58 -323,203,416,58 -320,207,416,57 -315,221,407,57 -313,210,404,73 -303,224,411,62 -311,222,397,70 -317,217,391,75 -311,226,400,63 -299,221,403,77 -307,220,405,68 -296,218,409,77 -283,225,407,85 -286,214,415,85 -289,213,410,88 -282,222,420,76 -295,222,417,66 -298,222,408,72 -298,218,409,75 -295,216,407,82 -281,226,423,70 -282,218,432,68 -287,221,415,77 -287,227,413,73 -295,220,408,77 -290,219,416,75 -284,227,426,63 -300,217,425,58 -308,208,428,56 -303,206,429,62 -298,211,423,68 -294,205,427,74 -299,201,430,70 -311,195,429,65 -313,204,424,59 -324,197,419,60 -327,197,410,66 -340,203,393,64 -351,198,383,68 -348,206,382,64 -353,204,377,66 -354,203,372,71 -354,210,367,69 -362,204,362,72 -365,203,369,63 -364,202,372,62 -358,201,378,63 -349,205,376,70 -353,214,369,64 -353,207,366,74 -345,202,375,78 -340,212,380,68 -331,217,394,58 -330,215,395,60 -335,210,394,61 -342,209,392,57 -344,206,393,57 -337,205,393,65 -329,210,390,71 -322,215,399,64 -326,212,402,60 -314,213,408,65 -321,204,407,68 -332,208,399,61 -327,207,402,64 -332,206,402,60 -327,213,401,59 -335,203,400,62 -330,203,401,66 -325,207,396,72 -313,218,404,65 -315,204,406,75 -322,202,415,61 -319,201,423,57 -316,203,419,62 -305,206,413,76 -304,210,410,76 -285,214,421,80 -290,216,425,69 -290,226,427,57 -297,225,421,57 -314,219,412,55 -313,211,419,57 -315,207,418,60 -318,199,419,64 -321,193,429,57 -314,191,427,68 -318,195,419,68 -318,201,414,67 -319,199,420,62 -310,203,419,68 -323,193,418,66 -318,192,423,67 -323,187,425,65 -334,180,423,63 -339,181,417,63 -342,182,422,54 -346,181,424,49 -342,185,424,49 -336,197,410,57 -338,192,409,61 -337,191,408,64 -332,187,408,73 -329,196,408,67 -322,196,409,73 -320,197,415,68 -338,189,409,64 -337,194,408,61 -345,193,402,60 -349,187,391,73 -350,192,385,73 -346,197,392,65 -349,197,388,66 -350,195,391,64 -350,192,391,67 -362,198,378,62 -369,196,371,64 -364,203,370,63 -356,212,370,62 -352,214,370,64 -357,220,371,52 -351,226,364,59 -330,233,373,64 -330,235,377,58 -322,240,370,68 -312,244,369,75 -314,249,363,74 -317,245,362,76 -318,239,362,81 -326,238,359,77 -308,241,367,84 -299,249,377,75 -278,260,379,83 -271,253,392,84 -266,251,397,86 -262,249,403,86 -250,247,415,88 -258,237,424,81 -259,233,439,69 -265,220,434,81 -266,222,444,68 -265,226,448,61 -269,222,445,64 -273,230,432,65 -281,220,423,76 -280,209,432,79 -270,222,439,69 -272,220,434,74 -265,217,438,80 -268,210,445,77 -284,206,437,73 -283,202,444,71 -284,203,445,68 -290,193,453,64 -292,191,442,75 -290,190,444,76 -288,196,447,69 -291,203,451,55 -309,195,438,58 -316,180,437,67 -320,185,433,62 -315,194,432,59 -314,197,432,57 -313,197,427,63 -320,190,422,68 -318,200,416,66 -321,203,412,64 -327,205,397,71 -334,206,396,64 -318,217,400,65 -311,220,403,66 -306,216,407,71 -302,215,405,78 -296,226,399,79 -292,221,397,90 -288,227,399,86 -287,225,407,81 -289,223,407,81 -294,223,417,66 -301,218,412,69 -310,222,398,70 -310,223,392,75 -313,214,386,87 -303,226,389,82 -298,229,400,73 -294,218,404,84 -287,215,412,86 -283,223,417,77 -293,219,418,70 -287,219,419,75 -289,222,426,63 -297,217,419,67 -310,213,410,67 -307,209,419,65 -302,208,423,67 -303,213,412,72 -306,215,410,69 -309,223,411,57 -308,226,403,63 -310,226,389,75 -298,226,403,73 -299,232,392,77 -297,231,402,70 -291,235,404,70 -290,234,407,69 -294,230,405,71 -302,223,399,76 -306,223,398,73 -310,224,394,72 -305,227,404,64 -308,225,393,74 -305,230,405,60 -308,224,407,61 -308,229,397,66 -313,219,399,69 -317,216,397,70 -316,225,405,54 -322,224,397,57 -318,222,395,65 -320,218,392,70 -312,222,397,69 -311,229,390,70 -314,221,385,80 -309,226,393,72 -315,229,398,58 -310,240,397,53 -309,230,409,52 -312,220,407,61 -312,214,410,64 -304,222,414,60 -313,216,403,68 -313,207,407,73 -320,215,403,62 -318,217,395,70 -312,232,393,63 -313,218,392,77 -314,220,385,81 -315,223,385,77 -295,227,393,85 -291,228,402,79 -286,225,417,72 -289,221,421,69 -288,221,424,67 -289,228,422,61 -293,231,413,63 -297,232,413,58 -307,221,411,61 -305,214,415,66 -314,211,408,67 -325,205,410,60 -322,211,406,61 -328,212,402,58 -328,205,400,67 -323,211,404,62 -317,210,405,68 -323,204,412,61 -311,213,408,68 -317,220,403,60 -322,215,404,59 -319,215,404,62 -325,214,397,64 -322,220,387,71 -318,223,387,72 -318,221,380,81 -301,230,395,74 -301,231,394,74 -293,239,389,79 -287,237,396,80 -289,237,406,68 -287,236,404,73 -295,221,399,85 -291,228,399,82 -281,238,411,70 -278,231,418,73 -275,233,424,68 -286,219,423,72 -294,215,423,68 -287,225,429,59 -299,221,428,52 -302,223,419,56 -295,217,426,62 -289,216,425,70 -288,223,422,67 -280,234,418,68 -288,231,415,66 -294,223,412,71 -305,212,409,74 -310,209,411,70 -310,219,408,63 -320,209,401,70 -316,215,399,70 -303,231,410,56 -298,222,411,69 -294,222,415,69 -285,222,415,78 -285,220,425,70 -282,223,438,57 -285,215,432,68 -285,211,439,65 -284,208,433,75 -284,218,432,66 -285,216,436,63 -288,207,441,64 -292,208,435,65 -301,206,429,64 -308,203,417,72 -309,209,423,59 -317,207,414,62 -309,214,414,63 -310,218,414,58 -299,212,415,74 -297,214,415,74 -295,216,411,78 -294,213,424,69 -294,214,420,72 -289,216,427,68 -292,210,427,71 -291,215,424,70 -298,206,431,65 -290,212,435,63 -286,206,440,68 -300,199,423,78 -290,210,424,76 -296,212,418,74 -298,213,412,77 -302,218,408,72 -307,203,408,82 -308,200,426,66 -310,192,427,71 -307,205,428,60 -314,193,417,76 -312,205,414,69 -314,210,417,59 -313,212,410,65 -299,210,419,72 -297,211,421,71 -293,202,435,70 -302,194,432,72 -304,197,434,65 -309,194,433,64 -299,199,440,62 -302,192,441,65 -306,185,441,68 -313,179,440,68 -319,179,437,65 -320,184,431,65 -322,192,430,56 -326,187,424,63 -321,188,425,66 -334,186,418,62 -335,190,409,66 -332,191,412,65 -341,196,407,56 -331,204,407,58 -334,204,409,53 -338,201,402,59 -334,206,400,60 -341,209,387,63 -342,206,382,70 -328,210,392,70 -336,203,387,74 -335,202,396,67 -327,202,396,75 -323,215,397,65 -332,209,388,71 -327,215,389,69 -317,215,384,84 -314,221,390,75 -308,222,389,81 -303,226,396,75 -314,219,396,71 -317,220,386,77 -307,224,396,73 -300,229,398,73 -295,234,398,73 -287,237,394,82 -280,244,397,79 -295,237,389,79 -299,224,391,86 -294,223,399,84 -290,226,412,72 -304,208,404,84 -305,212,400,83 -295,221,395,89 -282,225,402,91 -280,227,417,76 -289,220,407,84 -283,224,409,84 -290,222,408,80 -294,225,400,81 -298,217,396,89 -301,215,398,86 -291,216,401,92 -296,215,401,88 -301,215,406,78 -303,208,405,84 -306,203,413,78 -297,217,410,76 -295,207,410,88 -288,216,415,81 -290,210,415,85 -292,213,421,74 -298,210,422,70 -308,200,425,67 -316,197,421,66 -318,194,414,74 -305,214,411,70 -311,211,412,66 -311,213,403,73 -309,201,406,84 -323,200,407,70 -321,197,412,70 -317,206,418,59 -328,212,409,51 -326,203,406,65 -318,207,409,66 -322,201,402,75 -308,203,403,86 -299,209,416,76 -307,211,417,65 -304,222,416,58 -299,235,415,51 -306,230,413,51 -313,218,414,55 -314,220,414,52 -321,207,408,64 -325,212,400,63 -321,201,402,76 -314,202,410,74 -315,202,405,78 -324,214,393,69 -331,203,395,71 -316,207,406,71 -318,213,402,67 -319,211,399,71 -311,209,402,78 -317,210,401,72 -314,216,403,67 -312,217,402,69 -313,216,400,71 -325,206,395,74 -318,214,397,71 -318,220,401,61 -325,212,400,63 -319,208,396,77 -308,205,411,76 -303,209,415,73 -296,216,416,72 -302,215,420,63 -285,226,422,67 -289,225,420,66 -279,226,424,71 -277,220,430,73 -280,219,426,75 -275,216,426,83 -277,210,425,88 -269,219,430,82 -269,215,436,80 -278,219,431,72 -283,211,440,66 -287,212,434,67 -290,205,435,70 -297,201,432,70 -280,216,437,67 -290,211,430,69 -281,213,434,72 -284,216,434,66 -287,223,432,58 -291,206,431,72 -291,204,431,74 -294,208,434,64 -305,206,417,72 -309,207,411,73 -304,209,417,70 -311,209,416,64 -304,210,425,61 -313,209,420,58 -314,211,415,60 -310,212,416,62 -305,199,427,69 -293,208,427,72 -288,204,433,75 -298,192,435,75 -294,201,437,68 -301,196,436,67 -303,200,431,66 -309,199,415,77 -311,192,419,78 -313,191,419,77 -313,189,420,78 -315,193,420,72 -305,193,421,81 -307,196,415,82 -309,194,423,74 -308,199,425,68 -310,202,415,73 -305,205,417,73 -304,200,425,71 -313,196,423,68 -308,205,426,61 -316,197,423,64 -316,188,436,60 -315,194,432,59 -307,198,434,61 -305,202,434,59 -318,197,427,58 -333,201,416,50 -335,198,407,60 -340,199,397,64 -335,201,397,67 -332,201,401,66 -334,201,413,52 -342,197,403,58 -347,192,407,54 -349,190,406,55 -359,183,402,56 -364,186,391,59 -364,194,380,62 -363,197,377,63 -363,198,376,63 -365,196,376,63 -363,197,371,69 -360,202,371,67 -358,196,379,67 -355,195,384,66 -359,197,380,64 -357,201,371,71 -354,207,378,61 -357,202,385,56 -353,200,378,69 -351,203,383,63 -357,210,381,52 -352,209,374,65 -349,211,368,72 -345,210,384,61 -347,211,385,57 -352,210,374,64 -345,200,373,82 -337,202,381,80 -341,203,390,66 -346,203,379,72 -350,206,385,59 -361,202,382,55 -365,207,362,66 -359,211,357,73 -354,207,363,76 -348,207,370,75 -336,208,382,74 -333,202,381,84 -324,212,382,82 -302,231,396,71 -300,220,395,85 -298,223,391,88 -292,223,408,77 -289,221,408,82 -277,229,415,79 -277,231,413,79 -284,232,414,70 -293,224,413,70 -291,223,411,75 -291,224,411,74 -291,228,405,76 -296,231,396,77 -298,226,396,80 -294,236,401,69 -293,238,405,64 -296,226,416,62 -296,223,416,65 -300,221,414,65 -302,216,420,62 -299,225,420,56 -296,217,419,68 -296,221,410,73 -287,222,423,68 -290,224,423,63 -292,217,421,70 -292,215,418,75 -293,219,411,77 -284,227,414,75 -276,224,421,79 -270,230,420,80 -269,226,429,76 -271,234,421,74 -275,223,427,75 -281,221,427,71 -277,226,427,70 -271,234,431,64 -275,232,429,64 -276,228,430,66 -273,222,425,80 -275,223,420,82 -269,229,425,77 -271,221,434,74 -280,210,423,87 -279,216,436,69 -285,213,428,74 -283,220,427,70 -287,212,430,71 -298,204,427,71 -294,215,427,64 -298,205,430,67 -305,198,438,59 -302,195,443,60 -298,202,447,53 -310,189,439,62 -320,188,424,68 -331,188,414,67 -335,185,409,71 -326,186,418,70 -327,182,423,68 -319,186,430,65 -324,184,428,64 -329,187,428,56 -337,179,424,60 -339,180,425,56 -344,179,422,55 -339,183,416,62 -352,176,411,61 -362,172,408,58 -358,177,404,61 -359,180,401,60 -358,188,390,64 -357,189,392,62 -349,197,393,61 -350,193,387,70 -355,201,374,70 -352,200,376,72 -352,199,380,69 -354,194,376,76 -349,185,387,79 -346,188,396,70 -351,193,388,68 -353,191,390,66 -365,190,382,63 -363,184,390,63 -369,188,383,60 -369,185,380,66 -366,187,396,51 -371,186,395,48 -377,189,387,47 -373,183,392,52 -376,186,384,54 -378,189,378,55 -379,196,372,53 -377,201,375,47 -377,196,368,59 -372,200,376,52 -375,190,370,65 -372,193,363,72 -364,199,364,73 -355,210,374,61 -370,199,371,60 -380,194,373,53 -369,199,377,55 -368,205,379,48 -372,204,369,55 -381,202,363,54 -367,200,364,69 -359,211,358,72 -353,223,349,75 -331,225,362,82 -322,225,374,79 -320,228,369,83 -326,222,378,74 -314,233,377,76 -318,227,372,83 -300,231,389,80 -300,233,393,74 -295,233,396,76 -295,230,401,74 -292,232,406,70 -300,223,400,77 -283,224,411,82 -275,228,423,74 -282,225,423,70 -280,235,420,65 -288,235,415,62 -295,235,411,59 -298,242,408,52 -298,231,403,68 -293,233,395,79 -297,231,400,72 -303,226,395,76 -301,215,402,82 -298,209,409,84 -303,216,403,78 -307,209,395,89 -294,214,402,90 -282,226,416,76 -274,231,424,71 -281,225,424,70 -278,223,430,69 -268,226,440,66 -279,223,425,73 -283,219,416,82 -285,218,417,80 -290,218,415,77 -291,218,418,73 -289,216,417,78 -279,214,421,86 -269,216,440,75 -267,220,437,76 -268,215,437,80 -254,227,443,76 -250,224,447,79 -246,216,449,89 -239,235,454,72 -251,223,446,80 -255,225,445,75 -260,220,439,81 -249,222,446,83 -249,223,453,75 -254,217,450,79 -259,208,453,80 -252,207,455,86 -253,209,452,86 -255,211,451,83 -255,205,454,86 -261,194,465,80 -269,193,465,73 -267,190,472,71 -265,191,480,64 -274,193,469,64 -273,192,466,69 -274,185,466,75 -276,187,481,56 -289,179,475,57 -299,177,471,53 -295,182,476,47 -306,168,465,61 -315,171,450,64 -318,179,437,66 -323,183,432,62 -320,192,423,65 -330,185,415,70 -323,191,419,67 -327,184,417,72 -333,184,418,65 -335,179,419,67 -332,184,430,54 -342,186,418,54 -345,184,419,52 -347,187,414,52 -355,199,402,44 -362,188,398,52 -370,191,388,51 -375,187,389,49 -373,183,384,60 -378,186,380,56 -363,189,387,61 -354,197,390,59 -351,206,384,59 -347,203,385,65 -345,206,387,62 -346,206,388,60 -343,196,383,78 -340,200,385,75 -332,207,388,73 -328,215,395,62 -326,211,400,63 -330,210,390,70 -332,212,390,66 -335,213,385,67 -323,219,390,68 -319,214,397,70 -336,202,391,71 -327,208,399,66 -323,203,399,75 -330,203,409,58 -334,195,405,66 -325,196,412,67 -323,196,409,72 -327,199,407,67 -333,204,401,62 +4970,20,5,5 +4955,31,8,6 +4939,40,11,10 +4910,61,15,14 +4884,64,23,29 +4853,80,39,28 +4813,103,55,29 +4783,108,70,39 +4729,141,80,50 +4669,162,99,70 +4609,187,134,70 +4544,205,166,85 +4465,239,193,103 +4371,274,233,122 +4283,312,280,125 +4192,335,324,149 +4090,374,378,158 +4006,404,426,164 +3917,409,483,191 +3811,436,558,195 +3663,470,644,223 +3534,511,738,217 +3456,530,788,226 +3341,564,853,242 +3262,561,921,256 +3138,608,993,261 +3065,604,1040,291 +2978,590,1122,310 +2882,593,1201,324 +2827,619,1261,293 +2736,649,1320,295 +2675,634,1369,322 +2620,640,1437,303 +2582,607,1473,338 +2531,616,1548,305 +2545,596,1572,287 +2508,597,1605,290 +2495,585,1627,293 +2477,586,1621,316 +2393,629,1684,294 +2319,653,1722,306 +2264,651,1737,348 +2199,653,1814,334 +2153,673,1822,352 +2106,690,1859,345 +2094,663,1883,360 +2016,705,1932,347 +1950,728,1977,345 +1924,727,2014,335 +1900,718,2013,369 +1846,757,2057,340 +1823,748,2096,333 +1770,766,2110,354 +1736,725,2147,392 +1703,720,2200,377 +1696,711,2226,367 +1679,692,2255,374 +1677,707,2257,359 +1657,721,2290,332 +1660,722,2248,370 +1645,707,2284,364 +1649,718,2290,343 +1634,699,2295,372 +1652,709,2280,359 +1642,704,2263,391 +1615,717,2275,393 +1570,750,2316,364 +1593,722,2302,383 +1609,702,2316,373 +1628,686,2327,359 +1597,725,2328,350 +1605,677,2339,379 +1622,667,2350,361 +1636,670,2353,341 +1627,692,2362,319 +1627,672,2348,353 +1592,704,2351,353 +1564,706,2364,366 +1583,659,2381,377 +1607,672,2384,337 +1595,693,2381,331 +1592,695,2374,339 +1625,694,2352,329 +1623,672,2333,372 +1636,653,2361,350 +1675,634,2358,333 +1674,673,2334,319 +1741,639,2308,312 +1737,648,2296,319 +1751,643,2284,322 +1750,653,2262,335 +1697,697,2287,319 +1696,678,2276,350 +1651,696,2296,357 +1643,697,2317,343 +1686,662,2306,346 +1708,643,2310,339 +1729,673,2273,325 +1764,667,2237,332 +1736,694,2256,314 +1743,700,2223,334 +1711,729,2248,312 +1686,714,2244,356 +1708,691,2213,388 +1695,701,2247,357 +1678,705,2260,357 +1681,662,2287,370 +1663,674,2287,376 +1648,702,2311,339 +1631,697,2332,340 +1644,696,2334,326 +1645,686,2318,351 +1669,690,2296,345 +1630,728,2298,344 +1639,718,2279,364 +1615,717,2319,349 +1596,729,2326,349 +1645,721,2301,333 +1668,696,2279,357 +1698,647,2281,374 +1699,656,2310,335 +1687,656,2324,333 +1698,668,2306,328 +1732,654,2278,336 +1755,652,2276,317 +1763,653,2274,310 +1744,679,2256,321 +1733,700,2246,321 +1744,686,2232,338 +1723,697,2219,361 +1715,720,2220,345 +1700,729,2220,351 +1670,723,2233,374 +1653,706,2265,376 +1640,730,2268,362 +1630,743,2277,350 +1659,735,2255,351 +1694,705,2256,345 +1667,731,2258,344 +1678,733,2241,348 +1686,734,2241,339 +1704,714,2227,355 +1721,726,2204,349 +1666,739,2241,354 +1625,761,2221,393 +1596,767,2228,409 +1583,790,2238,389 +1569,765,2281,385 +1559,766,2284,391 +1525,753,2328,394 +1515,750,2356,379 +1503,759,2374,364 +1522,706,2380,392 +1487,736,2396,381 +1479,736,2402,383 +1485,709,2433,373 +1491,696,2460,353 +1501,674,2453,372 +1507,691,2458,344 +1529,656,2463,352 +1548,661,2440,351 +1531,674,2460,335 +1549,675,2431,345 +1572,648,2455,325 +1603,641,2426,330 +1627,618,2414,341 +1665,614,2399,322 +1697,601,2363,339 +1693,612,2367,328 +1724,629,2324,323 +1755,651,2296,298 +1756,655,2265,324 +1746,678,2274,302 +1790,655,2232,323 +1749,699,2225,327 +1725,683,2220,372 +1691,722,2244,343 +1716,690,2240,354 +1723,699,2261,317 +1697,711,2264,328 +1734,688,2247,331 +1690,698,2260,352 +1640,719,2271,370 +1621,739,2289,351 +1617,755,2260,368 +1607,730,2290,373 +1588,730,2301,381 +1572,731,2331,366 +1581,732,2321,366 +1586,683,2346,385 +1588,673,2384,355 +1576,671,2415,338 +1583,666,2417,334 +1592,667,2403,338 +1614,653,2387,346 +1642,652,2368,338 +1651,666,2350,333 +1682,669,2312,337 +1683,695,2295,327 +1692,672,2293,343 +1643,699,2320,338 +1681,669,2300,350 +1648,675,2307,370 +1670,687,2307,336 +1706,716,2244,334 +1674,715,2239,372 +1654,744,2246,356 +1628,749,2252,371 diff --git a/target/classes/output.png b/target/classes/output.png new file mode 100644 index 0000000000000000000000000000000000000000..26f0e188e8b42f7e5058e9e7730231d057497782 Binary files /dev/null and b/target/classes/output.png differ diff --git a/target/classes/parameters.yaml b/target/classes/parameters.yaml index d1bb7409f96ecc1192fee3aaa793e69404728d04..3ddf6aed6d973b2ca91423d04dcbd18c69932fb9 100644 --- a/target/classes/parameters.yaml +++ b/target/classes/parameters.yaml @@ -1,12 +1,12 @@ -seed : 120 -population : 1000 #number of agents -size : 500 #size of the world in pixels -nbOfPatientZero : 1 -infectionRate : 0.3 #chance that an infected agent will spread to a susceptible agent -incubationRate : 0.1 #chance that an exposed agent become infected each cycle -recoveryRate : 0.3 #chance that an infected agent become recovered each cycle -looseImmunityRate : 0.05 #chance that a recovered agent become suceptible again -nbOfCycles : 10000 #if the number is negative, will run endlessly -timeBetweenCycles : 0 #in milliseconds, 0 or lower will run cycles as fast as possible -synchronousMode : false #if true, will wake synchronously the agents in a pseudo-random order based on the given seed otherwise will wake up the agents asynchronously -graphicalMode : false #if false, will run without graphical interface \ No newline at end of file +graphicalMode: true +incubationRate: 0.3 +infectionRate: 0.035 +looseImmunityRate: 0.09 +recoveryRate: 0.6 +nbOfCycles: 2000 +nbOfPatientZero: 10 +population: 5000 +seed: 120 +size: 500 +synchronousMode: false +timeBetweenCycles: 0 diff --git a/target/classes/pythonOutput/.getkeep b/target/classes/pythonOutput/.getkeep new file mode 100644 index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 diff --git a/target/classes/pythonOutput/output0.csv b/target/classes/pythonOutput/output0.csv new file mode 100644 index 0000000000000000000000000000000000000000..623478b2345876bbc061382403eb752748505b6d --- /dev/null +++ b/target/classes/pythonOutput/output0.csv @@ -0,0 +1,1001 @@ +SUCEPTIBLE,EXPOSED,RECOVERED,INFECTED +997,2,1,0 +998,2,0,0 +998,2,0,0 +998,1,0,1 +998,1,0,1 +998,1,1,0 +998,1,1,0 +998,1,1,0 +998,1,1,0 +999,1,0,0 +999,1,0,0 +999,1,0,0 +999,1,0,0 +999,1,0,0 +999,1,0,0 +998,1,0,1 +998,0,1,1 +998,0,1,1 +997,1,1,1 +997,1,1,1 +997,1,2,0 +997,1,2,0 +997,1,2,0 +997,1,2,0 +999,1,0,0 +999,1,0,0 +999,1,0,0 +999,1,0,0 +999,1,0,0 +999,1,0,0 +999,0,0,1 +998,1,0,1 +996,3,0,1 +996,3,0,1 +996,3,0,1 +996,3,1,0 +996,3,1,0 +996,3,1,0 +997,2,0,1 +995,4,1,0 +995,4,1,0 +994,4,1,1 +993,5,2,0 +992,4,2,2 +989,7,2,2 +988,8,2,2 +986,10,2,2 +985,11,3,1 +985,11,4,0 +985,10,4,1 +985,10,3,2 +984,12,3,1 +985,12,2,1 +984,13,2,1 +983,12,2,3 +981,14,3,2 +981,12,3,4 +979,14,4,3 +979,14,5,2 +979,14,3,4 +976,16,3,5 +973,19,3,5 +971,20,3,6 +971,21,6,2 +971,21,5,3 +970,22,6,2 +971,22,7,0 +974,20,4,2 +976,17,4,3 +973,19,5,3 +970,18,5,7 +970,15,9,6 +970,17,8,5 +970,16,8,6 +970,14,9,7 +967,16,9,8 +969,17,5,9 +966,19,5,10 +966,18,7,9 +965,20,6,9 +962,20,6,12 +959,20,11,10 +958,18,13,11 +958,19,10,13 +956,26,8,10 +956,26,11,7 +956,26,12,6 +956,25,15,4 +954,24,16,6 +955,25,14,6 +955,25,11,9 +956,23,11,10 +953,26,9,12 +950,27,11,12 +951,27,10,12 +951,27,13,9 +949,28,14,9 +945,33,13,9 +944,34,9,13 +941,30,11,18 +938,35,12,15 +934,39,11,16 +932,39,13,16 +932,37,19,12 +930,38,18,14 +928,41,15,16 +922,41,18,19 +922,43,21,14 +918,44,24,14 +926,32,21,21 +921,36,26,17 +925,36,25,14 +927,34,24,15 +926,40,20,14 +924,44,20,12 +925,40,20,15 +923,45,23,9 +926,49,19,6 +932,39,18,11 +928,41,15,16 +924,42,16,18 +921,47,18,14 +920,48,16,16 +916,47,20,17 +911,49,24,16 +914,45,26,15 +922,45,21,12 +924,43,20,13 +924,44,23,9 +925,45,21,9 +927,42,20,11 +925,42,23,10 +926,41,20,13 +923,43,20,14 +926,41,20,13 +926,40,21,13 +925,43,21,11 +924,45,15,16 +920,46,17,17 +917,43,18,22 +916,49,20,15 +910,52,23,15 +912,47,21,20 +906,48,22,24 +900,55,23,22 +901,58,19,22 +904,54,19,23 +900,55,25,20 +899,58,23,20 +898,58,23,21 +898,51,28,23 +900,45,28,27 +899,51,27,23 +896,50,30,24 +894,57,24,25 +891,58,27,24 +887,60,30,23 +885,65,33,17 +885,58,34,23 +886,61,30,23 +886,63,31,20 +883,61,35,21 +885,56,37,22 +891,55,37,17 +890,59,36,15 +890,58,40,12 +892,59,37,12 +900,57,32,11 +899,60,29,12 +899,61,25,15 +900,57,27,16 +898,52,30,20 +897,55,31,17 +898,52,33,17 +891,58,31,20 +892,59,30,19 +900,55,24,21 +902,55,22,21 +896,54,26,24 +889,60,28,23 +887,60,29,24 +882,66,34,18 +879,70,37,14 +877,72,37,14 +879,71,33,17 +879,68,30,23 +879,65,28,28 +875,70,29,26 +866,75,28,31 +868,77,25,30 +869,73,26,32 +871,70,34,25 +873,73,29,25 +872,72,32,24 +875,69,30,26 +874,70,35,21 +878,63,32,27 +877,67,27,29 +870,69,33,28 +865,67,33,35 +861,73,37,29 +862,73,39,26 +855,78,43,24 +853,79,42,26 +855,81,37,27 +857,80,44,19 +864,76,39,21 +867,79,35,19 +867,79,28,26 +866,80,31,23 +871,84,29,16 +874,81,27,18 +873,76,29,22 +871,73,30,26 +870,73,35,22 +873,76,28,23 +869,79,26,26 +867,75,31,27 +864,81,31,24 +862,75,34,29 +857,75,38,30 +855,76,41,28 +855,80,48,17 +858,75,42,25 +851,77,47,25 +849,84,45,22 +851,80,42,27 +854,79,43,24 +857,74,42,27 +857,75,45,23 +858,79,41,22 +858,83,34,25 +857,82,38,23 +861,82,30,27 +850,88,36,26 +844,92,34,30 +834,100,37,29 +834,101,37,28 +833,96,45,26 +830,96,46,28 +823,97,45,35 +820,100,52,28 +825,89,51,35 +826,90,49,35 +823,94,51,32 +826,94,54,26 +822,93,58,27 +834,86,52,28 +830,92,51,27 +831,88,52,29 +838,89,49,24 +846,84,39,31 +843,84,40,33 +837,88,44,31 +830,93,50,27 +827,89,51,33 +826,85,53,36 +822,88,57,33 +822,95,56,27 +824,98,54,24 +828,98,53,21 +827,92,49,32 +829,92,50,29 +828,89,54,29 +824,93,50,33 +814,95,55,36 +815,98,54,33 +811,101,60,28 +814,104,53,29 +812,104,51,33 +809,104,45,42 +808,109,44,39 +805,110,44,41 +799,117,48,36 +806,109,45,40 +804,107,43,46 +798,109,52,41 +797,109,57,37 +801,112,50,37 +791,113,57,39 +787,110,64,39 +786,118,62,34 +786,114,59,41 +782,117,56,45 +774,120,55,51 +775,118,55,52 +772,118,63,47 +779,117,63,41 +784,115,58,43 +780,118,55,47 +775,120,60,45 +778,123,60,39 +782,119,56,43 +778,126,55,41 +782,117,59,42 +781,120,55,44 +779,130,51,40 +771,134,51,44 +759,136,56,49 +762,132,52,54 +753,132,67,48 +751,134,65,50 +754,130,70,46 +757,133,68,42 +763,127,61,49 +764,125,58,53 +751,136,72,41 +753,132,70,45 +757,131,69,43 +752,133,61,54 +746,141,69,44 +747,143,62,48 +731,152,69,48 +733,151,65,51 +727,154,70,49 +717,156,69,58 +717,156,78,49 +715,160,80,45 +703,160,80,57 +712,157,76,55 +714,156,81,49 +716,157,75,52 +714,154,69,63 +709,159,74,58 +702,164,79,55 +708,162,79,51 +712,162,70,56 +712,160,69,59 +702,167,74,57 +701,166,74,59 +696,166,77,61 +688,170,92,50 +695,164,90,51 +688,169,88,55 +693,168,78,61 +686,170,86,58 +682,175,91,52 +689,174,88,49 +695,177,81,47 +695,167,94,44 +703,171,83,43 +701,167,81,51 +713,168,68,51 +702,172,65,61 +706,172,64,58 +699,178,67,56 +698,178,65,59 +703,172,70,55 +689,175,82,54 +687,175,84,54 +686,179,79,56 +682,184,78,56 +680,185,81,54 +677,180,85,58 +678,179,83,60 +681,160,89,70 +682,167,84,67 +682,161,95,62 +685,168,96,51 +699,162,95,44 +705,170,85,40 +714,163,78,45 +725,153,70,52 +737,150,69,44 +732,154,68,46 +734,155,68,43 +735,154,61,50 +726,156,65,53 +717,152,71,60 +708,155,78,59 +697,161,90,52 +695,164,87,54 +696,165,88,51 +698,151,91,60 +708,147,92,53 +702,156,97,45 +717,147,85,51 +718,144,76,62 +714,149,82,55 +715,152,85,48 +721,133,85,61 +721,138,89,52 +720,136,102,42 +738,141,83,38 +737,138,82,43 +740,134,75,51 +739,139,74,48 +737,143,71,49 +730,147,72,51 +732,147,72,49 +731,146,76,47 +738,143,69,50 +737,137,68,58 +725,147,73,55 +720,152,72,56 +714,151,79,56 +714,148,78,60 +723,151,72,54 +722,154,73,51 +726,153,75,46 +727,158,72,43 +724,161,70,45 +711,172,68,49 +721,171,64,44 +721,163,63,53 +720,151,62,67 +701,173,62,64 +703,172,58,67 +698,169,73,60 +695,166,72,67 +690,166,77,67 +689,161,82,68 +686,163,76,75 +676,171,84,69 +670,174,90,66 +676,173,83,68 +668,171,98,63 +668,163,94,75 +668,160,106,66 +672,161,108,59 +678,157,108,57 +679,156,106,59 +693,147,98,62 +700,150,81,69 +697,159,81,63 +695,164,77,64 +693,171,84,52 +689,179,76,56 +702,172,71,55 +698,179,73,50 +691,179,80,50 +680,183,83,54 +668,186,87,59 +668,182,91,59 +661,186,93,60 +650,196,94,60 +652,195,90,63 +657,185,101,57 +651,188,105,56 +659,184,111,46 +656,188,109,47 +662,184,103,51 +684,171,94,51 +672,184,95,49 +680,179,89,52 +685,179,80,56 +684,180,80,56 +684,175,79,62 +676,185,79,60 +685,181,76,58 +687,173,78,62 +680,179,85,56 +691,170,88,51 +681,180,87,52 +677,179,85,59 +677,175,86,62 +674,175,90,61 +673,175,94,58 +676,179,98,47 +682,178,80,60 +679,169,81,71 +672,173,95,60 +666,174,101,59 +677,171,96,56 +677,174,102,47 +682,169,101,48 +688,168,93,51 +684,173,88,55 +686,173,85,56 +690,171,81,58 +692,170,87,51 +689,173,87,51 +698,172,74,56 +689,171,82,58 +687,179,82,52 +679,173,85,63 +681,169,93,57 +682,172,89,57 +682,167,83,68 +686,164,84,66 +688,165,80,67 +686,162,79,73 +673,172,93,62 +672,185,85,58 +676,184,90,50 +681,177,87,55 +680,180,83,57 +679,178,83,60 +689,176,79,56 +693,175,79,53 +686,186,73,55 +681,179,79,61 +682,178,81,59 +684,177,81,58 +679,180,83,58 +672,186,82,60 +675,175,88,62 +680,170,96,54 +678,176,98,48 +682,171,90,57 +678,172,89,61 +687,163,84,66 +685,164,95,56 +693,153,93,61 +689,162,96,53 +693,169,94,44 +711,158,81,50 +710,160,77,53 +709,170,65,56 +705,172,69,54 +692,178,71,59 +686,179,79,56 +689,175,80,56 +684,179,78,59 +681,186,75,58 +686,185,69,60 +683,181,80,56 +693,180,77,50 +687,184,73,56 +688,183,76,53 +691,175,76,58 +681,179,76,64 +677,183,78,62 +675,188,82,55 +673,184,83,60 +664,180,94,62 +668,183,94,55 +668,190,81,61 +665,192,80,63 +662,189,89,60 +658,185,92,65 +651,188,92,69 +652,184,97,67 +652,186,96,66 +649,192,94,65 +645,186,98,71 +638,185,97,80 +637,183,102,78 +643,187,92,78 +648,184,97,71 +654,178,102,66 +657,178,100,65 +666,170,101,63 +669,171,99,61 +661,177,97,65 +666,182,93,59 +671,170,96,63 +664,186,94,56 +653,194,95,58 +652,196,88,64 +647,195,87,71 +636,206,92,66 +636,204,95,65 +640,199,86,75 +628,206,92,74 +621,218,100,61 +620,212,105,63 +627,208,97,68 +624,210,98,68 +626,207,105,62 +622,209,111,58 +630,206,110,54 +631,208,107,54 +633,203,98,66 +647,186,98,69 +638,190,102,70 +638,196,98,68 +643,204,91,62 +649,193,91,67 +645,188,96,71 +631,203,96,70 +643,207,89,61 +637,207,97,59 +642,194,89,75 +635,189,92,84 +636,192,93,79 +635,194,95,76 +627,202,98,73 +620,212,105,63 +621,208,98,73 +627,204,88,81 +616,213,91,80 +608,212,103,77 +615,216,105,64 +620,210,106,64 +624,199,111,66 +623,199,107,71 +624,198,107,71 +616,200,119,65 +615,207,116,62 +623,201,119,57 +626,199,107,68 +634,205,98,63 +634,197,91,78 +627,206,97,70 +633,196,99,72 +631,202,94,73 +635,189,97,79 +630,194,103,73 +630,187,103,80 +626,189,114,71 +626,186,119,69 +632,178,115,75 +627,195,115,63 +625,191,116,68 +626,194,111,69 +630,194,113,63 +640,199,101,60 +637,204,95,64 +640,205,94,61 +645,195,90,70 +631,207,90,72 +633,201,89,77 +629,201,97,73 +634,198,96,72 +631,201,98,70 +645,193,97,65 +651,193,92,64 +647,194,98,61 +649,184,103,64 +649,182,99,70 +644,193,102,61 +648,189,101,62 +655,188,95,62 +665,187,88,60 +666,185,86,63 +673,176,86,65 +670,177,90,63 +670,183,87,60 +669,179,82,70 +668,186,83,63 +659,196,80,65 +654,199,79,68 +652,200,89,59 +656,200,83,61 +656,200,76,68 +653,199,80,68 +645,197,82,76 +633,200,83,84 +628,202,91,79 +625,204,90,81 +628,201,98,73 +631,192,105,72 +639,191,99,71 +634,198,103,65 +641,192,108,59 +650,187,99,64 +657,180,94,69 +657,175,101,67 +652,178,99,71 +643,184,107,66 +658,173,99,70 +664,172,99,65 +667,172,104,57 +664,179,97,60 +663,184,97,56 +663,180,97,60 +662,179,107,52 +670,180,101,49 +678,173,103,46 +695,168,85,52 +695,164,80,61 +690,163,77,70 +682,171,85,62 +678,178,82,62 +675,188,73,64 +652,195,85,68 +653,193,91,63 +654,185,90,71 +650,192,89,69 +649,188,96,67 +658,182,88,72 +661,176,92,71 +665,169,95,71 +659,176,102,63 +663,174,99,64 +662,181,102,55 +668,173,100,59 +678,161,106,55 +685,157,96,62 +688,158,99,55 +689,162,98,51 +697,159,91,53 +698,157,87,58 +701,159,85,55 +697,150,81,72 +687,153,96,64 +677,161,101,61 +689,157,91,63 +688,162,95,55 +697,164,80,59 +698,165,83,54 +695,168,90,47 +705,171,85,39 +707,170,78,45 +697,176,81,46 +698,176,81,45 +701,186,66,47 +697,182,67,54 +698,185,64,53 +697,184,60,59 +688,186,62,64 +680,185,70,65 +677,186,81,56 +685,184,81,50 +686,174,80,60 +686,171,84,59 +690,171,80,59 +688,172,85,55 +688,175,82,55 +691,163,79,67 +686,170,85,59 +692,162,78,68 +686,174,85,55 +689,170,79,62 +690,167,83,60 +689,171,88,52 +694,173,73,60 +681,181,78,60 +683,181,81,55 +686,171,78,65 +678,172,78,72 +686,171,77,66 +680,177,87,56 +678,184,90,48 +691,178,81,50 +690,183,82,45 +689,192,73,46 +689,184,67,60 +683,183,68,66 +676,177,75,72 +669,181,81,69 +664,184,93,59 +665,177,84,74 +654,190,92,64 +644,178,110,68 +644,186,105,65 +646,184,105,65 +645,185,103,67 +635,190,110,65 +631,198,104,67 +631,197,106,66 +635,195,104,66 +632,192,109,67 +639,194,107,60 +639,193,102,66 +639,183,98,80 +640,184,95,81 +626,205,99,70 +625,191,96,88 +633,192,99,76 +636,199,86,79 +626,204,90,80 +619,216,91,74 +622,216,86,76 +630,204,89,77 +621,211,88,80 +622,209,93,76 +620,206,100,74 +616,213,100,71 +623,218,93,66 +631,219,91,59 +632,220,90,58 +631,205,98,66 +639,207,89,65 +643,208,87,62 +643,204,89,64 +636,206,101,57 +633,214,95,58 +640,212,92,56 +651,201,87,61 +662,202,74,62 +668,194,81,57 +657,200,83,60 +654,199,88,59 +645,197,87,71 +646,191,93,70 +650,194,84,72 +652,195,80,73 +656,203,82,59 +650,200,82,68 +648,194,92,66 +650,197,82,71 +643,204,82,71 +642,200,84,74 +636,201,101,62 +643,193,99,65 +637,189,99,75 +633,194,95,78 +627,195,100,78 +628,194,92,86 +625,192,99,84 +611,193,108,88 +609,193,115,83 +615,193,120,72 +618,190,122,70 +618,190,118,74 +625,186,113,76 +636,176,117,71 +637,175,126,62 +641,178,126,55 +655,171,113,61 +660,174,107,59 +665,175,105,55 +671,173,100,56 +676,177,88,59 +683,173,91,53 +678,168,97,57 +683,169,95,53 +686,171,87,56 +687,171,83,59 +692,177,78,53 +694,178,76,52 +687,180,77,56 +678,182,82,58 +676,183,82,59 +678,184,80,58 +679,182,84,55 +678,185,92,45 +683,184,82,51 +674,188,86,52 +668,188,82,62 +670,181,91,58 +680,176,89,55 +678,171,90,61 +682,172,91,55 +676,170,90,64 +673,175,83,69 +648,189,91,72 +649,186,93,72 +643,193,94,70 +640,202,89,69 +638,193,94,75 +637,196,94,73 +620,204,103,73 +613,200,112,75 +626,202,113,59 +628,202,113,57 +636,196,100,68 +628,208,96,68 +627,209,101,63 +632,205,97,66 +632,205,96,67 +630,204,96,70 +637,189,99,75 +634,186,105,75 +629,180,108,83 +629,177,116,78 +631,174,120,75 +643,174,109,74 +650,168,107,75 +657,170,107,66 +652,173,106,69 +654,177,112,57 +657,185,101,57 +658,183,96,63 +660,181,93,66 +659,187,98,56 +666,179,94,61 +667,176,99,58 +681,174,87,58 +677,182,87,54 +675,179,90,56 +674,181,87,58 +675,178,87,60 +680,185,76,59 +677,192,74,57 +677,181,76,66 +675,189,77,59 +671,197,80,52 +664,196,74,66 +651,201,89,59 +649,204,88,59 +644,200,83,73 +642,199,91,68 +637,193,85,85 +633,194,90,83 +638,186,102,74 +638,178,108,76 +636,178,114,72 +641,187,111,61 +635,194,119,52 +647,189,110,54 +661,185,104,50 +661,185,99,55 +667,182,92,59 +665,189,84,62 +661,191,93,55 +668,184,90,58 +672,184,84,60 +668,186,89,57 +675,182,77,66 +673,180,85,62 +671,185,88,56 +671,190,84,55 +671,183,88,58 +674,181,83,62 +678,174,87,61 +676,177,86,61 +669,173,100,58 +674,169,92,65 +675,168,97,60 +679,163,101,57 +686,161,88,65 +690,163,83,64 +697,164,81,58 +694,170,81,55 +690,175,82,53 +696,171,89,44 +703,165,87,45 +714,146,84,56 +697,146,98,59 +687,160,100,53 +687,160,98,55 +698,151,90,61 +698,155,89,58 +706,152,96,46 +716,149,88,47 +724,151,80,45 +722,152,87,39 +724,153,80,43 +730,153,69,48 +732,152,76,40 +729,156,69,46 +723,158,73,46 +727,157,71,45 +729,152,68,51 +726,151,72,51 +723,161,67,49 +716,161,72,51 +716,156,79,49 +726,156,72,46 +719,159,74,48 +715,167,72,46 +715,163,76,46 +714,166,70,50 +703,163,76,58 +700,170,80,50 +699,160,84,57 +694,166,83,57 +696,160,86,58 +699,159,89,53 +710,152,86,52 +712,151,80,57 +708,155,87,50 +710,159,81,50 +721,153,69,57 +726,152,70,52 +730,150,65,55 +728,152,65,55 +729,154,62,55 +729,151,71,49 +727,147,72,54 +725,151,74,50 +734,149,69,48 +732,149,64,55 +721,153,69,57 +723,143,67,67 +721,148,75,56 +715,155,73,57 +726,149,76,49 +731,142,79,48 +725,144,83,48 +728,147,80,45 +722,144,79,55 +713,148,81,58 +708,156,82,54 +707,148,98,47 +716,147,90,47 +719,148,85,48 +720,145,76,59 +707,158,75,60 +707,157,79,57 +707,153,76,64 +708,156,80,56 +705,166,77,52 +704,166,85,45 +708,161,75,56 +700,162,86,52 +709,169,69,53 +701,170,80,49 +704,161,83,52 +706,169,75,50 +708,165,69,58 +694,171,77,58 +686,178,80,56 +683,188,83,46 +692,187,80,41 +694,185,71,50 +691,185,68,56 +695,182,66,57 +694,185,70,51 +687,191,77,45 +696,189,65,50 +694,190,66,50 +685,187,70,58 +674,190,75,61 +676,188,83,53 +677,187,75,61 +672,183,82,63 diff --git a/target/classes/pythonOutput/output0.png b/target/classes/pythonOutput/output0.png new file mode 100644 index 0000000000000000000000000000000000000000..5ae2d5da283a43365586ff6aa149ffde2065d135 Binary files /dev/null and b/target/classes/pythonOutput/output0.png differ diff --git a/target/classes/pythonOutput/output1.csv b/target/classes/pythonOutput/output1.csv new file mode 100644 index 0000000000000000000000000000000000000000..be16c141ffd0fc002c6b01dbf14c0a29d18b4e38 --- /dev/null +++ b/target/classes/pythonOutput/output1.csv @@ -0,0 +1,1001 @@ +SUCEPTIBLE,EXPOSED,RECOVERED,INFECTED +998,1,1,0 +999,1,0,0 +999,1,0,0 +998,1,0,1 +997,2,0,1 +997,2,1,0 +997,1,1,1 +996,1,1,2 +992,5,2,1 +991,6,2,1 +990,7,2,1 +990,7,2,1 +989,7,2,2 +988,9,1,2 +989,9,0,2 +986,12,2,0 +986,12,2,0 +986,9,2,3 +985,9,4,2 +986,9,5,0 +987,8,4,1 +988,8,3,1 +987,9,2,2 +986,9,2,3 +983,9,2,6 +976,14,5,5 +977,14,5,4 +973,19,4,4 +971,20,3,6 +967,25,1,7 +960,28,2,10 +952,29,4,15 +944,34,9,13 +936,41,11,12 +934,45,10,11 +928,51,10,11 +927,49,13,11 +925,49,11,15 +919,54,15,12 +922,50,12,16 +917,48,9,26 +906,54,18,22 +900,57,23,20 +897,50,26,27 +892,56,27,25 +888,59,26,27 +884,57,33,26 +888,54,32,26 +887,56,32,25 +891,54,34,21 +892,55,36,17 +896,54,33,17 +898,54,33,15 +898,54,30,18 +897,53,28,22 +893,59,29,19 +895,54,32,19 +891,56,33,20 +893,57,33,17 +890,64,33,13 +890,66,33,11 +889,62,34,15 +893,58,32,17 +894,53,33,20 +895,55,31,19 +895,54,31,20 +887,61,32,20 +878,67,32,23 +875,65,30,30 +875,61,33,31 +866,73,36,25 +864,73,36,27 +861,76,43,20 +862,75,44,19 +863,70,47,20 +864,75,41,20 +864,74,41,21 +873,75,33,19 +866,82,32,20 +865,86,28,21 +865,83,24,28 +860,89,27,24 +860,87,35,18 +858,88,35,19 +858,88,37,17 +857,90,33,20 +849,94,37,20 +850,90,34,26 +840,98,37,25 +837,105,29,29 +826,104,30,40 +823,105,34,38 +813,111,43,33 +810,110,44,36 +805,114,51,30 +800,114,59,27 +802,113,62,23 +804,112,54,30 +803,113,56,28 +797,112,53,38 +797,112,58,33 +793,117,59,31 +794,118,57,31 +796,117,50,37 +801,117,50,32 +802,114,52,32 +802,117,48,33 +800,116,48,36 +795,117,49,39 +793,113,56,38 +791,115,50,44 +789,113,63,35 +794,113,63,30 +802,109,58,31 +794,116,58,32 +791,116,58,35 +784,124,57,35 +786,125,53,36 +787,123,53,37 +781,127,48,44 +779,130,58,33 +776,126,58,40 +776,129,62,33 +775,132,66,27 +774,131,65,30 +771,126,70,33 +775,126,64,35 +775,126,54,45 +776,127,50,47 +774,129,46,51 +768,132,58,42 +765,128,58,49 +767,127,60,46 +767,123,58,52 +751,135,65,49 +753,141,63,43 +761,141,53,45 +758,141,58,43 +760,139,53,48 +746,150,62,42 +736,149,72,43 +728,155,74,43 +732,155,73,40 +718,161,73,48 +711,169,81,39 +716,161,77,46 +720,165,73,42 +714,168,72,46 +714,170,68,48 +718,165,68,49 +711,162,73,54 +713,162,75,50 +703,168,76,53 +700,166,84,50 +705,163,82,50 +712,163,70,55 +714,163,68,55 +713,166,60,61 +700,167,70,63 +695,167,80,58 +682,172,91,55 +678,167,100,55 +686,161,95,58 +679,172,89,60 +681,175,79,65 +673,181,79,67 +653,207,77,63 +652,207,75,66 +656,198,80,66 +646,206,86,62 +650,209,76,65 +645,218,79,58 +636,214,84,66 +624,213,100,63 +626,213,99,62 +617,218,102,63 +623,206,103,68 +618,208,116,58 +618,211,106,65 +621,203,100,76 +615,208,102,75 +598,216,107,79 +605,219,98,78 +601,229,101,69 +591,243,99,67 +590,235,99,76 +588,240,108,64 +576,236,113,75 +571,240,120,69 +576,235,121,68 +581,236,110,73 +581,235,115,69 +577,247,101,75 +557,251,113,79 +547,247,124,82 +540,249,129,82 +544,251,115,90 +539,253,117,91 +527,270,114,89 +518,264,119,99 +505,275,123,97 +500,280,118,102 +499,277,123,101 +491,278,133,98 +475,281,142,102 +473,286,148,93 +475,286,149,90 +484,279,144,93 +484,279,141,96 +478,278,139,105 +476,273,137,114 +473,271,161,95 +486,271,150,93 +484,276,154,86 +496,272,143,89 +481,282,148,89 +469,288,147,96 +473,283,150,94 +466,291,147,96 +464,289,147,100 +455,298,155,92 +451,304,153,92 +454,301,152,93 +461,291,151,97 +463,295,158,84 +471,288,153,88 +477,288,133,102 +475,286,139,100 +477,294,137,92 +472,289,150,89 +472,291,150,87 +476,297,148,79 +480,291,137,92 +484,294,138,84 +484,294,129,93 +475,284,132,109 +473,287,145,95 +470,282,143,105 +478,283,134,105 +487,277,138,98 +492,270,138,100 +493,268,148,91 +495,278,140,87 +499,276,132,93 +504,275,139,82 +487,287,140,86 +481,287,143,89 +467,288,134,111 +456,292,144,108 +459,290,141,110 +462,297,144,97 +457,307,152,84 +458,302,143,97 +455,305,137,103 +423,311,149,117 +425,304,163,108 +431,303,166,100 +433,301,160,106 +413,317,162,108 +399,312,173,116 +398,304,194,104 +403,299,200,98 +412,287,190,111 +411,287,185,117 +416,283,176,125 +421,287,173,119 +444,288,177,91 +449,297,174,80 +458,297,160,85 +464,305,143,88 +465,300,147,88 +465,304,148,83 +475,282,146,97 +487,277,151,85 +495,272,142,91 +481,270,150,99 +467,293,143,97 +465,297,131,107 +451,307,147,95 +465,300,133,102 +460,306,136,98 +458,298,128,116 +459,291,135,115 +453,293,137,117 +445,303,150,102 +437,308,146,109 +424,320,147,109 +409,330,138,123 +404,329,156,111 +404,328,150,118 +402,317,164,117 +405,317,176,102 +406,315,180,99 +401,313,189,97 +414,307,188,91 +420,299,185,96 +441,291,162,106 +442,296,157,105 +435,302,152,111 +432,298,161,109 +432,294,172,102 +435,299,163,103 +439,288,166,107 +449,287,168,96 +455,278,164,103 +457,279,164,100 +463,273,164,100 +460,290,155,95 +462,289,140,109 +465,287,140,108 +464,299,145,92 +471,299,139,91 +468,297,146,89 +462,302,144,92 +465,291,143,101 +452,299,155,94 +446,301,155,98 +439,297,148,116 +444,285,154,117 +438,292,161,109 +442,289,157,112 +427,307,151,115 +424,310,170,96 +421,312,174,93 +430,306,166,98 +444,292,160,104 +447,281,160,112 +439,292,160,109 +431,290,164,115 +430,293,173,104 +442,285,156,117 +446,280,157,117 +440,294,159,107 +434,308,160,98 +441,307,160,92 +452,309,154,85 +455,304,142,99 +462,306,139,93 +462,303,141,94 +458,306,135,101 +460,318,130,92 +458,311,129,102 +455,317,130,98 +452,316,126,106 +440,323,135,102 +419,320,160,101 +427,306,160,107 +418,316,157,109 +398,335,162,105 +394,339,168,99 +389,350,171,90 +392,344,162,102 +390,344,168,98 +381,335,175,109 +360,336,190,114 +373,324,182,121 +370,328,192,110 +380,319,192,109 +387,308,186,119 +390,318,186,106 +403,307,184,106 +397,312,175,116 +407,300,175,118 +397,310,179,114 +403,307,178,112 +401,310,177,112 +407,302,177,114 +400,311,165,124 +397,311,174,118 +406,310,172,112 +408,304,165,123 +409,304,171,116 +404,301,188,107 +412,311,193,84 +426,300,179,95 +433,291,177,99 +435,289,158,118 +438,291,157,114 +435,293,152,120 +447,283,154,116 +441,292,164,103 +441,290,157,112 +445,291,156,108 +440,299,160,101 +450,292,147,111 +446,300,156,98 +448,294,149,109 +442,302,153,103 +444,295,154,107 +454,294,152,100 +444,305,155,96 +444,317,145,94 +440,315,144,101 +434,307,146,113 +427,309,159,105 +432,315,155,98 +427,305,160,108 +427,293,179,101 +434,296,169,101 +452,295,155,98 +452,296,155,97 +436,315,160,89 +437,307,157,99 +420,308,168,104 +435,292,158,115 +444,295,162,99 +447,293,153,107 +452,302,151,95 +458,287,153,102 +460,280,147,113 +441,303,167,89 +439,306,162,93 +440,302,156,102 +444,304,158,94 +435,312,157,96 +453,295,150,102 +458,295,152,95 +456,306,152,86 +464,299,147,90 +484,302,132,82 +486,297,131,86 +477,306,123,94 +470,307,136,87 +469,297,135,99 +465,289,149,97 +466,298,140,96 +469,290,142,99 +489,281,129,101 +489,283,138,90 +486,281,144,89 +474,295,140,91 +483,298,131,88 +477,306,135,82 +468,297,146,89 +467,296,142,95 +462,288,150,100 +460,291,143,106 +463,290,147,100 +452,298,153,97 +449,306,153,92 +466,299,144,91 +470,295,141,94 +473,285,149,93 +470,286,161,83 +472,282,162,84 +484,284,144,88 +487,273,145,95 +488,278,145,89 +486,285,150,79 +497,263,140,100 +494,270,145,91 +500,267,140,93 +506,266,145,83 +506,271,137,86 +496,276,132,96 +484,275,139,102 +489,274,132,105 +477,285,144,94 +486,287,135,92 +483,282,137,98 +468,296,142,94 +466,294,157,83 +469,288,157,86 +467,291,155,87 +464,285,160,91 +467,293,148,92 +460,294,144,102 +456,302,144,98 +460,302,144,94 +469,300,148,83 +471,297,148,84 +478,296,144,82 +490,285,139,86 +483,302,129,86 +483,294,128,95 +473,296,141,90 +459,308,145,88 +444,319,144,93 +438,319,140,103 +438,318,149,95 +442,316,150,92 +425,318,154,103 +432,314,156,98 +437,309,148,106 +430,317,142,111 +430,324,143,103 +425,323,147,105 +436,324,145,95 +432,314,155,99 +417,330,152,101 +419,329,151,101 +424,321,145,110 +416,330,156,98 +421,322,151,106 +419,324,158,99 +429,326,156,89 +441,321,132,106 +438,327,137,98 +439,316,147,98 +437,311,141,111 +440,314,147,99 +432,312,152,104 +428,310,162,100 +436,310,155,99 +431,304,168,97 +440,302,160,98 +446,300,161,93 +442,299,158,101 +436,291,155,118 +420,299,168,113 +414,303,174,109 +418,287,173,122 +417,287,189,107 +426,279,180,115 +443,278,172,107 +445,281,168,106 +447,268,169,116 +453,270,166,111 +460,278,154,108 +456,282,162,100 +463,287,157,93 +476,293,149,82 +475,299,133,93 +486,293,126,95 +479,295,136,90 +483,291,135,91 +479,292,137,92 +472,296,137,95 +479,294,127,100 +466,307,140,87 +456,318,133,93 +451,315,132,102 +439,311,143,107 +433,321,137,109 +430,318,145,107 +432,308,144,116 +425,312,158,105 +416,301,153,130 +418,301,165,116 +405,299,171,125 +405,298,175,122 +400,295,185,120 +413,293,178,116 +415,291,183,111 +415,296,180,109 +397,315,184,104 +409,298,175,118 +410,316,173,101 +404,316,176,104 +410,311,165,114 +405,305,178,112 +398,305,185,112 +399,310,178,113 +414,305,181,100 +422,297,181,100 +433,298,177,92 +439,297,169,95 +444,292,168,96 +449,298,151,102 +445,303,145,107 +441,309,145,105 +428,305,155,112 +424,311,163,102 +420,312,174,94 +439,310,161,90 +446,311,153,90 +449,311,135,105 +444,312,139,105 +442,303,144,111 +453,301,143,103 +454,308,140,98 +464,302,132,102 +455,304,141,100 +453,304,140,103 +445,307,148,100 +442,318,147,93 +448,308,144,100 +441,313,142,104 +429,320,157,94 +433,324,152,91 +441,321,135,103 +437,325,143,95 +439,313,143,105 +438,318,140,104 +429,324,140,107 +434,316,139,111 +436,312,142,110 +423,328,148,101 +408,333,152,107 +413,321,147,119 +404,330,156,110 +401,322,153,124 +404,324,151,121 +410,327,147,116 +417,316,158,109 +419,314,164,103 +419,321,156,104 +411,322,162,105 +415,324,156,105 +425,327,150,98 +435,312,157,96 +449,311,155,85 +456,310,152,82 +453,314,149,84 +462,298,150,90 +459,295,150,96 +457,303,150,90 +450,301,147,102 +440,297,157,106 +438,302,150,110 +432,301,163,104 +432,297,166,105 +435,295,170,100 +447,279,158,116 +430,288,161,121 +418,294,161,127 +414,299,167,120 +422,297,166,115 +410,316,158,116 +407,315,162,116 +410,309,152,129 +409,321,149,121 +416,336,145,103 +415,335,154,96 +414,344,153,89 +423,341,149,87 +423,347,139,91 +431,331,137,101 +425,321,134,120 +420,320,143,117 +425,310,148,117 +423,307,159,111 +411,313,161,115 +416,313,164,107 +435,304,153,108 +435,304,156,105 +451,294,145,110 +441,307,152,100 +448,315,142,95 +451,317,136,96 +434,325,141,100 +436,329,134,101 +428,328,141,103 +423,321,140,116 +417,320,153,110 +418,324,154,104 +427,320,155,98 +423,310,156,111 +423,306,154,117 +409,315,157,119 +414,311,152,123 +409,317,159,115 +403,333,161,103 +411,318,163,108 +405,308,172,115 +412,305,170,113 +419,305,177,99 +424,306,171,99 +435,302,163,100 +434,299,177,90 +448,292,163,97 +470,292,151,87 +460,298,150,92 +458,301,146,95 +459,300,145,96 +454,302,151,93 +450,302,150,98 +446,306,158,90 +443,308,158,91 +449,310,159,82 +450,309,150,91 +452,311,141,96 +449,307,133,111 +440,318,142,100 +443,310,142,105 +436,310,142,112 +428,309,147,116 +406,306,167,121 +422,306,170,102 +416,313,164,107 +419,302,175,104 +442,295,152,111 +448,289,154,109 +425,300,162,113 +417,316,170,97 +425,302,174,99 +416,318,168,98 +423,313,157,107 +411,333,160,96 +425,333,155,87 +424,333,155,88 +424,331,157,88 +439,331,141,89 +433,326,138,103 +429,331,133,107 +426,324,134,116 +413,330,137,120 +403,330,149,118 +387,332,161,120 +375,333,175,117 +369,330,197,104 +388,322,189,101 +383,321,191,105 +397,314,191,98 +411,312,179,98 +430,314,164,92 +430,310,160,100 +427,313,151,109 +423,320,156,101 +426,313,154,107 +416,311,155,118 +397,326,155,122 +413,323,143,121 +395,332,149,124 +395,329,149,127 +379,339,162,120 +372,330,182,116 +374,326,197,103 +400,309,178,113 +410,300,181,109 +408,307,178,107 +416,297,176,111 +422,297,168,113 +428,302,170,100 +427,311,163,99 +429,321,156,94 +431,321,158,90 +435,324,146,95 +434,320,143,103 +417,328,153,102 +419,332,145,104 +416,317,156,111 +412,316,160,112 +416,329,161,94 +430,324,145,101 +439,310,143,108 +421,307,160,112 +419,311,161,109 +424,314,164,98 +426,309,164,101 +433,320,151,96 +440,322,132,106 +458,309,116,117 +446,308,121,125 +425,322,135,118 +424,327,142,107 +420,327,145,108 +424,325,150,101 +429,317,152,102 +434,314,146,106 +428,316,141,115 +425,316,159,100 +440,318,153,89 +445,320,144,91 +437,321,155,87 +437,324,148,91 +428,331,142,99 +418,317,148,117 +423,314,154,109 +422,318,152,108 +405,314,156,125 +405,321,159,115 +408,313,169,110 +407,313,169,111 +411,310,169,110 +415,313,164,108 +420,312,152,116 +420,314,155,111 +438,298,158,106 +442,298,158,102 +443,301,161,95 +444,301,168,87 +453,294,156,97 +467,295,140,98 +459,294,147,100 +453,301,149,97 +458,299,145,98 +451,295,148,106 +452,282,149,117 +451,294,161,94 +454,294,158,94 +457,298,151,94 +465,295,143,97 +460,295,131,114 +445,301,135,119 +434,307,146,113 +430,315,159,96 +427,312,154,107 +434,310,152,104 +431,309,154,106 +418,320,159,103 +411,320,162,107 +417,327,141,115 +423,318,144,115 +411,321,145,123 +395,329,161,115 +396,331,156,117 +386,332,164,118 +386,342,165,107 +386,334,170,110 +399,334,164,103 +412,319,159,110 +409,340,155,96 +416,336,147,101 +406,350,155,89 +420,344,143,93 +419,339,142,100 +414,337,141,108 +413,333,145,109 +407,338,153,102 +407,340,147,106 +412,326,150,112 +408,326,155,111 +410,320,153,117 +409,317,157,117 +396,321,175,108 +399,325,173,103 +412,317,157,114 +428,313,163,96 +432,315,164,89 +434,318,158,90 +441,313,155,91 +446,316,145,93 +442,313,140,105 +436,307,144,113 +431,311,156,102 +438,318,162,82 +442,309,153,96 +442,310,144,104 +426,314,149,111 +422,324,162,92 +426,321,157,96 +423,324,163,90 +423,325,168,84 +435,327,145,93 +441,321,137,101 +424,321,143,112 +416,320,145,119 +404,328,147,121 +407,322,152,119 +405,329,156,110 +408,337,160,95 +411,329,159,101 +415,315,169,101 +407,312,171,110 +414,308,173,105 +422,307,172,99 +424,311,178,87 +426,314,170,90 +435,311,160,94 +442,303,157,98 +444,298,153,105 +440,288,162,110 +431,292,168,109 +424,303,169,104 +414,316,169,101 +428,295,176,101 +422,307,164,107 +438,296,155,111 +428,313,149,110 +440,299,146,115 +420,306,161,113 +425,300,158,117 +421,315,163,101 +432,305,170,93 +428,301,173,98 +430,294,170,106 +436,309,149,106 +430,316,155,99 +423,316,152,109 +421,320,146,113 +407,329,153,111 +407,328,161,104 +420,314,159,107 +423,313,159,105 +420,311,176,93 +427,310,169,94 +430,313,160,97 +436,311,147,106 +441,305,152,102 +447,300,149,104 +440,304,152,104 +431,311,162,96 +443,302,148,107 +438,305,147,110 +431,305,152,112 +427,305,170,98 +443,294,158,105 +448,305,146,101 +452,302,141,105 +442,302,142,114 +428,322,150,100 +426,326,153,95 +426,328,150,96 +426,309,148,117 +414,314,149,123 +401,325,153,121 +402,336,158,104 +411,316,151,122 +407,322,146,125 +403,330,147,120 +401,329,147,123 +410,329,139,122 +404,334,156,106 +395,334,170,101 +402,319,172,107 +398,312,170,120 +384,316,181,119 +387,318,186,109 +388,309,180,123 +379,330,168,123 +382,314,172,132 +378,313,176,133 +382,317,189,112 +382,309,192,117 +384,306,196,114 +395,304,195,106 +412,302,186,100 +431,296,178,95 +448,295,166,91 +447,289,159,105 +446,287,149,118 +450,278,148,124 +441,287,159,113 +444,291,147,118 +428,297,148,127 +420,308,154,118 +424,299,158,119 +432,301,153,114 +445,297,146,112 +442,305,152,101 +440,297,162,101 +436,298,164,102 +443,292,164,101 +452,287,157,104 +454,283,159,104 +454,290,152,104 +445,287,153,115 +438,304,158,100 +442,303,149,106 +441,301,163,95 +441,305,157,97 +451,295,151,103 +448,301,160,91 +454,304,160,82 +460,306,162,72 +462,298,155,85 +454,308,157,81 +469,296,153,82 +475,294,147,84 +479,305,138,78 +476,303,135,86 +490,304,122,84 +492,302,109,97 +477,312,113,98 +467,324,110,99 +457,325,112,106 +457,320,117,106 +439,323,133,105 +419,320,149,112 +418,324,151,107 +414,321,162,103 +427,308,163,102 +429,308,161,102 +440,297,155,108 +430,299,156,115 +432,298,154,116 +434,305,158,103 +445,308,159,88 +455,303,151,91 +445,298,156,101 +442,307,156,95 +437,303,154,106 +438,293,159,110 +436,288,179,97 +456,298,149,97 +444,299,157,100 +440,308,154,98 +456,309,141,94 +439,312,140,109 +437,312,136,115 +433,306,145,116 +437,317,138,108 +419,320,141,120 +412,319,151,118 +406,317,165,112 +414,319,162,105 +416,313,163,108 +412,315,159,114 +423,307,155,115 +426,303,156,115 +412,310,166,112 +418,318,156,108 +423,312,151,114 +422,310,154,114 +415,310,162,113 +431,304,155,110 +421,311,163,105 +419,314,164,103 +410,312,173,105 diff --git a/target/classes/pythonOutput/output1.png b/target/classes/pythonOutput/output1.png new file mode 100644 index 0000000000000000000000000000000000000000..d29fe9b33e3b82c0d09ee757c14d57f3d7f5aba6 Binary files /dev/null and b/target/classes/pythonOutput/output1.png differ diff --git a/target/classes/pythonOutput/output2.csv b/target/classes/pythonOutput/output2.csv new file mode 100644 index 0000000000000000000000000000000000000000..2f7b3292f9958e96427387d927323168e9993a1d --- /dev/null +++ b/target/classes/pythonOutput/output2.csv @@ -0,0 +1,1001 @@ +SUCEPTIBLE,EXPOSED,RECOVERED,INFECTED +998,1,1,0 +999,1,0,0 +999,1,0,0 +997,2,0,1 +996,3,0,1 +996,3,1,0 +996,2,1,1 +995,2,1,2 +993,4,2,1 +991,6,2,1 +989,8,2,1 +988,9,2,1 +985,11,2,2 +983,13,1,3 +984,13,0,3 +980,17,2,1 +980,16,3,1 +979,13,4,4 +977,13,6,4 +978,13,8,1 +979,13,8,0 +980,13,6,1 +981,12,5,2 +979,15,5,1 +976,14,5,5 +969,20,6,5 +967,20,5,8 +965,21,6,8 +963,20,5,12 +961,24,4,11 +951,33,7,9 +951,30,7,12 +946,36,6,12 +940,39,10,11 +936,43,10,11 +935,45,12,8 +927,46,13,14 +926,48,16,10 +925,50,16,9 +923,48,17,12 +924,46,15,15 +924,44,19,13 +925,39,21,15 +923,37,25,15 +922,43,22,13 +920,44,27,9 +917,42,25,16 +920,42,24,14 +922,41,21,16 +911,53,26,10 +909,56,23,12 +910,53,18,19 +907,58,20,15 +907,58,22,13 +901,61,21,17 +900,61,20,19 +892,67,26,15 +894,65,23,18 +885,67,27,21 +885,69,25,21 +880,72,31,17 +877,70,28,25 +869,78,29,24 +865,73,33,29 +867,71,35,27 +872,70,34,24 +870,75,35,20 +868,78,33,21 +863,80,35,22 +853,88,34,25 +850,89,36,25 +846,90,36,28 +843,90,37,30 +841,92,41,26 +838,88,46,28 +832,91,44,33 +835,90,42,33 +841,84,42,33 +843,83,51,23 +843,88,48,21 +840,90,46,24 +837,92,44,27 +839,89,44,28 +838,88,38,36 +831,102,41,26 +841,94,36,29 +836,98,35,31 +821,113,36,30 +810,122,38,30 +811,118,39,32 +803,123,43,31 +795,129,48,28 +793,128,49,30 +787,126,53,34 +786,129,50,35 +782,134,53,31 +785,135,46,34 +785,133,46,36 +785,134,47,34 +781,133,48,38 +781,132,47,40 +774,141,44,41 +769,138,45,48 +765,135,57,43 +769,137,59,35 +781,131,50,38 +785,123,46,46 +769,132,66,33 +764,141,57,38 +760,143,52,45 +758,146,49,47 +753,154,49,44 +748,153,65,34 +749,153,68,30 +754,138,62,46 +744,146,61,49 +747,151,60,42 +745,147,54,54 +747,143,59,51 +741,157,55,47 +732,157,53,58 +724,163,57,56 +712,166,59,63 +701,172,72,55 +697,175,69,59 +690,170,79,61 +692,166,81,61 +693,161,82,64 +690,172,77,61 +686,172,88,54 +681,171,94,54 +680,170,98,52 +693,157,97,53 +704,154,89,53 +709,160,81,50 +712,163,83,42 +699,168,84,49 +697,172,82,49 +694,169,85,52 +692,172,84,52 +692,175,83,50 +692,177,81,50 +691,185,76,48 +681,185,82,52 +685,186,81,48 +679,181,84,56 +669,182,87,62 +653,184,86,77 +642,192,95,71 +625,202,107,66 +621,213,104,62 +620,211,108,61 +624,213,109,54 +620,211,111,58 +619,208,115,58 +611,216,121,52 +617,214,114,55 +608,223,109,60 +593,225,104,78 +583,234,103,80 +582,246,109,63 +585,247,110,58 +586,236,120,58 +594,237,110,59 +599,236,99,66 +589,235,107,69 +594,235,104,67 +585,236,101,78 +574,245,99,82 +567,249,102,82 +561,262,89,88 +558,263,102,77 +539,277,105,79 +533,281,108,78 +522,280,101,97 +526,278,110,86 +518,276,119,87 +520,269,122,89 +513,275,119,93 +497,290,127,86 +500,287,129,84 +501,285,134,80 +478,303,131,88 +475,299,130,96 +484,287,128,101 +488,284,135,93 +491,282,135,92 +476,291,137,96 +470,292,138,100 +467,294,142,97 +462,304,137,97 +460,306,134,100 +452,306,150,92 +438,313,170,79 +441,316,170,73 +449,304,158,89 +460,303,159,78 +465,310,150,75 +466,302,146,86 +467,300,146,87 +472,296,137,95 +467,303,142,88 +464,306,141,89 +462,305,153,80 +468,312,138,82 +463,305,146,86 +449,323,148,80 +462,310,139,89 +461,310,138,91 +457,312,126,105 +444,315,126,115 +428,317,132,123 +404,327,155,114 +412,319,153,116 +411,329,153,107 +413,329,158,100 +412,321,161,106 +403,325,169,103 +397,327,157,119 +396,323,165,116 +389,328,174,109 +397,325,169,109 +398,326,166,110 +381,337,171,111 +368,341,190,101 +373,338,186,103 +376,337,167,120 +376,346,162,116 +372,328,167,133 +354,326,178,142 +346,321,195,138 +354,328,196,122 +350,335,205,110 +354,344,185,117 +348,354,181,117 +363,353,165,119 +371,356,146,127 +367,353,158,122 +371,342,168,119 +366,341,178,115 +367,344,179,110 +358,347,180,115 +367,333,185,115 +373,323,178,126 +357,336,184,123 +358,338,181,123 +354,341,181,124 +352,338,185,125 +345,331,190,134 +348,333,190,129 +356,334,171,139 +343,340,186,131 +346,344,186,124 +337,346,192,125 +333,349,193,125 +335,347,194,124 +346,344,203,107 +358,339,196,107 +361,354,183,102 +363,348,173,116 +356,354,174,116 +356,358,181,105 +356,358,172,114 +350,372,165,113 +342,372,166,120 +340,372,168,120 +342,374,178,106 +350,370,171,109 +353,360,163,124 +350,359,166,125 +336,372,169,123 +341,356,170,133 +324,361,185,130 +331,361,180,128 +332,364,177,127 +323,373,172,132 +324,376,163,137 +319,368,189,124 +321,371,186,122 +331,364,180,125 +322,366,175,137 +319,362,191,128 +318,362,198,122 +332,354,196,118 +328,348,207,117 +336,351,206,107 +353,325,200,122 +359,331,184,126 +355,333,180,132 +349,336,190,125 +345,342,196,117 +360,342,188,110 +357,342,176,125 +345,347,171,137 +342,342,181,135 +345,340,180,135 +337,352,185,126 +346,338,178,138 +322,351,190,137 +318,349,197,136 +326,344,199,131 +346,347,188,119 +345,359,181,115 +335,370,170,125 +350,364,159,127 +330,378,166,126 +329,363,173,135 +325,362,176,137 +323,353,194,130 +325,346,204,125 +319,351,200,130 +312,350,205,133 +321,350,204,125 +320,342,205,133 +323,343,201,133 +316,351,212,121 +321,361,198,120 +321,367,195,117 +329,357,193,121 +344,348,195,113 +362,345,184,109 +373,341,172,114 +375,343,173,109 +389,341,167,103 +382,341,159,118 +383,345,162,110 +375,338,169,118 +369,342,168,121 +366,347,165,122 +369,341,172,118 +376,336,183,105 +383,337,177,103 +372,353,171,104 +369,357,157,117 +372,354,164,110 +378,340,164,118 +372,349,168,111 +370,345,169,116 +374,346,171,109 +367,348,172,113 +381,345,167,107 +385,353,154,108 +368,365,161,106 +369,356,174,101 +359,364,179,98 +376,357,158,109 +377,351,155,117 +377,346,157,120 +357,348,169,126 +355,350,166,129 +349,353,177,121 +352,357,169,122 +329,376,179,116 +319,379,177,125 +325,373,174,128 +326,366,188,120 +340,370,175,115 +339,368,166,127 +337,373,175,115 +334,369,180,117 +332,362,192,114 +342,363,196,99 +361,357,175,107 +356,357,172,115 +351,356,172,121 +363,349,170,118 +351,349,167,133 +354,352,166,128 +365,344,173,118 +362,353,174,111 +363,352,176,109 +356,340,180,124 +352,339,186,123 +358,338,186,118 +370,335,179,116 +374,328,180,118 +380,323,190,107 +375,321,187,117 +385,322,174,119 +385,342,163,110 +385,341,153,121 +365,351,158,126 +359,356,163,122 +361,348,170,121 +353,353,173,121 +353,350,160,137 +348,350,169,133 +344,349,165,142 +351,339,173,137 +352,335,181,132 +347,346,180,127 +338,355,174,133 +339,350,186,125 +344,343,184,129 +362,333,169,136 +366,339,181,114 +368,353,182,97 +382,341,173,104 +375,355,172,98 +385,355,154,106 +378,355,154,113 +388,340,150,122 +370,342,164,124 +370,343,156,131 +366,339,157,138 +358,352,162,128 +348,345,174,133 +335,358,182,125 +341,354,184,121 +329,356,193,122 +331,368,197,104 +340,370,180,110 +347,373,171,109 +344,367,179,110 +346,361,173,120 +348,363,172,117 +362,363,155,120 +363,347,171,119 +357,361,169,113 +359,348,169,124 +343,367,181,109 +348,371,167,114 +354,364,172,110 +352,361,174,113 +350,367,163,120 +344,367,152,137 +332,381,155,132 +319,370,168,143 +324,362,165,149 +316,357,181,146 +299,374,193,134 +301,372,191,136 +302,358,196,144 +300,363,209,128 +292,372,217,119 +317,367,200,116 +311,371,189,129 +309,367,195,129 +318,366,190,126 +319,367,193,121 +321,375,195,109 +333,371,183,113 +333,362,181,124 +343,362,176,119 +327,363,186,124 +318,371,188,123 +316,372,201,111 +318,372,190,120 +326,370,194,110 +331,380,188,101 +347,381,173,99 +342,379,173,106 +349,378,165,108 +359,362,166,113 +354,363,173,110 +356,348,178,118 +348,350,183,119 +346,345,182,127 +340,343,185,132 +341,351,191,117 +337,367,188,108 +340,358,185,117 +341,355,200,104 +348,345,195,112 +354,343,187,116 +359,337,189,115 +351,339,197,113 +344,342,190,124 +339,348,179,134 +345,355,178,122 +352,341,177,130 +351,362,178,109 +354,350,175,121 +347,356,177,120 +341,361,185,113 +340,355,193,112 +345,337,192,126 +340,342,202,116 +339,351,194,116 +342,358,187,113 +351,354,182,113 +349,351,185,115 +341,348,192,119 +342,344,186,128 +344,343,185,128 +332,352,196,120 +333,348,197,122 +345,353,190,112 +358,342,180,120 +353,359,177,111 +355,359,167,119 +347,362,175,116 +364,361,154,121 +351,359,166,124 +362,354,170,114 +368,354,170,108 +367,345,182,106 +366,341,188,105 +369,347,191,93 +372,342,183,103 +365,354,174,107 +361,350,171,118 +349,371,178,102 +372,360,158,110 +380,353,163,104 +383,355,155,107 +382,352,166,100 +380,345,166,109 +377,338,170,115 +380,345,157,118 +368,344,174,114 +365,348,171,116 +358,360,164,118 +346,356,178,120 +341,368,176,115 +339,369,179,113 +358,360,171,111 +349,365,171,115 +358,355,176,111 +360,356,172,112 +349,363,169,119 +340,367,178,115 +344,377,185,94 +346,371,179,104 +342,373,187,98 +350,362,180,108 +354,370,179,97 +358,364,178,100 +356,356,180,108 +349,365,176,110 +350,364,168,118 +351,364,176,109 +360,358,177,105 +365,359,168,108 +346,371,175,108 +353,364,179,104 +364,351,182,103 +363,353,168,116 +370,348,169,113 +363,341,173,123 +352,351,178,119 +343,356,180,121 +356,345,171,128 +357,345,174,124 +365,341,172,122 +358,332,179,131 +358,344,179,119 +364,337,184,115 +368,330,189,113 +380,316,198,106 +374,324,198,104 +384,325,179,112 +386,331,177,106 +399,326,161,114 +378,339,169,114 +383,335,165,117 +388,346,161,105 +384,346,162,108 +381,353,165,101 +386,351,161,102 +387,351,160,102 +396,328,158,118 +398,321,154,127 +389,336,167,108 +387,334,156,123 +375,351,154,120 +380,348,161,111 +382,341,165,112 +366,334,172,128 +369,333,170,128 +355,342,180,123 +357,336,186,121 +354,342,183,121 +370,333,178,119 +382,335,171,112 +381,324,166,129 +382,330,168,120 +366,348,175,111 +372,341,172,115 +364,340,176,120 +365,341,170,124 +357,354,168,121 +342,359,175,124 +343,359,178,120 +321,369,189,121 +323,359,190,128 +327,363,186,124 +332,355,182,131 +345,356,184,115 +357,354,188,101 +372,347,186,95 +379,343,180,98 +371,348,173,108 +383,341,164,112 +376,354,166,104 +378,354,167,101 +378,345,170,107 +377,346,176,101 +385,335,161,119 +368,346,172,114 +376,336,154,134 +367,341,172,120 +369,338,166,127 +367,340,161,132 +361,340,175,124 +350,353,183,114 +345,346,188,121 +340,362,183,115 +350,356,179,115 +349,361,179,111 +341,367,176,116 +331,364,179,126 +349,347,175,129 +350,349,169,132 +357,348,170,125 +359,339,169,133 +349,346,189,116 +355,348,180,117 +358,342,175,125 +365,342,168,125 +367,349,168,116 +367,341,168,124 +367,343,169,121 +381,337,165,117 +384,344,171,101 +374,351,174,101 +381,349,173,97 +393,339,175,93 +405,332,175,88 +405,322,170,103 +401,313,175,111 +403,324,172,101 +401,325,162,112 +399,339,153,109 +389,334,173,104 +405,333,160,102 +413,337,149,101 +408,338,158,96 +412,333,154,101 +408,338,150,104 +403,340,151,106 +408,337,145,110 +394,340,147,119 +381,340,167,112 +387,343,174,96 +394,347,160,99 +397,338,166,99 +400,337,152,111 +393,337,154,116 +395,343,145,117 +396,339,148,117 +385,340,156,119 +378,335,158,129 +371,337,170,122 +379,348,162,111 +375,350,155,120 +363,358,171,108 +352,364,171,113 +350,367,178,105 +367,359,170,104 +373,353,167,107 +386,352,162,100 +399,342,143,116 +382,351,150,117 +378,349,147,126 +369,365,147,119 +363,356,154,127 +364,352,154,130 +356,348,161,135 +359,357,170,114 +367,344,163,126 +349,346,172,133 +341,338,184,137 +356,341,179,124 +345,353,179,123 +344,358,182,116 +340,351,197,112 +347,348,193,112 +347,344,194,115 +347,352,202,99 +357,351,192,100 +362,339,189,110 +350,354,182,114 +360,355,169,116 +367,356,167,110 +362,344,168,126 +362,356,171,111 +363,353,176,108 +372,348,171,109 +364,350,177,109 +358,356,179,107 +365,350,166,119 +364,338,165,133 +369,351,164,116 +366,363,151,120 +369,353,153,125 +364,354,169,113 +357,349,164,130 +351,363,170,116 +361,357,167,115 +355,356,171,118 +355,357,170,118 +358,358,166,118 +352,360,164,124 +338,366,177,119 +323,383,181,113 +315,380,184,121 +310,368,182,140 +316,370,187,127 +311,367,188,134 +318,350,195,137 +325,351,184,140 +324,367,186,123 +333,356,178,133 +337,349,186,128 +348,340,189,123 +343,354,183,120 +341,364,174,121 +338,364,177,121 +335,368,184,113 +339,370,179,112 +350,362,173,115 +348,360,183,109 +352,351,180,117 +348,347,189,116 +353,365,177,105 +363,350,170,117 +372,343,176,109 +373,340,175,112 +378,340,161,121 +377,333,156,134 +370,332,169,129 +371,344,165,120 +356,348,177,119 +356,356,187,101 +365,356,182,97 +373,343,175,109 +376,338,172,114 +373,344,158,125 +359,361,166,114 +347,367,158,128 +348,366,165,121 +345,368,171,116 +342,367,187,104 +359,355,167,119 +366,355,167,112 +354,375,158,113 +351,377,150,122 +352,360,160,128 +349,355,165,131 +332,371,158,139 +327,373,174,126 +332,374,157,137 +324,372,176,128 +334,365,172,129 +328,360,182,130 +322,349,185,144 +310,360,215,115 +326,355,200,119 +334,352,197,117 +335,363,201,101 +334,369,188,109 +326,369,198,107 +340,352,196,112 +338,357,191,114 +336,349,200,115 +351,343,189,117 +346,345,194,115 +367,339,186,108 +376,327,187,110 +380,332,181,107 +380,324,178,118 +382,329,183,106 +393,321,178,108 +396,326,175,103 +399,330,175,96 +403,323,168,106 +393,327,167,113 +377,352,160,111 +382,353,164,101 +376,348,161,115 +369,349,165,117 +369,362,157,112 +357,352,163,128 +340,362,185,113 +339,364,177,120 +352,363,172,113 +356,370,170,104 +345,367,169,119 +341,369,174,116 +339,364,179,118 +335,365,188,112 +342,366,180,112 +353,363,165,119 +353,359,167,121 +343,355,170,132 +338,349,188,125 +349,349,185,117 +352,346,193,109 +363,337,191,109 +360,340,191,109 +353,349,186,112 +365,339,173,123 +355,342,195,108 +366,338,188,108 +354,342,183,121 +358,338,180,124 +364,328,184,124 +370,323,190,117 +366,332,190,112 +365,331,192,112 +368,329,179,124 +357,338,189,116 +364,337,180,119 +369,337,172,122 +362,341,169,128 +357,354,170,119 +365,337,169,129 +352,358,166,124 +346,362,153,139 +316,377,173,134 +317,372,167,144 +310,369,184,137 +318,374,183,125 +315,375,180,130 +318,375,171,136 +314,371,176,139 +318,356,165,161 +306,367,173,154 +314,347,198,141 +324,350,211,115 +344,352,201,103 +341,359,194,106 +364,339,187,110 +377,346,176,101 +376,346,171,107 +376,342,174,108 +378,344,167,111 +386,343,157,114 +379,339,166,116 +382,342,163,113 +372,351,161,116 +368,348,162,122 +349,364,161,126 +351,362,158,129 +347,359,167,127 +341,363,181,115 +342,365,184,109 +346,362,177,115 +345,360,179,116 +350,360,181,109 +356,346,186,112 +355,346,180,119 +349,347,186,118 +366,344,177,113 +370,344,162,124 +353,352,164,131 +327,372,178,123 +324,371,177,128 +314,379,193,114 +310,380,201,109 +325,365,191,119 +310,367,200,123 +317,373,189,121 +320,371,179,130 +311,377,182,130 +310,379,182,129 +319,367,181,133 +310,364,191,135 +304,369,192,135 +313,365,190,132 +318,356,187,139 +309,361,190,140 +310,354,203,133 +336,340,202,122 +353,334,191,122 +356,339,188,117 +363,344,173,120 +350,348,176,126 +353,335,179,133 +345,334,187,134 +354,332,181,133 +350,337,184,129 +344,344,202,110 +346,337,195,122 +363,336,190,111 +369,331,192,108 +371,343,187,99 +379,331,190,100 +388,326,189,97 +380,336,181,103 +372,336,186,106 +364,349,188,99 +375,346,173,106 +374,341,178,107 +378,329,177,116 +382,338,167,113 +367,343,171,119 +375,337,177,111 +368,337,188,107 +372,340,176,112 +369,339,172,120 +373,339,176,112 +356,344,188,112 +356,344,189,111 +357,330,187,126 +359,335,185,121 +362,335,184,119 +361,332,191,116 +362,334,190,114 +354,338,192,116 +345,341,187,127 +353,356,181,110 +341,363,178,118 +343,367,171,119 +354,364,170,112 +367,365,162,106 +367,364,171,98 +371,356,168,105 +368,345,166,121 +358,356,171,115 +355,366,178,101 +358,364,179,99 +370,354,175,101 +369,354,179,98 +360,344,173,123 +364,347,171,118 +354,357,179,110 +367,361,176,96 +380,346,169,105 +392,337,154,117 +382,341,152,125 +381,346,160,113 +376,340,169,115 +373,341,162,124 +377,339,156,128 +365,352,164,119 +361,350,175,114 +359,354,178,109 +368,353,173,106 +353,353,172,122 +351,348,176,125 +356,336,189,119 +340,343,191,126 +351,335,192,122 +364,321,197,118 +365,332,190,113 +362,336,176,126 +353,351,181,115 +356,352,169,123 +360,356,177,107 +373,353,165,109 +373,349,169,109 +370,347,164,119 +377,347,161,115 +371,356,164,109 +372,358,163,107 +367,357,159,117 +352,364,164,120 +344,377,164,115 +351,375,161,113 +350,373,174,103 +358,360,163,119 +358,345,167,130 +343,360,173,124 +341,356,180,123 +327,369,189,115 +335,361,202,102 +346,363,199,92 +364,344,189,103 +353,347,180,120 +348,358,177,117 +363,353,178,106 +356,360,185,99 +366,352,175,107 +367,350,186,97 +351,353,184,112 +363,351,178,108 +367,353,172,108 +371,359,170,100 +371,357,160,112 +368,362,153,117 +360,366,154,120 +351,368,164,117 +353,374,154,119 +350,368,158,124 +353,358,175,114 +346,368,173,113 +354,357,173,116 +360,360,168,112 +350,356,172,122 +349,349,191,111 +359,352,178,111 +370,344,179,107 +373,338,172,117 +369,340,174,117 +376,340,169,115 +378,339,170,113 +374,346,176,104 +378,336,186,100 diff --git a/target/classes/pythonOutput/output2.png b/target/classes/pythonOutput/output2.png new file mode 100644 index 0000000000000000000000000000000000000000..3e144be49c79aff59476e5dcdfb49348d4331219 Binary files /dev/null and b/target/classes/pythonOutput/output2.png differ diff --git a/target/classes/pythonOutput/output3.csv b/target/classes/pythonOutput/output3.csv new file mode 100644 index 0000000000000000000000000000000000000000..fc01cce799cca0eee8aa1e982fbea5138ee829a0 --- /dev/null +++ b/target/classes/pythonOutput/output3.csv @@ -0,0 +1,1001 @@ +SUCEPTIBLE,EXPOSED,RECOVERED,INFECTED +997,2,1,0 +998,2,0,0 +998,2,0,0 +996,3,0,1 +995,4,0,1 +995,4,1,0 +995,3,1,1 +993,4,1,2 +992,5,2,1 +989,9,2,0 +989,9,2,0 +988,9,2,1 +984,12,2,2 +981,16,2,1 +983,16,0,1 +983,14,1,2 +983,13,2,2 +983,12,3,2 +979,15,4,2 +975,18,6,1 +973,19,7,1 +975,18,5,2 +971,22,3,4 +969,24,5,2 +965,26,4,5 +961,29,8,2 +961,30,6,3 +958,32,6,4 +956,33,5,6 +946,38,5,11 +939,43,6,12 +932,44,8,16 +930,44,12,14 +927,44,15,14 +926,46,16,12 +927,42,11,20 +919,45,13,23 +913,52,17,18 +907,59,12,22 +901,57,16,26 +889,60,20,31 +885,64,27,24 +886,65,27,22 +887,64,23,26 +882,73,23,22 +879,74,26,21 +865,82,26,27 +860,86,26,28 +857,83,34,26 +850,86,34,30 +848,86,32,34 +836,87,41,36 +831,93,45,31 +834,91,44,31 +834,98,39,29 +830,101,38,31 +823,110,38,29 +811,118,40,31 +805,120,41,34 +801,121,47,31 +796,121,47,36 +795,122,42,41 +792,119,46,43 +781,120,53,46 +790,119,51,40 +786,121,54,39 +778,128,60,34 +775,133,62,30 +778,130,62,30 +777,132,60,31 +778,128,59,35 +767,139,58,36 +773,140,50,37 +771,141,49,39 +761,144,53,42 +763,146,50,41 +750,154,56,40 +741,161,52,46 +741,162,53,44 +741,155,62,42 +738,149,64,49 +734,149,79,38 +740,143,72,45 +734,148,73,45 +729,146,68,57 +729,144,72,55 +733,148,73,46 +728,152,78,42 +722,151,80,47 +708,164,82,46 +708,169,77,46 +708,165,70,57 +703,174,68,55 +700,170,70,60 +694,176,70,60 +692,180,64,64 +683,189,69,59 +687,181,72,60 +685,185,69,61 +683,173,73,71 +691,175,70,64 +678,181,80,61 +674,192,72,62 +676,188,79,57 +672,192,85,51 +681,184,81,54 +680,187,84,49 +675,183,88,54 +678,186,78,58 +659,199,81,61 +652,202,80,66 +647,201,88,64 +640,203,93,64 +639,203,104,54 +639,203,102,56 +651,196,94,59 +648,201,90,61 +654,197,84,65 +651,200,79,70 +630,212,89,69 +625,206,91,78 +612,221,91,76 +605,223,101,71 +603,221,102,74 +598,229,101,72 +588,235,105,72 +583,238,100,79 +582,237,101,80 +580,231,104,85 +560,241,112,87 +558,239,106,97 +544,241,116,99 +531,248,138,83 +534,252,140,74 +535,244,141,80 +544,247,123,86 +537,253,123,87 +535,258,115,92 +521,258,130,91 +515,261,129,95 +524,261,126,89 +509,272,142,77 +512,272,136,80 +501,282,130,87 +496,279,132,93 +501,280,126,93 +492,288,128,92 +485,288,128,99 +473,285,140,102 +483,271,139,107 +467,280,143,110 +465,283,147,105 +455,300,152,93 +459,288,153,100 +453,297,147,103 +449,308,153,90 +456,294,148,102 +453,301,142,104 +455,298,137,110 +448,308,154,90 +433,326,150,91 +440,307,162,91 +442,307,162,89 +436,306,170,88 +451,291,153,105 +448,299,156,97 +442,309,154,95 +440,314,141,105 +432,309,151,108 +420,305,158,117 +409,313,158,120 +400,326,159,115 +403,331,167,99 +402,331,169,98 +405,335,159,101 +401,337,161,101 +391,347,158,104 +406,335,156,103 +409,330,163,98 +422,328,159,91 +423,334,148,95 +412,335,146,107 +400,351,141,108 +393,341,145,121 +389,345,161,105 +374,359,165,102 +366,366,164,104 +371,349,167,113 +355,367,167,111 +351,361,167,121 +354,350,172,124 +338,336,190,136 +337,343,199,121 +358,334,185,123 +349,336,193,122 +349,345,196,110 +354,344,194,108 +357,350,187,106 +347,366,184,103 +348,360,175,117 +330,369,179,122 +341,361,183,115 +338,359,195,108 +350,348,192,110 +352,348,193,107 +336,345,197,122 +332,352,196,120 +332,352,194,122 +328,370,191,111 +345,366,180,109 +355,362,176,107 +355,357,170,118 +356,361,174,109 +351,365,182,102 +359,364,172,105 +364,370,165,101 +357,378,154,111 +349,376,155,120 +342,379,158,121 +339,374,166,121 +327,371,186,116 +323,377,184,116 +326,370,193,111 +333,348,187,132 +349,341,177,133 +348,344,191,117 +335,352,192,121 +323,367,180,130 +333,368,166,133 +325,375,165,135 +319,382,179,120 +322,377,171,130 +314,381,174,131 +313,382,178,127 +314,379,188,119 +317,383,186,114 +317,379,195,109 +318,384,190,108 +331,367,170,132 +326,368,178,128 +321,372,172,135 +320,367,180,133 +318,368,186,128 +326,365,174,135 +335,349,174,142 +327,366,167,140 +315,383,171,131 +317,388,168,127 +311,383,178,128 +305,384,182,129 +315,383,187,115 +329,368,180,123 +319,369,183,129 +321,382,178,119 +314,394,178,114 +318,396,179,107 +328,384,177,111 +308,389,187,116 +311,391,181,117 +306,402,172,120 +304,393,187,116 +316,381,178,125 +314,380,182,124 +312,369,179,140 +306,374,184,136 +308,373,194,125 +312,374,191,123 +303,383,185,129 +294,384,186,136 +297,368,197,138 +303,361,198,138 +292,365,210,133 +304,356,216,124 +307,366,229,98 +320,354,218,108 +330,350,201,119 +331,346,190,133 +316,357,189,138 +304,354,215,127 +307,346,215,132 +310,336,213,141 +318,331,207,144 +319,329,219,133 +312,343,231,114 +330,352,210,108 +343,353,204,100 +350,347,192,111 +339,355,187,119 +345,356,188,111 +351,345,183,121 +355,339,168,138 +330,358,181,131 +326,359,188,127 +327,364,172,137 +326,376,162,136 +320,373,171,136 +307,379,177,137 +313,379,185,123 +309,371,185,135 +308,374,192,126 +316,355,185,144 +317,359,186,138 +311,368,187,134 +313,369,173,145 +293,371,201,135 +287,381,192,140 +302,377,192,129 +306,385,187,122 +325,381,181,113 +317,389,165,129 +300,390,165,145 +281,392,192,135 +285,394,181,140 +298,390,174,138 +290,391,179,140 +283,395,178,144 +275,390,180,155 +283,391,189,137 +284,389,192,135 +273,392,204,131 +277,382,204,137 +266,390,209,135 +285,365,213,137 +287,365,231,117 +308,349,219,124 +323,336,214,127 +334,339,204,123 +328,349,194,129 +330,349,195,126 +326,370,171,133 +325,381,166,128 +312,392,168,128 +296,393,182,129 +296,387,200,117 +294,378,184,144 +289,384,186,141 +286,382,187,145 +269,392,203,136 +285,378,206,131 +285,380,203,132 +291,368,214,127 +323,352,198,127 +329,350,197,124 +332,354,199,115 +334,353,191,122 +335,360,189,116 +336,360,181,123 +340,366,183,111 +347,365,178,110 +353,364,161,122 +344,359,167,130 +327,367,174,132 +323,364,183,130 +312,364,195,129 +324,354,191,131 +324,354,201,121 +325,356,194,125 +327,370,188,115 +322,373,187,118 +332,365,188,115 +335,368,194,103 +351,354,187,108 +332,364,188,116 +323,376,188,113 +338,374,182,106 +332,376,168,124 +320,379,169,132 +312,386,180,122 +327,382,178,113 +328,377,182,113 +329,372,182,117 +322,377,180,121 +333,374,161,132 +308,400,164,128 +300,393,176,131 +305,392,172,131 +312,377,169,142 +301,386,186,127 +304,379,193,124 +314,377,185,124 +305,385,186,124 +318,377,180,125 +320,376,167,137 +317,378,184,121 +323,375,205,97 +328,364,199,109 +344,356,195,105 +351,338,193,118 +356,346,184,114 +338,357,195,110 +337,366,171,126 +339,365,177,119 +335,361,181,123 +342,362,176,120 +352,363,164,121 +350,365,163,122 +338,368,160,134 +333,373,170,124 +331,383,170,116 +328,387,164,121 +321,386,164,129 +299,385,184,132 +297,384,200,119 +302,384,201,113 +294,371,197,138 +302,360,185,153 +302,360,188,150 +303,368,191,138 +303,376,190,131 +307,372,188,133 +319,371,188,122 +321,365,196,118 +330,367,187,116 +327,383,180,110 +327,383,176,114 +315,393,177,115 +317,387,177,119 +320,379,173,128 +300,390,186,124 +307,400,186,107 +299,400,179,122 +294,400,187,119 +292,402,185,121 +307,388,176,129 +299,393,186,122 +312,380,187,121 +295,402,179,124 +286,401,186,127 +287,394,193,126 +274,410,192,124 +286,404,185,125 +279,396,195,130 +275,391,195,139 +266,397,193,144 +270,406,184,140 +272,402,187,139 +280,402,190,128 +287,397,186,130 +281,400,181,138 +271,402,187,140 +276,385,193,146 +274,382,209,135 +279,370,207,144 +285,359,226,130 +287,368,228,117 +307,357,205,131 +306,362,196,136 +309,361,206,124 +332,353,197,118 +353,351,183,113 +357,359,176,108 +354,365,179,102 +349,371,179,101 +331,376,187,106 +326,380,193,101 +333,371,201,95 +333,361,188,118 +332,356,188,124 +323,363,198,116 +333,362,188,117 +327,362,200,111 +339,355,189,117 +327,366,192,115 +330,363,184,123 +330,360,174,136 +306,382,182,130 +297,387,181,135 +303,378,186,133 +303,390,195,112 +302,394,199,105 +318,388,191,103 +337,374,180,109 +330,370,187,113 +323,388,179,110 +330,366,176,128 +324,366,178,132 +333,357,179,131 +322,373,183,122 +322,370,189,119 +318,376,183,123 +312,373,175,140 +321,372,178,129 +318,372,180,130 +317,362,189,132 +309,357,194,140 +299,366,211,124 +307,363,217,113 +324,354,210,112 +326,359,206,109 +327,372,190,111 +327,365,198,110 +339,363,196,102 +346,355,178,121 +338,357,190,115 +336,356,204,104 +336,360,202,102 +350,355,183,112 +337,357,194,112 +336,360,182,122 +330,357,199,114 +338,361,195,106 +354,353,181,112 +355,350,183,112 +356,338,181,125 +347,353,191,109 +335,353,180,132 +326,363,179,132 +326,377,171,126 +317,382,169,132 +307,381,182,130 +310,375,187,128 +299,380,186,135 +318,371,182,129 +314,379,189,118 +321,373,182,124 +323,374,186,117 +321,371,187,121 +321,370,179,130 +314,376,174,136 +308,373,188,131 +315,361,188,136 +307,361,199,133 +309,350,205,136 +315,343,204,138 +305,355,206,134 +319,348,201,132 +324,346,199,131 +342,346,201,111 +350,340,195,115 +355,344,190,111 +366,336,183,115 +362,337,185,116 +364,332,178,126 +362,340,166,132 +351,349,187,113 +352,338,186,124 +360,337,183,120 +363,343,186,108 +366,344,174,116 +356,352,169,123 +344,363,184,109 +352,370,180,98 +356,373,163,108 +363,382,150,105 +365,374,162,99 +361,376,159,104 +351,371,165,113 +333,369,181,117 +340,369,176,115 +342,382,164,112 +335,370,172,123 +341,386,165,108 +333,386,171,110 +333,389,162,116 +326,400,160,114 +324,393,166,117 +321,382,175,122 +309,388,178,125 +315,384,184,117 +316,388,175,121 +300,400,189,111 +318,391,173,118 +322,375,167,136 +327,367,169,137 +309,368,184,139 +302,373,191,134 +296,379,200,125 +292,365,202,141 +300,366,200,134 +294,381,192,133 +302,379,201,118 +319,367,194,120 +330,372,187,111 +341,367,176,116 +323,367,190,120 +330,369,193,108 +330,364,197,109 +323,360,211,106 +327,366,204,103 +346,357,191,106 +340,350,199,111 +346,353,196,105 +336,362,198,104 +346,367,181,106 +349,380,168,103 +342,364,170,124 +343,346,183,128 +349,345,188,118 +329,363,206,102 +340,360,192,108 +348,365,185,102 +353,364,174,109 +342,366,178,114 +342,359,175,124 +348,358,180,114 +343,355,177,125 +335,354,175,136 +330,349,184,137 +340,345,186,129 +331,357,189,123 +328,352,196,124 +329,354,207,110 +348,348,178,126 +338,353,180,129 +342,342,180,136 +328,347,197,128 +328,348,194,130 +335,350,191,124 +350,344,188,118 +335,357,191,117 +336,362,178,124 +320,368,200,112 +318,372,192,118 +333,365,201,101 +350,368,185,97 +352,375,169,104 +335,387,174,104 +335,389,176,100 +334,393,173,100 +342,368,179,111 +349,367,183,101 +356,357,168,119 +346,367,171,116 +342,368,173,117 +331,369,180,120 +332,368,193,107 +330,370,191,109 +320,371,187,122 +325,374,184,117 +323,370,176,131 +346,365,176,113 +348,367,181,104 +345,373,177,105 +359,370,165,106 +355,362,160,123 +354,363,160,123 +340,360,162,138 +328,366,177,129 +324,360,188,128 +329,367,190,114 +341,362,179,118 +346,357,178,119 +355,349,169,127 +352,351,174,123 +347,359,172,122 +343,359,180,118 +331,358,188,123 +328,356,197,119 +327,354,196,123 +324,361,206,109 +336,360,190,114 +340,372,171,117 +352,385,153,110 +344,384,166,106 +341,380,164,115 +321,392,166,121 +325,390,162,123 +329,380,180,111 +330,385,178,107 +333,376,163,128 +329,384,165,122 +323,392,166,119 +312,394,168,126 +317,388,180,115 +327,391,171,111 +345,388,159,108 +352,390,151,107 +353,388,143,116 +330,398,141,131 +317,404,152,127 +307,398,165,130 +294,396,182,128 +305,384,173,138 +293,386,192,129 +301,388,182,129 +294,386,193,127 +300,380,185,135 +299,376,192,133 +303,379,193,125 +302,390,187,121 +309,387,185,119 +316,373,188,123 +314,374,187,125 +318,373,176,133 +324,366,179,131 +328,367,178,127 +313,376,190,121 +300,383,190,127 +298,379,191,132 +306,373,203,118 +306,367,202,125 +306,360,206,128 +320,353,192,135 +314,358,193,135 +305,370,195,130 +316,352,191,141 +309,367,198,126 +309,365,200,126 +320,356,194,130 +308,369,195,128 +312,356,196,136 +331,359,191,119 +329,358,187,126 +327,363,192,118 +327,357,202,114 +336,342,206,116 +352,336,186,126 +347,337,192,124 +338,349,200,113 +335,354,187,124 +338,356,188,118 +331,369,186,114 +322,372,179,127 +323,373,181,123 +319,375,177,129 +322,367,182,129 +329,366,178,127 +314,368,185,133 +319,371,182,128 +309,378,185,128 +317,373,177,133 +312,381,174,133 +313,380,182,125 +314,378,196,112 +316,380,190,114 +309,376,199,116 +315,380,196,109 +300,386,203,111 +309,379,197,115 +297,383,201,119 +305,380,196,119 +319,381,179,121 +316,382,176,126 +316,380,178,126 +296,378,196,130 +288,388,199,125 +297,380,206,117 +304,376,206,114 +303,379,206,112 +315,363,206,116 +315,362,200,123 +316,375,193,116 +329,371,181,119 +325,375,179,121 +334,368,176,122 +320,376,188,116 +323,359,201,117 +329,362,190,119 +340,365,180,115 +349,367,170,114 +341,386,156,117 +340,385,163,112 +339,384,155,122 +314,399,168,119 +324,393,163,120 +319,402,158,121 +317,403,168,112 +315,386,173,126 +315,391,174,120 +307,390,173,130 +285,409,177,129 +281,404,186,129 +279,396,198,127 +287,405,182,126 +292,377,187,144 +290,377,196,137 +292,378,210,120 +299,370,203,128 +302,371,197,130 +312,373,190,125 +315,366,201,118 +314,369,200,117 +319,372,189,120 +318,375,180,127 +329,381,162,128 +326,390,172,112 +331,388,172,109 +337,379,183,101 +341,374,177,108 +349,372,172,107 +350,378,161,111 +331,392,161,116 +341,377,152,130 +320,389,173,118 +320,398,173,109 +321,395,159,125 +307,400,166,127 +306,382,181,131 +288,394,179,139 +283,385,193,139 +297,369,188,146 +271,370,213,146 +284,361,203,152 +280,364,211,145 +290,363,200,147 +302,354,211,133 +304,371,211,114 +313,368,203,116 +312,375,197,116 +310,377,195,118 +319,373,187,121 +319,364,192,125 +315,362,193,130 +324,354,191,131 +334,347,194,125 +336,350,190,124 +323,364,202,111 +341,357,202,100 +348,356,183,113 +352,364,172,112 +352,355,184,109 +346,361,188,105 +342,373,189,96 +343,359,186,112 +337,361,179,123 +324,361,192,123 +319,357,202,122 +323,354,195,128 +320,353,202,125 +320,357,202,121 +315,360,203,122 +310,364,204,122 +303,362,207,128 +312,363,201,124 +315,361,204,120 +332,358,208,102 +349,352,203,96 +364,349,198,89 +371,349,183,97 +375,347,171,107 +363,352,163,122 +358,358,170,114 +352,365,170,113 +353,360,168,119 +346,356,182,116 +341,368,184,107 +340,369,183,108 +348,365,183,104 +357,361,173,109 +350,358,182,110 +344,352,175,129 +339,358,180,123 +341,353,184,122 +353,349,174,124 +354,356,180,110 +355,358,172,115 +337,376,178,109 +334,374,171,121 +329,382,180,109 +329,373,180,118 +329,376,177,118 +319,380,168,133 +319,377,194,110 +312,378,201,109 +324,380,187,109 +324,358,189,129 +320,364,183,133 +306,375,196,123 +300,378,197,125 +302,377,197,124 +304,392,184,120 +305,394,190,111 +317,393,178,112 +319,382,178,121 +325,369,170,136 +323,373,162,142 +298,385,171,146 +300,392,169,139 +300,388,177,135 +293,403,172,132 +289,400,174,137 +280,404,195,121 +286,391,196,127 +282,393,203,122 +293,380,193,134 +289,376,191,144 +306,371,187,136 +310,364,193,133 +314,373,189,124 +300,383,193,124 +308,373,202,117 +314,383,190,113 +326,384,185,105 +334,380,182,104 +337,376,179,108 +345,367,168,120 +344,374,174,108 +343,379,168,110 +342,377,162,119 +331,387,167,115 +328,389,168,115 +333,373,167,127 +323,396,163,118 +319,396,154,131 +305,392,169,134 +295,393,173,139 +295,397,179,129 +298,388,186,128 +301,374,179,146 +304,365,185,146 +277,389,210,124 +288,380,216,116 +293,377,219,111 +305,375,203,117 +313,361,195,131 +318,355,196,131 +316,358,198,128 +310,361,199,130 +314,368,181,137 +302,374,199,125 +303,368,197,132 +304,373,181,142 +299,373,188,140 +306,367,198,129 +302,366,195,137 +285,374,202,139 +301,370,204,125 +300,373,206,121 +298,376,193,133 +299,373,190,138 +291,374,199,136 +288,369,218,125 +288,361,210,141 +282,375,213,130 +286,381,203,130 +293,389,187,131 +288,390,194,128 +286,389,203,122 +294,388,197,121 +304,381,190,125 +301,372,196,131 +291,371,204,134 +299,373,195,133 +306,368,200,126 +313,371,192,124 +312,379,191,118 +308,373,195,124 +306,372,197,125 +315,380,187,118 +311,379,188,122 +319,373,189,119 +325,369,186,120 +325,378,177,120 +335,383,164,118 +339,380,170,111 +327,378,174,121 +324,378,178,120 +321,385,179,115 +315,382,183,120 +304,382,192,122 +310,378,191,121 +319,377,187,117 +324,379,182,115 +315,387,176,122 +313,390,184,113 +323,376,174,127 +317,374,181,128 +302,381,189,128 +315,358,188,139 +318,364,187,131 +330,367,185,118 +332,370,170,128 +319,375,186,120 +322,376,195,107 +321,382,183,114 +330,384,178,108 +317,395,177,111 +313,397,171,119 +305,386,187,122 +303,391,183,123 +307,396,183,114 +323,384,173,120 +295,395,184,126 +307,388,172,133 +302,388,176,134 +312,383,182,123 +310,388,182,120 +301,387,186,126 +303,389,181,127 +308,372,178,142 +312,363,194,131 +319,362,176,143 +322,350,182,146 +328,348,179,145 +321,360,187,132 +310,371,190,129 +309,374,187,130 +300,378,195,127 +306,371,194,129 +304,360,198,138 +317,358,203,122 +319,351,194,136 +313,361,201,125 +326,362,186,126 +331,354,182,133 +338,354,192,116 +345,358,174,123 +343,359,183,115 +350,360,185,105 +357,346,180,117 diff --git a/target/classes/pythonOutput/output3.png b/target/classes/pythonOutput/output3.png new file mode 100644 index 0000000000000000000000000000000000000000..6fdb96e6f69329afa31727aadabe5b13e2d81864 Binary files /dev/null and b/target/classes/pythonOutput/output3.png differ diff --git a/target/classes/pythonOutput/output4.csv b/target/classes/pythonOutput/output4.csv new file mode 100644 index 0000000000000000000000000000000000000000..0c61e149d0cf95a9918cc574aa89bb819e5258b9 --- /dev/null +++ b/target/classes/pythonOutput/output4.csv @@ -0,0 +1,1001 @@ +SUCEPTIBLE,EXPOSED,RECOVERED,INFECTED +997,2,1,0 +998,2,0,0 +998,2,0,0 +996,3,0,1 +995,4,0,1 +995,4,1,0 +995,3,1,1 +992,5,1,2 +989,8,2,1 +988,10,2,0 +987,10,2,1 +986,11,2,1 +983,13,2,2 +978,18,2,2 +980,18,0,2 +978,19,1,2 +976,18,1,5 +975,17,3,5 +975,16,5,4 +974,16,6,4 +970,18,6,6 +970,19,5,6 +967,22,3,8 +959,28,6,7 +948,33,7,12 +940,37,12,11 +935,41,15,9 +931,47,13,9 +926,45,14,15 +920,49,16,15 +910,57,17,16 +904,56,14,26 +900,60,18,22 +897,61,21,21 +891,66,24,19 +891,68,22,19 +885,64,23,28 +878,70,30,22 +870,73,30,27 +864,77,32,27 +860,75,33,32 +860,73,33,34 +857,77,38,28 +859,75,40,26 +859,75,39,27 +853,80,41,26 +855,79,38,28 +843,85,44,28 +838,94,45,23 +831,97,45,27 +828,98,47,27 +818,106,41,35 +815,102,41,42 +816,106,46,32 +811,107,47,35 +807,109,43,41 +801,110,54,35 +801,120,51,28 +796,119,50,35 +790,123,56,31 +788,127,54,31 +784,127,60,29 +784,125,56,35 +779,129,56,36 +771,137,55,37 +765,139,55,41 +757,149,59,35 +756,141,63,40 +757,137,65,41 +750,141,67,42 +745,148,62,45 +740,152,64,44 +738,152,62,48 +726,164,63,47 +723,164,69,44 +728,163,66,43 +725,170,57,48 +724,166,66,44 +719,170,65,46 +709,173,64,54 +694,179,66,61 +678,190,72,60 +671,197,78,54 +664,200,86,50 +660,199,86,55 +659,196,82,63 +652,203,82,63 +637,213,94,56 +636,209,92,63 +642,205,93,60 +643,201,89,67 +645,204,86,65 +650,209,87,54 +641,217,84,58 +632,223,83,62 +624,222,82,72 +605,232,84,79 +592,238,90,80 +581,239,101,79 +573,238,114,75 +573,234,114,79 +573,240,120,67 +574,236,123,67 +580,230,125,65 +583,238,117,62 +580,240,109,71 +571,240,112,77 +560,241,111,88 +544,252,121,83 +547,252,117,84 +535,254,125,86 +527,264,129,80 +528,255,135,82 +520,263,139,78 +523,263,133,81 +527,264,122,87 +530,261,121,88 +520,265,125,90 +524,268,120,88 +516,284,130,70 +515,287,138,60 +528,273,130,69 +516,267,130,87 +512,273,132,83 +514,269,129,88 +500,271,130,99 +498,272,135,95 +485,286,142,87 +496,279,141,84 +487,295,144,74 +503,280,125,92 +492,297,124,87 +490,301,120,89 +484,301,116,99 +463,302,131,104 +462,302,128,108 +448,308,136,108 +438,316,135,111 +424,318,140,118 +393,330,151,126 +387,328,152,133 +378,342,169,111 +380,347,166,107 +374,356,171,99 +380,360,148,112 +366,377,155,102 +375,373,143,109 +363,373,140,124 +346,379,157,118 +354,369,169,108 +358,358,174,110 +376,351,161,112 +360,364,174,102 +362,378,157,103 +360,379,151,110 +349,371,159,121 +323,391,172,114 +332,377,165,126 +327,380,164,129 +311,389,181,119 +305,386,171,138 +310,381,176,133 +306,380,191,123 +309,380,193,118 +310,391,187,112 +308,385,192,115 +304,378,191,127 +310,366,190,134 +303,384,192,121 +307,384,189,120 +322,381,187,110 +321,384,184,111 +319,397,176,108 +334,392,173,101 +348,384,164,104 +327,384,172,117 +316,386,169,129 +312,382,178,128 +307,387,189,117 +319,376,184,121 +328,374,185,113 +341,379,168,112 +324,389,176,111 +306,382,186,126 +297,382,204,117 +305,378,188,129 +309,375,189,127 +304,379,192,125 +311,375,186,128 +310,367,184,139 +297,362,199,142 +288,375,213,124 +304,364,197,135 +305,355,212,128 +307,364,207,122 +316,351,201,132 +317,350,201,132 +284,364,216,136 +281,369,226,124 +298,362,207,133 +305,369,201,125 +305,365,199,131 +318,369,190,123 +307,374,187,132 +295,381,197,127 +295,373,206,126 +310,346,199,145 +318,354,199,129 +333,352,192,123 +314,370,195,121 +305,375,197,123 +294,374,205,127 +294,372,204,130 +289,377,198,136 +299,372,198,131 +303,360,196,141 +286,378,199,137 +284,381,214,121 +301,377,208,114 +317,375,184,124 +309,386,182,123 +300,396,178,126 +292,398,181,129 +285,399,194,122 +298,388,195,119 +297,392,183,128 +291,391,196,122 +305,386,177,132 +306,389,181,124 +306,390,164,140 +296,390,180,134 +282,394,193,131 +277,406,195,122 +276,403,197,124 +282,409,200,109 +287,397,203,113 +291,394,187,128 +287,400,194,119 +280,409,192,119 +273,400,187,140 +270,396,188,146 +276,395,188,141 +265,405,201,129 +266,409,194,131 +267,416,186,131 +261,432,185,122 +269,428,176,127 +254,437,177,132 +270,422,175,133 +260,418,182,140 +259,419,196,126 +267,404,198,131 +268,406,191,135 +266,409,191,134 +274,399,191,136 +278,413,190,119 +281,404,184,131 +271,405,191,133 +264,406,198,132 +255,423,195,127 +260,423,197,120 +261,426,204,109 +266,413,190,131 +254,415,184,147 +254,407,174,165 +240,423,192,145 +234,424,213,129 +256,402,206,136 +255,403,194,148 +263,407,190,140 +270,389,190,151 +261,391,192,156 +250,406,193,151 +252,406,193,149 +257,389,195,159 +269,386,197,148 +265,387,213,135 +256,386,218,140 +270,374,217,139 +284,375,214,127 +282,378,208,132 +293,377,193,137 +290,379,194,137 +283,388,205,124 +280,385,201,134 +273,383,206,138 +273,372,218,137 +287,366,209,138 +303,358,203,136 +301,356,208,135 +298,375,218,109 +302,375,217,106 +319,356,198,127 +319,363,192,126 +299,375,195,131 +303,376,192,129 +296,380,187,137 +280,387,192,141 +281,374,206,139 +294,368,203,135 +291,371,196,142 +294,363,191,152 +310,368,179,143 +292,366,201,141 +294,374,213,119 +306,386,208,100 +302,384,207,107 +314,386,196,104 +297,399,183,121 +288,406,177,129 +289,397,180,134 +288,395,191,126 +292,398,191,119 +298,401,189,112 +313,386,181,120 +325,386,183,106 +342,359,171,128 +338,358,183,121 +338,349,184,129 +324,362,188,126 +304,376,208,112 +313,371,197,119 +300,374,193,133 +303,376,186,135 +293,383,194,130 +288,374,196,142 +281,378,189,152 +275,389,212,124 +271,395,223,111 +284,397,218,101 +283,399,215,103 +290,399,197,114 +288,401,194,117 +277,402,187,134 +280,400,178,142 +266,413,180,141 +269,418,179,134 +267,413,187,133 +258,415,179,148 +264,412,194,130 +269,404,181,146 +259,398,194,149 +272,384,179,165 +265,391,191,153 +261,395,207,137 +268,402,203,127 +263,398,205,134 +256,395,210,139 +261,386,217,136 +273,383,224,120 +282,375,211,132 +278,379,211,132 +279,383,214,124 +271,382,222,125 +280,384,206,130 +280,382,213,125 +288,382,204,126 +292,377,214,117 +295,387,203,115 +291,386,207,116 +312,389,181,118 +303,394,182,121 +298,388,183,131 +288,384,192,136 +299,377,190,134 +289,384,197,130 +299,382,188,131 +306,379,185,130 +312,375,181,132 +313,375,189,123 +315,379,197,109 +320,363,199,118 +319,373,190,118 +327,380,179,114 +320,395,172,113 +317,386,169,128 +311,385,181,123 +311,376,178,135 +307,378,186,129 +304,374,198,124 +298,383,192,127 +305,379,192,124 +318,375,196,111 +331,368,171,130 +318,375,182,125 +305,385,191,119 +311,392,187,110 +317,375,191,117 +325,369,189,117 +328,370,179,123 +339,371,178,112 +346,359,184,111 +337,372,171,120 +325,374,174,127 +322,364,183,131 +322,369,188,121 +313,373,192,122 +307,376,188,129 +312,375,183,130 +317,378,169,136 +310,380,179,131 +293,387,185,135 +297,396,177,130 +289,400,180,131 +286,400,178,136 +286,404,185,125 +296,387,187,130 +290,386,200,124 +299,385,195,121 +311,380,172,137 +304,374,183,139 +298,371,188,143 +296,374,183,147 +291,384,184,141 +286,374,184,156 +289,369,199,143 +301,357,217,125 +307,352,216,125 +306,361,203,130 +319,367,194,120 +318,367,191,124 +313,362,192,133 +317,352,190,141 +304,366,188,142 +298,375,190,137 +304,382,193,121 +305,391,187,117 +306,386,189,119 +301,380,190,129 +294,384,190,132 +314,377,185,124 +327,370,183,120 +335,363,177,125 +328,367,172,133 +324,380,177,119 +306,390,179,125 +328,382,174,116 +322,381,174,123 +320,389,179,112 +308,386,186,120 +311,391,171,127 +304,388,178,130 +301,387,181,131 +300,387,178,135 +291,397,177,135 +273,404,194,129 +274,392,208,126 +267,385,231,117 +280,394,222,104 +279,381,223,117 +300,368,206,126 +314,364,189,133 +320,369,189,122 +300,383,204,113 +303,390,194,113 +308,382,188,122 +310,383,175,132 +289,396,184,131 +288,395,190,127 +277,410,185,128 +281,405,182,132 +269,397,192,142 +262,410,189,139 +262,419,188,131 +259,415,191,135 +263,406,199,132 +281,399,191,129 +282,408,191,119 +275,411,194,120 +276,396,188,140 +260,415,190,135 +251,420,190,139 +256,402,202,140 +261,390,197,152 +242,398,212,148 +239,391,220,150 +246,388,229,137 +250,392,232,126 +250,396,231,123 +255,403,226,116 +265,399,210,126 +278,392,209,121 +287,389,215,109 +289,387,212,112 +297,383,195,125 +291,376,204,129 +295,365,200,140 +297,376,188,139 +281,387,198,134 +288,388,195,129 +291,379,204,126 +287,387,193,133 +289,395,178,138 +282,394,191,133 +285,395,190,130 +283,388,190,139 +277,385,202,136 +276,404,199,121 +284,403,193,120 +286,395,207,112 +282,388,211,119 +298,386,198,118 +298,372,203,127 +307,377,200,116 +306,388,196,110 +304,382,203,111 +308,376,208,108 +307,379,206,108 +313,377,198,112 +314,369,196,121 +319,368,189,124 +313,377,180,130 +324,361,177,138 +317,377,181,125 +324,376,174,126 +334,371,173,122 +333,375,173,119 +343,372,163,122 +332,368,178,122 +322,373,196,109 +321,370,201,108 +313,369,204,114 +321,364,202,113 +336,367,186,111 +330,367,182,121 +312,375,179,134 +295,389,181,135 +294,384,187,135 +297,385,188,130 +302,401,179,118 +293,399,179,129 +290,387,194,129 +310,348,187,155 +307,358,181,154 +310,365,177,148 +303,375,186,136 +310,369,187,134 +316,359,192,133 +310,368,196,126 +313,364,192,131 +325,354,190,131 +325,364,194,117 +336,365,180,119 +344,363,177,116 +351,359,178,112 +342,370,169,119 +341,374,175,110 +326,379,179,116 +326,378,177,119 +320,378,186,116 +315,388,171,126 +296,390,187,127 +295,391,177,137 +294,388,185,133 +287,405,196,112 +300,396,183,121 +294,386,183,137 +293,393,193,121 +290,394,191,125 +294,385,186,135 +285,391,190,134 +282,394,201,123 +283,387,198,132 +280,391,203,126 +272,395,206,127 +270,396,192,142 +279,386,190,145 +273,402,180,145 +254,408,207,131 +259,408,203,130 +280,387,203,130 +289,386,192,133 +278,394,198,130 +275,387,199,139 +272,383,207,138 +269,389,209,133 +274,386,201,139 +264,399,200,137 +265,380,213,142 +280,374,195,151 +271,383,208,138 +287,361,214,138 +281,358,223,138 +295,357,208,140 +295,373,203,129 +297,371,211,121 +301,369,206,124 +291,372,216,121 +289,377,209,125 +309,376,196,119 +318,378,196,108 +313,367,199,121 +303,360,211,126 +315,352,217,116 +315,359,201,125 +321,364,198,117 +331,365,191,113 +328,373,198,101 +312,382,199,107 +319,368,189,124 +314,368,182,136 +308,380,187,125 +331,367,178,124 +309,379,189,123 +310,389,191,110 +308,379,189,124 +308,373,194,125 +310,379,194,117 +296,386,188,130 +280,387,192,141 +264,394,205,137 +277,384,191,148 +292,377,193,138 +290,396,201,113 +293,392,189,126 +306,394,184,116 +305,389,183,123 +296,382,196,126 +288,387,195,130 +298,390,190,122 +278,389,197,136 +286,381,201,132 +295,387,203,115 +301,395,190,114 +312,379,185,124 +308,368,194,130 +297,380,204,119 +297,381,188,134 +313,372,188,127 +320,366,199,115 +307,369,213,111 +314,364,208,114 +320,361,202,117 +321,363,202,114 +322,374,186,118 +314,371,181,134 +301,369,184,146 +299,376,187,138 +297,382,191,130 +289,385,193,133 +296,392,205,107 +299,380,201,120 +295,390,181,134 +294,388,168,150 +284,395,200,121 +282,386,207,125 +299,375,186,140 +284,397,192,127 +283,397,189,131 +282,386,202,130 +284,386,215,115 +303,365,215,117 +303,375,203,119 +304,376,199,121 +305,364,196,135 +295,367,211,127 +301,374,212,113 +304,374,205,117 +303,365,206,126 +302,365,203,130 +305,378,196,121 +312,373,189,126 +298,374,196,132 +301,382,202,115 +311,377,194,118 +319,377,193,111 +327,374,191,108 +328,375,178,119 +326,371,192,111 +330,367,194,109 +321,376,186,117 +317,378,186,119 +309,375,203,113 +319,383,190,108 +328,388,169,115 +323,386,161,130 +309,390,180,121 +310,397,153,140 +310,397,154,139 +279,426,165,130 +274,420,156,150 +273,418,168,141 +291,398,171,140 +285,389,177,149 +270,394,183,153 +268,382,192,158 +266,387,205,142 +273,386,206,135 +287,375,192,146 +297,363,201,139 +287,381,198,134 +281,390,193,136 +277,397,205,121 +276,388,199,137 +269,396,208,127 +287,384,190,139 +279,387,193,141 +275,392,187,146 +253,394,208,145 +262,385,206,147 +271,364,218,147 +269,368,226,137 +286,372,215,127 +284,372,217,127 +289,366,212,133 +296,368,217,119 +300,377,228,95 +329,373,191,107 +336,362,188,114 +361,352,177,110 +349,365,179,107 +338,379,182,101 +327,389,187,97 +332,388,172,108 +335,387,169,109 +326,381,175,118 +309,393,181,117 +313,392,172,123 +306,398,172,124 +309,390,186,115 +312,386,181,121 +316,384,183,117 +321,377,180,122 +304,386,185,125 +298,388,198,116 +298,383,193,126 +306,369,192,133 +287,377,207,129 +286,379,199,136 +317,367,185,131 +315,362,193,130 +310,366,197,127 +312,366,206,116 +310,368,205,117 +322,369,198,111 +326,374,183,117 +323,374,188,115 +320,378,180,122 +318,379,173,130 +316,378,167,139 +317,373,175,135 +322,375,174,129 +312,381,174,133 +299,396,174,131 +292,402,174,132 +301,389,180,130 +295,399,190,116 +298,394,178,130 +300,389,176,135 +303,385,181,131 +305,390,178,127 +297,387,189,127 +290,390,196,124 +298,393,197,112 +303,380,185,132 +310,369,186,135 +291,386,177,146 +296,376,187,141 +283,376,205,136 +301,378,189,132 +296,388,185,131 +302,385,185,128 +296,391,194,119 +305,388,195,112 +318,376,186,120 +316,381,188,115 +328,372,180,120 +322,357,188,133 +315,368,183,134 +300,380,183,137 +297,385,184,134 +290,392,177,141 +294,387,183,136 +293,384,190,133 +301,380,188,131 +302,385,194,119 +299,374,191,136 +304,365,208,123 +316,364,203,117 +306,361,202,131 +314,358,196,132 +304,369,208,119 +307,365,199,129 +304,372,199,125 +311,362,197,130 +296,374,201,129 +301,369,202,128 +312,365,197,126 +315,369,202,114 +324,367,200,109 +331,353,199,117 +321,358,198,123 +329,356,196,119 +348,348,181,123 +348,345,186,121 +337,343,199,121 +341,349,191,119 +340,360,192,108 +353,362,183,102 +350,363,179,108 +349,351,167,133 +340,351,184,125 +341,355,174,130 +328,367,172,133 +334,370,175,121 +329,370,176,125 +304,375,188,133 +307,385,191,117 +310,385,178,127 +311,379,180,130 +319,371,175,135 +305,385,171,139 +301,389,182,128 +301,385,197,117 +303,389,208,100 +323,366,196,115 +321,371,191,117 +317,371,194,118 +313,368,196,123 +303,381,201,115 +294,393,191,122 +290,397,195,118 +284,384,205,127 +291,384,200,125 +302,391,187,120 +310,384,184,122 +308,393,169,130 +302,381,175,142 +300,386,166,148 +288,399,176,137 +301,389,173,137 +286,393,194,127 +279,399,197,125 +270,402,203,125 +269,398,208,125 +277,387,197,139 +283,379,201,137 +283,381,203,133 +284,382,197,137 +283,379,208,130 +295,370,219,116 +294,369,213,124 +282,367,226,125 +304,370,208,118 +306,383,198,113 +312,381,190,117 +305,381,191,123 +305,380,197,118 +308,372,198,122 +313,380,197,110 +311,386,194,109 +321,388,185,106 +324,387,183,106 +326,386,173,115 +319,392,174,115 +314,389,170,127 +319,378,172,131 +297,387,191,125 +297,395,192,116 +287,389,187,137 +274,395,203,128 +286,382,193,139 +271,387,205,137 +276,383,215,126 +288,376,205,131 +284,382,212,122 +285,400,200,115 +290,394,205,111 +303,389,190,118 +301,396,179,124 +310,388,181,121 +300,393,180,127 +308,391,176,125 +302,386,178,134 +299,398,177,126 +297,384,180,139 +280,395,193,132 +282,402,185,131 +281,402,184,133 +280,394,180,146 +279,384,181,156 +272,388,195,145 +264,394,199,143 +267,398,189,146 +268,394,194,144 +274,383,198,145 +265,391,202,142 +276,382,205,137 +292,378,200,130 +311,371,191,127 +298,376,199,127 +295,376,201,128 +307,369,200,124 +304,374,206,116 +309,368,200,123 +324,379,184,113 +315,380,187,118 +312,373,189,126 +316,376,191,117 +302,383,182,133 +284,399,185,132 +285,401,180,134 +273,400,190,137 +280,391,193,136 +278,394,195,133 +275,397,202,126 +280,394,213,113 +292,386,210,112 +299,372,206,123 +299,368,204,129 +302,371,199,128 +303,375,189,133 +304,383,180,133 +284,393,198,125 +292,385,192,131 +294,391,185,130 +283,408,193,116 +283,393,192,132 +273,402,194,131 +279,395,197,129 +294,391,187,128 +302,391,180,127 +294,394,182,130 +300,383,185,132 +292,387,185,136 +286,384,186,144 +295,370,195,140 +281,375,205,139 +289,368,196,147 +287,375,199,139 +283,383,203,131 +291,380,201,128 +282,368,208,142 +283,369,207,141 +287,365,204,144 +277,374,224,125 +293,376,202,129 +285,381,202,132 +298,375,198,129 +298,380,193,129 +301,366,200,133 +298,372,212,118 +292,377,204,127 +293,373,209,125 +303,367,205,125 +316,357,201,126 +327,362,189,122 +319,373,186,122 +321,378,185,116 +306,385,209,100 +322,387,191,100 +338,378,185,99 +341,377,177,105 +348,382,164,106 +338,378,165,119 +330,377,170,123 +308,391,162,139 +306,390,174,130 +301,393,174,132 +298,402,154,146 +296,395,162,147 +296,385,169,150 +291,398,182,129 +309,393,178,120 +308,397,176,119 +314,392,177,117 +311,393,177,119 +305,389,187,119 +310,380,180,130 +301,391,182,126 +294,382,185,139 +287,390,198,125 +293,394,197,116 +305,391,189,115 +322,380,177,121 +307,373,179,141 +296,378,186,140 +292,360,185,163 +282,372,198,148 +284,378,203,135 +279,391,212,118 +290,381,202,127 +286,393,187,134 +285,394,189,132 +301,379,179,141 +288,387,186,139 +289,403,181,127 +299,396,171,134 +301,394,159,146 +284,397,181,138 +275,396,185,144 +270,405,190,135 +267,419,197,117 +279,397,195,129 +291,377,201,131 +299,380,193,128 +303,388,195,114 +306,381,196,117 +320,368,201,111 +325,342,201,132 diff --git a/target/classes/pythonOutput/output4.png b/target/classes/pythonOutput/output4.png new file mode 100644 index 0000000000000000000000000000000000000000..ee0e5a9ccdcddc195c05351f18eb09c4c53d4db4 Binary files /dev/null and b/target/classes/pythonOutput/output4.png differ diff --git a/target/classes/pythonOutput/output5.csv b/target/classes/pythonOutput/output5.csv new file mode 100644 index 0000000000000000000000000000000000000000..df58cec722043e62650079ecfb8062d559592d1b --- /dev/null +++ b/target/classes/pythonOutput/output5.csv @@ -0,0 +1,1001 @@ +SUCEPTIBLE,EXPOSED,RECOVERED,INFECTED +995,4,1,0 +996,4,0,0 +996,4,0,0 +995,4,0,1 +994,5,0,1 +994,5,1,0 +994,5,1,0 +992,6,1,1 +991,7,2,0 +992,7,1,0 +992,6,1,1 +990,8,1,1 +989,9,1,1 +987,11,1,1 +988,11,0,1 +987,10,0,3 +982,13,1,4 +979,13,2,6 +976,16,4,4 +975,16,5,4 +971,19,6,4 +971,17,5,7 +970,19,6,5 +966,23,6,5 +962,27,6,5 +962,29,7,2 +961,28,5,6 +953,32,6,9 +949,33,10,8 +944,36,10,10 +936,39,12,13 +932,42,15,11 +928,43,16,13 +921,47,21,11 +923,49,18,10 +920,54,18,8 +916,51,16,17 +906,60,17,17 +901,61,21,17 +894,62,24,20 +889,64,25,22 +882,72,24,22 +872,82,27,19 +867,86,31,16 +865,89,26,20 +867,85,26,22 +865,77,23,35 +857,81,27,35 +846,89,30,35 +839,95,36,30 +834,93,43,30 +832,94,45,29 +835,92,41,32 +838,91,43,28 +841,89,44,26 +838,89,38,35 +828,93,40,39 +824,99,33,44 +809,110,37,44 +800,106,47,47 +793,104,51,52 +788,100,62,50 +790,97,71,42 +793,99,72,36 +791,104,75,30 +805,101,69,25 +807,97,70,26 +806,99,62,33 +808,105,57,30 +801,113,57,29 +794,118,60,28 +794,113,62,31 +798,114,54,34 +791,117,50,42 +790,117,52,41 +794,118,57,31 +792,121,51,36 +786,122,56,36 +783,129,52,36 +779,124,50,47 +768,130,53,49 +757,137,55,51 +755,135,50,60 +745,139,57,59 +739,149,59,53 +737,153,57,53 +734,161,58,47 +729,164,67,40 +728,163,65,44 +726,164,67,43 +731,162,66,41 +730,155,67,48 +722,159,69,50 +720,162,65,53 +720,160,71,49 +716,166,77,41 +710,167,80,43 +711,169,76,44 +700,176,76,48 +699,168,76,57 +690,177,81,52 +693,182,62,63 +694,188,68,50 +682,197,65,56 +677,203,74,46 +663,205,83,49 +656,204,86,54 +658,206,90,46 +657,207,83,53 +666,192,87,55 +670,193,75,62 +655,197,93,55 +663,195,86,56 +647,198,87,68 +624,207,90,79 +615,210,93,82 +602,224,98,76 +594,231,99,76 +596,222,101,81 +582,227,112,79 +585,228,109,78 +576,237,110,77 +568,229,111,92 +573,232,109,86 +560,241,115,84 +563,231,113,93 +555,247,126,72 +558,255,114,73 +553,260,110,77 +545,266,114,75 +534,262,107,97 +537,259,110,94 +526,264,114,96 +511,277,125,87 +515,265,122,98 +500,279,123,98 +500,271,128,101 +497,270,124,109 +494,279,130,97 +482,282,129,107 +470,299,128,103 +474,304,125,97 +474,303,127,96 +473,291,127,109 +454,313,128,105 +444,319,136,101 +449,313,132,106 +424,325,146,105 +431,315,147,107 +423,321,159,97 +425,318,160,97 +418,325,154,103 +412,328,158,102 +403,327,157,113 +409,326,162,103 +409,324,160,107 +416,319,150,115 +391,328,161,120 +398,324,157,121 +386,337,163,114 +393,352,155,100 +396,343,161,100 +402,345,157,96 +383,355,154,108 +376,363,140,121 +377,360,140,123 +366,354,156,124 +348,363,169,120 +347,359,174,120 +339,346,190,125 +331,356,203,110 +327,360,198,115 +338,361,180,121 +332,367,184,117 +339,348,181,132 +321,369,186,124 +313,369,208,110 +333,359,180,128 +330,365,174,131 +321,379,181,119 +330,360,187,123 +325,368,191,116 +334,344,194,128 +324,359,194,123 +328,363,187,122 +324,358,194,124 +330,361,183,126 +327,362,180,131 +310,367,193,130 +295,374,204,127 +312,367,198,123 +313,371,204,112 +329,375,195,101 +329,383,184,104 +335,384,189,92 +341,368,195,96 +347,383,177,93 +352,368,166,114 +345,368,175,112 +341,368,182,109 +340,359,175,126 +327,358,176,139 +318,365,188,129 +302,377,196,125 +307,385,193,115 +305,386,175,134 +283,407,176,134 +272,397,189,142 +262,400,204,134 +267,404,201,128 +270,397,205,128 +265,392,214,129 +268,386,209,137 +263,385,221,131 +269,384,211,136 +265,386,205,144 +261,385,204,150 +251,383,211,155 +261,378,220,141 +252,391,225,132 +264,388,238,110 +286,367,223,124 +298,370,221,111 +304,371,206,119 +307,362,204,127 +309,383,194,114 +319,372,197,112 +320,367,191,122 +315,375,183,127 +303,377,186,134 +300,378,186,136 +283,379,199,139 +280,371,204,145 +291,378,202,129 +302,379,202,117 +304,385,198,113 +316,377,191,116 +316,380,180,124 +312,390,169,129 +297,384,177,142 +291,395,171,143 +280,393,172,155 +300,385,174,141 +287,396,195,122 +297,387,184,132 +294,378,197,131 +293,380,191,136 +297,372,200,131 +301,377,198,124 +307,364,193,136 +305,365,206,124 +300,367,198,135 +301,381,199,119 +300,372,194,134 +303,371,183,143 +281,384,198,137 +273,382,201,144 +276,394,210,120 +290,389,206,115 +291,385,199,125 +295,395,195,115 +286,402,194,118 +292,397,188,123 +284,385,205,126 +296,380,196,128 +313,384,189,114 +314,369,185,132 +301,377,186,136 +297,369,191,143 +302,361,201,136 +288,370,200,142 +288,374,204,134 +290,380,210,120 +296,380,210,114 +310,370,208,112 +324,369,196,111 +330,363,192,115 +320,368,187,125 +317,383,177,123 +314,386,172,128 +312,392,164,132 +301,399,168,132 +297,402,174,127 +302,405,170,123 +310,397,173,120 +289,406,176,129 +291,408,174,127 +292,400,179,129 +286,401,189,124 +298,388,172,142 +281,395,176,148 +265,393,186,156 +255,403,198,144 +268,396,201,135 +281,384,200,135 +290,371,198,141 +284,376,205,135 +277,386,196,141 +269,380,206,145 +278,374,220,128 +285,367,213,135 +280,378,214,128 +290,382,211,117 +315,364,192,129 +321,369,175,135 +321,381,178,120 +326,382,159,133 +315,389,174,122 +298,401,178,123 +296,393,182,129 +282,392,188,138 +294,371,198,137 +306,364,194,136 +312,372,196,120 +312,374,199,115 +318,374,201,107 +321,373,201,105 +323,372,192,113 +319,373,189,119 +305,388,187,120 +298,388,186,128 +303,378,198,121 +318,368,186,128 +313,364,190,133 +312,360,186,142 +294,359,194,153 +285,369,199,147 +282,375,207,136 +276,376,208,140 +284,366,206,144 +261,386,210,143 +270,371,218,141 +278,364,203,155 +275,374,210,141 +279,360,219,142 +281,373,220,126 +292,372,209,127 +289,383,210,118 +302,378,202,118 +302,379,200,119 +316,365,191,128 +309,359,205,127 +313,358,209,120 +332,350,194,124 +340,353,188,119 +329,359,186,126 +327,363,183,127 +314,360,199,127 +304,362,204,130 +302,364,205,129 +313,367,201,119 +313,373,192,122 +307,368,184,141 +302,369,192,137 +295,383,205,117 +310,373,190,127 +306,370,195,129 +317,355,196,132 +328,351,202,119 +328,378,196,98 +337,368,177,118 +321,381,182,116 +329,378,175,118 +311,382,187,120 +299,391,185,125 +294,397,190,119 +292,403,194,111 +296,404,180,120 +280,414,180,126 +279,404,176,141 +261,412,197,130 +273,397,193,137 +267,400,205,128 +272,398,201,129 +274,404,194,128 +271,409,189,131 +276,390,193,141 +264,396,210,130 +271,385,204,140 +281,383,192,144 +274,382,205,139 +289,381,203,127 +300,377,190,133 +299,387,196,118 +315,385,189,111 +317,380,181,122 +307,390,178,125 +308,395,173,124 +304,394,184,118 +302,387,191,120 +309,384,180,127 +314,381,183,122 +311,379,178,132 +306,393,186,115 +310,386,194,110 +319,385,187,109 +316,384,193,107 +332,373,186,109 +333,377,177,113 +336,369,175,120 +329,374,176,121 +321,379,174,126 +316,373,174,137 +306,383,176,135 +305,383,174,138 +297,389,173,141 +285,403,174,138 +279,402,176,143 +273,400,183,144 +267,404,190,139 +259,399,210,132 +256,389,217,138 +259,383,222,136 +262,377,227,134 +271,383,213,133 +278,381,211,130 +278,381,199,142 +277,392,204,127 +281,390,196,133 +288,381,195,136 +292,390,194,124 +286,385,193,136 +285,389,202,124 +287,381,198,134 +283,381,190,146 +271,386,205,138 +269,390,211,130 +280,390,210,120 +288,401,196,115 +289,395,186,130 +282,398,189,131 +289,388,189,134 +297,377,188,138 +303,366,197,134 +296,378,193,133 +303,384,204,109 +298,376,208,118 +311,364,200,125 +299,378,195,128 +303,381,199,117 +293,387,200,120 +302,387,202,109 +308,392,188,112 +314,383,175,128 +305,385,187,123 +305,377,194,124 +304,378,196,122 +310,380,187,123 +300,383,185,132 +302,380,186,132 +298,388,202,112 +301,385,191,123 +291,394,205,110 +307,390,187,116 +312,384,179,125 +308,393,180,119 +307,380,178,135 +306,384,174,136 +300,382,184,134 +292,386,186,136 +299,389,180,132 +286,395,185,134 +282,395,192,131 +273,403,193,131 +291,391,189,129 +312,384,180,124 +306,378,188,128 +306,371,190,133 +301,384,193,122 +303,385,184,128 +293,391,191,125 +294,394,188,124 +295,394,173,138 +277,403,188,132 +283,392,184,141 +286,385,183,146 +277,396,195,132 +276,404,192,128 +275,393,183,149 +272,370,204,154 +286,371,195,148 +281,380,198,141 +284,385,193,138 +272,401,191,136 +277,399,194,130 +283,404,190,123 +279,417,182,122 +277,419,182,122 +264,416,182,138 +266,402,196,136 +272,402,193,133 +273,398,204,125 +271,395,215,119 +283,390,214,113 +301,393,203,103 +322,379,185,114 +315,387,175,123 +307,398,179,116 +297,396,181,126 +290,408,168,134 +285,416,165,134 +271,426,169,134 +266,426,174,134 +265,415,174,146 +266,420,177,137 +254,421,182,143 +259,407,192,142 +255,404,195,146 +261,398,194,147 +260,373,199,168 +261,381,218,140 +266,374,217,143 +267,373,233,127 +282,369,219,130 +283,371,218,128 +286,369,215,130 +280,375,218,127 +283,385,220,112 +295,384,204,117 +306,375,197,122 +302,374,189,135 +293,383,190,134 +305,386,186,123 +299,395,186,120 +304,390,189,117 +307,390,172,131 +308,385,174,133 +294,388,186,132 +296,375,186,143 +306,377,187,130 +301,383,188,128 +308,378,196,118 +315,375,193,117 +305,382,193,120 +312,388,185,115 +319,377,184,120 +316,381,179,124 +303,388,183,126 +298,392,184,126 +289,403,180,128 +300,384,189,127 +290,390,176,144 +280,395,182,143 +266,397,199,138 +258,415,200,127 +250,405,207,138 +243,399,212,146 +240,396,220,144 +250,387,229,134 +260,377,219,144 +262,372,231,135 +272,376,218,134 +280,392,203,125 +275,396,184,145 +271,387,187,155 +253,402,199,146 +251,412,192,145 +250,410,196,144 +254,406,206,134 +266,408,198,128 +281,400,189,130 +288,406,183,123 +266,407,193,134 +263,414,189,134 +269,395,187,149 +280,392,187,141 +269,396,192,143 +283,392,193,132 +285,384,199,132 +293,378,204,125 +300,362,205,133 +311,346,203,140 +315,356,193,136 +298,382,197,123 +301,386,197,116 +316,380,176,128 +302,395,178,125 +312,389,184,115 +306,385,185,124 +315,389,180,116 +313,384,184,119 +319,370,185,126 +308,379,187,126 +307,382,175,136 +292,379,196,133 +294,385,197,124 +311,373,187,129 +303,398,178,121 +288,411,176,125 +289,402,184,125 +309,388,162,141 +277,398,188,137 +280,399,186,135 +289,389,186,136 +281,391,186,142 +272,389,204,135 +272,386,207,135 +257,393,222,128 +274,393,215,118 +281,387,206,126 +287,381,196,136 +299,371,201,129 +292,383,187,138 +293,390,185,132 +302,384,188,126 +294,382,197,127 +292,375,199,134 +289,375,200,136 +289,378,196,137 +292,384,194,130 +279,385,205,131 +283,373,222,122 +288,372,229,111 +324,360,212,104 +326,359,205,110 +321,362,190,127 +318,358,188,136 +314,369,189,128 +296,375,196,133 +299,370,193,138 +308,372,183,137 +313,376,179,132 +306,372,172,150 +296,379,166,159 +276,400,176,148 +271,404,179,146 +273,391,185,151 +279,387,196,138 +288,386,190,136 +299,387,186,128 +301,377,191,131 +311,370,191,128 +304,389,189,118 +318,373,189,120 +296,380,208,116 +276,394,219,111 +282,393,206,119 +294,386,206,114 +297,382,206,115 +307,378,215,100 +327,361,195,117 +321,362,200,117 +319,375,193,113 +317,368,188,127 +313,371,184,132 +309,365,181,145 +298,374,182,146 +283,388,181,148 +278,396,201,125 +268,387,203,142 +279,387,204,130 +289,375,206,130 +307,371,194,128 +305,380,186,129 +288,390,185,137 +282,400,194,124 +290,400,197,113 +290,400,191,119 +305,389,176,130 +290,389,192,129 +292,392,193,123 +303,384,181,132 +318,379,170,133 +314,393,174,119 +319,386,167,128 +291,395,174,140 +279,407,187,127 +284,388,187,141 +286,379,199,136 +272,369,204,155 +268,377,207,148 +277,373,197,153 +276,379,202,143 +264,393,204,139 +280,385,200,135 +285,375,217,123 +297,380,199,124 +299,383,195,123 +313,375,184,128 +316,368,187,129 +325,372,170,133 +308,389,174,129 +293,400,178,129 +296,400,178,126 +287,397,183,133 +288,392,189,131 +280,398,187,135 +278,395,193,134 +291,385,182,142 +281,387,183,149 +279,385,197,139 +281,388,194,137 +299,387,194,120 +300,394,179,127 +294,389,188,129 +297,385,188,130 +295,381,182,142 +279,397,189,135 +292,385,191,132 +283,380,183,154 +277,375,194,154 +270,382,200,148 +267,381,203,149 +273,382,206,139 +277,398,195,130 +294,381,200,125 +302,373,202,123 +308,366,210,116 +320,362,202,116 +306,371,192,131 +317,362,183,138 +311,363,193,133 +329,359,179,133 +330,356,186,128 +337,360,193,110 +350,356,177,117 +336,366,185,113 +322,364,195,119 +322,368,198,112 +315,372,192,121 +317,375,184,124 +298,385,188,129 +294,382,196,128 +285,396,204,115 +303,374,202,121 +296,388,202,114 +297,383,200,120 +296,378,200,126 +276,384,204,136 +274,396,196,134 +283,391,196,130 +284,388,203,125 +286,381,200,133 +274,383,213,130 +288,380,200,132 +288,391,196,125 +292,380,200,128 +288,389,197,126 +313,382,179,126 +298,391,184,127 +301,396,178,125 +304,395,181,120 +292,400,194,114 +293,394,187,126 +294,401,178,127 +291,400,174,135 +291,411,168,130 +283,422,159,136 +277,412,165,146 +262,424,175,139 +265,422,185,128 +285,404,186,125 +304,394,189,113 +305,388,168,139 +289,382,179,150 +276,387,195,142 +277,378,208,137 +260,394,222,124 +267,398,216,119 +271,397,209,123 +260,391,207,142 +265,394,204,137 +264,396,204,136 +260,401,206,133 +267,395,213,125 +282,389,192,137 +276,396,202,126 +266,414,201,119 +281,393,196,130 +291,382,191,136 +273,389,196,142 +283,385,184,148 +273,388,182,157 +263,395,188,154 +254,410,192,144 +258,387,203,152 +257,399,201,143 +264,402,201,133 +274,398,191,137 +263,395,190,152 +253,408,203,136 +260,406,199,135 +262,404,190,144 +254,393,215,138 +268,399,220,113 +266,383,228,123 +275,380,217,128 +279,363,219,139 +258,376,227,139 +256,373,232,139 +255,380,228,137 +258,378,224,140 +275,374,207,144 +265,382,211,142 +256,382,213,149 +257,391,211,141 +259,394,207,140 +255,400,215,130 +252,413,210,125 +265,418,188,129 +266,417,188,129 +275,415,196,114 +266,409,200,125 +275,400,202,123 +276,387,207,130 +290,384,206,120 +294,380,202,124 +302,389,187,122 +288,396,183,133 +273,397,191,139 +270,406,178,146 +256,405,194,145 +256,404,203,137 +260,405,198,137 +264,397,202,137 +276,382,204,138 +279,382,202,137 +275,395,203,127 +281,392,207,120 +292,389,196,123 +291,393,192,124 +279,411,182,128 +272,412,198,118 +271,409,190,130 +289,408,185,118 +273,413,197,117 +289,397,185,129 +292,398,185,125 +288,416,171,125 +279,417,181,123 +291,414,173,122 +281,411,178,130 +275,401,181,143 +258,411,181,150 +242,426,185,147 +245,412,202,141 +245,408,204,143 +245,407,219,129 +252,397,222,129 +246,402,225,127 +251,413,226,110 +276,392,204,128 +273,388,209,130 +285,386,203,126 +275,389,208,128 +278,388,197,137 +274,384,200,142 +282,388,199,131 +279,391,199,131 +289,382,191,138 +283,376,203,138 +269,377,211,143 +271,377,206,146 +277,376,204,143 +281,380,201,138 +278,383,213,126 +286,383,204,127 +289,382,216,113 +310,375,202,113 +327,382,182,109 +326,389,183,102 +326,379,179,116 +299,384,194,123 +284,400,196,120 +290,390,189,131 +297,387,187,129 +294,394,186,126 +282,401,196,121 +284,408,197,111 +297,401,191,111 +283,411,193,113 +273,412,189,126 +264,419,201,116 +282,403,196,119 +276,407,203,114 +277,398,201,124 +288,403,188,121 +289,398,184,129 +286,394,185,135 +293,386,181,140 +305,372,188,135 +304,379,194,123 +302,390,187,121 +299,384,182,135 +313,371,173,143 +304,385,181,130 +307,381,189,123 +293,367,202,138 +300,371,182,147 +293,379,189,139 +305,370,181,144 +303,383,191,123 +294,392,193,121 +313,377,188,122 +309,378,187,126 +313,379,196,112 +304,391,189,116 +283,409,181,127 +272,415,185,128 +284,404,176,136 +293,400,174,133 +292,406,176,126 +293,408,167,132 +296,401,164,139 +293,391,169,147 +275,400,178,147 +270,411,181,138 +274,395,182,149 +273,381,189,157 +248,393,207,152 +254,390,217,139 +263,383,215,139 +275,377,217,131 +274,385,204,137 +261,396,220,123 +266,403,212,119 +272,389,205,134 +275,382,204,139 +275,389,213,123 +276,388,211,125 +291,385,196,128 +296,379,196,129 +284,372,208,136 +282,384,204,130 +281,382,196,141 +288,383,195,134 +293,376,204,127 +299,359,218,124 +296,371,214,119 +286,379,211,124 +303,374,187,136 +295,369,205,131 +303,367,205,125 +297,373,202,128 +306,362,200,132 +301,359,198,142 +288,369,206,137 +293,370,202,135 +285,371,208,136 +292,369,217,122 +298,381,201,120 +293,378,189,140 +303,363,194,140 +296,375,198,131 +304,377,199,120 +318,360,206,116 +309,368,204,119 +316,368,198,118 +325,362,191,122 +314,369,201,116 +315,370,203,112 +318,371,184,127 +317,364,193,126 +323,359,189,129 +321,358,187,134 +303,370,196,131 +307,374,194,125 +304,372,206,118 +314,363,195,128 +317,367,197,119 +314,375,189,122 +307,377,196,120 +306,370,195,129 +304,379,203,114 +322,369,194,115 +326,377,174,123 +314,386,174,126 +306,387,182,125 +301,397,189,113 +314,388,181,117 +309,386,176,129 +315,383,169,133 +305,397,175,123 +302,386,180,132 +295,382,186,137 +294,384,194,128 +291,379,206,124 +288,379,202,131 +289,382,204,125 +284,383,198,135 +285,389,202,124 +279,385,218,118 +284,380,213,123 +297,386,202,115 +289,384,206,121 +297,383,197,123 +298,385,190,127 +287,395,189,129 +287,402,184,127 +280,414,177,129 +283,413,179,125 +279,423,175,123 +266,428,167,139 +273,413,165,149 +262,419,180,139 +270,414,180,136 +259,402,187,152 +251,411,183,155 +237,419,194,150 +239,407,194,160 diff --git a/target/classes/pythonOutput/output5.png b/target/classes/pythonOutput/output5.png new file mode 100644 index 0000000000000000000000000000000000000000..0dcbf1e519adebd02a7163c98ae96f4551deb3e1 Binary files /dev/null and b/target/classes/pythonOutput/output5.png differ diff --git a/target/classes/pythonOutput/output6.csv b/target/classes/pythonOutput/output6.csv new file mode 100644 index 0000000000000000000000000000000000000000..b59967a8c0dab1a9aef300c20bc41975990deed0 --- /dev/null +++ b/target/classes/pythonOutput/output6.csv @@ -0,0 +1,1001 @@ +SUCEPTIBLE,EXPOSED,RECOVERED,INFECTED +997,2,1,0 +998,2,0,0 +998,2,0,0 +996,3,0,1 +995,4,0,1 +995,4,1,0 +995,3,1,1 +992,5,1,2 +989,8,2,1 +986,11,2,1 +983,13,2,2 +979,15,2,4 +970,23,3,4 +966,26,4,4 +970,26,1,3 +968,25,3,4 +962,29,3,6 +960,30,5,5 +959,29,7,5 +958,28,9,5 +955,30,11,4 +954,29,9,8 +949,34,9,8 +948,36,9,7 +946,36,11,7 +938,41,15,6 +936,45,14,5 +930,49,15,6 +929,48,14,9 +921,52,11,16 +917,55,11,17 +907,58,13,22 +903,57,16,24 +901,58,23,18 +900,58,21,21 +901,59,22,18 +889,63,24,24 +889,62,29,20 +889,57,28,26 +879,59,37,25 +872,65,41,22 +873,68,32,27 +873,70,32,25 +868,70,40,22 +863,75,41,21 +871,77,36,16 +872,81,31,16 +862,91,24,23 +848,102,23,27 +839,101,31,29 +824,105,36,35 +824,99,42,35 +818,103,47,32 +818,99,50,33 +814,107,53,26 +815,104,48,33 +808,112,53,27 +811,114,49,26 +810,117,49,24 +800,118,48,34 +804,118,47,31 +797,126,54,23 +799,131,47,23 +794,129,45,32 +786,133,48,33 +777,133,52,38 +778,127,56,39 +770,123,58,49 +763,129,60,48 +758,134,66,42 +757,140,63,40 +747,142,65,46 +740,146,65,49 +739,153,66,42 +734,157,68,41 +730,154,67,49 +724,153,65,58 +718,154,72,56 +721,154,70,55 +720,149,72,59 +712,157,69,62 +706,156,75,63 +702,161,78,59 +697,167,84,52 +695,170,83,52 +694,178,87,41 +696,173,82,49 +696,173,83,48 +695,175,82,48 +684,177,82,57 +676,187,80,57 +679,183,81,57 +677,178,83,62 +674,180,81,65 +676,183,78,63 +669,184,84,63 +670,186,92,52 +674,183,93,50 +681,182,87,50 +675,186,84,55 +670,187,88,55 +668,188,84,60 +655,187,85,73 +653,192,80,75 +651,192,86,71 +649,187,95,69 +649,190,91,70 +653,194,91,62 +662,185,94,59 +661,180,92,67 +659,177,98,66 +658,178,93,71 +652,187,94,67 +645,194,94,67 +634,199,98,69 +634,198,101,67 +634,197,99,70 +636,205,95,64 +642,200,89,69 +639,210,89,62 +634,216,81,69 +630,222,83,65 +624,218,87,71 +606,217,95,82 +595,224,101,80 +604,226,97,73 +593,234,102,71 +585,232,107,76 +585,233,120,62 +585,233,120,62 +600,233,106,61 +602,230,96,72 +593,230,108,69 +587,230,103,80 +570,247,107,76 +556,249,118,77 +553,239,124,84 +544,248,121,87 +534,250,131,85 +534,243,132,91 +532,260,124,84 +537,265,128,70 +528,278,122,72 +519,279,121,81 +518,273,120,89 +503,288,118,91 +492,295,129,84 +500,291,118,91 +507,282,128,83 +500,289,122,89 +503,287,124,86 +496,283,127,94 +492,296,120,92 +471,320,123,86 +466,322,121,91 +456,329,118,97 +445,330,129,96 +436,343,125,96 +431,348,128,93 +420,348,128,104 +424,341,130,105 +416,348,130,106 +396,364,145,95 +386,361,150,103 +379,354,152,115 +372,349,168,111 +379,342,164,115 +386,328,173,113 +401,324,162,113 +410,319,152,119 +415,323,152,110 +422,319,159,100 +416,323,156,105 +410,329,154,107 +392,344,152,112 +389,338,160,113 +380,343,180,97 +383,350,169,98 +381,342,168,109 +359,356,169,116 +355,363,175,107 +348,370,165,117 +354,366,151,129 +366,351,155,128 +351,354,166,129 +342,364,167,127 +337,360,174,129 +327,355,180,138 +323,345,187,145 +333,348,185,134 +332,350,196,122 +337,351,184,128 +341,367,175,117 +342,360,163,135 +330,377,162,131 +324,384,156,136 +316,382,162,140 +306,377,186,131 +310,383,191,116 +308,368,189,135 +314,364,190,132 +304,362,188,146 +306,364,184,146 +304,368,194,134 +300,366,199,135 +286,377,208,129 +280,376,212,132 +291,372,213,124 +307,375,197,121 +294,376,209,121 +308,374,195,123 +311,364,194,131 +317,376,186,121 +321,380,172,127 +323,375,177,125 +311,383,182,124 +306,396,176,122 +275,415,183,127 +274,419,182,125 +272,409,180,139 +273,401,187,139 +270,389,192,149 +276,388,203,133 +273,382,209,136 +258,399,219,124 +265,402,205,128 +275,404,211,110 +282,391,196,131 +281,379,197,143 +275,386,203,136 +268,394,207,131 +278,403,193,126 +287,401,195,117 +276,404,199,121 +281,409,189,121 +279,419,177,125 +269,411,191,129 +281,400,174,145 +258,415,191,136 +265,416,187,132 +250,418,194,138 +257,409,203,131 +266,415,185,134 +269,398,181,152 +277,393,182,148 +272,390,197,141 +275,385,201,139 +279,391,197,133 +288,396,193,123 +297,383,186,134 +302,384,189,125 +303,384,187,126 +281,392,198,129 +295,385,204,116 +304,388,188,120 +299,387,195,119 +312,373,190,125 +302,368,199,131 +309,364,189,138 +300,375,177,148 +304,389,175,132 +293,384,182,141 +288,385,190,137 +274,396,193,137 +279,392,192,137 +300,388,188,124 +297,391,191,121 +292,389,190,129 +300,377,187,136 +308,369,190,133 +302,366,190,142 +291,377,201,131 +294,377,206,123 +284,384,211,121 +277,383,215,125 +287,395,194,124 +279,399,190,132 +267,406,187,140 +271,403,185,141 +261,402,197,140 +262,395,204,139 +257,390,216,137 +280,385,202,133 +280,390,205,125 +270,393,203,134 +281,374,213,132 +295,384,191,130 +294,387,187,132 +279,401,182,138 +260,416,189,135 +255,408,195,142 +260,423,193,124 +266,416,195,123 +258,413,193,136 +259,419,185,137 +255,411,197,137 +271,415,185,129 +267,414,179,140 +264,411,189,136 +273,416,175,136 +267,421,182,130 +284,395,168,153 +277,392,178,153 +271,402,182,145 +271,400,189,140 +259,416,186,139 +246,422,186,146 +255,424,184,137 +250,415,192,143 +255,414,192,139 +256,408,208,128 +269,404,200,127 +264,404,204,128 +264,400,192,144 +254,388,205,153 +246,396,216,142 +252,396,218,134 +271,387,215,127 +292,378,203,127 +279,381,200,140 +282,381,209,128 +284,387,202,127 +287,391,200,122 +302,386,190,122 +292,400,191,117 +280,398,192,130 +285,390,191,134 +285,389,191,135 +287,391,192,130 +281,398,190,131 +274,402,202,122 +265,401,212,122 +265,382,208,145 +257,385,220,138 +262,378,226,134 +276,374,218,132 +265,394,225,116 +275,389,202,134 +292,373,202,133 +304,363,193,140 +297,376,195,132 +288,389,188,135 +291,397,186,126 +288,390,191,131 +277,400,191,132 +278,389,203,130 +276,369,209,146 +291,376,184,149 +280,390,186,144 +282,398,181,139 +283,398,193,126 +281,400,193,126 +285,400,185,130 +276,412,188,124 +268,406,203,123 +283,387,207,123 +288,384,194,134 +285,393,198,124 +279,403,197,121 +287,396,195,122 +284,403,193,120 +281,410,186,123 +290,414,169,127 +288,412,176,124 +281,408,184,127 +281,411,176,132 +274,410,177,139 +276,408,177,139 +271,407,187,135 +282,402,187,129 +274,409,178,139 +273,407,184,136 +292,393,187,128 +301,383,179,137 +299,390,191,120 +314,375,187,124 +312,377,186,125 +323,377,181,119 +320,371,178,131 +311,366,184,139 +305,366,191,138 +322,363,194,121 +307,378,197,118 +303,389,181,127 +303,390,181,126 +288,397,186,129 +288,388,186,138 +276,391,195,138 +287,383,191,139 +286,386,192,136 +281,383,182,154 +268,387,191,154 +255,393,202,150 +245,406,210,139 +256,402,208,134 +261,412,198,129 +282,408,186,124 +272,410,186,132 +262,401,199,138 +258,398,206,138 +253,405,204,138 +247,411,210,132 +257,414,196,133 +259,419,196,126 +258,415,195,132 +254,416,212,118 +258,409,207,126 +261,399,201,139 +275,391,186,148 +277,390,194,139 +280,397,203,120 +285,392,184,139 +287,392,182,139 +283,382,205,130 +280,384,210,126 +279,386,214,121 +293,390,196,121 +286,397,196,121 +299,387,197,117 +305,394,188,113 +301,389,193,117 +300,386,198,116 +296,387,204,113 +314,380,203,103 +322,382,181,115 +321,378,188,113 +320,379,181,120 +318,391,177,114 +301,387,178,134 +296,398,174,132 +292,387,183,138 +295,383,200,122 +306,373,194,127 +293,372,198,137 +305,361,195,139 +305,366,199,130 +303,369,212,116 +320,359,205,116 +333,355,195,117 +338,358,187,117 +336,362,191,111 +333,356,190,121 +337,356,177,130 +331,368,163,138 +319,370,171,140 +302,375,183,140 +291,378,193,138 +285,386,193,136 +272,392,189,147 +272,400,196,132 +274,399,190,137 +259,415,197,129 +271,399,200,130 +279,404,206,111 +291,389,191,129 +299,394,184,123 +299,404,176,121 +298,403,179,120 +280,404,190,126 +288,392,188,132 +291,387,195,127 +292,379,207,122 +285,391,200,124 +293,394,195,118 +298,386,195,121 +300,385,195,120 +308,378,190,124 +305,389,192,114 +297,390,185,128 +290,386,181,143 +290,388,185,137 +286,387,185,142 +290,384,186,140 +293,386,191,130 +297,388,189,126 +300,388,181,131 +305,390,182,123 +293,397,176,134 +285,386,175,154 +266,402,194,138 +272,387,204,137 +277,385,202,136 +288,394,192,126 +285,399,177,139 +268,411,185,136 +269,413,181,137 +269,399,194,138 +281,392,193,134 +277,405,203,115 +279,396,198,127 +282,394,206,118 +273,390,213,124 +272,386,215,127 +269,392,221,118 +287,380,215,118 +295,382,213,110 +306,369,205,120 +308,373,204,115 +308,380,200,112 +291,391,197,121 +291,389,187,133 +281,408,190,121 +268,413,194,125 +276,416,191,117 +274,409,197,120 +268,415,199,118 +275,402,201,122 +286,399,192,123 +275,396,198,131 +257,400,207,136 +255,388,219,138 +277,385,210,128 +261,389,214,136 +261,396,207,136 +271,396,198,135 +272,389,209,130 +269,399,207,125 +270,396,211,123 +280,387,192,141 +282,382,184,152 +288,363,187,162 +276,367,201,156 +284,370,220,126 +290,375,219,116 +300,379,194,127 +288,388,193,131 +285,388,192,135 +275,390,201,134 +278,397,200,125 +293,391,192,124 +290,393,202,115 +310,380,196,114 +302,386,198,114 +307,384,182,127 +303,372,198,127 +283,394,193,130 +281,399,186,134 +283,407,187,123 +278,409,179,134 +289,420,171,120 +292,421,164,123 +287,411,175,127 +286,411,174,129 +277,409,191,123 +287,398,196,119 +291,388,194,127 +309,391,185,115 +301,382,181,136 +301,380,180,139 +296,378,189,137 +289,386,193,132 +289,388,192,131 +305,389,193,113 +306,393,201,100 +318,381,187,114 +314,389,185,112 +307,392,187,114 +312,405,183,100 +313,389,177,121 +296,389,178,137 +301,383,179,137 +278,395,193,134 +276,386,194,144 +283,389,187,141 +268,396,206,130 +270,384,216,130 +282,380,213,125 +297,359,208,136 +303,368,200,129 +306,378,196,120 +301,385,191,123 +307,374,196,123 +295,389,192,124 +302,390,175,133 +307,373,177,143 +304,386,173,137 +287,392,191,130 +286,388,197,129 +287,395,194,124 +288,389,192,131 +292,389,191,128 +283,388,194,135 +273,386,208,133 +277,389,214,120 +292,374,199,135 +296,372,203,129 +289,381,195,135 +282,388,194,136 +279,387,207,127 +285,384,206,125 +297,383,182,138 +295,391,179,135 +302,393,173,132 +287,401,192,120 +281,407,192,120 +291,404,187,118 +293,402,198,107 +283,408,203,106 +293,398,193,116 +294,392,192,122 +281,404,199,116 +276,389,209,126 +284,406,199,111 +284,398,208,110 +285,395,211,109 +305,392,194,109 +301,392,196,111 +328,372,186,114 +329,364,183,124 +328,364,185,123 +321,365,194,120 +313,375,188,124 +301,376,202,121 +309,381,180,130 +315,380,188,117 +319,381,176,124 +306,390,171,133 +306,385,168,141 +282,409,182,127 +280,405,193,122 +269,420,193,118 +265,422,192,121 +277,406,192,125 +275,393,186,146 +264,403,200,133 +267,404,196,133 +280,390,196,134 +272,398,198,132 +265,400,190,145 +250,404,207,139 +260,389,215,136 +276,377,205,142 +272,382,216,130 +279,379,213,129 +266,388,212,134 +275,378,206,141 +286,378,200,136 +293,382,202,123 +305,377,191,127 +299,386,189,126 +307,383,186,124 +293,393,186,128 +283,382,193,142 +280,393,197,130 +278,396,196,130 +283,393,189,135 +267,390,183,160 +258,402,203,137 +275,385,204,136 +274,383,208,135 +277,393,198,132 +283,392,194,131 +279,399,198,124 +282,396,212,110 +278,396,216,110 +285,401,201,113 +298,394,188,120 +292,395,186,127 +301,397,179,123 +299,389,194,118 +306,384,181,129 +311,385,185,119 +304,386,189,121 +321,389,172,118 +301,410,170,119 +291,416,170,123 +290,424,166,120 +291,404,174,131 +292,390,179,139 +285,393,184,138 +286,396,180,138 +277,393,186,144 +281,384,212,123 +291,387,196,126 +281,391,203,125 +276,401,202,121 +285,387,192,136 +267,394,204,135 +269,400,198,133 +269,399,205,127 +281,389,202,128 +283,392,203,122 +299,384,201,116 +312,376,191,121 +301,388,191,120 +311,385,188,116 +310,384,174,132 +308,396,168,128 +310,389,169,132 +307,399,161,133 +292,407,174,127 +294,392,187,127 +293,397,183,127 +291,390,183,136 +295,380,182,143 +301,373,186,140 +314,376,169,141 +303,383,185,129 +306,389,180,125 +306,384,178,132 +297,386,187,130 +288,400,188,124 +278,393,204,125 +285,405,198,112 +313,392,185,110 +307,392,190,111 +315,383,183,119 +316,377,183,124 +315,385,187,113 +310,375,190,125 +314,367,197,122 +320,363,201,116 +331,358,211,100 +332,355,195,118 +331,360,186,123 +339,361,177,123 +337,379,170,114 +337,373,168,122 +327,392,169,112 +312,391,171,126 +317,383,169,131 +316,391,169,124 +316,392,173,119 +318,387,178,117 +313,374,181,132 +305,383,185,127 +307,383,178,132 +294,397,168,141 +276,397,181,146 +264,410,202,124 +275,398,220,107 +289,396,188,127 +273,408,189,130 +287,399,175,139 +289,391,173,147 +278,396,187,139 +290,391,181,138 +283,384,200,133 +301,374,200,125 +314,377,197,112 +319,383,179,119 +304,385,195,116 +314,383,185,118 +309,378,187,126 +304,374,190,132 +306,384,179,131 +313,379,181,127 +321,367,174,138 +321,364,178,137 +307,374,183,136 +285,393,192,130 +275,402,171,152 +257,421,187,135 +252,419,187,142 +252,420,183,145 +249,414,199,138 +261,408,196,135 +248,414,193,145 +257,392,198,153 +252,392,193,163 +251,397,198,154 +264,379,187,170 +256,392,198,154 +264,389,184,163 +258,391,189,162 +255,395,203,147 +245,389,211,155 +245,396,222,137 +251,396,228,125 +273,389,221,117 +283,376,222,119 +290,371,224,115 +288,368,229,115 +295,363,213,129 +280,377,214,129 +282,380,215,123 +285,377,206,132 +280,382,210,128 +296,375,201,128 +290,380,195,135 +288,391,198,123 +283,400,202,115 +286,401,189,124 +292,384,186,138 +290,385,177,148 +274,393,195,138 +263,395,203,139 +259,397,214,130 +270,392,209,129 +280,391,194,135 +284,381,202,133 +299,371,193,137 +301,364,199,136 +286,374,202,138 +291,370,207,132 +296,370,208,126 +282,381,212,125 +289,377,202,132 +286,370,215,129 +286,386,200,128 +284,392,198,126 +295,391,186,128 +294,385,182,139 +287,384,181,148 +287,387,181,145 +281,386,179,154 +271,401,184,144 +275,403,191,131 +272,402,184,142 +270,404,193,133 +284,398,185,133 +289,401,193,117 +285,399,196,120 +273,408,204,115 +277,398,199,126 +274,394,192,140 +277,407,191,125 +283,403,190,124 +292,397,193,118 +287,406,193,114 +287,391,194,128 +289,395,190,126 +284,398,187,131 +276,404,192,128 +283,402,190,125 +287,413,172,128 +280,408,168,144 +269,408,174,149 +273,399,180,148 +277,405,189,129 +268,411,187,134 +265,400,189,146 +261,412,185,142 +259,406,177,158 +256,407,193,144 +253,399,192,156 +258,412,191,139 +238,415,206,141 +261,403,196,140 +264,411,184,141 +261,416,185,138 +263,414,186,137 +255,410,200,135 +265,396,203,136 +272,389,203,136 +284,389,195,132 +282,394,200,124 +275,396,208,121 +288,388,196,128 +287,394,197,122 +298,383,193,126 +286,394,209,111 +284,396,205,115 +276,402,200,122 +266,407,208,119 +268,401,205,126 +269,400,217,114 +277,394,212,117 +283,384,206,127 +288,376,202,134 +291,371,207,131 +293,371,192,144 +284,383,203,130 +272,399,195,134 +268,408,189,135 +273,408,193,126 +263,414,201,122 +254,417,216,113 +267,414,215,104 +285,405,202,108 +300,402,187,111 +312,388,170,130 +304,401,169,126 +302,398,167,133 +298,403,162,137 +275,410,175,140 +281,406,177,136 +281,406,181,132 +279,398,193,130 +287,390,187,136 +276,390,200,134 +277,394,199,130 +292,389,194,125 +279,397,197,127 +286,391,197,126 +282,404,192,122 +290,399,186,125 +279,401,185,135 +288,397,184,131 +275,399,185,141 +276,389,192,143 +281,390,190,139 +285,386,199,130 +274,401,189,136 +275,396,192,137 +268,413,188,131 +258,410,192,140 +275,391,180,154 +269,391,200,140 +264,398,202,136 +269,398,206,127 +272,401,200,127 +281,394,194,131 +282,391,197,130 +282,392,200,126 +285,380,196,139 +282,385,202,131 +285,397,198,120 +293,384,195,128 +286,393,183,138 +289,392,175,144 +269,412,180,139 +259,412,193,136 +265,406,192,137 +260,403,204,133 +262,406,201,131 +262,395,209,134 +267,393,213,127 +265,398,210,127 +271,397,204,128 +274,399,192,135 +281,396,189,134 +272,408,197,123 +279,399,189,133 +270,393,200,137 +287,398,195,120 +281,397,199,123 +286,389,190,135 +282,396,187,135 +278,401,182,139 +269,407,187,137 +265,405,185,145 +261,394,200,145 +252,401,211,136 +245,391,221,143 +264,367,221,148 +254,378,228,140 +266,382,225,127 +252,392,236,120 +257,392,231,120 +271,384,227,118 +284,384,216,116 +282,391,204,123 +289,395,192,124 +290,402,184,124 +286,400,198,116 +288,379,209,124 +289,382,208,121 +285,383,198,134 +286,378,213,123 +302,368,209,121 +310,379,194,117 +322,387,181,110 +317,382,176,125 +314,379,178,129 +305,382,186,127 +315,387,178,120 +309,395,185,111 +308,387,189,116 +293,390,201,116 +304,375,191,130 +296,373,198,133 +297,379,190,134 +294,388,194,124 +298,392,187,123 +286,405,184,125 +288,406,182,124 +290,396,190,124 +297,402,176,125 +285,410,187,118 +294,399,192,115 +296,403,180,121 +302,396,186,116 +316,377,188,119 +312,379,190,119 +302,373,193,132 +296,383,197,124 +291,397,181,131 +280,406,172,142 +275,407,171,147 +270,406,187,137 +269,395,193,143 +263,411,191,135 +270,405,198,127 +283,395,200,122 +282,396,192,130 +289,385,192,134 +294,394,190,122 +294,389,201,116 +293,384,197,126 +284,381,190,145 +282,393,184,141 +284,385,203,128 +278,391,200,131 +277,386,203,134 +284,386,204,126 +288,383,193,136 +286,386,199,129 +281,385,198,136 +290,390,201,119 diff --git a/target/classes/pythonOutput/output6.png b/target/classes/pythonOutput/output6.png new file mode 100644 index 0000000000000000000000000000000000000000..0b44b9ec3a1c585ce04ef44601078efb1ea522a9 Binary files /dev/null and b/target/classes/pythonOutput/output6.png differ diff --git a/target/classes/pythonOutput/output7.csv b/target/classes/pythonOutput/output7.csv new file mode 100644 index 0000000000000000000000000000000000000000..9fdd10674f57b0f05e9e0ffae1b0dc537abec581 --- /dev/null +++ b/target/classes/pythonOutput/output7.csv @@ -0,0 +1,1001 @@ +SUCEPTIBLE,EXPOSED,RECOVERED,INFECTED +996,3,1,0 +997,3,0,0 +997,3,0,0 +996,3,0,1 +995,4,0,1 +995,4,1,0 +995,4,1,0 +995,3,1,1 +994,4,2,0 +995,4,1,0 +995,4,1,0 +995,4,1,0 +995,4,1,0 +996,4,0,0 +996,4,0,0 +994,5,0,1 +991,7,0,2 +989,6,0,5 +985,10,2,3 +984,10,4,2 +983,11,4,2 +983,12,3,2 +981,14,3,2 +980,15,3,2 +980,14,4,2 +977,17,5,1 +973,18,4,5 +962,26,5,7 +959,23,7,11 +952,29,11,8 +949,32,10,9 +948,30,11,11 +945,32,16,7 +943,34,15,8 +939,36,17,8 +941,33,17,9 +935,36,15,14 +932,40,17,11 +930,42,16,12 +925,44,19,12 +920,49,18,13 +916,54,17,13 +914,52,18,16 +908,55,22,15 +904,54,26,16 +899,62,24,15 +894,64,29,13 +887,65,33,15 +884,70,29,17 +873,77,33,17 +869,83,28,20 +861,86,28,25 +852,89,30,29 +850,92,33,25 +841,94,37,28 +837,99,38,26 +836,105,37,22 +833,109,39,19 +826,113,40,21 +816,116,39,29 +815,120,40,25 +811,115,40,34 +807,112,44,37 +809,111,44,36 +791,121,49,39 +794,120,53,33 +790,127,51,32 +776,138,55,31 +765,144,58,33 +751,153,59,37 +754,144,57,45 +739,152,68,41 +735,150,60,55 +722,158,61,59 +721,156,69,54 +719,160,69,52 +714,155,74,57 +706,163,80,51 +699,169,78,54 +701,169,82,48 +688,177,82,53 +688,178,79,55 +685,180,80,55 +682,179,84,55 +672,178,88,62 +671,185,85,59 +670,189,82,59 +670,191,82,57 +659,198,86,57 +650,201,85,64 +649,214,84,53 +647,216,85,52 +644,220,80,56 +637,217,78,68 +631,237,79,53 +625,241,74,60 +615,245,78,62 +612,242,80,66 +612,232,77,79 +598,238,83,81 +590,246,95,69 +582,240,112,66 +586,239,111,64 +578,253,104,65 +583,242,104,71 +577,241,120,62 +582,242,114,62 +588,231,105,76 +575,248,101,76 +563,252,105,80 +560,255,109,76 +542,268,109,81 +540,283,102,75 +529,287,104,80 +517,279,114,90 +514,292,112,82 +513,283,124,80 +504,287,134,75 +518,282,132,68 +520,280,122,78 +522,274,123,81 +514,282,119,85 +495,288,123,94 +490,284,116,110 +485,282,112,121 +474,297,128,101 +471,297,119,113 +464,295,130,111 +454,304,129,113 +446,307,136,111 +441,312,146,101 +433,316,137,114 +428,327,135,110 +416,332,145,107 +393,343,154,110 +379,358,159,104 +369,356,169,106 +373,345,163,119 +371,333,169,127 +366,339,168,127 +360,341,180,119 +355,341,186,118 +337,360,194,109 +350,345,191,114 +350,345,196,109 +358,342,195,105 +364,340,182,114 +349,346,186,119 +356,350,183,111 +361,349,189,101 +374,346,185,95 +374,337,188,101 +359,343,191,107 +371,340,187,102 +367,341,175,117 +347,342,193,118 +345,337,195,123 +343,342,189,126 +351,349,182,118 +342,355,182,121 +333,358,183,126 +336,367,183,114 +339,369,178,114 +340,373,177,110 +333,370,187,110 +345,368,175,112 +322,380,176,122 +322,390,167,121 +322,389,167,122 +305,399,184,112 +322,396,167,115 +318,391,151,140 +296,401,162,141 +271,416,171,142 +269,415,178,138 +273,408,178,141 +258,422,181,139 +262,409,182,147 +263,409,199,129 +265,416,183,136 +255,428,178,139 +246,425,186,143 +240,411,196,153 +243,403,199,155 +252,395,221,132 +272,376,217,135 +288,374,213,125 +291,385,207,117 +292,382,203,123 +296,394,196,114 +297,393,197,113 +300,388,197,115 +312,388,183,117 +304,396,194,106 +317,385,191,107 +325,370,183,122 +330,380,172,118 +321,381,184,114 +297,403,191,109 +294,403,191,112 +290,404,191,115 +293,400,186,121 +276,409,193,122 +277,405,191,127 +277,396,195,132 +279,392,192,137 +272,388,203,137 +278,388,206,128 +266,391,226,117 +280,396,212,112 +279,399,214,108 +291,394,204,111 +286,394,198,122 +283,401,190,126 +273,414,195,118 +281,401,194,124 +274,394,185,147 +275,397,187,141 +263,410,187,140 +267,411,191,131 +261,408,183,148 +257,413,191,139 +265,408,186,141 +257,417,181,145 +240,421,198,141 +251,401,207,141 +251,380,216,153 +243,378,221,158 +239,394,227,140 +250,389,207,154 +239,404,220,137 +248,391,206,155 +233,395,223,149 +243,393,209,155 +239,393,213,155 +242,401,215,142 +248,389,226,137 +252,383,235,130 +255,381,217,147 +249,388,210,153 +267,384,207,142 +270,378,212,140 +263,383,211,143 +285,370,216,129 +292,379,205,124 +302,368,205,125 +299,375,204,122 +298,380,200,122 +281,397,205,117 +295,385,196,124 +296,375,197,132 +283,384,206,127 +276,392,204,128 +266,392,201,141 +275,387,199,139 +276,385,203,136 +281,372,205,142 +280,376,203,141 +273,373,213,141 +281,380,207,132 +289,384,198,129 +276,387,209,128 +281,373,215,131 +274,375,215,136 +300,365,212,123 +310,370,206,114 +312,365,204,119 +322,368,199,111 +326,376,198,100 +321,372,193,114 +322,384,186,108 +305,388,182,125 +292,396,181,131 +296,389,178,137 +290,380,184,146 +282,377,200,141 +287,378,206,129 +300,375,201,124 +292,387,192,129 +292,381,177,150 +268,382,182,168 +256,395,199,150 +259,392,197,152 +264,388,203,145 +265,396,202,137 +263,392,209,136 +275,390,194,141 +276,385,192,147 +274,383,200,143 +258,399,209,134 +256,405,211,128 +280,375,202,143 +283,384,208,125 +304,373,199,124 +303,372,193,132 +299,375,201,125 +312,361,183,144 +307,370,185,138 +300,378,181,141 +287,370,202,141 +265,375,217,143 +263,378,224,135 +259,380,240,121 +286,368,225,121 +279,379,227,115 +273,392,212,123 +278,393,204,125 +284,397,194,125 +272,402,194,132 +274,394,192,140 +272,392,200,136 +264,405,207,124 +273,404,210,113 +266,410,204,120 +270,413,199,118 +274,411,187,128 +292,383,189,136 +300,373,185,142 +296,366,196,142 +293,368,190,149 +288,372,198,142 +273,387,206,134 +277,388,207,128 +284,385,204,127 +274,398,197,131 +283,392,190,135 +292,394,189,125 +293,391,185,131 +282,394,202,122 +277,399,197,127 +282,387,196,135 +273,392,201,134 +261,398,203,138 +260,396,194,150 +268,391,191,150 +277,390,203,130 +267,406,197,130 +272,406,203,119 +281,395,192,132 +282,387,199,132 +281,390,205,124 +282,391,200,127 +263,412,202,123 +258,407,209,126 +253,408,217,122 +266,397,211,126 +272,392,208,128 +278,394,202,126 +275,397,202,126 +276,403,185,136 +266,411,205,118 +267,412,204,117 +261,412,211,116 +264,407,206,123 +288,386,198,128 +282,389,197,132 +302,373,189,136 +258,394,210,138 +288,378,196,138 +280,381,204,135 +280,373,193,154 +289,376,187,148 +290,388,197,125 +283,390,194,133 +290,389,196,125 +281,405,195,119 +283,399,192,126 +281,409,194,116 +281,416,190,113 +289,411,185,115 +294,403,168,135 +279,416,173,132 +283,417,159,141 +285,401,176,138 +281,405,189,125 +281,415,179,125 +274,406,178,142 +272,409,192,127 +269,409,186,136 +274,395,183,148 +253,394,201,152 +254,388,214,144 +263,387,189,161 +260,382,201,157 +244,399,203,154 +234,394,214,158 +249,382,227,142 +249,388,221,142 +263,377,220,140 +256,382,230,132 +262,378,247,113 +266,379,239,116 +278,378,224,120 +288,375,215,122 +291,384,203,122 +291,388,203,118 +290,396,203,111 +298,395,200,107 +298,395,195,112 +295,401,190,114 +310,391,185,114 +303,402,188,107 +285,397,200,118 +283,410,203,104 +280,400,196,124 +282,398,189,131 +267,401,207,125 +280,393,204,123 +268,406,211,115 +289,385,208,118 +292,379,208,121 +282,368,209,141 +260,381,210,149 +258,389,211,142 +271,385,198,146 +268,394,192,146 +263,384,206,147 +265,395,215,125 +269,392,204,135 +268,388,205,139 +265,400,214,121 +266,392,212,130 +273,389,204,134 +281,384,193,142 +269,386,209,136 +272,388,216,124 +281,381,207,131 +269,391,207,133 +263,382,204,151 +257,396,205,142 +262,405,196,137 +262,419,189,130 +250,422,180,148 +236,427,183,154 +226,424,190,160 +221,424,196,159 +224,417,200,159 +232,415,195,158 +231,404,207,158 +218,402,218,162 +233,389,233,145 +238,391,228,143 +268,385,222,125 +270,396,204,130 +263,404,199,134 +261,408,201,130 +258,411,196,135 +262,407,190,141 +265,398,193,144 +260,403,192,145 +254,403,201,142 +244,401,215,140 +240,400,229,131 +264,397,213,126 +273,386,206,135 +260,403,209,128 +273,406,208,113 +288,395,200,117 +283,401,201,115 +293,391,202,114 +295,382,197,126 +289,394,199,118 +287,387,208,118 +285,389,204,122 +271,410,196,123 +287,391,196,126 +289,385,196,130 +286,381,191,142 +284,382,196,138 +281,392,200,127 +272,398,204,126 +272,393,200,135 +259,389,205,147 +253,391,213,143 +277,391,202,130 +273,382,197,148 +266,397,199,138 +273,391,201,135 +282,383,200,135 +264,396,217,123 +264,395,222,119 +276,387,210,127 +287,385,199,129 +283,386,195,136 +274,386,200,140 +272,393,203,132 +263,397,204,136 +256,400,207,137 +261,401,209,129 +279,406,195,120 +291,402,196,111 +285,409,196,110 +278,402,209,111 +270,411,218,101 +300,395,199,106 +311,395,182,112 +308,391,179,122 +312,389,169,130 +299,383,175,143 +301,378,180,141 +306,379,173,142 +299,372,175,154 +295,369,192,144 +290,374,204,132 +284,378,214,124 +288,377,204,131 +284,370,216,130 +286,371,207,136 +266,393,208,133 +267,395,207,131 +291,375,190,144 +280,380,202,138 +278,387,207,128 +285,374,207,134 +286,373,205,136 +295,368,207,130 +301,367,208,124 +280,381,202,137 +290,380,202,128 +277,392,209,122 +291,380,203,126 +286,380,200,134 +302,375,195,128 +307,373,193,127 +300,380,190,130 +304,375,176,145 +296,386,183,135 +297,389,189,125 +286,394,183,137 +275,402,195,128 +268,395,198,139 +270,391,190,149 +280,393,190,137 +284,391,193,132 +276,390,208,126 +288,389,200,123 +271,403,199,127 +264,414,194,128 +283,407,172,138 +270,413,192,125 +276,393,192,139 +277,392,206,125 +280,388,211,121 +284,379,209,128 +296,382,189,133 +283,405,186,126 +288,408,184,120 +287,418,179,116 +292,410,171,127 +294,406,175,125 +293,413,178,116 +277,410,187,126 +283,405,179,133 +271,405,193,131 +281,408,185,126 +279,402,186,133 +269,405,196,130 +273,396,190,141 +267,392,200,141 +264,403,197,136 +266,398,192,144 +271,389,200,140 +281,394,196,129 +280,393,201,126 +282,383,202,133 +271,386,205,138 +264,390,218,128 +274,386,215,125 +289,367,206,138 +294,368,193,145 +299,374,182,145 +277,386,191,146 +267,375,210,148 +273,386,191,150 +280,390,200,130 +278,388,203,131 +287,376,201,136 +273,389,210,128 +273,400,200,127 +289,402,191,118 +295,394,186,125 +281,408,202,109 +292,391,194,123 +280,412,181,127 +291,398,167,144 +298,398,172,132 +291,407,186,116 +299,408,189,104 +300,401,188,111 +309,404,175,112 +290,402,181,127 +294,404,174,128 +279,407,194,120 +284,406,187,123 +295,392,187,126 +279,401,190,130 +271,405,191,133 +272,397,182,149 +258,390,195,157 +265,383,201,151 +250,388,212,150 +241,387,219,153 +228,402,229,141 +241,400,215,144 +257,395,214,134 +265,380,217,138 +257,389,219,135 +263,379,215,143 +254,392,225,129 +280,377,215,128 +276,375,223,126 +289,380,212,119 +282,384,201,133 +274,379,205,142 +283,379,206,132 +286,375,213,126 +310,367,197,126 +318,362,184,136 +323,359,181,137 +328,356,181,135 +339,363,188,110 +333,368,196,103 +340,364,185,111 +335,366,185,114 +326,376,173,125 +315,392,170,123 +307,388,175,130 +299,391,177,133 +279,398,173,150 +261,411,181,147 +263,405,200,132 +265,400,205,130 +262,399,195,144 +250,407,211,132 +249,398,217,136 +248,398,219,135 +246,398,223,133 +246,407,218,129 +249,398,216,137 +257,406,206,131 +273,395,199,133 +262,408,200,130 +260,404,199,137 +255,417,196,132 +262,416,194,128 +259,422,183,136 +262,410,195,133 +281,397,198,124 +292,383,191,134 +287,389,193,131 +284,394,199,123 +287,392,204,117 +296,390,198,116 +291,391,196,122 +284,395,197,124 +284,386,196,134 +271,398,207,124 +261,406,205,128 +264,390,210,136 +275,387,210,128 +280,399,187,134 +280,391,192,137 +279,385,194,142 +281,389,200,130 +286,386,189,139 +284,384,184,148 +271,390,200,139 +273,396,193,138 +266,394,192,148 +256,407,186,151 +257,410,191,142 +273,407,180,140 +274,403,184,139 +270,399,197,134 +266,406,207,121 +274,408,192,126 +272,407,185,136 +264,414,183,139 +271,411,171,147 +268,394,191,147 +283,384,188,145 +289,373,199,139 +287,373,214,126 +301,382,206,111 +297,381,195,127 +295,395,185,125 +301,379,187,133 +297,383,182,138 +293,389,192,126 +294,378,192,136 +307,377,187,129 +303,388,192,117 +299,388,198,115 +300,381,198,121 +293,378,191,138 +281,393,196,130 +274,390,194,142 +262,398,199,141 +274,388,200,138 +274,386,205,135 +276,396,191,137 +263,395,209,133 +273,388,215,124 +276,382,209,133 +291,371,200,138 +290,382,200,128 +289,402,190,119 +294,405,188,113 +284,408,192,116 +269,399,201,131 +259,407,204,130 +271,399,196,134 +284,395,190,131 +290,391,197,122 +277,394,208,121 +277,389,205,129 +295,381,198,126 +281,395,207,117 +286,395,199,120 +290,386,193,131 +295,387,184,134 +284,395,187,134 +287,385,176,152 +273,387,195,145 +264,391,205,140 +266,386,211,137 +269,383,224,124 +289,381,225,105 +323,375,195,107 +324,380,191,105 +307,400,180,113 +311,400,182,107 +306,395,182,117 +306,399,195,100 +300,401,181,118 +306,405,164,125 +288,399,178,135 +279,396,179,146 +255,411,192,142 +248,408,199,145 +254,405,198,143 +253,404,207,136 +250,397,212,141 +268,392,198,142 +264,399,204,133 +257,405,210,128 +253,409,222,116 +269,384,216,131 +272,385,217,126 +257,392,216,135 +259,385,214,142 +257,394,211,138 +261,380,214,145 +262,379,203,156 +258,383,212,147 +269,376,214,141 +277,386,215,122 +282,386,206,126 +277,385,201,137 +280,392,204,124 +295,390,200,115 +281,400,201,118 +282,399,192,127 +291,397,188,124 +296,400,185,119 +293,390,186,131 +284,395,180,141 +293,389,167,151 +282,397,175,146 +278,394,188,140 +280,387,201,132 +273,391,198,138 +290,369,194,147 +294,370,190,146 +295,369,193,143 +294,381,185,140 +284,389,195,132 +282,394,203,121 +294,382,183,141 +297,384,183,136 +293,383,189,135 +284,375,203,138 +283,382,202,133 +289,381,201,129 +300,385,189,126 +283,381,201,135 +296,382,191,131 +294,399,176,131 +299,391,175,135 +297,383,176,144 +277,391,190,142 +286,390,186,138 +279,395,191,135 +263,395,186,156 +248,404,198,150 +238,412,199,151 +242,406,203,149 +244,404,210,142 +240,397,222,141 +254,385,226,135 +258,391,228,123 +273,382,208,137 +269,394,201,136 +254,399,228,119 +268,396,202,134 +268,402,196,134 +271,395,199,135 +264,396,209,131 +250,409,214,127 +255,412,211,122 +272,406,195,127 +267,407,187,139 +259,404,190,147 +264,389,213,134 +262,392,217,129 +267,390,211,132 +264,390,213,133 +272,382,211,135 +276,380,216,128 +282,382,215,121 +302,372,193,133 +298,376,189,137 +309,373,189,129 +307,384,188,121 +299,386,193,122 +284,404,208,104 +303,387,205,105 +316,379,184,121 +311,386,189,114 +304,393,188,115 +301,396,178,125 +290,401,182,127 +286,396,178,140 +279,396,188,137 +261,408,198,133 +263,402,213,122 +260,395,225,120 +253,401,232,114 +263,389,218,130 +262,400,217,121 +269,405,203,123 +268,421,189,122 +276,412,185,127 +272,409,183,136 +275,389,192,144 +280,398,186,136 +289,394,191,126 +274,404,203,119 +286,389,207,118 +277,402,203,118 +281,403,190,126 +277,403,184,136 +268,412,188,132 +266,400,201,133 +261,401,196,142 +258,404,193,145 +258,411,197,134 +266,403,193,138 +278,392,195,135 +272,399,195,134 +277,391,205,127 +278,386,202,134 +284,393,190,133 +280,392,190,138 +281,403,188,128 +274,411,190,125 +266,400,196,138 +275,400,195,130 +286,388,199,127 +273,410,199,118 +279,408,192,121 +290,409,175,126 +284,412,186,118 +284,401,191,124 +277,398,200,125 +283,390,194,133 +274,386,190,150 +269,393,189,149 +278,386,191,145 +278,383,204,135 +266,397,202,135 +266,406,198,130 +276,402,209,113 +288,402,195,115 +277,418,189,116 +278,417,186,119 +283,410,174,133 +271,407,188,134 +269,398,195,138 +276,396,188,140 +279,394,201,126 +286,388,201,125 +271,387,212,130 +286,390,198,126 +283,387,199,131 +275,387,208,130 +274,384,196,146 +277,392,196,135 +265,392,202,141 +269,391,208,132 +276,391,204,129 +292,387,192,129 +291,393,191,125 +280,398,193,129 +274,410,195,121 +288,396,178,138 +281,393,186,140 +283,398,177,142 +279,405,183,133 +272,398,180,150 +250,407,194,149 +246,416,205,133 +265,397,195,143 +266,390,201,143 +262,386,208,144 +270,382,216,132 +272,381,207,140 +278,382,203,137 +276,375,206,143 +285,377,191,147 +263,386,204,147 +269,389,200,142 +273,390,194,143 +263,395,201,141 +253,406,217,124 +252,407,216,125 +261,404,205,130 +262,407,200,131 +256,420,203,121 +260,416,197,127 +261,414,188,137 +239,431,195,135 +235,426,205,134 +246,413,195,146 +244,410,199,147 +245,405,215,135 +233,407,210,150 +250,404,202,144 +251,398,204,147 +253,405,195,147 +243,407,203,147 +243,400,207,150 +244,394,205,157 +249,391,203,157 +250,381,213,156 +246,367,239,148 +259,369,237,135 +268,364,228,140 +263,373,223,141 +283,370,214,133 +281,378,220,121 +289,377,222,112 +294,383,216,107 +302,383,208,107 +302,381,209,108 +311,375,210,104 +316,381,206,97 +307,385,204,104 +311,386,194,109 +294,405,193,108 +298,397,199,106 +284,390,196,130 +284,398,194,124 +290,394,184,132 +270,394,196,140 +260,391,213,136 +281,378,210,131 +284,378,221,117 +283,387,200,130 +278,385,205,132 +261,405,197,137 +270,403,188,139 +262,422,179,137 +261,428,189,122 +262,422,190,126 +267,422,179,132 +273,426,181,120 +262,423,180,135 +259,416,190,135 +267,412,196,125 +278,396,189,137 +271,397,193,139 +260,388,205,147 +270,383,213,134 +279,390,205,126 +279,390,202,129 +290,387,194,129 +277,392,205,126 +294,388,187,131 +281,404,186,129 +268,402,195,135 +276,394,199,131 +276,394,199,131 +301,377,192,130 +306,379,189,126 +311,379,185,125 +302,381,196,121 +300,380,193,127 +297,377,188,138 +303,384,173,140 diff --git a/target/classes/pythonOutput/output7.png b/target/classes/pythonOutput/output7.png new file mode 100644 index 0000000000000000000000000000000000000000..71d05f57f70d7683f58341db84612457f43ea327 Binary files /dev/null and b/target/classes/pythonOutput/output7.png differ diff --git a/target/classes/pythonOutput/output8.csv b/target/classes/pythonOutput/output8.csv new file mode 100644 index 0000000000000000000000000000000000000000..33c04a0e234add5ed761eb402cffd75e512a3456 --- /dev/null +++ b/target/classes/pythonOutput/output8.csv @@ -0,0 +1,1001 @@ +SUCEPTIBLE,EXPOSED,RECOVERED,INFECTED +997,2,1,0 +998,2,0,0 +998,2,0,0 +996,3,0,1 +995,4,0,1 +995,4,1,0 +995,3,1,1 +993,4,1,2 +989,7,2,2 +986,10,2,2 +984,12,3,1 +985,12,2,1 +984,12,2,2 +980,16,1,3 +978,19,0,3 +975,20,2,3 +969,24,3,4 +966,23,5,6 +964,25,8,3 +963,26,6,5 +962,26,6,6 +963,25,5,7 +959,28,5,8 +954,32,5,9 +945,38,8,9 +936,45,13,6 +931,47,13,9 +925,47,15,13 +917,50,16,17 +914,51,16,19 +910,52,16,22 +906,51,19,24 +903,55,18,24 +901,56,26,17 +899,57,31,13 +902,56,28,14 +900,49,27,24 +895,49,34,22 +891,52,37,20 +892,52,40,16 +891,55,41,13 +886,56,42,16 +886,58,39,17 +885,60,40,15 +878,67,38,17 +870,78,36,16 +872,79,31,18 +868,84,30,18 +863,87,25,25 +851,94,29,26 +845,95,33,27 +828,104,32,36 +813,113,35,39 +802,121,41,36 +806,116,45,33 +805,114,48,33 +808,115,49,28 +809,114,43,34 +807,119,44,30 +806,117,44,33 +796,121,47,36 +788,121,47,44 +776,134,49,41 +768,137,52,43 +770,136,39,55 +758,141,49,52 +756,140,54,50 +747,145,63,45 +736,155,69,40 +724,160,74,42 +722,163,66,49 +716,165,71,48 +717,163,68,52 +711,166,70,53 +702,173,75,50 +696,178,74,52 +696,168,81,55 +688,177,79,56 +684,180,80,56 +681,181,87,51 +682,184,90,44 +693,179,79,49 +680,180,88,52 +689,177,78,56 +679,185,92,44 +684,186,89,41 +687,185,81,47 +688,191,74,47 +684,198,72,46 +687,197,66,50 +681,191,69,59 +677,198,64,61 +668,209,67,56 +662,205,64,69 +651,209,74,66 +644,209,85,62 +650,204,84,62 +655,196,84,65 +651,205,80,64 +646,206,88,60 +654,205,89,52 +645,194,88,73 +635,199,96,70 +619,205,103,73 +600,208,110,82 +598,203,110,89 +599,210,109,82 +594,219,112,75 +590,219,114,77 +578,233,118,71 +577,232,115,76 +576,230,117,77 +578,236,118,68 +588,232,111,69 +584,231,104,81 +571,246,109,74 +563,253,114,70 +560,259,111,70 +555,256,107,82 +540,259,113,88 +523,268,114,95 +509,273,127,91 +484,280,135,101 +487,277,138,98 +472,288,141,99 +479,292,130,99 +476,295,130,99 +471,296,127,106 +471,289,130,110 +451,298,147,104 +448,293,151,108 +451,299,149,101 +436,295,156,113 +424,306,167,103 +424,315,166,95 +419,324,168,89 +410,320,168,102 +409,323,162,106 +413,314,163,110 +412,315,162,111 +411,331,158,100 +388,335,174,103 +396,331,175,98 +401,324,163,112 +390,328,169,113 +386,331,170,113 +391,333,176,100 +411,330,157,102 +412,328,152,108 +390,347,163,100 +394,359,145,102 +383,346,151,120 +384,348,148,120 +365,350,155,130 +364,339,154,143 +365,355,163,117 +390,351,152,107 +385,344,157,114 +375,336,163,126 +361,351,173,115 +364,347,174,115 +351,352,185,112 +340,352,182,126 +339,363,184,114 +351,358,176,115 +351,348,165,136 +337,359,171,133 +331,362,179,128 +336,351,178,135 +325,363,180,132 +323,371,185,121 +321,378,188,113 +329,378,173,120 +322,383,179,116 +315,384,182,119 +318,378,174,130 +313,380,183,124 +296,385,195,124 +311,382,190,117 +315,371,183,131 +307,372,200,121 +324,377,185,114 +315,388,187,110 +327,387,180,106 +342,378,168,112 +354,366,183,97 +368,363,170,99 +363,364,169,104 +359,374,169,98 +356,375,155,114 +346,388,158,108 +337,396,156,111 +327,395,162,116 +315,407,157,121 +297,405,169,129 +297,399,184,120 +304,389,176,131 +295,385,180,140 +302,375,188,135 +303,379,194,124 +294,377,188,141 +294,373,183,150 +273,383,198,146 +278,395,193,134 +283,386,193,138 +275,393,197,135 +278,391,194,137 +281,388,201,130 +298,373,208,121 +299,391,191,119 +303,388,181,128 +293,388,187,132 +287,394,191,128 +279,399,190,132 +273,410,184,133 +262,398,199,141 +252,396,204,148 +265,399,200,136 +261,414,181,144 +249,413,197,141 +249,417,196,138 +239,412,209,140 +238,399,205,158 +244,386,219,151 +252,376,210,162 +259,375,202,164 +258,379,210,153 +257,387,220,136 +264,388,226,122 +273,379,219,129 +263,392,218,127 +264,402,202,132 +271,401,195,133 +265,408,191,136 +265,405,194,136 +264,408,196,132 +254,404,201,141 +249,409,193,149 +255,407,199,139 +264,389,206,141 +281,386,191,142 +267,392,209,132 +249,397,212,142 +254,396,216,134 +265,386,213,136 +291,371,212,126 +293,376,205,126 +308,367,199,126 +300,372,203,125 +297,361,209,133 +288,381,209,122 +300,378,200,122 +284,394,195,127 +292,381,196,131 +266,394,200,140 +265,392,215,128 +263,398,215,124 +265,391,207,137 +267,397,208,128 +277,388,207,128 +257,404,198,141 +267,401,184,148 +263,396,200,141 +272,387,205,136 +269,385,208,138 +269,394,198,139 +272,397,197,134 +274,399,192,135 +272,405,184,139 +272,398,174,156 +266,402,186,146 +261,405,206,128 +262,407,205,126 +256,407,197,140 +251,401,206,142 +251,407,204,138 +251,405,212,132 +257,401,216,126 +252,410,206,132 +254,406,212,128 +266,392,200,142 +272,389,202,137 +254,404,196,146 +245,392,196,167 +245,394,194,167 +234,401,211,154 +249,390,214,147 +264,401,199,136 +264,407,195,134 +256,403,209,132 +263,397,204,136 +271,390,203,136 +267,384,211,138 +284,388,188,140 +282,397,198,123 +289,385,194,132 +294,388,192,126 +289,383,194,134 +290,369,204,137 +301,371,200,128 +301,374,198,127 +295,374,207,124 +277,377,214,132 +286,376,202,136 +285,391,189,135 +272,397,185,146 +261,404,201,134 +263,395,210,132 +283,384,202,131 +289,384,221,106 +297,387,205,111 +298,390,200,112 +309,380,189,122 +303,380,190,127 +297,384,191,128 +294,377,185,144 +287,389,185,139 +285,377,187,151 +263,387,201,149 +249,379,221,151 +242,383,236,139 +243,376,244,137 +259,374,231,136 +265,370,238,127 +283,367,219,131 +287,364,204,145 +295,370,205,130 +294,360,218,128 +301,353,212,134 +295,373,204,128 +295,370,202,133 +301,364,207,128 +295,368,210,127 +297,375,200,128 +299,367,206,128 +308,366,196,130 +312,377,195,116 +307,394,197,102 +305,386,185,124 +286,401,187,126 +275,405,184,136 +272,404,197,127 +274,396,200,130 +252,411,192,145 +256,415,193,136 +254,417,191,138 +257,411,192,140 +257,417,208,118 +265,407,199,129 +267,403,203,127 +267,402,195,136 +255,419,200,126 +253,418,197,132 +254,409,203,134 +265,403,197,135 +245,414,203,138 +259,406,207,128 +251,399,204,146 +263,390,200,147 +248,392,213,147 +254,393,221,132 +264,384,214,138 +274,387,216,123 +286,379,225,110 +286,375,206,133 +277,380,215,128 +277,375,219,129 +289,377,203,131 +295,382,201,122 +294,383,194,129 +287,380,202,131 +285,382,208,125 +284,381,201,134 +290,375,214,121 +299,374,212,115 +290,371,219,120 +294,378,211,117 +299,381,211,109 +301,379,205,115 +306,384,190,120 +298,388,206,108 +311,390,193,106 +321,389,189,101 +323,376,187,114 +331,377,188,104 +331,369,182,118 +321,372,187,120 +329,366,175,130 +310,385,178,127 +290,391,184,135 +289,384,189,138 +288,384,177,151 +272,403,197,128 +274,405,193,128 +260,409,205,126 +266,396,197,141 +259,402,201,138 +253,397,201,149 +255,400,190,155 +240,416,201,143 +247,423,202,128 +249,411,206,134 +255,401,194,150 +247,411,205,137 +250,404,209,137 +245,411,217,127 +251,403,215,131 +253,402,212,133 +245,398,212,145 +255,391,217,137 +273,386,203,138 +266,401,198,135 +263,402,194,141 +260,394,205,141 +262,399,204,135 +263,400,209,128 +273,384,208,135 +268,387,222,123 +274,377,224,125 +267,372,218,143 +258,385,226,131 +266,391,215,128 +279,386,212,123 +268,400,211,121 +263,405,208,124 +260,412,196,132 +259,416,196,129 +265,393,201,141 +279,385,193,143 +267,392,192,149 +256,396,202,146 +264,393,196,147 +261,387,212,140 +256,388,203,153 +262,393,202,143 +263,396,188,153 +262,398,187,153 +253,385,203,159 +246,395,203,156 +242,414,200,144 +247,416,198,139 +256,407,199,138 +262,404,199,135 +257,407,194,142 +240,405,216,139 +237,405,210,148 +240,399,214,147 +246,393,221,140 +260,396,202,142 +260,399,211,130 +267,383,218,132 +261,375,226,138 +257,384,223,136 +277,381,214,128 +290,371,204,135 +310,370,196,124 +300,390,191,119 +294,394,194,118 +299,389,187,125 +296,401,178,125 +290,397,172,141 +271,394,183,152 +268,389,195,148 +262,402,192,144 +254,407,208,131 +256,406,214,124 +271,402,209,118 +284,403,190,123 +298,394,188,120 +296,391,185,128 +277,403,177,143 +258,399,189,154 +236,407,199,158 +236,399,210,155 +239,404,229,128 +246,401,220,133 +248,403,218,131 +250,399,218,133 +251,391,224,134 +254,387,210,149 +256,391,208,145 +259,392,204,145 +259,401,205,135 +248,417,209,126 +254,406,204,136 +271,404,198,127 +288,394,197,121 +273,402,208,117 +278,388,207,127 +289,390,189,132 +273,390,203,134 +273,386,206,135 +286,388,189,137 +297,388,178,137 +299,407,178,116 +278,420,174,128 +279,405,173,143 +274,404,179,143 +270,399,196,135 +272,399,213,116 +278,384,205,133 +281,379,205,135 +287,383,204,126 +287,383,216,114 +297,369,216,118 +304,368,214,114 +319,356,202,123 +315,356,201,128 +305,362,203,130 +302,352,214,132 +301,361,221,117 +315,364,205,116 +311,370,197,122 +301,392,186,121 +301,406,184,109 +289,403,181,127 +276,410,182,132 +270,403,193,134 +275,396,188,141 +270,403,193,134 +278,402,186,134 +289,396,185,130 +289,395,183,133 +288,394,180,138 +289,386,175,150 +266,412,181,141 +245,435,185,135 +238,419,197,146 +240,414,207,139 +249,410,199,142 +246,408,211,135 +249,409,214,128 +259,411,212,118 +262,409,203,126 +256,404,194,146 +264,406,192,138 +251,418,200,131 +259,414,200,127 +273,408,194,125 +288,403,185,124 +278,414,190,118 +276,406,187,131 +274,402,200,124 +278,404,202,116 +271,401,200,128 +273,405,193,129 +283,403,184,130 +285,400,180,135 +267,408,201,124 +280,397,207,116 +284,395,205,116 +291,385,189,135 +287,385,191,137 +274,400,197,129 +287,405,180,128 +282,413,185,120 +292,412,177,119 +272,419,173,136 +270,425,175,130 +264,423,193,120 +278,416,179,127 +280,414,180,126 +281,400,190,129 +278,400,196,126 +277,408,192,123 +281,402,195,122 +281,395,189,135 +264,403,197,136 +273,404,187,136 +276,412,186,126 +269,413,201,117 +261,402,207,130 +264,400,204,132 +282,389,189,140 +271,388,189,152 +270,391,218,121 +274,392,212,122 +265,398,223,114 +283,387,201,129 +279,387,207,127 +273,404,194,129 +258,396,209,137 +269,392,198,141 +269,398,192,141 +277,395,189,139 +264,400,198,138 +274,399,196,131 +277,397,188,138 +259,411,190,140 +262,406,191,141 +269,405,185,141 +273,405,197,125 +270,395,202,133 +264,405,208,123 +271,409,199,121 +276,401,193,130 +270,409,177,144 +262,429,179,130 +252,425,210,113 +261,417,205,117 +276,398,197,129 +281,390,197,132 +282,398,186,134 +283,395,191,131 +284,411,186,119 +275,405,194,126 +267,417,189,127 +259,421,197,123 +256,413,188,143 +255,408,198,139 +257,413,202,128 +261,408,207,124 +283,397,193,127 +273,402,191,134 +258,419,188,135 +255,421,195,129 +264,415,200,121 +276,414,194,116 +276,411,191,122 +281,416,176,127 +275,423,175,127 +263,419,178,140 +275,408,174,143 +267,424,178,131 +253,431,180,136 +255,418,191,136 +257,405,197,141 +264,415,184,137 +266,408,179,147 +262,415,190,133 +256,409,206,129 +259,413,190,138 +253,407,201,139 +254,405,193,148 +257,404,206,133 +267,391,195,147 +273,383,203,141 +276,395,197,132 +282,387,201,130 +279,396,203,122 +277,386,204,133 +275,377,213,135 +280,382,219,119 +286,385,208,121 +282,402,192,124 +281,402,193,124 +292,396,190,122 +282,398,186,134 +288,393,185,134 +284,389,200,127 +275,396,201,128 +278,390,200,132 +281,376,196,147 +270,391,204,135 +273,398,201,128 +273,408,198,121 +266,411,187,136 +275,405,173,147 +259,408,199,134 +263,394,202,141 +251,402,201,146 +261,393,198,148 +256,407,194,143 +249,406,209,136 +253,410,204,133 +259,401,198,142 +262,408,196,134 +271,396,192,141 +267,401,194,138 +274,399,204,123 +274,394,193,139 +270,398,208,124 +262,399,206,133 +275,383,209,133 +274,406,197,123 +260,411,202,127 +256,414,209,121 +265,397,207,131 +262,389,212,137 +264,395,218,123 +255,403,212,130 +268,401,196,135 +257,399,208,136 +246,406,210,138 +253,404,196,147 +249,397,197,157 +236,397,210,157 +236,392,225,147 +249,394,220,137 +264,392,215,129 +261,386,218,135 +268,386,213,133 +260,388,216,136 +275,396,201,128 +290,384,186,140 +296,397,192,115 +312,397,178,113 +310,404,171,115 +310,394,176,120 +303,387,183,127 +304,385,186,125 +295,404,184,117 +298,390,172,140 +304,381,176,139 +308,394,178,120 +306,393,172,129 +299,393,186,122 +295,397,178,130 +291,398,188,123 +294,397,189,120 +297,394,196,113 +286,392,199,123 +279,395,208,118 +284,381,206,129 +288,390,193,129 +287,390,206,117 +274,389,207,130 +266,398,209,127 +257,397,208,138 +253,397,219,131 +255,396,228,121 +280,397,213,110 +290,399,193,118 +282,411,193,114 +275,413,185,127 +286,405,175,134 +276,407,190,127 +277,405,205,113 +276,407,215,102 +284,403,202,111 +286,402,198,114 +289,401,193,117 +285,401,199,115 +281,393,202,124 +283,404,196,117 +287,409,194,110 +288,405,187,120 +291,393,188,128 +275,409,187,129 +266,409,185,140 +260,407,196,137 +252,405,202,141 +247,404,208,141 +250,414,200,136 +245,422,211,122 +251,416,218,115 +252,407,222,119 +260,421,219,100 +272,407,201,120 +277,404,195,124 +283,401,185,131 +293,394,184,129 +272,411,183,134 +271,406,189,134 +269,396,186,149 +263,404,193,140 +276,406,185,133 +272,409,179,140 +261,412,191,136 +275,403,172,150 +268,414,174,144 +255,417,181,147 +251,412,190,147 +252,413,194,141 +232,417,200,151 +239,398,217,146 +248,387,218,147 +256,373,215,156 +267,370,204,159 +260,390,212,138 +268,394,209,129 +284,379,210,127 +310,376,186,128 +305,387,188,120 +292,389,198,121 +287,410,187,116 +289,401,193,117 +299,396,182,123 +294,393,182,131 +297,400,186,117 +297,397,175,131 +286,390,190,134 +286,382,197,135 +283,391,203,123 +276,390,209,125 +274,385,206,135 +278,393,190,139 +273,388,191,148 +261,395,213,131 +280,384,204,132 +287,389,203,121 +287,384,197,132 +294,373,198,135 +289,378,189,144 +289,378,185,148 +270,387,202,141 +266,392,203,139 +265,402,214,119 +258,395,221,126 +259,388,218,135 +265,388,201,146 +263,388,211,138 +272,389,207,132 +270,403,209,118 +286,397,204,113 +288,384,210,118 +285,385,199,131 +276,394,200,130 +294,385,182,139 +283,395,182,140 +271,410,181,138 +254,411,205,130 +274,405,197,124 +268,402,211,119 +281,391,201,127 +277,392,200,131 +277,391,201,131 +280,383,209,128 +284,379,207,130 +297,373,196,134 +304,376,199,121 +298,384,199,119 +302,397,184,117 +310,387,188,115 +301,396,186,117 +296,391,177,136 +294,390,179,137 +286,394,181,139 +291,391,172,146 +286,405,173,136 +301,394,181,124 +296,394,169,141 +286,394,173,147 +287,386,177,150 +279,390,193,138 +275,391,195,139 +273,396,203,128 +271,394,213,122 +277,391,199,133 +272,392,210,126 +278,386,211,125 +285,389,191,135 +285,390,193,132 +289,390,200,121 +295,386,199,120 +310,383,187,120 +297,389,187,127 +292,395,189,124 +288,403,184,125 +294,398,181,127 +283,389,190,138 +288,394,187,131 +284,388,187,141 +283,383,200,134 +274,386,207,133 +276,387,203,134 +289,388,188,135 +288,394,192,126 +283,387,199,131 +283,385,206,126 +278,399,206,117 +275,402,191,132 +274,400,185,141 +271,397,194,138 +270,396,188,146 +272,396,187,145 +278,399,188,135 +260,399,208,133 +272,399,200,129 +268,406,199,127 +262,411,208,119 +280,406,199,115 +289,403,177,131 +283,408,170,139 +276,405,175,144 +280,411,166,143 +277,412,176,135 +280,409,174,137 +261,413,196,130 +265,401,206,128 +277,398,201,124 +283,396,189,132 +269,405,180,146 +265,405,184,146 +261,416,191,132 +259,413,194,134 +263,404,191,142 +265,404,192,139 +264,410,192,134 +258,416,198,128 +262,394,209,135 +257,398,219,126 +280,386,215,119 +275,393,200,132 +271,400,198,131 +256,402,215,127 +264,399,216,121 +266,398,214,122 +277,394,208,121 +283,389,202,126 +265,397,214,124 +277,385,204,134 +272,389,199,140 +275,388,191,146 +268,394,188,150 +268,397,202,133 +266,390,208,136 +265,379,209,147 +263,384,205,148 +247,387,221,145 +260,370,224,146 +258,379,218,145 +263,390,209,138 +259,399,209,133 +253,405,195,147 +259,407,194,140 +256,418,189,137 +261,420,189,130 +268,407,184,141 +263,410,196,131 +258,412,195,135 +259,405,201,135 +263,411,199,127 +265,407,201,127 +255,417,200,128 +256,421,207,116 +271,413,205,111 +269,411,201,119 +273,410,194,123 +272,416,187,125 +266,419,183,132 +272,413,195,120 +262,412,200,126 +248,405,211,136 +247,407,204,142 +251,399,214,136 +259,390,216,135 +235,408,220,137 +238,408,232,122 +257,391,223,129 +264,386,221,129 +273,385,214,128 +276,383,204,137 +264,375,203,158 +269,379,196,156 +273,385,204,138 +283,375,206,136 +278,379,199,144 +270,382,205,143 +273,377,211,139 +272,387,214,127 +268,381,204,147 +266,375,216,143 +269,374,213,144 +267,391,217,125 +281,381,213,125 +285,385,208,122 +292,394,198,116 +300,394,181,125 +287,405,183,125 +283,399,181,137 +280,398,190,132 +280,397,191,132 +282,399,192,127 +284,384,193,139 +262,403,189,146 +259,409,193,139 +252,405,193,150 +250,411,193,146 +260,394,197,149 +266,398,199,137 +266,398,203,133 +271,406,196,127 +264,417,202,117 +285,402,197,116 +280,405,189,126 +276,399,183,142 +271,389,192,148 +250,413,209,128 +259,400,207,134 +257,404,213,126 +266,393,203,138 +271,402,193,134 +257,402,211,130 +279,392,208,121 +293,385,191,131 +295,381,196,128 +294,396,192,118 +296,396,194,114 +309,386,178,127 +314,398,167,121 +299,406,171,124 +287,410,172,131 +287,401,170,142 +292,396,178,134 +303,381,185,131 +289,374,188,149 +278,386,193,143 +269,395,201,135 +268,391,216,125 diff --git a/target/classes/pythonOutput/output8.png b/target/classes/pythonOutput/output8.png new file mode 100644 index 0000000000000000000000000000000000000000..210fb8481c2065656f55b3cf9b3ee4eabee3edd3 Binary files /dev/null and b/target/classes/pythonOutput/output8.png differ diff --git a/target/classes/pythonOutput/output9.csv b/target/classes/pythonOutput/output9.csv new file mode 100644 index 0000000000000000000000000000000000000000..0405032460aceff222ea2057c3db1d80862939d3 --- /dev/null +++ b/target/classes/pythonOutput/output9.csv @@ -0,0 +1,1001 @@ +SUCEPTIBLE,EXPOSED,RECOVERED,INFECTED +998,1,1,0 +999,1,0,0 +999,1,0,0 +996,3,0,1 +995,4,0,1 +995,4,1,0 +995,3,1,1 +990,7,1,2 +986,9,2,3 +979,15,2,4 +976,17,3,4 +974,17,2,7 +966,24,5,5 +963,27,5,5 +966,26,4,4 +965,27,5,3 +965,24,5,6 +958,30,4,8 +955,31,5,9 +948,33,6,13 +944,34,8,14 +940,33,10,17 +934,37,14,15 +929,43,15,13 +926,41,14,19 +920,45,19,16 +915,47,19,19 +911,53,23,13 +910,51,22,17 +903,56,22,19 +901,58,23,18 +900,56,20,24 +899,56,23,22 +898,55,28,19 +896,58,27,19 +899,55,28,18 +896,55,27,22 +895,54,27,24 +890,57,25,28 +886,60,26,28 +885,59,34,22 +886,58,36,20 +886,62,37,15 +884,63,38,15 +884,69,34,13 +878,68,29,25 +871,72,28,29 +875,72,30,23 +877,68,30,25 +879,70,30,21 +877,73,29,21 +877,73,31,19 +870,83,28,19 +855,98,26,21 +845,104,29,22 +837,105,32,26 +828,110,40,22 +823,109,43,25 +810,119,43,28 +813,119,40,28 +808,118,41,33 +795,131,43,31 +797,127,44,32 +790,134,50,26 +788,130,49,33 +783,128,48,41 +786,133,52,29 +783,141,48,28 +783,140,45,32 +775,145,45,35 +766,146,46,42 +755,147,50,48 +745,159,50,46 +734,165,56,45 +729,157,63,51 +726,158,68,48 +721,158,71,50 +710,158,76,56 +706,162,74,58 +703,168,77,52 +706,162,75,57 +706,165,79,50 +697,172,77,54 +694,176,81,49 +696,171,79,54 +695,173,81,51 +700,173,82,45 +694,177,75,54 +695,171,84,50 +702,167,84,47 +684,181,85,50 +692,179,78,51 +684,177,77,62 +683,183,73,61 +663,191,78,68 +642,205,77,76 +636,219,82,63 +623,218,91,68 +628,219,89,64 +626,227,81,66 +625,220,91,64 +624,220,90,66 +615,229,88,68 +607,236,89,68 +598,224,95,83 +593,223,108,76 +582,235,113,70 +581,240,104,75 +581,240,101,78 +578,247,98,77 +568,249,102,81 +555,258,111,76 +536,263,115,86 +517,276,114,93 +508,286,114,92 +489,297,123,91 +498,284,123,95 +497,280,119,104 +480,288,119,113 +481,287,125,107 +466,297,131,106 +471,297,139,93 +465,298,144,93 +460,310,131,99 +451,306,129,114 +446,296,143,115 +445,298,142,115 +433,304,148,115 +417,319,156,108 +412,318,159,111 +414,307,175,104 +408,317,184,91 +426,313,168,93 +424,304,163,109 +420,309,164,107 +413,319,163,105 +411,328,168,93 +410,328,157,105 +401,337,154,108 +396,346,156,102 +378,347,159,116 +363,352,174,111 +346,381,172,101 +361,372,167,100 +372,365,154,109 +368,376,153,103 +368,373,162,97 +364,374,168,94 +376,354,164,106 +375,349,173,103 +372,357,162,109 +372,365,163,100 +377,358,159,106 +370,350,163,117 +361,357,177,105 +363,355,170,112 +360,351,190,99 +366,345,187,102 +394,335,176,95 +379,351,167,103 +372,360,158,110 +350,378,166,106 +343,381,167,109 +336,392,163,109 +330,385,157,128 +308,392,170,130 +306,379,179,136 +297,382,198,123 +287,397,203,113 +293,384,207,116 +307,374,200,119 +322,382,188,108 +332,386,176,106 +318,390,168,124 +309,387,179,125 +308,386,174,132 +312,386,167,135 +308,382,171,139 +304,389,180,127 +301,396,183,120 +289,396,192,123 +300,400,204,96 +319,381,187,113 +309,385,188,118 +314,394,184,108 +323,386,172,119 +314,393,169,124 +311,393,164,132 +289,400,177,134 +270,409,191,130 +283,389,197,131 +272,401,191,136 +277,401,194,128 +271,406,201,122 +276,399,209,116 +288,393,200,119 +304,376,188,132 +293,379,193,135 +289,400,193,118 +274,403,201,122 +270,400,201,129 +263,399,209,129 +252,411,213,124 +254,411,216,119 +259,414,211,116 +270,408,200,122 +289,396,194,121 +284,392,193,131 +277,395,187,141 +262,398,188,152 +249,404,213,134 +248,402,207,143 +243,403,222,132 +249,407,212,132 +256,399,207,138 +262,399,205,134 +275,379,208,138 +272,380,220,128 +274,387,221,118 +284,368,206,142 +282,372,212,134 +286,379,211,124 +291,368,199,142 +286,378,196,140 +280,375,202,143 +266,392,199,143 +277,385,202,136 +290,388,200,122 +297,395,185,123 +305,390,174,131 +298,397,177,128 +291,401,174,134 +284,397,176,143 +282,397,168,153 +267,396,172,165 +250,397,181,172 +245,406,186,163 +248,396,191,165 +239,394,209,158 +247,394,217,142 +250,398,214,138 +261,389,212,138 +265,391,217,127 +261,401,208,130 +275,402,205,118 +275,403,192,130 +260,414,202,124 +260,418,202,120 +255,413,199,133 +253,400,203,144 +253,394,210,143 +275,381,213,131 +276,390,196,138 +273,387,193,147 +265,383,199,153 +279,385,197,139 +280,380,215,125 +311,372,197,120 +303,375,203,119 +309,380,195,116 +318,385,186,111 +313,392,182,113 +299,381,185,135 +307,375,184,134 +290,387,186,137 +283,390,200,127 +268,405,212,115 +278,414,185,123 +276,420,187,117 +292,405,189,114 +290,410,182,118 +291,410,176,123 +275,415,172,138 +267,412,188,133 +275,401,179,145 +275,398,182,145 +263,409,199,129 +287,384,194,135 +285,390,195,130 +285,380,199,136 +284,388,195,133 +295,388,176,141 +267,410,179,144 +261,407,190,142 +269,399,180,152 +267,396,190,147 +263,405,196,136 +259,403,199,139 +239,409,208,144 +249,404,203,144 +254,398,207,141 +253,398,199,150 +259,392,198,151 +257,382,202,159 +252,393,201,154 +239,404,206,151 +240,403,220,137 +247,404,215,134 +244,400,203,153 +242,408,208,142 +257,396,193,154 +245,405,201,149 +245,408,204,143 +250,407,188,155 +248,410,199,143 +257,405,197,141 +266,401,180,153 +259,406,196,139 +261,387,205,147 +270,381,206,143 +274,387,192,147 +275,387,198,140 +286,383,191,140 +293,384,203,120 +277,396,203,124 +269,405,209,117 +287,397,192,124 +282,405,179,134 +272,416,182,130 +253,411,196,140 +250,414,202,134 +255,404,205,136 +262,392,218,128 +259,399,224,118 +276,395,209,120 +291,395,203,111 +293,388,200,119 +297,389,197,117 +288,388,191,133 +276,391,195,138 +270,398,201,131 +270,407,199,124 +271,411,198,120 +269,401,197,133 +273,395,204,128 +280,386,199,135 +270,400,209,121 +287,383,194,136 +274,393,209,124 +280,389,213,118 +277,390,207,126 +276,385,217,122 +287,375,207,131 +279,384,205,132 +286,379,203,132 +282,383,208,127 +279,393,205,123 +295,378,188,139 +292,382,202,124 +289,379,212,120 +291,380,217,112 +313,373,205,109 +302,384,199,115 +297,393,180,130 +280,400,192,128 +279,404,183,134 +275,407,189,129 +288,391,178,143 +287,391,180,142 +297,392,172,139 +282,397,184,137 +275,404,191,130 +277,402,185,136 +250,409,207,134 +255,410,205,130 +265,391,215,129 +275,385,212,128 +281,385,206,128 +288,393,201,118 +283,388,198,131 +291,380,192,137 +280,378,196,146 +262,397,202,139 +265,399,217,119 +273,398,206,123 +277,403,202,118 +281,405,200,114 +291,406,195,108 +311,411,175,103 +313,415,172,100 +300,411,170,119 +289,416,163,132 +298,395,169,138 +284,396,177,143 +290,404,176,130 +280,409,186,125 +292,410,176,122 +277,409,187,127 +267,407,188,138 +269,405,191,135 +271,405,186,138 +264,408,188,140 +240,408,209,143 +251,405,214,130 +252,393,217,138 +257,393,221,129 +264,385,216,135 +282,380,201,137 +290,375,199,136 +292,380,199,129 +286,388,196,130 +284,397,180,139 +283,414,176,127 +287,412,175,126 +298,392,176,134 +298,394,177,131 +297,386,190,127 +300,383,180,137 +297,376,195,132 +285,382,204,129 +279,407,187,127 +284,391,182,143 +276,393,202,129 +291,385,200,124 +284,383,211,122 +284,388,211,117 +308,376,196,120 +315,366,199,120 +305,372,193,130 +310,372,187,131 +302,386,184,128 +291,394,189,126 +300,376,193,131 +288,384,196,132 +294,386,189,131 +286,385,202,127 +283,397,196,124 +288,397,194,121 +277,399,207,117 +273,402,201,124 +267,391,214,128 +285,381,207,127 +279,393,195,133 +276,405,192,127 +271,390,199,140 +280,381,193,146 +292,379,183,146 +302,369,179,150 +288,370,188,154 +273,386,202,139 +284,382,195,139 +280,379,201,140 +275,376,208,141 +279,375,216,130 +283,374,222,121 +279,375,226,120 +289,383,207,121 +286,386,196,132 +268,393,206,133 +279,393,195,133 +280,389,200,131 +280,391,218,111 +256,392,226,126 +270,389,213,128 +272,390,218,120 +284,388,216,112 +293,394,196,117 +288,379,193,140 +273,385,205,137 +278,387,198,137 +287,384,180,149 +272,395,180,153 +278,386,195,141 +270,395,201,134 +268,395,197,140 +273,381,195,151 +268,383,204,145 +276,380,205,139 +287,377,194,142 +281,376,208,135 +298,385,199,118 +287,387,217,109 +287,393,209,111 +298,397,194,111 +292,400,188,120 +291,399,179,131 +279,407,194,120 +274,417,189,120 +277,416,186,121 +269,405,203,123 +277,396,197,130 +280,394,201,125 +272,406,198,124 +273,398,186,143 +258,401,203,138 +267,396,200,137 +270,402,211,117 +275,403,192,130 +269,412,197,122 +281,406,197,116 +280,412,200,108 +288,407,185,120 +282,413,188,117 +281,408,180,131 +264,415,188,133 +279,408,181,132 +266,420,191,123 +259,417,192,132 +249,423,191,137 +249,421,191,139 +230,434,200,136 +239,419,201,141 +251,407,207,135 +254,400,204,142 +254,400,202,144 +262,396,210,132 +263,392,221,124 +263,404,202,131 +274,412,178,136 +249,430,178,143 +269,404,182,145 +260,398,189,153 +252,414,191,143 +254,411,193,142 +258,417,188,137 +233,422,205,140 +230,423,222,125 +233,410,223,134 +250,397,204,149 +255,394,218,133 +256,398,224,122 +268,396,219,117 +276,392,204,128 +274,396,201,129 +265,406,202,127 +259,418,195,128 +275,415,182,128 +272,412,176,140 +271,410,186,133 +276,407,190,127 +290,404,186,120 +288,405,180,127 +281,403,193,123 +287,406,186,121 +282,395,198,125 +275,399,190,136 +267,416,199,118 +266,412,198,124 +274,400,199,127 +284,391,193,132 +268,403,199,130 +273,395,195,137 +266,399,195,140 +276,404,197,123 +282,408,191,119 +288,404,184,124 +294,397,193,116 +295,404,193,108 +286,400,198,116 +298,393,187,122 +308,384,182,126 +291,388,202,119 +288,390,209,113 +293,400,184,123 +292,400,176,132 +284,400,182,134 +271,416,179,134 +266,416,172,146 +268,413,171,148 +266,414,194,126 +289,406,170,135 +289,409,167,135 +286,397,169,148 +272,412,172,144 +269,408,177,146 +266,419,188,127 +259,416,180,145 +252,418,181,149 +247,432,177,144 +259,425,188,128 +257,425,187,131 +253,410,193,144 +243,405,217,135 +259,396,218,127 +261,385,216,138 +261,382,223,134 +257,392,217,134 +256,388,218,138 +264,391,219,126 +265,401,207,127 +269,391,207,133 +249,393,231,127 +254,390,225,131 +259,381,235,125 +271,370,236,123 +277,376,223,124 +287,384,211,118 +284,385,201,130 +286,386,191,137 +280,400,197,123 +279,399,191,131 +271,405,194,130 +279,395,194,132 +273,397,202,128 +265,403,209,123 +285,391,199,125 +292,382,209,117 +286,393,199,122 +290,397,195,118 +313,395,187,105 +321,381,184,114 +323,386,176,115 +302,397,182,119 +310,402,164,124 +277,421,172,130 +261,412,181,146 +257,412,198,133 +245,419,203,133 +257,410,188,145 +259,416,189,136 +263,406,189,142 +259,401,192,148 +266,397,188,149 +261,410,200,129 +258,402,198,142 +259,406,208,127 +266,396,207,131 +282,388,193,137 +278,389,190,143 +276,393,191,140 +273,400,207,120 +272,398,207,123 +275,392,214,119 +291,381,215,113 +304,376,202,118 +284,390,203,123 +289,399,206,106 +299,397,185,119 +298,400,176,126 +271,417,184,128 +261,405,188,146 +251,411,194,144 +235,428,195,142 +239,420,209,132 +233,424,219,124 +245,410,213,132 +256,404,214,126 +269,400,208,123 +271,406,207,116 +278,392,204,126 +283,390,203,124 +289,391,195,125 +295,394,184,127 +280,412,194,114 +278,399,196,127 +268,405,185,142 +262,414,197,127 +265,419,196,120 +261,423,199,117 +261,411,203,125 +273,410,190,127 +279,390,190,141 +273,406,192,129 +278,394,191,137 +283,377,206,134 +295,376,196,133 +287,390,189,134 +286,394,192,128 +291,403,177,129 +269,400,196,135 +274,393,204,129 +274,400,206,120 +285,386,206,123 +294,391,201,114 +294,406,183,117 +310,406,169,115 +305,391,172,132 +284,406,171,139 +281,399,178,142 +264,405,183,148 +253,412,209,126 +262,399,202,137 +262,400,206,132 +270,393,207,130 +277,383,201,139 +272,378,206,144 +292,387,199,122 +297,388,202,113 +301,391,192,116 +293,402,184,121 +296,399,176,129 +296,396,178,130 +290,395,178,137 +281,394,189,136 +278,396,189,137 +282,408,180,130 +279,404,191,126 +269,415,194,122 +277,412,193,118 +272,418,191,119 +266,400,191,143 +266,399,203,132 +270,396,201,133 +278,390,194,138 +271,401,205,123 +282,387,191,140 +271,391,198,140 +273,390,209,128 +273,396,211,120 +284,390,212,114 +289,395,209,107 +290,390,208,112 +306,385,201,108 +305,376,199,120 +318,384,184,114 +318,391,176,115 +303,387,186,124 +295,388,195,122 +297,389,205,109 +299,380,192,129 +286,387,205,122 +303,378,183,136 +296,386,173,145 +282,389,180,149 +265,399,183,153 +243,420,190,147 +252,408,191,149 +249,407,213,131 +262,400,213,125 +271,412,208,109 +288,400,192,120 +284,411,178,127 +283,407,176,134 +272,407,188,133 +274,412,189,125 +271,408,197,124 +276,412,188,124 +270,408,191,131 +269,400,189,142 +258,396,207,139 +256,391,205,148 +250,389,215,146 +251,394,223,132 +249,391,231,129 +268,395,211,126 +283,387,196,134 +275,386,204,135 +284,383,202,131 +278,379,207,136 +285,376,216,123 +288,380,215,117 +287,391,216,106 +292,388,196,124 +280,411,197,112 +278,389,209,124 +285,384,212,119 +280,394,198,128 +286,388,197,129 +284,392,194,130 +279,395,190,136 +277,409,190,124 +269,420,188,123 +269,423,181,127 +270,406,174,150 +272,402,176,150 +257,412,183,148 +263,395,184,158 +237,417,193,153 +231,413,208,148 +258,404,200,138 +270,397,192,141 +255,410,208,127 +269,398,186,147 +258,395,197,150 +246,417,201,136 +257,396,194,153 +262,393,205,140 +269,380,198,153 +269,387,197,147 +276,403,205,116 +288,401,198,113 +291,384,202,123 +288,396,200,116 +288,396,206,110 +292,389,203,116 +296,379,187,138 +295,381,184,140 +273,390,212,125 +293,385,191,131 +293,389,183,135 +284,398,193,125 +285,393,192,130 +277,409,186,128 +272,420,187,121 +275,412,197,116 +293,397,187,123 +289,396,185,130 +277,399,190,134 +266,403,209,122 +272,382,199,147 +265,389,207,139 +267,387,207,139 +271,395,196,138 +271,400,210,119 +275,404,203,118 +277,403,205,115 +276,411,179,134 +256,421,191,132 +254,426,186,134 +249,427,181,143 +250,423,189,138 +265,401,197,137 +268,397,205,130 +277,400,208,115 +282,387,204,127 +287,393,192,128 +284,399,188,129 +273,393,190,144 +276,379,197,148 +269,383,208,140 +280,384,198,138 +286,383,200,131 +300,374,190,136 +292,372,189,147 +290,379,187,144 +291,378,198,133 +267,390,210,133 +280,382,201,137 +276,376,213,135 +288,376,213,123 +292,376,207,125 +297,354,207,142 +292,355,217,136 +287,361,222,130 +291,356,218,135 +288,369,198,145 +291,378,193,138 +287,392,186,135 +288,397,184,131 +289,397,186,128 +287,393,185,135 +286,395,185,134 +299,393,172,136 +285,403,188,124 +294,391,183,132 +294,381,179,146 +275,390,190,145 +271,387,201,141 +289,385,194,132 +275,388,209,128 +280,378,199,143 +275,384,196,145 +289,370,196,145 +280,378,198,144 +304,361,193,142 +298,362,202,138 +284,375,217,124 +290,364,225,121 +303,360,215,122 +299,368,224,109 +304,378,205,113 +301,381,210,108 +295,384,210,111 +308,382,199,111 +320,381,183,116 +321,393,179,107 +329,391,176,104 +325,401,172,102 +334,395,160,111 +324,397,157,122 +314,397,158,131 +290,402,171,137 +282,415,175,128 +275,407,181,137 +265,406,183,146 +268,390,194,148 +263,399,218,120 +283,380,207,130 +280,391,198,131 +281,392,194,133 +274,387,200,139 +278,393,195,134 +275,391,178,156 +266,393,192,149 +263,385,207,145 +258,389,209,144 +257,394,210,139 +268,396,214,122 +273,372,224,131 +281,375,209,135 +288,377,216,119 +292,376,213,119 +310,366,188,136 +307,387,181,125 +305,386,191,118 +308,396,178,118 +301,393,195,111 +306,391,179,124 +297,393,181,129 +288,393,180,139 +293,398,180,129 +270,420,182,128 +264,425,190,121 +260,415,191,134 +254,404,202,140 +246,406,207,141 +254,398,208,140 +253,404,206,137 +257,404,197,142 +260,399,196,145 +268,391,191,150 +263,397,201,139 +249,413,214,124 +248,408,202,142 +247,408,212,133 +243,393,228,136 +256,390,230,124 +256,398,221,125 +263,396,208,133 +270,390,197,143 +259,401,212,128 +261,402,214,123 +253,396,225,126 +255,406,210,129 +239,408,222,131 +254,410,205,131 +249,413,205,133 +243,410,216,131 +260,395,211,134 +278,381,203,138 +286,372,201,141 +267,388,207,138 +275,382,215,128 +280,376,208,136 +279,376,214,131 +286,372,222,120 +299,374,218,109 +310,368,208,114 +312,364,207,117 +313,361,199,127 +315,370,198,117 +306,377,189,128 +307,377,175,141 +290,397,180,133 +281,400,186,133 +284,404,193,119 +283,406,200,111 +285,404,190,121 +275,413,206,106 +290,399,204,107 +288,384,215,113 +302,385,210,103 +299,384,203,114 +299,381,197,123 +293,387,181,139 +291,390,187,132 +285,394,192,129 +276,403,202,119 +275,412,192,121 +269,420,194,117 +277,420,185,118 +260,423,197,120 +270,406,199,125 +281,401,181,137 +273,406,188,133 +269,412,185,134 +266,403,183,148 +272,411,177,140 +262,410,186,142 +255,414,188,143 +255,413,184,148 +248,429,174,149 +236,420,179,165 +225,427,196,152 +233,425,200,142 +241,421,195,143 +237,418,200,145 +231,413,202,154 +228,401,227,144 +243,382,226,149 +256,382,224,138 +277,378,219,126 +287,386,208,119 +283,386,204,127 +286,394,199,121 +273,395,197,135 +286,395,187,132 +291,396,187,126 +291,389,190,130 +275,398,203,124 +293,397,182,128 +294,405,177,124 +294,401,174,131 +286,404,182,128 +276,402,188,134 +286,405,171,138 +282,412,184,122 +279,411,181,129 +268,404,196,132 +282,393,191,134 +281,388,197,134 +287,389,187,137 +277,396,196,131 +263,402,197,138 +285,392,191,132 +280,410,177,133 +280,403,171,146 +276,397,188,139 +260,406,207,127 +267,400,202,131 diff --git a/target/classes/pythonOutput/output9.png b/target/classes/pythonOutput/output9.png new file mode 100644 index 0000000000000000000000000000000000000000..ee1ac36774f284ed4e6a5df1957fd550f1a5c4f8 Binary files /dev/null and b/target/classes/pythonOutput/output9.png differ