text:
using ARPSMSSQL;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Security.AccessControl;
using System.Security.Principal;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using Trinet.Networking;

namespace ARPSDeamon
{
    public static class FSWorker
    {
        private static int Index = 0;
        private static int Count = 630000;

        /// <summary>
        /// Liest den jeweiligen Ordner und rekursive alle Unterordner ab und speichert die Informationen in der Datenbank
        /// </summary>
        /// <param name="dInfo">Das DirectoryInfo Object des Ordners der verarbeitet werden soll</param>
        /// <param name="parentId">Die ID des übergeortneten Ordners</param>
        public static void GetDirectorySecurity(DirectoryInfo dInfo, int parentId)
        {
            if (dInfo == null)
                return;

            //baut eine SQL Verbindung auf
            MsSql mssql = new MsSql();
            //mssql.Open();

            // Der volle Pfad
            string _path_name = dInfo.FullName;
            // Die ID des übergeordneten Ordners
            int _parent_path_id = parentId;
            // Berechnet den Hash und speichert ihn
            string _path_hash = Helper.Hash(_path_name);
            // Ob der Ordner in der ersten Ebene ist oder nicht
            int _is_root = (_parent_path_id == -1) ? 1 : 0;

            // Die Ebene des Ordners
            int _scan_deepth = _path_name.TrimStart('\\').Split('\\').Count() - 1;

            //Ausgabe: Alle Pafde bis zur 3.Ebene werden ausgegeben
            //Index++;
            //if (_scan_deepth <= 5)
            //{
            //    //Console.WriteLine(_path_name);
            //    float percent = (float)Index / (float)Count * 100f;
            //    Console.WriteLine(percent.ToString("n2") + $" % of {Count} -- {_path_name}");
            //}

            #region Prüfung ob schon vorhanden ist
            // Der SQL Befehl zum überprüfen ob der jeweilige Eintrag schon vorhanden ist
            string sql = $"SELECT _path_id FROM {MsSql.TBL_tmp_FS_Dirs} WHERE _path_hash = @PathHash";
            SqlCommand cmd = new SqlCommand(sql, mssql.Con);
            // Der Hash wird als Parameter an den SQL Befehl gehängt
            cmd.Parameters.AddWithValue("@PathHash", _path_hash);

            // Öffnet die SQL Verbindung, führt die Abfrage durch und schließt die Verbindung wieder
            mssql.Open();
            // Falls es den abgefragten Datensatz schon gibt, bekommt man in index die ID des Datensatzen, sonnst null
            var _path_id = cmd.ExecuteScalar();
            mssql.Close();
            #endregion

            #region Größenberechnung

            // Es gibt die Zeile
            long _size = 0;
            //if (_path_id != null)
            //{
            //    sql = $"SELECT _size FROM {MsSql.TBL_tmp_FS_Dirs} WHERE _path_id = @PathId";
            //    cmd = new SqlCommand(sql, mssql.Con);
            //    // Der Hash wird als Parameter an den SQL Befehl gehängt
            //    cmd.Parameters.AddWithValue("@PathId", _path_id);

            //    // Öffnet die SQL Verbindung, führt die Abfrage durch und schließt die Verbindung wieder
            //    mssql.Open();
            //    // Falls es den abgefragten Datensatz schon gibt, bekommt man in index die ID des Datensatzen, sonnst null
            //    var size = cmd.ExecuteScalar();
            //    mssql.Close();

            //    if ((long)size == 0 || size == null)
            //        _size = DirSize(dInfo);
            //    else
            //        _size = (long)size;
            //}
            //else
            //{
            //    _size = DirSize(dInfo);
            //}
            #endregion

            // Liest alle Unterordner in ein Array
            DirectoryInfo[] childs;
            try
            {
                childs = dInfo.GetDirectories();
            }
            catch (Exception)
            {
                childs = new DirectoryInfo[1];
            }

            // Liest die Infos über den Besitzer aus
            string _owner_sid = "0";
            DirectorySecurity dSecurity = null;
            try
            {
                dSecurity = dInfo.GetAccessControl();
                IdentityReference owner = dSecurity.GetOwner(typeof(SecurityIdentifier));  // FÜR SID
                _owner_sid = owner.Value;
            }
            catch (Exception) { }

            // Ob der Ordner Unterordner hat oder nicht
            int _has_children = (childs.Length > 0) ? 1 : 0;

            //Hash ist noch nicht vorhanden
            if (_path_id == null)
            {
                // Der SQL Befehl zum INSERT in die Datenbank
                sql = $"INSERT INTO {MsSql.TBL_tmp_FS_Dirs}(_path_name, _owner_sid, _path_hash, _parent_path_id, _is_root, _has_children, _scan_deepth, _size) " +
                      $"OUTPUT INSERTED._path_id " +
                      $"VALUES (@PathName, @OwnerSid, @PathHash, @ParentPathId, @IsRoot, @HasChildren, @ScanDeepth, @Size) ";

                cmd = new SqlCommand(sql, mssql.Con);

                // Hängt die Parameter an
                cmd.Parameters.AddWithValue("@PathName", _path_name);
                cmd.Parameters.AddWithValue("@OwnerSid", _owner_sid);
                cmd.Parameters.AddWithValue("@PathHash", _path_hash);
                cmd.Parameters.AddWithValue("@ParentPathId", _parent_path_id);
                cmd.Parameters.AddWithValue("@IsRoot", _is_root);
                cmd.Parameters.AddWithValue("@HasChildren", _has_children);
                cmd.Parameters.AddWithValue("@ScanDeepth", _scan_deepth);
                cmd.Parameters.AddWithValue("@Size", _size);

                // Öffnet die SQL Verbindung
                mssql.Open();
                // Führt die Query aus
                _path_id = (int)cmd.ExecuteScalar();
                //Schließt die Verbindung
                mssql.Close();
            }
            // Hash ist noch nicht vorhanden
            else
            {
                // SQL Befehl zum Updaten des Eintrags
                sql = $"UPDATE {MsSql.TBL_tmp_FS_Dirs} " +
                      $"SET _path_name = @PathName, _owner_sid = @OwnerSid, _path_hash = @PathHash, _parent_path_id = @ParentPathId, " +
                      $"_is_root = @IsRoot, _has_children = @HasChildren, _scan_deepth = @ScanDeepth, _size = @Size " +
                      $"WHERE _path_id = @PathId";

                cmd = new SqlCommand(sql, mssql.Con);

                // Hängt die Parameter an
                cmd.Parameters.AddWithValue("@PathName", _path_name);
                cmd.Parameters.AddWithValue("@OwnerSid", _owner_sid);
                cmd.Parameters.AddWithValue("@PathHash", _path_hash);
                cmd.Parameters.AddWithValue("@ParentPathId", _parent_path_id);
                cmd.Parameters.AddWithValue("@IsRoot", _is_root);
                cmd.Parameters.AddWithValue("@HasChildren", _has_children);
                cmd.Parameters.AddWithValue("@ScanDeepth", _scan_deepth);
                cmd.Parameters.AddWithValue("@Size", _size);
                cmd.Parameters.AddWithValue("@PathId", (int)_path_id);

                // Öffnet die SQL Verbindung
                mssql.Open();
                // Führt die Query aus
                cmd.ExecuteNonQuery();
                //Schließt die Verbindung
                mssql.Close();
            }

            // Ruft die ACL zum jeweiligen Ordner ab und schreib diese in die Datenbank
            if (dSecurity != null)
                GetACEs(dSecurity, (int)_path_id);

            // Geht über alle Unterordner (Kinder) und ruft die Funktion rekursiv auf
            foreach (DirectoryInfo child in childs)
            {
                GetDirectorySecurity(child, (int)_path_id);
            }

        }

        /// <summary>
        /// Liest die Ordnerinfos der freigegebenen Ordner aus und speichert diese in der Datenbank
        /// </summary>
        /// <param name="share">Das Share Element der Freigabe</param>
        /// <param name="displayname">Der Name als die der Server angezeigt werden soll</param>
        internal static void GetSharesSecurity(Share share, string displayname)
        {
            if (share.NetName != "Install") return;
            DirectoryInfo dInfo = new DirectoryInfo(share.ToString());

            if (dInfo == null)
                return;

            //baut eine SQL Verbindung auf
            MsSql mssql = new MsSql();
            mssql.Open();

            // Der volle Pfad (UNC Pfad)
            string _unc_path_name = dInfo.FullName;
            // Der Pfad auf dem lokalen System (z.b: x:\\Install
            string _path_name = share.Path;
            // Berechnet den Hash und speichert ihn
            string _path_hash = Helper.Hash(_unc_path_name);
            // Der Name der in ARPS angezeigt werden soll
            string _display_name = displayname;
            // Die Beschreibung der Freigabe
            string _remark = share.Remark;
            // Der ShareType
            ShareType _share_type = share.ShareType;
            // Ob es eine versteckte Freigabe ist oder nicht
            bool _hidden = CheckIsShareHidden(share);

            Console.WriteLine("Share: " + share + " - " + share.Remark);

            #region Prüfung ob schon vorhanden ist
            // Der SQL Befehl zum überprüfen ob der jeweilige Eintrag schon vorhanden ist
            string sql = $"SELECT _path_id FROM {MsSql.TBL_tmp_FS_Shares} WHERE _path_hash = @PathHash";
            SqlCommand cmd = new SqlCommand(sql, mssql.Con);
            // Der Hash wird als Parameter an den SQL Befehl gehängt
            cmd.Parameters.AddWithValue("@PathHash", _path_hash);

            // Öffnet die SQL Verbindung, führt die Abfrage durch und schließt die Verbindung wieder
            mssql.Open();
            // Falls es den abgefragten Datensatz schon gibt, bekommt man in index die ID des Datensatzen, sonnst null
            var _path_id = cmd.ExecuteScalar();
            mssql.Close();
            #endregion

            #region Größenberechnung

            // Es gibt die Zeile
            long _size;
            if (_path_id != null)
            {
                sql = $"SELECT _size FROM {MsSql.TBL_tmp_FS_Shares} WHERE _path_id = @PathId";
                cmd = new SqlCommand(sql, mssql.Con);
                // Der Hash wird als Parameter an den SQL Befehl gehängt
                cmd.Parameters.AddWithValue("@PathId", _path_id);

                // Öffnet die SQL Verbindung, führt die Abfrage durch und schließt die Verbindung wieder
                mssql.Open();
                // Falls es den abgefragten Datensatz schon gibt, bekommt man in index die ID des Datensatzen, sonnst null
                var size = cmd.ExecuteScalar();
                mssql.Close();

                if ((long)size == 0 || size == null)
                    _size = DirSize(dInfo);
                else
                    _size = (long)size;
            }
            else
            {
                _size = DirSize(dInfo);
            }
            #endregion

            // Liest alle Unterordner in ein Array
            DirectoryInfo[] childs;
            try
            {
                childs = dInfo.GetDirectories();
            }
            catch (Exception)
            {
                childs = new DirectoryInfo[1];
            }

            // Liest die Infos über den Besitzer aus
            string _owner_sid = "0";
            DirectorySecurity dSecurity = null;
            try
            {
                dSecurity = dInfo.GetAccessControl();
                IdentityReference owner = dSecurity.GetOwner(typeof(SecurityIdentifier));  // FÜR SID
                _owner_sid = owner.Value;
            }
            catch (Exception) { }

            // Ob der Ordner Unterordner hat oder nicht
            int _has_children = (childs.Length > 0) ? 1 : 0;

            // Hash ist noch nicht vorhanden
            if (_path_id == null)
            {
                // Der SQL Befehl zum INSERT in die Datenbank
                sql = $"INSERT INTO {MsSql.TBL_tmp_FS_Shares}(_unc_path_name, _owner_sid, _has_children, _size, _path_hash, _path_name, _display_name, _remark, _share_type, _hidden) " +
                      $"OUTPUT INSERTED._path_id " +
                      $"VALUES (@UncPathName, @OwnerSid, @HasChildren, @Size, @PathHash, @PathName, @DisplayName, @Remark, @ShareType, @Hidden) ";

                cmd = new SqlCommand(sql, mssql.Con);

                // Hängt die Parameter an
                cmd.Parameters.AddWithValue("@UncPathName", _unc_path_name);
                cmd.Parameters.AddWithValue("@OwnerSid", _owner_sid);
                cmd.Parameters.AddWithValue("@HasChildren", _has_children);
                cmd.Parameters.AddWithValue("@Size", _size);
                cmd.Parameters.AddWithValue("@PathHash", _path_hash);
                cmd.Parameters.AddWithValue("@PathName", _path_name);
                cmd.Parameters.AddWithValue("@DisplayName", _display_name);
                cmd.Parameters.AddWithValue("@Remark", _remark);
                cmd.Parameters.AddWithValue("@ShareType", _share_type.ToString());
                cmd.Parameters.AddWithValue("@Hidden", _hidden);

                // Öffnet die SQL Verbindung
                mssql.Open();
                // Führt die Query aus
                _path_id = (int)cmd.ExecuteScalar();
                //Schließt die Verbindung
                mssql.Close();
            }
            // Hash ist noch nicht vorhanden
            else
            {
                // SQL Befehl zum Updaten des Eintrags
                sql = $"UPDATE {MsSql.TBL_tmp_FS_Shares} " +
                      $"SET _unc_path_name = @UncPathName, _owner_sid = @OwnerSid, _has_children = @HasChildren, _size = @Size, _path_hash = @PathHash, " +
                      $"_path_name = @PathName, _display_name = @DisplayName, _remark = @Remark, _share_type = @ShareType, _hidden = @Hidden " +
                      $"WHERE _path_id = @PathId";

                cmd = new SqlCommand(sql, mssql.Con);

                // Hängt die Parameter an
                cmd.Parameters.AddWithValue("@UncPathName", _unc_path_name);
                cmd.Parameters.AddWithValue("@OwnerSid", _owner_sid);
                cmd.Parameters.AddWithValue("@HasChildren", _has_children);
                cmd.Parameters.AddWithValue("@Size", _size);
                cmd.Parameters.AddWithValue("@PathHash", _path_hash);
                cmd.Parameters.AddWithValue("@PathName", _path_name);
                cmd.Parameters.AddWithValue("@DisplayName", _display_name);
                cmd.Parameters.AddWithValue("@Remark", _remark);
                cmd.Parameters.AddWithValue("@ShareType", _share_type);
                cmd.Parameters.AddWithValue("@Hidden", _hidden);
                cmd.Parameters.AddWithValue("@PathId", (int)_path_id);

                // Öffnet die SQL Verbindung
                mssql.Open();
                // Führt die Query aus
                cmd.ExecuteNonQuery();
                //Schließt die Verbindung
                mssql.Close();
            }

            // Ruft die ACL zum jeweiligen Ordner ab und schreib diese in die Datenbank
            if (dSecurity != null)
                GetACEs(dSecurity, (int)_path_id, 1);

            // Geht über alle Unterordner (Kinder) und ruft die Funktion rekursiv auf
            foreach (DirectoryInfo child in childs)
            {
                GetDirectorySecurity(child, (int)_path_id);
            }
        }

