Autoit Download For Mac

A curated list of awesome UDFs, example scripts, tools and useful resources for AutoIt.

Created by Juno_okyo. Inspired by the awesome list thing.

Recovery Instructions: Your options. In the Application Control policy, applications are allowed by default. System administrators choose applications that they wish to block.

Table Of Contents

  • Awesome AutoIt
    • UDF/Libraries
      • Automation
    • Useful Resources

UDF/Libraries

Listing of libraries of user defined functions (UDF). These libraries have been written to allow easy integration into your own scripts and are a very valuable resource for any programmer.

Automation

  • Active Directory (by water) - Extensive library to control and manipulate the Windows active directory. Link to the documentation pages.
  • GTK+ (by prazetto) - GTK+ Framework Widgets.
  • IUIAutomation MS framework (by junkew) - IUIAutomation MS framework to automate chrome, FF, IE etc.
  • Java (by seangriffin) - Creates an access bridge between your application and a Java application. Allowing you to automate some Java applications.
  • SAP (by seangriffin) - SAP business management automation.
  • SAPWizard (by ozmike) - SAPWizard UDF.
  • Service (by arcker) - Build your own service with AutoIt code.
  • WiFi (by MattyD) - Low level control over your wireless LAN.
Autoit Download For Mac

Browsers

  • Chrome (by seangriffin) - The same as above for Google Chrome. Automate the most common tasks in Chrome with the Chrome UDF.
  • Firefox (by Stilgar) - A little less support for automation than IE, but still very good.
  • FireFox Profile Backup 1.0 (by careca) - Backup or restore your firefox profile, the application searches for the profile in home drive, That will be the one to backup.
  • _FF_AutoLogin (by Stilgar) - This is a auto-login function and login-function-generator for FireFox and the FF.au3.
  • _FF_DM (by Stilgar) - UDF to control the FireFox Download-Manager (not the download-window).
  • _FF_FoxBox (by Stilgar) - UDF to control Fox!Box (A Mozilla Firefox extension for the AVM FRITZ!Box) with FF.au3.
  • _FF_Screengrab (by Stilgar) - UDF to control Screengrab! (FireFox-AddOn) with FF.au3.
  • _HTML (by Stilgar) - Get informations from any HTML (XML) source, without any browser.
  • HTMLDocumentEvents (by SmOke_N) - Track IE document events.
  • IEEx (by SmOke_N) - IE extended library with some Javascript options.
  • NavInfo (by Nessie) - With this UDF you can check if a specified browser/software is installed and which version is being used.
  • Opera (by MrCreatoR) - The same as above for Opera. Automate the most common tasks in Opera with the Opera UDF.

Microsoft Office

  • Microsoft Office Access (by randallc) - Automate Microsoft Access.
  • Microsoft Office Excel (by water et al.) - This UDF is included in AutoIt. Link to the documentation pages.
  • Microsoft Office Excel Charts (by water, GreenCan) - Creating charts using Microsoft Excel.
  • Microsoft Office Outlook (by water) - Automate Microsoft Outlook. Link to the documentation pages.
  • Microsoft Office PowerPoint (by Toady) - Automate Microsoft PowerPoint.
  • Microsoft Office Word (by water et al.) - This UDF is included in AutoIt. Link to the documentation pages.

OpenOffice

  • OOo/LibO Calc (by GMK) - OpenOfficeCalc UDF.

Databases and web connections

  • ADODB (by spudw2k) - ADODB Example.
  • DBF (by funkey) - dBase database read and write with DLL.
  • EzMySql (by oriz) - EzMySql - Use MySql Databases with autoit.
  • FireBird (by eltorro) - FireBird, Interbase dll udf.
  • MS SQL (by TheLuBu) - MSSQL.au3.
  • MS SQL (by ChrisL) - _SQL.au3. ADODB Connection.
  • MySQL (by cdkid) - MySQL relational database management system UDF.
  • MySQL (by ProgAndy) - MySQL UDFs (without ODBC).
  • MySQL (by James) - MySQL ODBC Connector.
  • SQLite (by ptrex) - SQLite is a library that implements a self-contained, embeddable, zero-configuration SQL database engine.
  • SQLite Array Functions (by SmOke_N) - SQLite Array Functions - a faster method for unique arrays and sorting methods.
  • XML DOM Wrapper (by eltorro) - Supports CRUD operations on XML. Including XSL and XPath.
  • AutoIt PHP MySQL (by J2TeaM) - The combination of AutoIt, PHP and MySQL.

