From 43470feb1ec19ac82a7f31db440f9ddba64c1e9f Mon Sep 17 00:00:00 2001 From: illumineawake Date: Sat, 21 Aug 2021 22:09:01 +1000 Subject: [PATCH] iutils: ScriptHandler now stops after multiple successive failures in a short period of time --- iutils/iutils.gradle.kts | 2 +- .../iutils/scripts/IScriptHandler.java | 27 +++++++++++++++--- plugins.json | 2 +- .../{iutils-4.4.7.jar => iutils-4.4.8.jar} | Bin 1032293 -> 1032601 bytes 4 files changed, 25 insertions(+), 6 deletions(-) rename release/{iutils-4.4.7.jar => iutils-4.4.8.jar} (99%) diff --git a/iutils/iutils.gradle.kts b/iutils/iutils.gradle.kts index f52a3742..117066ad 100644 --- a/iutils/iutils.gradle.kts +++ b/iutils/iutils.gradle.kts @@ -23,7 +23,7 @@ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -version = "4.4.7" +version = "4.4.8" project.extra["PluginName"] = "iUtils" project.extra["PluginDescription"] = "Illumine - Utils required for plugins to function with added automation" diff --git a/iutils/src/main/java/net/runelite/client/plugins/iutils/scripts/IScriptHandler.java b/iutils/src/main/java/net/runelite/client/plugins/iutils/scripts/IScriptHandler.java index 7b1ead77..d3dbdc41 100644 --- a/iutils/src/main/java/net/runelite/client/plugins/iutils/scripts/IScriptHandler.java +++ b/iutils/src/main/java/net/runelite/client/plugins/iutils/scripts/IScriptHandler.java @@ -6,21 +6,40 @@ import net.runelite.client.plugins.iutils.util.Util; @Slf4j public class IScriptHandler implements Runnable { private final iScript script; + private static final int FAILURE_RESET = 75000; + private static final int MAX_FAILURES = 10; public IScriptHandler(iScript script) { this.script = script; } public void run() { + var failures = 0; + var lastFailure = System.currentTimeMillis(); + script.onStart(); while (!Thread.currentThread().isInterrupted()) { try { script.loop(); } catch (IllegalStateException | AssertionError | NullPointerException e) { - log.info("Caught error, restarting in 3 seconds"); - e.printStackTrace(); - log.info(e.getMessage()); - Util.sleep(3000); + + if (System.currentTimeMillis() - lastFailure > FAILURE_RESET) { + failures = 0; + } + + lastFailure = System.currentTimeMillis(); + + if (failures <= MAX_FAILURES) { + failures++; + log.info("Caught failure #{}, restarting in 3 seconds", failures); + e.printStackTrace(); + log.info(e.getMessage()); + Util.sleep(3000); + } else { + log.info("Caught > 10 failures, stopping plugin"); + script.onStop(); + return; + } } } } diff --git a/plugins.json b/plugins.json index 1b3570c1..5ff0cc5b 100644 --- a/plugins.json +++ b/plugins.json @@ -1 +1 @@ -[{"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"BotUtils","description":"Illumine - Utils required for plugins to function with added automation","id":"botutils-plugin","releases":[{"date":"2021-08-20","sha512sum":"A71C4F1B739303A6B543B80D6F10826A780D86365A495F0FFD3D2EE8A49585C18ADEE0EE59DA4729FEA017055F6C8E52FB46944653DF75681D5354FA62464CF0","version":"5.1.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/botutils-5.1.0.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Disable Rendering","description":"Illumine - Disable rendering to improve performance","id":"disablerendering-plugin","releases":[{"date":"2021-08-20","sha512sum":"90BC7ECE4E41AF4FBF0CFB0E3A0A95D9522396C6351F52A951C1AF553C0F353A1FC49B3310030E57C3809983D00A427B7AA170E5CA6ABDD9159610517504DBCC","version":"1.0.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/disablerendering-1.0.1.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iBlackjack","description":"Illumine - Blackjack plugin","id":"iblackjack-plugin","releases":[{"date":"2021-08-20","sha512sum":"DE7063171C8DEFD8E17471060111624172D18E05478574C1267E3D62F0D328E2A9520DF3471B6C0A1710D228B4FAC8CB867AE968987C40718FBA32EC47AC0105","version":"2.1.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iblackjack-2.1.2.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iCombination Runecrafter Plugin","description":"Illumine - Combination Runecrafting plugin","id":"icombinationrunecrafterplugin-plugin","releases":[{"date":"2021-08-20","sha512sum":"525470A8CDE1E77C038D16D46FFD32F1E793F9A4F1095FFF11FEE9F682D80B2016EE369C5B0298D33B8C8D2E2404416501AF11856C8739A9D0DE3CB917031FF4","version":"3.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/icombinationrunecrafter-3.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iHerbCleaner","description":"Illumine - Herb Cleaner","id":"iherbcleaner-plugin","releases":[{"date":"2021-08-20","sha512sum":"947E7C27746385BA8B2F84B3900DB483430C94ADB92C0E9A5DF1B608A2B7DB0CC1EBF083FFEFE71095CDB922A407D12ED9E96F2700A33BD23FDE546844EFCAB6","version":"2.1.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iherbcleaner-2.1.2.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iMagic Caster","description":"Illumine automated magic caster","id":"imagiccaster-plugin","releases":[{"date":"2021-08-20","sha512sum":"B201FE2A998CA6584150F551A06BF6F2624DCF88082255EADBF2413A2D24FBA1865E7BAA0DC0B72939E76AD76C7E7B44CFB23C1536E20B350500CB48A14A7DCD","version":"4.1.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/imagiccaster-4.1.2.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iMenu Debugger Plugin","description":"Illumine - Menu Debugger plugin","id":"imenudebuggerplugin-plugin","releases":[{"date":"2021-08-20","sha512sum":"D9A00F68D0F8D185C6ABAB541BF6F84A516453F902000AE56E8A4223D0C8914FE17CA130E486E5423C187C99F4ED057D43117D98B413D3F8E4069CE7F590B001","version":"2.3.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/imenudebugger-2.3.0.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iPowerfighter Plugin","description":"Illumine - Powerfighter plugin","id":"ipowerfighterplugin-plugin","releases":[{"date":"2021-08-20","sha512sum":"91C82B66073E942668F888EC9816581C203FA9A69BBD109D694922370543CE1361D9B9608CD450EF4CB9C5B8C41A09D0C5F2525DF7F3749021F696E0A3E60223","version":"4.2.4","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/ipowerfighter-4.2.4.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iPower Skiller","description":"Illumine auto power skiller plugin","id":"ipowerskiller-plugin","releases":[{"date":"2021-08-20","sha512sum":"A39C5BD79FEF4F8839F406BBACD5162CE3E8CD3A7C0C8B8F13A706810162E9717C8AC0567B4F197DF80AE1DCED70AF8634FA765641D51A9C3A8FDF6249FBF376","version":"6.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/ipowerskiller-6.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iQuest Assistant","description":"Illumine - Quest Assistant plugin","id":"iquestassistant-plugin","releases":[{"date":"2021-08-20","sha512sum":"70DD51DCFFE14118FAB2DAB97636A11F20896F080CF82EC444085C26ECB5E847A2A751D7D2E066610802C96B71C466DE55B15B98353B97F165CB833DD5BEF29D","version":"1.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iquestassistant-1.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iQuester Free","description":"Illumine - Free Quester plugin.","id":"iquesterfree-plugin","releases":[{"date":"2021-08-20","sha512sum":"B19CED68CBA64F6F37A221045BD178B892E293A30DBCB6C4EBA3E45C88BD2B001E44B1EBACE0C90253FAC80511D97966FB3C4F3424C705C79911B3695921DC25","version":"1.0.4","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iquesterfree-1.0.4.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iQuick Eater","description":"Illumine - auto eat food, consume potions and equip items","id":"iquickeater-plugin","releases":[{"date":"2021-08-20","sha512sum":"7FDFB39B829D2D53625BEDDBC2F1D74A99B4E1DF819237F673A5A5D7B0476E44F3AD55E28883CB4965054AB6472510FF89A9A25956701332D06FA46DE93E8022","version":"5.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iquickeater-5.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iRandom Handler","description":"illumine - Dismiss random events and handle genie","id":"irandomhandler-plugin","releases":[{"date":"2021-08-20","sha512sum":"FAC53D573FC9489E293B0DD19CDAF4A62E2C28874661D0CF4AC8BE1D8756AAD6752144615B21F70B595803C970D109A6C9BBC0E7BF0C57F848573EEE5DA0B04D","version":"3.1.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/irandomhandler-3.1.1.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iRooftop Agility","description":"Illumine automated rooftop agility plugin","id":"irooftopagility-plugin","releases":[{"date":"2021-08-20","sha512sum":"706A284A3354C409250895398CD68F9EE5D99A88304988E2AAB243BCDCC13D60709AF1C89967E7401629F9FB8FF92CB33E63DBEB896F34800E7BE9823C84BF30","version":"6.1.6","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/irooftopagility-6.1.6.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iTaskTemplate","description":"Illumine - Task Template plugin","id":"itasktemplate-plugin","releases":[{"date":"2021-08-20","sha512sum":"98C262B2D53F0ABDB3DE2961E514BB7DD496EAC9E5B3DB56B302146680BD8B180E91CB11F3F04502F828811AFFB45AFE0DCBBB170105E82BA65D14CAB82A1284","version":"4.0.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/itasktemplate-4.0.1.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iUtils","description":"Illumine - Utils required for plugins to function with added automation","id":"iutils-plugin","releases":[{"date":"2021-08-20","sha512sum":"82B4EE6B07232B85768573A198EBB22393F6DB2AA2D33E5B38E507C7A12696943B0A8DDDFB6497BE6E5537798F7BD08089CE22FF22F65BAA95D628A337C9D793","version":"4.4.7","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iutils-4.4.7.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iWorld Walker Plugin","description":"Illumine - World Walker plugin","id":"iworldwalkerplugin-plugin","releases":[{"date":"2021-08-20","sha512sum":"F1AAF978D489763F0DDC078CBF9AAD340D16B10B5D60DB02F5D60B38390FCE097380759B7B50558FBFF9DCE804BC11BEBFAE20EDF3A2DF520AA5C6EE785A6981","version":"4.0.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iworldwalker-4.0.1.jar?raw=true","requires":"^1.0.0"}]}] +[{"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"BotUtils","description":"Illumine - Utils required for plugins to function with added automation","id":"botutils-plugin","releases":[{"date":"2021-08-21","sha512sum":"A71C4F1B739303A6B543B80D6F10826A780D86365A495F0FFD3D2EE8A49585C18ADEE0EE59DA4729FEA017055F6C8E52FB46944653DF75681D5354FA62464CF0","version":"5.1.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/botutils-5.1.0.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"Disable Rendering","description":"Illumine - Disable rendering to improve performance","id":"disablerendering-plugin","releases":[{"date":"2021-08-21","sha512sum":"90BC7ECE4E41AF4FBF0CFB0E3A0A95D9522396C6351F52A951C1AF553C0F353A1FC49B3310030E57C3809983D00A427B7AA170E5CA6ABDD9159610517504DBCC","version":"1.0.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/disablerendering-1.0.1.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iBlackjack","description":"Illumine - Blackjack plugin","id":"iblackjack-plugin","releases":[{"date":"2021-08-21","sha512sum":"DE7063171C8DEFD8E17471060111624172D18E05478574C1267E3D62F0D328E2A9520DF3471B6C0A1710D228B4FAC8CB867AE968987C40718FBA32EC47AC0105","version":"2.1.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iblackjack-2.1.2.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iCombination Runecrafter Plugin","description":"Illumine - Combination Runecrafting plugin","id":"icombinationrunecrafterplugin-plugin","releases":[{"date":"2021-08-21","sha512sum":"525470A8CDE1E77C038D16D46FFD32F1E793F9A4F1095FFF11FEE9F682D80B2016EE369C5B0298D33B8C8D2E2404416501AF11856C8739A9D0DE3CB917031FF4","version":"3.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/icombinationrunecrafter-3.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iHerbCleaner","description":"Illumine - Herb Cleaner","id":"iherbcleaner-plugin","releases":[{"date":"2021-08-21","sha512sum":"947E7C27746385BA8B2F84B3900DB483430C94ADB92C0E9A5DF1B608A2B7DB0CC1EBF083FFEFE71095CDB922A407D12ED9E96F2700A33BD23FDE546844EFCAB6","version":"2.1.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iherbcleaner-2.1.2.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iMagic Caster","description":"Illumine automated magic caster","id":"imagiccaster-plugin","releases":[{"date":"2021-08-21","sha512sum":"B201FE2A998CA6584150F551A06BF6F2624DCF88082255EADBF2413A2D24FBA1865E7BAA0DC0B72939E76AD76C7E7B44CFB23C1536E20B350500CB48A14A7DCD","version":"4.1.2","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/imagiccaster-4.1.2.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iMenu Debugger Plugin","description":"Illumine - Menu Debugger plugin","id":"imenudebuggerplugin-plugin","releases":[{"date":"2021-08-21","sha512sum":"D9A00F68D0F8D185C6ABAB541BF6F84A516453F902000AE56E8A4223D0C8914FE17CA130E486E5423C187C99F4ED057D43117D98B413D3F8E4069CE7F590B001","version":"2.3.0","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/imenudebugger-2.3.0.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iPowerfighter Plugin","description":"Illumine - Powerfighter plugin","id":"ipowerfighterplugin-plugin","releases":[{"date":"2021-08-21","sha512sum":"91C82B66073E942668F888EC9816581C203FA9A69BBD109D694922370543CE1361D9B9608CD450EF4CB9C5B8C41A09D0C5F2525DF7F3749021F696E0A3E60223","version":"4.2.4","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/ipowerfighter-4.2.4.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iPower Skiller","description":"Illumine auto power skiller plugin","id":"ipowerskiller-plugin","releases":[{"date":"2021-08-21","sha512sum":"A39C5BD79FEF4F8839F406BBACD5162CE3E8CD3A7C0C8B8F13A706810162E9717C8AC0567B4F197DF80AE1DCED70AF8634FA765641D51A9C3A8FDF6249FBF376","version":"6.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/ipowerskiller-6.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iQuest Assistant","description":"Illumine - Quest Assistant plugin","id":"iquestassistant-plugin","releases":[{"date":"2021-08-21","sha512sum":"70DD51DCFFE14118FAB2DAB97636A11F20896F080CF82EC444085C26ECB5E847A2A751D7D2E066610802C96B71C466DE55B15B98353B97F165CB833DD5BEF29D","version":"1.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iquestassistant-1.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iQuester Free","description":"Illumine - Free Quester plugin.","id":"iquesterfree-plugin","releases":[{"date":"2021-08-21","sha512sum":"B19CED68CBA64F6F37A221045BD178B892E293A30DBCB6C4EBA3E45C88BD2B001E44B1EBACE0C90253FAC80511D97966FB3C4F3424C705C79911B3695921DC25","version":"1.0.4","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iquesterfree-1.0.4.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iQuick Eater","description":"Illumine - auto eat food, consume potions and equip items","id":"iquickeater-plugin","releases":[{"date":"2021-08-21","sha512sum":"7FDFB39B829D2D53625BEDDBC2F1D74A99B4E1DF819237F673A5A5D7B0476E44F3AD55E28883CB4965054AB6472510FF89A9A25956701332D06FA46DE93E8022","version":"5.1.3","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iquickeater-5.1.3.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iRandom Handler","description":"illumine - Dismiss random events and handle genie","id":"irandomhandler-plugin","releases":[{"date":"2021-08-21","sha512sum":"FAC53D573FC9489E293B0DD19CDAF4A62E2C28874661D0CF4AC8BE1D8756AAD6752144615B21F70B595803C970D109A6C9BBC0E7BF0C57F848573EEE5DA0B04D","version":"3.1.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/irandomhandler-3.1.1.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iRooftop Agility","description":"Illumine automated rooftop agility plugin","id":"irooftopagility-plugin","releases":[{"date":"2021-08-21","sha512sum":"706A284A3354C409250895398CD68F9EE5D99A88304988E2AAB243BCDCC13D60709AF1C89967E7401629F9FB8FF92CB33E63DBEB896F34800E7BE9823C84BF30","version":"6.1.6","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/irooftopagility-6.1.6.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iTaskTemplate","description":"Illumine - Task Template plugin","id":"itasktemplate-plugin","releases":[{"date":"2021-08-21","sha512sum":"98C262B2D53F0ABDB3DE2961E514BB7DD496EAC9E5B3DB56B302146680BD8B180E91CB11F3F04502F828811AFFB45AFE0DCBBB170105E82BA65D14CAB82A1284","version":"4.0.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/itasktemplate-4.0.1.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iUtils","description":"Illumine - Utils required for plugins to function with added automation","id":"iutils-plugin","releases":[{"date":"2021-08-21","sha512sum":"0A67AC416F6F07256A08ADF55AC2DB57E9DFEF5B36F6A509E037D622FF56AAB7B0BC35FFB4475B5C8A7642184A033BCEEFD6E4931D7BCDCC08125A20CEB8AF1C","version":"4.4.8","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iutils-4.4.8.jar?raw=true","requires":"^1.0.0"}]}, {"projectUrl":"https://discord.gg/9fGzEDR","provider":"illumine","name":"iWorld Walker Plugin","description":"Illumine - World Walker plugin","id":"iworldwalkerplugin-plugin","releases":[{"date":"2021-08-21","sha512sum":"F1AAF978D489763F0DDC078CBF9AAD340D16B10B5D60DB02F5D60B38390FCE097380759B7B50558FBFF9DCE804BC11BEBFAE20EDF3A2DF520AA5C6EE785A6981","version":"4.0.1","url":"https://github.com/illumineawake/illu-plugins/blob/master/release/iworldwalker-4.0.1.jar?raw=true","requires":"^1.0.0"}]}] diff --git a/release/iutils-4.4.7.jar b/release/iutils-4.4.8.jar similarity index 99% rename from release/iutils-4.4.7.jar rename to release/iutils-4.4.8.jar index ba9df9a51c599c2772636f0075f24f7f8187af03..ab66e317dc7f9879fed27afe4992bf8cbfbb5b4c 100644 GIT binary patch delta 2390 zcmY+F2{e@JAIIyR;ctJZGDwnKm33@su6452I20AhmL)^}xLInDWg0|GSrV`8TXd6& z3}VI-vfQp3WC?#=x{5a0m&@({=k^nkP<>DgL#pUrLZV1+s46R4+R&|DCh2KcXI3; z_ek}#m?)>A9yfZy4MU?A!=2@4l?a)t&wD7uFZAlO(`)<-ZGx9Le@VjWSI6M51Hn^o z3;S27Eyhjf2j96-Jsa+Zc#f`n%np+p*92UkPz_$S*U=spo#|~VyETK&+lJHe<9qX8 zm<8J!oo(jOqL(CPB0i1plXcJEp}m{&jL(-Yo^5(tAjnJc zT72QrRf{W$q(Hexe0y_U(>pjqt6W}Vw-*ZjG1VNexe1pb2HVv4`M7IMormv5row!N z`q-sR>6TZFya`zrPZz;%KgC}_?(UASH*Ztl2eI@|R2?3+Vhl6qj=Cf}U$E0GYns3g z`grA#_R)S9Ws#-uVJ8|Ji)@cY~Rln%h%1h^B_DKk>*zTEMxm- zC!T#{7x(@?9|l=sgVf83I=OStEKS6vLk!+fCb^h_0|xQ$2+kTR z<|8zNI_=BbnGMU=J(Hx^GUv4Erg*+>G@(Zx`xQ`ARm{ILg!iv*|R~LJy zLUh?a;8SP9Mx~Aw>x%u0;)8kT}J7dYoW_r501xhi5%eLL@#NWmS#WM>2 z^b}dl4G%wBwS?33I^3UgqN>E=Pyw4Jd^zP)Uc_ng>1wf_P_DVbFMszP&ssQRiIMn) z+TN*Q#u=6U=<61c8eD&zlNQ%0;J9q_qo(ecgKP7%A3 z>;@0WUlJNHKAS=-yndixZe&@|SMJfbxCDtl1OHaV{K}-6V(UQsIw{X4OkS*7;I>d= zbeJZ#c11N-I}QTE0AYc6fOvua1H=c!4{YBp`!XNq?Q8-Bf}4293pcQ7DAlLU=c{G z8F^X;%Oj~}up$)t-8e!E{V3EM2K!htVRcA(WRr*^C3nCU-Aq^#8hnG|$x*QLcl>G^ z!U=8r@hPIOenkTUUm+YC_&EPlV8F6PZi^1s$|8TPLFHY_5|+9%y5Pk(^4f_^aL~wtzfMHw_OGVuIO) zTxEd_@2M@A%YqL>CDz|bnl*+WIa~!IbDKZ{$=(2L+l_<@vbbS*&!NV$8rFwKT~NcW zhJS?~d7!410@}`~0c|sUermhI7Y*F1fr$`15H;KY%#Wu+x%yL@5sC)#u3|(HzbBxy z5*;N+uVHo|LmQ+lW|QzCy0x$-q#uWp>{@X0NZ?>@G@g_P-q?b5pz1{G7V_^Mu=9sZ z(CFPd@IccuxBT|54%UJ~^EU||ab|;p9)&1T=77T+TL2zy*8{NrzxRG>J*jvzr3XbY zH;fjN%K=A(RK8)nA^uJj2G)Zz(LJbnQx67k8QL%eg!&pIf>WDJZON;pq$Z7 uBZ8Wi`PA)4- zBDrTUav4JH_PUkzs^%T74=o~+@JjohX?ACu=kxnKpYQkl&w2i5o-kMicz26u70Kmo~!|9}sRg5(X!w3@mq+PsQY zrbvQ6*u(?4h=>6JjyPiaus#DLK#dxpK>zs=%~#$@;XIYN>l+`AY+rEoXMNQD6Sw`E zZJ&5n{^x?T`_S^UdNSlhnT4HZ8PfY~Cc~OFSCe0^k3H6S99Y`XM07l1b13HE;-jB8 z-&n264P@L?tdnRgvvt8Vm{6>#NcFy)=oWH&}6tR(QE}dFy@>VD53a!`Z zS$fKHoHCJ;y@XR7j=g6&+mR`quGxo}yeMjO0WJJ}aaMUjn0eqx^W0-&Jtocx^$mUW z7oER*{84vmZrwN2;rwP{nmF(|V}Zvn;l16eL2=Hfi=uAh4cZ2EmwvPj4gU%pRa%Qw z3N-gyTGHxQ+m+zg@lWZXPi~{&9^^JKg+I+ zyF<=-=UQFmX?B!MF5?X(n5TH8F}IbZ6;)`4563!W-jDo6E_FNEd(cPjv-=+UQA zf{*1L|EFe=k2wb5LZ~QQf(KW>-XnO<6ywsCh^@`R&RDy%@V7AN#x|_g9pW?4wsdXp9}62OK>-L79ML+9&`cdyOxfmxznvZQ^^OwkNIQ@tcl zE!ux2);di~yGxtKw2Z#X&Nu9)-YU^rOS!Asso8cd@!>^`;E}?(QLZ+3W=ctKB4#G^ zn^}3vqveRfac(ix`E!4S%7&T(Yh+F0mPNv!Q}J}Ok{$z@4@5&o744N)_LZ%IBmKi9 zlI8iearuiH)VZUP?D_ri26=s6a>YA?yWK-IDljMJBPGYmR%2@Ay7GvX)2+CD*K~f3 z5Oqp_Pb}7E+czHmMQlqvH~u%(;(fO5bvzhjxq@fh93?rHaGKSE$w?m`9Sbp?_g~Op z&@wO-97POe8wvqM97O_!h$4w1g(8h2gF);vBO$0F|uT zB%w|n(8D-maA!R*g!{)a37Ek*>rVwH{y8QK;T5#t3=fl){(HIdr1Jmr3j(qJ*Zf6w zq4hEe@ge3fSlENhLBG4m9M~%uuDuHmV)rbB zpa^Z6fe~h6&o^P%sGDHK)dQD=Bo==uFTSC`Ko&5;y8ZzowDQIQ9KQ-w;Q|YgFoqBG zxQAYdUJIHv`WLwQ;qv?jWMM@MP{wWt3Tj@rpgo)o5x{yVYVvq1nsqK*VE#wLW#Ay+ zFroz}w+*0vVsQdAYeU*ML8z^sbuL0{^5l(Y5uZh=^w