        /// <summary>
        /// Überprüft ob es eine versteckte Freigae ist oder nicht
        /// </summary>
        /// <param name="si"></param>
        /// <returns>true wenn versteckt, false wenn nicht versteckt</returns>
        private static bool CheckIsShareHidden(Share si)
        {
            if (si.NetName.Last() == '$')
                return true;
            else
                return false;
        }

        /// <summary>
        /// Liest die ACEs des übergebenen Ordners durch und schreib diese in die beiden Datenbanken aces und acls
        /// </summary>
        /// <param name="dSecurity">Das DirecrotySecurity Objekt des Ordners</param>
        /// <param name="_path_id">Die ID des Ordnerelements aus der dirs Datenbank</param>
        /// <param name="_acltype">Der Type aus dem diese ACL kommt. (0 = normales Verzeichnis, 1 = Freigabe)</param>
        static void GetACEs(DirectorySecurity dSecurity, int _path_id, int _acl_type = 0)
        {
            AuthorizationRuleCollection acl = dSecurity.GetAccessRules(true, true, typeof(SecurityIdentifier)); // FÜR SID
            //AuthorizationRuleCollection acl = dSecurity.GetAccessRules(true, true, typeof(NTAccount));        // FÜR NAMEN (ARGES/walzenbach)

            //baut eine SQL Verbindung auf
            MsSql mssql = new MsSql();
            //mssql.Open();

            foreach (FileSystemAccessRule ace in acl)
            {
                //if (dirId == -1)
                //    return;

                //Liest die einzelnen Values aus dem ACE aus
                string _sid = ace.IdentityReference.Value;
                string _fsr = ace.FileSystemRights.ToString();
                int _rights = (int)ace.FileSystemRights;
                int _type = (int)ace.AccessControlType;
                int _is_inherited = ace.IsInherited ? 1 : 0;
                int _inheritance_flags = (int)ace.InheritanceFlags;
                int _propagation_flags = (int)ace.PropagationFlags;
                string _ace_hash = Helper.Hash(_sid + _rights + _type + _is_inherited + _inheritance_flags + _propagation_flags);

                #region Prüfung ob schon vorhanden ist
                // Der SQL Befehl zum überprüfen ob der jeweilige Eintrag schon vorhanden ist
                string sql = $"SELECT _ace_id FROM {MsSql.TBL_tmp_FS_ACEs} WHERE _ace_hash = @AceHash";
                SqlCommand cmd = new SqlCommand(sql, mssql.Con);
                // Der Hash wird als Parameter an den SQL Befehl gehängt
                cmd.Parameters.AddWithValue("@AceHash", _ace_hash);

                // Öffnet die SQL Verbindung, führt die Abfrage durch und schließt die Verbindung wieder
                mssql.Open();
                // Falls es den abgefragten Datensatz schon gibt, bekommt man in index die ID des Datensatzen, sonnst null
                var _ace_id = cmd.ExecuteScalar();
                mssql.Close();
                #endregion

                // ACE Hash ist noch nicht vorhanden
                if (_ace_id == null)
                {
                    // Der SQL Befehl zum INSERT in die Datenbank
                    sql = $"INSERT INTO {MsSql.TBL_tmp_FS_ACEs}(_sid, _fsr, _rights, _type, _is_inherited, _inheritance_flags, _propagation_flags, _ace_hash) " +
                          $"OUTPUT INSERTED._ace_id " +
                          $"VALUES (@Sid, @Fsr, @Rights, @Type, @IsInherited, @InheritanceFlags, @PropagationFlags, @AceHash) ";

                    cmd = new SqlCommand(sql, mssql.Con);

                    // Hängt die Parameter an
                    cmd.Parameters.AddWithValue("@Sid", _sid);
                    cmd.Parameters.AddWithValue("@Fsr", _fsr);
                    cmd.Parameters.AddWithValue("@Rights", _rights);
                    cmd.Parameters.AddWithValue("@Type", _type);
                    cmd.Parameters.AddWithValue("@IsInherited", _is_inherited);
                    cmd.Parameters.AddWithValue("@InheritanceFlags", _inheritance_flags);
                    cmd.Parameters.AddWithValue("@PropagationFlags", _propagation_flags);
                    cmd.Parameters.AddWithValue("@AceHash", _ace_hash);

                    // Öffnet die SQL Verbindung
                    mssql.Open();
                    // Führt die Query aus
                    _ace_id = (int)cmd.ExecuteScalar();

                    //Schließt die Verbindung
                    mssql.Close();
                }
                // Hash ist noch nicht vorhanden
                else
                {
                    // SQL Befehl zum Updaten des Eintrags
                    sql = $"UPDATE {MsSql.TBL_tmp_FS_ACEs} " +
                          $"SET _sid = @Sid, _fsr = @Fsr, _rights = @Rights, _type = @Type, _is_inherited = @IsInherited, " +
                          $"_inheritance_flags = @InheritanceFlags, _propagation_flags = @PropagationFlags, _ace_hash = @AceHash " +
                          $"WHERE _ace_id = @AceId";

                    cmd = new SqlCommand(sql, mssql.Con);

                    // Hängt die Parameter an
                    cmd.Parameters.AddWithValue("@Sid", _sid);
                    cmd.Parameters.AddWithValue("@Fsr", _fsr);
                    cmd.Parameters.AddWithValue("@Rights", _rights);
                    cmd.Parameters.AddWithValue("@Type", _type);
                    cmd.Parameters.AddWithValue("@IsInherited", _is_inherited);
                    cmd.Parameters.AddWithValue("@InheritanceFlags", _inheritance_flags);
                    cmd.Parameters.AddWithValue("@PropagationFlags", _propagation_flags);
                    cmd.Parameters.AddWithValue("@AceHash", _ace_hash);
                    cmd.Parameters.AddWithValue("@AceId", (int)_ace_id);

                    // Öffnet die SQL Verbindung
                    mssql.Open();
                    // Führt die Query aus
                    cmd.ExecuteNonQuery();
                    //Schließt die Verbindung
                    mssql.Close();
                }

                #region Eintragung in die ACL Datenbank
                sql = $"INSERT INTO {MsSql.TBL_tmp_FS_ACLs} (_path_id, _ace_id, _type) SELECT @PathId, @AceId, @AclType " +
                    $"WHERE NOT EXISTS(SELECT * FROM {MsSql.TBL_tmp_FS_ACLs} WHERE _path_id = @PathId AND _ace_id = @AceId AND _type = @AclType)";

                cmd = new SqlCommand(sql, mssql.Con);

                // Die Ids werden als Parameter an den SQL Befehl gehängt
                cmd.Parameters.AddWithValue("@PathId", _path_id);
                cmd.Parameters.AddWithValue("@AceId", _ace_id);
                cmd.Parameters.AddWithValue("@AclType", _acl_type);

                // Öffnet die SQL Verbindung, führt die Abfrage durch und schließt die Verbindung wieder
                mssql.Open();
                cmd.ExecuteNonQuery();
                mssql.Close();
                #endregion
            }
        }

        /// <summary>
        /// Berechnet die Ordnergröße in Bytes
        /// </summary>
        /// <param name="d">DirectoryInfo Object</param>
        /// <returns>Größe in Bytes</returns>
        static long DirSize(DirectoryInfo d)
        {
            // TODO: Wird aktuell geskippt das es zu lange dauert (Lauf ca.5h)
            return 0;

            long size = 0;

            #region Original - Ohne FastDirectoryEnumerator
            FileInfo[] fis;
            // Add file sizes.
            try
            {
                fis = d.GetFiles();
            }
            catch (Exception)
            {
                return size;
            }

            foreach (FileInfo fi in fis)
            {
                size += fi.Length;
            }
            // Add subdirectory sizes.
            DirectoryInfo[] dis = d.GetDirectories();
            foreach (DirectoryInfo di in dis)
            {
                size += DirSize(di);
            }
            return size;
            #endregion

            //List<FileData> fis = null;
            //// Add file sizes.
            //try
            //{
            //    var temp = FastDirectoryEnumerator.EnumerateFiles(d.FullName);
            //    fis = new List<FileData>(temp);
            //}
            //catch (Exception)
            //{
            //    return size;
            //}

            //foreach (FileData fi in fis)
            //{
            //    size += fi.Size;
            //}

            //DirectoryInfo[] dis = null; ;

            //try
            //{
            //    dis = d.GetDirectories();
            //}
            //catch (Exception)
            //{
            //    return size;
            //}

            //// Add subdirectory sizes.
            //foreach (DirectoryInfo di in dis)
            //{
            //    size += DirSize(di);
            //}
            //return size;
        }
    }
}

repository: Obilarius/APRS

repo_name: Obilarius/APRS

extension: cs