Data compression

  • 7z, zip, gzip, bzip2, tar (by rasim) - Extensive library that uses a external DLL that must be provided with the script.
  • LZMA (by trancexx) - LZMA (Native Windows).
  • LZMA Compression (by Ward) - LZMA Compression UDF.
  • MessagePack (by Ward) - MessagePack is an efficient binary serialization format. It lets you exchange data among multiple languages like JSON. But it's faster and smaller.
  • Package (by Yashied) - Package UDF.
  • pZip (by asdf8) - PureZIP_L library UDF.
  • UnRAR (by rasim) - UnRAR.au3.
  • Zip plugin (by eltorro) - Zip plugin.
  • ZIP (by torels) - ZIP.au3 UDF in pure AutoIt.
  • zip (by wraithdu) - Create ZIP files and unpack ZIP files.
  • ZIP (by joakim) - ZIP STRUCTS UDF (from scratch).
  • zLib (by Ward) - zLib (Deflate/Inflate/GZIP) UDF.
  • XZip (by eltorro) - another UDF for 'XStandard XZIP Component'.
  • XZip (by mLipok) - UDF for 'XStandard XZIP Component'.

Encryption and hash

  • AES Rijndael (by Ward) - Very fast AES UDF. Support ECB/CBC/CFB/OFB block cipher mode.
  • MD5,SHA1,CRC32,RC4,BASE64,XXTEA (by Ward) - Several encryption and hash functions.
  • TrueCrypt (by FuryCell) - TrueCrypt UDFs.

GUI Additions

  • 3D Pie chart (by WideBoyDixon) - 3D Pie chart.
  • Chart_UDF (by Kanashius) - This UDF can be used to Display bar charts in a window.).
  • ContextHelp.au3 (by Yashied) - Management of context help (original).
  • Easy Scrollbars (by Melba23) - Easily create scrollable sections in your GUI.
  • ExtMsgBox (by Melba23) - A very customisable replacement for MsgBox.
  • GUICtrlOnChangeRegister (by Mat) - Call a function when an edits content is changed.
  • GUIExtender (by Melba23) - Expand and contract sections of your GUI (original).
  • GUIFrame (by Melba23 & Kip) - Divide a GUI into adjustable frames.
  • GUI Panel (by FireFox) - Manage child GUIs as panel ctrls.
  • Modern tray menu (by Holger) - Allows the creation of modern, fancy GUI and tray menus with icons and colors.
  • Pie chart (by Andreik) - Pie chart.
  • SetOnEvent (by martin) - Provides an easy way for an event to call functions with parameters.
  • Uskin (by JScript) - A library that allows a user to skin their application GUI using the Windows .MSstyles files.
  • Toast (by Melba23) - Small message GUIs which pop out of the Systray.
  • XSkin (by Valuater) - A large library that allows skinning of your GUI and to apply custom skins.
  • Real Vista Aero Glass (by James) - Real Vista Aero Glass UDF - you can apply glass effect to your gui.

Controls

  • Calendar (by jmon) - Calendar UDF.
  • Colorpicker (by Yashied) - Create a button for the user to select a color.
  • GDIPlus Slider UDF (by Kanashius) - This UDF can be used to create a slider with an imagebackground and an image to move.
  • Graph control (by andybiochem) - Easily create and show bar chart and line charts.
  • GraphGDIPlus UDF (by andybiochem) - Easily create and show bar chart and line charts with GDI+ to take advantage of double-buffering.
  • GUICtrlCreateFinder (by Mat) - Allows you to create a window finder control like the one seen in AutoIt Window Info.
  • GUITreeViewEx (by Melba23) - Check/clear parent and child checkboxes in a TreeView.
  • GUIHotkey (by Mat) - UDF for using native hotkey controls.
  • GUIPager (by Mat) - Create and control native pager controls.
  • GUI/Tray Menu (by Holger, LarsJ, AZJIO) - GUI/Tray Menu with icons and colors.
  • Hotkey input control (by Yashied) - Hotkeys Input Control UDF Library (Non-native).
  • ListView Edit UDF (by Kanashius) - This UDF can be used to simply edit an Listview.
  • Marquees (by Melba23) - Make tickertape info bars.
  • Progressbar with GDIplus (by ProgAndy) - You even can use full textured images.
  • Ribbon (by trancexx) - UDF for Windows Ribbon framework.
  • Syslink (by Yashied) - Provides a convenient way to embed hypertext links in a window.
  • Table (by andybiochem) - Table UDF.

