Pen Settings

HTML

CSS

CSS Base

Vendor Prefixing

Add External Stylesheets/Pens

Any URL's added here will be added as <link>s in order, and before the CSS in the editor. If you link to another Pen, it will include the CSS from that Pen. If the preprocessor matches, it will attempt to combine them before processing.

+ add another resource

JavaScript

Babel includes JSX processing.

Add External Scripts/Pens

Any URL's added here will be added as <script>s in order, and run before the JavaScript in the editor. You can use the URL of any other Pen and it will include the JavaScript from that Pen.

+ add another resource

Packages

Add Packages

Search for and use JavaScript packages from npm here. By selecting a package, an import statement will be added to the top of the JavaScript editor for this package.

Behavior

Save Automatically?

If active, Pens will autosave every 30 seconds after being saved once.

Auto-Updating Preview

If enabled, the preview panel updates automatically as you code. If disabled, use the "Run" button to update.

Format on Save

If enabled, your code will be formatted when you actively save your Pen. Note: your code becomes un-folded during formatting.

Editor Settings

Code Indentation

Want to change your Syntax Highlighting theme, Fonts and more?

Visit your global Editor Settings.

HTML

              
                <head>
  <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" >
</head>
<body>
<div class="container" ng-app="passwordGenerator">
  <h2 class="text-center">Password Generator</h2>
  <div class="row">
    <div class="col-md-6 col-md-offset-3">
     
          <form autocomplete="off" ng-controller="PasswordGeneratorController">
            <div class="form-group">
              <label>Password Length: </label><br>
               <select ng-model="passwordLength" ng-change="passwordLengthCheck()" class="form-control">
                  <optgroup label="Weak">
                    <option value="6">6</option>
                    <option value="7">7</option>
                    <option value="8">8</option>
                    <option value="9">9</option>
                    <option value="10">10</option>
                    <option value="11">11</option>
                    <option value="12">12</option>
                    <option value="13">13</option>
                    <option value="14">14</option>
                    <option value="15">15</option>
                   </otpgroup>
                   <optgroup label="Strong">
                    <option value="16">16</option>
                    <option value="24">24</option>
                   </optgroup>
                   <optgroup label="Very Strong">
                    <option value="32">32</option>
                    <option value="64">64</option>
                    <option value="128">128</option>
                    <option value="256">256</option>
                   </optgroup>
                   <optgroup label="Unbelievable">
                    <option value="512">512</option>
                    <option value="1024">1024</option>
                    <option value="2048">2048</option>
                   </optgroup>
              </select>
            </div>
          
                      
            <label class="custom-control custom-checkbox">
  <input type="checkbox" class="custom-control-input" ng-model="checkboxModel.lowerCase">
  <span class="custom-control-indicator"></span>
  <span class="custom-control-description">Include Lowercase Characters</span>
</label>
  

            <br />
            <label class="custom-control custom-checkbox">
  <input type="checkbox" class="custom-control-input" ng-model="checkboxModel.numbers">
  <span class="custom-control-indicator"></span>
  <span class="custom-control-description">Include Numbers</span>
</label>
            <br />
            <label class="custom-control custom-checkbox">
  <input type="checkbox" class="custom-control-input" ng-model="checkboxModel.symbols">
  <span class="custom-control-indicator"></span>
  <span class="custom-control-description">Include Symbols </span>
</label>
                  <br />
             <label class="custom-control custom-checkbox">
  <input type="checkbox" class="custom-control-input" ng-model="checkboxModel.upperCase">
  <span class="custom-control-indicator"></span>
  <span class="custom-control-description">Include Uppercase Characters</span>
</label>
            
            <div class="form-group">
              <label for="password">Your Password:</label>
              <input type="text" class="form-control" id="password" placeholder="Your Password" ng-model="password"/>
            </div>
            <div class="form-group">
              <button class="btn btn-primary" ng-click="generatePassword()">Generate Password</button>
            </div>
          </form>
     
    </div>
  </div>
</div>

<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.6.1/angular.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
</body>
              
            
!

CSS

              
                
