NVS Easy Flash - Development Thread

Programs / Tools / Scripts
User avatar
Tazzi
Posts: 3422
Joined: Thu May 17, 2012 8:53 pm
cars: VE SS Ute
Location: WA
Contact:

NVS Easy Flash - Development Thread

Post by Tazzi »

The MOST common question I have ever received is "Do you have someone in (insert country/state/suburb here) that can program this?". It genuinely kills me when I have to say no, and that an item needs to be shipped in to be reprogrammed. This is primarily due to the complexity of the programming procedure, complexity of the software to be made and also the cost of a capable scantool (Which can be many hundreds).

Recently I had a client ask "Why don't you have a phone app to do it?", and I realized I did not really have an answer for that!
With the work I have been doing with Pete and OBDX Pro, we have a solution that allows connection to both Android and iOS smartphones which will be suitable for all Global A vehicles (Plus I snuck in ALDL too).

This then brought on the smarphone revolution for myself, a completely new concept for me having to worry about space, view area, flash memory and ram usage ect.
Its quite the change from PC software, but its surprisingly been alot of fun. :D

My main priority has been to make something thats so simple to use, that anyone can use it.
I wanted an all in one flash tool, that can do absolutely anything I can do currently.
Plus I wanted to be as simple as it sounded, so I introduce to you... NVS Easy Flash.
Easy Flash Home Screen500px.jpg
Easy Flash Home Screen500px.jpg (71.62 KiB) Viewed 3413 times
Easy Flash Module Preview500px.jpg
Easy Flash Module Preview500px.jpg (49.29 KiB) Viewed 3413 times
Easy Flash Program Preview500px.jpg
Easy Flash Program Preview500px.jpg (52.74 KiB) Viewed 3413 times
I am finally at a point where I can maintain a progress thread as its now at a point of adding various module support as the main framework has been completed, although there is still a huge list on the todo list!
Just some of the things include:
1) Complete the BLE integration for iOS (Prototype template in place for basic communication)
2) Implement recovery modes in models which support
3) lockout programming when voltage detected is too low
4) Reconnect scantool in event of dropoff and reconfigure tool to current selected vehicle module
5) Implement ALDL processing (Currently only done HSCAN and GMLAN)
6) Implement Googles Material Design method to maintain consistency between iOS and Android apps.
7) Honestly so much server bullshit that it makes me want to smash the pc. :lol:

As always, I will be wanting to send out some freebies to those that have something to test on and are active on the forum.
I am probably a couple weeks to a month off of that stage, but almost there!
Last edited by Tazzi on Fri Jul 16, 2021 9:44 am, edited 1 time in total.
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726
Image
User avatar
Gareth
Posts: 2505
Joined: Fri Mar 14, 2014 8:37 pm
Location: Bacchus Marsh, Vic

Re: NVS Easy Flash - Development Thread

Post by Gareth »

:thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup: :thumbup:
According to chemistry, alcohol is a solution...
User avatar
Tazzi
Posts: 3422
Joined: Thu May 17, 2012 8:53 pm
cars: VE SS Ute
Location: WA
Contact:

Re: NVS Easy Flash - Development Thread

Post by Tazzi »

That just made my day Gareth.. I had to scroll so much longer then I expected! :lol:

As for supported vehicles and modules, I will be starting off with the VE and VF Holden commodores to support all major modules for custom options and security linking.
Moving next to the VT-VZ to add a few basic things, then onto the other Holden models including Colorado's, Astras, ect.
Eventually once the Holdens are at a point I am happy with, it will be time to add in other GM vehicles which I have been extensively working with for years now such as GMC, Chev, Cadillac ect.

Its primary use will be relinking replacement modules and changing their configurations. Newer vehicles will have some more advanced options for reprogramming custom options since they tend to have more options then older.

The app does require internet access to use as all security based items are server based (unlock algos ect) which also helps reduce application size and allows updates to take place without the app actually requiring an update. It also ensures I can disable a feature in the event it requires changes or alternations.
Finally, online based also allows backing up vehicle module configurations in the event a backup/recovery is required.
Last edited by Tazzi on Thu Jul 15, 2021 4:03 pm, edited 2 times in total.
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726
Image
VX L67 Getrag
Posts: 2877
Joined: Sun Aug 02, 2009 9:16 pm
Location: Bayside, Melbourne, Victoria
Contact:

Re: NVS Easy Flash - Development Thread

Post by VX L67 Getrag »

Sounds good, look forward to see how it works!
In-Tech
Posts: 779
Joined: Mon Mar 09, 2020 4:35 pm
Location: California

Re: NVS Easy Flash - Development Thread

Post by In-Tech »

Hiya Tazzi,
am I understanding correct that this is strictly a phone app or will it work on pc as well?
User avatar
Tazzi
Posts: 3422
Joined: Thu May 17, 2012 8:53 pm
cars: VE SS Ute
Location: WA
Contact:

Re: NVS Easy Flash - Development Thread

Post by Tazzi »

In-Tech wrote:Hiya Tazzi,
am I understanding correct that this is strictly a phone app or will it work on pc as well?
In a couple months time when Microsoft finishes their new system, it will be Android, iOS, MAC and PC.

Currently it is Android and iOS smartphones only.

MAC and PC will both be USB connection only.
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726
Image
Charlescrown
Posts: 1831
Joined: Sat Aug 06, 2011 7:58 am
cars: V8 VR Commodore BT1
LB Lancer 2L turbo & Delco
Starion TBI with Delco
Mitsubishi Lancer EVO4 track car
NA MX5
3 vintage motor bikes
Location: Padstow NSW

Re: NVS Easy Flash - Development Thread

Post by Charlescrown »

Great work Tazzi. I hope you make some big bucks out of this. I remember the days working with you with OBD2 stuff.
User avatar
Tazzi
Posts: 3422
Joined: Thu May 17, 2012 8:53 pm
cars: VE SS Ute
Location: WA
Contact:

Re: NVS Easy Flash - Development Thread

Post by Tazzi »

Charlescrown wrote:Great work Tazzi. I hope you make some big bucks out of this. I remember the days working with you with OBD2 stuff.
To be honest, I do not care about the dollars so much.

I want to go back to the roots of what started it all for me, and make things that are affordable and available to everyone. Considering most modules can be flashed in under 20seconds, its shouldnt be left to only a select few.

I just allocated 1000pcs of processors to begin production of the new cable :thumbup:
Your Local Aussie Reverse Engineer
Contact for Software/Hardware development and Reverse Engineering
Site:https://www.envyouscustoms.com
Mob:+61406 140 726
Image
immortality
Posts: 3416
Joined: Thu Apr 09, 2009 12:31 pm
cars: VH, VN, VS, VX

Re: NVS Easy Flash - Development Thread

Post by immortality »

Nice. Looking forward to seeing this role out.
User avatar
The1
Posts: 4694
Joined: Mon Jan 04, 2010 10:23 am

Re: NVS Easy Flash - Development Thread

Post by The1 »

hats off to you mate, mobile programming is another ballgame to me.
Post Reply