Hardware

  • CommAPI (by therealhanuta) - Serial and parallel communication (COM port, RS-232, LPT port) - without installing DLL's (using Windows API calls).
  • Device Management (by weaponx) - Device Management API.
  • DirectShow (by monoceres) - DirectShow UDF.
  • DirectSound (by eukalyptus) - DirectSound UDF.
  • Direct2D (by eukalyptus) - Direct2D UDF.
  • FritzBox (by Allow2010) - _FB_Tools - manage your FritzBox from Autoit.
  • I/O Port Functions (by Ascend4nt) - Input/Output UDF for interacting with ports (x64 Parallel Port, Keyboard etc.).
  • Monitor Configuration (by jaberwacky) - Monitor Configuration UDF.
  • Mouse (by AlmarM) - AutoIt powered mouse events.
  • MouseTrapEvent (by ozmike) - MouseTrapEvent UDF.
  • NetInfo (by Nessie) - UDF for test internet download speed and upload speed.
  • Network configuration (by jguinch) - Network configuration UDF.
  • Serial Port/COM (by martin) - Serial Port /COM Port UDF.
  • SMARTDRIVE (by ptrex) - SMART drive Analysis.
  • SPI Hardware Interface (by Blinky) - Communicate with the MAX335 chip using the SPI protocol via the LPT (printer) port.
  • Webcam (by LIMITER) - Webcam UDF.
  • Webcam (by ludocus) - Webcam UDF.

Information gathering

  • Computer information (by JSThePatriot) - A general purpose library to get various details about a Windows machine.
  • WinPcap (by JRSmile) - Wrapper for the windows packet capture library WinPcap.
  • WinPcap (by Nicolas Ricquemaque) - A library to access the main functionalities offered by the WinPcap driver.

Internet protocol suite

  • cURL (by seangriffin) - A UDF for transferring data with URL syntax.
  • cURL (by Ward) - AutoIt binary code version of libcurl with SSL support.
  • IMAP (by mikeytown2) - IMAP.
  • IMAP4 (by Tipulatoid) - IMAP4 UDF.
  • IRC (by McGod) - A lightweight library for communicating with IRC servers.
  • IRC (by rcmaehl) - IRC UDF - Updated Version of Chips' IRC UDF.
  • JSON (by Gabriel13) - RFC4627 compliant JSON encode/decode.
  • JSON (by Ward) - JSMN - A Non-Strict JSON UDF.
  • JSON (by ozmike) - Bridge to Native Windows JSON plus OO extension for AutoIt.
  • JSONgen: JSON generator (by Jefrey) - UDF to generate JSON.
  • POP3 (by Apzo) - POP3 library for retrieving email messages. Not compatible with Gmail because it uses SSL.
  • _POP3_Ex (by mLipok) - POP3 UDF According to the 1939 RFC, modified version with Quoted Printable decoder.
  • POP3 SSL (by Fox2) - A POP3 library that's compatible with Gmail. It uses an external executable that must be supplied with your script.
  • Prowl (by mrflibblehat) - Push notifications to iPhone, iPod touch or iPad using Prowl (Growl client for iOS).
  • Request (by Ward) - Powerful and easy-to-use HTTP client for AutoIt based on Curl.au3 and Json.au3.
  • SFTP (by Lupo73) - UDF to support SFTP protocol using PSFTP.
  • SMTP (by Jos) - Smtp Mailer That Supports Html And Attachments.
  • SNMP (by enaiman) - SNMP_UDF for SNMPv1 and SNMPv2c.
  • SNMP - MIB protocol (by ptrex) - Reading toner status from SNMP device with WMI.
  • SSH (by jeanphile) - Use the SSH protocol very easily in your code.
  • TCPServer (by Jefrey) - Multi client, event-based, able to bind console app to socket.
  • UPnP Protocol (by ptrex) - UPnP - Read and Control your devices in side out.
  • WinHTTP (by trancexx) - Access the HTTP protocol for creating GET and POST requests and submitting them with conforming standards, cookies not supported.
  • WinInet (by -Ultima-) - Access standard Internet protocols (FTP, Gopher and HTTP). Supports GET/POST requests and cookies.