body{
  
  font-family: 'Open Sans', sans-serif;
  padding-top: 30px;
  
background-color: #ffffff;
background-image: url("data:image/svg+xml,%3Csvg width='360' height='360' viewBox='0 0 360 360' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23000000' fill-opacity='0.13' fill-rule='evenodd'%3E%3Cpath d='M0 52.702l8.38-4.838C7.486 45.41 7 42.762 7 40c0-2.762.487-5.41 1.38-7.864L0 27.298v25.404zm0-39.16C6.5 6.176 15.673 1.222 26 .198v17.15c-5.433.95-10.21 3.81-13.616 7.863L0 18.06v-4.518zm0 52.916c6.5 7.366 15.673 12.32 26 13.344v-17.15c-5.433-.95-10.21-3.81-13.616-7.863L0 61.94v4.518zm34 13.344c11.713-1.162 21.94-7.378 28.47-16.437L47.616 54.79C44.21 58.84 39.433 61.7 34 62.652v17.15zm32.476-23.36C68.74 51.424 70 45.86 70 40c0-5.86-1.26-11.425-3.524-16.44L51.62 32.135C52.514 34.59 53 37.238 53 40c0 2.762-.487 5.41-1.38 7.864l14.856 8.577zM62.47 16.634C55.94 7.575 45.713 1.36 34 .198v17.15c5.433.95 10.21 3.81 13.616 7.863l14.854-8.575zM0 50.392l5.976-3.45C5.34 44.738 5 42.41 5 40c0-2.41.34-4.738.976-6.942L0 29.608v20.784zm.503-34.35C6.275 8.942 14.56 3.97 24 2.472v13.253c-4.656 1.147-8.8 3.598-12.018 6.944L.502 16.04zm0 47.916C6.275 71.058 14.56 76.03 24 77.528V64.276c-4.656-1.147-8.8-3.598-12.018-6.944L.502 63.96zM36 77.528c9.44-1.497 17.725-6.47 23.497-13.57l-11.48-6.627C44.8 60.678 40.658 63.13 36 64.276V77.53zm29.505-23.957C67.117 49.357 68 44.78 68 40c0-4.78-.883-9.356-2.495-13.57l-11.48 6.628C54.658 35.262 55 37.59 55 40c0 2.41-.34 4.738-.976 6.942l11.48 6.63zm-6.008-37.528C53.725 8.942 45.44 3.97 36 2.472v13.253c4.656 1.147 8.8 3.598 12.018 6.944l11.48-6.628zM0 85.016l4.624-4.265c2.316 1.447 4.764 2.7 7.323 3.74l-1.2 10.24 2.66.864 5.05-8.99c2.627.648 5.34 1.08 8.12 1.276L28.6 98h2.8l2.024-10.12c2.78-.196 5.492-.628 8.12-1.277l5.048 8.99 2.662-.864-1.2-10.24c2.558-1.04 5.006-2.293 7.322-3.74l7.583 6.996 2.264-1.646-4.31-9.378c2.096-1.768 4.04-3.712 5.808-5.81l9.378 4.312 1.646-2.265-6.995-7.584c1.447-2.316 2.7-4.764 3.74-7.323l10.24 1.2.864-2.66-8.99-5.05c.648-2.627 1.08-5.34 1.276-8.12L88 41.4v-2.8l-10.12-2.024c-.196-2.78-.628-5.492-1.277-8.12l8.99-5.048-.864-2.662-10.24 1.2c-1.04-2.558-2.293-5.006-3.74-7.322l6.996-7.583L76.1 4.777l-9.378 4.31c-1.768-2.096-3.712-4.04-5.81-5.808L62.42 0H0v85.016zm0 2.67l4.84-4.467c1.607.935 3.27 1.785 4.983 2.542L8.606 96.136l5.706 1.854 5.115-9.11c1.806.39 3.65.68 5.523.868L27 100h6l2.05-10.252c1.874-.188 3.717-.48 5.523-.868l5.115 9.11 5.706-1.854-1.217-10.374c1.713-.757 3.376-1.607 4.982-2.543l7.68 7.084 4.854-3.526-4.368-9.503c1.388-1.242 2.707-2.56 3.95-3.95l9.502 4.37 3.526-4.855-7.085-7.68c.935-1.607 1.785-3.27 2.542-4.983l10.374 1.217 1.854-5.706-9.11-5.115c.39-1.806.68-3.65.868-5.523L90 43v-6l-10.252-2.05c-.188-1.874-.48-3.717-.868-5.523l9.11-5.115-1.854-5.706-10.374 1.217c-.757-1.713-1.607-3.376-2.543-4.982l7.084-7.68-3.526-4.854-9.503 4.368c-1.242-1.388-2.56-2.707-3.95-3.95L64.58 0H0v87.685zM30 54c7.732 0 14-6.268 14-14s-6.268-14-14-14-14 6.268-14 14 6.268 14 14 14zm0-2c6.627 0 12-5.373 12-12s-5.373-12-12-12-12 5.373-12 12 5.373 12 12 12zm0-2c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zm0-2c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zM122.67 92.05l-.503-6.05h-2.334l-.504 6.05c-2.185.128-4.3.506-6.323 1.107l-2.54-5.506-2.192.8 1.594 5.85c-1.983.86-3.845 1.94-5.557 3.214l-4.274-4.31-1.788 1.5 3.502 4.96c-1.555 1.47-2.94 3.12-4.127 4.913l-5.49-2.587-1.165 2.02 4.982 3.458c-.95 1.898-1.693 3.92-2.196 6.032l-6.04-.553-.404 2.298 5.868 1.546c-.12 1.054-.182 2.125-.182 3.21s.062 2.156.182 3.21l-5.868 1.545.405 2.298 6.038-.553c.503 2.113 1.245 4.134 2.196 6.032l-4.982 3.458 1.166 2.02 5.49-2.587c1.185 1.793 2.57 3.442 4.126 4.914l-3.502 4.96 1.787 1.498 4.273-4.31c1.712 1.274 3.574 2.356 5.556 3.215l-1.595 5.85 2.193.8 2.54-5.507c2.02.6 4.137.98 6.32 1.108l.505 6.05h2.334l.504-6.05c2.185-.128 4.3-.506 6.323-1.107l2.54 5.506 2.192-.8-1.594-5.85c1.983-.86 3.845-1.94 5.557-3.214l4.274 4.31 1.788-1.5-3.502-4.96c1.555-1.47 2.94-3.12 4.127-4.913l5.49 2.587 1.165-2.02-4.982-3.458c.95-1.898 1.693-3.92 2.196-6.032l6.04.553.404-2.298-5.868-1.546c.12-1.054.182-2.125.182-3.21s-.062-2.156-.182-3.21l5.868-1.545-.405-2.298-6.038.553c-.503-2.113-1.245-4.134-2.196-6.032l4.982-3.458-1.166-2.02-5.49 2.587c-1.185-1.793-2.57-3.442-4.126-4.914l3.502-4.96-1.787-1.498-4.273 4.31c-1.712-1.274-3.574-2.356-5.556-3.215l1.595-5.85-2.193-.8-2.54 5.507c-2.02-.6-4.137-.98-6.32-1.108zm-15.198 1.122c-1.02.508-2.004 1.072-2.953 1.687l-4.347-4.378-4.626 3.88 3.532 5.007c-.79.828-1.534 1.7-2.225 2.614l-5.522-2.6-3.02 5.23 4.974 3.457c-.46 1.055-.86 2.14-1.2 3.253l-6.016-.548-1.047 5.947 5.833 1.54c-.033.576-.05 1.155-.05 1.738s.017 1.162.05 1.737l-5.833 1.54 1.048 5.948 6.018-.548c.338 1.112.74 2.198 1.2 3.252l-4.975 3.455 3.02 5.23 5.522-2.6c.69.914 1.434 1.787 2.224 2.616l-3.533 5.007 4.626 3.88 4.346-4.376c.948.616 1.933 1.18 2.952 1.688l-1.622 5.968 5.675 2.066 2.606-5.642c1.09.252 2.2.445 3.33.576l.52 6.204h6.04l.52-6.204c1.13-.13 2.24-.324 3.33-.576l2.605 5.642 5.675-2.066-1.622-5.968c1.02-.508 2.004-1.072 2.953-1.687l4.347 4.378 4.626-3.88-3.532-5.007c.79-.828 1.534-1.7 2.225-2.614l5.522 2.6 3.02-5.23-4.974-3.457c.46-1.055.86-2.14 1.2-3.253l6.016.548 1.047-5.947-5.833-1.54c.033-.576.05-1.155.05-1.738s-.017-1.162-.05-1.737l5.833-1.54-1.048-5.948-6.018.548c-.338-1.112-.74-2.198-1.2-3.252l4.975-3.455-3.02-5.23-5.522 2.6c-.69-.914-1.434-1.787-2.224-2.616l3.533-5.007-4.626-3.88-4.346 4.376c-.948-.616-1.933-1.18-2.952-1.688l1.622-5.968-5.675-2.066-2.606 5.642c-1.09-.252-2.2-.445-3.33-.576L124.02 84h-6.04l-.52 6.204c-1.13.13-2.24.324-3.33.576l-2.605-5.642-5.675 2.066 1.622 5.968zM121 128c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zm0-2c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zm0-18c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm8.485 3.515c1.953 1.952 5.12 1.952 7.07 0 1.954-1.953 1.954-5.12 0-7.07-1.95-1.954-5.117-1.954-7.07 0-1.952 1.95-1.952 5.117 0 7.07zM133 120c0 2.76 2.24 5 5 5s5-2.24 5-5-2.24-5-5-5-5 2.24-5 5zm-3.515 8.485c-1.952 1.953-1.952 5.12 0 7.07 1.953 1.954 5.12 1.954 7.07 0 1.954-1.95 1.954-5.117 0-7.07-1.95-1.952-5.117-1.952-7.07 0zM121 132c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm-8.485-3.515c-1.953-1.952-5.12-1.952-7.07 0-1.954 1.953-1.954 5.12 0 7.07 1.95 1.954 5.117 1.954 7.07 0 1.952-1.95 1.952-5.117 0-7.07zM109 120c0-2.76-2.24-5-5-5s-5 2.24-5 5 2.24 5 5 5 5-2.24 5-5zm3.515-8.485c1.952-1.953 1.952-5.12 0-7.07-1.953-1.954-5.12-1.954-7.07 0-1.954 1.95-1.954 5.117 0 7.07 1.95 1.952 5.117 1.952 7.07 0zM121 106c1.657 0 3-1.343 3-3s-1.343-3-3-3-3 1.343-3 3 1.343 3 3 3zm9.9 4.1c1.17 1.172 3.07 1.172 4.242 0 1.172-1.17 1.172-3.07 0-4.242-1.17-1.172-3.07-1.172-4.243 0-1.172 1.17-1.172 3.07 0 4.243zm4.1 9.9c0 1.657 1.343 3 3 3s3-1.343 3-3-1.343-3-3-3-3 1.343-3 3zm-4.1 9.9c-1.172 1.17-1.172 3.07 0 4.242 1.17 1.172 3.07 1.172 4.242 0 1.172-1.17 1.172-3.07 0-4.243-1.17-1.172-3.07-1.172-4.243 0zM121 134c-1.657 0-3 1.343-3 3s1.343 3 3 3 3-1.343 3-3-1.343-3-3-3zm-9.9-4.1c-1.17-1.172-3.07-1.172-4.242 0-1.172 1.17-1.172 3.07 0 4.242 1.17 1.172 3.07 1.172 4.243 0 1.172-1.17 1.172-3.07 0-4.243zM107 120c0-1.657-1.343-3-3-3s-3 1.343-3 3 1.343 3 3 3 3-1.343 3-3zm4.1-9.9c1.172-1.17 1.172-3.07 0-4.242-1.17-1.172-3.07-1.172-4.242 0-1.172 1.17-1.172 3.07 0 4.243 1.17 1.172 3.07 1.172 4.243 0zM218.64 113.197c-4.648 2.87-8.574 6.795-11.443 11.442l5.2 3c2.338-3.738 5.505-6.905 9.244-9.243l-3-5.2zm1.73-1c4.672-2.53 9.984-4.025 15.63-4.183v6.003c-4.554.154-8.84 1.358-12.628 3.378l-3.002-5.2zm-14.174 14.173c-2.528 4.672-4.024 9.984-4.182 15.63h6.003c.154-4.554 1.358-8.84 3.378-12.628l-5.2-3.002zM202.014 144c.158 5.646 1.654 10.958 4.182 15.63l5.2-3.002c-2.02-3.787-3.225-8.074-3.38-12.628h-6.002zm5.183 17.36c2.87 4.648 6.795 8.574 11.442 11.443l3-5.2c-3.738-2.338-6.905-5.505-9.243-9.244l-5.2 3zm13.173 12.444c4.672 2.528 9.984 4.024 15.63 4.182v-6.003c-4.554-.154-8.84-1.358-12.628-3.378l-3.002 5.2zm17.63 4.182c5.646-.158 10.958-1.654 15.63-4.182l-3.002-5.2c-3.787 2.02-8.074 3.225-12.628 3.38v6.002zm17.36-5.183c4.648-2.87 8.574-6.795 11.443-11.442l-5.2-3c-2.338 3.738-5.505 6.905-9.244 9.243l3 5.2zm12.444-13.173c2.528-4.672 4.024-9.984 4.182-15.63h-6.003c-.154 4.554-1.358 8.84-3.378 12.628l5.2 3.002zm4.182-17.63c-.158-5.646-1.654-10.958-4.182-15.63l-5.2 3.002c2.02 3.787 3.225 8.074 3.38 12.628h6.002zm-5.183-17.36c-2.87-4.648-6.795-8.574-11.442-11.443l-3 5.2c3.738 2.338 6.905 5.505 9.243 9.244l5.2-3zM238 108.013c5.646.158 10.958 1.654 15.63 4.182l-3.002 5.2c-3.787-2.02-8.074-3.225-12.628-3.38v-6.002zm-20.03 8.023c-3.074 2.173-5.76 4.86-7.933 7.932l1.74 1.003c1.987-2.775 4.42-5.21 7.196-7.196l-1.004-1.74zm5.192-3.004c3.348-1.55 6.998-2.552 10.838-2.898v2.008c-3.477.334-6.787 1.243-9.833 2.63l-1.005-1.74zm-16.13 16.13c-1.548 3.347-2.55 6.997-2.897 10.837h2.008c.334-3.477 1.243-6.787 2.63-9.833l-1.74-1.005zM204.136 146c.346 3.84 1.35 7.49 2.898 10.838l1.74-1.005c-1.387-3.046-2.296-6.356-2.63-9.833h-2.008zm5.902 16.03c2.173 3.074 4.86 5.76 7.932 7.933l1.003-1.74c-2.775-1.987-5.21-4.42-7.196-7.196l-1.74 1.004zm13.125 10.937c3.348 1.55 6.998 2.552 10.838 2.898v-2.008c-3.477-.334-6.787-1.243-9.833-2.63l-1.005 1.74zM240 175.865c3.84-.346 7.49-1.35 10.838-2.898l-1.005-1.74c-3.046 1.387-6.356 2.296-9.833 2.63v2.008zm16.03-5.902c3.074-2.173 5.76-4.86 7.933-7.932l-1.74-1.003c-1.987 2.775-4.42 5.21-7.196 7.196l1.004 1.74zm10.937-13.125c1.55-3.348 2.552-6.998 2.898-10.838h-2.008c-.334 3.477-1.243 6.787-2.63 9.833l1.74 1.005zM269.865 140c-.346-3.84-1.35-7.49-2.898-10.838l-1.74 1.005c1.387 3.046 2.296 6.356 2.63 9.833h2.008zm-5.902-16.03c-2.173-3.074-4.86-5.76-7.932-7.933l-1.003 1.74c2.775 1.987 5.21 4.42 7.196 7.196l1.74-1.004zm-13.125-10.937c-3.348-1.55-6.998-2.552-10.838-2.898v2.008c3.477.334 6.787 1.243 9.833 2.63l1.005-1.74zm-10.32-9.88L240 99l-1-4h-4l-1 4-.52 4.153c-.872.076-1.737.18-2.593.31l-1.51-3.91-1.94-3.638-3.88.968-.003 4.123.5 4.136c-.83.283-1.645.592-2.448.927l-2.414-3.433-2.76-3.063-3.533 1.878.994 4 1.483 3.89c-.733.472-1.45.968-2.15 1.485l-3.187-2.758-3.42-2.305-2.972 2.677 1.933 3.642 2.378 3.41c-.61.643-1.197 1.306-1.763 1.988l-3.678-1.945-3.85-1.475-2.294 3.276 2.703 3.114 3.12 2.82c-.43.757-.837 1.53-1.217 2.315l-4.043-.998-4.092-.5-1.434 3.734 3.377 2.367 3.697 1.977c-.234.836-.443 1.683-.623 2.54l-4.173.01-4.092.504-.488 3.97 3.85 1.48 4.064 1.024c-.013.434-.02.87-.02 1.306 0 .437.007.872.02 1.306l-4.064 1.023-3.85 1.48.49 3.97 4.09.504 4.175.01c.18.856.39 1.703.624 2.54l-3.697 1.975-3.376 2.366 1.435 3.735 4.092-.5 4.042-.997c.38.786.785 1.558 1.215 2.314l-3.12 2.82-2.702 3.115 2.294 3.276 3.85-1.475 3.678-1.945c.566.682 1.154 1.345 1.763 1.988l-2.377 3.41-1.932 3.642 2.972 2.677 3.42-2.304 3.187-2.757c.7.517 1.417 1.013 2.15 1.485l-1.483 3.89-.995 4 3.53 1.878 2.762-3.063 2.414-3.432c.803.336 1.62.645 2.447.928l-.5 4.136.004 4.123 3.88.968 1.94-3.64 1.51-3.91c.856.132 1.72.236 2.594.312L234 187l1 4h4l1-4 .52-4.153c.872-.076 1.737-.18 2.593-.31l1.51 3.91 1.94 3.638 3.88-.968.003-4.123-.5-4.136c.83-.283 1.645-.592 2.448-.927l2.414 3.433 2.76 3.063 3.533-1.878-.994-4-1.483-3.89c.733-.472 1.45-.968 2.15-1.485l3.187 2.758 3.42 2.305 2.972-2.677-1.933-3.642-2.378-3.41c.61-.643 1.197-1.306 1.763-1.988l3.678 1.945 3.85 1.475 2.294-3.276-2.703-3.114-3.12-2.82c.43-.757.837-1.53 1.217-2.315l4.043.998 4.092.5 1.434-3.734-3.377-2.367-3.697-1.977c.234-.836.443-1.683.623-2.54l4.173-.01 4.092-.504.488-3.97-3.85-1.48-4.064-1.024c.013-.434.02-.87.02-1.306 0-.437-.007-.872-.02-1.306l4.064-1.023 3.85-1.48-.49-3.97-4.09-.504-4.175-.01c-.18-.856-.39-1.703-.624-2.54l3.697-1.975 3.376-2.366-1.435-3.735-4.092.5-4.042.997c-.38-.786-.785-1.558-1.215-2.314l3.12-2.82 2.702-3.115-2.294-3.276-3.85 1.475-3.678 1.945c-.566-.682-1.154-1.345-1.763-1.988l2.377-3.41 1.932-3.642-2.972-2.677-3.42 2.304-3.187 2.757c-.7-.517-1.417-1.013-2.15-1.485l1.483-3.89.995-4-3.53-1.878-2.762 3.063-2.414 3.432c-.803-.336-1.62-.645-2.447-.928l.5-4.136-.004-4.123-3.88-.968-1.94 3.64-1.51 3.91c-.856-.132-1.72-.236-2.594-.312zm-14.3 3.398c-1.825.54-3.594 1.213-5.294 2.008l-3.503-4.98-1.38-1.53-.882.468.497 2 2.163 5.674c-1.634.957-3.19 2.033-4.656 3.216l-4.614-3.994-1.71-1.15-.743.668.966 1.82 3.473 4.982c-1.367 1.328-2.635 2.757-3.79 4.277l-5.37-2.84-1.924-.738-.575.82 1.352 1.556 4.52 4.088c-.996 1.595-1.877 3.27-2.632 5.012l-5.893-1.455-2.046-.25-.36.933 1.69 1.184 5.366 2.868c-.582 1.78-1.035 3.615-1.35 5.5l-6.08.012-2.045.252-.122.993 1.924.74 5.904 1.486c-.07.935-.104 1.878-.104 2.83 0 .952.035 1.895.104 2.83l-5.905 1.485-1.925.74.122.993 2.046.252 6.08.013c.314 1.884.767 3.72 1.35 5.5l-5.368 2.867-1.688 1.184.36.933 2.045-.25 5.893-1.455c.755 1.742 1.636 3.417 2.632 5.012l-4.52 4.088-1.352 1.557.574.818 1.924-.737 5.368-2.84c1.156 1.52 2.424 2.95 3.79 4.278l-3.47 4.98-.967 1.822.743.67 1.71-1.152 4.614-3.994c1.466 1.183 3.022 2.26 4.656 3.216l-2.163 5.673-.497 2 .882.47 1.38-1.53 3.504-4.98c1.7.794 3.47 1.467 5.295 2.006l-.728 6.028v2.06l.972.243.97-1.82 2.192-5.675c1.83.36 3.706.588 5.62.675L236 187l.5 2h1l.5-2 .755-6.04c1.913-.087 3.79-.315 5.62-.675l2.192 5.676.97 1.82.97-.24v-2.062l-.726-6.03c1.827-.538 3.596-1.21 5.296-2.006l3.503 4.98 1.38 1.53.882-.468-.497-2-2.163-5.674c1.634-.957 3.19-2.033 4.656-3.216l4.614 3.994 1.71 1.15.743-.668-.966-1.82-3.473-4.982c1.367-1.328 2.635-2.757 3.79-4.277l5.37 2.84 1.924.738.575-.82-1.352-1.556-4.52-4.088c.996-1.595 1.877-3.27 2.632-5.012l5.893 1.455 2.046.25.36-.933-1.69-1.184-5.366-2.868c.582-1.78 1.035-3.615 1.35-5.5l6.08-.012 2.045-.252.122-.993-1.924-.74-5.904-1.486c.07-.935.104-1.878.104-2.83 0-.952-.035-1.895-.104-2.83l5.905-1.485 1.925-.74-.122-.993-2.046-.252-6.08-.013c-.314-1.884-.767-3.72-1.35-5.5l5.368-2.867 1.688-1.184-.36-.933-2.045.25-5.893 1.455c-.755-1.742-1.636-3.417-2.632-5.012l4.52-4.088 1.352-1.557-.574-.818-1.924.737-5.368 2.84c-1.156-1.52-2.424-2.95-3.79-4.278l3.47-4.98.967-1.822-.743-.67-1.71 1.152-4.614 3.994c-1.466-1.183-3.022-2.26-4.656-3.216l2.163-5.673.497-2-.882-.47-1.38 1.53-3.504 4.98c-1.7-.794-3.47-1.467-5.295-2.006l.728-6.028v-2.06l-.972-.243-.97 1.82-2.192 5.675c-1.83-.36-3.706-.588-5.62-.675L238 99l-.5-2h-1l-.5 2-.755 6.04c-1.913.087-3.79.315-5.62.675l-2.192-5.676-.97-1.82-.97.24v2.062l.726 6.03zM237 156c7.18 0 13-5.82 13-13s-5.82-13-13-13-13 5.82-13 13 5.82 13 13 13zm0-2c6.075 0 11-4.925 11-11s-4.925-11-11-11-11 4.925-11 11 4.925 11 11 11zM137.153 27c1.4 13.62 12.227 24.447 25.847 25.847V38.7c-5.877-1.193-10.507-5.823-11.7-11.7h-14.147zm12.563-27c-6.896 4.688-11.665 12.27-12.563 21H151.3c1.193-5.877 5.823-10.507 11.7-11.7V0h-13.284zM169 52.847c13.62-1.4 24.447-12.227 25.847-25.847H180.7c-1.193 5.877-5.823 10.507-11.7 11.7v14.147zM182.284 0c6.896 4.688 11.665 12.27 12.563 21H180.7c-1.193-5.877-5.823-10.507-11.7-11.7V0h13.284zm-42.822 29c2.04 10.903 10.635 19.497 21.538 21.538V40.253c-5.368-1.65-9.603-5.885-11.253-11.253h-10.285zm14.156-29c-7.263 3.755-12.604 10.71-14.156 19h10.285c1.65-5.368 5.885-9.603 11.253-11.253V0h-7.382zM171 50.538c10.903-2.04 19.497-10.635 21.538-21.538h-10.285c-1.65 5.368-5.885 9.603-11.253 11.253v10.285zM178.382 0c7.263 3.755 12.604 10.71 14.156 19h-10.285c-1.65-5.368-5.885-9.603-11.253-11.253V0h7.382zm-40.84 0l.737 1.03c-.574.69-1.123 1.405-1.644 2.138l-7.74-2.9-2 3.464 6.376 5.25c-.374.816-.72 1.648-1.034 2.495l-8.22-.797-1.036 3.864 7.522 3.422c-.15.88-.266 1.773-.35 2.675L122 22v4l8.155 1.36c.083.9.2 1.793.35 2.674l-7.523 3.422 1.035 3.864 8.22-.797c.315.847.66 1.68 1.035 2.495l-6.377 5.25 2 3.464 7.74-2.9c.522.733 1.07 1.447 1.644 2.138l-4.807 6.728 2.83 2.83 6.727-4.807c.69.574 1.405 1.123 2.138 1.644l-2.9 7.74 3.464 2 5.25-6.376c.816.374 1.648.72 2.495 1.034l-.797 8.22 3.864 1.036 3.422-7.522c.88.15 1.773.266 2.675.35L164 68h4l1.36-8.155c.9-.083 1.793-.2 2.674-.35l3.422 7.523 3.864-1.035-.797-8.22c.847-.315 1.68-.66 2.495-1.035l5.25 6.377 3.464-2-2.9-7.74c.733-.522 1.447-1.07 2.138-1.644l6.728 4.807 2.83-2.83-4.807-6.727c.574-.69 1.123-1.405 1.644-2.138l7.74 2.9 2-3.464-6.376-5.25c.374-.816.72-1.648 1.034-2.495l8.22.797 1.036-3.864-7.522-3.422c.15-.88.266-1.773.35-2.675L210 26v-4l-8.155-1.36c-.083-.9-.2-1.793-.35-2.674l7.523-3.422-1.035-3.864-8.22.797c-.315-.847-.66-1.68-1.035-2.495l6.377-5.25-2-3.464-7.74 2.9c-.522-.733-1.07-1.447-1.644-2.138l.737-1.03h-56.914zm2.426 0l.836 1.17c-1.242 1.37-2.373 2.84-3.38 4.4l-7.63-2.86-.334.58 6.288 5.175c-.842 1.637-1.555 3.35-2.126 5.128l-8.105-.785-.172.644 7.414 3.372c-.385 1.786-.63 3.624-.72 5.503l-8.04 1.34v.666l8.04 1.34c.09 1.88.335 3.717.72 5.503l-7.415 3.372.172.644 8.105-.785c.57 1.777 1.284 3.49 2.126 5.128l-6.288 5.176.334.58 7.63-2.86c1.007 1.56 2.138 3.03 3.38 4.4l-4.738 6.633.47.47 6.635-4.737c1.37 1.242 2.84 2.373 4.4 3.38l-2.86 7.63.58.334 5.175-6.288c1.637.842 3.35 1.555 5.128 2.126l-.785 8.105.644.172 3.372-7.414c1.786.385 3.624.63 5.503.72l1.34 8.04h.666l1.34-8.04c1.88-.09 3.717-.335 5.503-.72l3.372 7.415.644-.172-.785-8.105c1.777-.57 3.49-1.284 5.128-2.126l5.176 6.288.58-.334-2.86-7.63c1.56-1.007 3.03-2.138 4.4-3.38l6.633 4.738.47-.47-4.737-6.635c1.242-1.37 2.373-2.84 3.38-4.4l7.63 2.86.334-.58-6.288-5.175c.842-1.637 1.555-3.35 2.126-5.128l8.105.785.172-.644-7.414-3.372c.385-1.786.63-3.624.72-5.503l8.04-1.34v-.666l-8.04-1.34c-.09-1.88-.335-3.717-.72-5.503l7.415-3.372-.172-.644-8.105.785c-.57-1.777-1.284-3.49-2.126-5.128l6.288-5.176-.334-.58-7.63 2.86c-1.007-1.56-2.138-3.03-3.38-4.4l.836-1.17h-52.064zM166 34c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zm0-2c4.418 0 8-3.582 8-8s-3.582-8-8-8-8 3.582-8 8 3.582 8 8 8zM126.49 208.15c-.32 1.566-.49 3.19-.49 4.85 0 1.66.17 3.284.49 4.85l-10.667 7.954 6 10.392 12.227-5.263c2.412 2.147 5.26 3.815 8.396 4.854L144 249h12l1.554-13.213c3.136-1.04 5.984-2.707 8.396-4.854l12.227 5.263 6-10.392-10.667-7.954c.32-1.566.49-3.19.49-4.85 0-1.66-.17-3.284-.49-4.85l10.667-7.954-6-10.392-12.227 5.263c-2.412-2.147-5.26-3.815-8.396-4.854L156 177h-12l-1.554 13.213c-3.136 1.04-5.984 2.707-8.396 4.854l-12.227-5.263-6 10.392 10.667 7.954zm29.246-16.395l-1.5-12.755h-8.47l-1.502 12.755c-3.755 1.012-7.113 2.992-9.79 5.658l-11.8-5.08-4.237 7.335 10.297 7.677c-.48 1.805-.734 3.7-.734 5.655s.255 3.85.734 5.655l-10.297 7.677 4.236 7.336 11.802-5.08c2.676 2.665 6.034 4.645 9.79 5.657l1.5 12.755h8.47l1.5-12.755c3.756-1.012 7.114-2.992 9.79-5.658l11.802 5.08 4.236-7.335-10.297-7.677c.48-1.805.734-3.7.734-5.655s-.255-3.85-.734-5.655l10.297-7.677-4.236-7.336-11.802 5.08c-2.676-2.665-6.034-4.645-9.79-5.657zM150 225c6.627 0 12-5.373 12-12s-5.373-12-12-12-12 5.373-12 12 5.373 12 12 12zm0-2c5.523 0 10-4.477 10-10s-4.477-10-10-10-10 4.477-10 10 4.477 10 10 10zM136.115 288.14c-1.552-.73-3.286-1.14-5.115-1.14-1.83 0-3.563.41-5.115 1.14l3.013 5.218c.654-.244 1.362-.377 2.102-.377.74 0 1.448.134 2.102.378l3.013-5.217zm1.73 1.003c2.86 1.99 4.81 5.19 5.114 8.857h-6.024c-.243-1.458-1.01-2.738-2.102-3.64l3.012-5.217zm-13.69 0c-2.86 1.99-4.81 5.19-5.114 8.857h6.024c.243-1.458 1.01-2.738 2.102-3.64l-3.012-5.217zM119.04 300c.304 3.668 2.256 6.868 5.114 8.857l3.012-5.217c-1.09-.902-1.86-2.182-2.102-3.64h-6.023zm6.845 9.86c1.552.73 3.286 1.14 5.115 1.14 1.83 0 3.563-.41 5.115-1.14l-3.013-5.218c-.654.244-1.362.377-2.102.377-.74 0-1.448-.134-2.102-.378l-3.013 5.217zm11.96-1.003c2.86-1.99 4.81-5.19 5.114-8.857h-6.024c-.243 1.458-1.01 2.738-2.102 3.64l3.012 5.217zm-4.672-19.62c-.7-.155-1.427-.237-2.173-.237s-1.473.082-2.173.237l1.052 1.822c.365-.052.74-.08 1.12-.08.38 0 .755.028 1.12.08l1.053-1.823zm5.195 3.002c.98 1.065 1.73 2.345 2.174 3.76h-2.103c-.284-.702-.664-1.354-1.123-1.94l1.05-1.82zm-14.736 0c-.98 1.065-1.73 2.345-2.174 3.76h2.103c.284-.702.664-1.354 1.123-1.94l-1.05-1.82zm-2.174 9.76c.444 1.415 1.195 2.695 2.174 3.76l1.05-1.82c-.458-.586-.838-1.238-1.12-1.94h-2.104zm7.37 6.763c.7.155 1.426.237 2.172.237.746 0 1.473-.082 2.173-.237l-1.052-1.822c-.365.052-.74.08-1.12.08-.38 0-.755-.028-1.12-.08l-1.053 1.823zm9.54-3.002c.98-1.065 1.73-2.345 2.174-3.76h-2.103c-.284.702-.664 1.354-1.123 1.94l1.05 1.82zm15.164-15.043c-.224-.61-.472-1.207-.743-1.792l2.96-3.06-1-1.73-4.134 1.034c-.373-.53-.766-1.04-1.18-1.536l2.07-3.726-1.414-1.414-3.726 2.07c-.495-.414-1.007-.807-1.535-1.18l1.036-4.133-1.732-1-3.06 2.96c-.584-.27-1.182-.518-1.79-.742l-.07-4.255-1.933-.518-2.19 3.652c-.63-.108-1.27-.192-1.92-.25L132 271h-2l-1.17 4.097c-.65.058-1.29.142-1.92.25l-2.19-3.652-1.933.518-.07 4.255c-.61.224-1.207.472-1.792.743l-3.06-2.96-1.73 1 1.034 4.134c-.53.373-1.04.766-1.536 1.18l-3.726-2.07-1.414 1.414 2.07 3.726c-.414.495-.807 1.007-1.18 1.535l-4.133-1.036-1 1.732 2.96 3.06c-.27.584-.518 1.182-.742 1.79l-4.255.07-.518 1.933 3.652 2.19c-.108.63-.192 1.27-.25 1.92L103 298v2l4.097 1.17c.058.65.142 1.29.25 1.92l-3.652 2.19.518 1.933 4.255.07c.224.61.472 1.207.743 1.792l-2.96 3.06 1 1.73 4.134-1.034c.373.53.766 1.04 1.18 1.536l-2.07 3.726 1.414 1.414 3.726-2.07c.495.414 1.007.807 1.535 1.18l-1.036 4.133 1.732 1 3.06-2.96c.584.27 1.182.518 1.79.742l.07 4.255 1.933.518 2.19-3.652c.63.108 1.27.192 1.92.25L130 327h2l1.17-4.097c.65-.058 1.29-.142 1.92-.25l2.19 3.652 1.933-.518.07-4.255c.61-.224 1.207-.472 1.792-.743l3.06 2.96 1.73-1-1.034-4.134c.53-.373 1.04-.766 1.536-1.18l3.726 2.07 1.414-1.414-2.07-3.726c.414-.495.807-1.007 1.18-1.535l4.133 1.036 1-1.732-2.96-3.06c.27-.584.518-1.182.742-1.79l4.255-.07.518-1.933-3.652-2.19c.108-.63.192-1.27.25-1.92L159 300v-2l-4.097-1.17c-.058-.65-.142-1.29-.25-1.92l3.652-2.19-.518-1.933-4.255-.07zM109 299c0 12.15 9.85 22 22 22s22-9.85 22-22-9.85-22-22-22-22 9.85-22 22zm18 0c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4-4 1.79-4 4zm2 0c0 1.105.895 2 2 2s2-.895 2-2-.895-2-2-2-2 .895-2 2zm15 0c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4-4 1.79-4 4zm2 0c0 1.105.895 2 2 2s2-.895 2-2-.895-2-2-2-2 .895-2 2zm-8.5 11.258c-1.913 1.105-2.57 3.55-1.464 5.464 1.104 1.914 3.55 2.57 5.464 1.465 1.913-1.105 2.57-3.55 1.464-5.465-1.104-1.913-3.55-2.568-5.464-1.464zm-13 0c-1.913-1.104-4.36-.45-5.464 1.464-1.105 1.914-.45 4.36 1.464 5.465 1.913 1.104 4.36.45 5.464-1.465 1.105-1.913.45-4.36-1.464-5.464zM118 299c0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4 4-1.79 4-4zm6.5-11.258c1.913-1.105 2.57-3.55 1.464-5.464-1.104-1.914-3.55-2.57-5.464-1.465-1.913 1.105-2.57 3.55-1.464 5.465 1.104 1.913 3.55 2.568 5.464 1.464zm13 0c1.913 1.104 4.36.45 5.464-1.464 1.105-1.914.45-4.36-1.464-5.465-1.913-1.104-4.36-.45-5.464 1.465-1.105 1.913-.45 4.36 1.464 5.464zm1 24.248c-.957.553-1.284 1.776-.732 2.732.552.957 1.775 1.285 2.732.732.957-.552 1.284-1.775.732-2.732-.552-.956-1.775-1.284-2.732-.732zm-15 0c-.957-.552-2.18-.224-2.732.732-.552.957-.225 2.18.732 2.732.957.553 2.18.225 2.732-.732.552-.956.225-2.18-.732-2.732zM116 299c0-1.105-.895-2-2-2s-2 .895-2 2 .895 2 2 2 2-.895 2-2zm7.5-12.99c.957-.553 1.284-1.776.732-2.732-.552-.957-1.775-1.285-2.732-.732-.957.552-1.284 1.775-.732 2.732.552.956 1.775 1.284 2.732.732zm15 0c.957.552 2.18.224 2.732-.732.552-.957.225-2.18-.732-2.732-.957-.553-2.18-.225-2.732.732-.552.956-.225 2.18.732 2.732zM248.997 275.802c-.643 1.607-.997 3.36-.997 5.198 0 1.837.354 3.59.997 5.198l-33.873 19.556C211.214 298.366 209 289.94 209 281c0-8.94 2.214-17.366 6.124-24.754l33.873 19.556zM251 272.34c2.173-2.758 5.36-4.678 9-5.198v-39.105c-18.067.67-33.822 10.384-42.873 24.746L251 272.34zm0 17.32c2.173 2.758 5.36 4.678 9 5.198v39.105c-18.067-.67-33.822-10.384-42.873-24.746L251 289.66zm13 5.198c3.64-.52 6.827-2.44 9-5.197l33.873 19.557c-9.05 14.362-24.806 24.076-42.873 24.746v-39.105zm11.003-8.66c.643-1.607.997-3.36.997-5.198 0-1.837-.354-3.59-.997-5.198l33.873-19.556C312.786 263.634 315 272.06 315 281c0 8.94-2.214 17.366-6.124 24.754l-33.873-19.556zM273 272.338c-2.173-2.756-5.36-4.676-9-5.196v-39.105c18.067.67 33.822 10.384 42.873 24.746L273 272.34zm-57.042-13.3C212.78 265.687 211 273.135 211 281c0 7.864 1.78 15.312 4.958 21.963l30.622-17.68c-.378-1.363-.58-2.8-.58-4.283 0-1.484.202-2.92.58-4.284l-30.622-17.68zm4.007-6.926c8.486-12.325 22.253-20.733 38.035-21.957v35.35c-2.86.735-5.41 2.242-7.416 4.285l-30.62-17.678zm0 57.776c8.486 12.325 22.253 20.733 38.035 21.957v-35.35c-2.86-.735-5.41-2.242-7.416-4.285l-30.62 17.678zM266 331.845c15.782-1.224 29.55-9.632 38.035-21.957l-30.62-17.678c-2.005 2.043-4.555 3.55-7.415 4.286v35.35zm42.042-28.882c3.178-6.65 4.958-14.1 4.958-21.963 0-7.864-1.78-15.312-4.958-21.963l-30.622 17.68c.378 1.363.58 2.8.58 4.283 0 1.484-.202 2.92-.58 4.284l30.622 17.68zm-4.007-50.85c-8.486-12.326-22.253-20.734-38.035-21.958v35.35c2.86.735 5.41 2.242 7.416 4.285l30.62-17.678zm-59.618-26.4c-3.15 1-6.184 2.264-9.076 3.763l-5.185-6.3-2.31 1.333 2.865 7.646c-2.765 1.774-5.37 3.778-7.786 5.982l-6.65-4.75-1.886 1.886 4.75 6.65c-2.204 2.417-4.208 5.02-5.982 7.786l-7.647-2.865-1.334 2.31 6.3 5.186c-1.5 2.893-2.762 5.927-3.763 9.077l-8.12-.787-.69 2.576 7.43 3.38c-.69 3.157-1.12 6.41-1.272 9.737l-8.06 1.344v2.666l8.06 1.344c.152 3.327.583 6.58 1.272 9.738l-7.428 3.38.69 2.575 8.12-.787c1 3.15 2.263 6.184 3.762 9.076l-6.3 5.185 1.333 2.31 7.646-2.865c1.774 2.765 3.778 5.37 5.982 7.786l-4.75 6.65 1.886 1.886 6.65-4.75c2.417 2.204 5.02 4.208 7.786 5.982l-2.865 7.647 2.31 1.334 5.186-6.3c2.893 1.5 5.927 2.762 9.077 3.763l-.787 8.12 2.576.69 3.38-7.43c3.157.69 6.41 1.12 9.737 1.272l1.344 8.06h2.666l1.344-8.06c3.327-.152 6.58-.583 9.738-1.272l3.38 7.428 2.575-.69-.787-8.12c3.15-1 6.184-2.263 9.076-3.762l5.185 6.3 2.31-1.333-2.865-7.646c2.765-1.774 5.37-3.778 7.786-5.982l6.65 4.75 1.886-1.886-4.75-6.65c2.204-2.417 4.208-5.02 5.982-7.786l7.647 2.865 1.334-2.31-6.3-5.186c1.5-2.893 2.762-5.927 3.763-9.077l8.12.787.69-2.576-7.43-3.38c.69-3.157 1.12-6.41 1.272-9.737l8.06-1.344v-2.666l-8.06-1.344c-.152-3.327-.583-6.58-1.272-9.738l7.428-3.38-.69-2.575-8.12.787c-1-3.15-2.263-6.184-3.762-9.076l6.3-5.185-1.333-2.31-7.646 2.865c-1.774-2.765-3.778-5.37-5.982-7.786l4.75-6.65-1.886-1.886-6.65 4.75c-2.417-2.204-5.02-4.208-7.786-5.982l2.865-7.647-2.31-1.334-5.186 6.3c-2.893-1.5-5.927-2.762-9.077-3.763l.787-8.12-2.576-.69-3.38 7.43c-3.157-.69-6.41-1.12-9.737-1.272l-1.344-8.06h-2.666l-1.344 8.06c-3.327.152-6.58.583-9.738 1.272l-3.38-7.428-2.575.69.787 8.12zm-2.118-1.404c-2.214.768-4.368 1.663-6.454 2.675l-5.248-6.375-5.196 3 2.9 7.74c-1.928 1.31-3.776 2.732-5.534 4.252l-6.73-4.807-4.243 4.243 4.807 6.73c-1.52 1.758-2.94 3.606-4.252 5.534l-7.74-2.9-3 5.196 6.375 5.248c-1.012 2.086-1.907 4.24-2.676 6.453l-8.216-.797-1.553 5.795 7.52 3.42c-.432 2.265-.736 4.575-.904 6.923L194 278v6l8.156 1.36c.168 2.347.472 4.657.903 6.922l-7.52 3.42 1.554 5.795 8.215-.796c.768 2.214 1.663 4.368 2.675 6.454l-6.375 5.248 3 5.196 7.74-2.9c1.31 1.928 2.732 3.776 4.252 5.534l-4.807 6.73 4.243 4.243 6.73-4.807c1.758 1.52 3.606 2.94 5.534 4.252l-2.9 7.74 5.196 3 5.248-6.375c2.086 1.012 4.24 1.907 6.453 2.676l-.797 8.216 5.795 1.553 3.42-7.52c2.265.432 4.575.736 6.923.904L259 349h6l1.36-8.156c2.347-.168 4.657-.472 6.922-.903l3.42 7.52 5.795-1.554-.796-8.215c2.214-.768 4.368-1.663 6.454-2.675l5.248 6.375 5.196-3-2.9-7.74c1.928-1.31 3.776-2.732 5.534-4.252l6.73 4.807 4.243-4.243-4.807-6.73c1.52-1.758 2.94-3.606 4.252-5.534l7.74 2.9 3-5.196-6.375-5.248c1.012-2.086 1.907-4.24 2.676-6.453l8.216.797 1.553-5.795-7.52-3.42c.432-2.265.736-4.575.904-6.923L330 284v-6l-8.156-1.36c-.168-2.347-.472-4.657-.903-6.922l7.52-3.42-1.554-5.795-8.215.796c-.768-2.214-1.663-4.368-2.675-6.454l6.375-5.248-3-5.196-7.74 2.9c-1.31-1.928-2.732-3.776-4.252-5.534l4.807-6.73-4.243-4.243-6.73 4.807c-1.758-1.52-3.606-2.94-5.534-4.252l2.9-7.74-5.196-3-5.248 6.375c-2.086-1.012-4.24-1.907-6.453-2.676l.797-8.216-5.795-1.553-3.42 7.52c-2.265-.432-4.575-.736-6.923-.904L265 213h-6l-1.36 8.156c-2.347.168-4.657.472-6.922.903l-3.42-7.52-5.795 1.554.796 8.215zM262 290c4.97 0 9-4.03 9-9s-4.03-9-9-9-9 4.03-9 9 4.03 9 9 9zm0-2c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zM0 244.514l1.76.254 6.41 3.07c1.4-2.066 3.01-3.98 4.798-5.71l-4.14-5.782-1.01-3.07 1.227-1.028 2.847 1.527 4.974 5.078c2.006-1.457 4.17-2.712 6.458-3.735l-1.91-6.84.1-3.23 1.505-.547 2.153 2.41 2.933 6.467c2.36-.673 4.818-1.112 7.35-1.288L36 225l1.2-3h1.6l1.2 3 .545 7.09c2.53.175 4.99.614 7.35 1.287l2.932-6.468 2.154-2.41 1.505.548.1 3.23-1.91 6.84c2.29 1.023 4.453 2.278 6.46 3.735l4.973-5.078 2.847-1.527 1.226 1.028-1.008 3.07-4.14 5.782c1.788 1.73 3.398 3.644 4.797 5.71l6.41-3.07 3.197-.46.8 1.385-1.998 2.54-5.862 4.012c1.082 2.22 1.943 4.566 2.553 7.012l7.07-.693 3.162.66.278 1.576-2.746 1.703-6.885 1.767c.125 1.226.19 2.47.19 3.73 0 1.26-.065 2.504-.19 3.73l6.884 1.767 2.746 1.703-.278 1.576-3.163.66-7.07-.693c-.61 2.446-1.47 4.793-2.552 7.012l5.86 4.013 2 2.54-.8 1.385-3.2-.46-6.41-3.072c-1.398 2.068-3.008 3.982-4.796 5.712l4.14 5.782 1.01 3.07-1.227 1.028-2.847-1.527-4.974-5.078c-2.006 1.457-4.17 2.712-6.458 3.735l1.91 6.84-.1 3.23-1.505.547-2.153-2.41-2.933-6.467c-2.36.673-4.818 1.112-7.35 1.288L40 311l-1.2 3h-1.6l-1.2-3-.545-7.09c-2.53-.175-4.99-.614-7.35-1.287l-2.932 6.468-2.154 2.41-1.505-.548-.1-3.23 1.91-6.84c-2.29-1.023-4.453-2.278-6.46-3.735l-4.973 5.078-2.847 1.527-1.226-1.028 1.008-3.07 4.14-5.782c-1.788-1.73-3.398-3.644-4.797-5.71l-6.41 3.07-1.76.254v-3.882l5.622-3.85c-1.082-2.218-1.943-4.565-2.553-7.01l-3.07.3v-4.752l2.19-.562C2.066 270.504 2 269.26 2 268c0-1.26.065-2.504.19-3.73L0 263.708v-4.752l3.07.3c.61-2.445 1.47-4.792 2.552-7.01L0 248.395v-3.882zm0-1.876l2.76.398 4.753 2.277c.885-1.187 1.837-2.32 2.852-3.396l-3.07-4.286-1.68-5.115 3.063-2.57 4.746 2.544 3.686 3.762c1.23-.812 2.513-1.554 3.84-2.22l-1.416-5.07.17-5.383 3.758-1.37 3.59 4.015 2.174 4.793c1.427-.337 2.886-.594 4.37-.766L34 225l2-5h4l2 5 .404 5.252c1.484.172 2.943.43 4.37.766l2.174-4.793 3.59-4.014 3.758 1.37.17 5.38-1.416 5.07c1.327.668 2.61 1.41 3.84 2.222l3.686-3.763 4.746-2.546 3.064 2.57-1.682 5.117-3.07 4.287c1.016 1.075 1.968 2.21 2.853 3.396l4.752-2.277 5.33-.768 2 3.464-3.33 4.232-4.343 2.973c.585 1.35 1.093 2.743 1.52 4.17l5.235-.513 5.27 1.1.696 3.94-4.577 2.838-5.104 1.31c.043.735.064 1.474.064 2.218s-.02 1.483-.064 2.217l5.105 1.31 4.578 2.838-.695 3.94-5.27 1.1-5.237-.512c-.426 1.427-.934 2.82-1.52 4.17l4.343 2.973 3.33 4.232-2 3.464-5.33-.768-4.753-2.277c-.885 1.187-1.837 2.32-2.852 3.396l3.07 4.286 1.68 5.115-3.063 2.57-4.746-2.544-3.686-3.762c-1.23.812-2.513 1.554-3.84 2.22l1.416 5.07-.17 5.383-3.758 1.37-3.59-4.015-2.174-4.793c-1.427.337-2.886.594-4.37.766L42 311l-2 5h-4l-2-5-.404-5.252c-1.484-.172-2.943-.43-4.37-.766l-2.174 4.793-3.59 4.014-3.758-1.37-.17-5.38 1.416-5.07c-1.327-.668-2.61-1.41-3.84-2.222l-3.686 3.763-4.746 2.546-3.064-2.57 1.682-5.117 3.07-4.287c-1.016-1.075-1.968-2.21-2.853-3.396l-4.752 2.277-2.76.398v-8.174l3.103-2.125c-.585-1.35-1.093-2.743-1.52-4.17L0 279.048v-8.815l.064-.016C.02 269.483 0 268.744 0 268s.02-1.483.064-2.217L0 265.767v-8.815l1.584.155c.426-1.427.934-2.82 1.52-4.17L0 250.812v-8.174zM38 272c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0-2c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm0-26c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm24 24c0 2.21 1.79 4 4 4s4-1.79 4-4-1.79-4-4-4-4 1.79-4 4zm-24 24c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm-24-24c0-2.21-1.79-4-4-4s-4 1.79-4 4 1.79 4 4 4 4-1.79 4-4zm24-26c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm26 26c0 1.105.895 2 2 2s2-.895 2-2-.895-2-2-2-2 .895-2 2zm-26 26c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-26-26c0-1.105-.895-2-2-2s-2 .895-2 2 .895 2 2 2 2-.895 2-2zm3.373 22.627c4.686 4.687 12.284 4.687 16.97 0 4.686-4.686 4.686-12.284 0-16.97-4.686-4.686-12.284-4.686-16.97 0-4.687 4.686-4.687 12.284 0 16.97zm0-45.254c-4.687 4.686-4.687 12.284 0 16.97 4.686 4.686 12.284 4.686 16.97 0 4.686-4.686 4.686-12.284 0-16.97-4.686-4.687-12.284-4.687-16.97 0zm45.254 0c-4.686-4.687-12.284-4.687-16.97 0-4.686 4.686-4.686 12.284 0 16.97 4.686 4.686 12.284 4.686 16.97 0 4.687-4.686 4.687-12.284 0-16.97zm0 45.254c4.687-4.686 4.687-12.284 0-16.97-4.686-4.686-12.284-4.686-16.97 0-4.686 4.686-4.686 12.284 0 16.97 4.686 4.687 12.284 4.687 16.97 0zM45.07 260.93c3.906 3.904 10.238 3.904 14.143 0 3.905-3.906 3.905-10.238 0-14.143-3.905-3.905-10.237-3.905-14.142 0-3.904 3.905-3.904 10.237 0 14.142zm0 14.14c-3.904 3.906-3.904 10.238 0 14.143 3.906 3.905 10.238 3.905 14.143 0 3.905-3.905 3.905-10.237 0-14.142-3.905-3.904-10.237-3.904-14.142 0zm-14.14 0c-3.906-3.904-10.238-3.904-14.143 0-3.905 3.906-3.905 10.238 0 14.143 3.905 3.905 10.237 3.905 14.142 0 3.904-3.905 3.904-10.237 0-14.142zm0-14.14c3.904-3.906 3.904-10.238 0-14.143-3.906-3.905-10.238-3.905-14.143 0-3.905 3.905-3.905 10.237 0 14.142 3.905 3.904 10.237 3.904 14.142 0zM261.822 15.54c-1.043.36-2.06.783-3.042 1.26l-2.914-3.013-1.732 1 1.154 4.034c-.91.618-1.78 1.288-2.61 2.005l-3.598-2.16-1.415 1.415 2.16 3.6c-.717.828-1.387 1.7-2.004 2.608l-4.033-1.154-1 1.732 3.013 2.914c-.477.983-.9 2-1.26 3.042l-4.19-.07-.518 1.932 3.665 2.035c-.203 1.066-.347 2.155-.425 3.262L239 41v2l4.072 1.018c.078 1.107.222 2.196.425 3.263l-3.665 2.036.517 1.932 4.19-.07c.36 1.043.783 2.06 1.26 3.042l-3.013 2.914 1 1.732 4.034-1.154c.618.91 1.288 1.78 2.005 2.61l-2.16 3.598 1.415 1.415 3.6-2.16c.828.717 1.7 1.387 2.608 2.004l-1.154 4.033 1.732 1 2.914-3.013c.983.477 2 .9 3.042 1.26l-.07 4.19 1.932.518 2.035-3.665c1.066.203 2.155.347 3.262.425L270 74h2l1.018-4.072c1.107-.078 2.196-.222 3.263-.425l2.036 3.665 1.932-.517-.07-4.19c1.043-.36 2.06-.783 3.042-1.26l2.914 3.013 1.732-1-1.154-4.034c.91-.618 1.78-1.288 2.61-2.005l3.598 2.16 1.415-1.415-2.16-3.6c.717-.828 1.387-1.7 2.004-2.608l4.033 1.154 1-1.732-3.013-2.914c.477-.983.9-2 1.26-3.042l4.19.07.518-1.932-3.665-2.035c.203-1.066.347-2.155.425-3.262L303 43v-2l-4.072-1.018c-.078-1.107-.222-2.196-.425-3.263l3.665-2.036-.517-1.932-4.19.07c-.36-1.043-.783-2.06-1.26-3.042l3.013-2.914-1-1.732-4.034 1.154c-.618-.91-1.288-1.78-2.005-2.61l2.16-3.598-1.415-1.415-3.6 2.16c-.828-.717-1.7-1.387-2.608-2.004l1.154-4.033-1.732-1-2.914 3.013c-.983-.477-2-.9-3.042-1.26l.07-4.19-1.932-.518-2.035 3.665c-1.066-.203-2.155-.347-3.262-.425L272 10h-2l-1.018 4.072c-1.107.078-2.196.222-3.263.425l-2.036-3.665-1.932.517.07 4.19zM271 68c14.36 0 26-11.64 26-26s-11.64-26-26-26-26 11.64-26 26 11.64 26 26 26zm0-9c9.39 0 17-7.61 17-17s-7.61-17-17-17-17 7.61-17 17 7.61 17 17 17zm0-2c8.284 0 15-6.716 15-15 0-8.284-6.716-15-15-15-8.284 0-15 6.716-15 15 0 8.284 6.716 15 15 15zm0-8c3.866 0 7-3.134 7-7s-3.134-7-7-7-7 3.134-7 7 3.134 7 7 7zm0-2c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zm0-14c1.105 0 2-.895 2-2s-.895-2-2-2-2 .895-2 2 .895 2 2 2zm9 9c0 1.105.895 2 2 2s2-.895 2-2-.895-2-2-2-2 .895-2 2zm-9 9c-1.105 0-2 .895-2 2s.895 2 2 2 2-.895 2-2-.895-2-2-2zm-9-9c0-1.105-.895-2-2-2s-2 .895-2 2 .895 2 2 2 2-.895 2-2zM309.933 95.785c-.284.33-.54.683-.77 1.056l-4.267-.5-.618 1.903 3.748 2.104c-.017.215-.026.433-.026.653 0 .22.01.438.026.653l-3.748 2.104.618 1.902 4.268-.5c.228.372.485.725.77 1.055l-1.796 3.905 1.618 1.176 3.158-2.913c.4.167.814.303 1.243.404L315 113h2l.843-4.213c.43-.1.844-.237 1.243-.404l3.158 2.913 1.618-1.176-1.795-3.905c.284-.33.54-.683.77-1.056l4.267.5.618-1.903-3.748-2.104c.017-.215.026-.433.026-.653 0-.22-.01-.438-.026-.653l3.748-2.104-.618-1.902-4.268.5c-.228-.372-.485-.725-.77-1.055l1.796-3.905-1.618-1.176-3.158 2.913c-.4-.167-.814-.303-1.243-.404L317 89h-2l-.843 4.213c-.43.1-.844.237-1.243.404l-3.158-2.913-1.618 1.176 1.795 3.905zM316 106c2.76 0 5-2.24 5-5s-2.24-5-5-5-5 2.24-5 5 2.24 5 5 5zM75.734 179.206c-.562.453-1.075.966-1.528 1.528l-2.098-.6-1 1.732 1.567 1.515c-.258.666-.448 1.366-.56 2.09L70 186v2l2.116.53c.11.724.3 1.424.56 2.09l-1.568 1.514 1 1.732 2.098-.6c.453.562.966 1.075 1.528 1.528l-.6 2.098 1.732 1 1.515-1.567c.666.258 1.366.448 2.09.56L81 199h2l.53-2.116c.724-.11 1.424-.3 2.09-.56l1.514 1.568 1.732-1-.6-2.098c.562-.453 1.075-.966 1.528-1.528l2.098.6 1-1.732-1.567-1.515c.258-.666.448-1.366.56-2.09L94 188v-2l-2.116-.53c-.11-.724-.3-1.424-.56-2.09l1.568-1.514-1-1.732-2.098.6c-.453-.562-.966-1.075-1.528-1.528l.6-2.098-1.732-1-1.515 1.567c-.666-.258-1.366-.448-2.09-.56L83 175h-2l-.53 2.116c-.724.11-1.424.3-2.09.56l-1.514-1.568-1.732 1 .6 2.098zm2.146.935c-1.12.676-2.064 1.62-2.74 2.74l-.145.253C74.36 184.28 74 185.597 74 187s.36 2.72.995 3.867l.146.253c.676 1.12 1.62 2.064 2.74 2.74l.253.145c1.146.634 2.464.995 3.867.995s2.72-.36 3.867-.995l.253-.146c1.12-.676 2.064-1.62 2.74-2.74l.145-.253c.634-1.146.995-2.464.995-3.867s-.36-2.72-.995-3.867l-.146-.253c-.676-1.12-1.62-2.064-2.74-2.74l-.253-.145C84.72 179.36 83.403 179 82 179s-2.72.36-3.867.995l-.253.146zM82 193c3.314 0 6-2.686 6-6s-2.686-6-6-6-6 2.686-6 6 2.686 6 6 6zm0-2c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zM360 139.08c-1.242.543-2.43 1.183-3.558 1.912l3.558 3.8v-5.712zm0 22.678l-14.172 6.646c-.54-2.044-.828-4.19-.828-6.404 0-7.82 3.59-14.8 9.21-19.384l5.79 10.497v8.645zm0 23.162c-6.088-2.66-10.912-7.675-13.32-13.893l13.32-2.56v16.453zm0-43.638c-.13.063-.26.127-.388.192l.388.414v-.606zm0 18.284l-12.73 5.97c-.178-1.153-.27-2.334-.27-3.536 0-6.328 2.556-12.06 6.69-16.218l6.31 11.44v2.344zm0 23.152c-4.502-2.177-8.186-5.778-10.47-10.218l10.47-2.01v12.228zm0 7.928l-4.46 6.58-4.11-2.004 2.536-7.862c-1.856-1.176-3.574-2.55-5.124-4.09l-7.085 4.234-2.877-3.553 5.652-6.087c-1.144-1.833-2.095-3.798-2.826-5.867l-8.236.702-1.028-4.455 7.733-2.988c-.116-1.07-.175-2.155-.175-3.255s.06-2.186.175-3.255l-7.733-2.988 1.028-4.455 8.236.702c.73-2.07 1.682-4.034 2.826-5.867l-5.652-6.088 2.877-3.554 7.085 4.235c1.55-1.54 3.268-2.914 5.124-4.09l-2.535-7.862 4.11-2.004 4.46 6.58v57.292zm0 3.537l-3.792 5.594-7.19-3.507 2.602-8.07c-1.075-.757-2.1-1.577-3.074-2.457l-7.27 4.346-5.034-6.218 5.816-6.265c-.633-1.13-1.2-2.303-1.693-3.512l-8.458.72-1.8-7.795 7.95-3.073c-.037-.644-.057-1.293-.057-1.947 0-.654.02-1.303.058-1.947l-7.95-3.073 1.8-7.795 8.457.72c.494-1.21 1.06-2.382 1.693-3.512l-5.816-6.265 5.035-6.217 7.27 4.347c.972-.88 1.998-1.7 3.073-2.456l-2.602-8.07 7.19-3.507 3.792 5.594v64.366zM34.172 168.404c.54-2.044.828-4.19.828-6.404 0-7.82-3.59-14.8-9.21-19.384l-8.673 15.726c.386.75.657 1.57.79 2.434l16.265 7.628zm-.85 2.623c-3.464 8.94-11.917 15.39-21.942 15.936l2.227-17.82c.77-.39 1.468-.9 2.07-1.506l17.644 3.39zM0 139.08c3.062-1.338 6.444-2.08 10-2.08 4.997 0 9.652 1.466 13.558 3.992l-12.278 13.11c-.417-.067-.844-.102-1.28-.102-.436 0-.863.035-1.28.102L0 144.792v-5.712zm0 22.678l2.093-.982c.133-.865.404-1.684.79-2.434L0 153.112v8.646zm0 23.162c2.664 1.164 5.57 1.877 8.62 2.043l-2.227-17.82c-.77-.39-1.468-.9-2.07-1.506l-4.323.83v16.453zm0-43.638C3.024 139.82 6.416 139 10 139c3.738 0 7.268.892 10.388 2.474l-9.87 10.54c-.172-.01-.345-.014-.518-.014-.173 0-.346.004-.517.013L0 141.888v-.606zm0 18.284l.34-.16c.09-.336.197-.665.32-.986L0 157.223v2.343zm0 23.152c1.972.954 4.102 1.634 6.34 1.992l-1.792-14.326c-.29-.188-.57-.39-.836-.608L0 170.49v12.228zm13.66 1.992c7.344-1.174 13.526-5.824 16.81-12.21l-14.182-2.724c-.267.217-.547.42-.836.608l-1.79 14.326zm19.07-19.174c.178-1.153.27-2.334.27-3.536 0-6.328-2.556-12.06-6.69-16.218l-6.97 12.638c.123.32.23.65.32.987l13.07 6.13zM0 133.354l.193.285c2.027-.7 4.153-1.19 6.35-1.443L7.713 124h4.573l1.17 8.197c2.198.252 4.324.742 6.35 1.442l4.654-6.866 4.11 2.004-2.536 7.862c1.856 1.176 3.574 2.55 5.124 4.09l7.085-4.234 2.877 3.553-5.652 6.087c1.144 1.833 2.095 3.798 2.826 5.867l8.236-.702 1.028 4.455-7.733 2.988c.116 1.07.175 2.155.175 3.255s-.06 2.186-.175 3.255l7.733 2.988-1.028 4.455-8.236-.702c-.73 2.07-1.682 4.034-2.826 5.867l5.652 6.088-2.877 3.554-7.085-4.235c-1.55 1.54-3.268 2.914-5.124 4.09l2.535 7.862-4.11 2.004-4.653-6.865c-2.027.7-4.153 1.19-6.35 1.443L12.287 200H7.713l-1.17-8.197c-2.198-.252-4.324-.742-6.35-1.442l-.194.286v-57.292zm0-3.537l.995 1.468c1.238-.363 2.507-.652 3.802-.864L6 122h8l1.203 8.42c1.295.213 2.564.502 3.802.865l4.787-7.062 7.19 3.507-2.602 8.07c1.075.757 2.1 1.577 3.074 2.457l7.27-4.346 5.034 6.218-5.816 6.265c.633 1.13 1.2 2.303 1.693 3.512l8.458-.72 1.8 7.795-7.95 3.073c.037.644.057 1.293.057 1.947 0 .654-.02 1.303-.058 1.947l7.95 3.073-1.8 7.795-8.457-.72c-.494 1.21-1.06 2.382-1.693 3.512l5.816 6.265-5.035 6.217-7.27-4.347c-.972.88-1.998 1.7-3.073 2.456l2.602 8.07-7.19 3.507-4.787-7.062c-1.238.363-2.507.652-3.802.864L14 202H6l-1.203-8.42c-1.295-.213-2.564-.502-3.802-.865L0 194.183v-64.366zM10 156c-3.314 0-6 2.686-6 6s2.686 6 6 6 6-2.686 6-6-2.686-6-6-6zm0 2c-2.21 0-4 1.79-4 4s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zM149.716 360c3.863-2.626 8.393-4.344 13.284-4.847V360h-13.284zm32.568 0c-3.863-2.626-8.393-4.344-13.284-4.847V360h13.284zm-28.666 0c2.29-1.183 4.77-2.05 7.382-2.538V360h-7.382zm24.764 0c-2.29-1.183-4.77-2.05-7.382-2.538V360h7.382zm-40.84 0l-4.07-5.698 2.83-2.83 6.728 4.807c.69-.574 1.405-1.123 2.138-1.644l-2.9-7.74 3.464-2 5.25 6.376c.816-.374 1.648-.72 2.495-1.034l-.797-8.22 3.864-1.036 3.422 7.522c.88-.15 1.773-.266 2.675-.35L164 340h4l1.36 8.155c.9.083 1.793.2 2.674.35l3.422-7.523 3.864 1.035-.797 8.22c.847.315 1.68.66 2.495 1.035l5.25-6.377 3.464 2-2.9 7.74c.733.522 1.447 1.07 2.138 1.644l6.728-4.807 2.83 2.83-4.07 5.697h-56.915zm2.426 0l-3.902-5.463.47-.47 6.635 4.737c1.37-1.242 2.84-2.373 4.4-3.38l-2.86-7.63.58-.334 5.175 6.288c1.637-.842 3.35-1.555 5.128-2.126l-.785-8.105.644-.172 3.372 7.414c1.786-.385 3.624-.63 5.503-.72l1.34-8.04h.666l1.34 8.04c1.88.09 3.717.335 5.503.72l3.372-7.415.644.172-.785 8.105c1.777.57 3.49 1.284 5.128 2.126l5.176-6.288.58.334-2.86 7.63c1.56 1.007 3.03 2.138 4.4 3.38l6.633-4.738.47.47-3.9 5.464h-52.065zM360 52.702l-6.476 3.74C351.26 51.424 350 45.86 350 40c0-5.86 1.26-11.425 3.524-16.44L360 27.297v25.404zm0-39.16c-.873.988-1.697 2.02-2.47 3.093L360 18.06v-4.518zm0 52.916c-.873-.988-1.697-2.02-2.47-3.093L360 61.94v4.518zm0-16.066l-5.505 3.18C352.883 49.355 352 44.78 352 40c0-4.78.883-9.356 2.495-13.57L360 29.607v20.784zM357.58 0l1.507 3.278c-2.097 1.768-4.04 3.712-5.81 5.81L343.9 4.775l-1.646 2.265 6.995 7.584c-1.447 2.316-2.7 4.764-3.74 7.323l-10.24-1.2-.864 2.66 8.99 5.05c-.648 2.627-1.08 5.34-1.276 8.12L332 38.6v2.8l10.12 2.024c.196 2.78.628 5.492 1.277 8.12l-8.99 5.048.864 2.662 10.24-1.2c1.04 2.558 2.293 5.006 3.74 7.322l-6.996 7.583 1.646 2.264 9.378-4.31c1.768 2.096 3.712 4.04 5.81 5.808l-4.312 9.378 2.265 1.646 2.96-2.73V0h-2.42zm-2.158 0l1.252 2.725c-1.388 1.242-2.707 2.56-3.95 3.95l-9.502-4.37-3.526 4.855 7.085 7.68c-.935 1.607-1.785 3.27-2.542 4.983l-10.374-1.217-1.854 5.706 9.11 5.115c-.39 1.806-.68 3.65-.868 5.523L330 37v6l10.252 2.05c.188 1.874.48 3.717.868 5.523l-9.11 5.115 1.854 5.706 10.374-1.217c.757 1.713 1.607 3.376 2.543 4.982l-7.084 7.68 3.526 4.854 9.503-4.368c1.242 1.388 2.56 2.707 3.95 3.95l-4.37 9.502 4.855 3.526 2.84-2.62V0h-4.578zM0 354.984l4.624 4.265c2.316-1.447 4.764-2.7 7.323-3.74l-1.2-10.24 2.66-.864 5.05 8.99c2.627-.648 5.34-1.08 8.12-1.276L28.6 342h2.8l2.024 10.12c2.78.196 5.492.628 8.12 1.277l5.048-8.99 2.662.864-1.2 10.24c2.558 1.04 5.006 2.293 7.322 3.74l7.583-6.996 2.264 1.646-2.804 6.1H0v-5.016zm0-2.67l4.84 4.467c1.607-.935 3.27-1.785 4.983-2.542l-1.217-10.374 5.706-1.854 5.115 9.11c1.806-.39 3.65-.68 5.523-.868L27 340h6l2.05 10.252c1.874.188 3.717.48 5.523.868l5.115-9.11 5.706 1.854-1.217 10.374c1.713.757 3.376 1.607 4.982 2.543l7.68-7.084 4.854 3.526L64.578 360H0v-7.685zM360 244.514l-1.437-.207-.8 1.386 1.998 2.54.24.163v-3.882zm0 14.442l-4-.392-3.162.66-.278 1.576 2.746 1.703 4.694 1.205v-4.752zm0 13.336l-4.694 1.205-2.746 1.703.278 1.576 3.163.66 4-.392v-4.752zm0 15.312l-.24.164-1.997 2.54.8 1.385 1.437-.207v-3.882zm0 5.758l-2.57.37-2-3.464 3.33-4.232 1.24-.848v8.174zm0-14.314l-3.652.358-5.27-1.1-.696-3.94 4.577-2.838 5.04-1.295v8.815zm0-13.28l-5.04-1.296-4.578-2.837.695-3.94 5.27-1.1 3.653.357v8.815zm0-14.956l-1.24-.848-3.33-4.232 2-3.464 2.57.37v8.174zM360 354.984l-2.96-2.73-2.264 1.646 2.804 6.1H360v-5.016zm0-2.67l-2.84-2.618-4.854 3.526 3.116 6.778H360v-7.685z'/%3E%3C/g%3E%3C/svg%3E");
}

              
            