text:
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE eagle SYSTEM "eagle.dtd">
<eagle version="9.2.2">
<drawing>
<settings>
<setting alwaysvectorfont="yes"/>
<setting keepoldvectorfont="yes"/>
<setting verticaltext="up"/>
</settings>
<grid distance="0.05" unitdist="inch" unit="inch" style="lines" multiple="1" display="yes" altdistance="0.000000123031" altunitdist="inch" altunit="inch"/>
<layers>
<layer number="1" name="Top" color="4" fill="1" visible="yes" active="yes"/>
<layer number="16" name="Bottom" color="1" fill="1" visible="yes" active="yes"/>
<layer number="17" name="Pads" color="2" fill="1" visible="yes" active="yes"/>
<layer number="18" name="Vias" color="2" fill="1" visible="yes" active="yes"/>
<layer number="19" name="Unrouted" color="6" fill="1" visible="yes" active="yes"/>
<layer number="20" name="Dimension" color="15" fill="1" visible="yes" active="yes"/>
<layer number="21" name="tPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="22" name="bPlace" color="7" fill="1" visible="yes" active="yes"/>
<layer number="23" name="tOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="24" name="bOrigins" color="15" fill="1" visible="yes" active="yes"/>
<layer number="25" name="tNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="26" name="bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="27" name="tValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="28" name="bValues" color="7" fill="1" visible="no" active="yes"/>
<layer number="29" name="tStop" color="7" fill="3" visible="yes" active="yes"/>
<layer number="30" name="bStop" color="7" fill="6" visible="no" active="yes"/>
<layer number="31" name="tCream" color="7" fill="4" visible="no" active="yes"/>
<layer number="32" name="bCream" color="7" fill="5" visible="no" active="yes"/>
<layer number="33" name="tFinish" color="6" fill="3" visible="no" active="yes"/>
<layer number="34" name="bFinish" color="6" fill="6" visible="no" active="yes"/>
<layer number="35" name="tGlue" color="7" fill="4" visible="no" active="yes"/>
<layer number="36" name="bGlue" color="7" fill="5" visible="no" active="yes"/>
<layer number="37" name="tTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="38" name="bTest" color="7" fill="1" visible="no" active="yes"/>
<layer number="39" name="tKeepout" color="4" fill="11" visible="yes" active="yes"/>
<layer number="40" name="bKeepout" color="1" fill="11" visible="yes" active="yes"/>
<layer number="41" name="tRestrict" color="4" fill="10" visible="no" active="yes"/>
<layer number="42" name="bRestrict" color="1" fill="10" visible="no" active="yes"/>
<layer number="43" name="vRestrict" color="2" fill="10" visible="no" active="yes"/>
<layer number="44" name="Drills" color="7" fill="1" visible="no" active="yes"/>
<layer number="45" name="Holes" color="7" fill="1" visible="yes" active="yes"/>
<layer number="46" name="Milling" color="3" fill="1" visible="no" active="yes"/>
<layer number="47" name="Measures" color="7" fill="1" visible="no" active="yes"/>
<layer number="48" name="Document" color="7" fill="1" visible="no" active="yes"/>
<layer number="49" name="Reference" color="7" fill="1" visible="no" active="yes"/>
<layer number="50" name="dxf" color="7" fill="1" visible="no" active="no"/>
<layer number="51" name="tDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="52" name="bDocu" color="7" fill="1" visible="no" active="yes"/>
<layer number="53" name="tGND_GNDA" color="7" fill="9" visible="no" active="no"/>
<layer number="54" name="bGND_GNDA" color="1" fill="9" visible="no" active="no"/>
<layer number="56" name="wert" color="7" fill="1" visible="no" active="no"/>
<layer number="57" name="tCAD" color="7" fill="1" visible="no" active="no"/>
<layer number="59" name="tCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="60" name="bCarbon" color="7" fill="1" visible="no" active="no"/>
<layer number="90" name="Modules" color="5" fill="1" visible="no" active="no"/>
<layer number="91" name="Nets" color="2" fill="1" visible="no" active="no"/>
<layer number="92" name="Busses" color="1" fill="1" visible="no" active="no"/>
<layer number="93" name="Pins" color="2" fill="1" visible="no" active="no"/>
<layer number="94" name="Symbols" color="4" fill="1" visible="no" active="no"/>
<layer number="95" name="Names" color="7" fill="1" visible="no" active="no"/>
<layer number="96" name="Values" color="7" fill="1" visible="no" active="no"/>
<layer number="97" name="Info" color="7" fill="1" visible="no" active="no"/>
<layer number="98" name="Guide" color="6" fill="1" visible="no" active="no"/>
<layer number="99" name="SpiceOrder" color="7" fill="1" visible="no" active="no"/>
<layer number="100" name="Muster" color="7" fill="1" visible="no" active="no"/>
<layer number="101" name="Patch_Top" color="12" fill="4" visible="no" active="yes"/>
<layer number="102" name="Vscore" color="7" fill="1" visible="no" active="yes"/>
<layer number="103" name="tMap" color="7" fill="1" visible="no" active="yes"/>
<layer number="104" name="Name" color="16" fill="1" visible="yes" active="yes"/>
<layer number="105" name="tPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="106" name="bPlate" color="7" fill="1" visible="no" active="yes"/>
<layer number="107" name="Crop" color="7" fill="1" visible="no" active="yes"/>
<layer number="108" name="tplace-old" color="10" fill="1" visible="no" active="yes"/>
<layer number="109" name="ref-old" color="11" fill="1" visible="no" active="yes"/>
<layer number="110" name="fp0" color="7" fill="1" visible="no" active="yes"/>
<layer number="111" name="LPC17xx" color="7" fill="1" visible="yes" active="yes"/>
<layer number="112" name="tSilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="113" name="IDFDebug" color="7" fill="1" visible="yes" active="yes"/>
<layer number="116" name="Patch_BOT" color="9" fill="4" visible="no" active="yes"/>
<layer number="118" name="Rect_Pads" color="7" fill="1" visible="no" active="no"/>
<layer number="121" name="_tsilk" color="7" fill="1" visible="yes" active="yes"/>
<layer number="122" name="_bsilk" color="7" fill="1" visible="no" active="yes"/>
<layer number="123" name="tTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="124" name="bTestmark" color="7" fill="1" visible="no" active="yes"/>
<layer number="125" name="_tNames" color="7" fill="1" visible="no" active="yes"/>
<layer number="126" name="_bNames" color="7" fill="1" visible="yes" active="yes"/>
<layer number="127" name="_tValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="128" name="_bValues" color="7" fill="1" visible="yes" active="yes"/>
<layer number="129" name="Mask" color="7" fill="1" visible="yes" active="yes"/>
<layer number="131" name="tAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="132" name="bAdjust" color="7" fill="1" visible="no" active="yes"/>
<layer number="144" name="Drill_legend" color="7" fill="1" visible="no" active="yes"/>
<layer number="150" name="Notes" color="7" fill="1" visible="no" active="yes"/>
<layer number="151" name="HeatSink" color="7" fill="1" visible="no" active="yes"/>
<layer number="152" name="_bDocu" color="7" fill="1" visible="yes" active="yes"/>
<layer number="153" name="FabDoc1" color="6" fill="1" visible="no" active="no"/>
<layer number="154" name="FabDoc2" color="2" fill="1" visible="no" active="no"/>
<layer number="155" name="FabDoc3" color="7" fill="15" visible="no" active="no"/>
<layer number="199" name="Contour" color="7" fill="1" visible="no" active="yes"/>
<layer number="200" name="200bmp" color="1" fill="10" visible="no" active="yes"/>
<layer number="201" name="201bmp" color="2" fill="10" visible="no" active="yes"/>
<layer number="202" name="202bmp" color="3" fill="10" visible="no" active="yes"/>
<layer number="203" name="203bmp" color="4" fill="10" visible="no" active="yes"/>
<layer number="204" name="204bmp" color="5" fill="10" visible="no" active="yes"/>
<layer number="205" name="205bmp" color="6" fill="10" visible="no" active="yes"/>
<layer number="206" name="206bmp" color="7" fill="10" visible="no" active="yes"/>
<layer number="207" name="207bmp" color="8" fill="10" visible="no" active="yes"/>
<layer number="208" name="208bmp" color="9" fill="10" visible="no" active="yes"/>
<layer number="209" name="209bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="210" name="210bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="211" name="211bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="212" name="212bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="213" name="213bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="214" name="214bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="215" name="215bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="216" name="216bmp" color="7" fill="1" visible="no" active="yes"/>
<layer number="217" name="217bmp" color="18" fill="1" visible="no" active="no"/>
<layer number="218" name="218bmp" color="19" fill="1" visible="no" active="no"/>
<layer number="219" name="219bmp" color="20" fill="1" visible="no" active="no"/>
<layer number="220" name="220bmp" color="21" fill="1" visible="no" active="no"/>
<layer number="221" name="221bmp" color="22" fill="1" visible="no" active="no"/>
<layer number="222" name="222bmp" color="23" fill="1" visible="no" active="no"/>
<layer number="223" name="223bmp" color="24" fill="1" visible="no" active="no"/>
<layer number="224" name="224bmp" color="25" fill="1" visible="no" active="no"/>
<layer number="225" name="225bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="226" name="226bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="227" name="227bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="228" name="228bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="229" name="229bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="230" name="230bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="231" name="231bmp" color="7" fill="1" visible="yes" active="yes"/>
<layer number="232" name="Eagle3D_PG2" color="7" fill="1" visible="no" active="no"/>
<layer number="233" name="Eagle3D_PG3" color="7" fill="1" visible="no" active="no"/>
<layer number="248" name="Housing" color="7" fill="1" visible="yes" active="yes"/>
<layer number="249" name="Edge" color="7" fill="1" visible="yes" active="yes"/>
<layer number="250" name="Descript" color="3" fill="1" visible="no" active="no"/>
<layer number="251" name="SMDround" color="12" fill="11" visible="no" active="no"/>
<layer number="254" name="cooling" color="7" fill="1" visible="no" active="yes"/>
<layer number="255" name="routoute" color="7" fill="1" visible="yes" active="yes"/>
</layers>
<board>
<plain>
<wire x1="0" y1="2.54" x2="2.54" y2="0" width="0" layer="20" curve="90"/>
<wire x1="2.54" y1="0" x2="86.36" y2="0" width="0" layer="20"/>
<wire x1="86.36" y1="0" x2="88.9" y2="2.54" width="0" layer="20" curve="90"/>
<wire x1="88.9" y1="2.54" x2="88.9" y2="52.07" width="0" layer="20"/>
<wire x1="88.9" y1="52.07" x2="86.36" y2="54.61" width="0" layer="20" curve="90"/>
<wire x1="86.36" y1="54.61" x2="2.54" y2="54.61" width="0" layer="20"/>
<wire x1="2.54" y1="54.61" x2="0" y2="52.07" width="0" layer="20" curve="90"/>
<text x="12.7" y="49.53" size="1.016" layer="121" distance="10" rot="SR90" align="center-left">RUN/
STOP</text>
<text x="5.08" y="16.51" size="1.016" layer="121" distance="10" rot="SR0" align="center-right">GND
IN</text>
<text x="5.08" y="13.97" size="1.016" layer="121" distance="10" rot="SR0" align="center-right">24V
IN</text>
<text x="5.08" y="41.91" size="1.016" layer="121" rot="SR0" align="center-right">RAMP</text>
<text x="5.08" y="39.37" size="1.016" layer="121" rot="SR0" align="center-right">GND</text>
<text x="5.08" y="36.83" size="1.016" layer="121" rot="SR0" align="center-right">5V</text>
<text x="5.08" y="29.21" size="1.016" layer="121" rot="SR0" align="center-right">MODE</text>
<text x="5.08" y="31.75" size="1.016" layer="121" rot="SR0" align="center-right">GND</text>
<text x="83.82" y="33.02" size="1.016" layer="121" distance="10" rot="R180" align="center-right">24V
OUT</text>
<text x="55.245" y="31.75" size="1.4224" layer="121" align="bottom-center">WooLee
Ann Spinner
Ver 3.1.1</text>
<text x="5.08" y="26.67" size="1.016" layer="121" rot="SR0" align="center-right">GND</text>
<text x="5.08" y="34.29" size="1.016" layer="121" distance="10" rot="SR0" align="center-right">RUN/
STOP</text>
<text x="5.08" y="21.59" size="1.016" layer="121" rot="SR0" align="center-right">GND</text>
<text x="5.08" y="24.13" size="1.016" layer="121" rot="SR0" align="center-right">EXP1</text>
<text x="5.08" y="19.05" size="1.016" layer="121" rot="SR0" align="center-right">5V</text>
<text x="15.24" y="49.53" size="1.016" layer="121" distance="10" rot="SR90" align="center-left">SPEED</text>
<text x="17.78" y="49.53" size="1.016" layer="121" distance="10" rot="SR90" align="center-left">DISP</text>
<text x="20.32" y="49.53" size="1.016" layer="121" distance="10" rot="SR90" align="center-left">EXP2</text>
<text x="25.4" y="49.53" size="1.016" layer="121" distance="10" rot="SR90" align="center-left">GND</text>
<text x="27.94" y="49.53" size="1.016" layer="121" distance="10" rot="SR90" align="center-left">5V</text>
<text x="22.86" y="49.53" size="1.016" layer="121" distance="10" rot="SR90" align="center-left">EXP3\</text>
<text x="83.82" y="35.56" size="1.016" layer="121" distance="10" rot="R180" align="center-right">PGND</text>
<text x="83.82" y="38.1" size="1.016" layer="121" distance="10" rot="R180" align="center-right">PG IN</text>
<text x="83.82" y="40.64" size="1.016" layer="121" distance="10" rot="R180" align="center-right">DIR</text>
<text x="83.82" y="43.18" size="1.016" layer="121" distance="10" rot="R180" align="center-right">VSPD</text>
<text x="83.82" y="45.72" size="1.016" layer="121" distance="10" rot="R180" align="center-right">AGND</text>
<wire x1="0" y1="35.56" x2="6.35" y2="35.56" width="0.127" layer="121"/>
<wire x1="6.35" y1="30.48" x2="0" y2="30.48" width="0.127" layer="121"/>
<wire x1="6.35" y1="25.4" x2="0" y2="25.4" width="0.127" layer="121"/>
<wire x1="6.35" y1="17.78" x2="0" y2="17.78" width="0.127" layer="121"/>
<wire x1="54.61" y1="54.61" x2="54.61" y2="0" width="0.127" layer="51" style="shortdash"/>
<wire x1="48.26" y1="54.61" x2="48.26" y2="0" width="0.127" layer="51" style="shortdash"/>
<wire x1="0" y1="2.54" x2="0" y2="52.07" width="0" layer="20"/>
</plain>
<libraries>
<library name="SaintGimp">
<description>Saint Gimp's Devices

