From 62d1116a4dab4a872532a8b02a9c1cd64902faaf Mon Sep 17 00:00:00 2001
From: Robert Goldmann <deadlocker@gmx.de>
Date: Sun, 23 May 2021 15:30:19 +0200
Subject: [PATCH] #598 - added database version 6 to database parser

---
 .../budgetmaster/database/DatabaseParser.java |    8 +
 .../database/DatabaseParser_v6.java           |   39 +
 .../unit/database/DatabaseParserTest.java     |   10 +
 src/test/resources/DatabaseParser_v6Test.json | 3363 +++++++++++++++++
 4 files changed, 3420 insertions(+)
 create mode 100644 src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v6.java
 create mode 100644 src/test/resources/DatabaseParser_v6Test.json

diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
index d47a4260b..d149ed3a3 100644
--- a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser.java
@@ -5,6 +5,7 @@ import com.google.gson.JsonParser;
 import de.deadlocker8.budgetmaster.database.model.BackupDatabase;
 import de.deadlocker8.budgetmaster.database.model.v4.BackupDatabase_v4;
 import de.deadlocker8.budgetmaster.database.model.v5.BackupDatabase_v5;
+import de.deadlocker8.budgetmaster.database.model.v6.BackupDatabase_v6;
 import de.thecodelabs.utils.util.Localization;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -50,6 +51,13 @@ public class DatabaseParser
 			importedDatabase = parsedDatabase;
 		}
 
+		if(version == 6)
+		{
+			BackupDatabase_v6 parsedDatabase = new DatabaseParser_v6(jsonString).parseDatabaseFromJSON();
+			LOGGER.debug(MessageFormat.format("Parsed database with {0} transactions, {1} categories, {2} accounts, {3} templates {4} charts and {5} images", parsedDatabase.getTransactions().size(), parsedDatabase.getCategories().size(), parsedDatabase.getAccounts().size(), parsedDatabase.getTemplates().size(), parsedDatabase.getCharts().size(), parsedDatabase.getImages().size()));
+			importedDatabase = parsedDatabase;
+		}
+
 		if(importedDatabase == null)
 		{
 			throw new IllegalArgumentException(Localization.getString("error.database.import.unknown.version"));
diff --git a/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v6.java b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v6.java
new file mode 100644
index 000000000..1ed808a67
--- /dev/null
+++ b/src/main/java/de/deadlocker8/budgetmaster/database/DatabaseParser_v6.java
@@ -0,0 +1,39 @@
+package de.deadlocker8.budgetmaster.database;
+
+import com.google.gson.JsonObject;
+import com.google.gson.JsonParser;
+import de.deadlocker8.budgetmaster.database.model.v5.BackupCategory_v5;
+import de.deadlocker8.budgetmaster.database.model.v5.BackupChart_v5;
+import de.deadlocker8.budgetmaster.database.model.v5.BackupImage_v5;
+import de.deadlocker8.budgetmaster.database.model.v6.BackupAccount_v6;
+import de.deadlocker8.budgetmaster.database.model.v6.BackupDatabase_v6;
+import de.deadlocker8.budgetmaster.database.model.v6.BackupTemplate_v6;
+import de.deadlocker8.budgetmaster.database.model.v6.BackupTransaction_v6;
+
+public class DatabaseParser_v6
+{
+	private final String jsonString;
+
+	private BackupDatabase_v6 database;
+
+	public DatabaseParser_v6(String json)
+	{
+		this.jsonString = json;
+		this.database = new BackupDatabase_v6();
+	}
+
+	public BackupDatabase_v6 parseDatabaseFromJSON() throws IllegalArgumentException
+	{
+		database = new BackupDatabase_v6();
+
+		final JsonObject root = JsonParser.parseString(jsonString).getAsJsonObject();
+		database.setImages(BackupItemParser.parseItems(root.get("images").getAsJsonArray(), BackupImage_v5.class));
+		database.setAccounts(BackupItemParser.parseItems(root.get("accounts").getAsJsonArray(), BackupAccount_v6.class));
+		database.setCategories(BackupItemParser.parseItems(root.get("categories").getAsJsonArray(), BackupCategory_v5.class));
+		database.setTransactions(BackupItemParser.parseItems(root.get("transactions").getAsJsonArray(), BackupTransaction_v6.class));
+		database.setTemplates(BackupItemParser.parseItems(root.get("templates").getAsJsonArray(), BackupTemplate_v6.class));
+		database.setCharts(BackupItemParser.parseItems(root.get("charts").getAsJsonArray(), BackupChart_v5.class));
+
+		return database;
+	}
+}
\ No newline at end of file
diff --git a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParserTest.java b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParserTest.java
index ffcdd5935..d514bd46e 100644
--- a/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParserTest.java
+++ b/src/test/java/de/deadlocker8/budgetmaster/unit/database/DatabaseParserTest.java
@@ -47,6 +47,16 @@ public class DatabaseParserTest
 		Localization.load();
 	}
 