Autoit Download For Mac

Maths

  • Advanced Math UDF (by scintilla4evr) - This is an UDF full of advanced mathematical functions. It allows to work with primes, create number sequences, interpolate, calculate values of functions like Riemann zeta.
  • Advanced rounding (by Mat) - Support for different measures of accuracy and 8 ways to resolve tie breaks.
  • Big number (by eukalyptus) - Make calculations with extremely large numbers that AutoIt normally is not able to support.
  • Decimal To fraction (by Malkey) - Converts any decimal number to a fraction. Example: 1.2 to 6/5.
  • Number base conversion (by james3mg) - From, to and between positive bases less than 63 (decimals supported).
  • NumToWord (by Mat) - Convert numerals to a human readable string.
  • Polynomials (by Mat) - Functions for using polynomials.
  • Primes (by jennico) - Many functions dealing with prime number generation and calculations.
  • Roman Numerals (by AZJIO) - Roman Numerals.
  • Root function (by Mat) - Working out real roots of numbers.
  • StringAPL (by minx) - inline APL interpreter.
  • Trigonometry math functions (by trancexx) - _ATan2(), _Cosh(), _Frexp(), _Hypot(), _Ldexp(), _Logb(), _Sinh(), _Tanh().

Media

  • FreeImage library (by ProgAndy) - Various operations on images, such as rotate, resize, flip.
  • HtmlHelp (by Geodetic) - HtmlHelp UDF.
  • OCR (by ptrex) - Real OCR in AU3 - MODI with MS Office 2003.
  • OCR (by seangriffin) - Tesseract (Screen OCR) UDF.
  • Printer controller (by martin) - Print text in any font, size and colour at any position on the page, draw lines, curves, elipses, pies in any colour, and print images.
  • Printing (by GRS) - Printing from AutoIt.
  • RTF_Printer (by mLipok) - RTF_Printer.au3 - Printing RichEdit in the background.
  • Simple DirectMedia Layer (by AdmiralClaws) - Adds support for joysticks, CDs, 2D graphics, timers. See SDL website for more information.

Graphics and image

Better Than Autohotkey

  • Bitmap Library (by evilertoaster) - Bitmap Library.
  • IrrLicht (by A. Percy) - A 3D graphics engine suitable for creating games.
  • au3Irrlicht2 (by JRowe) - Another UDF bringing Irrlicht and au3 together. Historically some kind of a follower of the UDF above, technically with a complete different approach.
  • ImageGetInfo (by Lazycat) - This is an UDF for reading info from JPEG, TIFF, BMP, PNG and GIF - size, color depth, resolution.
  • OpenGL (by LarsJ) - OpenGL without external libraries etc. For JPEG files UDF also retreive various Exif information.
  • OpenGL (2.0) (by minx) - new set of UDFs for OpenGL + AutoIt.

Players

  • VLC (by seangriffin) - VLC (Media Player) UDF.
  • VLC Media Player (by ptrex) - VLC Media Player.
  • WMP (by ConsultingJoe) - Windows Media Player UDF.

Sound

  • BASS Function Library (by BrettF) - Sound and Music via wrappers for Bass, BassEnc, Bass FX, BassSFX, BassAsio and BassCd DLLs.
  • MIDI (by eynstyne) - MIDI UDF.
  • SAPIListBox (by seangriffin) - SAPIListBox (Speech Recognition) UDF.
  • TTS (by Beege) - Text-to-Speech UDF.
  • libZPlay (by Danyfirex) - UDF for libZPlay - multimedia library for playing mp3, mp2, mp1, ogg, flac, ac3, aac, oga, wav and pcm files and streams.

PDF

  • Acrobat Reader - ActiveX Viewer (by mLipok) - Make your own PDF Viewer GUI with Acrobat Reader ActiveX COM Object 'AcroPDF.PDF.1'
  • Debenu PDF Viewer SDK (by mLipok) - A collection of functions to display PDF files in your applications using Debenu PDF Viewer SDK.
  • Debenu Quick PDF Library (by mLipok) - A collection of functions for Debenu Quick PDF Library.
  • FoxIt Reader (by ptrex) - PDF Reader in AU3.
  • MPDF (by taietel) - Create PDF from your application.
  • PDFCreator (by ptrex) - Automation of PDFCreator allows you to create and manipulate PDF files.
  • PDFCreator (by mLipok) - UDF for PDFCreator v1.x.x with working EVENTs Handler.
  • _StringToPDF (by Tam0r) - Write a string to a PDF file and specify font size, type etc.