<author>Created by saintgimp@hotmail.com</author></description>
<packages>
<package name="AXIAL-7.5MM">
<wire x1="-2.413" y1="0.762" x2="2.413" y2="0.762" width="0.2032" layer="21"/>
<wire x1="2.413" y1="0.762" x2="2.413" y2="0" width="0.2032" layer="21"/>
<wire x1="2.413" y1="0" x2="2.413" y2="-0.762" width="0.2032" layer="21"/>
<wire x1="2.413" y1="-0.762" x2="-2.413" y2="-0.762" width="0.2032" layer="21"/>
<wire x1="-2.413" y1="-0.762" x2="-2.413" y2="0" width="0.2032" layer="21"/>
<wire x1="-2.413" y1="0" x2="-2.413" y2="0.762" width="0.2032" layer="21"/>
<wire x1="2.413" y1="0" x2="2.891515625" y2="0" width="0.2032" layer="21"/>
<wire x1="-2.413" y1="0" x2="-2.88414375" y2="-0.007384375" width="0.2032" layer="21"/>
<pad name="P$1" x="-3.81" y="0" drill="0.8"/>
<pad name="P$2" x="3.81" y="0" drill="0.8"/>
<text x="-2.54" y="1.016" size="0.8128" layer="25">>Name</text>
<text x="-2.032" y="-0.508" size="0.8128" layer="21" ratio="10">>Value</text>
</package>
<package name="CAPACITOR-2.5MM">
<wire x1="-0.1778" y1="0.635" x2="-0.1778" y2="-0.635" width="0.2032" layer="21"/>
<pad name="1" x="-1.27" y="0" drill="0.8"/>
<pad name="2" x="1.27" y="0" drill="0.8"/>
<text x="-1.016" y="1.524" size="0.8128" layer="25">>Name</text>
<text x="-1.778" y="-2.286" size="0.8128" layer="27">>Value</text>
<wire x1="0.1778" y1="0.635" x2="0.1778" y2="-0.635" width="0.2032" layer="21"/>
<wire x1="-2.54" y1="1.016" x2="-2.286" y2="1.27" width="0.127" layer="21" curve="-90"/>
<wire x1="-2.286" y1="1.27" x2="2.286" y2="1.27" width="0.127" layer="21"/>
<wire x1="2.286" y1="1.27" x2="2.54" y2="1.016" width="0.127" layer="21" curve="-90"/>
<wire x1="2.54" y1="1.016" x2="2.54" y2="-1.016" width="0.127" layer="21"/>
<wire x1="2.54" y1="-1.016" x2="2.286" y2="-1.27" width="0.127" layer="21" curve="-90"/>
<wire x1="2.286" y1="-1.27" x2="-2.286" y2="-1.27" width="0.127" layer="21"/>
<wire x1="-2.286" y1="-1.27" x2="-2.54" y2="-1.016" width="0.127" layer="21" curve="-90"/>
<wire x1="-2.54" y1="-1.016" x2="-2.54" y2="1.016" width="0.127" layer="21"/>
</package>
<package name="CAPACITOR-5MM">
<pad name="1" x="-2.54" y="0" drill="0.8"/>
<pad name="2" x="2.54" y="0" drill="0.8"/>
<text x="-1.016" y="1.524" size="0.8128" layer="25">>Name</text>
<text x="-1.905" y="-2.286" size="0.8128" layer="27">>Value</text>
<wire x1="-0.254" y1="0.635" x2="-0.254" y2="0" width="0.2032" layer="21"/>
<wire x1="-0.254" y1="0" x2="-0.254" y2="-0.635" width="0.2032" layer="21"/>
<wire x1="0.254" y1="0.635" x2="0.254" y2="0" width="0.2032" layer="21"/>
<wire x1="0.254" y1="0" x2="0.254" y2="-0.635" width="0.2032" layer="21"/>
<wire x1="-0.254" y1="0" x2="-1.27" y2="0" width="0.127" layer="21"/>
<wire x1="0.254" y1="0" x2="1.27" y2="0" width="0.127" layer="21"/>
<wire x1="-3.81" y1="1.016" x2="-3.556" y2="1.27" width="0.127" layer="21" curve="-90"/>
<wire x1="-3.556" y1="1.27" x2="3.556" y2="1.27" width="0.127" layer="21"/>
<wire x1="3.556" y1="1.27" x2="3.81" y2="1.016" width="0.127" layer="21" curve="-90"/>
<wire x1="3.81" y1="1.016" x2="3.81" y2="-1.016" width="0.127" layer="21"/>
<wire x1="3.81" y1="-1.016" x2="3.556" y2="-1.27" width="0.127" layer="21" curve="-90"/>
<wire x1="3.556" y1="-1.27" x2="-3.556" y2="-1.27" width="0.127" layer="21"/>
<wire x1="-3.556" y1="-1.27" x2="-3.81" y2="-1.016" width="0.127" layer="21" curve="-90"/>
<wire x1="-3.81" y1="-1.016" x2="-3.81" y2="1.016" width="0.127" layer="21"/>
</package>
<package name="1X02-BIG">
<pad name="1" x="-1.27" y="0" drill="1" shape="long" rot="R90"/>
<pad name="2" x="1.27" y="0" drill="1" shape="long" rot="R90"/>
<text x="-2.5310625" y="1.88785" size="0.8128" layer="25" ratio="10">>NAME</text>
<text x="-2.54" y="-2.6248375" size="0.8128" layer="27">>VALUE</text>
<rectangle x1="1.016" y1="-0.254" x2="1.524" y2="0.254" layer="51"/>
<rectangle x1="-1.524" y1="-0.254" x2="-1.016" y2="0.254" layer="51"/>
</package>
<package name="1X07-BIG">
<pad name="1" x="-7.62" y="0" drill="1" shape="long" rot="R90"/>
<pad name="2" x="-5.08" y="0" drill="1" shape="long" rot="R90"/>
<pad name="3" x="-2.54" y="0" drill="1" shape="long" rot="R90"/>
<text x="-8.8810625" y="1.88785" size="0.8128" layer="25" ratio="10">>NAME</text>
<text x="-8.89" y="-2.6248375" size="0.8128" layer="27">>VALUE</text>
<rectangle x1="-5.334" y1="-0.254" x2="-4.826" y2="0.254" layer="51"/>
<rectangle x1="-7.874" y1="-0.254" x2="-7.366" y2="0.254" layer="51"/>
<rectangle x1="-2.794" y1="-0.254" x2="-2.286" y2="0.254" layer="51"/>
<pad name="4" x="0" y="0" drill="1" shape="long" rot="R90"/>
<rectangle x1="-0.254" y1="-0.254" x2="0.254" y2="0.254" layer="51"/>
<pad name="5" x="2.54" y="0" drill="1" shape="long" rot="R90"/>
<rectangle x1="2.286" y1="-0.254" x2="2.794" y2="0.254" layer="51"/>
<pad name="6" x="5.08" y="0" drill="1" shape="long" rot="R90"/>
<rectangle x1="4.826" y1="-0.254" x2="5.334" y2="0.254" layer="51"/>
<pad name="7" x="7.62" y="0" drill="1" shape="long" rot="R90"/>
<rectangle x1="7.366" y1="-0.254" x2="7.874" y2="0.254" layer="51"/>
</package>
<package name="1X04-BIG">
<pad name="1" x="-3.81" y="0" drill="1" shape="long" rot="R90"/>
<pad name="2" x="-1.27" y="0" drill="1" shape="long" rot="R90"/>
<pad name="3" x="1.27" y="0" drill="1" shape="long" rot="R90"/>
<text x="-5.0710625" y="1.88785" size="0.8128" layer="25" ratio="10">>NAME</text>
<text x="-5.08" y="-2.6248375" size="0.8128" layer="27">>VALUE</text>
<rectangle x1="-1.524" y1="-0.254" x2="-1.016" y2="0.254" layer="51"/>
<rectangle x1="1.016" y1="-0.254" x2="1.524" y2="0.254" layer="51"/>
<pad name="4" x="3.81" y="0" drill="1" shape="long" rot="R90"/>
<rectangle x1="3.556" y1="-0.254" x2="4.064" y2="0.254" layer="51"/>
<rectangle x1="-4.064" y1="-0.254" x2="-3.556" y2="0.254" layer="51"/>
</package>
<package name="1X03-BIG">
<pad name="1" x="-2.54" y="0" drill="1" shape="long" rot="R90"/>
<pad name="2" x="0" y="0" drill="1" shape="long" rot="R90"/>
<pad name="3" x="2.54" y="0" drill="1" shape="long" rot="R90"/>
<text x="-3.8010625" y="1.88785" size="0.8128" layer="25" ratio="10">>NAME</text>
<text x="-3.81" y="-2.6248375" size="0.8128" layer="27">>VALUE</text>
<rectangle x1="-0.254" y1="-0.254" x2="0.254" y2="0.254" layer="51"/>
<rectangle x1="-2.794" y1="-0.254" x2="-2.286" y2="0.254" layer="51"/>
<rectangle x1="2.286" y1="-0.254" x2="2.794" y2="0.254" layer="51"/>
</package>
<package name="TO220BH-NO-HOLE">
<wire x1="-5.207" y1="-1.27" x2="5.207" y2="-1.27" width="0.1524" layer="21"/>
<wire x1="5.207" y1="14.605" x2="-5.207" y2="14.605" width="0.1524" layer="21"/>
<wire x1="5.207" y1="-1.27" x2="5.207" y2="11.176" width="0.1524" layer="21"/>
<wire x1="5.207" y1="12.7" x2="5.207" y2="14.605" width="0.1524" layer="21"/>
<wire x1="-5.207" y1="-1.27" x2="-5.207" y2="11.176" width="0.1524" layer="21"/>
<wire x1="-5.207" y1="12.7" x2="-5.207" y2="14.605" width="0.1524" layer="21"/>
<wire x1="-4.572" y1="-0.635" x2="4.572" y2="-0.635" width="0.0508" layer="21"/>
<wire x1="4.572" y1="7.62" x2="4.572" y2="-0.635" width="0.0508" layer="21"/>
<wire x1="4.572" y1="7.62" x2="-4.572" y2="7.62" width="0.0508" layer="21"/>
<wire x1="-4.572" y1="-0.635" x2="-4.572" y2="7.62" width="0.0508" layer="21"/>
<pad name="P1" x="-2.54" y="-6.35" drill="1" shape="long" rot="R90"/>
<pad name="P2" x="0" y="-6.35" drill="1" shape="long" rot="R90"/>
<pad name="P3" x="2.54" y="-6.35" drill="1" shape="long" rot="R90"/>
<text x="-3.81" y="5.207" size="0.8128" layer="25" ratio="10">>NAME</text>
<text x="-3.937" y="2.54" size="0.8128" layer="27" ratio="10">>VALUE</text>
<rectangle x1="2.159" y1="-4.5212" x2="2.921" y2="-4.064" layer="51"/>
<rectangle x1="-0.381" y1="-4.5212" x2="0.381" y2="-4.064" layer="51"/>
<rectangle x1="-2.921" y1="-4.5212" x2="-2.159" y2="-4.064" layer="51"/>
<rectangle x1="-3.175" y1="-4.064" x2="-1.905" y2="-1.27" layer="21"/>
<rectangle x1="-0.635" y1="-4.064" x2="0.635" y2="-1.27" layer="21"/>
<rectangle x1="1.905" y1="-4.064" x2="3.175" y2="-1.27" layer="21"/>
<rectangle x1="-2.921" y1="-6.604" x2="-2.159" y2="-4.5212" layer="51"/>
<rectangle x1="-0.381" y1="-6.604" x2="0.381" y2="-4.5212" layer="51"/>
<rectangle x1="2.159" y1="-6.604" x2="2.921" y2="-4.5212" layer="51"/>
<wire x1="-4.318" y1="12.7" x2="-5.207" y2="12.7" width="0.1524" layer="21"/>
<wire x1="-4.318" y1="11.176" x2="-5.207" y2="11.176" width="0.1524" layer="21"/>
<wire x1="-4.318" y1="12.7" x2="-4.318" y2="11.176" width="0.1524" layer="21"/>
<wire x1="4.318" y1="11.176" x2="5.207" y2="11.176" width="0.1524" layer="21"/>
<wire x1="4.318" y1="12.7" x2="5.207" y2="12.7" width="0.1524" layer="21"/>
<wire x1="4.318" y1="11.176" x2="4.318" y2="12.7" width="0.1524" layer="21"/>
</package>
<package name="ZDIO-7.5">
<description>Z DIODE</description>
<wire x1="0" y1="1.27" x2="-1.27" y2="1.27" width="0.254" layer="21"/>
<wire x1="-1.27" y1="0" x2="1.27" y2="1.27" width="0.254" layer="21"/>
<wire x1="1.27" y1="1.27" x2="1.27" y2="0" width="0.254" layer="21"/>
<wire x1="1.27" y1="-1.27" x2="-1.27" y2="0" width="0.254" layer="21"/>
<wire x1="-1.27" y1="1.27" x2="-1.27" y2="0" width="0.254" layer="21"/>
<wire x1="1.27" y1="0" x2="2.667" y2="0" width="0.254" layer="21"/>
<wire x1="1.27" y1="0" x2="1.27" y2="-1.27" width="0.254" layer="21"/>
<wire x1="-2.667" y1="0" x2="-1.27" y2="0" width="0.254" layer="21"/>
<wire x1="-1.27" y1="0" x2="-1.27" y2="-1.27" width="0.254" layer="21"/>
<wire x1="-1.27" y1="-1.27" x2="-2.54" y2="-1.27" width="0.254" layer="21"/>
<pad name="C" x="-3.81" y="0" drill="0.8"/>
<pad name="A" x="3.81" y="0" drill="0.8"/>
<text x="-2.4892" y="1.7018" size="0.8128" layer="25" ratio="10">>NAME</text>
<text x="-2.54" y="-2.413" size="0.8128" layer="27" ratio="10">>VALUE</text>
</package>
<package name="DC-CONV">
<pad name="P3" x="-2.54" y="-7.62" drill="1.1" shape="long" rot="R90"/>
<pad name="P2" x="0" y="-7.62" drill="1.1" shape="long" rot="R90"/>
<pad name="P1" x="2.54" y="-7.62" drill="1.1" shape="long" rot="R90"/>
<text x="-4.826" y="5.588" size="0.8128" layer="25" ratio="10">>NAME</text>
<text x="-4.826" y="-0.889" size="0.8128" layer="27" ratio="10">>VALUE</text>
<wire x1="5.207" y1="-8.89" x2="5.207" y2="-3.81" width="0.127" layer="21"/>
<wire x1="5.207" y1="-3.81" x2="5.207" y2="2.54" width="0.127" layer="21"/>
<wire x1="5.207" y1="2.54" x2="5.207" y2="7.62" width="0.127" layer="21"/>
<wire x1="5.207" y1="7.62" x2="-5.207" y2="7.62" width="0.127" layer="21"/>
<wire x1="-5.207" y1="7.62" x2="-5.207" y2="3.81" width="0.127" layer="21"/>
<wire x1="-5.207" y1="3.81" x2="-5.207" y2="-2.54" width="0.127" layer="21"/>
<wire x1="-5.207" y1="-2.54" x2="-5.207" y2="-8.89" width="0.127" layer="21"/>
<wire x1="-5.207" y1="-8.89" x2="-3.81" y2="-8.89" width="0.127" layer="21"/>
<wire x1="3.81" y1="-8.89" x2="5.207" y2="-8.89" width="0.127" layer="21"/>
<wire x1="-5.207" y1="3.81" x2="-3.81" y2="5.08" width="0.127" layer="21"/>
<wire x1="-3.81" y1="5.08" x2="2.54" y2="5.08" width="0.127" layer="21"/>
<wire x1="2.54" y1="5.08" x2="5.207" y2="2.54" width="0.127" layer="21"/>
<wire x1="-5.207" y1="-2.54" x2="-2.54" y2="-5.08" width="0.127" layer="21"/>
<wire x1="-2.54" y1="-5.08" x2="3.81" y2="-5.08" width="0.127" layer="21"/>
<wire x1="3.81" y1="-5.08" x2="5.207" y2="-3.81" width="0.127" layer="21" curve="90"/>
</package>
<package name="CRYSTAL-V">
<description>CRYSTAL</description>
<wire x1="5.08" y1="-1.905" x2="5.08" y2="1.905" width="0.4064" layer="21"/>
<wire x1="-5.08" y1="1.905" x2="-5.08" y2="-1.905" width="0.4064" layer="21"/>
<wire x1="-4.445" y1="2.54" x2="4.445" y2="2.54" width="0.4064" layer="21"/>
<wire x1="-4.445" y1="-2.54" x2="4.445" y2="-2.54" width="0.4064" layer="21"/>
<wire x1="4.445" y1="-2.54" x2="5.08" y2="-1.905" width="0.4064" layer="21" curve="90"/>
<wire x1="4.445" y1="2.54" x2="5.08" y2="1.905" width="0.4064" layer="21" curve="-90"/>
<wire x1="-5.08" y1="1.905" x2="-4.445" y2="2.54" width="0.4064" layer="21" curve="-90"/>
<wire x1="-5.08" y1="-1.905" x2="-4.445" y2="-2.54" width="0.4064" layer="21" curve="90"/>
<wire x1="-4.318" y1="-1.905" x2="4.318" y2="-1.905" width="0.1524" layer="21"/>
<wire x1="4.318" y1="-1.905" x2="4.445" y2="-1.778" width="0.1524" layer="21"/>
<wire x1="4.445" y1="-1.778" x2="4.445" y2="1.778" width="0.1524" layer="21"/>
<wire x1="4.318" y1="1.905" x2="4.445" y2="1.778" width="0.1524" layer="21"/>
<wire x1="4.318" y1="1.905" x2="-4.318" y2="1.905" width="0.1524" layer="21"/>
<wire x1="-4.445" y1="1.778" x2="-4.318" y2="1.905" width="0.1524" layer="21"/>
<wire x1="-4.445" y1="1.778" x2="-4.445" y2="-1.778" width="0.1524" layer="21"/>
<wire x1="-4.318" y1="-1.905" x2="-4.445" y2="-1.778" width="0.1524" layer="21"/>
<wire x1="-0.3302" y1="1.27" x2="-0.3302" y2="-1.27" width="0.3048" layer="21"/>
<wire x1="-0.3302" y1="-1.27" x2="0.3048" y2="-1.27" width="0.3048" layer="21"/>
<wire x1="0.3048" y1="-1.27" x2="0.3048" y2="1.27" width="0.3048" layer="21"/>
<wire x1="0.3048" y1="1.27" x2="-0.3302" y2="1.27" width="0.3048" layer="21"/>
<wire x1="0.9398" y1="1.27" x2="0.9398" y2="0" width="0.3048" layer="21"/>
<wire x1="-0.9398" y1="1.27" x2="-0.9398" y2="0" width="0.3048" layer="21"/>
<wire x1="0.9398" y1="0" x2="1.4478" y2="0" width="0.1524" layer="21"/>
<wire x1="0.9398" y1="0" x2="0.9398" y2="-1.27" width="0.3048" layer="21"/>
<wire x1="-0.9398" y1="0" x2="-1.4478" y2="0" width="0.1524" layer="21"/>
<wire x1="-0.9398" y1="0" x2="-0.9398" y2="-1.27" width="0.3048" layer="21"/>
<pad name="1" x="-2.54" y="0" drill="0.9"/>
<pad name="2" x="2.54" y="0" drill="0.9"/>
<text x="-4.5466" y="3.0226" size="0.8128" layer="25" ratio="10">>NAME</text>
<text x="-4.572" y="-3.8608" size="0.8128" layer="27" ratio="10">>VALUE</text>
<rectangle x1="-5.715" y1="-3.175" x2="5.715" y2="3.175" layer="43"/>
</package>
<package name="CAP-POL-25-14">
<description>ELECTROLYTIC CAPACITOR