!

JS

              
                var app = angular.module('passwordGenerator', []);

app.controller('PasswordGeneratorController', ['$scope', function($scope) {
      $scope.checkboxModel = {
       symbols : false,
       numbers : false,
       upperCase : false,
       lowerCase : false
     };
      $scope.passwordLength = '';
      $scope.password = '';
      $scope.upperCaseArray = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z'];
      $scope.lowerCaseArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'];
      $scope.numbersArray = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
      $scope.symbolsArray = ['!', '@', '#', '$', '%', '^', '&', '*', '(', ')', '_', '-', '+', '=', '{', '}', '[', ']', '|', '\\', ':',
';', '"', '\'', '<', '>', ',', '.', '?', '/',
'`', '~'];
      $scope.generatePassword = function(){
      $scope.password = "";
      for (var i=0; i<$scope.passwordLength; i++) {
        /*
        upperCase : true,
        lowerCase : false,
        numbers   : false,
        symbols   : false,
        */
        if($scope.checkboxModel.upperCase === true && $scope.checkboxModel.lowerCase === false && $scope.checkboxModel.numbers === false && $scope.checkboxModel.symbols === false){
          $scope.temp = Math.floor(Math.random()*$scope.upperCaseArray.length);
          $scope.password += $scope.upperCaseArray[$scope.temp];
        }
        /*
        upperCase : false,
        lowerCase : true,
        numbers   : false,
        symbols   : false,
        */
        else if($scope.checkboxModel.upperCase === false && $scope.checkboxModel.lowerCase === true && $scope.checkboxModel.numbers === false && $scope.checkboxModel.symbols === false){
          $scope.temp = Math.floor(Math.random()*$scope.lowerCaseArray.length);
          $scope.password += $scope.lowerCaseArray[$scope.temp];
        }
       /*
        upperCase : false,
        lowerCase : false,
        numbers   : true,
        symbols   : false,
        */
        else if($scope.checkboxModel.upperCase === false && $scope.checkboxModel.lowerCase === false && $scope.checkboxModel.numbers === true && $scope.checkboxModel.symbols === false){
          $scope.temp = Math.floor(Math.random()*$scope.numbersArray.length);
          $scope.password += $scope.numbersArray[$scope.temp];
        }
        /*
        upperCase : false,
        lowerCase : false,
        numbers   : false,
        symbols   : true
        */
        else if($scope.checkboxModel.upperCase === false && $scope.checkboxModel.lowerCase === false && $scope.checkboxModel.numbers === false && $scope.checkboxModel.symbols === true){
          $scope.temp = Math.floor(Math.random()*$scope.symbolsArray.length);
          $scope.password += $scope.symbolsArray[$scope.temp];
        }
        
        /*
        upperCase : true,
        lowerCase : true,
        numbers   : false,
        symbols   : fasle
        */
        else if($scope.checkboxModel.upperCase === true && $scope.checkboxModel.lowerCase === true && $scope.checkboxModel.numbers === false && $scope.checkboxModel.symbols === false){
          $scope.upperLowerArray = $scope.upperCaseArray.concat($scope.lowerCaseArray); 
          $scope.temp = Math.floor(Math.random()*$scope.upperLowerArray.length);
          $scope.password += $scope.upperLowerArray[$scope.temp]; 
        }
        
        /*
        upperCase : true,
        lowerCase : false,
        numbers   : true,
        symbols   : fasle
        */
        else if($scope.checkboxModel.upperCase === true && $scope.checkboxModel.lowerCase === false && $scope.checkboxModel.numbers === true && $scope.checkboxModel.symbols === false){
          $scope.upperNumbersArray = $scope.upperCaseArray.concat($scope.numbersArray); 
          $scope.temp = Math.floor(Math.random()*$scope.upperNumbersArray.length);
          $scope.password += $scope.upperNumbersArray[$scope.temp]; 
        }
        
        /*
        upperCase : false,
        lowerCase : true,
        numbers   : true,
        symbols   : fasle
        */
        else if($scope.checkboxModel.upperCase === false && $scope.checkboxModel.lowerCase === true && $scope.checkboxModel.numbers === true && $scope.checkboxModel.symbols === false){
          $scope.lowerNumbersArray = $scope.lowerCaseArray.concat($scope.numbersArray); 
          $scope.temp = Math.floor(Math.random()*$scope.lowerNumbersArray.length);
          $scope.password += $scope.lowerNumbersArray[$scope.temp]; 
        }
        
        /*
        upperCase : false,
        lowerCase : true,
        numbers   : false,
        symbols   : true
        */
        else if($scope.checkboxModel.upperCase === false && $scope.checkboxModel.lowerCase === true && $scope.checkboxModel.numbers === false && $scope.checkboxModel.symbols === true){
          $scope.lowerSymbolsArray = $scope.lowerCaseArray.concat($scope.symbolsArray); 
          $scope.temp = Math.floor(Math.random()*$scope.lowerSymbolsArray.length);
          $scope.password += $scope.lowerSymbolsArray[$scope.temp]; 
        }
        
        /*
        upperCase : false,
        lowerCase : false,
        numbers   : true,
        symbols   : true
        */
        else if($scope.checkboxModel.upperCase === false && $scope.checkboxModel.lowerCase === false && $scope.checkboxModel.numbers === true && $scope.checkboxModel.symbols === true){
          $scope.numbersSymbolsArray = $scope.numbersArray.concat($scope.symbolsArray); 
          $scope.temp = Math.floor(Math.random()*$scope.numbersSymbolsArray.length);
          $scope.password += $scope.numbersSymbolsArray[$scope.temp]; 
        }
        
        /*
        upperCase : true,
        lowerCase : false,
        numbers   : false,
        symbols   : true
        */
        else if($scope.checkboxModel.upperCase === true && $scope.checkboxModel.lowerCase === false && $scope.checkboxModel.numbers === false && $scope.checkboxModel.symbols === true){
          $scope.upperSymbolsArray = $scope.upperCaseArray.concat($scope.symbolsArray); 
          $scope.temp = Math.floor(Math.random()*$scope.upperSymbolsArray.length);
          $scope.password += $scope.upperSymbolsArray[$scope.temp]; 
        }
        
        /*
        upperCase : true,
        lowerCase : true,
        numbers   : true,
        symbols   : false
        */
        else if($scope.checkboxModel.upperCase === true && $scope.checkboxModel.lowerCase === true && $scope.checkboxModel.numbers === true && $scope.checkboxModel.symbols === false){
          $scope.upperLowerArray = $scope.upperCaseArray.concat($scope.lowerCaseArray); 
          $scope.upperLowerNumbersArray = $scope.upperLowerArray.concat($scope.numbersArray); 
          $scope.temp = Math.floor(Math.random()*$scope.upperLowerNumbersArray.length);
          $scope.password += $scope.upperLowerNumbersArray[$scope.temp]; 
        }
        
        /*
        upperCase : false,
        lowerCase : true,
        numbers   : true,
        symbols   : true
        */
        else if($scope.checkboxModel.upperCase === false && $scope.checkboxModel.lowerCase === true && $scope.checkboxModel.numbers === true && $scope.checkboxModel.symbols === true){
          $scope.lowerNumbersArray = $scope.lowerCaseArray.concat($scope.numbersArray); 
          $scope.lowerNumbersSymbolsArray = $scope.lowerNumbersArray.concat($scope.symbolsArray); 
          $scope.temp = Math.floor(Math.random()*$scope.lowerNumbersSymbolsArray.length);
          $scope.password += $scope.lowerNumbersSymbolsArray[$scope.temp]; 
        }
        
        /*
        upperCase : true,
        lowerCase : false,
        numbers   : true,
        symbols   : true
        */
        else if($scope.checkboxModel.upperCase === true && $scope.checkboxModel.lowerCase === false && $scope.checkboxModel.numbers === true && $scope.checkboxModel.symbols === true){
          $scope.numbersSymbolsArray = $scope.numbersArray.concat($scope.symbolsArray); 
          $scope.numbersSymbolsUpperArray = $scope.numbersSymbolsArray.concat($scope.upperCaseArray); 
          $scope.temp = Math.floor(Math.random()*$scope.numbersSymbolsUpperArray.length);
          $scope.password += $scope.numbersSymbolsUpperArray[$scope.temp]; 
        }
        
        /*
        upperCase : true,
        lowerCase : true,
        numbers   : false,
        symbols   : true
        */
        else if($scope.checkboxModel.upperCase === true && $scope.checkboxModel.lowerCase === true && $scope.checkboxModel.numbers === false && $scope.checkboxModel.symbols === true){
          $scope.upperLowerArray = $scope.upperCaseArray.concat($scope.lowerCaseArray); 
          $scope.upperLowerSymbolsArray = $scope.upperLowerArray.concat($scope.symbolsArray); 
          $scope.temp = Math.floor(Math.random()*$scope.upperLowerSymbolsArray.length);
          $scope.password += $scope.upperLowerSymbolsArray[$scope.temp]; 
        }
        
        /*
        upperCase : true,
        lowerCase : true,
        numbers   : true,
        symbols   : true
        */
        else if($scope.checkboxModel.upperCase === true && $scope.checkboxModel.lowerCase === true && $scope.checkboxModel.numbers === true && $scope.checkboxModel.symbols === true){
          $scope.upperLowerArray = $scope.upperCaseArray.concat($scope.lowerCaseArray); 
          $scope.numbersSymbolsArray = $scope.numbersArray.concat($scope.symbolsArray); 
          $scope.upperLowerSymbolsNumbersArray = $scope.upperLowerArray.concat($scope.numbersSymbolsArray); 
          $scope.temp = Math.floor(Math.random()*$scope.upperLowerSymbolsNumbersArray.length);
          $scope.password += $scope.upperLowerSymbolsNumbersArray[$scope.temp]; 
        }
        
        /*
        upperCase : false,
        lowerCase : false,
        numbers   : false,
        symbols   : false
        */
        else{
          // nothing happens
        }
     
      }
    };
    }]);
              
            
!
999px

Console