+	@Test
+	public void test_v6() throws URISyntaxException, IOException
+	{
+		String json = new String(Files.readAllBytes(Paths.get(getClass().getClassLoader().getResource("DatabaseParser_v6Test.json").toURI())));
+		DatabaseParser importer = new DatabaseParser(json);
+		final InternalDatabase database = importer.parseDatabaseFromJSON();
+		assertThat(database.getTransactions())
+				.hasSize(4);
+	}
+
 	@Test
 	public void test_v5() throws URISyntaxException, IOException
 	{
diff --git a/src/test/resources/DatabaseParser_v6Test.json b/src/test/resources/DatabaseParser_v6Test.json
new file mode 100644
index 000000000..50a9061bb
--- /dev/null
+++ b/src/test/resources/DatabaseParser_v6Test.json
@@ -0,0 +1,3363 @@
+{
+    "TYPE": "BUDGETMASTER_DATABASE",
+    "VERSION": 6,
+    "categories": [
+        {
+            "ID": 1,
+            "name": "Keine Kategorie",
+            "color": "#FFFFFF",
+            "type": "NONE"
+        },
+        {
+            "ID": 2,
+            "name": "Übertrag",
+            "color": "#FFFF00",
+            "type": "REST"
+        },
+        {
+            "ID": 3,
+            "name": "0815",
+            "color": "#ffcc00",
+            "type": "CUSTOM",
+            "icon": "fas fa-icons"
+        }
+    ],
+    "accounts": [
+        {
+            "ID": 1,
+            "name": "Placeholder",
+            "accountState": "FULL_ACCESS",
+            "type": "ALL"
+        },
+        {
+            "ID": 2,
+            "name": "Default",
+            "accountState": "FULL_ACCESS",
+            "type": "CUSTOM"
+        },
+        {
+            "ID": 3,
+            "name": "Second Account",
+            "accountState": "FULL_ACCESS",
+            "type": "CUSTOM",
+            "iconID": 1
+        }
+    ],
+    "transactions": [
+        {
+            "ID": 5,
+            "amount": 35000,
+            "isExpenditure": false,
+            "date": "2018-03-13",
+            "account": {
+                "ID": 2,
+                "name": "Default",
+                "accountState": "FULL_ACCESS",
+                "type": "CUSTOM"
+            },
+            "category": {
+                "ID": 1,
+                "name": "Keine Kategorie",
+                "color": "#FFFFFF",
+                "type": "NONE"
+            },
+            "name": "Income",
+            "description": "Lorem Ipsum",
+            "tags": []
+        },
+        {
+            "ID": 12,
+            "amount": -2000,
+            "isExpenditure": true,
+            "date": "2018-06-15",
+            "account": {
+                "ID": 3,
+                "name": "Second Account",
+                "accountState": "FULL_ACCESS",
+                "type": "CUSTOM",
+                "iconID": 1
+            },
+            "category": {
+                "ID": 3,
+                "name": "0815",
+                "color": "#ffcc00",
+                "type": "CUSTOM",
+                "icon": "fas fa-icons"
+            },
+            "name": "Simple",
+            "description": "",
+            "tags": [
+                {
+                    "ID": 1,
+                    "name": "0815"
+                }
+            ]
+        },
+        {
+            "ID": 13,
+            "amount": -12300,
+            "isExpenditure": true,
+            "date": "2018-03-13",
+            "account": {
+                "ID": 2,
+                "name": "Default",
+                "accountState": "FULL_ACCESS",
+                "type": "CUSTOM"
+            },
+            "category": {
+                "ID": 1,
+                "name": "Keine Kategorie",
+                "color": "#FFFFFF",
+                "type": "NONE"
+            },
+            "name": "Test",
+            "description": "",
+            "tags": [],
+            "repeatingOption": {
+                "ID": 2,
+                "startDate": "2018-03-13",
+                "modifier": {
+                    "ID": 3,
+                    "quantity": 10,
+                    "localizationKey": "repeating.modifier.days"
+                },
+                "endOption": {
+                    "times": 2,
+                    "ID": 3,
+                    "localizationKey": "repeating.end.key.afterXTimes"
+                }
+            }
+        },
+        {
+            "ID": 16,
+            "amount": -250,
+            "isExpenditure": true,
+            "date": "2018-06-15",
+            "account": {
+                "ID": 3,
+                "name": "Second Account",
+                "accountState": "FULL_ACCESS",
+                "type": "CUSTOM",
+                "iconID": 1
+            },
+            "category": {
+                "ID": 3,
+                "name": "0815",
+                "color": "#ffcc00",
+                "type": "CUSTOM",
+                "icon": "fas fa-icons"
+            },
+            "name": "Transfer",
+            "description": "",
+            "tags": [],
+            "transferAccount": {
+                "ID": 2,
+                "name": "Default",
+                "accountState": "FULL_ACCESS",
+                "type": "CUSTOM"
+            }
+        }
+    ],
+    "templates": [
+        {
+            "ID": 5,
+            "amount": 1500,
+            "account": {
+                "ID": 2,
+                "name": "Default",
+                "accountState": "FULL_ACCESS",
+                "type": "CUSTOM"
+            },
+            "category": {
+                "ID": 1,
+                "name": "Keine Kategorie",
+                "color": "#FFFFFF",
+                "type": "NONE"
+            },
+            "name": "Income",
+            "templateName": "My Simple Template",
+            "description": "Lorem Ipsum",
+            "tags": [
+                {
+                    "name": "0815"
+                }
+            ]
+        },
+        {
+            "ID": 6,
+            "templateName": "My Minimal Template",
+            "tags": []
+        },
+        {
+            "ID": 7,
+            "amount": -35000,
+            "account": {
+                "ID": 3,
+                "name": "Second Account",
+                "accountState": "FULL_ACCESS",
+                "type": "CUSTOM",
+                "iconID": 1
+            },
+            "category": {
+                "ID": 3,
+                "name": "0815",
+                "color": "#ffcc00",
+                "type": "CUSTOM",
+                "icon": "fas fa-icons"
+            },
+            "name": "Income",
+            "templateName": "My Transfer Template",
+            "description": "Lorem Ipsum",
+            "tags": [
+                {
+                    "name": "0815"
+                }
+            ],
+            "transferAccount": {
+                "ID": 2,
+                "name": "Default",
+                "accountState": "FULL_ACCESS",
+                "type": "CUSTOM"
+            }
+        },
+        {
+            "ID": 8,
+            "templateName": "Template with icon",
+            "tags": [],
+            "iconID": 1
+        }
+    ],
+    "charts": [
+        {
+            "ID": 9,
+            "name": "The best chart",
+            "script": "/* This list will be dynamically filled with all the transactions between\r\n* the start and and date you select on the \"Show Chart\" page\r\n* and filtered according to your specified filter.\r\n* An example entry for this list and tutorial about how to create custom charts ca be found in the BudgetMaster wiki:\r\n* https://github.com/deadlocker8/BudgetMaster/wiki/How-to-create-custom-charts\r\n*/\r\nvar transactionData \u003d [];\r\n\r\n// Prepare your chart settings here (mandatory)\r\nvar plotlyData \u003d [{\r\n    x: [],\r\n    y: [],\r\n    type: \u0027bar\u0027\r\n}];\r\n\r\n// Add your Plotly layout settings here (optional)\r\nvar plotlyLayout \u003d {};\r\n\r\n// Add your Plotly configuration settings here (optional)\r\nvar plotlyConfig \u003d {\r\n    showSendToCloud: false,\r\n    displaylogo: false,\r\n    showLink: false,\r\n    responsive: true\r\n};\r\n\r\n// Don\u0027t touch this line\r\nPlotly.newPlot(\"containerID\", plotlyData, plotlyLayout, plotlyConfig);\r\n",
+            "type": "CUSTOM",
+            "version": 7
+        }
+    ],
+    "images": [
+        {
+            "ID": 1,
+            "image": [
+                -119,
+                80,
+                78,
+                71,
+                13,
+                10,
+                26,
+                10,
+                0,
+                0,
+                0,
+                13,
+                73,
+                72,
+                68,
+                82,
+                0,
+                0,
+                0,
+                -76,
+                0,
+                0,
+                0,
+                -76,
+                8,
+                6,
+                0,
+                0,
+                0,
+                61,
+                -51,
+                6,
+                50,
+                0,
+                0,
+                11,
+                -14,
+                73,
+                68,
+                65,
+                84,
+                120,
+                -100,
+                -19,
+                -35,
+                79,
+                108,
+                84,
+                -41,
+                21,
+                -57,
+                113,
+                -85,
+                21,
+                -91,
+                73,
+                85,
+                117,
+                31,
+                -87,
+                93,
+                84,
+                -35,
+                53,
+                -72,
+                106,
+                -73,
+                93,
+                -92,
+                -35,
+                -107,
+                101,
+                -108,
+                -126,
+                -64,
+                6,
+                20,
+                112,
+                -30,
+                -40,
+                -109,
+                -72,
+                -31,
+                -97,
+                -120,
+                -99,
+                -80,
+                -120,
+                42,
+                85,
+                -79,
+                -33,
+                -104,
+                58,
+                -111,
+                72,
+                -112,
+                -6,
+                7,
+                37,
+                -87,
+                -102,
+                98,
+                4,
+                111,
+                -58,
+                99,
+                -20,
+                98,
+                76,
+                -109,
+                66,
+                -101,
+                82,
+                -64,
+                48,
+                80,
+                100,
+                91,
+                14,
+                -123,
+                96,
+                -89,
+                82,
+                9,
+                18,
+                -119,
+                106,
+                53,
+                -76,
+                -58,
+                -40,
+                -89,
+                -117,
+                -26,
+                -103,
+                97,
+                124,
+                103,
+                124,
+                -17,
+                123,
+                -9,
+                -34,
+                115,
+                -17,
+                123,
+                -65,
+                -81,
+                116,
+                -106,
+                -58,
+                -29,
+                59,
+                31,
+                14,
+                -113,
+                -7,
+                -25,
+                -122,
+                6,
+                -124,
+                16,
+                -110,
+                41,
+                -105,
+                -53,
+                125,
+                -46,
+                -34,
+                -34,
+                78,
+                -43,
+                -61,
+                125,
+                -69,
+                16,
+                82,
+                -86,
+                -75,
+                -75,
+                117,
+                -107,
+                8,
+                50,
+                96,
+                35,
+                -17,
+                -54,
+                -27,
+                114,
+                45,
+                50,
+                -104,
+                -127,
+                26,
+                121,
+                -111,
+                10,
+                102,
+                -96,
+                70,
+                78,
+                23,
+                7,
+                51,
+                64,
+                35,
+                103,
+                -117,
+                11,
+                26,
+                -88,
+                -111,
+                -109,
+                1,
+                52,
+                -14,
+                62,
+                -39,
+                71,
+                52,
+                100,
+                38,
+                -105,
+                -53,
+                -123,
+                -36,
+                63,
+                15,
+                -54,
+                88,
+                -71,
+                92,
+                -18,
+                51,
+                93,
+                -128,
+                -79,
+                -71,
+                17,
+                75,
+                -19,
+                -19,
+                -19,
+                115,
+                54,
+                17,
+                3,
+                55,
+                -46,
+                -34,
+                -38,
+                -75,
+                107,
+                87,
+                115,
+                3,
+                6,
+                110,
+                79,
+                107,
+                -20,
+                26,
+                33,
+                87,
+                -26,
+                -47,
+                -82,
+                17,
+                118,
+                -84,
+                -14,
+                -45,
+                -58,
+                126,
+                94,
+                -107,
+                -13,
+                -19,
+                -82,
+                19,
+                -33,
+                -25,
+                -74,
+                -60,
+                30,
+                -9,
+                -99,
+                -32,
+                26,
+                -28,
+                -25,
+                95,
+                120,
+                -122,
+                94,
+                -23,
+                111,
+                -10,
+                26,
+                54,
+                -73,
+                41,
+                -74,
+                -72,
+                15,
+                62,
+                26,
+                110,
+                -60,
+                -47,
+                -28,
+                11,
+                77,
+                75,
+                19,
+                -25,
+                -21,
+                -71,
+                -49,
+                -79,
+                98,
+                -58,
+                -72,
+                109,
+                89,
+                -49,
+                -127,
+                67,
+                119,
+                6,
+                -13,
+                75,
+                -81,
+                109,
+                125,
+                0,
+                115,
+                18,
+                -44,
+                79,
+                -25,
+                -74,
+                -77,
+                -97,
+                105,
+                99,
+                87,
+                6,
+                -73,
+                52,
+                -9,
+                -127,
+                127,
+                -73,
+                115,
+                -104,
+                29,
+                114,
+                -11,
+                86,
+                -82,
+                -98,
+                -82,
+                -34,
+                109,
+                -79,
+                -1,
+                92,
+                -18,
+                -13,
+                109,
+                124,
+                -15,
+                -60,
+                21,
+                110,
+                99,
+                86,
+                -29,
+                60,
+                -20,
+                31,
+                -19,
+                -6,
+                53,
+                59,
+                -28,
+                -18,
+                -61,
+                -51,
+                117,
+                49,
+                39,
+                -39,
+                -46,
+                -82,
+                -96,
+                -26,
+                54,
+                102,
+                -83,
+                -58,
+                -50,
+                -29,
+                -9,
+                56,
+                15,
+                -102,
+                27,
+                -77,
+                12,
+                -28,
+                52,
+                -96,
+                -26,
+                118,
+                102,
+                -83,
+                -84,
+                98,
+                14,
+                20,
+                33,
+                71,
+                -45,
+                -79,
+                -93,
+                -51,
+                75,
+                -44,
+                -36,
+                -50,
+                -84,
+                -107,
+                69,
+                -52,
+                113,
+                32,
+                -21,
+                -38,
+                -46,
+                45,
+                -49,
+                -18,
+                1,
+                104,
+                -109,
+                -15,
+                96,
+                78,
+                -74,
+                -27,
+                -72,
+                32,
+                -5,
+                124,
+                -23,
+                -63,
+                -19,
+                -52,
+                90,
+                -103,
+                -40,
+                -50,
+                109,
+                122,
+                49,
+                -25,
+                11,
+                77,
+                -44,
+                -42,
+                -106,
+                -28,
+                54,
+                -27,
+                0,
+                -38,
+                84,
+                -74,
+                15,
+                -74,
+                -83,
+                61,
+                -25,
+                -19,
+                86,
+                -10,
+                121,
+                75,
+                115,
+                59,
+                -77,
+                86,
+                90,
+                -73,
+                115,
+                -101,
+                -127,
+                -83,
+                -84,
+                19,
+                -11,
+                51,
+                -19,
+                29,
+                0,
+                109,
+                34,
+                -107,
+                67,
+                -47,
+                -111,
+                -17,
+                91,
+                121,
+                25,
+                -24,
+                4,
+                -105,
+                30,
+                73,
+                3,
+                104,
+                65,
+                54,
+                65,
+                47,
+                44,
+                44,
+                -104,
+                -59,
+                -100,
+                -77,
+                -117,
+                57,
+                -23,
+                -106,
+                6,
+                104,
+                3,
+                -39,
+                4,
+                -35,
+                -46,
+                -46,
+                -30,
+                -51,
+                86,
+                -18,
+                27,
+                -38,
+                68,
+                65,
+                -72,
+                -47,
+                40,
+                106,
+                -128,
+                54,
+                -112,
+                77,
+                -48,
+                38,
+                32,
+                -17,
+                -2,
+                -23,
+                83,
+                -38,
+                49,
+                15,
+                -50,
+                -20,
+                94,
+                26,
+                -128,
+                -10,
+                44,
+                -37,
+                -41,
+                -48,
+                58,
+                -45,
+                13,
+                -7,
+                -32,
+                -103,
+                -42,
+                7,
+                48,
+                -85,
+                -94,
+                -74,
+                29,
+                64,
+                11,
+                -14,
+                17,
+                -12,
+                -47,
+                63,
+                -65,
+                106,
+                116,
+                43,
+                87,
+                -113,
+                -20,
+                -45,
+                -28,
+                61,
+                -31,
+                122,
+                -85,
+                -25,
+                0,
+                -48,
+                -126,
+                124,
+                3,
+                -83,
+                27,
+                -14,
+                -47,
+                -85,
+                -37,
+                -21,
+                98,
+                118,
+                121,
+                75,
+                3,
+                -76,
+                32,
+                95,
+                64,
+                -9,
+                -124,
+                -21,
+                -83,
+                110,
+                101,
+                31,
+                80,
+                3,
+                -76,
+                32,
+                31,
+                64,
+                -21,
+                -122,
+                92,
+                -102,
+                -34,
+                -91,
+                -116,
+                89,
+                5,
+                116,
+                80,
+                -40,
+                104,
+                -27,
+                92,
+                0,
+                90,
+                -112,
+                -53,
+                -96,
+                -69,
+                29,
+                -40,
+                -54,
+                46,
+                111,
+                105,
+                -128,
+                22,
+                -28,
+                42,
+                104,
+                -41,
+                32,
+                -69,
+                -120,
+                26,
+                -96,
+                5,
+                -71,
+                6,
+                90,
+                -27,
+                -55,
+                12,
+                14,
+                -52,
+                42,
+                -96,
+                -5,
+                79,
+                -25,
+                -115,
+                -98,
+                21,
+                64,
+                11,
+                114,
+                9,
+                -76,
+                -21,
+                -112,
+                93,
+                -37,
+                -46,
+                0,
+                45,
+                -56,
+                5,
+                -48,
+                -70,
+                33,
+                7,
+                -122,
+                49,
+                15,
+                -50,
+                -20,
+                -90,
+                -30,
+                -11,
+                -99,
+                -20,
+                -88,
+                1,
+                90,
+                16,
+                55,
+                104,
+                -97,
+                -74,
+                114,
+                -36,
+                45,
+                61,
+                -3,
+                -15,
+                -108,
+                -111,
+                -77,
+                3,
+                104,
+                65,
+                92,
+                -96,
+                117,
+                67,
+                -18,
+                45,
+                53,
+                91,
+                -59,
+                -20,
+                -62,
+                -91,
+                7,
+                64,
+                11,
+                -78,
+                13,
+                122,
+                -18,
+                -18,
+                127,
+                -68,
+                -34,
+                -54,
+                -43,
+                -13,
+                -42,
+                -7,
+                54,
+                54,
+                -44,
+                0,
+                45,
+                -56,
+                38,
+                104,
+                -35,
+                -112,
+                -33,
+                -8,
+                -61,
+                86,
+                86,
+                -52,
+                -86,
+                91,
+                -6,
+                -18,
+                -4,
+                -100,
+                6,
+                -58,
+                -9,
+                3,
+                104,
+                65,
+                54,
+                64,
+                -113,
+                125,
+                48,
+                -102,
+                -86,
+                -83,
+                -20,
+                -54,
+                -91,
+                7,
+                64,
+                11,
+                50,
+                13,
+                90,
+                55,
+                -28,
+                119,
+                -2,
+                -10,
+                28,
+                59,
+                94,
+                -47,
+                -12,
+                13,
+                109,
+                -74,
+                -114,
+                26,
+                -96,
+                5,
+                -103,
+                4,
+                -99,
+                -10,
+                -83,
+                -52,
+                -67,
+                -91,
+                1,
+                90,
+                -112,
+                15,
+                -96,
+                -117,
+                31,
+                -18,
+                100,
+                -57,
+                -22,
+                34,
+                106,
+                -128,
+                22,
+                -28,
+                -6,
+                37,
+                7,
+                55,
+                80,
+                -43,
+                -23,
+                81,
+                120,
+                -22,
+                30,
+                -96,
+                13,
+                100,
+                26,
+                -12,
+                127,
+                99,
+                62,
+                76,
+                87,
+                -102,
+                -26,
+                -57,
+                -23,
+                -6,
+                -106,
+                6,
+                104,
+                65,
+                -90,
+                65,
+                19,
+                -87,
+                111,
+                105,
+                110,
+                -112,
+                -66,
+                -96,
+                6,
+                104,
+                65,
+                54,
+                64,
+                -85,
+                -96,
+                -26,
+                -122,
+                -88,
+                107,
+                100,
+                95,
+                53,
+                24,
+                -124,
+                27,
+                0,
+                90,
+                103,
+                -74,
+                64,
+                79,
+                -50,
+                -116,
+                101,
+                14,
+                -75,
+                -23,
+                45,
+                13,
+                -48,
+                -126,
+                108,
+                -127,
+                38,
+                -110,
+                -33,
+                -46,
+                -59,
+                -21,
+                -2,
+                60,
+                -86,
+                -63,
+                -119,
+                26,
+                -96,
+                5,
+                -39,
+                4,
+                -83,
+                -126,
+                -102,
+                27,
+                -94,
+                -82,
+                9,
+                66,
+                -71,
+                -97,
+                -73,
+                59,
+                -4,
+                49,
+                64,
+                -21,
+                -56,
+                54,
+                -24,
+                -73,
+                -33,
+                125,
+                57,
+                115,
+                -88,
+                77,
+                109,
+                105,
+                -128,
+                22,
+                100,
+                27,
+                52,
+                81,
+                -10,
+                -74,
+                -76,
+                41,
+                -44,
+                0,
+                45,
+                -120,
+                3,
+                116,
+                22,
+                81,
+                -53,
+                -2,
+                -68,
+                7,
+                -122,
+                119,
+                0,
+                116,
+                -110,
+                -72,
+                64,
+                -65,
+                114,
+                -28,
+                113,
+                -96,
+                -82,
+                -102,
+                114,
+                -71,
+                76,
+                -27,
+                114,
+                -103,
+                46,
+                94,
+                -68,
+                8,
+                -48,
+                113,
+                -29,
+                2,
+                77,
+                -108,
+                -67,
+                45,
+                61,
+                56,
+                45,
+                70,
+                -3,
+                -50,
+                -24,
+                -66,
+                37,
+                -52,
+                -47,
+                0,
+                116,
+                -52,
+                56,
+                65,
+                103,
+                17,
+                117,
+                -83,
+                -83,
+                44,
+                26,
+                -128,
+                -114,
+                17,
+                55,
+                104,
+                -39,
+                -49,
+                -84,
+                11,
+                -62,
+                -115,
+                -20,
+                24,
+                117,
+                -94,
+                62,
+                125,
+                -10,
+                100,
+                93,
+                -52,
+                50,
+                -105,
+                30,
+                0,
+                45,
+                -120,
+                27,
+                52,
+                81,
+                -10,
+                -74,
+                -12,
+                74,
+                -112,
+                101,
+                -73,
+                52,
+                64,
+                11,
+                114,
+                1,
+                -76,
+                -53,
+                -88,
+                117,
+                126,
+                127,
+                21,
+                -56,
+                50,
+                -88,
+                1,
+                90,
+                -112,
+                43,
+                -96,
+                -125,
+                -126,
+                -20,
+                -117,
+                121,
+                -52,
+                95,
+                122,
+                28,
+                120,
+                111,
+                -101,
+                -10,
+                -65,
+                92,
+                113,
+                49,
+                -105,
+                -53,
+                101,
+                -102,
+                -100,
+                -100,
+                4,
+                104,
+                -39,
+                92,
+                1,
+                77,
+                -28,
+                -58,
+                -106,
+                -34,
+                63,
+                -6,
+                -92,
+                -12,
+                -19,
+                -112,
+                -71,
+                61,
+                73,
+                32,
+                -81,
+                -76,
+                -91,
+                1,
+                90,
+                -112,
+                75,
+                -96,
+                93,
+                64,
+                -83,
+                -118,
+                -71,
+                -10,
+                109,
+                -38,
+                -91,
+                13,
+                115,
+                45,
+                -44,
+                0,
+                45,
+                -56,
+                87,
+                -48,
+                -7,
+                34,
+                -33,
+                -89,
+                -118,
+                -42,
+                -101,
+                35,
+                83,
+                -37,
+                -75,
+                67,
+                -114,
+                -26,
+                -42,
+                -83,
+                91,
+                0,
+                -67,
+                82,
+                -82,
+                -127,
+                86,
+                65,
+                -19,
+                26,
+                -24,
+                32,
+                -36,
+                96,
+                12,
+                -77,
+                104,
+                75,
+                3,
+                -76,
+                32,
+                23,
+                65,
+                115,
+                -96,
+                78,
+                -118,
+                -39,
+                52,
+                100,
+                17,
+                106,
+                -128,
+                22,
+                -28,
+                59,
+                -24,
+                -41,
+                53,
+                125,
+                28,
+                88,
+                92,
+                -56,
+                61,
+                -31,
+                122,
+                -85,
+                -104,
+                -53,
+                -27,
+                50,
+                -51,
+                -49,
+                -49,
+                3,
+                116,
+                -83,
+                92,
+                5,
+                -83,
+                -126,
+                -102,
+                11,
+                -76,
+                109,
+                -56,
+                -43,
+                91,
+                26,
+                -96,
+                5,
+                -71,
+                12,
+                122,
+                -10,
+                -50,
+                -89,
+                -42,
+                80,
+                -85,
+                64,
+                126,
+                125,
+                -16,
+                39,
+                -84,
+                -104,
+                -93,
+                1,
+                104,
+                65,
+                46,
+                -125,
+                38,
+                -110,
+                -33,
+                -46,
+                -3,
+                -29,
+                29,
+                86,
+                64,
+                115,
+                35,
+                -82,
+                -100,
+                111,
+                -18,
+                57,
+                14,
+                -48,
+                -43,
+                -71,
+                14,
+                90,
+                5,
+                -75,
+                73,
+                -48,
+                -91,
+                83,
+                111,
+                -79,
+                3,
+                78,
+                -78,
+                -91,
+                -71,
+                -99,
+                89,
+                -53,
+                7,
+                -48,
+                -89,
+                -82,
+                28,
+                49,
+                -114,
+                -38,
+                -105,
+                -83,
+                28,
+                23,
+                53,
+                -73,
+                51,
+                107,
+                -7,
+                0,
+                -102,
+                72,
+                126,
+                75,
+                -105,
+                110,
+                -24,
+                -5,
+                45,
+                -79,
+                127,
+                29,
+                123,
+                -97,
+                29,
+                -85,
+                -52,
+                -84,
+                1,
+                -24,
+                -5,
+                -7,
+                2,
+                90,
+                5,
+                -75,
+                14,
+                -48,
+                -36,
+                72,
+                117,
+                111,
+                105,
+                110,
+                103,
+                -42,
+                -14,
+                9,
+                -12,
+                -2,
+                33,
+                -7,
+                -33,
+                103,
+                18,
+                23,
+                -12,
+                -91,
+                -14,
+                37,
+                118,
+                -100,
+                38,
+                80,
+                115,
+                59,
+                -77,
+                -106,
+                79,
+                -96,
+                -119,
+                -52,
+                109,
+                -23,
+                -46,
+                -76,
+                -2,
+                23,
+                19,
+                1,
+                52,
+                67,
+                -66,
+                -127,
+                38,
+                -46,
+                -113,
+                -102,
+                27,
+                -94,
+                13,
+                -44,
+                -36,
+                -50,
+                -84,
+                -27,
+                35,
+                -24,
+                -18,
+                -93,
+                -21,
+                -76,
+                -96,
+                46,
+                25,
+                120,
+                -119,
+                -89,
+                11,
+                3,
+                -48,
+                -98,
+                -127,
+                38,
+                74,
+                -66,
+                -91,
+                -71,
+                -47,
+                1,
+                -76,
+                -95,
+                124,
+                5,
+                77,
+                20,
+                15,
+                117,
+                105,
+                102,
+                39,
+                59,
+                56,
+                14,
+                -44,
+                -36,
+                -50,
+                -84,
+                -27,
+                51,
+                -24,
+                32,
+                -36,
+                32,
+                5,
+                58,
+                122,
+                31,
+                34,
+                55,
+                50,
+                -101,
+                115,
+                -31,
+                66,
+                25,
+                -96,
+                125,
+                3,
+                77,
+                36,
+                -73,
+                -91,
+                3,
+                15,
+                31,
+                87,
+                -42,
+                -67,
+                -91,
+                -71,
+                -99,
+                89,
+                -53,
+                119,
+                -48,
+                68,
+                -11,
+                81,
+                115,
+                -93,
+                -30,
+                -100,
+                -30,
+                -24,
+                89,
+                -128,
+                -10,
+                17,
+                -76,
+                -24,
+                35,
+                16,
+                126,
+                53,
+                -68,
+                -105,
+                29,
+                20,
+                -25,
+                68,
+                -25,
+                0,
+                -48,
+                30,
+                -126,
+                38,
+                34,
+                108,
+                -27,
+                -49,
+                -25,
+                -19,
+                -111,
+                -97,
+                45,
+                -5,
+                -53,
+                13,
+                -48,
+                30,
+                -126,
+                38,
+                34,
+                58,
+                -7,
+                -105,
+                65,
+                118,
+                80,
+                46,
+                108,
+                -27,
+                -22,
+                89,
+                -45,
+                9,
+                -48,
+                94,
+                -126,
+                -26,
+                6,
+                -59,
+                53,
+                -67,
+                -123,
+                45,
+                43,
+                -2,
+                -57,
+                -104,
+                -37,
+                -103,
+                -75,
+                -46,
+                4,
+                -6,
+                -26,
+                -51,
+                -101,
+                -20,
+                -72,
+                108,
+                79,
+                32,
+                -7,
+                88,
+                124,
+                102,
+                80,
+                -89,
+                9,
+                52,
+                81,
+                118,
+                -74,
+                116,
+                105,
+                -26,
+                -2,
+                -21,
+                -66,
+                1,
+                -70,
+                -94,
+                -76,
+                -127,
+                38,
+                74,
+                63,
+                -22,
+                36,
+                -17,
+                -119,
+                -28,
+                -10,
+                102,
+                -68,
+                52,
+                -126,
+                30,
+                31,
+                31,
+                103,
+                71,
+                103,
+                6,
+                114,
+                -19,
+                119,
+                -29,
+                -32,
+                -46,
+                -29,
+                -13,
+                -46,
+                8,
+                -102,
+                40,
+                125,
+                91,
+                90,
+                -25,
+                59,
+                -41,
+                -71,
+                -51,
+                25,
+                45,
+                -83,
+                -96,
+                -119,
+                -46,
+                -127,
+                90,
+                -9,
+                -69,
+                -41,
+                83,
+                -113,
+                26,
+                -96,
+                93,
+                -99,
+                75,
+                -44,
+                115,
+                84,
+                -3,
+                -61,
+                -35,
+                101,
+                65,
+                -25,
+                11,
+                77,
+                11,
+                -36,
+                -10,
+                -116,
+                -92,
+                5,
+                -12,
+                -28,
+                87,
+                106,
+                -49,
+                -62,
+                93,
+                123,
+                -126,
+                5,
+                -15,
+                -61,
+                84,
+                -97,
+                90,
+                47,
+                125,
+                -59,
+                -106,
+                -106,
+                40,
+                54,
+                -24,
+                122,
+                -120,
+                107,
+                13,
+                83,
+                -36,
+                64,
+                101,
+                103,
+                -20,
+                -62,
+                -7,
+                101,
+                -24,
+                -30,
+                -128,
+                -50,
+                52,
+                106,
+                101,
+                -48,
+                19,
+                95,
+                -117,
+                -121,
+                -103,
+                17,
+                54,
+                55,
+                84,
+                -43,
+                -83,
+                108,
+                19,
+                116,
+                111,
+                -79,
+                -7,
+                -97,
+                -36,
+                6,
+                -75,
+                -90,
+                4,
+                58,
+                41,
+                100,
+                -96,
+                94,
+                54,
+                -57,
+                78,
+                -1,
+                -74,
+                46,
+                -72,
+                -72,
+                -96,
+                51,
+                -69,
+                -91,
+                89,
+                48,
+                71,
+                -13,
+                -39,
+                7,
+                -103,
+                70,
+                45,
+                -125,
+                45,
+                9,
+                -24,
+                -46,
+                -12,
+                -82,
+                -20,
+                -95,
+                102,
+                -61,
+                -52,
+                -80,
+                -87,
+                -71,
+                1,
+                71,
+                115,
+                -32,
+                -40,
+                78,
+                105,
+                104,
+                73,
+                64,
+                -85,
+                93,
+                122,
+                52,
+                -3,
+                -110,
+                -37,
+                -94,
+                -106,
+                88,
+                49,
+                103,
+                16,
+                -75,
+                -62,
+                -61,
+                106,
+                90,
+                64,
+                103,
+                -18,
+                -46,
+                -93,
+                30,
+                -26,
+                71,
+                -10,
+                -100,
+                -80,
+                3,
+                58,
+                3,
+                -88,
+                -69,
+                67,
+                -7,
+                -49,
+                18,
+                -47,
+                13,
+                -6,
+                -56,
+                -44,
+                -13,
+                -39,
+                65,
+                -51,
+                -66,
+                -99,
+                51,
+                0,
+                58,
+                14,
+                -28,
+                124,
+                -95,
+                -119,
+                -6,
+                -122,
+                54,
+                107,
+                1,
+                -83,
+                -78,
+                -91,
+                -13,
+                3,
+                91,
+                26,
+                -71,
+                77,
+                38,
+                -86,
+                22,
+                -26,
+                117,
+                -35,
+                -121,
+                -20,
+                -126,
+                78,
+                33,
+                -22,
+                -96,
+                32,
+                -9,
+                49,
+                11,
+                38,
+                -73,
+                115,
+                -26,
+                46,
+                61,
+                -100,
+                -40,
+                -50,
+                12,
+                -96,
+                23,
+                22,
+                22,
+                -100,
+                -36,
+                -54,
+                -47,
+                4,
+                6,
+                64,
+                -1,
+                -30,
+                79,
+                79,
+                -91,
+                31,
+                117,
+                86,
+                65,
+                19,
+                -103,
+                -39,
+                -46,
+                -79,
+                -2,
+                -103,
+                -73,
+                -80,
+                -99,
+                85,
+                111,
+                -45,
+                -31,
+                -61,
+                -21,
+                -66,
+                -56,
+                109,
+                51,
+                86,
+                78,
+                -127,
+                -10,
+                28,
+                117,
+                -30,
+                -21,
+                87,
+                -61,
+                -104,
+                51,
+                113,
+                -23,
+                33,
+                -62,
+                -4,
+                -40,
+                -34,
+                -31,
+                -52,
+                -128,
+                -98,
+                -99,
+                -99,
+                53,
+                6,
+                -71,
+                122,
+                -126,
+                112,
+                -7,
+                -25,
+                -121,
+                -40,
+                -58,
+                60,
+                56,
+                -77,
+                -101,
+                126,
+                62,
+                -40,
+                -100,
+                94,
+                -44,
+                34,
+                -48,
+                31,
+                -99,
+                -7,
+                65,
+                102,
+                64,
+                19,
+                37,
+                -39,
+                -46,
+                -105,
+                18,
+                -63,
+                26,
+                -120,
+                -7,
+                -5,
+                96,
+                -80,
+                -91,
+                -21,
+                36,
+                -66,
+                -36,
+                88,
+                -107,
+                41,
+                -48,
+                113,
+                80,
+                115,
+                65,
+                4,
+                -22,
+                21,
+                18,
+                -127,
+                126,
+                -13,
+                -48,
+                -34,
+                -52,
+                -127,
+                -66,
+                118,
+                -19,
+                -102,
+                20,
+                -28,
+                51,
+                -25,
+                79,
+                -77,
+                67,
+                -44,
+                53,
+                50,
+                -105,
+                64,
+                -34,
+                -95,
+                22,
+                -127,
+                -2,
+                -58,
+                11,
+                22,
+                -97,
+                33,
+                116,
+                4,
+                52,
+                -47,
+                -54,
+                91,
+                -38,
+                -10,
+                -75,
+                46,
+                -74,
+                116,
+                -116,
+                -100,
+                122,
+                -108,
+                99,
+                98,
+                21,
+                43,
+                -24,
+                90,
+                -88,
+                15,
+                -99,
+                -20,
+                91,
+                118,
+                7,
+                -1,
+                -18,
+                -54,
+                115,
+                -20,
+                24,
+                -127,
+                90,
+                -112,
+                83,
+                -96,
+                29,
+                -24,
+                -14,
+                -27,
+                -53,
+                -46,
+                79,
+                -112,
+                112,
+                67,
+                -44,
+                53,
+                -87,
+                -6,
+                8,
+                4,
+                -128,
+                94,
+                94,
+                -71,
+                92,
+                -90,
+                -66,
+                -127,
+                22,
+                39,
+                30,
+                51,
+                -58,
+                -106,
+                86,
+                -52,
+                -103,
+                23,
+                39,
+                -115,
+                127,
+                -127,
+                -37,
+                -15,
+                3,
+                -55,
+                -34,
+                -63,
+                3,
+                31,
+                -14,
+                61,
+                -12,
+                6,
+                -44,
+                -126,
+                -100,
+                1,
+                -19,
+                96,
+                -78,
+                119,
+                48,
+                55,
+                68,
+                -37,
+                -96,
+                -13,
+                -59,
+                -90,
+                57,
+                110,
+                -73,
+                53,
+                115,
+                -30,
+                5,
+                -2,
+                -41,
+                -73,
+                113,
+                -37,
+                21,
+                118,
+                112,
+                -76,
+                11,
+                -88,
+                125,
+                -37,
+                -46,
+                43,
+                -127,
+                126,
+                -94,
+                -89,
+                63,
+                -109,
+                -37,
+                57,
+                42,
+                107,
+                -96,
+                75,
+                -66,
+                -93,
+                -106,
+                123,
+                79,
+                -31,
+                -105,
+                -36,
+                -57,
+                60,
+                123,
+                78,
+                -4,
+                -25,
+                79,
+                36,
+                -1,
+                30,
+                89,
+                67,
+                45,
+                -5,
+                -13,
+                -10,
+                14,
+                52,
+                -97,
+                -29,
+                -10,
+                -69,
+                44,
+                25,
+                -48,
+                -58,
+                80,
+                39,
+                -19,
+                31,
+                61,
+                -118,
+                -33,
+                -13,
+                -31,
+                88,
+                -33,
+                70,
+                -12,
+                75,
+                -119,
+                -128,
+                -38,
+                -47,
+                45,
+                45,
+                11,
+                -70,
+                -79,
+                107,
+                -124,
+                104,
+                126,
+                -42,
+                13,
+                -52,
+                -13,
+                -1,
+                78,
+                -10,
+                -67,
+                99,
+                60,
+                -127,
+                3,
+                -48,
+                -98,
+                -96,
+                86,
+                2,
+                29,
+                -59,
+                -71,
+                -107,
+                25,
+                -1,
+                -123,
+                -56,
+                10,
+                106,
+                21,
+                -52,
+                -7,
+                66,
+                19,
+                -19,
+                43,
+                110,
+                -38,
+                -62,
+                -19,
+                120,
+                -87,
+                88,
+                -96,
+                -105,
+                112,
+                -83,
+                -106,
+                -57,
+                -77,
+                -72,
+                -24,
+                22,
+                -26,
+                24,
+                -88,
+                101,
+                47,
+                61,
+                -126,
+                -48,
+                79,
+                -44,
+                -86,
+                -112,
+                -99,
+                -36,
+                -46,
+                -119,
+                64,
+                87,
+                55,
+                119,
+                -101,
+                104,
+                -22,
+                59,
+                68,
+                -73,
+                -113,
+                -59,
+                20,
+                91,
+                39,
+                19,
+                -104,
+                99,
+                -96,
+                78,
+                -29,
+                -106,
+                30,
+                -72,
+                33,
+                -1,
+                9,
+                75,
+                -50,
+                -93,
+                -42,
+                10,
+                -38,
+                84,
+                38,
+                49,
+                103,
+                28,
+                -75,
+                14,
+                -56,
+                -47,
+                -68,
+                -4,
+                -34,
+                -109,
+                95,
+                -26,
+                -10,
+                12,
+                -48,
+                -47,
+                76,
+                60,
+                36,
+                125,
+                115,
+                100,
+                -17,
+                96,
+                19,
+                -17,
+                -36,
+                -42,
+                53,
+                -3,
+                19,
+                29,
+                90,
+                49,
+                99,
+                67,
+                -53,
+                102,
+                3,
+                115,
+                -58,
+                -74,
+                -76,
+                110,
+                -56,
+                -67,
+                -59,
+                -26,
+                78,
+                110,
+                -57,
+                75,
+                57,
+                13,
+                122,
+                -15,
+                -98,
+                93,
+                -48,
+                41,
+                71,
+                -3,
+                -58,
+                -69,
+                91,
+                -45,
+                -71,
+                -107,
+                43,
+                115,
+                26,
+                -76,
+                109,
+                -52,
+                -122,
+                64,
+                -65,
+                -6,
+                123,
+                125,
+                31,
+                -23,
+                -27,
+                -54,
+                86,
+                -34,
+                87,
+                -36,
+                -16,
+                117,
+                110,
+                -69,
+                -62,
+                0,
+                58,
+                62,
+                104,
+                34,
+                -9,
+                -73,
+                116,
+                111,
+                81,
+                -2,
+                35,
+                11,
+                -68,
+                -35,
+                -54,
+                -107,
+                1,
+                116,
+                50,
+                -44,
+                -13,
+                -9,
+                -26,
+                -99,
+                69,
+                -99,
+                41,
+                -56,
+                81,
+                -50,
+                -126,
+                -42,
+                -7,
+                52,
+                -69,
+                35,
+                91,
+                -6,
+                -32,
+                -103,
+                86,
+                43,
+                -112,
+                -125,
+                80,
+                47,
+                100,
+                111,
+                48,
+                55,
+                52,
+                56,
+                12,
+                -6,
+                -22,
+                15,
+                -67,
+                1,
+                77,
+                -28,
+                -50,
+                -91,
+                71,
+                102,
+                33,
+                71,
+                57,
+                11,
+                -102,
+                11,
+                115,
+                76,
+                -48,
+                55,
+                63,
+                -7,
+                -120,
+                21,
+                -75,
+                110,
+                -56,
+                94,
+                98,
+                110,
+                104,
+                112,
+                24,
+                -12,
+                -11,
+                -57,
+                -67,
+                2,
+                77,
+                36,
+                -65,
+                -91,
+                11,
+                127,
+                -33,
+                -31,
+                52,
+                102,
+                110,
+                -109,
+                -119,
+                114,
+                22,
+                -12,
+                -62,
+                93,
+                -17,
+                64,
+                19,
+                -39,
+                -67,
+                -12,
+                -48,
+                -66,
+                -107,
+                -117,
+                -98,
+                99,
+                110,
+                104,
+                112,
+                24,
+                52,
+                17,
+                15,
+                -26,
+                -124,
+                31,
+                118,
+                115,
+                124,
+                -20,
+                55,
+                86,
+                80,
+                99,
+                43,
+                -41,
+                8,
+                -96,
+                -11,
+                109,
+                -25,
+                40,
+                -109,
+                -96,
+                117,
+                67,
+                -18,
+                45,
+                54,
+                -35,
+                -31,
+                54,
+                -88,
+                53,
+                -128,
+                -42,
+                15,
+                -102,
+                72,
+                63,
+                -22,
+                -16,
+                -22,
+                14,
+                108,
+                101,
+                -103,
+                -100,
+                6,
+                77,
+                100,
+                25,
+                116,
+                -68,
+                -9,
+                28,
+                -118,
+                122,
+                109,
+                -16,
+                105,
+                109,
+                -88,
+                13,
+                92,
+                43,
+                -97,
+                -30,
+                118,
+                103,
+                44,
+                -128,
+                -42,
+                -65,
+                -99,
+                -93,
+                -110,
+                -126,
+                126,
+                -13,
+                92,
+                27,
+                -74,
+                -78,
+                106,
+                -50,
+                -125,
+                38,
+                -78,
+                -125,
+                121,
+                -30,
+                -85,
+                70,
+                110,
+                122,
+                92,
+                -44,
+                -70,
+                33,
+                7,
+                -123,
+                77,
+                79,
+                112,
+                91,
+                -77,
+                -110,
+                23,
+                -96,
+                39,
+                30,
+                -10,
+                110,
+                59,
+                71,
+                5,
+                -95,
+                -4,
+                -17,
+                42,
+                28,
+                -100,
+                -39,
+                77,
+                125,
+                67,
+                -101,
+                -75,
+                99,
+                110,
+                -20,
+                26,
+                73,
+                -1,
+                102,
+                -114,
+                -14,
+                2,
+                52,
+                -111,
+                -105,
+                -104,
+                -93,
+                -76,
+                95,
+                3,
+                75,
+                -50,
+                -9,
+                94,
+                26,
+                90,
+                -70,
+                -17,
+                -72,
+                -99,
+                89,
+                -53,
+                27,
+                -48,
+                68,
+                94,
+                98,
+                -114,
+                -78,
+                -115,
+                -71,
+                -6,
+                -66,
+                -29,
+                118,
+                102,
+                45,
+                -81,
+                64,
+                19,
+                -3,
+                -1,
+                -67,
+                127,
+                -98,
+                97,
+                38,
+                82,
+                -5,
+                -12,
+                -91,
+                36,
+                -13,
+                104,
+                -89,
+                -8,
+                -66,
+                -29,
+                118,
+                102,
+                45,
+                -17,
+                64,
+                71,
+                37,
+                -127,
+                -4,
+                -81,
+                -9,
+                89,
+                110,
+                -78,
+                -19,
+                -83,
+                12,
+                -48,
+                62,
+                -127,
+                -114,
+                82,
+                -127,
+                124,
+                -11,
+                49,
+                -18,
+                91,
+                107,
+                4,
+                -14,
+                26,
+                -119,
+                -5,
+                -114,
+                -37,
+                -103,
+                -75,
+                -68,
+                7,
+                93,
+                -39,
+                -115,
+                61,
+                -9,
+                47,
+                73,
+                38,
+                30,
+                34,
+                -102,
+                122,
+                -124,
+                -5,
+                22,
+                45,
+                75,
+                47,
+                -26,
+                -115,
+                -46,
+                -9,
+                29,
+                -73,
+                51,
+                107,
+                -91,
+                10,
+                -76,
+                39,
+                -23,
+                -64,
+                76,
+                68,
+                -46,
+                -9,
+                27,
+                64,
+                3,
+                -76,
+                -47,
+                22,
+                23,
+                23,
+                99,
+                67,
+                -18,
+                9,
+                -41,
+                47,
+                -3,
+                57,
+                0,
+                45,
+                8,
+                -96,
+                121,
+                -118,
+                -69,
+                -107,
+                43,
+                3,
+                104,
+                65,
+                0,
+                -51,
+                -105,
+                44,
+                -28,
+                -3,
+                67,
+                -49,
+                10,
+                -65,
+                30,
+                -96,
+                5,
+                1,
+                52,
+                95,
+                -77,
+                119,
+                62,
+                85,
+                -34,
+                -54,
+                -107,
+                1,
+                -76,
+                32,
+                -128,
+                -26,
+                -83,
+                22,
+                -28,
+                63,
+                94,
+                14,
+                87,
+                -4,
+                90,
+                -128,
+                22,
+                4,
+                -48,
+                -4,
+                -87,
+                108,
+                -27,
+                -54,
+                0,
+                90,
+                16,
+                64,
+                -13,
+                55,
+                126,
+                -29,
+                44,
+                -27,
+                11,
+                77,
+                116,
+                123,
+                -10,
+                99,
+                -91,
+                -81,
+                3,
+                104,
+                65,
+                0,
+                -19,
+                111,
+                0,
+                45,
+                8,
+                -96,
+                -3,
+                13,
+                -96,
+                5,
+                1,
+                -76,
+                -65,
+                1,
+                -76,
+                32,
+                -128,
+                -10,
+                55,
+                -128,
+                22,
+                4,
+                -48,
+                -2,
+                6,
+                -48,
+                -126,
+                84,
+                14,
+                5,
+                -29,
+                -17,
+                112,
+                59,
+                -77,
+                22,
+                -9,
+                65,
+                99,
+                0,
+                90,
+                107,
+                -36,
+                7,
+                -115,
+                1,
+                104,
+                -83,
+                113,
+                31,
+                52,
+                6,
+                -96,
+                -75,
+                -58,
+                125,
+                -48,
+                24,
+                -128,
+                -42,
+                26,
+                -9,
+                65,
+                99,
+                0,
+                90,
+                107,
+                -115,
+                47,
+                -98,
+                96,
+                63,
+                108,
+                12,
+                64,
+                107,
+                -115,
+                -5,
+                -80,
+                49,
+                0,
+                -83,
+                53,
+                -18,
+                -61,
+                -58,
+                0,
+                -76,
+                -42,
+                -72,
+                15,
+                27,
+                3,
+                -52,
+                -38,
+                -29,
+                62,
+                116,
+                12,
+                64,
+                107,
+                -19,
+                91,
+                29,
+                -61,
+                -85,
+                -71,
+                15,
+                30,
+                3,
+                -52,
+                -38,
+                -29,
+                -66,
+                3,
+                48,
+                -64,
+                -116,
+                -112,
+                -109,
+                -3,
+                15,
+                62,
+                -114,
+                31,
+                -125,
+                -73,
+                -124,
+                107,
+                78,
+                0,
+                0,
+                0,
+                0,
+                73,
+                69,
+                78,
+                68,
+                -82,
+                66,
+                96,
+                -126
+            ],
+            "fileName": "awesomeIcon.png",
+            "fileExtension": "PNG"
+        }
+    ]
+}
\ No newline at end of file
-- 
GitLab