anchor.diff:      below.
   
   -   `http_port_min` and `http_port_max` (number) - These are the minimum and
  -    maximum port to use for the HTTP server started to serve the `http_directory`.
  -    Because Packer often runs in parallel, Packer will choose a randomly available
  -    port in this range to run the HTTP server. If you want to force the HTTP
  -    server to be on one port, make this minimum and maximum port the same.
  -    By default the values are 8000 and 9000, respectively.
  +    maximum port to use for the HTTP server started to serve the
  +    `http_directory`.  Because Packer often runs in parallel, Packer will
  +    choose a randomly available port in this range to run the HTTP server. If
  +    you want to force the HTTP server to be on one port, make this minimum and
  +    maximum port the same.  By default the values are 8000 and 9000,
  +    respectively.
   
   -   `iso_urls` (array of strings) - Multiple URLs for the ISO to download.
  -    Packer will try these in order. If anything goes wrong attempting to download
  -    or while downloading a single URL, it will move on to the next. All URLs
  -    must point to the same file (same checksum). By default this is empty
  -    and `iso_url` is used. Only one of `iso_url` or `iso_urls` can be specified.
  +    Packer will try these in order. If anything goes wrong attempting to
  +    download or while downloading a single URL, it will move on to the next.
  +    All URLs must point to the same file (same checksum). By default this is
  +    empty and `iso_url` is used. Only one of `iso_url` or `iso_urls` can be
  +    specified.
   
   -   `iso_target_extension` (string) - The extension of the iso file after
       download. This defaults to "iso".
  
positive.code:     original filename as its name.
  
  -   `output_directory` (string) - This is the path to the directory where the
      resulting virtual machine will be created. This may be relative or absolute.
      If relative, the path is relative to the working directory when `packer`
      is executed. This directory must not exist or be empty prior to running the builder.
      By default this is "output-BUILDNAME" where "BUILDNAME" is the name
      of the build.
  
  -   `ram_size` (number) - The size, in megabytes, of the ram to create
      for the VM. By default, this is 1 GB.
  
  -   `secondary_iso_images` (array of strings) - A list of iso paths to attached to a
      VM when it is booted. This is most useful for unattended Windows installs, which
      look for an `Autounattend.xml` file on removable media. By default, no
      secondary iso will be attached.
  
  -   `shutdown_command` (string) - The command to use to gracefully shut down the machine once all
      the provisioning is done. By default this is an empty string, which tells Packer to just
      forcefully shut down the machine unless a shutdown command takes place inside script so this may
      safely be omitted. If one or more scripts require a reboot it is suggested to leave this blank
      since reboots may fail and specify the final shutdown command in your last script.
  
  -   `shutdown_timeout` (string) - The amount of time to wait after executing
      the `shutdown_command` for the virtual machine to actually shut down.
      If it doesn't shut down in this time, it is an error. By default, the timeout
      is "5m", or five minutes.
  
  -   `skip_compaction` (boolean) - If true skip compacting the hard disk for virtual machine when
      exporting. This defaults to false.
  
  -   `switch_name` (string) - The name of the switch to connect the virtual machine to. Be defaulting
      this to an empty string, Packer will try to determine the switch to use by looking for
      external switch that is up and running.
  
  -   `switch_vlan_id` (string) - This is the vlan of the virtual switch's network card.
      By default none is set. If none is set then a vlan is not set on the switch's network card.
      If this value is set it should match the vlan specified in by `vlan_id`.
  
  -   `use_fixed_vhd_format` (boolean) - If true, creates the boot disk on the virtual machine as
      a fixed VHD format disk. The default is false, which creates a dynamic VHDX format disk. This
      option requires setting `generation` to 1, `skip_compaction` to true, and `differencing_disk` to false.
      Additionally, any value entered for `disk_block_size` will be ignored. The most likely use case for this
      option is outputing a disk that is in the format required for upload to Azure.
  
  -   `vhd_temp_path` (string) - A separate path to be used for storing the VM's
      disk image. The purpose is to enable reading and writing to take place on
      different physical disks (read from VHD temp path, write to regular temp
      path while exporting the VM) to eliminate a single-disk bottleneck.
  
  -   `vlan_id` (string) - This is the vlan of the virtual machine's network card
      for the new virtual machine. By default none is set. If none is set then
      vlans are not set on the virtual machine's network card.
  
  -   `mac_address` (string) - This allows a specific MAC address to be used on the
      default virtual network card.  The MAC address must be a string with no
      delimiters, for example "0000deadbeef".
  
  -   `vm_name` (string) - This is the name of the virtual machine for the new virtual
      machine, without the file extension. By default this is "packer-BUILDNAME",
      where "BUILDNAME" is the name of the build.
  
  -   `temp_path` (string) - This is the temporary path in which Packer will create the virtual
      machine. Default value is system `%temp%`
  
  -   `disk_block_size` (string) - The block size of the VHD to be created. 
      Recommended disk block size for Linux hyper-v guests is 1 MiB. This defaults to "32 MiB".
  
  ## Boot Command
  
  The `boot_command` configuration is very important: it specifies the keys
  to type when the virtual machine is first booted in order to start the
  OS installer. This command is typed after `boot_wait`, which gives the
  virtual machine some time to actually load the ISO.
  
  As documented above, the `boot_command` is an array of strings. The
  strings are all typed in sequence. It is an array only to improve readability
  within the template.
  
  The boot command is "typed" character for character over the virtual keyboard
  to the machine, simulating a human actually typing the keyboard.
  
  <%= partial "partials/builders/boot-command" %>
  
  Example boot command. This is actually a working boot command used to start
  an Ubuntu 12.04 installer:
  
  ``` json
  [
  
negative.code: 
  ## Example For Ubuntu Vivid Generation 2
  
  If you are running Windows under virtualization, you may need to create a
  virtual switch with an `External` connection type.
  
  ### Packer config:
  
  