Security

  • VirusTotal (by Danyfirex) - VirusTotal API 2.0 UDF.

Social Media and other Website API

  • CrowdinAPI (by mLipok) - UDF using the crowdin.net website API for some functions (create projects, add and update files, download translations or integrate localization).
  • Dropbox authenticator (by Gimerly) - Dropbox authenticator.
  • Easypost (by dcat127) - Print USPS Postage Labels.
  • eBay (by seangriffin) - eBay UDF (functions GetItemStatus and GetSingleItem from the 'Shopping API').
  • Gmail (by PhoenixXL) - Remote Gmail (UDF).
  • Google Functions (by Beege) - Google Functions (Suggestions, Definitions, Translate, Convert).
  • Google Maps (by seangriffin) - Google Maps UDF.
  • iTunes (by torels) - iTunes UDF.
  • iTunes (by Beege) - Another iTunes UDF.
  • No-IP (by Nessie) - With this UDF you can simply update your no-ip hostname(s) and retrive the ip address of an no-ip address.
  • PasteBin (by mrflibblehat) - Pastebin UDF.
  • Skype (by FireFox) - Skype4COM provides an ActiveX interface to the Skype API.
  • Teamspeak 3 (by chipDE) - Teamspeak 3 UDF.
  • TeamViewer API (by mLipok) - UDF for TeamViewer API - a modest beginning.
  • TVmaze.com API (by BBs19) - TVmaze.com API UDF (TV-Series).
  • Twitter (by seangriffin) - Twitter UDF.
  • Yahoo Weather (by Nessie) - YWeather UDF - Yahoo Weather API.
  • Youtube Uploader (by BrettF) - AYTU - AutoIt Youtube Uploader.

Windows

  • ACL (by ptrex) - Set ACL on windows Objects.
  • FileSystemMonitor (by seangriffin) - FileSystemMonitor UDF.
  • Firewall (by JLogan3o13) - Windows Firewall UDF.
  • ITaskBarList (by Beege) - ITaskBarList UDF.
  • Local account (by engine) - Local account UDF.
  • Magnifier Functions (by Ascend4nt) - This UDF exposes most of the useful Magnifier API functions available since Windows Vista.
  • Registry (by engine) - Windows Registry UDFs.
  • Registry (by seanhart) - RegWriteAllUsers / RegDeleteAllUsers.
  • Startup (by guinness) - Create Startup entries in the Startup Folder or Registry.
  • SCCM (by JLogan3o13) - Systems Center Configuration Manager Library.
  • System restore (by FredAI) - System restore UDF.
  • Taskplanner/Taskscheduler COM (by Allow2010) - an UDF for using the Windows Taskplaner / Task Scheduler.
  • Task Scheduler (by dbzfanatic) - Task Scheduler UDF.
  • TTS UDF (by Kanashius) - UDF for use with SAPI Automation Object - text-to-speech (TTS) engine
  • UAC (by AdamUL) - User Account Control (UAC) UDF.
  • WIMGAPI (by Homes32) - A UDF for manipulating Windows Image Files (.wim) without ImageX.exe.
  • Windows Events (by Emperor) - Create your own Windows events.
  • Windows Services (by engine) - Windows Services UDF.
  • WRMF (by Luigi) - WRMF - Windows Registry Monitor Call Function.