grid 5 mm, diameter 14 mm</description>
<wire x1="10.16" y1="7.239" x2="10.16" y2="-7.239" width="0.1524" layer="21"/>
<wire x1="-15.24" y1="7.239" x2="-15.24" y2="-7.239" width="0.1524" layer="21"/>
<wire x1="-15.24" y1="7.239" x2="-14.859" y2="7.62" width="0.1524" layer="21"/>
<wire x1="-14.859" y1="7.62" x2="-13.716" y2="7.62" width="0.1524" layer="21"/>
<wire x1="-13.335" y1="7.239" x2="-13.716" y2="7.62" width="0.1524" layer="21"/>
<wire x1="-13.335" y1="7.239" x2="-12.446" y2="7.239" width="0.1524" layer="21"/>
<wire x1="-12.446" y1="7.239" x2="-12.065" y2="7.62" width="0.1524" layer="21"/>
<wire x1="-13.335" y1="7.239" x2="-13.335" y2="6.731" width="0.1524" layer="21"/>
<wire x1="-12.446" y1="7.239" x2="-12.446" y2="6.731" width="0.1524" layer="21"/>
<wire x1="-15.24" y1="7.239" x2="-13.335" y2="7.239" width="0.1524" layer="21"/>
<wire x1="-12.446" y1="7.239" x2="10.16" y2="7.239" width="0.1524" layer="21"/>
<wire x1="-13.335" y1="6.731" x2="-12.446" y2="6.731" width="0.1524" layer="21"/>
<wire x1="-14.859" y1="7.493" x2="-13.716" y2="7.493" width="0.3048" layer="21"/>
<wire x1="-14.986" y1="7.366" x2="-13.589" y2="7.366" width="0.3048" layer="21"/>
<wire x1="-13.208" y1="7.112" x2="-12.573" y2="7.112" width="0.3048" layer="21"/>
<wire x1="-13.208" y1="6.858" x2="-12.573" y2="6.858" width="0.3048" layer="21"/>
<wire x1="-12.065" y1="7.493" x2="9.779" y2="7.493" width="0.3048" layer="21"/>
<wire x1="-12.192" y1="7.366" x2="9.906" y2="7.366" width="0.3048" layer="21"/>
<wire x1="-15.24" y1="-7.239" x2="-15.113" y2="-7.366" width="0.1524" layer="21"/>
<wire x1="-14.859" y1="-7.62" x2="-13.716" y2="-7.62" width="0.1524" layer="21"/>
<wire x1="-13.335" y1="-7.239" x2="-13.462" y2="-7.366" width="0.1524" layer="21"/>
<wire x1="-13.335" y1="-7.239" x2="-12.446" y2="-7.239" width="0.1524" layer="21"/>
<wire x1="-12.065" y1="-7.62" x2="-12.319" y2="-7.366" width="0.1524" layer="21"/>
<wire x1="-15.113" y1="-7.366" x2="-13.462" y2="-7.366" width="0.1524" layer="21"/>
<wire x1="-15.113" y1="-7.366" x2="-14.859" y2="-7.62" width="0.1524" layer="21"/>
<wire x1="-13.462" y1="-7.366" x2="-13.716" y2="-7.62" width="0.1524" layer="21"/>
<wire x1="-12.319" y1="-7.366" x2="10.033" y2="-7.366" width="0.1524" layer="21"/>
<wire x1="-12.319" y1="-7.366" x2="-12.446" y2="-7.239" width="0.1524" layer="21"/>
<wire x1="-13.335" y1="6.731" x2="-13.335" y2="-6.985" width="0.1524" layer="21"/>
<wire x1="-12.446" y1="6.731" x2="-12.446" y2="-6.985" width="0.1524" layer="21"/>
<wire x1="-13.335" y1="-6.985" x2="-12.446" y2="-6.985" width="0.1524" layer="21"/>
<wire x1="-13.335" y1="-6.985" x2="-13.335" y2="-7.239" width="0.1524" layer="21"/>
<wire x1="-12.446" y1="-6.985" x2="-12.446" y2="-7.239" width="0.1524" layer="21"/>
<wire x1="-12.065" y1="-7.493" x2="9.779" y2="-7.493" width="0.3048" layer="21"/>
<wire x1="-14.859" y1="-7.493" x2="-13.716" y2="-7.493" width="0.3048" layer="21"/>
<wire x1="-13.208" y1="-7.112" x2="-12.573" y2="-7.112" width="0.3048" layer="21"/>
<wire x1="10.16" y1="-7.239" x2="10.033" y2="-7.366" width="0.1524" layer="21"/>
<wire x1="9.779" y1="-7.62" x2="-12.065" y2="-7.62" width="0.1524" layer="21"/>
<wire x1="10.033" y1="-7.366" x2="9.779" y2="-7.62" width="0.1524" layer="21"/>
<wire x1="10.16" y1="7.239" x2="9.779" y2="7.62" width="0.1524" layer="21"/>
<wire x1="9.779" y1="7.62" x2="-12.065" y2="7.62" width="0.1524" layer="21"/>
<wire x1="-11.049" y1="0.762" x2="-11.049" y2="0.254" width="0.1524" layer="21"/>
<wire x1="-11.049" y1="0.254" x2="-8.001" y2="0.254" width="0.1524" layer="21"/>
<wire x1="-8.001" y1="0.254" x2="-8.001" y2="0.762" width="0.1524" layer="21"/>
<wire x1="-10.16" y1="1.524" x2="-10.922" y2="1.524" width="0.1524" layer="21"/>
<wire x1="-10.541" y1="1.905" x2="-10.541" y2="1.143" width="0.1524" layer="21"/>
<wire x1="-8.001" y1="0.762" x2="-9.525" y2="0.762" width="0.1524" layer="21"/>
<wire x1="-9.525" y1="0.762" x2="-11.049" y2="0.762" width="0.1524" layer="21"/>
<wire x1="-9.525" y1="-0.635" x2="-9.525" y2="-2.032" width="0.1524" layer="21"/>
<wire x1="-9.525" y1="1.905" x2="-9.525" y2="0.762" width="0.1524" layer="21"/>
<wire x1="-16.51" y1="-2.54" x2="-16.002" y2="-2.54" width="0.762" layer="51"/>
<wire x1="-16.51" y1="2.54" x2="-16.002" y2="2.54" width="0.762" layer="51"/>
<pad name="+" x="-17.78" y="2.54" drill="1"/>
<pad name="-" x="-17.78" y="-2.54" drill="1" shape="octagon"/>
<text x="-4.699" y="1.651" size="0.8128" layer="25" ratio="10">>NAME</text>
<text x="-4.8006" y="-3.1242" size="0.8128" layer="27" ratio="10">>VALUE</text>
<rectangle x1="-9.779" y1="-2.032" x2="-9.271" y2="1.016" layer="21" rot="R270"/>
<rectangle x1="-16.129" y1="2.159" x2="-15.24" y2="2.921" layer="21"/>
<rectangle x1="-16.129" y1="-2.921" x2="-15.24" y2="-2.159" layer="21"/>
</package>
<package name="FUSE_HOLDER_5X20MM">
<description>Fuse Holder 5x20 mm

