From 2f60015725730ddf746b148ad274ce351d6f0477 Mon Sep 17 00:00:00 2001 From: Costas Katsavounidis <11378310+kacos2000@users.noreply.github.com> Date: Sun, 28 Jan 2024 17:37:57 +0200 Subject: [PATCH] v.0.0.12.0 --- PrefetchBrowser.ps1 | 1461 +++++++++++++++---------------------------- 1 file changed, 497 insertions(+), 964 deletions(-) diff --git a/PrefetchBrowser.ps1 b/PrefetchBrowser.ps1 index 2efcd99..cac6984 100644 --- a/PrefetchBrowser.ps1 +++ b/PrefetchBrowser.ps1 @@ -1,8 +1,8 @@ <# -------------------------------------------------------------------------------- - Generated by: Costas Katsavounidis - https://kacos2000.github.io/Prefetch-Browser/ - https://github.com/kacos2000/Prefetch-Browser + Costas Katsavounidis + https://kacos2000.github.io/Prefetch-Browser/ + https://github.com/kacos2000/Prefetch-Browser -------------------------------------------------------------------------------- #> @@ -31,6 +31,8 @@ function Main { } } + + #endregion Source: Startup.pss #region Source: MainForm.psf @@ -50,8 +52,8 @@ function Show-MainForm_psf [System.Windows.Forms.Application]::EnableVisualStyles() $PrefetchBrowser = New-Object 'System.Windows.Forms.Form' $splitcontainer1 = New-Object 'System.Windows.Forms.SplitContainer' - $statusbar1 = New-Object 'System.Windows.Forms.StatusBar' $menustrip1 = New-Object 'System.Windows.Forms.MenuStrip' + $Statusbar = New-Object 'System.Windows.Forms.ToolStrip' $treeview1 = New-Object 'System.Windows.Forms.TreeView' $fileToolStripMenuItem = New-Object 'System.Windows.Forms.ToolStripMenuItem' $OpenFolder = New-Object 'System.Windows.Forms.ToolStripMenuItem' @@ -59,7 +61,6 @@ function Show-MainForm_psf $exitToolStripMenuItem = New-Object 'System.Windows.Forms.ToolStripMenuItem' $imagelist1 = New-Object 'System.Windows.Forms.ImageList' $imagelist2 = New-Object 'System.Windows.Forms.ImageList' - $Status = New-Object 'System.Windows.Forms.StatusBarPanel' $folderbrowserdialog1 = New-Object 'System.Windows.Forms.FolderBrowserDialog' $contextmenustrip1 = New-Object 'System.Windows.Forms.ContextMenuStrip' $Exit1 = New-Object 'System.Windows.Forms.ToolStripMenuItem' @@ -93,64 +94,15 @@ function Show-MainForm_psf $SaveNodesToCSV = New-Object 'System.Windows.Forms.ToolStripMenuItem' $CopyNodeText1 = New-Object 'System.Windows.Forms.ToolStripMenuItem' $toolstripseparator8 = New-Object 'System.Windows.Forms.ToolStripSeparator' + $SaveToJson = New-Object 'System.Windows.Forms.ToolStripMenuItem' + $Status = New-Object 'System.Windows.Forms.ToolStripLabel' $InitialFormWindowState = New-Object 'System.Windows.Forms.FormWindowState' #endregion Generated Form Objects #---------------------------------------------- # User Generated Script #---------------------------------------------- - #region Set DPI Awareness - $null = Add-Type -TypeDefinition @" -using System; -using System.Runtime.InteropServices; -namespace SAPIEN -{ - public static class DPIAware - { - public enum PROCESS_DPI_AWARENESS - { - PROCESS_DPI_UNAWARE = 0, - PROCESS_SYSTEM_DPI_AWARE = 1, - PROCESS_PER_MONITOR_DPI_AWARE = 2 - } - - [DllImport("SHCore.dll", SetLastError = true)] - public static extern int SetProcessDpiAwareness(PROCESS_DPI_AWARENESS awareness); - } -} -"@ - #Call before displaying a GUI - [SAPIEN.DPIAware]::SetProcessDpiAwareness('PROCESS_SYSTEM_DPI_AWARE') - #endregion - - - # https://github.com/EricZimmerman/Prefetch/blob/master/Prefetch/XpressStream/Xpress2.cs - # Compiled & Digitally signed - try { !![System.Reflection.Assembly]::GetAssembly('Xpress, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null') } - catch [System.Management.Automation.MethodException] - { - $EncodedCompressedFile = @' -7Xt5PFTf//+dMfY1+26EsrtjJ2RfQvadMsZgGDOaGVvKViEpKhRJSFlClpI22ohKRSVSCqksEZVKlu+dGUrL9/v+fL+P3+f3/eP3O+O+7j2v1zmv8zrb6/k6d4a9dxbAAAAAArqWlgCgCaAnY+CfUyJ0cUld4gLOsXZKN8HsOqVdQ3BkZASJGExChyMxaAKBSEEGYJGkSAISR0CaO7ggw4mBWFVOTjbZZR2OFgBgB2MAjmAEL6/ofQWsRbLDQABggzJMdB6XAkSQPwzjoT3D6XYDP4vRjYL4JgYwqF/+e6hFqX8/7z9utHRRHgAcljucxrBKwAsAMUrQ3R8AOKhNQ+V0/4Ux+ZEg+1hWZVmgvPWqvCoFG0OB7vysy/1io9v9mwp/VRKZhAGWbYNspHWY49dyENtYlYTFEzHLIv9lXTx/lDP93cz38vS7Na0KI1AENZrIDACwf6WPf0l8IDOwAaDVX8OQvn8N9MQmGMouGMohygvjhctDfCZlOL8iC13GKciHEGViOoCDww/geBGs8pDZTOuYFCXh8tzQmCgCpi6bTGHL1lD7FqWpCqpqgBooPSqHEcBD1BOqJBMPALegeyA0TjIuFBKOEEymlpBnog+ZjJsLoMxEHxIZKzcbc+huAOXNIdUypnhiwLL9kAqYhwScNi3AHEwDEKSPxZrlIaU+r0wB93Kea/kOW1WGbnEQnH5nApaAGTgTgIdRqQZwDc4N8DJQ+T7AAYgzRKM3adQFRqVSNKpLoyQa3wp4BFE5Gj1N4+wHTCFqwZAK0XRYKm310OwGYLQPD3Rtg5vQnp0S18FBmiwROIhshDoG+5GzYzCA+uSIpOZzAXkGW4AdOELLpQhfgnRz0jRqMFB79wSqxgBMw35yiuBUDjdtL5bAqXOyhjqJQBFUhhkQo9VtgFNLZsJYgUvQiKwBqFpFIMoGKECUB0DRqB6NmtCoDY060agXjaIhKgDgaM/baDSWRpNo2pih1lUAVchyF4jyAb4QFQPiICoD7IaoEpAFUQ0a3UCjZjS+LdRjVagOleNDoxjgKkTDgLcQJQOfAFHAFw5AHqoRRu00I2DHAAMQib/vEGmGn76ImmSpDmQleUaQsGSyOmBgTwyMxGONgHAyhkjC4wKAaCIpzCUCjcECVpG4QBMKtHADIilYwBwbEBkcjA7AY3/yzIjh7jgy7heeCZmMDQ/Ax7riKH9lk9CB2HA0KeynyBVNCsZSLCEHjaU2/mcdSxwe644lkXFEwp9CMyIhCBccSUJT/io2x5IxJFzEr0LI7ggcnlbDGYtHx9CeyH9WdiRBo4Oh/K3RiFgSLjjkr6LwCDQh9qfAOZJAwYVjaXwKLgCHx1FWSU1jIRKIxUBS6oxgA11w27FAEI6AxrsRfuM6U/BWWIrZMhMy2WNlrmjildKmkUFBWNLfZdAoB4djCZRfpZGrWqLXprFXtWRJJIWjKfRVYw2VAFxiyRRsuOpy51SXpwfycQCBEojHq0LX8iKjPTqSsEFYCiZElc6D3CEWHb6s5IcubBAei6FOxV8MAgLoN1UMhUhaqWGOQwcTiGQKDkP+3SAbAgVLIka4YElROAz2DzF9BUD9XJHTlzdkP7QhoCzdTIi7YsePEfwxGIBDQChkLnVWfhajG2sRs7zNhkXWVhmqtWwukZ7uVLCcKgYQSBiMhQEJ7VroYc0aapaLSuCszIwSjOzsEowsLBe2+7qLaL7aC0cAcCZmFoCBlZmHnYedC2BmZYbk0B8PRJgBuAS1CgtsGdUlqU7VFS7oQUJHbCYSLGIwWNqydw0hEaPJMKgcHczZYQDTcvcARprLWAcDpC1IOAzSGxcejoX6RkD+WODIGxVIpDqorgEACjBAFtQKUNfGoLRUNAKweiqaWD1tFbR6YKCKlo6OFlY3UFcjCEWFfBjAjIJQEfoAgD0MEFfdbOH6Y4MrLy8WQwg5dVTVIaO5+H8IzXHkCDw6djOU5afWQv6QIGml6eOacyzx4zI2Ql4YcmdQzODJ9ivu/xZqAM4u5i7Htt4yGGn6bJl0W2pqhNdkP7X7Zvq+bmTIIl8zaCWhyUhbNIWMjiJGEnCBOLIvmRhJwmB9SdgIItmXPmy+xIBQX8hvYNFk7DJLNSIwABiU/9nYd+ozEvhrei+/OrfVjEgyx+Pt0TgC3QljsbQds5yW5CA1v3fl/6EEo3VemB5F/8Knzh34Fz41UWNHT2MAUF4VPyszaELUHULWrRC1AJyhJxso0t4M5W0gakmPuoGriKnF1RHTyn3jco6Kqb+FxYA5rZQ7tBZJkB4cFANiIZ0EIAgg0uSytFqukBQNccmQHA1QoHJEKEdPtYgMaqAH2USBSuEgfvBfNIXQyoA/PppAAHUMoIiAOh5mUJlw6IOFylMA8rLmtatkEbT2Y6HeomnlVpI2FK3AfrRnDl2Qw6PZEfGLnZ5QnkST0rWDkO/5Wc8dukiQ5Gd5FBSxgD8uajvsUHkbmn3UsgTIDvwqa1brVwUCIRl9IwQB0lA9O0gSTKtB7U0E1A+qhcFACEA9t1jQchhou3hDd/o4kCBK7THyLzWQQAV0IQF1yDJ1KA6jJkXaWP1shz5jgVA+nDa3YT9GFQCMaH1xWNaIW+7LylgQ/rFPqrQxd4RkRIgbCVlO+WVefh9rTdpY/1r+9xH/fbx1aXVMaDqofQiA2o6F+vxP9f5XE5J+luHR+9825P+n/41Ee8cBhwNgshKWiVUxxTrlCyeMGV6UrOQOsZzhMBiKG+RkYvVPsYZhGRBw6AAE+jKxKTHBELBkHTgMUbQZtAOFVnG4QVbohFSEKIEnAiDqt7oIZOXOV1LbCzXTOngz2pTjTG7t/IKfEa2Rv30uxMXOHnAkFyXLeoDJjEQwGeFRxACHweE81vOHz/m7Ze/XLutI39uTLUjVuWwpjAOyJw7FDrIyMbghmPjgVqYoMVCEmmHh4LWC4l4oMEXaowmYECwUkpJQPCAXVcjMweyCxgcRSYEoUVCYymHjWAOFqcRAItLMBGmHC8dRsIEoaVCKKmPgEDYxMUGaYUkUXBAOA+lEroSyoKQQpzoK1FLXAmnJG8rqotQ1oD8tPS09b9D9V+OEQUFaa3zcLtToO5j4oy0VUInWFp/sisQxMgAPxYlmUIyMdMEFU+N9pDORSEE6a2qDyfC1q8cBGluGZDg3NI9wNngydMje/zabdy1ClqK6JCgDP5TeWKO9p8rqscxBJaPnO4dQRU7Eqt0Hh53Tzw/lDjxMxcjuTV+a4j28YeflxvSrVxkT1h8Lwz46xYGru2Kjlz8dTqh8XbRr/bN8TiXHUVufhqZA7dL4TYYV286gG8gNBuwcU/0aHiPNmjrDR8T8FqR4DZMZot583xjUnY3CzYU3aFZd3x7z/JDjTODtShXEmZuhY6/UysqeE56+W3omfca45eIkZ2FbX2HeVNuAVAVHVMN6ZHHPpYXEt7DuqfFkhZyI/UuXBR4sdnFrl6g6qGdRLMOstPiiGTUcMKpNKoMt2DJEmHDvtrl7LDPhe/N46qr7jZRfVwrXtjHDIoMHwkcxGEntBNze5koLI4L31sxin7vHwRTwHUODcRsnt25ncLlL2lwTiJ0j3n4rUbeLgjOquhWyoe5NsEZ+I8urREZr48nZ5EDL8s/kWqacGTz2RIubj3iBh+jtGMsdEZXZYslCVamjjR1cSeLGPYJCCvO+BcJKYxafp64+CXaQ38I4mWW3/W3bp4fzc51G6pZ8SO10xNiFSmbLAs7D+qxBeZ6+CicvcpwGdQ0eWmpr7Si4NHnzyTe2qLl4RjHjO4e0Rp9s7zqfANRUZFW2JsAKeOoE5+8RhJ8TAxZPO5Y1xTUdF9i4iOSIbF/rzZcjkgWMij65kTI9fGBi66cROLQJYSeTYbxgMoyLtowlZBDQ6kvkL1rDJmOUO808MXRWYSr5VMJDsPQcKEEtwIUQRPCrjx/KX9LKtVaTNzaNQGof9BXa84a2aSS4YbAlBALakykgNzXPR80zggzQDeSjMuQQHCAbEwvkChgZmRkYQDEqE4ngB3lBJiYE9AiALExMwUkckKsAzahCKYQBqA/qFmkXaaaoh1AoEfpqahgSXhVD24oYNPVBDdp7q7beys5ThcqBmiutwWAIeXAdKLuSB2Epwsv6iBhyxC8Kf/MfDMkwGMDbUjy1j5J/1LwJZ3n+jCwbR2l6cJN+UotF+k5n5vL9Upul9+idDNuigkxp4Wmqid3g0nnue695M1OfLyb4sbFgqnkKSbFHXeAz764b3wb91hgHz5quJ7XKDMF1Re2QQ/2wL52WDutKdgRdc9Ju3At3vT3v+R0PTC4ePa2aU8zhoiBF7BU57VD4pYp1zC+5bd/ZxLKrSdbOu1HP1CcEXp+2M8TrkR+z79FDvtojGjJYZq1b0aUtF319v4hga5pd0E41zP2j73AvqwzK/Y53iPvU9H5Uozxoip99uuv4mtyA/BoLvmcJz62+v7zpfOINk9vo8YwZ/QCnKxOy3AqPPRN3v7aI8+6FXO4uMJkhjO5yuSzeXGbYpXFzD9b6zZKF0+8O1w6FBCWpzoqdT8gKTwxA46nuie6bIO+pgnTWRvGBa+iOju1niRUmw2om1YOiNFGQE/3hQTVWZ/8Pt/ZPfjOH+R35TtC3Cf47cQZfOFmmz1mwKyefs24b9zGo2dVkckiDv5SYMKp4r602Lay1cW9XW/0S/30nfumJTS/EvNt6Uift9QWY3gcGsR9KvGM+QM7e/LFsb4JDDIalndcx3DRIzf5irLy9s2i6aOIFkSSu+FvpVwLtpMXNQp4aGqS31gc9ycq/gGJqbR4KV2c6Lfnt4njlyaaW5mSM48MPwntfvuaO/TxWIqXYHaEa9/bK4cvhLkPWOzJ4mHWXguqj0fGvxjIMKs+Vzn7M2cTLHL6QUb/3wcMidHS7J6X2sYz+Fz/9OyX9x1kH/MxVsqaTOj0OzcVfcURgNF+GHRZuDtOu13tdJat94cNUozifx+HGgfqvQ3sukEuatCotZl4d1y4muqZPk9wJqmmtTqbmAtmTJ1t1c49t3uzNbvWRSdsmGryyTWfk9IQ0S+T8G7TgxugnfQeP7GbDP4bbU67xv1/Q+75rZgt/MaKWfXRxMnOQwF7P0oAOYg2tY9LH5npd+6C10PFMfr/omtSIJLby/EiJQv0URqCwP7FH7ttzxsL1XnZRej5j304V9+7i7lp6Ca75tueBhvXnO+GB/MrbPR0e2bLYtOYEimK4Yg0/N2Tc8awuMLWIJXClivi61mEbWzKOPecb5SQ2qT4PJnTsW3N+N386IBKxK/bgkYOPRde36EiqM/fyYwzk7c7S/SYGRP/m85j+9Hk/fWYNnvHkYb6hkrdDT8V7bn9IaA92KfrF5/61wO9uCFp9u+Tev+tayHHuLLyGKDqIe+P7cPfA8+oSh3dWMT3YoxU+5QapO+DpXYQLguQ3W6+5Hn1Cab7eObTmYLWMsOGLQZJ57rmcLdfiDuTFCJrxuXs0lDRsOB/93JhUdXL8mJZRHYt08dtbZjqx6s3n3xYo210xU8g7AD6qkn41LDHXy6wR5QqsVbxoj1SNCHk24jK/y/fR8Zklcw7zoJnu4auWgGg4/JKc3/5ilNMLV0tx+/683ClRcYTvaYGpmFexi379RpV2bgv5AhXEwdPfX0aAozcnTS3f3zjMuHduJyZu48NtSTuAd0druGI0b8p9P8t2Ahn2YgNfJm/GkImo9XZyUTTudqNvQnK75KKnmLxSOb56S/g1xu64C+OJi3I6i/BjIVWmfjcnP997/sExslsbV/AmDvGSwIRrHGBjtfZKHY/j998eWIkzmzp4225C+AV+ykUlI29wywzJ6IFr+9XgiVJuO4ulRxdBGWa7TJ6WlNy+PO9zeR7ipfcuC+x1uaTMyP36VqFInbDmE7vjl95/kTorm4OIKWe4PJk08mzrjn2birMocmUNRrbtyu5Xb7dP6Q75HvoQ+6Vg9yWKChqGjI/vmnFg9tq6T8XMedySI3vwc5BVbPQTVx+palmduxbem4vMrdt7a/NaBXazzvbY2FzDNr0R3UYoKp9OfmdhhO+BP2UL3sXo3VHKAyYziUKRL3w58g2QCOdwhhVuyIoVQO6VFmf73RH/u4JLelCroa7+0yVrQ9kfQa3rv9quEqhAb3ftf9Uu5MWdoQaSYSV/uGZYJuSaYenwZFgScEzpuMuc1sYD/kxmodcefE6YbXdxEW6//wgfP+/JnCMUi9VgXyMJWFrizWKM2+G1h/ocy903Cy+1z9V3y+btiRV591WbAePGBQtIHBa+J3FAUSh0JzqneM+FPaWznz4dDhWUvYFR62qZH4ga4Fk3hIpx1u95dmzqyzs/wwSV8FopmbhPbt0BstOkpfMf0qHF7b9N+2mBRlW19BO5VAe+fqM3shZ93I9yI/JEDhcwXFyofIvpHI55Prhx86E9fV2VPViPE/EflRbl08xfJ9+rZMjzh3GKP1mwznozV4Ub9K5gJgssSkbf2aIVEql32uP4vj5TxroFuSFZTWf4XqfOgyKVg/rbLjBPHWiVjFaer3p+wrigJWRcj7jPCHe/Xaoa9jX3sr2LEc+Zz96v267feFNs31o6aEfADM8UfH11s+/JUry/OYvp8xYt5oR+6SKf8RPxHiILBw1PumwIOxRcsVDS/z3DBn/a6s5sMWAX5Vv8LN4qvVE3o6JVasnf8ku88dsXlvVeRJ+VkDIQmhH/X9zbX2PGn+6RW/EuMlW+aYJoXaPkelqhUqi0k+OPkJL3h3tlAZmgG+QN/wdRpS09qjQHTUHjIqMigxT9VVElmb4GaUHl8nqkL0fqalxejNQ9AG0BWnQZtyq6JILhoOWP6BK+Si/lv6U3QgcDyqyKUoVWR6mrFP0NHZiWkgejMdqEuGIB5DG+JcTi0Uhz9E33nG1dBzfuKR43Nq5r73lFWthzJ1DP4Nt+26JnqTXHG4GTTK3s/mxKbzm2kWDcln56pw43yJAQYhzK2/PjZ6SrlE/nlF79+FqhiKdeMd/h4VuUv5Vrtyg+tMhE+nA1Y/kwmSv+5kyh4MfeHXUJOT0K+U7NV1+gKr2PP3oZwCYyg7zb+zq6LuN9Yn6/2CmvT/p8vl7nd5lv/VIrun0ndvBB7XOwea0d46GvrR4x3cM9zuS9zrtLLjE1PJLbp6sZbiamV7F599sb6XnTH9btw44ExRXsVuU0XOdtgLh9pVvjwsRng+06rze+nDSs2OB6BaFcZYy6gb9vV7i37Ezu0YiiqsgmCllHWp8odkjhbnX6ndPyzZs3j15rfrSfd9+WTeuOZX12DsZ/Hwsou8fcd0sh4cWzC5FmEUNNOnVgUbJJt2XpWHYD7yTL+B79pGMbzqu9EH58av/CARuFrrP1uferde5vlZs6OjPHd7zhcY/N6F0C6OgYuHP0etiYE/8OOELC8bzaWeHH6LrbmQPmmdqXXuqErbnnrqw114rDz/u/de0vVNTKlop+1OJu4NUbMv5SGNCMs3u+Y+u9WcbxuU1K1xGDvXNjJemN4bvsrm7il9+ol0yKv2C7rjq0f/ppYa9SLzbiW05xdQjH5gS1J/J9tRfDElP7xCF08ILQwYSODpywCfFDxgMLqsZ+O6wo//4YXRfUVv/PYnSfVYBgaoESAYXoinlWNU2IUiGjUShQja5efpXIFReOJVPQ4RHLaKCCdLE20dDVhB6sNP8xZP8AHwJl5l6JDeZTGs5G7tpaYeV8G62P2aEnExtOmUe9pvCK5M7dXx/gU8Ocvn7S4+QtrfcNmrerbnKMJwaFd8lvuq58+WLEDKkm40uet19UTYt5+Q4T2QOZl1odlrRNzpSpLMRsNktbPCwi1DeJenAlfQMh9Fbah8kjs88/ChfZ5olzpZatG0zrKBrJGyr8VGC30c9nonGqG/vAgt3VsM7VhXlfHqHJNS+9HHVow8z2nfNcni+TQgdr8ZLYZMXH0rezF01zN0yz1yUkWB7lSjXcjh3vcq9Qvfrd0/D8njmXPHsfynuSbQlnso4Ix8MzY97Xp7if5F3c+MlBa7qA+5EOn3OfnOb73KmvwWMszZk225ey6h5/URB4+o3TryfVTJJyK0L+XGLcVcVjl3cPclUROS+enw13X0yXYDWS5Qped3u+nrMou7Y++17cm+DF0571j3tNeK+7LRAOtl6us2OxLXxsykQUE36iPRZYc3/hM+OboaCHXIzSVXVrmGREXn9n1DQfY6k5bhO8Zl/ySLV3SlnQggYDbCBP7ts2wmiBH9zO3+ABPBO2QJo8NF3GO2DKaz9RsW4kGl7F5cHB2oUuXJc2315v3x/4weLEpesbXU/2RsFz8KH776z1neVADCvM2daKP9Kh7O6TCDqjSc6U3LljS26PoUjtkbEMx4PhZz1S4nl0JMJE+V+u4JIChEty/xKu/ISmMcE23Nvhux4WehqlH4ybH968is3958jdaBUwUPeE6iqHvnaVQ1dXDaYtcjK0yGnoQIK2H0kb1KajlBoIxWVFCkXrU+RWodRfqqiQ6IBkRYc+Y9AINFiGPk1QfaVxOExwHVUPGVIUHR39hyLqt6o4CpEUq/Y3cEkYSuvzCFYy3ZpUxsp+6dZleWH3HruWfjHmiLbv7KzVgL6/hpRem2CYiLGNHIvk62Nfeko5MyVzZ1JKhAZMWhwGr5zpnLwmk9G2Z9FWQPabsPmE1I3Sqof1DyZuuGMlribMDiS3XziBfnTe0vroEXjwdsGcTf0BbQ8b4Pc0rS3cXkyMbjqxhf89iWdbVEQ3d+7HMR2P7IPCZ5/vz9MV8bxRURxfQhBYN3buW4Li27fWgTi17vxi0uwXWVuK905SilYD3ENqX8H85Sq7gbkBF7tdC7x1jTZuDpHHq4ib2lVDL95Ju8kLbq5nIZ/YUtyTd390p22u8j3BMOHO1146KazKQxY99Z2E5MhTz/ZLXvBRS1M13Dk9cxBkLLgft6OoteqsE9OHNbclwFYnd/93O3IM1w4/YZN1WX8kcc5673rl2CGDkWOSw5W7k/caXdv0WXoxgOe9BDg/e2/Mev2OfZGmCWF3P54Ky5FCeGqy7X2f7Pi6K668402zdaWSW9/+C3JILjGnoseYyl1jeBJ6U8ec2a02j9bjjQa1+2oviqOmrk7x9/Ib45ESN1TesbftD89o3PbeWXrRaPbECT3Rmqpute3Iuk9VlRJDKvzH53JDJdoM7nzsE29xsS+18tqRc8vM5JvckDJPfNI3zuyynTPnWT/3+pOMHXOQj83Mm+eKct4ivRpj2kpDK9ceg8AlBAIXx+WjB8w6y/BG+pWyYhF7DnGPJoXVS4Ydwpd/q8ennj/UoaWtDepoorR0qXCjAWqBustZEPP3xjn+bFwP1KG/wQetfuwGpKuLCTKISELauyBNIikhWAIFh6GeR0wCo9AEDDZwGXb+4Thyo+M5Q6OY45wi57uCUul++TKJz4nneSkyi1vUbor65dYjRUQct0bJrNNqk57Injpfot+alXRMeop9femwUOCGZ4cfu6sZPPX8Fl51TS0rRsbm2tfrmRF8j8Nerkvzjoqz/jJYenqKXfSjnCt3YqEMLy9fV+0X+LAS55KxEWBqNiA6ZfcptWKm0OAh09shTPe4nc8LP8/sRyOn9OQrmbdEyYDz8wlHOVux4WJPKBb6lrUlgpEDJTcUI3Y0Rl3pE6u55Fcwm5pzv7J86PzJusME41PHeNKiBDdrFs8XTg+Kuna1y3pkR1XfuD1x8mRu5FCbfBic8Z3txfOvnJViYBmKKGW7d4wjxBPcu9ephuDn7tqL7BC+vhQqWnG3+WTk19F24fp7L9RMjJHiD9LYhTpq083uDoUddppe02x65avTzDMA3swiLM+4/tbzDX7RCpIij00Ug3aecyb7mp7KerS/9WSlzn0yLFtWxNSsKzvTNv7F3fArYpvjvlWyr7W1SbSJEFNxGND0N7q64vYLoRnJ/9XtMyfSTqQSctT86tMDyyrX7xMW9ymCwnKdU7F9avrWRePuTW0LoB3dw1qAZqAJEyvtS60idZjk/9DNcvzAHjgIgElZq2AjaReYlAjqrQIOldUngd+UYtBqwWQKGY1Bk0PQ0DYJ1gTNVh1GdJarQueHSBL2z8oYLInyuwIIUCi/IN1fodCEjlT60N7TLtIsUk8B/3Ok+tNIGmj96jhoWKMaZpSZUFvr3zd9fPfznMaXWzlbZJ2GRZkq3RB30densNtq2BeyZT2A269nOa4I5+xUEwn11zjd/JDFzR3ROLwoeXmEJ8p1wxlf6S2KWvaWd0/bXUIY+/sr9z+aPT5wR52HI6b2snsrs23ElTLuM6Qr+++OT163C+ubO1pMMRotb4/dERVtvfBg+APn9dGbh14xc/CpbQxL0Op7cmGSuMPz2vRGDpF6+EkbuwLEzQ/njpS9sg+Vu6QpGBDUHnMFR67cSirR8pRcN96izl/Ju338U25YAqlqrEyPRQOmbYSWjV9zfI1k1FrXYePLqikcUYW47lvihiXsGWkIBteBUTGhRWWlwr4en7W684HGKZ1CCYMVJy62HDIpJ64L/cQtX2t8MEttc2OU4xV7mb4Eh7DDCmX4tw9Bo4rDUjcclfRa67/ar5ftWojqbf52+FOFK9uTKM8ug8Ix0Xeyt75rT6t5PTp0c+Kuv7OkuKUcy1J83+Ea/pzylHRmVdd9ZDsdAV1H99RphxrxzI5ivBr7/GVxosrVysbxEJkP77PX82PuVn0KTldOesTPKwzbuHt7zYSV/8YQz7yOTTeK8wQYb1QPlEw9LXPbcWW3mH325QOb9pj3JRlWnpRz21oa1qmNB74tkQa8J5Y6ikxyRY1D9xwUPxuJKb/rrXE+WyO+fj83uTl1/qw+WSoO2U+CsAa6EM+WsYY94O0UqufDOe4Jr+33DV+W/n6W+fe8bqKDjDqo8/ObWy0oq73ykitqdavOKAnaiwcECwe/LQQYJFzYzWqkPToMG0gk3KxGo2RAaToGif7ykzakLZEA4RyEMAQieaUQw39V6B+POxl+l1/uI3d+cG0waxJZ0NE+UtZN9irPajg7aVbWz2pyY3jhlMpMg55t1YvJuRzF4PwD/Vlrh04biEhNVHqJna2+rbQzq7zD5zp84gXfWWOUhHZwhPrI184xi8wdQGnihSbuZ0hr3YSgmyfENxp+X5uOv1PF2fv15vywtLi4fwjMqpRLeGmdMpxN6tyH5hRY6NAI8XTGwmCLHe7CtuCYkr0fDqzj7/vwevfHF6LAEYHR5maxNO/E1w85uTxgGhyeF6Sev2gpNyEsHX/ZODJI1Lp/samXDz5rUZRmW85pLonZdaRPyL68n5z1keU9d3SAV8cNJdudiq9Eg/lHv+7unhEcwElNBh8L6Lee5HVrPkNhLMo0F97sS1mUf6K2nXLkmvgjt7dLs5KfDAZ3YqMe79GzkU3q4MveF+w/lcGwz3mW0Ly/X/gQC0z6rV0xi2tt9rWsuImn6fXAtL9/KxmTlZZp1+R2PPR5E7OtkHH7opKgC/GT5ob7lDbT9nC2a7als8rFqs3S+k41/cZuQz3bvOZaPDImREwDGZqqorhfJDpJjV2/Y61x1xp/BKuDUuRbqL1erPWQWKU4smRTYoGtP1Kuobju6tabZoYnbEVttD5L549UWSmUatp/HZI4Dv+ybTFz85nPhppNp04sHGuqjbnNP+TcMdEyH1ieRjQf5O5jieyOJSXD77cMruBeAYR7R3/x4H99z/YT8PY+E71dYb/7GvHaNeRQ7UnKwifbW3/g5q+Q9dcXcGvoP+lI+WoK4RhUC8EDbqLDJgSaoBYTBw0261EwOIwBDsr9fN0FIafQCnKufmdm5uiy6hWeDR1yTEHomFNkUKSfovvffIVnZgJtbxr0xK4C3HAwDDRfhZm6/80XeCtaKf+z13dQwCj2vm7Qaz7K4ehN0+KWojzM1EOFyOYQ4kTay9wThLUZFWcJuvvX1EmxrQeD/Y6eNksuHAyvjjM4/Py60bjA03kJqfdilw26mxRK70oShxGVqTerOgLU17a2NIo8uqut3jBd2zUWY74tHP+4Sykz8yTCysdxWl+7Ts4sYLatU8w1gBMpkOW/XjIz6DvANorejHSLvcJ0o+xuhfG8dEjohsshHhu/RM4EL70Sc/xaOFW800SIBa4qEpaynxNzE6kclsF49+IDzg2ZlhZM82fCeB54AO+COTfIdmpNd+4/kebfF9Xbftf10IeSp+GqMtVXP09XjeqVzPY7DN6vuHhZ1/6A5n5f7G2RscoZYAnhuSXnQFxu9IlOLn7L6ggfsuo5vvYpx55jgWPs8gt8OMv345e487eUTW2MutDr4gXjOu4Y+gk3GaffyzEnYqvOf+iOWJHkxf59zzjhd/Lni/SdH37XENgrAygCsmMVno/tyj/iio2eBh0amD0w1qXI9nqRY5zwvsTJaEc9KpkpCUKenXAYDAz594DK37Fs1Q+ginaAPKt+LMWBou4ykR9rhZUBxbH611Wg+KocO4oLXC0VgA5WPyoiUGsRSNV2h2Jg8WWU/BnWEStjeZbPMnstiOTUjXtnQ9XTSnyif8MVRDIcsLjHGBnlOOsjpO+uqamhOleMfjje9P5b1mfeirIXkiUHq6N2il1qhrViWLc4SJFP3XJdfyv11qOqj97nC65oaImeOFjQOlKGZjz38omEjGxStH/dEAgFUfXx70yaPD7iX4dn1B44e6rODWdjubHbS+3IcIZmq9t94Aj/5NVR/SsXgl7zKCDMzonIbVtkO6+CCDuPuBjfEcC35Z7eycfHzzgLnZp4jNq30YJhWCfmxseeS/5+2y43RtfYuB8p6KzqGH9zTNxuN5/8s4Fq0bixQ6p33j8KQAhPXc7Ysz0TZC4reaR2Vynq6okh/RNEMcaY93Xqd65N4jIv6jSEuqU2nPJ/koApaFd2SnZ5v+GFp3PXAeGvriMi8c045eyvDAL31Bz56q6pCcaPAjbe1RZ3lQcSKt5kP3tSL5B/pcFCVfl6zR25KKyjwEZexRfV516FqZ5bU5paf0bl486OtPPCzhfUjZ2k9T/frraXWTD6eknx86bpEMMXFj49/FdKPtwyLWtXa2hTXIh+c8GpMKFTfesFyTaTBwPRTd8dnbmZN5/rljg07/+tqUweKedlNCr6gPXaYXXnN/cfXnjXrSD0xkGh+Qye60qdoEfa8Ab5WmBLUvlZD9Bhq97weK8HPr+isUAdeSrdBb/I3Y0yfzQm+LVR2ZT3ya5ro4WtaW7X6kc3+m0hOQucjNm24H9DTac4mQEPJjOE/FxJTKhkBi+I5UbdJ8R/60H/L68Z2Fdtl6JkmCEovHpzsP/8jSIM2hs/JIwobih8o/5foBZKW0tbU8MbVPop1URJguK/aC7+7W3G7xvJwdnmEoXVwzNdJVWmcO2l+7Lu42965mcCMv0MLYtnTkeASaVM7Cs1eOAcqKRsMOkgmHQATNqH4EcxcAmFlnqpnlHeV/1OPW/+vKffA5AMbi31+789mr92E5EMS0RXWbNZttifOXPJRHxXmzqTjqW7VVL3Tu/7PjHpYZ0DXZOcZHv7YLgsM6fijbX7qy/VZwqy4eScSjlSyGoah8VHtn2Ic0G4Oyd3OJmBFgrufLlmI+nrOzU95aJm/QTTt0ZoFx1Y2P1QOHrK8d50eJbgDUGhV69RuuXcfftODsoBjW1nij5uxBXhzbzsMx9cPbXHpcPrZcJcS+To3eHGko7bD9SMI6tnRYCaqNN6tz4bFVpws6ptDVxwuo/V6cpt7Ct7x54l9IKxOsfnA6OTbw7rwNdFn4iOfMb6fqM5DkPrby4EVQk770cyivlpqmx6mk1bGOyTOvZQZB1RMInMc5wfT3De7i19pyzzLoF8cXD6zJBE3a4y1Ni8aYv21hBs9bYNjV4bojROtb1fjHpLdKu4Yy363eWxbXPinaceWCFSoLJ9dJjMsObeEQ5Og9besUBitv3rFF/2ExY1dUdH5vOrrqfuzd90Zp9qUpbhyM78Uxj0G0E/me8knUsFXU8su7A8skV+yT7Lv7v9Dw== -'@ - $DeflatedStream = New-Object IO.Compression.DeflateStream([IO.MemoryStream][Convert]::FromBase64String($EncodedCompressedFile), [IO.Compression.CompressionMode]::Decompress) - $UncompressedFileBytes = New-Object Byte[](15736) - $DeflatedStream.Read($UncompressedFileBytes, 0, 15736) | Out-Null - $Xpress = [Reflection.Assembly]::Load($UncompressedFileBytes) - } - catch - { - if (!!$Error[0]) - { - Show-ErrorMessage -ErrorMessage "$($Error[0].Exception.InnerException.Message)`nExiting.." - Exit - } - else - { - Show-ErrorMessage -ErrorMessage "XpressStream.Xpress2 can not be loaded`nExiting.." - Exit - } - } - + $handle = [System.Diagnostics.Process]::GetCurrentProcess().MainWindowHandle function Get-DPI { [OutputType([single])] @@ -168,11 +120,13 @@ namespace SAPIEN $PrefetchBrowser_Load = { $splitcontainer1.AutoScroll = $true - if ((Get-DPI $PrefetchBrowser.Handle) -gt 96) + $dpi = Get-DPI $PrefetchBrowser.Handle + $Status.Text = "Dpi: $($dpi)" + if ($dpi -gt 96) { $treeview1.ImageList = $imagelist1 # HighDPI (24*24) $menustrip1.ImageScalingSize = New-Object System.Drawing.Size (24, 24) - # $richtextbox1.Font = New-Object Drawing.Font($oldFont.FontFamily, 8, [Drawing.FontStyle]::Regular) + $Statusbar.ImageScalingSize = New-Object System.Drawing.Size (24, 24) for ($i = 1; $i -lt 4; $i++) { (Get-Variable contextmenustrip$i -ValueOnly).ImageScalingSize = New-Object System.Drawing.Size (24, 24) @@ -182,7 +136,7 @@ namespace SAPIEN { $treeview1.ImageList = $imagelist2 # Regular (16 * 16) $menustrip1.ImageScalingSize = New-Object System.Drawing.Size (16, 16) - # $richtextbox1.Font = New-Object Drawing.Font($oldFont.FontFamily, 8, [Drawing.FontStyle]::Regular) + $Statusbar.ImageScalingSize = New-Object System.Drawing.Size (16, 16) for ($i = 1; $i -lt 4; $i++) { (Get-Variable contextmenustrip$i -ValueOnly).ImageScalingSize = New-Object System.Drawing.Size (16, 16) @@ -194,6 +148,33 @@ namespace SAPIEN $script:IsAdmin = $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator) } + # XpressStream - Compiled & Digitally signed + # XpressStream Source: https://github.com/EricZimmerman/Prefetch/blob/master/Prefetch/XpressStream/Xpress2.cs + try { !![System.Reflection.Assembly]::GetAssembly('Xpress, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null') } + catch [System.Management.Automation.MethodException] + { + $EncodedCompressedFile = @' +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 +'@ + $DeflatedStream = New-Object IO.Compression.DeflateStream([IO.MemoryStream][Convert]::FromBase64String($EncodedCompressedFile), [IO.Compression.CompressionMode]::Decompress) + $UncompressedFileBytes = New-Object Byte[](15736) + $DeflatedStream.Read($UncompressedFileBytes, 0, 15736) | Out-Null + $Xpress = [Reflection.Assembly]::Load($UncompressedFileBytes) + } + catch + { + if (!!$Error[0]) + { + Show-ErrorMessage -ErrorMessage "$($Error[0].Exception.InnerException.Message)`nExiting.." + Exit + } + else + { + Show-ErrorMessage -ErrorMessage "XpressStream.Xpress2 can not be loaded`nExiting.." + Exit + } + } + #region Control Helper Functions function Show-NotifyIcon { @@ -244,9 +225,6 @@ namespace SAPIEN $NotifyIcon.ShowBalloonTip($Timeout, $BalloonTipTitle, $BalloonTipText, $BalloonTipIcon) } - - - function Get-CheckedNode { <# @@ -287,7 +265,6 @@ namespace SAPIEN } } - #endregion function Show-ErrorMessage { @@ -339,9 +316,9 @@ namespace SAPIEN { [PSCustomObject][Ordered]@{ FileName = $file - CreationTimeUtc = [system.IO.File]::GetCreationTimeUtc($file).ToString("dd/MM/yyyy HH:mm:ss.fffffff") - LastAccessTimeUtc = [system.IO.File]::GetLastAccessTimeUtc($file).ToString("dd/MM/yyyy HH:mm:ss.fffffff") - LastWriteTimeUtc = [system.IO.File]::GetLastWriteTimeUtc($file).ToString("dd/MM/yyyy HH:mm:ss.fffffff") + CreationTimeUtc = [system.IO.File]::GetCreationTimeUtc($file).ToString("dd-MMM-yyyy HH:mm:ss.fffffff") + LastAccessTimeUtc = [system.IO.File]::GetLastAccessTimeUtc($file).ToString("dd-MMM-yyyy HH:mm:ss.fffffff") + LastWriteTimeUtc = [system.IO.File]::GetLastWriteTimeUtc($file).ToString("dd-MMM-yyyy HH:mm:ss.fffffff") Attributes = [system.IO.File]::GetAttributes($file) Size = [System.IO.FileInfo]::new($file).Length } @@ -353,9 +330,9 @@ namespace SAPIEN { [PSCustomObject][Ordered]@{ FileName = "$($file):$($_.Stream)" - CreationTimeUtc = [system.IO.File]::GetCreationTimeUtc($file).ToString("dd/MM/yyyy HH:mm:ss.fffffff") - LastAccessTimeUtc = [system.IO.File]::GetLastAccessTimeUtc($file).ToString("dd/MM/yyyy HH:mm:ss.fffffff") - LastWriteTimeUtc = [system.IO.File]::GetLastWriteTimeUtc($file).ToString("dd/MM/yyyy HH:mm:ss.fffffff") + CreationTimeUtc = [system.IO.File]::GetCreationTimeUtc($file).ToString("dd-MMM-yyyy HH:mm:ss.fffffff") + LastAccessTimeUtc = [system.IO.File]::GetLastAccessTimeUtc($file).ToString("dd-MMM-yyyy HH:mm:ss.fffffff") + LastWriteTimeUtc = [system.IO.File]::GetLastWriteTimeUtc($file).ToString("dd-MMM-yyyy HH:mm:ss.fffffff") Attributes = [system.IO.File]::GetAttributes($file) Size = $_.Length } @@ -408,42 +385,6 @@ namespace SAPIEN } - $OpenFolder_Click={ - $folderbrowserdialog1.SelectedPath = "$($env:SystemRoot)"+"\Prefetch" - if ($folderbrowserdialog1.ShowDialog() -eq 'OK') - { - $treeview1.Nodes.Clear() - $treeview2.Nodes.Clear() - [System.GC]::Collect() - $SaveNodesToCSV.Enabled = $false - $ExportSingleUncompressed.Enabled = $false - $script:rawdata = $null - $script:PrefetchFile = $null - - if ((Check-Permissions -Folder $folderbrowserdialog1.SelectedPath) -eq $false) - { - Show-WarningMessage -WarningMessage "You need to restart 'Prefetch Browser' as an 'Administrator' to read: $($folderbrowserdialog1.SelectedPath) " - return - } - <# - do - { - $PrefetchBrowser.Cursor = 'AppStarting' - $Status.Text = "Please wait - Collecting Prefetch files from: $($folderbrowserdialog1.SelectedPath)" - } - while ((#>get-files -Folder $folderbrowserdialog1.SelectedPath<#) -eq $false)#> - $PrefetchBrowser.Cursor = 'Default' - $script:folder = $folderbrowserdialog1.SelectedPath - } - else - { - $PrefetchBrowser.Cursor = 'Default' - $script:folder = $null - $Status.Text = $null - [System.Console]::Beep(500, 150) - } - } - function Add-fileNodes { [CmdletBinding()] @@ -483,7 +424,7 @@ namespace SAPIEN $null = $Root.Nodes["$($fname)"].Nodes.Add("LastAccessTimeUtc", "LastAccessTimeUtc: $($LastAccessTimeUtc)") $null = $Root.Nodes["$($fname)"].Nodes.Add("LastWriteTimeUtc", "LastWriteTimeUtc: $($LastWriteTimeUtc)") $null = $Root.Nodes["$($fname)"].Nodes.Add("Attributes", "Attributes: $($Attributes) ") - $null = $Root.Nodes["$($fname)"].Nodes.Add("Length", "File Size: $($Length)") + $null = $Root.Nodes["$($fname)"].Nodes.Add("Length", "File Size: $($Length.ToString('N0'))") $Root.Nodes["$($fname)"].Nodes["CreationTimeUtc"].ImageIndex = 3 $Root.Nodes["$($fname)"].Nodes["LastAccessTimeUtc"].ImageIndex = 3 $Root.Nodes["$($fname)"].Nodes["LastWriteTimeUtc"].ImageIndex = 3 @@ -501,99 +442,6 @@ namespace SAPIEN } } - $exitToolStripMenuItem_Click={ - $PrefetchBrowser.Close() - - } - $treeview1_BeforeSelect=[System.Windows.Forms.TreeViewCancelEventHandler]{ - #Event Argument: $_ = [System.Windows.Forms.TreeViewCancelEventArgs] - - } - $treeview1_KeyPress = [System.Windows.Forms.KeyPressEventHandler]{ - #Event Argument: $_ = [System.Windows.Forms.KeyPressEventArgs] - If (!!$treeview1.SelectedNode -and $_.KeyChar -eq [char]13) - { - if (!!$treeview1.SelectedNode.Tag) - { - $script:rawdata = $null - do - { - $PrefetchBrowser.Cursor = 'AppStarting' - $Status.Text = "Please wait - Reading $($treeview1.SelectedNode.Tag[0].Filename)" - } - while ((Start-Read -File $treeview1.SelectedNode.Tag) -eq $false) - $PrefetchBrowser.Cursor = 'Default' - $Status.Text = "Ready" - [gc]::Collect() - } - } - } - $treeview1_NodeMouseClick=[System.Windows.Forms.TreeNodeMouseClickEventHandler]{ - #Event Argument: $_ = [System.Windows.Forms.TreeNodeMouseClickEventArgs] - - $status.Text = $_.Node.Text - if ($_.Node.Level -eq 1 -and $_.Button -eq 'Left') - { - $treeview1.Nodes[0].Collapse() - $_.Node.Toggle() - $this.SelectedNode = $_.Node - $treeview1.SelectedNode.LastNode.EnsureVisible() - } - elseif ($_.Button -eq 'Right') - { - $this.SelectedNode = $_.Node - } - - } - $treeview1_NodeMouseDoubleClick = [System.Windows.Forms.TreeNodeMouseClickEventHandler]{ - #Event Argument: $_ = [System.Windows.Forms.TreeNodeMouseClickEventArgs] - if (!!$_.Node.Tag) - { - $tm = [Diagnostics.Stopwatch]::StartNew() - $tm.Start() - $script:rawdata = $null - do - { - $PrefetchBrowser.Cursor = 'AppStarting' - $Status.Text = "Please wait - Reading $($_.Node.Tag[0].Filename)" - } - while (!(Start-Read -File $_.Node.Tag)) - $tm.Stop() - $PrefetchBrowser.Cursor = 'Default' - $Status.Text = "Elapsed: " + $tm.Elapsed.ToString("mm\:ss\.fff") + " - Ready" - [gc]::Collect() - } - else - { - $PrefetchBrowser.Cursor = 'Default' - [System.Console]::Beep(500, 150) - } - } - - $Properties_Click = { - if (!!$treeview1.SelectedNode.Tag) - { - $tm = [Diagnostics.Stopwatch]::StartNew() - $tm.Start() - $script:rawdata = $null - do - { - $PrefetchBrowser.Cursor = 'AppStarting' - $Status.Text = "Please wait - Reading $($treeview1.SelectedNode.Tag[0].Filename)" - } - while (!(Start-Read -File $treeview1.SelectedNode.Tag)) - $tm.Stop() - $PrefetchBrowser.Cursor = 'Default' - $Status.Text = "Elapsed: " + $tm.Elapsed.ToString("mm\:ss\.fff") + " - Ready" - [gc]::Collect() - } - else - { - $PrefetchBrowser.Cursor = 'Default' - [System.Console]::Beep(500, 150) - } - } - function Start-Read { [CmdletBinding()] @@ -665,8 +513,7 @@ namespace SAPIEN } $treeview2.Nodes.Clear() $treeview2.BeginUpdate() - - + $root = $treeview2.Nodes.Add("$($pfname)", "Prefetch: $($pfname)") $root.ToolTipText = "$($file.FileName)" $root.NodeFont = New-Object Drawing.Font($treeview2.Font, [Drawing.FontStyle]::Bold) @@ -677,7 +524,7 @@ namespace SAPIEN $null = $fsinfo.Nodes.Add("LastAccessTimeUtc", "[.pf Info] Last Access Time Utc: $($file.LastAccessTimeUtc)") $null = $fsinfo.Nodes.Add("LastWriteTimeUtc", "[.pf Info] Last Write Time Utc: $($file.LastWriteTimeUtc)") $null = $fsinfo.Nodes.Add("Attributes", "[.pf Info] File Attributes: $($file.Attributes)") - $null = $fsinfo.Nodes.Add("FileSize", "[.pf Info] File Size: $($file.Size)") + $null = $fsinfo.Nodes.Add("FileSize", "[.pf Info] File Size: $($file.Size.ToString('N0'))") try { @@ -696,8 +543,7 @@ namespace SAPIEN $null = $hashNodes.Nodes.Add("SHA256", "[.pf Hash] SHA256: $($sha256)") } catch { return $true } - - + # File Signature $RawSignature = [System.BitConverter]::ToString($data[0 .. 3]) -replace '-', '' $script:PrefetchFile = $pfname @@ -714,7 +560,7 @@ namespace SAPIEN # Total uncompressed data size $TotalUncompressedSize = [Bitconverter]::ToUInt32($data[4 .. 7], 0) - $null = $HeaderC.Nodes.Add("TotalUncompressedSize", "[0x$('0004')] Uncompressed Data size: $($TotalUncompressedSize)") + $null = $HeaderC.Nodes.Add("TotalUncompressedSize", "[0x$('0004')] Uncompressed Data size: $($TotalUncompressedSize.ToString('N0'))") # Compressed Data $Compressed = $data[8 .. (($data.Length) - 1)] @@ -733,7 +579,6 @@ namespace SAPIEN Show-ErrorMessage -ErrorMessage "$($pfname) does not a valid Prefetch File signature: (0x$($Signature))" $data = $null [System.GC]::Collect() - return $true } else { @@ -746,7 +591,6 @@ namespace SAPIEN # https://papers.vx-underground.org/papers/Windows/Analysis%20and%20Internals/Superfetch%20-%20Unknown%20Spy.pdf # https://github.com/MathildeVenault { - # Add Header $HeaderC = $root.Nodes.Add("Header", "Compressed Header") $HeaderC.NodeFont = New-Object Drawing.Font($treeview2.Font, [Drawing.FontStyle]::Bold) @@ -757,7 +601,7 @@ namespace SAPIEN # Total uncompressed data size $TotalUncompressedSize = [Bitconverter]::ToUInt32($data[4 .. 7], 0) - $null = $HeaderC.Nodes.Add("TotalUncompressedSize", "[0x$('0004')] Uncompressed Data size: $($TotalUncompressedSize)") + $null = $HeaderC.Nodes.Add("TotalUncompressedSize", "[0x$('0004')] Uncompressed Data size: $($TotalUncompressedSize.ToString('N0'))") # Unknown (4 bytes) $Unknown = [System.BitConverter]::ToString($data[8 .. 11]) -replace '-', '' @@ -785,7 +629,6 @@ namespace SAPIEN Show-WarningMessage -WarningMessage "$($pfname) dB version #$($formatversion) is not yet supported" $data = $null [System.GC]::Collect() - return $true } else { @@ -797,7 +640,6 @@ namespace SAPIEN Show-WarningMessage -WarningMessage "$($pfname) with signature $($RawSignature) (MEMO) is compressed with LZNT1 and not supported." $data = $null [System.GC]::Collect() - return $true } else # try the uncompressed data { @@ -820,7 +662,6 @@ namespace SAPIEN Show-WarningMessage -WarningMessage "$($pfname) signature $($RawSignature) is not supported." $data = $null [System.GC]::Collect() - return $true } } @@ -914,8 +755,8 @@ namespace SAPIEN # Header Nodes $null = $Header.Nodes.Add("formatversion", "[0x$('0000')] dB Version: $($formatversion)") $Header.Nodes["formatversion"].Forecolor = 'Orange' - $null = $Header.Nodes.Add("dbsize", "[0x$('0004')] dB Size: $($dBsize)") - $null = $Header.Nodes.Add("dBheaderSize", "[0x$('0008')] dB Header Size: $($dBheaderSize)") + $null = $Header.Nodes.Add("dbsize", "[0x$('0004')] dB Size: $($dBsize.ToString('N0'))") + $null = $Header.Nodes.Add("dBheaderSize", "[0x$('0008')] dB Header Size: $($dBheaderSize.ToString('N0'))") $null = $Header.Nodes.Add("dBtype", "[0x$('000C')] dB Type: $($dBtype)") $Header.Nodes["dBtype"].Forecolor = 'Orange' $null = $Header.Nodes.Add("Param0", "[0x$('0010')] Volume Info entry Size: $($param0)") @@ -1038,7 +879,7 @@ namespace SAPIEN $vct = [System.BitConverter]::ToUint64($dedata[($VolumeEntryOffset + 32 - $volcorrect) .. ($VolumeEntryOffset + 32 - $volcorrect + 7)], 0) try { - $Volumecreationtime = [datetime]::FromFileTimeUtc($vct).ToString("dd/MM/yyyy HH:mm:ss.fffffff") + $Volumecreationtime = [datetime]::FromFileTimeUtc($vct).ToString("dd-MMM-yyyy HH:mm:ss.fffffff") } catch { @@ -1217,6 +1058,25 @@ namespace SAPIEN $Status.Text = "Ready" } + <# + .SYNOPSIS + A brief description of the Get-Prefetch function. + + .DESCRIPTION + A detailed description of the Get-Prefetch function. + + .PARAMETER decompressed + A description of the decompressed parameter. + + .PARAMETER signature + A description of the signature parameter. + + .EXAMPLE + PS C:\> Get-Prefetch -decompressed $decompressed -signature $signature + + .NOTES + Additional information about the function. + #> function Get-Prefetch { param @@ -1288,7 +1148,7 @@ namespace SAPIEN # Uncompressed Prefetch File size $Prefetchfilesize = [Bitconverter]::ToUInt32($decompressed[12 .. 15], 0) - $null = $Header.Nodes.Add("Prefetchfilesize", "[0x$('000C')] Prefetch File Size: $($Prefetchfilesize)") + $null = $Header.Nodes.Add("Prefetchfilesize", "[0x$('000C')] Prefetch File Size: $($Prefetchfilesize.ToString('N0'))") # Executable Filename $targetexec = [System.Text.Encoding]::Unicode.GetString($decompressed[16 .. 75]).Trim([char]0) @@ -1305,7 +1165,7 @@ namespace SAPIEN # Flags $HeaderFlags = [System.BitConverter]::ToString($decompressed[83 .. 80]).replace('-', '') - $null = $Header.Nodes.Add("HeaderFlags", "[0x$('0050')] Flags: 0x$($HeaderFlags)") + $null = $Header.Nodes.Add("HeaderFlags", "[0x$('0050')] Flags (Hex): 0x$($HeaderFlags)") # Add Data $TreeData = $root.Nodes.Add("PrefetchData", "Prefetch Data") @@ -1373,7 +1233,7 @@ namespace SAPIEN if ($formatversion -in (17, 23) -and $l -ge 1) { break } $td = [Bitconverter]::ToUInt64($decompressed[($toff + $l * 8) .. ($toff + 7 + $l * 8)], 0) if ($td -eq 0) { break } - $LastRunTimestamp = [datetime]::FromFileTimeUtc($td).ToString("dd/MM/yyyy HH:mm:ss.fffffff") + $LastRunTimestamp = [datetime]::FromFileTimeUtc($td).ToString("dd-MMM-yyyy HH:mm:ss.fffffff") # Add Node $null = $TreeData.Nodes.Add("LastRunTime$($l)", "[0x$(($toff + $l * 8).ToString('X4'))] Last Run Time #$($l): $LastRunTimestamp") $TreeData.Nodes["LastRunTime$($l)"].ForeColor = 'Lime' @@ -1482,13 +1342,15 @@ namespace SAPIEN $null = $fnode.Nodes.Add("pffilenamestringoffset", "[0x$(($FilemetricsOffset + $fo + 12).ToString('X6'))] Filename string offset: $($pffilenamestringoffset)") # $null = $fnode.Nodes.Add("fn_offset", "[--------] Actual Offset: $($fn_offset)") $null = $fnode.Nodes.Add("fn_charscount", "[0x$(($FilemetricsOffset + $fo + 16).ToString('X6'))] Filename Nr of Characters: $($fn_charscount)") - $fflagsnode = $fnode.Nodes.Add("fn_flags", "[0x$(($FilemetricsOffset + $fo + 20).ToString('X6'))] Flags: 0x$($fn_flags)") + $fflagsnode = $fnode.Nodes.Add("fn_flags", "[0x$(($FilemetricsOffset + $fo + 20).ToString('X6'))] Flags (Hex): 0x$($fn_flags)") + $w = 0 foreach ($f in $FileMetricsFlags.Keys) { $fb = [convert]::ToUInt32($f, 16) if (($fb -band $fflags) -eq $fb) { - $null = $fflagsnode.Nodes.Add("fn_flag$($f)", "[0x$(($FilemetricsOffset + $fo + 20).ToString('X6'))] Flag: 0x$($fb.ToString('X')) ($($FileMetricsFlags[$f]))") + $null = $fflagsnode.Nodes.Add("fn_flag$($f)", "[0x$(($FilemetricsOffset + $fo + 20).ToString('X6'))] Flag #$($w): $($FileMetricsFlags[$f]) [0x$($fb.ToString('X'))]") + $w++ } } $null = $fnode.Nodes.Add("fn_fname", "[0x$($fn_offset.ToString('X6'))] Filename: $($fn_filename)") @@ -1553,13 +1415,15 @@ namespace SAPIEN $null = $fnode.Nodes.Add("pffilenamestringoffset", "[0x$(($FilemetricsOffset + $fo + 8).ToString('X6'))] Filename string offset: $($pffilenamestringoffset)") # $null = $fnode.Nodes.Add("fn_offset", "[--------] Actual Offset: $($fn_offset)") $null = $fnode.Nodes.Add("fn_charscount", "[0x$(($FilemetricsOffset + $fo + 12).ToString('X6'))] Filename Nr of Characters: $($fn_charscount)") - $fflagsnode = $fnode.Nodes.Add("fn_flags", "[0x$(($FilemetricsOffset + $fo + 16).ToString('X6'))] Flags: 0x$($fn_flags)") + $fflagsnode = $fnode.Nodes.Add("fn_flags", "[0x$(($FilemetricsOffset + $fo + 16).ToString('X6'))] Flags (Hex): 0x$($fn_flags)") + $e = 0 foreach ($f in $FileMetricsFlags.Keys) { $fb = [convert]::ToUInt32($f, 16) if (($fb -band $fflags) -eq $fb) { - $null = $fflagsnode.Nodes.Add("fn_flag$($f)", "[0x$(($FilemetricsOffset + $fo + 20).ToString('X6'))] Flag: 0x$($fb.ToString('X')) ($($FileMetricsFlags[$f]))") + $null = $fflagsnode.Nodes.Add("fn_flag$($f)", "[0x$(($FilemetricsOffset + $fo + 20).ToString('X6'))] Flag #$($e): $($FileMetricsFlags[$f]) [0x$($fb.ToString('X'))]") + $e++ } } $null = $fnode.Nodes.Add("fn_fname", "[0x$($fn_offset.ToString('X6'))] Filename: $($fn_filename)") @@ -1623,13 +1487,15 @@ namespace SAPIEN # Add Nodes $null = $traceNode.Nodes.Add("Memoryblockoffset", "[0x$(($TraceChainsOffset + $to + $skip).ToString('X6'))] 512k Memory block offset: $($BlockOffset)") - $tflagsnode = $traceNode.Nodes.Add("tFlag", "[0x$(($TraceChainsOffset + $to + $skip + 4).ToString('X6'))] Flags: 0x$($tFlag)") + $tflagsnode = $traceNode.Nodes.Add("tFlag", "[0x$(($TraceChainsOffset + $to + $skip + 4).ToString('X6'))] Flags (Hex): 0x$($tFlag)") + $r = 0 foreach ($tf in $tFlags.keys) { $tfd = [convert]::ToUInt16($tf, 16) if (($tfd -band $tFlagD) -eq $tfd) { - $null = $tflagsnode.Nodes.Add("tn_flag$($tf)", "[0x$(($TraceChainsOffset + $to + $skip + 4).ToString('X6'))] Flag: 0x$($tfd.ToString('X')) ($($tFlags[$tf]))") + $null = $tflagsnode.Nodes.Add("tn_flag$($tf)", "[0x$(($TraceChainsOffset + $to + $skip + 4).ToString('X6'))] Flag #$($r): $($tFlags[$tf]) [0x$($tfd.ToString('X'))]") + $r++ } } $null = $traceNode.Nodes.Add("tFlag2", "[0x$(($TraceChainsOffset + $to + $skip + 5).ToString('X6'))] Flag2: 0x$($tFlag2)") @@ -1656,7 +1522,7 @@ namespace SAPIEN $volumedeviceCharCount = [Bitconverter]::ToUInt32($decompressed[($VolumesInformationOffset + ($v * $vo) + 4) .. ($VolumesInformationOffset + ($v * $vo) + 7)], 0) $volumedevicepath = [System.Text.Encoding]::Unicode.GetString($decompressed[($VolumesInformationOffset + $volumedeviceoff) .. ($VolumesInformationOffset + $volumedeviceoff + $volumedeviceCharCount * 2 - 1)]) $creationT = [Bitconverter]::ToUInt64($decompressed[($VolumesInformationOffset + ($v * $vo) + 8) .. ($VolumesInformationOffset + ($v * $vo) + 15)], 0) - $VolumeCreationTime = if ($creationT -ne 0) { [datetime]::FromFileTimeUtc($creationT).ToString("dd/MM/yyyy HH:mm:ss.fffffff") } + $VolumeCreationTime = if ($creationT -ne 0) { [datetime]::FromFileTimeUtc($creationT).ToString("dd-MMM-yyyy HH:mm:ss.fffffff") } else { "--" } $volumeSerial = [System.BitConverter]::ToString($decompressed[($VolumesInformationOffset + ($v * $vo) + 19) .. ($VolumesInformationOffset + ($v * $vo) + 16)]) -replace '-', '' $Filereferencesoffset = [Bitconverter]::ToUInt32($decompressed[($VolumesInformationOffset + ($v * $vo) + 20) .. ($VolumesInformationOffset + ($v * $vo) + 23)], 0) @@ -1698,7 +1564,7 @@ namespace SAPIEN [System.Windows.Forms.Application]::DoEvents() $fr_recordid = [System.BitConverter]::ToString($decompressed[($froff + $frl + $fro + 7) .. ($froff + $frl + $fro)]) -replace '-', '' # Add nodes - $frnodes = $FileReferenceNodes.Nodes.Add("$frnode_$($frc)", "[0x$(($froff + $frl + $fro + 7).ToString('X6'))] #Ref: $($frc.ToString('00#')) Record ID: $($fr_recordid)") + $frnodes = $FileReferenceNodes.Nodes.Add("$frnode_$($frc)", "[0x$(($froff + $frl + $fro + 7).ToString('X6'))] #Ref $($frc.ToString('00#')) Record ID: $($fr_recordid)") # Add Record & Sequence numbers if ($fr_recordid -ne '0000000000000000') { @@ -1727,19 +1593,207 @@ namespace SAPIEN $eoff = $eoff + ($entrylength * 2) + 4 } } - $treeview2.EndUpdate() + $treeview2.EndUpdate() + + } # End if Prefetch + else + { + $treeview2.EndUpdate() + return + } + } # End Get-Prefetch + + function Get-Nodes + { + param + ( + [Parameter(Mandatory = $true)] + $nodes + ) + + foreach ($node in $nodes) + { + [System.Windows.Forms.Application]::DoEvents() + $node + Get-Nodes -nodes $node.Nodes + } + } + + function Get-NodesForJason + { + param + ( + [Parameter(Mandatory = $false)] + $nodes = $treeview2.Nodes[0].Nodes # default + ) + + $nodePS = [PSCustomObject]@{ } + + foreach ($node in $nodes) + { + [System.Windows.Forms.Application]::DoEvents() + $NodeFields = $node.Text -split ': ' + + if ($node.Nodes.count -eq 0) + { + if ($NodeFields.count -eq 1) + { + $Name = $node.Text + $Value = '' + } + elseif ($NodeFields.count -eq 2) + { + $Name = $NodeFields[0] + $Value = $NodeFields[1].TrimStart(' ') + } + + $nodePS | Add-Member -MemberType NoteProperty -Name $Name -Value $Value + } + else + { + $Name = $node.Text + $Value = Get-NodesForJason -nodes $node.Nodes + $nodePS | Add-Member -MemberType NoteProperty -Name $Name -Value $Value + } + } + $nodePS + } + + function Get-SafeFilename + { + param + ( + [Parameter(Mandatory = $true)] + [System.String]$Filename + ) + + $invalidChars = [System.IO.Path]::GetInvalidFileNameChars() -join '' + $regex = "[{0}]" -f [System.Text.RegularExpressions.Regex]::Escape($invalidChars) + return ($Filename -replace $regex, '_') + } + + $OpenFolder_Click = { + $folderbrowserdialog1.SelectedPath = "$($env:SystemRoot)" + "\Prefetch" + if ($folderbrowserdialog1.ShowDialog() -eq 'OK') + { + $treeview1.Nodes.Clear() + $treeview2.Nodes.Clear() + [System.GC]::Collect() + $SaveNodesToCSV.Enabled = $false + $ExportSingleUncompressed.Enabled = $false + $script:rawdata = $null + $script:PrefetchFile = $null + + if ((Check-Permissions -Folder $folderbrowserdialog1.SelectedPath) -eq $false) + { + Show-WarningMessage -WarningMessage "You need to restart 'Prefetch Browser' as an 'Administrator' to read: $($folderbrowserdialog1.SelectedPath) " + return + } + get-files -Folder $folderbrowserdialog1.SelectedPath + $PrefetchBrowser.Cursor = 'Default' + $script:folder = $folderbrowserdialog1.SelectedPath + } + else + { + $PrefetchBrowser.Cursor = 'Default' + $script:folder = $null + $Status.Text = $null + [System.Console]::Beep(500, 150) + } + } + + $PrefetchBrowser_Shown = { + $OpenFolder.PerformClick() + } + + $exitToolStripMenuItem_Click = { + $PrefetchBrowser.Close() + } + + $treeview1_KeyPress = [System.Windows.Forms.KeyPressEventHandler]{ + #Event Argument: $_ = [System.Windows.Forms.KeyPressEventArgs] + If (!!$treeview1.SelectedNode -and $_.KeyChar -eq [char]13) + { + if (!!$treeview1.SelectedNode.Tag) + { + $tm = [Diagnostics.Stopwatch]::StartNew() + $tm.Start() + $script:rawdata = $null + do + { + $PrefetchBrowser.Cursor = 'AppStarting' + $Status.Text = "Please wait - Reading $($treeview1.SelectedNode.Tag[0].Filename)" + } + while (!(Start-Read -File $treeview1.SelectedNode.Tag)) + $tm.Stop() + $PrefetchBrowser.Cursor = 'Default' + $Status.Text = "Elapsed: " + $tm.Elapsed.ToString("mm\:ss\.fff") + " - Ready" + [gc]::Collect() + } + else + { + $PrefetchBrowser.Cursor = 'Default' + [System.Console]::Beep(500, 150) + } + } + } - } # End if Prefetch + $treeview1_AfterSelect = [System.Windows.Forms.TreeViewEventHandler]{ + #Event Argument: $_ = [System.Windows.Forms.TreeViewEventArgs] + if (!!$_.Node.Tag) + { + $tm = [Diagnostics.Stopwatch]::StartNew() + $tm.Start() + $script:rawdata = $null + do + { + $PrefetchBrowser.Cursor = 'AppStarting' + $Status.Text = "Please wait - Reading $($_.Node.Tag[0].Filename)" + } + while (!(Start-Read -File $_.Node.Tag)) + $tm.Stop() + $PrefetchBrowser.Cursor = 'Default' + $Status.Text = "Elapsed: " + $tm.Elapsed.ToString("mm\:ss\.fff") + " - Ready" + [gc]::Collect() + } else { - $treeview2.EndUpdate() - return + $Status.Text = $_.Node.Text + $PrefetchBrowser.Cursor = 'Default' } - } # End Get-Prefetch + } + + $treeview1_NodeMouseClick = [System.Windows.Forms.TreeNodeMouseClickEventHandler]{ + #Event Argument: $_ = [System.Windows.Forms.TreeNodeMouseClickEventArgs] + $treeview1.SelectedNode = $_.Node + } + + $Properties_Click = { + if (!!$treeview1.SelectedNode.Tag) + { + $tm = [Diagnostics.Stopwatch]::StartNew() + $tm.Start() + $script:rawdata = $null + do + { + $PrefetchBrowser.Cursor = 'AppStarting' + $Status.Text = "Please wait - Reading $($treeview1.SelectedNode.Tag[0].Filename)" + } + while (!(Start-Read -File $treeview1.SelectedNode.Tag)) + $tm.Stop() + $PrefetchBrowser.Cursor = 'Default' + $Status.Text = "Elapsed: " + $tm.Elapsed.ToString("mm\:ss\.fff") + " - Ready" + [gc]::Collect() + } + else + { + $PrefetchBrowser.Cursor = 'Default' + [System.Console]::Beep(500, 150) + } + } $Exit1_Click={ $exitToolStripMenuItem.PerformClick() - } $Exit2_Click = { @@ -1753,7 +1807,7 @@ namespace SAPIEN $repo = "kacos2000/Prefetch-Browser" $latestR = "https://api.github.com/repos/$($repo)/releases/latest" $releases = "https://api.github.com/repos/$($repo)/releases" - $aboutmessage = "Prefetch Browser $($PrefetchBrowserVersion)`nCostas Katsavounidis © 2021/2022" + $aboutmessage = "Prefetch Browser $($PrefetchBrowserVersion)`nCostas Katsavounidis © 2021-2024" $downlink = "https://github.com/kacos2000/Prefetch-Browser/releases/latest" [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 @@ -1804,18 +1858,21 @@ namespace SAPIEN { 'Yes' { $Status.Text = "Exiting .." + $id = [System.Diagnostics.Process]::GetCurrentProcess().Id + $process = Get-Process -id $id try { $richtextbox1.Clear() $treeview1.Nodes.Clear() $treeview2.Nodes.Clear() - # $datagridview1.Rows.Clear() + $notifyicon1.Dispose() + [GC]::Collect() + $Cancel = $false + } + catch + { + $process.Kill() } - catch { } - #$treeview1.Nodes.Clear() - $notifyicon1.Dispose() - [GC]::Collect() - $Cancel = $false } 'No' { $Cancel = $true @@ -1929,36 +1986,14 @@ namespace SAPIEN { $this.SelectedNode = $_.Node } - - } - - $PrefetchBrowser_Shown={ - $OpenFolder.PerformClick() - + $Status.Text = $_.Node.Text } - $ExportAll_Click={ #TODO: Place custom script here } - function Get-Nodes - { - param - ( - [Parameter(Mandatory = $true)] - $nodes - ) - - foreach ($node in $nodes) - { - [System.Windows.Forms.Application]::DoEvents() - $node - Get-Nodes -nodes $node.Nodes - } - } - $ExportSingleUncompressed_Click={ if (!!$script:rawdata -and !!$script:PrefetchFile) { @@ -1966,7 +2001,7 @@ namespace SAPIEN $savefiledialog1.InitialDirectory = [Environment]::GetFolderPath('Desktop') $savefiledialog1.Filter = "Prefetch files (*.pf)|*.pf|All files (*.*)|*.*" $savefiledialog1.FilterIndex = 0 - $savefiledialog1.FileName = "Uncompressd_$($script:PrefetchFile)" + $savefiledialog1.FileName = "Uncompressed_$($script:PrefetchFile)" $savefiledialog1.DefaultExt = 'pf' if ($savefiledialog1.ShowDialog() -eq 'OK') { @@ -2050,23 +2085,20 @@ namespace SAPIEN }#> } - $SaveNodestoTxt_Click={ - $node = $treeview2.Nodes[0] - If (!!$node -and $node.GetNodeCount($false) -ge 1) + $SaveNodesToCSV_Click = { + if (!!$script:PrefetchTree) { $savefiledialog1.AddExtension = $true $savefiledialog1.InitialDirectory = [Environment]::GetFolderPath('Desktop') - $savefiledialog1.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*" + $savefiledialog1.Filter = "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*.*" $savefiledialog1.FilterIndex = 0 - $savefiledialog1.FileName = "$($script:PrefetchFile)_properties" - $savefiledialog1.DefaultExt = 'txt' + $savefiledialog1.FileName = "$([System.IO.DirectoryInfo]::New($script:folder).BaseName)_file_tree" + $savefiledialog1.DefaultExt = 'csv' if ($savefiledialog1.ShowDialog() -eq 'OK') { $Status.Text = 'Please wait ..' $PrefetchBrowser.Cursor = 'AppStarting' - $nodes = (Get-Nodes -nodes $node).Text - $nodes | Out-String | Out-File -FilePath $savefiledialog1.FileName -Encoding utf8 -NoClobber - $nodes = $null + $script:PrefetchTree | Export-Csv -Path $savefiledialog1.FileName -Delimiter '|' -Encoding UTF8 -NoTypeInformation $PrefetchBrowser.Cursor = 'Default' $Status.Text = 'Ready' } @@ -2075,20 +2107,32 @@ namespace SAPIEN else { [System.Console]::Beep(500, 150) } } - $SaveNodesToCSV_Click={ - if (!!$script:PrefetchTree) + $CopyNodeText1_Click = { + if (!!$treeview1.SelectedNode) + { + $node = $treeview1.SelectedNode + $node.Text | Set-Clipboard + } + + } + + $SaveNodestoTxt_Click={ + $node = $treeview2.Nodes[0] + If (!!$node -and $node.GetNodeCount($false) -ge 1) { $savefiledialog1.AddExtension = $true $savefiledialog1.InitialDirectory = [Environment]::GetFolderPath('Desktop') - $savefiledialog1.Filter = "CSV files (*.csv)|*.csv|Text files (*.txt)|*.txt|All files (*.*)|*.*" + $savefiledialog1.Filter = "Text files (*.txt)|*.txt|All files (*.*)|*.*" $savefiledialog1.FilterIndex = 0 - $savefiledialog1.FileName = "$([System.IO.DirectoryInfo]::New($script:folder).BaseName)_file_tree" - $savefiledialog1.DefaultExt = 'csv' + $savefiledialog1.FileName = "$($script:PrefetchFile)_properties" + $savefiledialog1.DefaultExt = 'txt' if ($savefiledialog1.ShowDialog() -eq 'OK') { $Status.Text = 'Please wait ..' $PrefetchBrowser.Cursor = 'AppStarting' - $script:PrefetchTree | Export-Csv -Path $savefiledialog1.FileName -Delimiter '|' -Encoding UTF8 -NoTypeInformation + $nodes = (Get-Nodes -nodes $node).Text + $nodes | Out-String | Out-File -FilePath $savefiledialog1.FileName -Encoding utf8 -NoClobber + $nodes = $null $PrefetchBrowser.Cursor = 'Default' $Status.Text = 'Ready' } @@ -2097,14 +2141,61 @@ namespace SAPIEN else { [System.Console]::Beep(500, 150) } } - - $CopyNodeText1_Click={ - if (!!$treeview1.SelectedNode) + $SaveToJson_Click = { + if (!!$treeview2) { - $node = $treeview1.SelectedNode - $node.Text | Set-Clipboard + $PrefetchBrowser.Cursor = 'AppStarting' + $Status.Text = 'Please wait - Collecting Nodes ...' + $NodeCollection = Get-NodesForJason + $pfName = "$(Get-SafeFilename -Filename $treeview2.Nodes[0].Text).json" + # Convert the result to json with max depth + $json = ($NodeCollection | ConvertTo-Json -Depth 100) + $Status.Text = '' + # Save the result + if (!!$json) + { + $savefiledialog1.AddExtension = $true + $savefiledialog1.InitialDirectory = [System.Environment]::GetFolderPath('Desktop') + $savefiledialog1.Filter = "Json files (*.json)|*.json|All files (*.*)|*.*" + $savefiledialog1.FilterIndex = 0 + if (!!$pfName) + { + $savefiledialog1.FileName = "$($pfName)" + } + else + { + $savefiledialog1.FileName = "Prefetch" + } + $savefiledialog1.DefaultExt = 'json' + + if ($savefiledialog1.ShowDialog() -eq 'OK') + { + $OutputFileStream = [IO.File]::WriteAllText($savefiledialog1.FileName, $json, [System.Text.Encoding]::UTF8) + $PrefetchBrowser.Cursor = 'Default' + $Status.Text = 'Ready' + $json = $null + $NodeCollection = $null + [System.GC]::Collect() + } + else + { + $NodeCollection = $null + [System.GC]::Collect() + $PrefetchBrowser.Cursor = 'Default' + [System.Console]::Beep(500, 150) + } + } + else + { + $PrefetchBrowser.Cursor = 'Default' + [System.Console]::Beep(500, 150) + } + } + else + { + $PrefetchBrowser.Cursor = 'Default' + [System.Console]::Beep(500, 150) } - } # Define constants for use with _mm_prefetch. @@ -2112,7 +2203,7 @@ namespace SAPIEN #define _MM_HINT_T1 2 #define _MM_HINT_T2 3 #define _MM_HINT_NTA 0 - + # --End User Generated Script-- @@ -2156,9 +2247,8 @@ namespace SAPIEN $PrefetchBrowser.remove_FormClosing($PrefetchBrowser_FormClosing) $PrefetchBrowser.remove_Load($PrefetchBrowser_Load) $PrefetchBrowser.remove_Shown($PrefetchBrowser_Shown) - $treeview1.remove_BeforeSelect($treeview1_BeforeSelect) + $treeview1.remove_AfterSelect($treeview1_AfterSelect) $treeview1.remove_NodeMouseClick($treeview1_NodeMouseClick) - $treeview1.remove_NodeMouseDoubleClick($treeview1_NodeMouseDoubleClick) $treeview1.remove_KeyPress($treeview1_KeyPress) $OpenFolder.remove_Click($OpenFolder_Click) $exitToolStripMenuItem.remove_Click($exitToolStripMenuItem_Click) @@ -2182,6 +2272,7 @@ namespace SAPIEN $SaveNodestoTxt.remove_Click($SaveNodestoTxt_Click) $SaveNodesToCSV.remove_Click($SaveNodesToCSV_Click) $CopyNodeText1.remove_Click($CopyNodeText1_Click) + $SaveToJson.remove_Click($SaveToJson_Click) $PrefetchBrowser.remove_Load($Form_StateCorrection_Load) $PrefetchBrowser.remove_Closing($Form_StoreValues_Closing) $PrefetchBrowser.remove_FormClosed($Form_Cleanup_FormClosed) @@ -2196,16 +2287,16 @@ namespace SAPIEN $PrefetchBrowser.SuspendLayout() $splitcontainer1.SuspendLayout() $menustrip1.SuspendLayout() - $Status.BeginInit() $contextmenustrip1.SuspendLayout() $contextmenustrip2.SuspendLayout() $contextmenustrip3.SuspendLayout() + $Statusbar.SuspendLayout() # # PrefetchBrowser # $PrefetchBrowser.Controls.Add($splitcontainer1) - $PrefetchBrowser.Controls.Add($statusbar1) $PrefetchBrowser.Controls.Add($menustrip1) + $PrefetchBrowser.Controls.Add($Statusbar) $PrefetchBrowser.AutoScaleDimensions = New-Object System.Drawing.SizeF(10, 20) $PrefetchBrowser.AutoScaleMode = 'Font' $PrefetchBrowser.AutoSize = $True @@ -2841,11 +2932,13 @@ AAAAAAAAAAACAQAAAAMAAAADAAAAAwAAgAcAAMAPAADofwAACw==')) # splitcontainer1 # $splitcontainer1.BackColor = [System.Drawing.Color]::Gainsboro - $splitcontainer1.BorderStyle = 'Fixed3D' + $splitcontainer1.BorderStyle = 'FixedSingle' + $splitcontainer1.CausesValidation = $False $splitcontainer1.ContextMenuStrip = $contextmenustrip3 + $splitcontainer1.Cursor = 'Default' $splitcontainer1.Dock = 'Fill' $splitcontainer1.Location = New-Object System.Drawing.Point(0, 35) - $splitcontainer1.Margin = '0, 0, 0, 9' + $splitcontainer1.Margin = '0, 0, 0, 50' $splitcontainer1.Name = 'splitcontainer1' $splitcontainer1.Panel1.AutoScroll = $True $splitcontainer1.Panel1.BackColor = [System.Drawing.Color]::Gainsboro @@ -2853,23 +2946,12 @@ AAAAAAAAAAACAQAAAAMAAAADAAAAAwAAgAcAAMAPAADofwAACw==')) $splitcontainer1.Panel2.AutoScroll = $True $splitcontainer1.Panel2.BackColor = [System.Drawing.Color]::Gainsboro [void]$splitcontainer1.Panel2.Controls.Add($treeview2) - $splitcontainer1.Size = New-Object System.Drawing.Size(2275, 1122) + $splitcontainer1.Size = New-Object System.Drawing.Size(2275, 1131) $splitcontainer1.SplitterDistance = 708 - $splitcontainer1.SplitterWidth = 8 + $splitcontainer1.SplitterWidth = 7 $splitcontainer1.TabIndex = 2 $splitcontainer1.TabStop = $False # - # statusbar1 - # - $statusbar1.Location = New-Object System.Drawing.Point(0, 1157) - $statusbar1.Margin = '5, 9, 5, 5' - $statusbar1.Name = 'statusbar1' - $statusbar1.Padding = '0, 9, 0, 0' - [void]$statusbar1.Panels.Add($Status) - $statusbar1.ShowPanels = $True - $statusbar1.Size = New-Object System.Drawing.Size(2275, 34) - $statusbar1.TabIndex = 1 - # # menustrip1 # $menustrip1.ImageScalingSize = New-Object System.Drawing.Size(24, 24) @@ -2880,9 +2962,23 @@ AAAAAAAAAAACAQAAAAMAAAADAAAAAwAAgAcAAMAPAADofwAACw==')) $menustrip1.Name = 'menustrip1' $menustrip1.Padding = '10, 3, 0, 3' $menustrip1.Size = New-Object System.Drawing.Size(2275, 35) - $menustrip1.TabIndex = 1 + $menustrip1.TabIndex = 0 $menustrip1.Text = 'menustrip1' # + # Statusbar + # + $Statusbar.Dock = 'Bottom' + $Statusbar.Font = [System.Drawing.Font]::new('Segoe UI', '10') + [void]$Statusbar.Items.Add($Status) + $Statusbar.Location = New-Object System.Drawing.Point(0, 1166) + $Statusbar.Margin = '0, 5, 0, 0' + $Statusbar.Name = 'Statusbar' + $Statusbar.Padding = '0, 1, 0, 0' + $Statusbar.Size = New-Object System.Drawing.Size(2275, 25) + $Statusbar.Stretch = $True + $Statusbar.TabIndex = 1 + $Statusbar.Text = 'toolstrip1' + # # treeview1 # $treeview1.BackColor = [System.Drawing.Color]::Black @@ -2897,11 +2993,10 @@ AAAAAAAAAAACAQAAAAMAAAADAAAAAwAAgAcAAMAPAADofwAACw==')) $treeview1.Name = 'treeview1' $treeview1.SelectedImageIndex = 0 $treeview1.ShowNodeToolTips = $True - $treeview1.Size = New-Object System.Drawing.Size(704, 1118) - $treeview1.TabIndex = 0 - $treeview1.add_BeforeSelect($treeview1_BeforeSelect) + $treeview1.Size = New-Object System.Drawing.Size(706, 1129) + $treeview1.TabIndex = 3 + $treeview1.add_AfterSelect($treeview1_AfterSelect) $treeview1.add_NodeMouseClick($treeview1_NodeMouseClick) - $treeview1.add_NodeMouseDoubleClick($treeview1_NodeMouseDoubleClick) $treeview1.add_KeyPress($treeview1_KeyPress) # # fileToolStripMenuItem @@ -2984,7 +3079,7 @@ LwCyZHmRj+O9Mk9WxPKcUIxkBbbDkK85u7c+yQrqDljO7q1PsoKd/GZs+edFsgL6MudVHVnO7n1O AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAu MC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAA ACZTeXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkD -AAAADwMAAADOFgAAAk1TRnQBSQFMAgEBBAEAAYABAQGAAQEBGAEAARgBAAT/ASEBAAj/AUIBTQE2 +AAAADwMAAADOFgAAAk1TRnQBSQFMAgEBBAEAAYgBAQGIAQEBGAEAARgBAAT/ASEBAAj/AUIBTQE2 BwABNgMAASgDAAFgAwABMAMAAQEBAAEgBgABSP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AKYAAwIBAwMGAQcDBgEH AwYBBwMGAQcDBgEHAwYBBwMGAQcDBgEHAwYBBwMGAQcDBgEHAwYBBwMGAQcDBgEHAwYBBwMDAQQc @@ -3105,7 +3200,7 @@ AAEfAeABAAEfAeABAAEfA/8B4AEAAT8B4AEAAT8B4AEAAT8Y/ws=')) AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj00LjAu MC4wLCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAA ACZTeXN0ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkD -AAAADwMAAABICgAAAk1TRnQBSQFMAgEBBAEAAcABAQHAAQEBEAEAARABAAT/ASEBAAj/AUIBTQE2 +AAAADwMAAABICgAAAk1TRnQBSQFMAgEBBAEAAcgBAQHIAQEBEAEAARABAAT/ASEBAAj/AUIBTQE2 BwABNgMAASgDAAFAAwABIAMAAQEBAAEgBgABIP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/ AP8AbgADDgQSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMSARgDEgEYAxIBGAMQARUEARAAAw4EEgEY AxIBGAMSARgDEgEYAxIBGAMSARgDJQE3A1oB9QMSARgDEAEVBAEQAAMOBBIBGAMSARgDEgEYAxIB @@ -3162,629 +3257,6 @@ wAEHAcABBwL/AeABDwHgAQ8B4AEPCP8L')) $imagelist2.Images.SetKeyName(2,'document_text-check.ico') $imagelist2.Images.SetKeyName(3,'document_text-info.ico') # - # Status - # - $Status.AutoSize = 'Spring' - #region Binary Data - $Formatter_binaryFomatter = New-Object System.Runtime.Serialization.Formatters.Binary.BinaryFormatter - $System_IO_MemoryStream = New-Object System.IO.MemoryStream (,[byte[]][System.Convert]::FromBase64String(' -AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBD -dWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABNTeXN0 -ZW0uRHJhd2luZy5JY29uAgAAAAhJY29uRGF0YQhJY29uU2l6ZQcEAhNTeXN0ZW0uRHJhd2luZy5T -aXplAgAAAAIAAAAJAwAAAAX8////E1N5c3RlbS5EcmF3aW5nLlNpemUCAAAABXdpZHRoBmhlaWdo -dAAACAgCAAAAAAAAAAAAAAAPAwAAAL6GAAACAAABAAUAQEAAAAEAIAAoQgAAVgAAADAwAAABACAA -qCUAAH5CAAAgIAAAAQAgAKgQAAAmaAAAGBgAAAEAIACICQAAzngAABAQAAABACAAaAQAAFaCAAAo -AAAAQAAAAIAAAAABACAAAAAAAABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABwAAAAoAAAAN -AAAAEgAAABcAAAAbAAAAGgAAABYAAAAPAAAACAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/49VAwAAAA8AAAAWAAAAGwAAAB0AAAAf -AAAAIQAAACEAAAAiAAAAIwAAACMAAAAjAAAAJAAAACsAAAA5AAAARQAAAEsAAABGAAAAOgAAACwA -AAAkAAAAIwAAACMAAAAjAAAAIwAAACEAAAAhAAAAIQAAAB4AAAAbAAAAGAAAABNSBgAJAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAFAAAADAAAABIAAAAXAAAAHAAAACAAAAAkAAAAKAAAACsAAAAtAAAALQAAADMH -AAC8XgoA814KAPdiDQD9XgoA+AAAAI4AAAA/AAAAMQAAAC4AAAAtAAAALAAAACkAAAAmAAAAIwAA -AB4AAAAZAAAAFAAAAA8AAAAIehgAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAcA -AAAKAAAACAAAAAMAAAAAAAAAAQAAAAQKAABIoy0A///Nqf//0q7//9q7//+gbP8oAADTAAAAKwAA -ABAAAAAGAAAAAwAAAAAAAAADAAAACQAAAAwAAAAKAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAABQAAAA8AAABJAAAAOAAAAB8AAAASAAAABgAAAAEAAAACGgAAl/Rq -Jf//xJ3//7SH//+1if//y6b/ehgA/QAAAD8AAAAPAAAAAgAAAAEAAAAFAAAAEAAAAFkAAABNAAAA -JQAAABYAAAAJAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABYAAACgkSMA/2cQ -APUAAAB/AAAALgAAABkAAAAPAAAAEmALAOj/sIX//6t9//+gbP//oGz//76W/9VHAP8AAACEAAAA -IQAAABAAAAAOAAAAIAMAAK2dKwD/hx4A/AAAAKgAAAA3AAAAGAAAAAcAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAACY2AADN1UUA///Qrf//sIL/mCYA/wAAALQAAABAAAAALQAAAGymLwD//8uk -//+mdv//oGz//6Bs//+0h//+h0v/GAAAzQAAAEYAAAAuAAAATUcAAN3mTgP//9W0///Mp//VRwD/ -PgAA3gAAAEUAAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE0DAAFnEADg+HY0///Wtf//v5b//8ai -///Qrf/ZSAD/OgAA3z0AANySIwD//45U//+8kv//o3H//6Nx//+jcf//qnv//8Wg/8I9AP9nEAD3 -EQAAx3MVAPj/iU7//9a1//+7kf//vJP//9W0//h0Mv8vAADFAAAACwAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAcBQA1/+TXP//q37//6Nx//+kc///u5H//9a1//+PVf//pnT//9y8///Lpv//qnr/ -/6Nx//+jcf//o3H//6Nx//+7kf//1rX//82p//6FSP//uo///8+r//+rfv//o3H//6Nx//+qe//t -UQT/AAAAnAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIgfAIPgSwH//6t+//+mdv//o3H/ -/6Rz//+wgv//wZn//8GY//+wgv//pnb//6Nx//+jcf//o3H//6Nx//+jcf//pHP//6p7//+4jv// -wpz//7yS//+peP//o3H//6Nx//+peP//q37/jyMA/wAAAEEAAAADAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAABRBAAwkiUA//+qe///qXj//6Z2//+mdv//pnb//6Z2//+mdv//pnb//6Z2//+mdv// -pnb//6Z2//+mdv//pnb//6Z2//+mdv//pnb//6Z2//+mdv//pnb//6Z2//+mdv//q37//IBD/0oA -ANoAAAASAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAwAAAAQAAAAEAAAAB1QGANr/iU7//6d3//+mdv// -pnb//6Z2//+mdv//pnb//6Z2//+mdv//pnb//61+//+1i///tYv//61+//+mdv//pnb//6Z2//+m -dv//pnb//6Z2//+mdv//pnb//6p7/9JFAP8AAACRAAAAHAAAAAoAAAAFAAAABQAAAAQAAAADAAAA -AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAADQAAABUA -AAAZAAAAGQAAACZUBgDh/5Ne//+rfv//p3f//6d3//+nd///p3f//6d3//+1i///1bT//9y+///c -vv//3L7//9y+///cvv//3L7//9W0//+1i///p3f//6d3//+nd///p3f//6d3//+6j//yZR7/HwAA -ywAAADYAAAAiAAAAGgAAABoAAAAYAAAAEQAAAAgAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAABAAACAAAARAAAAIIAAACCAAAAhwAAAIEVAAC761EE///Qrf//qnv//6d3//+n -d///p3f//6p7///TsP//3L7//9y+///cvv//1bT//8yn///Mp///1bT//9y+///cvv//3L7//9Ow -//+qe///p3f//6d3//+nd///s4X//9Oz/746AP8AAAC1AAAAjAAAAIkAAACRAAAAjwAAAFcAAAAX -AAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGgAAHogfAPrvXhX/7VQH/+1U -B//mTgP/504D///Pqv//t4v//6d3//+nd///p3f//61+///cvv//3L7//9q7//+4jP//p3f//6d3 -//+nd///p3f//6d3//+nd///uIz//9q7///cvv//3L7//61+//+nd///p3f//6d3//+8k///xJ3/ -7VQH/+1UB//tVAn/714V/+9eFf96GAD2AAAAMgAAAA0AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAIEcAG7qUQT//9m6///Vtf//1bX//9a1///Srv//vJL//6l4//+peP//qXj//6t9 -///Zuv//3L7//8yn//+peP//qXj//6l4//+whf//uIz//7iM//+whf//qXj//6l4//+peP//zKf/ -/9y+///Zuv//q33//6l4//+peP//qnv//76W///Srv//1bX//9W0///Ts///2br/10gA/wAAAHcA -AAARAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAHAC//5FZ//+4jv//qXj//6l4 -//+qe///qXj//6l4//+peP//qXj//6l4///Mp///3L7//8ai//+peP//qXj//7eL///TsP//3L7/ -/9y+///cvv//3L7//9Ct//+1i///qXj//6l4///Gov//3L7//8uk//+peP//qXj//6l4//+peP// -qXj//6l4//+peP//qXj//7qP//+LT/8yAAC/AAAADwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAACJIQANhx8A+/+0iP//uIz//6t9//+peP//qXj//6l4//+peP//qXj//6l4//+0h///2br/ -/82p//+peP//qXj//7yS///XuP//jFL/tzYA/34bAPuAHAD7vDkA//+RWf//17f//7uR//+peP// -qXj//82p///Zuv//tIf//6l4//+peP//qXj//6l4//+peP//qXj//7CF//+/lv//q33/ehoA+QAA -AAwAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAliYABIIeANXnTwT//9Ku///Mp///tIf/ -/6t9//+rff//q33//6t9//+rff//wpz//9Ow//+1i///q33//7WJ///Jo//kTgP/Yw0Ayp0rAD7X -SAAD6E8EA8U+AECCHgDN7VEE///Lpv//tYn//6t9//+1i///07D//8Kc//+rff//q33//6t9//+r -ff//q37//7yS///Wtf//s4X/qjAA/3QXAJ0AAAAYAAAADwAAAAgAAAADAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAADFPgAJliYAmacwAP//roD//9W0//+4jv//rX7//61+//+tfv//rX7//8uk///Jo/// -rX7//61+//+8kv/0aSP/OgAAxQAAABAAAAAAAAAAAAAAAAAAAAAAwjwACYghAMn4czD//7yS//+t -fv//rX7//8mj///LpP//rX7//61+//+tfv//rX7//76W///XuP/4dDP/gBwA8T4AAIYAAABMAAAA -RgAAADoAAAAsAAAAJAAAACMAAAAjAAAAIwAAACMAAAAhAAAAIQAAACEAAAAeAAAAGwAAABgAAAAT -KysrCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVJgBPgh4A6PdwLP// -vpX//66A//+ugP//roD//7OF///FoP//vJP//66A//+zhf//tIf/mCgA/wAAAEAAAAAFAAAAAAAA -AAAAAAAAAAAAAAAAAACnMAA0pC0A//+1if//roD//66A//+8k///xaD//7OF//+ugP//roD//66A -//+7kf/CPAD/KQAA7ygfHPU3Lyz3PDMv/TcvLPgAAACOAAAAPwAAADEAAAAuAAAALQAAACwAAAAp -AAAAJgAAACMAAAAeAAAAGQAAABQAAAAPAAAACEVFRQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAMAAAATQAADikLwD//7iO//+zhf//s4X//7OF//+1if//vpb//7iO//+z -hf//tYn//6Rz/3QXAOgAAAAdAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAoy0AAYEcAO3/q37//7SI -//+zhf//uI7//76W//+1if//s4X//7OF//+zhf//vJL/gh4A/k1HRP/////////////////o5OT/ -DgoJ0wAAACsAAAAQAAAABgAAAAMAAAAAAAAAAwAAAAkAAAAMAAAACgAAAAUAAAABAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAkAAABDtTYA///E -nf//tYv//7WL//+1i///tYv//7qP//+3i///tYv//7WL//+qe/9wFADkAAAAJgAAAAsAAAABAAAA -AAAAAAAAAAAAAAAAAAEAAAWCHgDp/7SH//+1i///tYv//7eL//+6j///tYv//7WL//+1i///tYv/ -/8ai/4khAP9vbGr/4Nzc/+7o4f/89e///////01FPv0AAAA/AAAADwAAAAIAAAABAAAABQAAABAA -AABZAAAATQAAACUAAAAWAAAACQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAgAAAAwAAABPZw4A5PdvK///yaP//7WL//+1i///tYv//7WL//+zhf//tIf//7WL -//+4jP//y6b/lSYA/AAAAEoAAAAZAAAACAAAAAIAAAAAAAAAAQAAAAQAAAAvoCwA///Mp///uIz/ -/7WL//+0h///s4X//7WL//+1i///tYv//7eL///Mp//vXhT/bSMA/4R+ev/EuLD/3dDI///7+P+O -h4X/AAAAhAAAACEAAAAQAAAADgAAACAAAACtZV9c/1RNSvwAAACoAAAANwAAABgAAAAHAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAACHoCwA+v+fav//17j//76W -//+4jP//uIz//7iM//+4jP//q37//6t+//+4jP//uIz//8yn//RpI/8OAAC5AAAANAAAAB0AAAAQ -AAAADAAAAA4AAAAWJQAAsvh0Mv//y6T//7iM//+4jP//q37//6t+//+4jP//uIz//7iM//+4jP// -wpz//9m6//+RWf+SKAD/TUVB/8i7tP/y6OT/z8zJ/wMAAM0AAABGAAAALgAAAE0mIRvdmZWR//// -////////joeF/yMbFd4AAABFAAAACwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAACCHgC81kcA///Gov//0q7//76V//+4jv//uI7//7iO//+4jv//uI7//6t+//+mdv//tYn/ -/7iO///CnP//0K3/wjwA/wsAALcAAABKAAAAMAAAACoAAAA8HwAAsslBAP//07D//76W//+4jv// -tYn//6Z2//+rfv//uI7//7iO//+4jv//uI7//7qP//++lv//1bT//7uR/7w5AP9eQTP/6N3V//// -//+Be3j/QDo09wAAAMdHPjz40s/P//////////v////8//////+/urf/FA0KxQAAAAsAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACHHwAOmCgA/f/Mp///yaP//7yT//+6kf//upH/ -/7qR//+6kf//upH//7qR//+1i///oGz//6Rz//+6kf//vJL//8um///TsP/xYhr/jyMA+E8EANlR -BADZkiUA+fJlHv//1bT//8mj//+8kv//upH//6Rz//+gbP//tYv//7qR//+6kf//upH//7qR//+6 -kf//upH//7yT///Mp///tYn/jDMH/+PWz////vn////////////Py8n////////////88er/9Ofe -//Tn3v/77+f/opmS/wAAAJwAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAJYmAMP/kVn//8GZ//+8kv//vJL//7yS//+8kv//vJL//7yS//+8kv//vJL//6d3//+ZZf// -qXj//7yS//+8k///xqL//9e4///Ts///s4X//7OF///VtP//17j//8ai//+8k///vJL//6l4//+Z -Zf//p3f//7yS//+8kv//vJL//7yS//+8k///vJP//7yT//+8k///wpz/93As/2NENP/q3db/9+fe -//vu5///+/f/////////+//56uT/9Ofe//Tn3v/56uT//O/o/15UT/8AAABBAAAAAwAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACzNABw7lkO///Zuv//3L7//9y+///cvv// -2rv//8yn///BmP//v5b//7+W//+8kv//nWf//5Vf//+mdP//vJP//7+W///CnP//xqL//8yn///M -p///xqL//8GZ//+/lv//vJP//6Z0//+VX///nWf//7yS//+/lv//v5b//8Kc///Ts///3L7//9y+ -///cvv//3L7//9e4/8Y+AP+kk47/9OTe//fn4f/35+H/9+fh//fn4f/35+H/9+fh//fn4f/35+H/ -/PHo/9DFv/8pIhzaAAAAEgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAyT4AG6YvAPv7fT3//IFF//yBRf/8gEP//IBD///Xt///zKf//8GZ///Bmf//wZn//7qR//+W -YP//j1j//5ll//+0iP//wZn//8GZ///Bmf//wZn//8GZ///Bmf//tIj//5ll//+PWP//lmD//7qR -///Bmf//wZn//8Kc///Pq///v5b/8mci//RqJf/4dDL/+HQz//dwLf+aNwb///Xr///y6v/36OH/ -9+jh//fo4f/36OH/9+jh//fo4f/36OH/9+jh//vu5/+PhYD/AAAAkQAAABwAAAAKAAAABQAAAAUA -AAAEAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADGPgBExT4Af9JFAH/XSAB/0EQAf6cw -ALnxXxf//9a1///Gov//wpz//8Kc///CnP//wZj//6Bs//+MUv//jFL//5FZ//+daf//pHP//6Rz -//+daf//kVn//4xS//+MUv//oGz//8GY///CnP//wpz//8Kc///LpP//z6v/xj4A/3BPPv+/lYL/ -57CV//m7nf/3vKD///fq////////////////////////9/L/+ejh//no4f/56OH/+ejh//no4f// -+/f/saqp/woDAMsAAAA2AAAAIgAAABoAAAAaAAAAGAAAABEAAAAIAAAAAgAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8OQALmCYA3P+RWf//xqL//8Wf///Fn///xZ///8Wf -///Fn///uI7//59q//+MUv/+h0v//odL//6HS//+h0v//4xS//+fav//uI7//8Wf///Fn///xZ// -/8Wf///Fn///xqL/93At/2c0G//8+PX///////////////////////////////////////////// -///////////////77+f/+erj//nq4//56uP///Tv//////99d3T/AAAAtQAAAIwAAACJAAAAkQAA -AI8AAABXAAAAFwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiyEA -AlEEAKX8gUT//8yn///Gov//xqL//8ai///Gov//xqL//8ai///Gov//xqL//7+W//+4jv//uI7/ -/7+W///Gov//xqL//8ai///Gov//xqL//8ai///Gov//xqL//8yn//+JTv9vQyz/9/f3//////// -/PT/+erj//nq4//56uP/+erj//nq4//56uP///z0///////////////////x6v/56uP/+erj//nq -4/////z//////5+cmf+fnJn/oJ2Z/6qmov+qpqL/TUQ+9gAAADIAAAANAAAAAQAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFUGABOgLAD0/8um///Nqf//yaP//8mj///Jo///yaP/ -/8mj///Jo///yaP//8mj///Jo///yaP//8mj///Jo///yaP//8mj///Jo///yaP//8mj///Jo/// -yaP//8mj///Mp///y6b/nDAA/9DGxf/q2tX/+ejh//vq5P//8u7///n0///59P//8u7/++rk//vq -4//76uT//////////////////O7n//vq4//76uP/++7n//////////////////////////////// -/5GIh/8AAAB3AAAAEQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACjLQBr -7lsQ///Xt///zKf//8yn///Mp///0K3//9e3///Zuv//1bT//8+r///Mp///zKf//8yn///Mp/// -zKf//8yn///Pq///1rX//9y8///Zuv//0q7//8yn///Mp///zKf//9a1/+1UB/9nYFv/6t3T///5 -8v//////////////////////////////////+fL/++7k//vu5P/////////////////77uT/++7k -//vu5P/77uT/++7k//vu5P/77uT/++7k///89//Wz83/Fw4LvwAAAA8AAAACAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmCgAyv+jcf//0q7//8+q///Pqv//1bT//9y+//+/lv// -roH//9y+///cvv//1bT//8+q///Pqv//z6r//8+q///Srv//3L7//9y+//+gbP//qnr//9y+///W -tf//z6v//8+q///Srv//mGL/gUAf//7y7f//////19DP/3hwbf9PR0T7UkdE+312cP/c19b///// -///89//77uT/++7k//////////////Tv//vu5P/77uT/++7k//vu5P/77uT/++7k///07v////// -++/q/09FQPkAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJ0rAPH/ -mGP//9y+///XuP//17j//9y+//+OVP+fKwDsqjAAu6kwAPn0ZyP//9e3///Srv//0K3//9Ct///Q -rf//1rX/+Xo6/6k2AP+/aj7/rkgU//dwLP//3L7//9q7///au///3L7//odL/6pOIf//////mZKP -/z00L8plX1w+kYyHA52WkgOEe3dAVEtHzaCZlf////////fv//zv5///+fL////////////87+f/ -/O/n//zv5//87+f//+/n////+f///////Pf0/3BpY/9US0WSLCUiAgAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQRAA0pC8A2vJnIv//3L7//9y+/+9fF/+nMADK6lEEIwAA -AADjTQMPoCwA6f++lf//0q7//9Ct///Qrf//0q7//8+q/6o0AP/VyML//u7n//zn3f/JdEj/00UA -///Qrf//1bX/6lEE/7hZKP/+4ND/urGq/xwXFMUAAAAQAAAAAAAAAAAAAAAAAAAAAIF4dglWT0vI -wriz////+f//8ej//+/o/////////////+/o///v6P//7+j///Ho/////P//////wbq4/1RKRe1U -S0dZaWBeAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOpR -BAm4NwCZxj4A/8xDAP+zNACY6lEECQAAAAAAAAAAAAAAALc3AJr8gkf//9Ku///Srv//0q7//9Ku -//+YY/9zMhH//vLt///x6v//8ej///Ho/+qrjP+xOgD/sToA/+iiff//7+r///Tv/2VcVv8AAABA -AAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAb2VgNG1gXv//9+////Lq///x6P////v////////07v// -8ej///Ho///y6v///Pf/gXh2/xoRDcEAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMQ9ADq7OQBEAAAAAAAAAAAAAAAAAAAA -AAAAAADFPgBJ4EsB///Wtf//1rX//9a1///Wtf/xXxj/LR4Y///17v//9O7///Tu///07v//9/H/ -/+/k///q3f//9O7///Tv//Lo4/9KPjzoAAAAHQAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAGxgXgFU -SkTt/PHq///07v//9O7///v0/////P//9/H///Tu///07v//9O7////5/1RLRf4AAAAqAAAADgAA -AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0kUAB6QvAPL/17f//9y+///cvv//3L7/ -tDYA/mdcWP////////fv///37///9+////fx///79///+fL///fv///58f/57+r/RTw35AAAACYA -AAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAFVEpF6f/58v//+fH///fv///58v//+/f///fx///3 -7///9+////fx//////9YT0v/AAAARwAAACIAAAAOAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAC3NwCVrTMA/7M0AP+zNAD/rjMA/4gzB/a6tbH////////58f//+fH///nx///38f// -9O////fv///58f//+/L//////2BWVPwAAABKAAAAGQAAAAgAAAACAAAAAAAAAAEAAAAEAAAAL2lf -XP////////vy///58f//9+////Tv///38f//+fH///nx///58f//////qaKg/zctKeMAAABeAAAA -JgAAABEAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANZHAApmEAAWAAAAjW1eWPrn -5OP//////////P//+fL///ny///58v//+fL//O/o//zv6P//+fL///vy//////+1rq3/AAAAuQAA -ADQAAAAdAAAAEAAAAAwAAAAOAAAAFg0EA7K+uLf////////78v//+fL//O/o//zv6P//+fL///ny -///58v//+fL////////////a19b/XlRP+QAAAIcAAAAjAAAACwAAAAEAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAVEpFvI+Ihf//////////////+///+/L///vy///78v//+/L///vy//zv -6P/35+H///Tv///78v///////////4F4dv8AAAC3AAAASgAAADAAAAAqAAAAPAoBALKHgHv///// -/////P//+/L///Tv//fn4f/87+j///vy///78v//+/L///vy///79P////z///////////99d3D/ -AAAAnQAAAA8AAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVk1KDmVcVv3///////////// -+f///PT///z0///89P///PT///z0///89P//9+//8eHa//fn3v///PT////3////////////raem -/15UT/gtJSLZLyYj2V9WUvmxran///////////////f///z0//fn3v/x4dr///fv///89P///PT/ -//z0///89P///PT///z0////+f////////n3/1JKROIAAAAOAAAAAQAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAABjWFXD4dLN/////P////f////3////9/////f////3////9/////f////3 -//no4f/u3NL/++rj////9/////n/////////////////+ff3//n39/////////////////////n/ -///3//vq4//u3NL/+ejh////9/////f////3////9/////n////5////+f////n////8/8Gzrf8A -AACfAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd21ncKmdmf////////// -//////////////////////////v////5////+f////f/79zW/+jXz//56N7////5////+f////z/ -/////////////////////////P////n////5//no3v/o18//79zW////9/////n////5/////P// -//////////////////////////////+HfXf/AAAASgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAIiAeBtvZV/7ycK//83Gxf/NxsX/zcbC/83Gwv//////////////+/////v/ -///7///89P/q2tD/5NLJ/+7a0v//9O7////7////+/////v////7////+/////v///Tu/+7a0v/k -0sn/6trQ///89P////v////7/////P///////////7Wuqv+3sa3/v7i3/8G6uP++tbH/X1VP6F9W -VAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAh314RIR7d3+MhIF/ -kYiFf4yEgH9vZWC5rqag///////////////8/////P////z////5//Tj2f/hz8X/4c/F/+TWy//x -4df/+efc//nn3P/x4df/5NbL/+HPxf/hz8X/9OPZ////+f////z////8/////P///////////4d9 -eP8AAACWNC0saGdfXHCFfXhzgHd0cIB3dDEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfXZwC2VcVdzh1s////////////// -//////////////////////vy//Lh2f/hz8X/3MvB/9zLwf/cy8H/3MvB/+HPxf/y4dn///vy//// -/////////////////////////////8G1rv8bFA6/AAAAFwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAFhSTQIvJiOlz8bC//////////////////////////////////////////////////// -+f//+/L///vy////+f/////////////////////////////////////////////////Wz8v/FA0K -vAAAAB8AAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyKSYTaV9c9P////////////////// -//////////////////////////////////////////////////////////////////////////// -/////////////////////////////////2VcVvcAAAA0AAAADQAAAAEAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAbGNea6efnf////////////////////////////////////////////////////////// -//////////////////////////////////////////////////////////////////////+inJb/ -AAAAdQAAAA4AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGVcVsrv5+P///////////////////// -////////////+fTy///////////////////////////////////////////////////////q5+T/ -8u/u////////////////////////////5NzZ/zQsKcEAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAABnXljx59zX///////////////////////a0s//aV9Y7HBnY7twZ2D5uLGq//////////// -/////////////////////8m/uv9vZV/2bGNer2xgXNy+ta7//////////////////////9bLxf9g -VlTOAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjoSANG1jX9q1rar///////////+tpqD/ -b2Vgyp+WkiMAAAAAmY+MD2lfXOn///v///////////////////////////9wZ2D7AAAAKEA8NwJ3 -b2wMdGxlp4+Fgf///////////5+Wkv9tZV/IeHBsKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAACflpIJe3BtmYeAeP+IgX3/d21nmJ+WkgkAAAAAAAAAAAAAAAB7cGya1sa///////// -///////////////q3Nb/NC0pwgAAAAsAAAAAAAAAAAAAAACFfXdmdmxl93ZsZfaIgHt0nZWRBQAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEeHY6fXZvRAAAAAAA -AAAAAAAAAAAAAAAAAAAAhXt2SZyPiP//////////////////////saaf/wAAAHQAAAAFAAAAAAAA -AAAAAAAAAAAAAIV9eBiFfXcXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI+FgAdtY1/y//////// -/////////////3hvbP0AAAAgCgMAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAe3BslXRsZf93bWf/d21n/3ZsZf9wZ2CraV9cAQAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRiIQKkoiF -DZWOiA2OhIALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAP/////////////9/////////gAf//////wAAAAB/////gAAAAH/////wQAED/////+A -AAAH/////wAAAAf/////AAAAA/////4AAAAH/////wAAAAf/////AAAAB/////8AAAAH////8AAA -AAA////gAAAAAB///8AAAAAAH///wAAAAAAP///AAAAAAA///8AAAAAAD///gAAAAAAP//+AAAAA -AAP//8AADwAAAAA/8AAPgAAAAD/wAA+AAACB/+AAB4AAAAD/wAACAAAAAP/AAAAAAAAAf8AAAAAA -AAD/gAAAAAAAAP/AAAAAAAAA/8AAAAAAAAD/wAAAAAAAAAfgAAAAAAAAA/8AAAAAAAAD/wAAAAAA -AAH/AAAAAAAAAf8AAAAAAAAB/wAAAAAAAAH/AAAAAAAAA/8AgAAB4AAH/4HAAAHwAB//58AAAfAA -D///wAAA8AAH///gAABAAAP///AAAAAAAf//+AAAAAAB///wAAAAAAH///gAAAAAA///+AAAAAAD -///4AAAAAAf///wAAAAAD////+AAAAD/////4AAAAP/////gAAAAf////+AAAAB/////4AAAAH// -///gAAAA/////+AQAAH/////8DgDg//////8+APP///////4A/////////wH/////////h////// -////////KAAAADAAAABgAAAAAQAgAAAAAACAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAABoAAAAeAAAAIQAAACEAAAAjAAAA -IwAAACMAAAAkAAAAKgAAADMAAAA4AAAANgAAACkAAAAkAAAAIwAAACMAAAAhAAAAIQAAAB0AAAAZ -AAAAEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAIAAAAEwAAABsAAAAjAAAAKQAAADA5AABlXgoA7WMOAP5jDgD/UgYA6gAAAFIAAAAyAAAA -KQAAACIAAAAbAAAAEwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAADAAAACwAAAAwAAAAHAAAABAAAAAdjDgCy7YJN///a -wv//3MX/10gA/wAAAH4AAAAQAAAAAgAAAAEAAAAGAAAAFQAAAA0AAAAHAAAAAQAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHYXAAkmAACMZxAA+R8AAKMA -AAAkAAAADQMAABNvEgD1/8iq//++nP//wqP/74tY/zQAAL0AAAAVAAAACAAAACRBAADAbxIA+hUA -AJkAAAAgAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -lSYAEXQXAMDBPQD//76d/9VFAP9NAwDYAAAAUhgAAJTGQAD//8iq//uuiP/8s47//8ap/20SAPYA -AABpAAAAYV8LAOnmbTL//8ir/81DAP9RBADZAAAALAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAfhsAd9NFAP//07r//8yw///Xv//tgUv/gRwA/9dIAP/8sYz/ -/7ya//uuiP/8ron//8ut/++JVv+4OQD/jiMA//ike///1bv//8mr///Qtf/JQQD/AwAAbAAAAAIA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhB4AR60zAP/+s47//LGL -//+3k///0LX//9e////WvP//xab//LGM//uuiP/7roj//rWR///MsP//17///9e////MsP/+tI// -/LOO//yuif+BHAD9BwAAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAXAoABnAUAO33oHb//rOO//ywif/8sYz//rSP//yzjv/8sIn//LCJ//ywif/8sIn//LCJ -//ywif/+s47//rOO//yxi//8sIn//rOO/+p6Qf9NAQDGAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAGgAAAQAAAAYAAAAJAAAACjwAAK7mbzP//rOO//ywif/8sIn//LCJ//+4 -lf//z7T//+DL///m0///5tP//+DJ///Ps//+t5P//LCJ//ywif/8sIn//rWS/9lIAP8RAACVAAAA -FgAAAAsAAAAKAAAACAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEHgABRwAAZAAAAIgAAACLCQAAioQeAPn/ -vJr//7eT//yxjP/8s47//9K3///m0///5tP//+bT///m0///5tP//+bT///m0///5tP//8+z//yx -jP/8sYz//7uZ//61kv96GgD3BwAAlgAAAI8AAACOAAAAcAAAABEAAAADAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVJgBR -qzIA/+ZtMP/kai3/4WAh//WccP//y67//rOO//6zjv//3cb//+bT///m0///zbH//7ya//+7mf// -u5n//7ya///Ps///5tP//+bT///Xvv/8sYz//rOO///Nsf/1nXP/5m0w/+ZtMP/mbTD/rTMA/wAA -AGUAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAACEHgCn7YRP///Vu///07j//9K3///Jq//+t5P//rOO///Vu///5tP/ -/+HM//+7mf//yav//93G///m0///5tP//97I///Jq///vp3//+TQ///m0///z7P//rOO//63k/// -yKr//9C1///St///1bv/74lW/0EAALUAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB7GgDy/LGL//++nf/+tZH//rOO -//6zjv/+s47//7ya///m0///5tL//7uZ///Lrf//vJr/2ksE/4wiAP+MIgD/2kgA//+6mP//zLD/ -/76d///m0///5tP//reT//6zjv/+s47//rOO//63k///wqP//LOO/3oaAPUwAAAIAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AACFHgDF3E8K///PtP//z7P//7uZ//60j//+tI///8+z///gyf//xqf//7+f//yuif+PIwD4hB4A -cbQ2ABHMQwAQszYAaosiAPf5qoL//7+f///MsP//4Mn//8mr//60j//+tI///7ya///St///waD/ -vDoA/4QeALKBHAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+PAAJkSUAl6YvAP/5p37//8Wm//61kv/+tZL//82x///Q -tf//upb//76c/8lAAP8DAABzdhcAAgAAAAAAAAAAAAAAAKkwAGTEPQD//76c//+8mv//0rf//8ut -//61kv/+tZL//8Wm/+6HUv+LIgD4Zg4AhAAAACsAAAAzAAAAOAAAADYAAAApAAAAJAAAACMAAAAj -AAAAIQAAACEAAAAdAAAAGQAAABEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKItAFmg -LAD//76c//+6lv//upb//8Ki///BoP//upb//76c/4khAP4AAAAcHgAAAgAAAAAAAAAAAAAAAMU+ -AAaFHgD6/7ya//+6lv//wqL//8Gg//+6lv//upb//76d/5MmAP8AAABqFRIQaTQvLO05MzD+OTMw -/ywoJeoAAABSAAAAMgAAACkAAAAiAAAAGwAAABMAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAXgoAAzwAAGGtMwD//8mr//+8mv//vJr//LGL//yxjP//vpz//8iq/4khAP0A -AAAhAAAABgAAAAAAAAAAAAAAAJopAAWFHgD4/8Sm//++nP/8sYv//LGM//+8mv//vpz//82x/6As -AP8AAAByKSUiuby6uv///////////4yHhf8AAAB+AAAAEAAAAAIAAAABAAAABgAAABUAAAANAAAA -BwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACrMgAKcBQAl6syAP/7rYf//8yw//++nf//vp3/ -+KR6//egdv//vpz//8+z/9BEAP8AAAB2AAAAFAAAAAcAAAADBgAABFEEAFvIQAD//8+z//+6lv/3 -oHb/+amA//++nf//vp3//82x//uuiP+rMgD+Mw0A++Hg3v/79PH////7/8zJyP8VERC9AAAAFQAA -AAgAAAAkHhoYwEA6OfoAAACZAAAAIAAAAAkAAAABAAAAAAAAAAAAAAAAAAAAAAAAAACOIwDA3VQQ -///Ps///0LX//8Ki//+/n///v5//+KR6//KSYv/7rYf//8mr//yxjP+RIwD2AAAAdgAAACIAAAAb -AAAAZY4jAPH7rYX//8uu//mpgf/ykmL/+aqC//+/n///v5///8Ki///Qtf//zbH/3E4H/4RIKf/r -4Nr/+O7q//////9AOjf2AAAAaQAAAGE2MC3psK2r//////+FgoD/KyYj2QAAACwAAAACAAAAAAAA -AAAAAAAAAAAAAAAAAACRIwDy/8Ki///Lrv//wqL//7+f//+/n///v5///reT/+6HUv/vi1n//76d -///St//8s47/zUMA/4siAPmLIgD5yUEA//uuiP//07r//7ya/++IVf/uh1T//7ya//+/n///waD/ -/8Gg///Co///y67//7iV/5IzBv/u4d3/9erm///////Lycj/dnFw/1ZST//k4+P///////////// -////gn57/wAAAGwAAAACAAAAAAAAAAAAAAAAAAAAAAAAAACdKwCn7YRP///cxf//4Mn//97I///V -u///xqn//8Kj//WccP/tgUv/8Y9f///BoP//0rf//9rC///WvP//1rz//9rC///St///v5//74tZ -/+2BS//3onj//8Kj///Lrf//2cH//+DL///gy///3cb/6Hc+/6pvT//06OP/9erk//vy6/////// -////////////////+fHr//jt6P/16+b/TkpH/QAAACoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC7 -OgBPwj0A/+t+R//tgEr/635I//mqgv//1bv//8mr///EpP/yk2P/7YFL/+6HVP/5qoL//8Kj///M -sP//zLD//8Gg//imff/uhE//7YFL//SZbP//xab//8mr///Xvv/ylWb/5m8z/+h2PP/nczn/tzcA -/+e+qv/36ub/9+rm//fq5v/36+b/+e7o//nx6v/36+f/9+rm//nx6v/BuLP/KCIfxgAAAAkAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwj0AYMQ+AH/JQQB/xkAAg6AsAPb+t5P//8yw///Iqv// -xab/96B0/+2BS//tgUv/7YFL/+6HUv/uhE//7YFL/+2BS//tgk7/+KR6///Iqv//yKr//8uu//mn -fv+YMwH/qYJw/9CVd//anX7/9cWu/////////////////////////////PLt//fr5v/36+b/9+vm -//vy7f+PiIX/AAAAlQAAABYAAAALAAAACgAAAAgAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAKoyAJTkai3//8yw///Lrf//y63//8ut//+/n//3oHb/8Y5c/+6HUv/uh1L/8ZJi//ikev// -v5///8ut///Lrf//y63//8yw/+p3QP+BTzb/59zX//////////////////////////////////// -///////////////////46+f/+Ovn///49P/19PT/SkVB9wAAAJYAAACPAAAAjgAAAHAAAAARAAAA -AwAAAAAAAAAAAAAAAAAAAAAAAAAAvjwAAZ0rANn8sYz//8+0///MsP//zbH//9C1///PtP//zbH/ -/8yw///MsP//zLD//8yw///Nsf//0LX//9K3///Ps///zLD//8+0//++nf+WNAP//Pn4//////// -///////////38v//9/H///fx///59P//////////////////////+O3n//nx6v//////3dzc/66r -q/+uq6v/rqur/29pZv8AAABlAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAszYAP8lAAP//1rz//8+z -///St///3sj//+TQ///m0///3sj//9K3///Nsf//zbH//9K3///cxf//5tL//97I///hzP//1bv/ -/9C1///WvP/TRQD/wru3////////9/T///////////////////////////////////n1//////// -//////////nt6P/88u3//////////////////////8vIxv8fGxq1AAAACQAAAAAAAAAAAAAAAAAA -AAAAAAAArTIAfOBcGv//2cL//+DJ///jzf/5qYD/rjMA/9dIAP/0mWz//9nB///St///0LX//9a8 -//mpgf/XSAD/oi8A/++JVv//483//+PN///Zwv/gXBr/0J+F///18f///////Pn4/5GOif9WUk7/ -Vk9O/4+Jh//79/X////////59f////////////z07f/57uj/+e7o//nu6P/89O3////5//fx6/9K -RUH1EQ4NCAAAAAAAAAAAAAAAAAAAAAAAAAAAxkAAG6cwAMDcUQv//9O6/+t9Rf+jLQDh2koBO9VH -AESxNAD9/9K3///TuP//07j//9W7/9VHAP/Eo5L//+7h/7xeMP/eWBX//76c/9pIAP/EbEH//+vh -///79//y6uf/WFJP+E9LSHFzcGwRhIB+EHNsampWT0337efk///79//////////////////78er/ -+/Hq///49P////////z7/3p0cf9PS0iyTkpHAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANxPCgO+ -PAB4oiwA960zALXcTQYUAAAAAAAAAACnMADE+KZ+///awv//2sL//8Gg/5osAPZpX1v/6uTj///8 -9//Zk2//rksa/++3mv////////Xu///49P+Efnj/AAAAc0VBPgIAAAAAAAAAAAAAAABqZmNkgHd0 -///49P//+PL////////////88uv//PLr////+//LxsL/VlJO91JLSHBKRUQBAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvjwAAwAAAAAAAAAAAAAAAAAAAAC7OgB253E2///m0/// -5tP/8Y9e/50rAJ1pYFtaZV5b///49P//9e7///Tu///8+////Pn///Xu///59P9VTkv+AAAAHAQA -AAIAAAAAAAAAAAAAAACBeHYGUktI+v/38v//9e7///z7///8+f//9O7///Tu///59f9cVlT/AAAA -SAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAADXSAAapy8A4KIsAP+iLAD/oiwA68tDADobFRRhcGlm////////9/H///fx//Xt6P/3 -7er///jy//////9VTkv9AAAAIQAAAAYAAAAAAAAAAAAAAABgW1gFUktI+P///P//+PL/9e3o//fu -6v//9/H///fy//////9lYFz/AAAAbgAAABcAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGdlCkE9OpdsZ2X/ -7evr////////+PL///jy/+rg3P/n3Nf///fy//////+HgoH/AAAAdgAAABQAAAAHAAAAAwAAAAQr -JiNbgXt4////////9e7/59zX/+7k3v//+PL///jy///////u7ev/bGZl/g4LCp4AAAAcAAAABQAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAWFJOwJiVkv/////////////8+P//+fT///n0/+vg2v/azcj/9ejj///////x7u7/ -WVRP9gAAAHYAAAAiAAAAGwAAAGVYUk7x7evq///////x5N3/2s3I//Hm3v//+fT///n0///8+P// -/////////5KOjP8tKSi+AAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWVRP8v//+/////////z3///79f//+/X///v1 -///y6//Qwrv/1sjB///59P//////8vHu/4WBgP9WT035Vk9N+YJ+e//u7ev////////38v/Sxr7/ -0MS8///38f//+/X///z3///89/////j///////n08v9UTUrnAAAABwAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY1xZp8nB -vP/////////////////////////8////+P/m2dD/zL63/9rMxP///Pf///////////////////// -//////////////n1/9bIwf/Mvrf/697X////+P///////////////////////////7y0sf9FQD2X -QT06AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAeHNwT353dP/BvLv/wr++/8G+vP/r5+b//////////P////j/3M/I/8y+ -t//QxLz/8uTd////+P/////////////89//u4Nr/z8G6/8y+t//j1c3////5/////P//////19LQ -/7Guq/+4tLP/t7Ow/3ZwbP90b2w/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH53dGCAeHZ/hIB7f4F6d4Nl -Xlv2+/Tu//////////v////5/+ja1f/Mvrf/zL63/8y+t//Qwrv/z8G6/8y+t//Mvrf/zb+4/+3e -2f////v////7///////t5uD/WVRP7CMfHnFmYl5zb2lmc3t3dFYAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAABsZmOUsaum////////////////////////+fL/6t3W/9nLwv/Q -wrv/0MK7/9rMxv/t3tn///v1//////////////////////+8t7P/IRwbqAAAAA4sKCYBAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHt2cwFjXFnZ9O7t//////////// -//////////////////////////////////////////////////////////////////////////// -+/n/WFJO6gAAABcAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AHRvaT+Ce3j///////////////////////////////////////////////////////////////// -////////////////////////////////iYSB/wAAAE8OCwoCAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG9mY3yimpb/////////////////6ubk/3FqZv+Oh4X/3NfV -///////////////////////r5+T/joiF/2ZgXPvMyMb/////////////////o5yW/01IRYArKCMB -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIF6dxtqZWLAlpGO//// -//+/u7r/aWNe4ZGJhzuMhYFEc2pn/f////////////////////+MhIH/KygjZoiEgSNqY2DCnZaV -//z5+f+PiYf/aWNevHp0cR0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAACVj4wDe3ZzeGdgXPdwaWa1k46JFAAAAAAAAAAAamVixO3j3f/////////////8 -9/9jXFnqLysoCgAAAACEgHsFdnBsgmVeW9d+d3RmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHt2cwMAAAAAAAAAAAAAAAAA -AAAAenNwdrewrf///////////9LMy/9jXlmdcWpmAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj4iEGmplYOBnYFz/Z2Bc/2dgXOuIgoA4AAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////wAA+AAAH///AAD+AAB///8AAP4AAB// -/wAA/AAAD///AAD4AAAP//8AAPgAAA///wAA+AAAH///AAD4AAAf//8AAMAAAAH//wAAgAAAAP// -AACAAAAA//8AAIAAAAD//wAAgAAAAP//AACAAAAA//8AAIABwAAAHwAA4AHAAAB/AADAAcAAAB8A -AIAAAAAADwAAgAAAAAAPAACAAAAAAA8AAIAAAAAAHwAAgAAAAAAfAADAAAAAAAEAAPwAAAAAAAAA -+AAAAAAAAAD4AAAAAAAAAPgAAAAAAAAA+AAAAAAAAAD8GAABwAEAAP94AAHAAwAA//gAAcAAAAD/ -/4AAAAAAAP//gAAAAAAA//+AAAAAAAD//4AAAAAAAP//gAAAAQAA///AAAADAAD///wAAA8AAP// -+AAADwAA///4AAAPAAD///gAAA8AAP//+AAAHwAA///8GAh/AAD///94D/8AAP////gf/wAA//// -////AAD///////8AACgAAAAgAAAAQAAAAAEAIAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAABoAAAAfAAAAIQAAACIAAAAjAAAAIwAAACcAAAAxAAAA -PQAAADkAAAApAAAAIwAAACMAAAAhAAAAHwAAABoAAAASAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/KZ7AQAAAAwAAAAZAAAAJQAAACkA -AABLZw4A2nQUAP+AGgD/QQAA8QAAAGcAAAArAAAAIgAAAB0AAAAS4EsBAwAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhRsA -GyEAAHMAAABkAAAAEAcAAEO4NADY/82w///u3f/gTQP1AAAAZQAAAAgBAAA+LQAAiwAAAEsAAAAU -AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAALo2ACqSIgDR3kcA/8I5AP0zAACnFwAAkeZeGv//3sj//+HL/e57Qf82AACnHAAAjJEh -AO7oZyj/rjAA/xcAAIMAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAGkyIAkOdgHP//+Or//9m//+hnJv/hTgT//7GL///TuP//y63/ -/7yZ/+hmJf/hTgT//76c///35///upX/jyEA5wkAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjCwBb2kUA///NsP3/07j//+rW/f/r -2f//2sH9/8an///FpP3/1rz//+rW/f/t2v//1779/8+x/+10Of9EAAClAAAADwAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOAQAkCgAAKgAAAEqpLQD/ -/8mr///Cov//xaT//82x///Xvv//5M///+bQ///exv//0rf//8an///Bn///07j/4U0D/xsAAIgA -AAA5AAAAMQAAABcAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAApisAJ4Ib -AMCMHwDHkyIAz+dfG///1779/8am///Zv/3/9OT////0/f//9P////T9///0///46v3/483//8mq -/f/Wu//4lmb/rjAA64UcANaIHADaEAAAowAAAC0AAAAjAAAAIwAAACEAAAAfAAAAGgAAABIAAAAA -AAAAAAAAAACHHACW7ng9//+6lv//t5L//8+z///TuP//2sL///nr///04///y6v//KmA//yme/// -xaT//+rW///77v//59L//8+x///eyP//u5j//7WP//+6lv+dKAD/AAAAdgAAACsAAAAiAAAAHQAA -ABKBgYEDAAAAAAAAAAAAAAAAAAAAAHgVANf+q4L///Lh///dxf3/zbH//8ut/f/v3v//69f++6J2 -/tJBAN2gKACnrS8Apd5HANn4nG3+/+HL///15v7/1rz//8ip/v/Xvv//6tf//+HL/7g0AP8OAACH -AAAACAAAAD4JBgSLAAAASwAAABQAAAACAAAAAAAAAAAAAAAAoikAguBLAPP+qoD//9a7///Iqf// -0rf//+3a//+3kv+pLQDfTwEAY3ESAAdFAAAEbyUAdLtAAfj+qoD//+fT///cxP//yar//9O4//+8 -mf/oZib/mUgf/xEHA68AAACMS0pH7pqZmf9fXFv/AAAAgwAAAA8AAAAAAAAAAAAAAAAoAAACmSUA -ZqstAPb/wqL//8+x///Nsf3/3MT/+Jlq/z0AALMAAAAKAAAAAAAAAAZOSEWQmE4p//SMWP//2b// -/9O4///Lrf//3MT/41IK/3pRPP/MxL7/mpiW/4WCgf/q5+j//////+bh4P9LSETnAAAAGwAAAAAA -AAAAAAAAADYAAAGJHgBtsDAA+P/Mrv//0LT//8an///Lrf/7pHj/RwAAtwAAABYAAAACAAAAAC0o -JlyAPBr/+Jlq///QtP//xaT//8ur///jzP/qbCz/fUgs/sG4tP/////9///////++/3+9O//q6Kf -/xgVFKUAAAAPAAAAAAAAAAAAAAAApisAi+FOBPP/s4z//97I/f/QtP//xKP9/7SO//+3kv/FPADl -CQAAeQAAAD4AAAA8FwAAlLc+Af//u5j//7yZ//+4k///zK7//9rB///NsP/xgkv/k0Qc/97Tz//4 -7uj/8ufh///58v+HgX7/AAAAiAAAADkAAAAxAAAAFwAAAAKIHgDZ/7WP///35///6NX//93F///L -rf/8pnr//7WP//6thf7LPgDqVRIA7lQUAO+4PAD6/q2F///FpP/7onT//8Gf///awf//5tD///Hg -///t2v/FOgD/9erj/f/////57ur9//v4/8bEwv9iX17nS0VEzE1KSM4AAACJAAAABaMrAJfve0H/ -/7+d//+/nf//3MT//+DJ/f++mv/5nXD9/7WR//+/nf//t5L//7iT///FpP//wZ//+aBz//+uh/// -1br//+fT///Cov//vpz//7OM/6IsAP/////////////////89fH//////+bk4//h3d3/5uPh/1VR -Tf8AAAAZ2kUAIMw+ALbgSgC910QAxOdjIv//3cX//9m///++nP/7oHP/+6N3//+wiP//sYn//Kd9 -//mfcf//s4z//9C0///jzP/3k2L/sDwD+q09Bum6RAnop2I+6czIxf7//////////f/8+P/47+v9 -///5//////3/////Z2Nf/yMhHzgAAAAAAAAAGgAAABrcRQAytDMA9v/QtP//3sb//9rC/f/Stf// -wZ/+/7OM//+xif//upb//8ur///awf//3MT//+jV/+txNP8wAAC6MgAALwAAACEwKyhddG9t2NzV -z/////////////nu6v//+PT/6uTh/5yYlf5NSEe3AAAAFgAAAAAAAAAAAAAAAM0+AE7kVhD//+rX -///q1v//++3////0///x4P//3sj//9rC///q1v//++3////y///x4P//69f//q2F/34YAMAmAAAT -AAAAAAAAAABSTUuhv7i1///++/3/+PX/+/Ht/f///P+LhYL/CwcGogAAACIAAAAAAAAAAAAAAAAA -AAAFxToAj+10Of////T9/+3a//GAR//eRwD//qqA///v3f//5tD//9a7/+56QP/gSAD//7eS//// -9P//yar/szMA+IseAB0AAAAACgkHAkA8OqPLxcL//vXy//Tr5//78ev//////5+cmv8bFRSvAAAA -OAAAAAEAAAAAAAAAAAAAAADmXBglyT0A0ONWEP/mWxX/xTwAodlEAGzeWRf3/9m////y4f/5nW// -wm1D/92igv7JVBj/5lwX/786AP+AKACwAAAAIgAAABYHAwFobWpp3Ojk4f/t49796+Da//7x6/3/ -//v/9/Ty/rSxsf86NjPMAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAP4E0DZ+BIAFwAAAAABAAAJ7xO -FfX/wqL////0/+99Q//rrY7//PHr/9LBtf/gpIj/3MvB/nNwb+YoIiG7JSIhuGxpaePa2df+8uvo -/9fMxf/y5+D///z5/////////////////29pZ/8QCwssAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAnEojwZwrAP+WIwD/xmU0/97Sy//////97+Te/9PIwf3m3tr/6+rm/+Pg4f/j -4eH/7+7r/+7n5P7VycX/49bP/f/59P/////97urq/+rm5v/h3dr/VlFO+WJeWwYAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+enYgdG9ttoJ+e717dnTEmpWS/////v///vj/8eTe -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 -///r2f//9+j/////////////7t3///Hg//uuiP/0mm3/fSEA/BgUEuwOCwp3AAAANQAAADUAAAAv -AAAAHAAAABwAAAAVligA///gyf//9OT//+rX////+f//++7/3E8K/4siANyMIgDo7YJO////9/// -//f//+rX///05P//17//mSsA/9XT0/8+OjnFX1tZUTQwL91APDqkY2BeFQAAAAAAAAAArTIAhbE0 -APz/yav//+bS///15//0mGr/nywAtOBbGAHcTQYOkSUA6P/Nsf//9eb//+bS///Cov+kMAD/56uM -//////9bVlX/VVFP/+De3v+TkY//Pjo3tQAAAAAAAAAAzEMATpopAOz/xKb//+rX///WvP/1mm3/ -pzAAoAAAAADTRQADlSYA3f/Vu///1rz//+vZ///Epv+kOgf/9MSr///7+P////////////////+p -o6L/TUhHmQAAAAAAAAAApC8A+v/Qtf//++////Hh///Cov//3sj/vjwA/KsyAKudMADR4WAh///r -2f//xab///Lj///87///z7P/ozIA/////////////PTv//z18f+HgoH/R0NAxEpFQ6JeW1g/nCsA -5v/Lrv//7t3////7///kz//+tZH//+PN//yxjP//vJr//+3a//6zjv//5tP////1///t3P//xab/ -qUUU///////////////////7+P////7/yMbF/7e1tP9DPj3Yy0EAZaIsANWiLADk7oRP///36P// -483//7qY//60j//+tI///7uZ///m0///9+j/64BK/61EEP+aOQf/d0Em50M+POimop////////// -////+PT////+/+/o5v9LRUT9AAAAAAAAAADEPgCR8pNl////+f/////////////87////O////// -//////////v/9Zxv/8RvRf9PS0i0gn59AXdzcQ5FQT7o6ODc///////+8u7/3dbS/1ROTflgXFl1 -AAAAAAAAAACwNAC++KN4////+f/mbTL/635H////////////74tZ/+FgH///9ef/96J4/7BUJf9V -UU6gAAAAAHBsaQNIQ0Hd6+bk/+7n4///+PL/3dnX/01IRex0b21LAAAAAAAAAADeWBQlszQA0Ls6 -APzcTQaBqzIA3//r2f///vL/s0AE//i6mf+1PQH/wVkl/+/az/9jX1z8WFJPq1JOS8KHhIL//vn3 -/+PX0v///vn//////+bh4P9RS0j5AAAAAAAAAAAAAAAAAAAAAM1DAA8AAAAA0EQAes1DAP/TRQD/ -0oBW///8+////////PLt/9bLxP/39PH/y8nI/9XT0v/++/n/1cnC//707////////vz7/97a1/9O -SkfeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsZmNlUU1K1VFNSuSpo5/////8//zx -6//azcj/1cnE/9XJxP/cz8n///Tu/////P+kn5r/UU1K41FNStRzb2xSAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGdiX5G1rqv///////////////////////////////// -//////////+7tbP/amVilwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAFtVUr7Cu7j//////5OPjP+inZr///////////+tp6b/h4KB///////Bu7j/WVRRwAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIF7eCVcVlTQYlxZ -/HhzcIFYUk/f/vn4//////9bVVLveHNwa1tWVPRfW1jJgn16JQAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbWdlDwAAAABvamd6bWlm/3Bsaf9p -Y2CYAAAAAGxnZQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA -AAAAAAAAAAAA////AP///wAAAP8AwAP/AMAD/wDAA/8AAAD/AAAAAAAAAAMAAAADAAEAAwAAAAAA -AAAAAAAAAADAAAAAwAEAAMAAAAD0AAAA/wAAAP/AAwD/wAMA/8ADAP/0LwD///8AKAAAABAAAAAg -AAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAABMAAAAMAAAALAAAADcAAABLTwEA6UgA -AOUAAAA9AAAAPwAAACsAAAALAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAGM1AANHdTw7rPgAA -xv/t3P//0Lf/OgAAvuFcH/rXRADUEgAAIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADjocTr/ -///7///Suv//5NL9/+rZ///Msf////v/42Aj/wAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAALs2AGiP -IQDa2kcB+v/05v////v////7////+/////X///fq/8g9APmWJQDYvjkAagAAAAAAAAAAAAAAAAAA -AACOIQD///jr///15/7///v//+7d/95WF//ncDn////5////9P3/+Or///jq/4sfAP8AAAA/AAAA -KwAAAAsAAAASehcAqO6CT///5NL8//zv/745APR2HwA5eFhH3d5WF/////n//+HN/+hzPP9fFwDl -koyO+n13dtQAAAAiAAAAAJkmAGvkZSn///Tk///CpP/hXB/oAAAARaaMgf/jYib//820///y4//k -ZSn/0p+H//////+ZkYz/AAAALQAAAACdKAD////7////+/7/v6D/+aaA/91sOf3hYCb//76f///B -ov////v////7/5MjAP//////cG1v+VRLRdhsZ2Vq2kUAlrEyAP/kZiv7//zv//+/ov/4o3v/+6qE -///Fp////O//4F4i/7AyAP/+s5H//////P//////////SkRD/wAAAAAAAAAk6ndB////+////PH/ -///7////+////PH////7/+6CT/8UCgdfj4iE//////3///n/p6Kd/0RBPZkAAAAAKwAALOt7SPXx -jl//kigA6v/t3P///vT/p0QX/+t7R//rfUv0PhwNUJaRkv/58u3//////5iWk/9bVFRrAAAAAAAA -AAAAAAAMhRwAHkc6N//cTgv/3U8O/7Sgmf/Qxr//mJKR75OTkvzq5uD/8ePc/P//////////T0tI -/wAAAAAAAAAAAAAAAAAAAACAenaWY19b/5yWkvv/////9OPc/NXLxv/c0Mv/9efe/P////6Tj4z7 -Ylxb/4eCe4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSupJ////////////////////////////// -////ta6q/wAAACcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBAEss6aj9bu6uP9UTUjb//////// -//9UTUvXraqn/7Oqp/MHBAEtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxIPj0eAAAA -LIF7ePmIgoD/AAAAPkVBPg8AAAAMAAAAAAAAAAAADwAAgB8AAIAfAAAADwAAAAAAAAABAAAAAQAA -AAAAAAAAAACAAAAAgAAAAMAAAADwAAAA+AEAAPgBAAD8AwAACw==')) - #endregion - $Status.Icon = $Formatter_binaryFomatter.Deserialize($System_IO_MemoryStream) - $Formatter_binaryFomatter = $null - $System_IO_MemoryStream = $null - $Status.Name = 'Status' - $Status.Width = 2250 - # # folderbrowserdialog1 # # @@ -4543,12 +4015,13 @@ N3+rDNAzAAAAAElFTkSuQmCCCw==')) [void]$contextmenustrip2.Items.Add($ExpandAll2) [void]$contextmenustrip2.Items.Add($CollapseAll2) [void]$contextmenustrip2.Items.Add($toolstripseparator2) + [void]$contextmenustrip2.Items.Add($SaveToJson) [void]$contextmenustrip2.Items.Add($SaveNodestoTxt) [void]$contextmenustrip2.Items.Add($ExportSingleUncompressed) [void]$contextmenustrip2.Items.Add($toolstripseparator5) [void]$contextmenustrip2.Items.Add($Exit2) $contextmenustrip2.Name = 'contextmenustrip2' - $contextmenustrip2.Size = New-Object System.Drawing.Size(422, 298) + $contextmenustrip2.Size = New-Object System.Drawing.Size(422, 328) # # Expand2 # @@ -4746,8 +4219,8 @@ LwCyZHmRj+O9Mk9WxPKcUIxkBbbDkK85u7c+yQrqDljO7q1PsoKd/GZs+edFsgL6MudVHVnO7n1O $treeview2.Margin = '5, 5, 5, 9' $treeview2.Name = 'treeview2' $treeview2.ShowNodeToolTips = $True - $treeview2.Size = New-Object System.Drawing.Size(1555, 1118) - $treeview2.TabIndex = 0 + $treeview2.Size = New-Object System.Drawing.Size(1558, 1129) + $treeview2.TabIndex = 3 $treeview2.add_NodeMouseClick($treeview2_NodeMouseClick) $treeview2.add_NodeMouseDoubleClick($treeview2_NodeMouseDoubleClick) # @@ -5100,10 +4573,70 @@ hAgPwTXXg7/FfoJ/cyXEGeJsEnAe5xdIkpT9B1V/coZQeLOUAAAAAElFTkSuQmCCCw==')) # $toolstripseparator8.Name = 'toolstripseparator8' $toolstripseparator8.Size = New-Object System.Drawing.Size(323, 6) + # + # SaveToJson + # + #region Binary Data + $Formatter_binaryFomatter = New-Object System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + $System_IO_MemoryStream = New-Object System.IO.MemoryStream (,[byte[]][System.Convert]::FromBase64String(' +AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBD +dWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0 +ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAGwMAAAKJUE5HDQoaCgAA +AA1JSERSAAAAGAAAABgIBgAAAOB3PfgAAAABc1JHQgCuzhzpAAAABGdBTUEAALGPC/xhBQAAAAlw +SFlzAAAWJQAAFiUBSVIk8AAAArBJREFUSEu9lW9oEnEYx88cjrVmsYr+MolRsBxtjAo2GBQSBhES +qCwYvQhGFMmSzECZKARNgva29qZeB4mDRb0LYy+KCY0NFkWGYUxRRByKjcSn53ncHaeeesHoCx9+ +9/vd9+57533vFP6XFhEgvi98bMvaqwh7t3knCFoNji0FgUdP+IAfb5YViFZ5Wx1juEZep3tGDNmP +7EKaSjSCWpHX7QmIx/UhHYiSeun2YCYwKwXEfyYgHA4rkk5n2ENeWcApRIcoSHOoISCxkYTS7y2A +SoXnpEqlDPnNAmykspDN5th7645TDDiNdCIK0h7mgIfbV0P6vLICHo8HgsFgA6GFRVhdW2evdWJS +DDBqmwYIBzngtsMtBdCVZ9IpGBu3iCdQbFM9je3qonNXn8H1ySneISqVSvF8B9ql54DLV2zioiJq +Rd66dnVzwOjYJejWH2M6Og+AoOlh0w60i38nGBwaxYUucYeEPECNyCsLoHbpOGBg8DwvGgxG2Cz+ +gVlsDM3l7Uric1G6euJbLM4e8k7f9/CIGBFNTUAfBiSSebjrmOZ5TbuaqFAqQ66A7w2KvDenHDwi +FCBQQKFn33Fc0HFAdPUXWG0TbKpvVzuR95r1Bo8IB5C8SEXQ6DngaywDz+Zfsqldu5S4cPGquC0F +0Fv4ACkiNWZ5u9QyPDLeEECf2t3IUWQAGUHOIU3b1Yr+k8PithRAohC6kz3IXqQXqWkX6XUoBO8j +H3ibZDabJUwmE3tP9A8pBshFDx6/X7XtKuMJn87NwfP5F4DFYdntdrDZbGC1WsFiqX671ASQGtqV +SFfgntMFPv9j+BIvQb4E4PP5wOv18tfX5XL9UwCppl35IkBkaRk+RdchnQPYwr8Lv98vQSHolwfQ +82yppu1SwRJyBGkppXadVcEZxCAIgv4vkKOg4aVjOQYAAAAASUVORK5CYIIL')) + #endregion + $SaveToJson.Image = $Formatter_binaryFomatter.Deserialize($System_IO_MemoryStream) + $Formatter_binaryFomatter = $null + $System_IO_MemoryStream = $null + $SaveToJson.Name = 'SaveToJson' + $SaveToJson.Size = New-Object System.Drawing.Size(421, 30) + $SaveToJson.Text = 'Save .pf to Json' + $SaveToJson.add_Click($SaveToJson_Click) + # + # Status + # + #region Binary Data + $Formatter_binaryFomatter = New-Object System.Runtime.Serialization.Formatters.Binary.BinaryFormatter + $System_IO_MemoryStream = New-Object System.IO.MemoryStream (,[byte[]][System.Convert]::FromBase64String(' +AAEAAAD/////AQAAAAAAAAAMAgAAAFFTeXN0ZW0uRHJhd2luZywgVmVyc2lvbj00LjAuMC4wLCBD +dWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWIwM2Y1ZjdmMTFkNTBhM2EFAQAAABVTeXN0 +ZW0uRHJhd2luZy5CaXRtYXABAAAABERhdGEHAgIAAAAJAwAAAA8DAAAAEAMAAAKJUE5HDQoaCgAA +AA1JSERSAAAAEAAAABAIBgAAAB/z/2EAAAABc1JHQgCuzhzpAAAABGdBTUEAALGPC/xhBQAAAAlw +SFlzAAAWJQAAFiUBSVIk8AAAAqVJREFUOE99U21Ik1EYvUIgpBVZsH6I4kdmuP74I5u0lbSx0bD1 +Y0SgNDGsSCMjUHEIKoZCQ9kGw0GiqLgYJIlGoaAUJIIJJoVmmyibH22oaBs593F67nwtUevA4b3v +vc859zmXe9l/EC+VqZLoK67S1wVq65tAY5ksT3GCr/GCfyLmSKy4q6ff/25wCKp87XcIUOdrp232 +V7DZ+39SzQWh/FCkt3f3CrKDsPe+4d2c2yndh4rqWkuB7i5MlhdBXuxw+UKj418xPunA3LI/RFMR +Q4s5WFBYDH19Y4MgiyKeJT5LyslVIu6GA8c1Tlg7BjAyOgmjqXXdZDaH5pc8ZLjBTaJQqTW8E44s +sUrv9euaN8AyTR7HKuCLACK5DUq9F+oar+9YouymyWjB6mYgKjZbWqHVFpQKBiw9r9ID3jP359+9 +Y039GmKPntY1NLXQH8Lcoq3TBmme3MqYYtbCsvuQdc8dXCdB5wig79pCgz0I20eAz6XemQfLfg1j +P7UF/IlwTX6dImS27e4Y6SBxbU8AkjJnOKNoAe3DZPj+b0cszcx1ePyoPKBQa2dK7pc9ZCzDWnq+ +xA23D+j+ACQXLqxQJEWdoQcZxS4MTACuTYDXNLZPRQ0MRis/POEeiKpf8oxTboR4u0wy7GPJFRLl +7Sqn6NYceN6JBeDy0xUwkW6x2WDarqis+ULK1B2DlGZ4t4BlPyK8TecanT4JJeXLUTE1FvbQOidL +fs53vkLMIsYRExi7OPSApbTMxihnt5eoejcvp5/o+UVC6ViAnbXMUHeU+XBcyn2yEhUNUkyKE/7m +Afo+7RilFbn2ZD4UJ8+wqxOf6fZ56cGN8ov0dpJ2ZrnDdKjbTD5NmROEzAdxisifp5iYQ1SzGM0P +xlSLNJYS92XeC8Z+A8/d+vPgUataAAAAAElFTkSuQmCCCw==')) + #endregion + $Status.Image = $Formatter_binaryFomatter.Deserialize($System_IO_MemoryStream) + $Formatter_binaryFomatter = $null + $System_IO_MemoryStream = $null + $Status.Name = 'Status' + $Status.Size = New-Object System.Drawing.Size(16, 21) + $Statusbar.ResumeLayout() $contextmenustrip3.ResumeLayout() $contextmenustrip2.ResumeLayout() $contextmenustrip1.ResumeLayout() - $Status.EndInit() $menustrip1.ResumeLayout() $splitcontainer1.ResumeLayout() $PrefetchBrowser.ResumeLayout() @@ -5131,8 +4664,8 @@ Main ($CommandLine) # SIG # Begin signature block # MIIviAYJKoZIhvcNAQcCoIIveTCCL3UCAQExDzANBglghkgBZQMEAgEFADB5Bgor # BgEEAYI3AgEEoGswaTA0BgorBgEEAYI3AgEeMCYCAwEAAAQQH8w7YFlLCE63JNLG -# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCC6rtzALGlqdgdv -# +2CDbvZCsgk4QMBSUHXfBcXw3XgOKqCCKI0wggQyMIIDGqADAgECAgEBMA0GCSqG +# KX7zUQIBAAIBAAIBAAIBAAIBADAxMA0GCWCGSAFlAwQCAQUABCDdC6yY74ndLUNS +# UoFxSpEX7b6LsaFkd6owX5Jztbz9BaCCKI0wggQyMIIDGqADAgECAgEBMA0GCSqG # SIb3DQEBBQUAMHsxCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVyIE1hbmNo # ZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9kbyBDQSBMaW1p # dGVkMSEwHwYDVQQDDBhBQUEgQ2VydGlmaWNhdGUgU2VydmljZXMwHhcNMDQwMTAx @@ -5352,35 +4885,35 @@ Main ($CommandLine) # AQEwaDBUMQswCQYDVQQGEwJHQjEYMBYGA1UEChMPU2VjdGlnbyBMaW1pdGVkMSsw # KQYDVQQDEyJTZWN0aWdvIFB1YmxpYyBDb2RlIFNpZ25pbmcgQ0EgUjM2AhALYufv # MdbwtA/sWXrOPd+kMA0GCWCGSAFlAwQCAQUAoEwwGQYJKoZIhvcNAQkDMQwGCisG -# AQQBgjcCAQQwLwYJKoZIhvcNAQkEMSIEIN0t3EkOaNG9j4G4U7yNER5HiM1wLiPE -# 0q1jwpURrlk5MA0GCSqGSIb3DQEBAQUABIICAEUbK9dSVvryCJqrjbkTPSmtjU9L -# EBytdVCsCJQ8hYg4YAzVqF5VXck/tTucQhrGnCrMFEZshwVHaqLqXaVpDYx2xRRF -# qEv/RumkAQMAEKfC8dyP4uvxxTUm7DjT4dHhX8iTG4U/0KcyrwPrCAdOdZ/Sc3eN -# 9roikySODh2TZrM973WgIkahnOHpytvJjqAIJLwuphjAupHdK3EQAfzPLVQG2NvX -# ZR4+xr+TRWY318EEcLL3HzaqjEp7iVl/5J7VN93Vk/9le1BTVfhx8s9HUh8ctfjg -# pjgsNMnr8UPDP1ApmgajvAigaZrmYvGh5FU2pKLl+B58GtJmPo3VQlgPN6DJOnMP -# TmUiCp3/8RIUUIlJUZ4nkN4PgQeDmS2sUrhE/CgU9/irwEX1OSzJyXoSy/5KDsh2 -# lnw1243O+igdlGq7Dye4uBjG3xh3QVALCoYbIUV1YRLvzedtrWlUej5nBLf296gB -# agSiJsW4ZensjyRU0LCsTFuakBiGKCQS9DMHzZfp28cbz9U3qHqKrphSPoR48e7o -# JheyboDRtNxo8g+E6vTuVWTXRqTAJvbZhIkgF6YDpieaFT75YmEMKkdLL+Y+Wpgo -# AROTH33FVg0s0lw432f6MpU811nUzsKJZmPMC4pSNm+hJWEz4cLJ5jQ2RN2SzNS0 -# D2HaMihBk8B0Pb7FoYIDbDCCA2gGCSqGSIb3DQEJBjGCA1kwggNVAgEBMG8wWzEL +# AQQBgjcCAQQwLwYJKoZIhvcNAQkEMSIEII+/4HeinTqCCJgFDmfdvmh65g6j2d8V +# LiooxVoyAvtNMA0GCSqGSIb3DQEBAQUABIICADQh9Wwor1TReZ65/P5ttOsKWho6 +# tgFUOZfCCzPNDUQjTULqAB2vE018cOQyFb0h6DY0kqz4QG0NW08bmcWdj4aDUKS/ +# tfVbkNtQhlixQQ/kCMCTD9GXAPS5yVYvjLv2JYiFGWidNfuCG8VQTb8BmNQPIEq4 +# gan5KM5+d2hcB0Sd8GCPR4cOuPfRF4sPWMD27ONX8QBzo6KUtVEWvWWSx94KSLOX +# ixvJQ8dX36TTwagzyKqzaZrwG4Psz8YtEo28oLXr2P0a6Smz0vkOoDWI01JFlQIQ +# YbBZ1GUH+QfGssF8DDhikAdwA1apj3nPO6iVQv4riV5rUFzZnCYuPNefEw8+1Moi +# KD1rkqpWCM5Vy6yBQtJpq85wi4h5i6YleBMGGFIGaUaqk+cu3tlTj5XK+PNIwVyA +# Z4QBxUS0WScaKUPZwc2IdBEAmMHAotkUG/+0rjEe79Z1aUG5Mv5t6eSEEZLAvEds +# sdtzak1pML1ENkjpdJi4FpoKmc72f/0uJoa6i0Bb4tn/nG9tGVPFEtsmFJAY4iqO +# DXCu1euC39Wm59yphGLtd+8XF+M4luQRGCubsz9rb95CXbJo6AI5qKuOgiEx8/f6 +# ived/9ly1daeXck6+zJmFDY60J10dRTpMafmcZstQ2DKtOVZFMCMTPPTzde0eFIX +# Wa6lshLb0VVQd2npoYIDbDCCA2gGCSqGSIb3DQEJBjGCA1kwggNVAgEBMG8wWzEL # MAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExMTAvBgNVBAMT # KEdsb2JhbFNpZ24gVGltZXN0YW1waW5nIENBIC0gU0hBMzg0IC0gRzQCEAFIkD3C # irynoRlNDBxXuCkwCwYJYIZIAWUDBAIBoIIBPTAYBgkqhkiG9w0BCQMxCwYJKoZI -# hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yMzAzMTUxNzE1NTNaMCsGCSqGSIb3DQEJ +# hvcNAQcBMBwGCSqGSIb3DQEJBTEPFw0yNDAxMjgxNTMzMDdaMCsGCSqGSIb3DQEJ # NDEeMBwwCwYJYIZIAWUDBAIBoQ0GCSqGSIb3DQEBCwUAMC8GCSqGSIb3DQEJBDEi -# BCBxvi7pIDG3gOMKD4oSJ4F7CdkpBqUNEaxqnCXY50ooQjCBpAYLKoZIhvcNAQkQ +# BCD82kOkUD0rCanBFuc2TrEMDHaek5LOfizPxX+pWHF1TjCBpAYLKoZIhvcNAQkQ # AgwxgZQwgZEwgY4wgYsEFDEDDhdqpFkuqyyLregymfy1WF3PMHMwX6RdMFsxCzAJ # BgNVBAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMTEwLwYDVQQDEyhH # bG9iYWxTaWduIFRpbWVzdGFtcGluZyBDQSAtIFNIQTM4NCAtIEc0AhABSJA9woq8 -# p6EZTQwcV7gpMA0GCSqGSIb3DQEBCwUABIIBgBGywY7pcWLiI3Xrc/tk0WE7ulFM -# OUxLPANPS3V+uBzGITSkFCxlhCJer90aZF9LHMfpdCar+//LW0FifiKumWiueICm -# aZZ3OzLMAVW7P9w57ACx3w+5Uu7UURpJP0yEjxYwNRD3TLvLE1iePpbfQoQqUSi9 -# 5FHOGxchzGc8EnOa2t5uPuuLPvhmSbV52+We5yX15MZnl+mbnHeo8DMMvlRcCvn5 -# zd4/qsligeKyNGFNmUPgIAal4QFIvknlCiLAomcbWSExPQifX5vE8QMLqe8YeAWa -# +yBJusg3+Vz9/QVIEjJFuC6+I2JHA56GzoHDtvTdi5T6nEc0Cf7JKG8frEL9zTmE -# C5b2DJ5aDibY1ubaWDWk6HXMl6jfCm5gfI36jB3sYXL0aCzQXNtZiB7TqyXg/VSJ -# Mn5Fa5tqmqUybuyJoyLJq3bTRYHxsEITibL/nzJwrq4g03gvr4zoNZ0m4zkq0MXb -# MnyVz6IVyiqlYH03rcTkzfHPWeR7Unb9tPkzGg== +# p6EZTQwcV7gpMA0GCSqGSIb3DQEBCwUABIIBgFkyiS+oH10XHZltGYBRC/KyhZpF +# HBL0Y8qJOwhnaPhMaahuDR3tDI7DsWkkCYb9KTLiM4JQJBqml/sqPySGcSPEhzCA +# EklynLZPxGY6AHhf96VgHoUZhTSYV2aD+GN0ggdDFSSzhec54hqwTPVf12LNmTfY +# Ehn9OPt3quSQvETWmoVOnrwQctVzh3mfQIQ5zQ9wRs1uwBvsgdXERmmUxsEFYtav +# VCInVN45tGMLez6PCK8ACALGMppJaBh8Zqp/w11xFA+em5bGfb5RvQyT63+MEoNm +# bwlIHgFFR7s9XtVrsTPFmYvM2vIrdSGcn1cUssP1Wljui3ztrXfRlpTu0r5sCPDw +# qVX1WjB1B77NB1bUBPoTuX8ILNUgGVVnjx7sSPTP2IZER2XDcFyZlfYLLtJgC1Yl +# Fhw8WYPfcfciew3L6CsjtUPLoExd8vWLBOPON8X1CX2GveBnpIHNAHl479TWWyXN +# EqZ5TI/IlSXRd4tYuXuAZYKzYyVnRckIZIS++w== # SIG # End signature block