Misc

  • Android (by Moriba) - Android UDF.
  • Animated tray icons (by Yashied) - Make animated tray icons easily.
  • Atom Table (by Ascend4nt) - Store strings locally (at program level) or globally (at OS level) with unique numerical identifiers. This UDF lets you add, find, delete, and query these atoms.
  • Barcode generators (by willichan) - Creates a Code128A/B/C or Creates a Code39 or Code39Extended optimized barcode from supplied data.
  • Binary (by Ward) - Binary UDF.
  • BinaryCall (by Ward) - BinaryCall UDF - Write Subroutines In C, Call In AutoIt.
  • Clipboard History (by wraithdu) - Save and restore the entire clipboard contents. Inspired by AHK's ClipboardAll.
  • CmdLine (by Jefrey) - Collection of functions to parse command line arguments.
  • Copy (by Yashied) - Copy or move files and directories without suspending your script. Retrieve the current state (copied bytes, error code etc.) while copying.
  • DDEML (by doudou) - With DDEML UDF one can use an AutoIt script as a DDE client or server.
  • _DLLStructDisplay (by Ascend4nt) - Show Struct in ListView.
  • FASM (by Ward) - The Embedded Flat Assembler (FASM) UDF.
  • _FileGetMimeType (by Wiliat87) - _FileGetMimeType UDF.
  • File locking with cooperative semaphores (by willichan) - Simple file locking without a server.
  • FindMimeFromData (by twbradio) - FindMimeFromData using urlmon.dll.
  • Hotkey.au3 (by Yashied) - Management of Hotkeys UDF, with several advantages over HotkeySet().
  • Inline Assembly (by Ward) - Assembles the code to binary machine code and runs it.
  • LFN (by orbs) - LFN UDF - overcome MAX_PATH limit of 256 chars.
  • LASM - Light Assembler (by minxomat) - This is the Inline UDF for an Assembler
  • MemoryDll (by Ward) - Embed DLLs in script and call functions from memory.
  • NoFocusLines (by Melba23) - Remove the dotted focus lines from buttons, sliders, radios and checkboxes which spoil the look of your GUI.
  • NotifyIcon (by FireFox) - NotifyIcon UDF (formerly TrayIconEx) - Create, delete and manage self notify icons.
  • PixelGetColor (by Manadar) - Get or Read Pixel from Memory UDF.
  • RDC (by Yashied) - ReadDirectoryChanges Wrapper.
  • Resources (by Zedna) - Resources UDF.
  • ResourcesEx (by guinness) - ResourcesEx UDF (up to date with the current AutoIt language syntax v3.3.12.0).
  • Spell Checker (by iCode) - Spell Checker UDF - Hunspell.
  • StringSize (by Melba23) - Automatically size controls to fit the text you want to put in them.
  • Synology filestation (by nend) - UDF for users of Synology NAS server.
  • TVExplorer (by Yashied) - TVExplorer UDF.
  • SciLexer (by Kip) - SciLexer UDF.

Tools

  • SciTE4AutoIt3 contains SciTE, wrapped into a single installer with all needed configuration settings and lots of utility programs like AutoIt3Wrapper, SciTEConfig, Tidy, Au3Stripper etc to enhanced SciTE for use with AutoIt3.
  • KODA Form Designer - a standalone application that was developed to help creating forms (GUIs) for AutoIt3 scripting language. It's included in SciTE4AutoIt3.
  • ISN AutoIt Studio - a complete IDE for the AutoIt programming language.
  • ISN AutoIT form Studio - Graphical Form Designer for AutoIt.

Useful Resources

Documents

  • SciTE4AutoIt3 Online Document Wiki

Websites

Autoit Vs Ahk

  • AutoIt Forum
  • Programs - a list of programs created in AutoIt.
  • AutoIt Group on Facebook (Vietnamese).

Guides/Tutorials

  • Tutorials - There are many tutorials available for AutoIt. This page is an overview of a few known tutorials.
  • Best coding practices - a detailed explanation of what are to be considered the best coding practices within AutoIt. These recommendations are based on accepted coding practices common to a number of other programming languages. You do not need to follow them, but it is recommended that you do.
  • Snippets - generally single functions or small pieces of code which can be incorporated into a script to add extra functionality.

Videos

  • AutoIt Tutorials by 403forbidden403.
  • AutoIt Tutorials by AutoitFrench.
  • AutoIt for Beginner by Lee Sai.
  • AutoIt for Beginner by Hai The Luong.
  • Advanced AutoIt Tutorials by Juno_okyo [Subscribe].

Books

  • AutoIt v3: Your Quick Guide by Andy Flesner (Download PDF).
  • Instant AutoIt Scripting by Emilio Aristides de Fez Laso.
  • AutoIT Scripting For Beginners by Rajan.
  • Learn To Program Using FREE Tools with AutoIt 1.2 by Jfish.

License

This work is licensed under a Creative Commons Attribution 4.0 International License.