Source: User LBR Version 2.05</description>
<wire x1="-6.604" y1="-3.556" x2="-9.652" y2="-3.556" width="0.3048" layer="21"/>
<wire x1="-9.652" y1="-3.556" x2="-9.652" y2="-2.54" width="0.3048" layer="21"/>
<wire x1="-9.652" y1="3.556" x2="-6.604" y2="3.556" width="0.3048" layer="21"/>
<wire x1="-9.906" y1="-3.048" x2="-10.668" y2="-3.048" width="0.3048" layer="21"/>
<wire x1="-10.668" y1="-1.778" x2="-10.668" y2="-3.048" width="0.3048" layer="21"/>
<wire x1="-6.35" y1="2.54" x2="6.35" y2="2.54" width="0.3048" layer="21"/>
<wire x1="6.35" y1="2.54" x2="6.604" y2="2.54" width="0.3048" layer="21"/>
<wire x1="-6.604" y1="-2.54" x2="-6.35" y2="-2.54" width="0.3048" layer="21"/>
<wire x1="-6.35" y1="-2.54" x2="6.35" y2="-2.54" width="0.3048" layer="21"/>
<wire x1="6.35" y1="-2.54" x2="6.604" y2="-2.54" width="0.3048" layer="21"/>
<wire x1="-9.652" y1="-2.286" x2="-6.604" y2="-2.286" width="0.3048" layer="21"/>
<wire x1="-9.652" y1="2.286" x2="-6.604" y2="2.286" width="0.3048" layer="21"/>
<wire x1="-6.35" y1="2.54" x2="-6.604" y2="2.54" width="0.3048" layer="21"/>
<wire x1="-6.604" y1="2.54" x2="-6.604" y2="3.556" width="0.3048" layer="21"/>
<wire x1="-6.604" y1="2.54" x2="-6.604" y2="2.286" width="0.3048" layer="21"/>
<wire x1="-9.652" y1="2.286" x2="-9.652" y2="2.54" width="0.3048" layer="21"/>
<wire x1="-9.652" y1="2.54" x2="-9.652" y2="3.556" width="0.3048" layer="21"/>
<wire x1="-9.652" y1="2.54" x2="-10.16" y2="2.54" width="0.3048" layer="21"/>
<wire x1="-9.652" y1="-2.54" x2="-9.652" y2="-2.286" width="0.3048" layer="21"/>
<wire x1="-9.652" y1="-2.54" x2="-10.16" y2="-2.54" width="0.3048" layer="21"/>
<wire x1="-6.604" y1="-2.54" x2="-6.604" y2="-2.286" width="0.3048" layer="21"/>
<wire x1="-6.604" y1="-2.54" x2="-6.604" y2="-3.556" width="0.3048" layer="21"/>
<wire x1="6.604" y1="3.556" x2="9.652" y2="3.556" width="0.3048" layer="21"/>
<wire x1="9.652" y1="3.556" x2="9.652" y2="2.54" width="0.3048" layer="21"/>
<wire x1="9.652" y1="-3.556" x2="6.604" y2="-3.556" width="0.3048" layer="21"/>
<wire x1="9.906" y1="3.048" x2="10.668" y2="3.048" width="0.3048" layer="21"/>
<wire x1="10.668" y1="1.778" x2="10.668" y2="3.048" width="0.3048" layer="21"/>
<wire x1="9.652" y1="2.286" x2="6.604" y2="2.286" width="0.3048" layer="21"/>
<wire x1="9.652" y1="-2.286" x2="6.604" y2="-2.286" width="0.3048" layer="21"/>
<wire x1="6.604" y1="-2.54" x2="6.604" y2="-3.556" width="0.3048" layer="21"/>
<wire x1="6.604" y1="-2.54" x2="6.604" y2="-2.286" width="0.3048" layer="21"/>
<wire x1="9.652" y1="-2.286" x2="9.652" y2="-2.54" width="0.3048" layer="21"/>
<wire x1="9.652" y1="-2.54" x2="9.652" y2="-3.556" width="0.3048" layer="21"/>
<wire x1="9.652" y1="-2.54" x2="10.16" y2="-2.54" width="0.3048" layer="21"/>
<wire x1="9.652" y1="2.54" x2="9.652" y2="2.286" width="0.3048" layer="21"/>
<wire x1="9.652" y1="2.54" x2="10.16" y2="2.54" width="0.3048" layer="21"/>
<wire x1="6.604" y1="2.54" x2="6.604" y2="2.286" width="0.3048" layer="21"/>
<wire x1="6.604" y1="2.54" x2="6.604" y2="3.556" width="0.3048" layer="21"/>
<pad name="1" x="-10.16" y="0" drill="1.3"/>
<pad name="2" x="10.16" y="0" drill="1.3"/>
<text x="-2.032" y="1.27" size="0.8128" layer="25">>NAME</text>
<text x="-2.032" y="-2.032" size="0.8128" layer="27">>VALUE</text>
<pad name="3" x="-5.1562" y="0" drill="1.3"/>
<pad name="5" x="5.1562" y="0" drill="1.3"/>
<wire x1="-10.16" y1="2.54" x2="-10.16" y2="1.524" width="0.3048" layer="21"/>
<wire x1="-10.16" y1="-2.54" x2="-10.16" y2="-1.524" width="0.3048" layer="21"/>
<wire x1="10.16" y1="2.54" x2="10.16" y2="1.524" width="0.3048" layer="21"/>
<wire x1="10.16" y1="-2.54" x2="10.16" y2="-1.524" width="0.3048" layer="21"/>
<wire x1="-6.35" y1="2.54" x2="-6.35" y2="1.27" width="0.3048" layer="21"/>
<wire x1="-6.35" y1="-2.54" x2="-6.35" y2="-1.27" width="0.3048" layer="21"/>
<wire x1="6.35" y1="-2.54" x2="6.35" y2="-1.27" width="0.3048" layer="21"/>
<wire x1="6.35" y1="2.54" x2="6.35" y2="1.27" width="0.3048" layer="21"/>
</package>
<package name="DIP28">
<pad name="1" x="-7.62" y="33.02" drill="0.9" shape="square"/>
<pad name="2" x="-7.62" y="30.48" drill="0.9"/>
<pad name="3" x="-7.62" y="27.94" drill="0.9"/>
<pad name="4" x="-7.62" y="25.4" drill="0.9"/>
<pad name="5" x="-7.62" y="22.86" drill="0.9"/>
<pad name="6" x="-7.62" y="20.32" drill="0.9"/>
<pad name="7" x="-7.62" y="17.78" drill="0.9"/>
<pad name="8" x="-7.62" y="15.24" drill="0.9"/>
<pad name="9" x="-7.62" y="12.7" drill="0.9"/>
<pad name="10" x="-7.62" y="10.16" drill="0.9"/>
<pad name="11" x="-7.62" y="7.62" drill="0.9"/>
<pad name="12" x="-7.62" y="5.08" drill="0.9"/>
<pad name="13" x="-7.62" y="2.54" drill="0.9"/>
<pad name="14" x="-7.62" y="0" drill="0.9"/>
<pad name="15" x="0" y="0" drill="0.9"/>
<pad name="16" x="0" y="2.54" drill="0.9"/>
<pad name="17" x="0" y="5.08" drill="0.9"/>
<pad name="18" x="0" y="7.62" drill="0.9"/>
<pad name="19" x="0" y="10.16" drill="0.9"/>
<pad name="20" x="0" y="12.7" drill="0.9"/>
<pad name="21" x="0" y="15.24" drill="0.9"/>
<pad name="22" x="0" y="17.78" drill="0.9"/>
<pad name="23" x="0" y="20.32" drill="0.9"/>
<pad name="24" x="0" y="22.86" drill="0.9"/>
<pad name="25" x="0" y="25.4" drill="0.9"/>
<pad name="26" x="0" y="27.94" drill="0.9"/>
<pad name="27" x="0" y="30.48" drill="0.9"/>
<pad name="28" x="0" y="33.02" drill="0.9"/>
<wire x1="-6.6548" y1="-0.889" x2="-0.9652" y2="-0.889" width="0.1524" layer="21"/>
<wire x1="-0.9652" y1="33.909" x2="-6.2992" y2="33.909" width="0.1524" layer="21"/>
<wire x1="-7.5692" y1="32.4612" x2="-7.5692" y2="33.5788" width="0" layer="51"/>
<wire x1="-7.5692" y1="33.5788" x2="-8.1788" y2="33.5788" width="0" layer="51"/>
<wire x1="-8.1788" y1="33.5788" x2="-8.1788" y2="32.4612" width="0" layer="51"/>
<wire x1="-8.1788" y1="32.4612" x2="-7.5692" y2="32.4612" width="0" layer="51"/>
<wire x1="-7.5692" y1="29.9212" x2="-7.5692" y2="31.0388" width="0" layer="51"/>
<wire x1="-7.5692" y1="31.0388" x2="-8.1788" y2="31.0388" width="0" layer="51"/>
<wire x1="-8.1788" y1="31.0388" x2="-8.1788" y2="29.9212" width="0" layer="51"/>
<wire x1="-8.1788" y1="29.9212" x2="-7.5692" y2="29.9212" width="0" layer="51"/>
<wire x1="-7.5692" y1="27.3812" x2="-7.5692" y2="28.4988" width="0" layer="51"/>
<wire x1="-7.5692" y1="28.4988" x2="-8.1788" y2="28.4988" width="0" layer="51"/>
<wire x1="-8.1788" y1="28.4988" x2="-8.1788" y2="27.3812" width="0" layer="51"/>
<wire x1="-8.1788" y1="27.3812" x2="-7.5692" y2="27.3812" width="0" layer="51"/>
<wire x1="-7.5692" y1="24.8412" x2="-7.5692" y2="25.9588" width="0" layer="51"/>
<wire x1="-7.5692" y1="25.9588" x2="-8.1788" y2="25.9588" width="0" layer="51"/>
<wire x1="-8.1788" y1="25.9588" x2="-8.1788" y2="24.8412" width="0" layer="51"/>
<wire x1="-8.1788" y1="24.8412" x2="-7.5692" y2="24.8412" width="0" layer="51"/>
<wire x1="-7.5692" y1="22.3012" x2="-7.5692" y2="23.4188" width="0" layer="51"/>
<wire x1="-7.5692" y1="23.4188" x2="-8.1788" y2="23.4188" width="0" layer="51"/>
<wire x1="-8.1788" y1="23.4188" x2="-8.1788" y2="22.3012" width="0" layer="51"/>
<wire x1="-8.1788" y1="22.3012" x2="-7.5692" y2="22.3012" width="0" layer="51"/>
<wire x1="-7.5692" y1="19.7612" x2="-7.5692" y2="20.8788" width="0" layer="51"/>
<wire x1="-7.5692" y1="20.8788" x2="-8.1788" y2="20.8788" width="0" layer="51"/>
<wire x1="-8.1788" y1="20.8788" x2="-8.1788" y2="19.7612" width="0" layer="51"/>
<wire x1="-8.1788" y1="19.7612" x2="-7.5692" y2="19.7612" width="0" layer="51"/>
<wire x1="-7.5692" y1="17.2212" x2="-7.5692" y2="18.3388" width="0" layer="51"/>
<wire x1="-7.5692" y1="18.3388" x2="-8.1788" y2="18.3388" width="0" layer="51"/>
<wire x1="-8.1788" y1="18.3388" x2="-8.1788" y2="17.2212" width="0" layer="51"/>
<wire x1="-8.1788" y1="17.2212" x2="-7.5692" y2="17.2212" width="0" layer="51"/>
<wire x1="-7.5692" y1="14.6812" x2="-7.5692" y2="15.7988" width="0" layer="51"/>
<wire x1="-7.5692" y1="15.7988" x2="-8.1788" y2="15.7988" width="0" layer="51"/>
<wire x1="-8.1788" y1="15.7988" x2="-8.1788" y2="14.6812" width="0" layer="51"/>
<wire x1="-8.1788" y1="14.6812" x2="-7.5692" y2="14.6812" width="0" layer="51"/>
<wire x1="-7.5438" y1="12.1412" x2="-7.5692" y2="13.2588" width="0" layer="51"/>
<wire x1="-7.5692" y1="13.2588" x2="-8.1788" y2="13.2588" width="0" layer="51"/>
<wire x1="-8.1788" y1="13.2588" x2="-8.1788" y2="12.1412" width="0" layer="51"/>
<wire x1="-8.1788" y1="12.1412" x2="-7.5438" y2="12.1412" width="0" layer="51"/>
<wire x1="-7.5438" y1="9.6012" x2="-7.5438" y2="10.7188" width="0" layer="51"/>
<wire x1="-7.5438" y1="10.7188" x2="-8.1788" y2="10.7188" width="0" layer="51"/>
<wire x1="-8.1788" y1="10.7188" x2="-8.1788" y2="9.6012" width="0" layer="51"/>
<wire x1="-8.1788" y1="9.6012" x2="-7.5438" y2="9.6012" width="0" layer="51"/>
<wire x1="-7.5438" y1="7.0612" x2="-7.5438" y2="8.1788" width="0" layer="51"/>
<wire x1="-7.5438" y1="8.1788" x2="-8.1788" y2="8.1788" width="0" layer="51"/>
<wire x1="-8.1788" y1="8.1788" x2="-8.1788" y2="7.0612" width="0" layer="51"/>
<wire x1="-8.1788" y1="7.0612" x2="-7.5438" y2="7.0612" width="0" layer="51"/>
<wire x1="-7.5438" y1="4.5212" x2="-7.5438" y2="5.6388" width="0" layer="51"/>
<wire x1="-7.5438" y1="5.6388" x2="-8.1788" y2="5.6388" width="0" layer="51"/>
<wire x1="-8.1788" y1="5.6388" x2="-8.1788" y2="4.5212" width="0" layer="51"/>
<wire x1="-8.1788" y1="4.5212" x2="-7.5438" y2="4.5212" width="0" layer="51"/>
<wire x1="-7.5438" y1="1.9812" x2="-7.5438" y2="3.0988" width="0" layer="51"/>
<wire x1="-7.5438" y1="3.0988" x2="-8.1788" y2="3.0988" width="0" layer="51"/>
<wire x1="-8.1788" y1="3.0988" x2="-8.1788" y2="1.9812" width="0" layer="51"/>
<wire x1="-8.1788" y1="1.9812" x2="-7.5438" y2="1.9812" width="0" layer="51"/>
<wire x1="-7.5438" y1="-0.5588" x2="-7.5438" y2="0.5588" width="0" layer="51"/>
<wire x1="-7.5438" y1="0.5588" x2="-8.1788" y2="0.5588" width="0" layer="51"/>
<wire x1="-8.1788" y1="0.5588" x2="-8.1788" y2="-0.5588" width="0" layer="51"/>
<wire x1="-8.1788" y1="-0.5588" x2="-7.5438" y2="-0.5588" width="0" layer="51"/>
<wire x1="-0.0762" y1="0.5588" x2="-0.0508" y2="-0.5588" width="0" layer="51"/>
<wire x1="-0.0508" y1="-0.5588" x2="0.5588" y2="-0.5588" width="0" layer="51"/>
<wire x1="0.5588" y1="-0.5588" x2="0.5588" y2="0.5588" width="0" layer="51"/>
<wire x1="0.5588" y1="0.5588" x2="-0.0762" y2="0.5588" width="0" layer="51"/>
<wire x1="-0.0762" y1="3.0988" x2="-0.0508" y2="1.9812" width="0" layer="51"/>
<wire x1="-0.0508" y1="1.9812" x2="0.5588" y2="1.9812" width="0" layer="51"/>
<wire x1="0.5588" y1="1.9812" x2="0.5588" y2="3.0988" width="0" layer="51"/>
<wire x1="0.5588" y1="3.0988" x2="-0.0762" y2="3.0988" width="0" layer="51"/>
<wire x1="-0.0762" y1="5.6388" x2="-0.0762" y2="4.5212" width="0" layer="51"/>
<wire x1="-0.0762" y1="4.5212" x2="0.5588" y2="4.5212" width="0" layer="51"/>
<wire x1="0.5588" y1="4.5212" x2="0.5588" y2="5.6388" width="0" layer="51"/>
<wire x1="0.5588" y1="5.6388" x2="-0.0762" y2="5.6388" width="0" layer="51"/>
<wire x1="-0.0762" y1="8.1788" x2="-0.0762" y2="7.0612" width="0" layer="51"/>
<wire x1="-0.0762" y1="7.0612" x2="0.5588" y2="7.0612" width="0" layer="51"/>
<wire x1="0.5588" y1="7.0612" x2="0.5588" y2="8.1788" width="0" layer="51"/>
<wire x1="0.5588" y1="8.1788" x2="-0.0762" y2="8.1788" width="0" layer="51"/>
<wire x1="-0.0762" y1="10.7188" x2="-0.0762" y2="9.6012" width="0" layer="51"/>
<wire x1="-0.0762" y1="9.6012" x2="0.5588" y2="9.6012" width="0" layer="51"/>
<wire x1="0.5588" y1="9.6012" x2="0.5588" y2="10.7188" width="0" layer="51"/>
<wire x1="0.5588" y1="10.7188" x2="-0.0762" y2="10.7188" width="0" layer="51"/>
<wire x1="-0.0762" y1="13.2588" x2="-0.0762" y2="12.1412" width="0" layer="51"/>
<wire x1="-0.0762" y1="12.1412" x2="0.5588" y2="12.1412" width="0" layer="51"/>
<wire x1="0.5588" y1="12.1412" x2="0.5588" y2="13.2588" width="0" layer="51"/>
<wire x1="0.5588" y1="13.2588" x2="-0.0762" y2="13.2588" width="0" layer="51"/>
<wire x1="-0.0762" y1="15.7988" x2="-0.0762" y2="14.6812" width="0" layer="51"/>
<wire x1="-0.0762" y1="14.6812" x2="0.5588" y2="14.6812" width="0" layer="51"/>
<wire x1="0.5588" y1="14.6812" x2="0.5588" y2="15.7988" width="0" layer="51"/>
<wire x1="0.5588" y1="15.7988" x2="-0.0762" y2="15.7988" width="0" layer="51"/>
<wire x1="-0.0762" y1="18.3388" x2="-0.0762" y2="17.2212" width="0" layer="51"/>
<wire x1="-0.0762" y1="17.2212" x2="0.5588" y2="17.2212" width="0" layer="51"/>
<wire x1="0.5588" y1="17.2212" x2="0.5588" y2="18.3388" width="0" layer="51"/>
<wire x1="0.5588" y1="18.3388" x2="-0.0762" y2="18.3388" width="0" layer="51"/>
<wire x1="-0.0762" y1="20.8788" x2="-0.0762" y2="19.7612" width="0" layer="51"/>
<wire x1="-0.0762" y1="19.7612" x2="0.5588" y2="19.7612" width="0" layer="51"/>
<wire x1="0.5588" y1="19.7612" x2="0.5588" y2="20.8788" width="0" layer="51"/>
<wire x1="0.5588" y1="20.8788" x2="-0.0762" y2="20.8788" width="0" layer="51"/>
<wire x1="-0.0762" y1="23.4188" x2="-0.0762" y2="22.3012" width="0" layer="51"/>
<wire x1="-0.0762" y1="22.3012" x2="0.5588" y2="22.3012" width="0" layer="51"/>
<wire x1="0.5588" y1="22.3012" x2="0.5588" y2="23.4188" width="0" layer="51"/>
<wire x1="0.5588" y1="23.4188" x2="-0.0762" y2="23.4188" width="0" layer="51"/>
<wire x1="-0.0762" y1="25.9588" x2="-0.0762" y2="24.8412" width="0" layer="51"/>
<wire x1="-0.0762" y1="24.8412" x2="0.5588" y2="24.8412" width="0" layer="51"/>
<wire x1="0.5588" y1="24.8412" x2="0.5588" y2="25.9588" width="0" layer="51"/>
<wire x1="0.5588" y1="25.9588" x2="-0.0762" y2="25.9588" width="0" layer="51"/>
<wire x1="-0.0762" y1="28.4988" x2="-0.0762" y2="27.3812" width="0" layer="51"/>
<wire x1="-0.0762" y1="27.3812" x2="0.5588" y2="27.3812" width="0" layer="51"/>
<wire x1="0.5588" y1="27.3812" x2="0.5588" y2="28.4988" width="0" layer="51"/>
<wire x1="0.5588" y1="28.4988" x2="-0.0762" y2="28.4988" width="0" layer="51"/>
<wire x1="-0.0762" y1="31.0388" x2="-0.0762" y2="29.9212" width="0" layer="51"/>
<wire x1="-0.0762" y1="29.9212" x2="0.5588" y2="29.9212" width="0" layer="51"/>
<wire x1="0.5588" y1="29.9212" x2="0.5588" y2="31.0388" width="0" layer="51"/>
<wire x1="0.5588" y1="31.0388" x2="-0.0762" y2="31.0388" width="0" layer="51"/>
<wire x1="-0.0762" y1="33.5788" x2="-0.0762" y2="32.4612" width="0" layer="51"/>
<wire x1="-0.0762" y1="32.4612" x2="0.5588" y2="32.4612" width="0" layer="51"/>
<wire x1="0.5588" y1="32.4612" x2="0.5588" y2="33.5788" width="0" layer="51"/>
<wire x1="0.5588" y1="33.5788" x2="-0.0762" y2="33.5788" width="0" layer="51"/>
<wire x1="-7.5692" y1="-0.889" x2="-0.0508" y2="-0.889" width="0" layer="51"/>
<wire x1="-0.0508" y1="-0.889" x2="-0.0508" y2="33.909" width="0" layer="51"/>
<wire x1="-0.0508" y1="33.909" x2="-7.5692" y2="33.909" width="0" layer="51"/>
<wire x1="-7.5692" y1="33.909" x2="-7.5692" y2="-0.889" width="0" layer="51"/>
<text x="-7.9756" y="34.3154" size="0.8128" layer="25" ratio="10" rot="SR0">>NAME</text>
<text x="-7.5184" y="-2.159" size="0.8128" layer="27" ratio="10" rot="SR0">>VALUE</text>
<wire x1="-2.54" y1="33.9044625" x2="-5.08" y2="33.9044625" width="0.127" layer="21" curve="-180"/>
</package>
<package name="ICSP-HEADER">
<wire x1="-2.54" y1="3.048" x2="-1.778" y2="3.81" width="0.127" layer="21"/>
<wire x1="-1.778" y1="3.81" x2="1.778" y2="3.81" width="0.127" layer="21"/>
<wire x1="1.778" y1="3.81" x2="2.54" y2="3.048" width="0.127" layer="21"/>
<wire x1="2.54" y1="3.048" x2="2.54" y2="1.778" width="0.127" layer="21"/>
<wire x1="2.54" y1="1.778" x2="2.032" y2="1.27" width="0.127" layer="21"/>
<wire x1="2.032" y1="1.27" x2="2.54" y2="0.762" width="0.127" layer="21"/>
<wire x1="2.54" y1="0.762" x2="2.54" y2="-0.762" width="0.127" layer="21"/>
<wire x1="2.54" y1="-0.762" x2="2.032" y2="-1.27" width="0.127" layer="21"/>
<wire x1="2.032" y1="-1.27" x2="2.54" y2="-1.778" width="0.127" layer="21"/>
<wire x1="2.54" y1="-1.778" x2="2.54" y2="-3.048" width="0.127" layer="21"/>
<wire x1="2.54" y1="-3.048" x2="1.778" y2="-3.81" width="0.127" layer="21"/>
<wire x1="1.778" y1="-3.81" x2="-1.778" y2="-3.81" width="0.127" layer="21"/>
<wire x1="-1.778" y1="-3.81" x2="-2.54" y2="-3.048" width="0.127" layer="21"/>
<wire x1="-2.54" y1="-3.048" x2="-2.54" y2="-1.778" width="0.127" layer="21"/>
<wire x1="-2.54" y1="-1.778" x2="-2.032" y2="-1.27" width="0.127" layer="21"/>
<wire x1="-2.032" y1="-1.27" x2="-2.54" y2="-0.762" width="0.127" layer="21"/>
<wire x1="-2.54" y1="-0.762" x2="-2.54" y2="0.762" width="0.127" layer="21"/>
<wire x1="-2.54" y1="0.762" x2="-2.032" y2="1.27" width="0.127" layer="21"/>
<wire x1="-2.032" y1="1.27" x2="-2.54" y2="1.778" width="0.127" layer="21"/>
<wire x1="-2.54" y1="1.778" x2="-2.54" y2="3.048" width="0.127" layer="21"/>
<pad name="3" x="-1.27" y="0" drill="1"/>
<pad name="4" x="1.27" y="0" drill="1"/>
<pad name="2" x="1.27" y="2.54" drill="1"/>
<pad name="1" x="-1.27" y="2.54" drill="1"/>
<pad name="5" x="-1.27" y="-2.54" drill="1"/>
<pad name="6" x="1.27" y="-2.54" drill="1"/>
<text x="-2.794" y="-3.048" size="0.8128" layer="25" rot="R90">>NAME</text>
<text x="-3.048" y="3.556" size="1.016" layer="21" font="vector">1</text>
</package>
</packages>
</library>
<library name="holes">
<description>Mounting Holes and Pads

<author>Created by librarian@cadsoft.de</author></description>
<packages>
<package name="4,1">
<description>MOUNTING HOLE 4.1 mm with drill center</description>
<wire x1="-2.54" y1="0" x2="0" y2="-2.54" width="3.9116" layer="51" curve="90" cap="flat"/>
<wire x1="0" y1="2.54" x2="2.54" y2="0" width="3.9116" layer="51" curve="-90" cap="flat"/>
<circle x="0" y="0" radius="4.4958" width="0.1524" layer="21"/>
<circle x="0" y="0" radius="0.762" width="0.4572" layer="51"/>
<circle x="0" y="0" radius="3.81" width="2.54" layer="39"/>
<circle x="0" y="0" radius="3.81" width="2.54" layer="40"/>
<circle x="0" y="0" radius="3.81" width="2.54" layer="41"/>
<circle x="0" y="0" radius="3.81" width="2.54" layer="42"/>
<circle x="0" y="0" radius="3.81" width="2.54" layer="43"/>
<circle x="0" y="0" radius="2.15" width="0.1524" layer="21"/>
<hole x="0" y="0" drill="4.1"/>
</package>
</packages>
</library>
</libraries>
<attributes>
</attributes>
<variantdefs>
</variantdefs>
<classes>
<class number="0" name="default" width="0" drill="0">
</class>
<class number="1" name="power" width="0.381" drill="0">
</class>
</classes>
<designrules name="Saintgimp-OSHPark">
<description language="de">EAGLE Design Rules

Die Standard-Design-Rules sind so gewählt, dass sie für
die meisten Anwendungen passen. Sollte ihre Platine
besondere Anforderungen haben, treffen Sie die erforderlichen
Einstellungen hier und speichern die Design Rules unter
einem neuen Namen ab.</description>
<description language="en">Laen's PCB Order Design Rules

Please make sure your boards conform to these design rules.</description>
<param name="layerSetup" value="(1*16)"/>
<param name="mtCopper" value="0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm 0.0356mm"/>
<param name="mtIsolate" value="1.5011mm 0.1499mm 0.2007mm 0.1499mm 0.2007mm 0.1499mm 0.2007mm 0.1499mm 0.2007mm 0.1499mm 0.2007mm 0.1499mm 0.2007mm 0.1499mm 0.2007mm"/>
<param name="mdWireWire" value="6mil"/>
<param name="mdWirePad" value="6mil"/>
<param name="mdWireVia" value="6mil"/>
<param name="mdPadPad" value="6mil"/>
<param name="mdPadVia" value="6mil"/>
<param name="mdViaVia" value="6mil"/>
<param name="mdSmdPad" value="6mil"/>
<param name="mdSmdVia" value="6mil"/>
<param name="mdSmdSmd" value="6mil"/>
<param name="mdViaViaSameLayer" value="8mil"/>
<param name="mnLayersViaInSmd" value="2"/>
<param name="mdCopperDimension" value="15mil"/>
<param name="mdDrill" value="6mil"/>
<param name="mdSmdStop" value="0mil"/>
<param name="msWidth" value="10mil"/>
<param name="msDrill" value="13mil"/>
<param name="msMicroVia" value="13mil"/>
<param name="msBlindViaRatio" value="0.5"/>
<param name="rvPadTop" value="0.4"/>
<param name="rvPadInner" value="0.25"/>
<param name="rvPadBottom" value="0.4"/>
<param name="rvViaOuter" value="0.25"/>
<param name="rvViaInner" value="0.25"/>
<param name="rvMicroViaOuter" value="0.25"/>
<param name="rvMicroViaInner" value="0.25"/>
<param name="rlMinPadTop" value="12mil"/>
<param name="rlMaxPadTop" value="20mil"/>
<param name="rlMinPadInner" value="12mil"/>
<param name="rlMaxPadInner" value="20mil"/>
<param name="rlMinPadBottom" value="12mil"/>
<param name="rlMaxPadBottom" value="20mil"/>
<param name="rlMinViaOuter" value="7mil"/>
<param name="rlMaxViaOuter" value="20mil"/>
<param name="rlMinViaInner" value="7mil"/>
<param name="rlMaxViaInner" value="20mil"/>
<param name="rlMinMicroViaOuter" value="4mil"/>
<param name="rlMaxMicroViaOuter" value="20mil"/>
<param name="rlMinMicroViaInner" value="4mil"/>
<param name="rlMaxMicroViaInner" value="20mil"/>
<param name="psTop" value="-1"/>
<param name="psBottom" value="-1"/>
<param name="psFirst" value="-1"/>
<param name="psElongationLong" value="100"/>
<param name="psElongationOffset" value="100"/>
<param name="mvStopFrame" value="1"/>
<param name="mvCreamFrame" value="0"/>
<param name="mlMinStopFrame" value="2mil"/>
<param name="mlMaxStopFrame" value="2mil"/>
<param name="mlMinCreamFrame" value="0mil"/>
<param name="mlMaxCreamFrame" value="0mil"/>
<param name="mlViaStopLimit" value="20mil"/>
<param name="srRoundness" value="0"/>
<param name="srMinRoundness" value="0mil"/>
<param name="srMaxRoundness" value="0mil"/>
<param name="slThermalIsolate" value="10mil"/>
<param name="slThermalsForVias" value="0"/>
<param name="dpMaxLengthDifference" value="10mm"/>
<param name="dpGapFactor" value="2.5"/>
<param name="checkAngle" value="0"/>
<param name="checkFont" value="1"/>
<param name="checkRestrict" value="1"/>
<param name="checkStop" value="0"/>
<param name="checkValues" value="0"/>
<param name="checkNames" value="1"/>
<param name="checkWireStubs" value="1"/>
<param name="checkPolygonWidth" value="0"/>
<param name="useDiameter" value="13"/>
<param name="maxErrors" value="50"/>
</designrules>
<autorouter>
<pass name="Default">
<param name="RoutingGrid" value="8mil"/>
<param name="AutoGrid" value="1"/>
<param name="Efforts" value="0"/>
<param name="TopRouterVariant" value="1"/>
<param name="tpViaShape" value="round"/>
<param name="PrefDir.1" value="0"/>
<param name="PrefDir.2" value="0"/>
<param name="PrefDir.3" value="0"/>
<param name="PrefDir.4" value="0"/>
<param name="PrefDir.5" value="0"/>
<param name="PrefDir.6" value="0"/>
<param name="PrefDir.7" value="0"/>
<param name="PrefDir.8" value="0"/>
<param name="PrefDir.9" value="0"/>
<param name="PrefDir.10" value="0"/>
<param name="PrefDir.11" value="0"/>
<param name="PrefDir.12" value="0"/>
<param name="PrefDir.13" value="0"/>
<param name="PrefDir.14" value="0"/>
<param name="PrefDir.15" value="0"/>
<param name="PrefDir.16" value="-"/>
<param name="cfVia" value="8"/>
<param name="cfNonPref" value="5"/>
<param name="cfChangeDir" value="2"/>
<param name="cfOrthStep" value="2"/>
<param name="cfDiagStep" value="3"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="1"/>
<param name="cfMalusStep" value="1"/>
<param name="cfPadImpact" value="4"/>
<param name="cfSmdImpact" value="4"/>
<param name="cfBusImpact" value="0"/>
<param name="cfHugging" value="3"/>
<param name="cfAvoid" value="4"/>
<param name="cfPolygon" value="10"/>
<param name="cfBase.1" value="0"/>
<param name="cfBase.2" value="1"/>
<param name="cfBase.3" value="1"/>
<param name="cfBase.4" value="1"/>
<param name="cfBase.5" value="1"/>
<param name="cfBase.6" value="1"/>
<param name="cfBase.7" value="1"/>
<param name="cfBase.8" value="1"/>
<param name="cfBase.9" value="1"/>
<param name="cfBase.10" value="1"/>
<param name="cfBase.11" value="1"/>
<param name="cfBase.12" value="1"/>
<param name="cfBase.13" value="1"/>
<param name="cfBase.14" value="1"/>
<param name="cfBase.15" value="1"/>
<param name="cfBase.16" value="0"/>
<param name="mnVias" value="20"/>
<param name="mnSegments" value="9999"/>
<param name="mnExtdSteps" value="9999"/>
<param name="mnRipupLevel" value="10"/>
<param name="mnRipupSteps" value="100"/>
<param name="mnRipupTotal" value="100"/>
</pass>
<pass name="Follow-me" refer="Default" active="yes">
</pass>
<pass name="Busses" refer="Default" active="yes">
<param name="cfNonPref" value="4"/>
<param name="cfBusImpact" value="4"/>
<param name="cfHugging" value="0"/>
<param name="mnVias" value="0"/>
</pass>
<pass name="Route" refer="Default" active="yes">
</pass>
<pass name="Optimize1" refer="Default" active="yes">
<param name="cfVia" value="99"/>
<param name="cfExtdStep" value="10"/>
<param name="cfHugging" value="1"/>
<param name="mnExtdSteps" value="1"/>
<param name="mnRipupLevel" value="0"/>
</pass>
<pass name="Optimize2" refer="Optimize1" active="yes">
<param name="cfNonPref" value="0"/>
<param name="cfChangeDir" value="6"/>
<param name="cfExtdStep" value="0"/>
<param name="cfBonusStep" value="2"/>
<param name="cfMalusStep" value="2"/>
<param name="cfPadImpact" value="2"/>
<param name="cfSmdImpact" value="2"/>
<param name="cfHugging" value="0"/>
</pass>
<pass name="Optimize3" refer="Optimize2" active="yes">
<param name="cfChangeDir" value="8"/>
<param name="cfPadImpact" value="0"/>
<param name="cfSmdImpact" value="0"/>
</pass>
<pass name="Optimize4" refer="Optimize3" active="yes">
<param name="cfChangeDir" value="25"/>
</pass>
</autorouter>
<elements>
<element name="24VIN" library="SaintGimp" package="1X02-BIG" value="PINHD-1X2BIG" x="7.62" y="15.24" smashed="yes" rot="R270">
<attribute name="VALUE" x="4.9951625" y="17.78" size="0.8128" layer="27" rot="R270"/>
</element>
<element name="24VOUT" library="SaintGimp" package="1X02-BIG" value="PINHD-1X2BIG" x="81.28" y="34.29" smashed="yes" rot="R90">
<attribute name="VALUE" x="83.9048375" y="31.75" size="0.8128" layer="27" rot="R90"/>
</element>
<element name="RAMP" library="SaintGimp" package="1X03-BIG" value="PINHD-1X3BIG" x="7.62" y="39.37" smashed="yes" rot="R90">
<attribute name="VALUE" x="10.2448375" y="35.56" size="0.8128" layer="27" rot="R90"/>
</element>
<element name="FRONT" library="SaintGimp" package="1X07-BIG" value="PINHD-1X7BIG" x="20.32" y="46.99" smashed="yes" rot="R180">
<attribute name="VALUE" x="26.67" y="49.6148375" size="0.8128" layer="27" rot="R180"/>
</element>
<element name="C11" library="SaintGimp" package="CAP-POL-25-14" value="1000uF" x="80.01" y="10.16" smashed="yes" rot="R270">
<attribute name="NAME" x="79.248" y="28.321" size="0.8128" layer="25" ratio="10"/>
<attribute name="VALUE" x="76.8858" y="14.9606" size="0.8128" layer="27" ratio="10" rot="R270"/>
</element>
<element name="F1" library="SaintGimp" package="FUSE_HOLDER_5X20MM" value="4A" x="12.7" y="6.35" smashed="yes">
<attribute name="NAME" x="10.668" y="7.62" size="0.8128" layer="25"/>
<attribute name="VALUE" x="10.668" y="4.318" size="0.8128" layer="27"/>
</element>
<element name="Q1" library="SaintGimp" package="TO220BH-NO-HOLE" value="BT137-600E" x="

license: MIT

repository: SaintGimp/MotorController

license_type: permissive

repo_name: SaintGimp/MotorController

branch_name: refs/heads/master

extension: brd