diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index ba5fb73..2c7aacb 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -33,23 +33,4 @@ jobs: -print0 | sort -z | xargs -t0L1 -I {} python {} --3d - name: Check for diffs in UUID caches run: git diff --exit-code - - name: Check for stale entries in UUID caches - run: | - stat --format="%s %n" *.csv | sort -k2 > sizes_before.txt - find . -maxdepth 1 -name '*.csv' \ - -not -name 'uuid_cache_stm_mcu.csv' \ - -not -name 'uuid_cache_connectors.csv' \ - -not -name 'uuid_cache_dfn.csv' \ - -not -name 'uuid_cache_dip.csv' \ - -not -name 'uuid_cache_so.csv' \ - -delete - find . -maxdepth 1 -name 'generate_*.py' \ - -not -name 'generate_stm_mcu.py' \ - -not -name 'generate_modules.py' \ - -not -name 'generate_connectors.py' \ - -not -name 'generate_dfn.py' \ - -not -name 'generate_dip.py' \ - -not -name 'generate_so.py' \ - -print0 | sort -z | xargs -t0L1 python - stat --format="%s %n" *.csv | sort -k2 > sizes_after.txt - diff sizes_before.txt sizes_after.txt + diff --git a/README.md b/README.md index 5619669..0561bdb 100644 --- a/README.md +++ b/README.md @@ -86,19 +86,16 @@ entities are fully type annotated, you even benefit from type checking using ### UUID Caching -In every generator script, you should first initialize the UUID cache: +In every generator script, you should cache UUID entries: ```python -from common import init_cache, save_cache +from common import UuidCache # Initialize UUID cache, load any pre-existing entries -uuid_cache_file = 'uuid_cache_chip.csv' -uuid_cache = init_cache(uuid_cache_file) +with UuidCache('uuid_cache_chip.csv'): + # package generation ``` -The cache is a simple in-memory dictionary. The `init_cache` function will load -any pre-existing cache entries from the file system. - Every generated UUID should have its own stable lookup key. Depending on the script, a wrapper function that generates missing UUIDs on the fly might make sense: @@ -116,12 +113,7 @@ def uuid(category: str, full_name: str, identifier: str, create: bool = True) -> identifier: For example 'pad-1' or 'pin-13'. """ - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - if not create: - raise ValueError('Unknown UUID: {}'.format(key)) - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] + return uuid_cache.get(category, full_name, identifier) pad_uuids = [ uuid('pkg', 'RESC3216X65', 'pad-1'), @@ -129,14 +121,8 @@ pad_uuids = [ ] ``` -At the end of the generator script, all cached UUIDs should be persisted to the -file system. - -```python -# Persist the cache to the file system -save_cache(uuid_cache_file, uuid_cache) -``` - +At the end of the generator script, all cached UUIDs will be persisted to the +file system automatically. ## Testing diff --git a/common.py b/common.py index 6c6429d..0f29a6e 100644 --- a/common.py +++ b/common.py @@ -4,33 +4,85 @@ import collections import csv +import math import re from datetime import datetime from os import path - -from typing import Any, Dict, List, OrderedDict, Union - - -def init_cache(uuid_cache_file: str) -> Dict[str, str]: - print('Loading cache: {}'.format(uuid_cache_file)) - uuid_cache: OrderedDict[str, str] = collections.OrderedDict() - try: - with open(uuid_cache_file, 'r') as f: - reader = csv.reader(f, delimiter=',', quotechar='"') - for row in reader: - uuid_cache[row[0]] = row[1] - except FileNotFoundError: - pass - return uuid_cache - - -def save_cache(uuid_cache_file: str, uuid_cache: Dict[str, str]) -> None: - print('Saving cache: {}'.format(uuid_cache_file)) - with open(uuid_cache_file, 'w') as f: - writer = csv.writer(f, delimiter=',', quotechar='"', lineterminator='\n') - for k, v in sorted(uuid_cache.items()): - writer.writerow([k, v]) - print('Done, cached {} UUIDs'.format(len(uuid_cache))) +from uuid import uuid4 + +from typing import Any, Dict, Generator, List, Literal, OrderedDict, Union + +from entities.common import Angle, Fill, GrabArea, Layer, Polygon, Position, Vertex, Width + + +class SubCache: + def __init__(self, base: Union['UuidCache', 'SubCache'], *prefixes: Any): + self.base = base + self.prefixes = prefixes + + def get(self, *args: Any) -> str: + return self.base.get(*self.prefixes, *args) + + def sub_cache(self, *prefixes: Any) -> 'SubCache': + return SubCache(self, prefixes) + + +class UuidCache: + def __init__(self, filename: str, stale_check: bool = True): + self.filename = filename + self.used_keys: set[str] = set() + self.entered = False + self.stale_check = stale_check + + self.data: OrderedDict[str, str] = collections.OrderedDict() + print(f'Loading cache: {filename}') + try: + with open(self.filename, 'r') as f: + reader = csv.reader(f, delimiter=',', quotechar='"') + for row in reader: + self.data[row[0]] = row[1] + except FileNotFoundError: + print('Cache file {filename} not found, building new cache') + print(f'Cache has {len(self.data)} entries') + + def __enter__(self) -> 'UuidCache': + self.used_keys = set() + self.entered = True + return self + + def __exit__(self, exception: Any, value: Any, traceback: Any) -> None: + if not exception and self.entered: + self.check_stale() + self.save_cache() + + def save_cache(self) -> None: + print(f'Saving cache: {self.filename}') + with open(self.filename, 'w') as f: + writer = csv.writer(f, delimiter=',', quotechar='"', lineterminator='\n') + for k, v in sorted(self.data.items()): + writer.writerow([k, v]) + print(f'Done, cached {len(self.data)} UUIDs') + + def get(self, *args: Any, create: bool = True) -> str: + key = '-'.join(str(a).lower().replace(' ', '~') for a in args) + if key not in self.data: + if self.entered and create: + self.data[key] = str(uuid4()) + else: + raise KeyError( + f'{key} not found in uuid cache. Entering the context is required for auto-generation' + ) + self.used_keys.add(key) + return self.data[key] + + def check_stale(self) -> None: + if self.stale_check: + stale_keys = {key for key in self.data if key not in self.used_keys} + if stale_keys: + raise RuntimeError(f'There are stale UUIDs in the cache: {stale_keys}') + + def sub_cache(self, *prefixes: Any) -> SubCache: + return SubCache(self, *prefixes) def now() -> str: @@ -93,3 +145,80 @@ def _convert(text: str) -> Union[int, str]: return int(text) if text.isdigit() else text return [_convert(x) for x in re.split(r'(\d+)', key) if x] + + +def make_border_rectangle( + left: float, + right: float, + top: float, + bottom: float, + width: float, + direction: Literal['inner', 'outer', 'center'], +) -> list[Vertex]: + w = ( + width + / 2 + * { + 'inner': -1.0, + 'center': 0.0, + 'outer': +1.0, + }[direction] + ) + line_l = left - w + line_r = right + w + line_t = top + w + line_b = bottom - w + + return [ + Vertex(Position(x, y), Angle(0)) + for x, y in [ + (line_l, line_t), + (line_l, line_b), + (line_r, line_b), + (line_r, line_t), + (line_l, line_t), + ] + ] + + +def grid_solderpaste( + uuid_cache: SubCache, + x_min: float, + x_max: float, + y_min: float, + y_max: float, + max_drop_size: float = 1.00, +) -> Generator[Polygon, None, None]: + # SLUA271c suggests 1x1mm solder drops + fill_factor = 0.80 # approximated from default pad filling + num_x = math.ceil((x_max - x_min) / max_drop_size) + num_y = math.ceil((y_max - y_min) / max_drop_size) + pitch_x = (x_max - x_min) / num_x + pitch_y = (y_max - y_min) / num_y + size_x = pitch_x * fill_factor + size_y = pitch_y * fill_factor + print(f' {num_x} {num_y}') + print(f' {pitch_x} {pitch_y}') + + for ix in range(num_x): + for iy in range(num_y): + center_x = pitch_x * (ix - num_x / 2 + 0.5) + center_y = pitch_y * (iy - num_y / 2 + 0.5) + print(f' {ix} {iy} {center_x} {center_y}') + yield Polygon( + uuid=uuid_cache.get('solderpaste', ix, iy), + layer=Layer('top_solder_paste'), + width=Width(0), + fill=Fill(True), + grab_area=GrabArea(False), + vertices=[ + Vertex(Position(x, y), Angle(0)) + for x, y in [ + (center_x - size_x / 2, center_y - size_y / 2), + (center_x - size_x / 2, center_y + size_y / 2), + (center_x + size_x / 2, center_y + size_y / 2), + (center_x + size_x / 2, center_y - size_y / 2), + (center_x - size_x / 2, center_y - size_y / 2), + ] + ], + ) diff --git a/generate_axial_tht.py b/generate_axial_tht.py index 648e9d6..dc974b6 100644 --- a/generate_axial_tht.py +++ b/generate_axial_tht.py @@ -8,11 +8,10 @@ import sys from math import acos, asin, pi, sqrt from os import path -from uuid import uuid4 from typing import Iterable, List, Optional, Tuple -from common import init_cache, now, save_cache +from common import UuidCache, now from entities.common import ( Align, Angle, @@ -73,16 +72,7 @@ courtyard_excess = 0.4 -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_axial_tht.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, full_name: str, identifier: str) -> str: - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_axial_tht.csv') def calculate_pad_hole_diameter(max_leg_diameter: float) -> float: @@ -157,7 +147,7 @@ def generate_pkg( ) def _uuid(identifier: str) -> str: - return uuid('pkg', pkg_identifier, identifier) + return uuid_cache.get('pkg', pkg_identifier, identifier) uuid_pkg = _uuid('pkg') @@ -759,7 +749,7 @@ def generate_3d( assembly.save(out_path, fused=True) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -1036,4 +1026,7 @@ def generate_3d( generate_3d_models=generate_3d_models, ) - save_cache(uuid_cache_file, uuid_cache) + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_capacitor_radial_tht.py b/generate_capacitor_radial_tht.py index 5885eed..f8561ff 100644 --- a/generate_capacitor_radial_tht.py +++ b/generate_capacitor_radial_tht.py @@ -4,11 +4,10 @@ import sys from os import path -from uuid import uuid4 from typing import Any, Optional -from common import format_ipc_dimension, init_cache, now, save_cache +from common import UuidCache, format_ipc_dimension, now from entities.common import ( Align, Angle, @@ -76,27 +75,7 @@ 0.8: 1.0, } -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_capacitors_radial_tht.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, full_name: str, identifier: str) -> str: - """ - Return a uuid for the specified element. - - Params: - category: - For example 'cmp' or 'pkg'. - full_name: - For example "SOIC127P762X120-16". - identifier: - For example 'pad-1' or 'pin-13'. - """ - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_capacitors_radial_tht.csv') def get_variant( @@ -130,7 +109,7 @@ def generate_pkg( variant = get_variant(diameter, height, pitch, lead_width) def _pkg_uuid(identifier: str) -> str: - return uuid('pkg', variant, identifier) + return uuid_cache.get('pkg', variant, identifier) def _create_footprint(footprint_identifier: str, name: str) -> Footprint: def _fpt_uuid(identifier: str) -> str: @@ -456,7 +435,7 @@ def generate_dev( variant = get_variant(diameter, height, pitch, lead_width) def _uuid(identifier: str) -> str: - return uuid('dev', variant, identifier) + return uuid_cache.get('dev', variant, identifier) device = Device( uuid=_uuid('dev'), @@ -477,17 +456,17 @@ def _uuid(identifier: str) -> str: generated_by=GeneratedBy(''), categories=[Category('c011cc6b-b762-498e-8494-d1994f3043cf')], component_uuid=ComponentUUID('c54375c5-7149-4ded-95c5-7462f7301ee7'), - package_uuid=PackageUUID(uuid('pkg', variant, 'pkg')), + package_uuid=PackageUUID(uuid_cache.get('pkg', variant, 'pkg')), ) device.add_pad( ComponentPad( - pad_uuid=uuid('pkg', variant, 'pad-plus'), + pad_uuid=uuid_cache.get('pkg', variant, 'pad-plus'), signal=SignalUUID('e010ecbb-6210-4da3-9270-ebd58656dbf0'), ) ) device.add_pad( ComponentPad( - pad_uuid=uuid('pkg', variant, 'pad-minus'), + pad_uuid=uuid_cache.get('pkg', variant, 'pad-minus'), signal=SignalUUID('af3ffca8-0085-4edb-a775-fcb759f63411'), ) ) @@ -500,7 +479,7 @@ def _uuid(identifier: str) -> str: print('Wrote device {}'.format(name)) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -564,4 +543,7 @@ def _uuid(identifier: str) -> str: create_date='2019-12-29T14:14:11Z', ) - save_cache(uuid_cache_file, uuid_cache) + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_chip.py b/generate_chip.py index 7108c27..8e5a9b4 100644 --- a/generate_chip.py +++ b/generate_chip.py @@ -8,12 +8,11 @@ import sys from os import path -from uuid import uuid4 from typing import Dict, Iterable, Optional, Tuple +from common import UuidCache, now from common import format_ipc_dimension as fd -from common import init_cache, now, save_cache from entities.common import ( Align, Angle, @@ -104,29 +103,7 @@ def get_by_density(length: float, level: str, key: str) -> float: return table[level][key] -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_chip.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, full_name: str, identifier: str, create: bool = True) -> str: - """ - Return a uuid for the specified pin. - - Params: - category: - For example 'cmp' or 'pkg'. - full_name: - For example "RESC3216X65". - identifier: - For example 'pad-1' or 'pin-13'. - """ - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - if not create: - raise ValueError('Unknown UUID: {}'.format(key)) - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_chip.csv') class BodyDimensions: @@ -274,7 +251,7 @@ def generate_pkg( ) def _uuid(identifier: str) -> str: - return uuid(category, full_name, identifier) + return uuid_cache.get(category, full_name, identifier) # UUIDs uuid_pkg = _uuid('pkg') @@ -709,7 +686,7 @@ def add_footprint_variant( # Generate 3D models (for certain package types) if package_type in ['RESC', 'CAPC', 'CAPPM', 'INDC']: - uuid_3d = uuid('pkg', full_name, '3d') + uuid_3d = uuid_cache.get('pkg', full_name, '3d') if generate_3d_models: generate_3d(library, package_type, full_name, uuid_pkg, uuid_3d, config) package.add_3d_model(Package3DModel(uuid_3d, Name(full_name))) @@ -874,13 +851,14 @@ def generate_dev( full_keywords = '{},{},{}'.format(size_metric, size_imperial, keywords) def _uuid(identifier: str) -> str: - return uuid(category, full_name, identifier) + return uuid_cache.get(category, full_name, identifier) # UUIDs uuid_dev = _uuid('dev') - pkg = uuid('pkg', pkg_name, 'pkg', create=False) + pkg = uuid_cache.get('pkg', pkg_name, 'pkg', create=False) pads = [ - uuid('pkg', pkg_name, 'pad-{}'.format(i), create=False) for i in (pad_ids or ['1', '2']) + uuid_cache.get('pkg', pkg_name, 'pad-{}'.format(i), create=False) + for i in (pad_ids or ['1', '2']) ] print('Generating dev "{}": {}'.format(full_name, uuid_dev)) @@ -909,7 +887,7 @@ def _uuid(identifier: str) -> str: device.serialize(path.join('out', library, category)) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -1288,4 +1266,8 @@ def _uuid(identifier: str) -> str: create_date='2025-01-26T09:18:09Z', pad_ids=['p', 'n'], ) - save_cache(uuid_cache_file, uuid_cache) + + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_connectors.py b/generate_connectors.py index 9b37d56..113bf16 100644 --- a/generate_connectors.py +++ b/generate_connectors.py @@ -17,11 +17,10 @@ import sys from functools import partial from os import makedirs, path -from uuid import uuid4 from typing import Callable, Iterable, Optional, Tuple -from common import init_cache, now, save_cache +from common import UuidCache, now from entities.common import ( Align, Angle, @@ -117,29 +116,7 @@ KIND_SCREW_TERMINAL = 'screwterminal' -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_connectors.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, kind: str, variant: str, identifier: str) -> str: - """ - Return a uuid for the specified pin. - - Params: - category: - For example 'cmp' or 'pkg'. - kind: - For example 'pinheader' or 'pinsocket'. - variant: - For example '1x5-D1.1' or '1x13'. - identifier: - For example 'pad-1' or 'pin-13'. - """ - key = '{}-{}-{}-{}'.format(category, kind, variant, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_connectors.csv', stale_check=False) def get_y(pin_number: int, pin_count: int, rows: int, spacing: float, grid_align: bool) -> float: @@ -214,7 +191,7 @@ def generate_pkg( variant = f'{rows}x{per_row}-D{drill:.1f}' def _uuid(identifier: str) -> str: - return uuid(category, kind, variant, identifier) + return uuid_cache.get(category, kind, variant, identifier) uuid_pkg = _uuid('pkg') uuid_pads = [_uuid('pad-{}'.format(p)) for p in range(i)] @@ -401,7 +378,7 @@ def generate_silkscreen_female( pin_count: int, rows: int, ) -> Polygon: - uuid_polygon = uuid(category, kind, variant, 'polygon-contour') + uuid_polygon = uuid_cache.get(category, kind, variant, 'polygon-contour') x = 1.27 * rows + line_width / 2 top_offset = spacing / 2 + line_width / 2 @@ -431,7 +408,7 @@ def generate_silkscreen_male( pin_count: int, rows: int, ) -> Polygon: - uuid_polygon = uuid(category, kind, variant, 'polygon-contour') + uuid_polygon = uuid_cache.get(category, kind, variant, 'polygon-contour') per_row = pin_count // rows x_outer = 1.27 * rows + line_width / 2 @@ -577,7 +554,7 @@ def generate_sym( variant = '{}x{}'.format(rows, per_row) def _uuid(identifier: str) -> str: - return uuid(category, kind, variant, identifier) + return uuid_cache.get(category, kind, variant, identifier) uuid_sym = _uuid('sym') uuid_pins = [_uuid('pin-{}'.format(p)) for p in range(i)] @@ -762,14 +739,14 @@ def generate_cmp( variant = '{}x{}'.format(rows, per_row) def _uuid(identifier: str) -> str: - return uuid(category, kind, variant, identifier) + return uuid_cache.get(category, kind, variant, identifier) uuid_cmp = _uuid('cmp') - uuid_pins = [uuid('sym', kind, variant, 'pin-{}'.format(p)) for p in range(i)] + uuid_pins = [uuid_cache.get('sym', kind, variant, 'pin-{}'.format(p)) for p in range(i)] uuid_signals = [_uuid('signal-{}'.format(p)) for p in range(i)] uuid_variant = _uuid('variant-default') uuid_gate = _uuid('gate-default') - uuid_symbol = uuid('sym', kind, variant, 'sym') + uuid_symbol = uuid_cache.get('sym', kind, variant, 'sym') # General info component = Component( @@ -858,15 +835,15 @@ def generate_dev( broad_variant = '{}x{}'.format(rows, per_row) def _uuid(identifier: str) -> str: - return uuid(category, kind, variant, identifier) + return uuid_cache.get(category, kind, variant, identifier) uuid_dev = _uuid('dev') - uuid_cmp = uuid('cmp', kind, broad_variant, 'cmp') + uuid_cmp = uuid_cache.get('cmp', kind, broad_variant, 'cmp') uuid_signals = [ - uuid('cmp', kind, broad_variant, 'signal-{}'.format(p)) for p in range(i) + uuid_cache.get('cmp', kind, broad_variant, 'signal-{}'.format(p)) for p in range(i) ] - uuid_pkg = uuid('pkg', kind, variant, 'pkg') - uuid_pads = [uuid('pkg', kind, variant, 'pad-{}'.format(p)) for p in range(i)] + uuid_pkg = uuid_cache.get('pkg', kind, variant, 'pkg') + uuid_pads = [uuid_cache.get('pkg', kind, variant, 'pad-{}'.format(p)) for p in range(i)] # General info lines.append('(librepcb_device {}'.format(uuid_dev)) @@ -910,7 +887,7 @@ def _uuid(identifier: str) -> str: ) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -1272,4 +1249,7 @@ def _uuid(identifier: str) -> str: create_date='2018-10-17T19:13:41Z', ) - save_cache(uuid_cache_file, uuid_cache) + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_dfn.py b/generate_dfn.py index 2d2ba4a..641bcfb 100644 --- a/generate_dfn.py +++ b/generate_dfn.py @@ -5,12 +5,11 @@ import sys from os import path -from uuid import uuid4 from typing import List, Optional +from common import UuidCache, now from common import format_ipc_dimension as fd -from common import init_cache, now, save_cache from dfn_configs import JEDEC_CONFIGS, THIRD_CONFIGS, DfnConfig from entities.common import ( Align, @@ -77,27 +76,7 @@ MIN_TRACE = 0.10 -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_dfn.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, full_name: str, identifier: str) -> str: - """ - Return a uuid for the specified pin. - - Params: - category: - For example 'cmp' or 'pkg'. - full_name: - For example "SOIC127P762X120-16". - identifier: - For example 'pad-1' or 'pin-13'. - """ - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_dfn.csv', stale_check=False) def get_y(pin_number: int, pin_count: int, spacing: float) -> float: @@ -170,7 +149,7 @@ def generate_pkg( full_keywords = 'dfn{},{}'.format(config.pin_count, keywords) def _uuid(identifier: str) -> str: - return uuid(category, full_name, identifier) + return uuid_cache.get(category, full_name, identifier) uuid_pkg = _uuid('pkg') uuid_pads = [_uuid('pad-{}'.format(p)) for p in range(1, config.pin_count + 1)] @@ -642,7 +621,7 @@ def generate_3d( assembly.save(out_path, fused=False) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -720,4 +699,7 @@ def generate_3d( else: print('Duplicate name found: {}'.format(name)) - save_cache(uuid_cache_file, uuid_cache) + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_dip.py b/generate_dip.py index 52f4b44..ddb62fa 100644 --- a/generate_dip.py +++ b/generate_dip.py @@ -159,12 +159,11 @@ """ from os import path -from uuid import uuid4 from typing import Iterable, Optional, Tuple +from common import UuidCache, now from common import format_ipc_dimension as ipc -from common import init_cache, now, save_cache from entities.common import ( Align, Angle, @@ -231,29 +230,7 @@ courtyard_excess = 0.4 -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_dip.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, width: str, variant: str, identifier: str) -> str: - """ - Return a uuid for the specified pin. - - Params: - category: - For example 'cmp' or 'pkg'. - width: - For example "7.62" or "15.24". - variant: - For example '8' or '28'. - identifier: - For example 'pad-1' or 'pin-13'. - """ - key = '{}-{}-{}-{}'.format(category, width, variant, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_dip.csv', stale_check=False) def get_y(pin_number: int, pin_count: int, spacing: float, grid_align: bool) -> float: @@ -306,7 +283,7 @@ def generate_pkg( def _uuid(identifier: str) -> str: width = '{:.2f}'.format(config.lead_span) - return uuid(category, width, variant, identifier) + return uuid_cache.get(category, width, variant, identifier) uuid_pkg = _uuid('pkg') uuid_pads = [_uuid('pad-{}'.format(p)) for p in range(1, pin_count + 1)] @@ -602,7 +579,7 @@ def add_footprint_variant( print('{}: Wrote package {}'.format(ipc_name, uuid_pkg)) -if __name__ == '__main__': +def main() -> None: generate_pkg( library='LibrePCB_Base.lplib', author='Danilo B.', @@ -637,4 +614,8 @@ def add_footprint_variant( create_date='2018-11-04T23:13:00Z', version='0.2', ) - save_cache(uuid_cache_file, uuid_cache) + + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_dip_switches.py b/generate_dip_switches.py index f235694..b743b05 100644 --- a/generate_dip_switches.py +++ b/generate_dip_switches.py @@ -4,11 +4,10 @@ import sys from os import path -from uuid import uuid4 from typing import List, Optional, Tuple, Union -from common import init_cache, now, save_cache +from common import UuidCache, now from entities.attribute import Attribute, AttributeType from entities.common import ( Align, @@ -92,19 +91,10 @@ generator = 'librepcb-parts-generator (generate_dip_switches.py)' -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_dip_switches.csv' -uuid_cache = init_cache(uuid_cache_file) +uuid_cache = UuidCache('uuid_cache_dip_switches.csv') -def uuid(category: str, full_name: str, identifier: str) -> str: - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] - - -def get_y(pin_index: int, circuits: int, pitch: float) -> float: +def get_y(family: 'Family', pin_index: int, circuits: int, pitch: float) -> float: y0 = (circuits - 1) * pitch / 2 dy = y0 - family.lead_config.pitch_y * (pin_index % circuits) if pin_index < circuits: @@ -223,7 +213,7 @@ def __init__( def uuid_key(self, family: Family) -> str: return ( - '{}-{}'.format(family.pkg_name_prefix, model.name) + '{}-{}'.format(family.pkg_name_prefix, self.name) .lower() .replace(' ', '') .replace(',', 'p') @@ -231,7 +221,7 @@ def uuid_key(self, family: Family) -> str: def get_description(self, family: Family) -> str: s = f'{self.circuits}x DIP switch from {family.manufacturer}.' - s += f'\n\nBody Size: {family.body_size_x:.2f} x {model.body_size_y:.2f} mm' + s += f'\n\nBody Size: {family.body_size_x:.2f} x {self.body_size_y:.2f} mm' if isinstance(family.lead_config, ThtLeadConfig): s += f'\nPitch: {family.lead_config.pitch_x:.2f} x {family.lead_config.pitch_y:.2f} mm' if isinstance(family.lead_config, GullWingLeadConfig): @@ -267,7 +257,7 @@ def generate_sym( full_name = name.format(circuits=circuits, variant=variant) def _uuid(identifier: str) -> str: - return uuid('sym', f'{variant.id}-{circuits:02}', identifier) + return uuid_cache.get('sym', f'{variant.id}-{circuits:02}', identifier) uuid_sym = _uuid('sym') @@ -456,7 +446,7 @@ def generate_cmp( full_name = name.format(circuits=circuits) def _uuid(identifier: str) -> str: - return uuid('cmp', f'{circuits:02}', identifier) + return uuid_cache.get('cmp', f'{circuits:02}', identifier) uuid_cmp = _uuid('cmp') @@ -500,7 +490,7 @@ def _uuid(identifier: str) -> str: for variant in [VARIANT_EU, VARIANT_US]: gate = Gate( _uuid(f'combined-{variant.id}-gate'), - SymbolUUID(uuid_cache[f'sym-{variant.id}-{circuits:02}-sym']), + SymbolUUID(uuid_cache.get(f'sym-{variant.id}-{circuits:02}-sym')), Position(0, 0), Rotation(0), Required(True), @@ -508,8 +498,10 @@ def _uuid(identifier: str) -> str: ) for circuit in range(1, circuits + 1): for letter in ['a', 'b']: - pin_uuid = uuid_cache[f'sym-{variant.id}-{circuits:02}-pin-{circuit:02}{letter}'] - sig_uuid = uuid_cache[f'cmp-{circuits:02}-signal-{circuit:02}{letter}'] + pin_uuid = uuid_cache.get( + f'sym-{variant.id}-{circuits:02}-pin-{circuit:02}{letter}' + ) + sig_uuid = uuid_cache.get(f'cmp-{circuits:02}-signal-{circuit:02}{letter}') display_number = (circuits > 1) and (letter == 'a') gate.add_pin_signal_map( PinSignalMap( @@ -543,15 +535,15 @@ def _uuid(identifier: str) -> str: for circuit in range(1, circuits + 1): gate = Gate( _uuid(f'split-{variant.id}-gate-{circuit:02}'), - SymbolUUID(uuid_cache[f'sym-{variant.id}-01-sym']), + SymbolUUID(uuid_cache.get(f'sym-{variant.id}-01-sym')), Position(0, y0 - (circuit - 1) * spacing), Rotation(0), Required(True), Suffix(str(circuit)), ) for letter in ['a', 'b']: - pin_uuid = uuid_cache[f'sym-{variant.id}-01-pin-01{letter}'] - sig_uuid = uuid_cache[f'cmp-{circuits:02}-signal-{circuit:02}{letter}'] + pin_uuid = uuid_cache.get(f'sym-{variant.id}-01-pin-01{letter}') + sig_uuid = uuid_cache.get(f'cmp-{circuits:02}-signal-{circuit:02}{letter}') gate.add_pin_signal_map( PinSignalMap( pin_uuid, @@ -576,7 +568,7 @@ def generate_pkg( full_name = family.pkg_name_prefix + '_' + model.name.replace(' ', '_') def _uuid(identifier: str) -> str: - return uuid('pkg', model.uuid_key(family), identifier) + return uuid_cache.get('pkg', model.uuid_key(family), identifier) uuid_pkg = _uuid('pkg') @@ -617,7 +609,7 @@ def _uuid(identifier: str) -> str: package.add_pad(PackagePad(uuid=uuid_pkg_pad, name=Name(str(i + 1)))) uuid_fpt_pad = _uuid('default-pad-{}'.format(i + 1)) x = (family.lead_config.pitch_x / 2) * (-1 if (i < model.circuits) else 1) - y = get_y(i, model.circuits, family.lead_config.pitch_y) + y = get_y(family, i, model.circuits, family.lead_config.pitch_y) if isinstance(family.lead_config, ThtLeadConfig): footprint.add_pad( FootprintPad( @@ -719,7 +711,7 @@ def _uuid(identifier: str) -> str: text_x += family.lead_config.pad_size_x / 2 text_x = (text_x + (-window_dx - (line_width / 2))) / 2 for circuit in range(model.circuits): - y = get_y(circuit, model.circuits, family.lead_config.pitch_y) + y = get_y(family, circuit, model.circuits, family.lead_config.pitch_y) footprint.add_polygon( Polygon( uuid=_uuid(f'default-polygon-documentation-window-{circuit}'), @@ -773,7 +765,7 @@ def _uuid(identifier: str) -> str: dx = (family.body_size_x / 2) + (line_width / 2) dx_pin1 = (family.lead_config.pitch_x / 2) - (line_width / 2) dy = (model.body_size_y / 2) + (line_width / 2) - dy_inner = get_y(0, model.circuits, family.lead_config.pitch_y) + dy_inner = get_y(family, 0, model.circuits, family.lead_config.pitch_y) if isinstance(family.lead_config, ThtLeadConfig): dx_pin1 += family.lead_config.pad_diameter / 2 dy_inner += (family.lead_config.pad_diameter / 2) + (line_width / 2) + 0.15 @@ -813,7 +805,9 @@ def _uuid(identifier: str) -> str: Vertex(Position(right, top), Angle(0)), ] for i in range(model.circuits): - y = get_y(model.circuits * 2 - i - 1, model.circuits, family.lead_config.pitch_y) + y = get_y( + family, model.circuits * 2 - i - 1, model.circuits, family.lead_config.pitch_y + ) outline_vertices += [ Vertex(Position(right, y + leads_dy), Angle(0)), Vertex(Position(right_leads, y + leads_dy), Angle(0)), @@ -825,7 +819,7 @@ def _uuid(identifier: str) -> str: Vertex(Position(left, bottom), Angle(0)), ] for i in range(model.circuits): - y = get_y(model.circuits - i - 1, model.circuits, family.lead_config.pitch_y) + y = get_y(family, model.circuits - i - 1, model.circuits, family.lead_config.pitch_y) outline_vertices += [ Vertex(Position(left, y - leads_dy), Angle(0)), Vertex(Position(left_leads, y - leads_dy), Angle(0)), @@ -858,7 +852,7 @@ def _uuid(identifier: str) -> str: right = -left if isinstance(family.lead_config, GullWingLeadConfig): top_leads = ( - get_y(0, model.circuits, family.lead_config.pitch_y) + get_y(family, 0, model.circuits, family.lead_config.pitch_y) + (family.lead_config.width / 2) + courtyard_excess ) @@ -969,7 +963,7 @@ def generate_3d_model( .fillet(0.2) ) for i in range(model.circuits): - y = get_y(i, model.circuits, family.lead_config.pitch_y) + y = get_y(family, i, model.circuits, family.lead_config.pitch_y) body = body.workplane(origin=(0, y), offset=family.body_size_z / 2).box( family.window_size[0], family.window_size[1], @@ -1064,14 +1058,20 @@ def generate_3d_model( 'lead-{}'.format(i + 1), StepColor.LEAD_SMT, location=cq.Location( - (lead_xz[0], get_y(i, model.circuits, family.lead_config.pitch_y), lead_xz[1]) + ( + lead_xz[0], + get_y(family, i, model.circuits, family.lead_config.pitch_y), + lead_xz[1], + ) ), ) assembly.add_body( actuator, 'actuator-{}'.format(i + 1), cq.Color(family.actuator_color), - location=cq.Location((0, get_y(i, model.circuits, family.lead_config.pitch_y), 0)), + location=cq.Location( + (0, get_y(family, i, model.circuits, family.lead_config.pitch_y), 0) + ), ) # Save without fusing for massively better minification! @@ -1090,7 +1090,7 @@ def generate_dev( full_name = f'{family.dev_name_prefix} {model.name}' def _uuid(identifier: str) -> str: - return uuid('dev', model.uuid_key(family), identifier) + return uuid_cache.get('dev', model.uuid_key(family), identifier) uuid_dev = _uuid('dev') @@ -1107,15 +1107,15 @@ def _uuid(identifier: str) -> str: deprecated=Deprecated(False), generated_by=GeneratedBy(''), categories=[Category('e29f0cb3-ef6d-4203-b854-d75150cbae0b')], - component_uuid=ComponentUUID(uuid_cache[f'cmp-{model.circuits:02}-cmp']), - package_uuid=PackageUUID(uuid_cache['pkg-' + model.uuid_key(family) + '-pkg']), + component_uuid=ComponentUUID(uuid_cache.get(f'cmp-{model.circuits:02}-cmp')), + package_uuid=PackageUUID(uuid_cache.get('pkg-' + model.uuid_key(family) + '-pkg')), ) for pad in range(1, (model.circuits * 2) + 1): circuit = pad if (pad <= model.circuits) else ((model.circuits * 2) + 1 - pad) letter = 'a' if (pad <= model.circuits) else 'b' - signal_uuid = uuid_cache[f'cmp-{model.circuits:02}-signal-{circuit:02}{letter}'] - pad_uuid = uuid_cache[f'pkg-{model.uuid_key(family)}-pad-{pad}'] + signal_uuid = uuid_cache.get(f'cmp-{model.circuits:02}-signal-{circuit:02}{letter}') + pad_uuid = uuid_cache.get(f'pkg-{model.uuid_key(family)}-pad-{pad}') device.add_pad(ComponentPad(pad_uuid, SignalUUID(signal_uuid))) for part in model.parts: @@ -1134,7 +1134,7 @@ def _uuid(identifier: str) -> str: device.serialize(path.join('out', library, 'dev')) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -1302,4 +1302,7 @@ def _uuid(identifier: str) -> str: model=model, ) - save_cache(uuid_cache_file, uuid_cache) + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_do.py b/generate_do.py index cadcc75..0016f41 100644 --- a/generate_do.py +++ b/generate_do.py @@ -7,12 +7,11 @@ import sys from os import path -from uuid import uuid4 from typing import Optional +from common import UuidCache, now from common import format_ipc_dimension as fd -from common import init_cache, now, save_cache from entities.common import ( Align, Angle, @@ -68,16 +67,7 @@ line_width = 0.2 -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_do.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, full_name: str, identifier: str) -> str: - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_do.csv') class DoConfig: @@ -137,7 +127,7 @@ def generate_pkg( """ def _uuid(identifier: str) -> str: - return uuid('pkg', pkg_name, identifier) + return uuid_cache.get('pkg', pkg_name, identifier) uuid_pkg = _uuid('pkg') @@ -483,7 +473,7 @@ def generate_3d( assembly.save(out_path, fused=False) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -543,4 +533,7 @@ def generate_3d( create_date='2023-08-15T22:33:08Z', ) - save_cache(uuid_cache_file, uuid_cache) + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_dpak.py b/generate_dpak.py index d083ad3..63d834f 100644 --- a/generate_dpak.py +++ b/generate_dpak.py @@ -7,12 +7,11 @@ from collections import namedtuple from dataclasses import dataclass from os import path -from uuid import uuid4 from typing import Dict, Iterable, List, Optional, cast +from common import UuidCache, now from common import format_ipc_dimension as fd -from common import init_cache, now, save_cache from entities.common import ( Align, Angle, @@ -118,27 +117,7 @@ } -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_dpak.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, full_name: str, identifier: str) -> str: - """ - Return a uuid for the specified pin. - - Params: - category: - For example 'cmp' or 'pkg'. - full_name: - For example "SOIC127P762X120-16". - identifier: - For example 'pad-1' or 'pin-13'. - """ - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_dpak.csv') def excess_by_density(pitch: float, level: str) -> Excess: @@ -236,7 +215,7 @@ def generate_pkg( ) + '\n\nGenerated with {}'.format(generator) def _uuid(identifier: str) -> str: - return uuid(category, full_name, identifier) + return uuid_cache.get(category, full_name, identifier) uuid_pkg = _uuid('pkg') uuid_pads = [_uuid('pad-{}'.format(p)) for p in range(1, config.pin_count + 1)] @@ -580,7 +559,7 @@ def _create_outline( add_footprint_variant('density~c', 'Density Level C (min protrusion)', 'C') # Generate 3D models - uuid_3d = uuid('pkg', full_name, '3d') + uuid_3d = uuid_cache.get('pkg', full_name, '3d') if generate_3d_models: generate_3d(library, full_name, uuid_pkg, uuid_3d, config) package.add_3d_model(Package3DModel(uuid_3d, Name(full_name))) @@ -666,7 +645,7 @@ def generate_3d( assembly.save(out_path, fused=False) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -719,4 +698,8 @@ def generate_3d( version='0.1', create_date='2026-06-01T08:27:05Z', ) - save_cache(uuid_cache_file, uuid_cache) + + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_idc.py b/generate_idc.py index ab9abe4..bef2265 100644 --- a/generate_idc.py +++ b/generate_idc.py @@ -11,11 +11,10 @@ from math import sqrt from os import path -from uuid import uuid4 from typing import Iterable, Optional, Tuple -from common import init_cache, now, save_cache +from common import UuidCache, now from entities.common import ( Align, Angle, @@ -75,30 +74,8 @@ pkg_text_height = 1.0 sym_text_height = 2.54 -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_idc.csv' -uuid_cache = init_cache(uuid_cache_file) - -# Initialize UUID cache for connectors -uuid_cache_connectors = init_cache('uuid_cache_connectors.csv') - - -def uuid(category: str, variant: str, identifier: str) -> str: - """ - Return a uuid for the specified object. - - Params: - category: - For example 'cmp' or 'pkg'. - variant: - For example 'cnctech-3020-06-0300' or '1x13'. - identifier: - For example 'pad-1' or 'pin-13'. - """ - key = '{}-{}-{}'.format(category, variant, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_idc.csv') +uuid_cache_connectors = UuidCache('uuid_cache_connectors.csv', stale_check=False) class Coord: @@ -213,7 +190,7 @@ def __init__( def generate_pkg(config: Config) -> None: def _uuid(identifier: str) -> str: - return uuid('pkg', config.identifier, identifier) + return uuid_cache.get('pkg', config.identifier, identifier) uuid_pkg = _uuid('pkg') uuid_pads = [_uuid('pad-{}'.format(p)) for p in range(config.pin_count)] @@ -533,12 +510,11 @@ def _create_outline( def generate_dev(config: Config) -> None: def _uuid(category: str, identifier: str) -> str: - return uuid(category, config.identifier, identifier) + return uuid_cache.get(category, config.identifier, identifier) def _uuid_cmp(identifier: str) -> str: variant = '{}x{}'.format(2, config.pin_count // 2) - key = 'cmp-pinheader-{}-{}'.format(variant, identifier).lower().replace(' ', '~') - return uuid_cache_connectors[key] + return uuid_cache_connectors.get('cmp', 'pinheader', variant, identifier) uuid_dev = _uuid('dev', 'dev') uuid_pkg = _uuid('pkg', 'pkg') @@ -577,7 +553,7 @@ def _uuid_cmp(identifier: str) -> str: print('Wrote device {}: {}'.format(uuid_dev, config.dev_name)) -if __name__ == '__main__': +def main() -> None: # CNC Tech configs = ( [ @@ -706,4 +682,7 @@ def _uuid_cmp(identifier: str) -> str: generate_pkg(config=config) generate_dev(config=config) - save_cache(uuid_cache_file, uuid_cache) + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_jst_sh_connectors.py b/generate_jst_sh_connectors.py index 7408c2a..efbdbde 100644 --- a/generate_jst_sh_connectors.py +++ b/generate_jst_sh_connectors.py @@ -8,11 +8,10 @@ import math from os import path -from uuid import uuid4 from typing import Iterable, Optional -from common import init_cache, now, save_cache +from common import UuidCache, now from entities.attribute import StringAttribute from entities.common import ( Align, @@ -75,10 +74,9 @@ legend_header_spacing = 0 legend_line_width = 0.2 -uuid_cache_jst_file = 'uuid_cache_jst_sh_connectors.csv' -uuid_cache_jst = init_cache(uuid_cache_jst_file) +uuid_cache_jst = UuidCache('uuid_cache_jst_sh_connectors.csv') -uuid_cache_connectors = init_cache('uuid_cache_connectors.csv') +uuid_cache_connectors = UuidCache('uuid_cache_connectors.csv', stale_check=False) # we use these patterns multiple times in the code # that is why we define them here, single source of truth @@ -157,15 +155,8 @@ def variant(mounting_variant: str, circuits: int) -> str: return f'{mounting_variant}{circuits}' -def uuid(category: str, kind: str, variant: str, identifier: str) -> str: - key = '{}-{}-{}-{}'.format(category, kind, variant, identifier).lower().replace(' ', '~') - if key not in uuid_cache_jst: - uuid_cache_jst[key] = str(uuid4()) - return uuid_cache_jst[key] - - def connector_uuid(category: str, connector: Connector, identifier: str) -> str: - return uuid( + return uuid_cache_jst.get( category, connector.type, variant(connector.subtype, connector.circuits), identifier ) @@ -735,9 +726,9 @@ def generate_dev( suction_cap_variant_available: bool, ) -> Device: connector_uuid_stub = f'cmp-pinheader-1x{connector.circuits}' - component_uuid = uuid_cache_connectors[f'{connector_uuid_stub}-cmp'] + component_uuid = uuid_cache_connectors.get(f'{connector_uuid_stub}-cmp') signal_uuids = [ - uuid_cache_connectors[f'{connector_uuid_stub}-signal-{i}'] + uuid_cache_connectors.get(f'{connector_uuid_stub}-signal-{i}') for i in range(connector.circuits) ] @@ -834,7 +825,7 @@ def generate_jst( print(f'wrote device {dev.name.value}: {dev.uuid}') -if __name__ == '__main__': +def main() -> None: create_date = '2024-05-03T17:19:09Z' # units in mm @@ -916,4 +907,7 @@ def generate_jst( rotation=90, ) - save_cache(uuid_cache_jst_file, uuid_cache_jst) + +if __name__ == '__main__': + with uuid_cache_jst: + main() diff --git a/generate_led.py b/generate_led.py index 9272618..1e81212 100644 --- a/generate_led.py +++ b/generate_led.py @@ -5,12 +5,11 @@ import sys from math import acos, asin, degrees, sqrt from os import path -from uuid import uuid4 from typing import Iterable, List, Optional, Tuple +from common import UuidCache, now from common import format_ipc_dimension as fd -from common import init_cache, now, save_cache from entities.common import ( Align, Angle, @@ -75,27 +74,7 @@ pkg_text_height = 1.0 -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_led.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, full_name: str, identifier: str) -> str: - """ - Return a uuid for the specified pin. - - Params: - category: - For example 'cmp' or 'pkg'. - full_name: - For example "SOIC127P762X120-16". - identifier: - For example 'pad-1' or 'pin-13'. - """ - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_led.csv') class LedConfig: @@ -169,7 +148,7 @@ def generate_pkg( generated_3d_uuids = set() def _uuid(identifier: str) -> str: - return uuid(category, config.pkg_name, identifier) + return uuid_cache.get(category, config.pkg_name, identifier) uuid_pkg = _uuid('pkg') @@ -808,7 +787,7 @@ def generate_dev( for config in configs: def _uuid(identifier: str) -> str: - return uuid(category, config.dev_name, identifier) + return uuid_cache.get(category, config.dev_name, identifier) uuid_dev = _uuid('dev') @@ -826,17 +805,17 @@ def _uuid(identifier: str) -> str: generated_by=GeneratedBy(''), categories=[Category(cmpcat)], component_uuid=ComponentUUID('2b24b18d-bd95-4fb4-8fe6-bce1d020ead4'), - package_uuid=PackageUUID(uuid('pkg', config.pkg_name, 'pkg')), + package_uuid=PackageUUID(uuid_cache.get('pkg', config.pkg_name, 'pkg')), ) device.add_pad( ComponentPad( - pad_uuid=uuid('pkg', config.pkg_name, 'pad-a'), + pad_uuid=uuid_cache.get('pkg', config.pkg_name, 'pad-a'), signal=SignalUUID('f1467b5c-cc7d-44b4-8076-d729f35b3a6a'), ) ) device.add_pad( ComponentPad( - pad_uuid=uuid('pkg', config.pkg_name, 'pad-c'), + pad_uuid=uuid_cache.get('pkg', config.pkg_name, 'pad-c'), signal=SignalUUID('7b023430-b68f-403a-80b8-c7deb12e7a0c'), ) ) @@ -847,7 +826,7 @@ def _uuid(identifier: str) -> str: device.serialize(path.join('out', library, category)) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -904,4 +883,7 @@ def _uuid(identifier: str) -> str: create_date='2022-08-31T11:18:33Z', ) - save_cache(uuid_cache_file, uuid_cache) + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_modules.py b/generate_modules.py index 044953e..94c93e8 100644 --- a/generate_modules.py +++ b/generate_modules.py @@ -7,13 +7,13 @@ import cadquery as cq from cadquery_helpers import StepAssembly, StepColor, StepConstants -from common import init_cache +from common import UuidCache CU_THICKNESS = 0.05 # Initialize UUID caches -connectors_uuid_cache = init_cache('uuid_cache_connectors.csv') +connectors_uuid_cache = UuidCache('uuid_cache_connectors.csv') def get_connector_pkg_uuid(kind: str, pin_count: int, rows: int, drill: float, obj: str) -> str: @@ -21,7 +21,7 @@ def get_connector_pkg_uuid(kind: str, pin_count: int, rows: int, drill: float, o Get the UUID of a connector package item. See generate_connectors.py for details. """ key = f'pkg-{kind}-{rows}x{pin_count // rows}-d{drill:.1f}-{obj}' - return connectors_uuid_cache[key] + return connectors_uuid_cache.get(key) def load_connector_step_model(kind: str, pin_count: int, rows: int, drill: float) -> cq.Assembly: @@ -394,7 +394,7 @@ def generate_rpi_pico(name: str, bottom_pads: bool, headers: bool) -> None: assembly.save(out_path, fused=False) -if __name__ == '__main__': +def main() -> None: # Arduino generate_arduino_uno_r3(name='With Uno', with_board=True) generate_arduino_uno_r3(name='Only Headers', with_board=False) @@ -408,3 +408,7 @@ def generate_rpi_pico(name: str, bottom_pads: bool, headers: bool) -> None: generate_rpi_pico('Pico (THT)', bottom_pads=True, headers=True) generate_rpi_pico('Pico W (SMD)', bottom_pads=False, headers=False) generate_rpi_pico('Pico W (THT)', bottom_pads=False, headers=True) + + +if __name__ == '__main__': + main() diff --git a/generate_molex_picoblade.py b/generate_molex_picoblade.py index dca84a0..b079028 100644 --- a/generate_molex_picoblade.py +++ b/generate_molex_picoblade.py @@ -4,11 +4,10 @@ import sys from os import path -from uuid import uuid4 from typing import List, Optional -from common import init_cache, now, save_cache +from common import UuidCache, now from entities.attribute import Attribute, AttributeType from entities.common import ( Align, @@ -78,18 +77,9 @@ COURTYARD_EXCESS = 0.2 -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_molex_picoblade.csv' -uuid_cache = init_cache(uuid_cache_file) +uuid_cache = UuidCache('uuid_cache_molex_picoblade.csv') -uuid_cache_connectors = init_cache('uuid_cache_connectors.csv') - - -def uuid(category: str, full_name: str, identifier: str) -> str: - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache_connectors = UuidCache('uuid_cache_connectors.csv', stale_check=False) def generate_pkg( @@ -106,7 +96,7 @@ def generate_pkg( generate_3d_models: bool, ) -> None: def _uuid(identifier: str) -> str: - return uuid('pkg', uuid_key, identifier) + return uuid_cache.get('pkg', uuid_key, identifier) uuid_pkg = _uuid('pkg') @@ -563,16 +553,16 @@ def generate_dev( parts: List[Part], ) -> None: def _uuid(identifier: str) -> str: - return uuid('dev', uuid_key, identifier) + return uuid_cache.get('dev', uuid_key, identifier) uuid_dev = _uuid('dev') print(f'Generating {name}: {uuid_dev}') connector_uuid_stub = f'cmp-pinheader-1x{circuits}' - component_uuid = uuid_cache_connectors[f'{connector_uuid_stub}-cmp'] + component_uuid = uuid_cache_connectors.get(f'{connector_uuid_stub}-cmp') signal_uuids = [ - uuid_cache_connectors[f'{connector_uuid_stub}-signal-{i}'] for i in range(circuits) + uuid_cache_connectors.get(f'{connector_uuid_stub}-signal-{i}') for i in range(circuits) ] device = Device( @@ -587,14 +577,14 @@ def _uuid(identifier: str) -> str: generated_by=GeneratedBy(''), categories=[Category(c) for c in categories], component_uuid=ComponentUUID(component_uuid), - package_uuid=PackageUUID(uuid('pkg', uuid_key, 'pkg')), + package_uuid=PackageUUID(uuid_cache.get('pkg', uuid_key, 'pkg')), ) for i in range(circuits): - pad_uuid = uuid_cache[f'pkg-{uuid_key}-pad-{i + 1:02}'] + pad_uuid = uuid_cache.get(f'pkg-{uuid_key}-pad-{i + 1:02}') device.add_pad(ComponentPad(pad_uuid, SignalUUID(signal_uuids[i]))) for i in range(2): - pad_uuid = uuid_cache[f'pkg-{uuid_key}-pad-tab{i + 1}'] + pad_uuid = uuid_cache.get(f'pkg-{uuid_key}-pad-tab{i + 1}') device.add_pad(ComponentPad(pad_uuid, SignalUUID('none'))) device.add_resource( @@ -611,7 +601,7 @@ def _uuid(identifier: str) -> str: device.serialize(path.join('out', library, 'dev')) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -675,4 +665,7 @@ def _uuid(identifier: str) -> str: parts=parts, ) - save_cache(uuid_cache_file, uuid_cache) + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_mosfet_dual.py b/generate_mosfet_dual.py index 8d01021..4133b2a 100644 --- a/generate_mosfet_dual.py +++ b/generate_mosfet_dual.py @@ -3,35 +3,14 @@ """ from os import makedirs, path -from uuid import uuid4 from typing import Any, Dict, Iterable, List, Optional -from common import init_cache, now, save_cache +from common import UuidCache, now generator = 'librepcb-parts-generator (generate_mosfet_dual.py)' -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_mosfet_dual.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, full_name: str, identifier: str) -> str: - """ - Return a uuid for the specified pin. - - Params: - category: - For example 'cmp' or 'pkg'. - full_name: - For example "RESC3216X65". - identifier: - For example 'pad-1' or 'pin-13'. - """ - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_mosfet_dual.csv') class PackageConfig: @@ -125,7 +104,7 @@ def generate_dev( package_config = PACKAGES[fet_config.package] # UUIDs - uuid_dev = uuid('dev', full_name, 'dev') + uuid_dev = uuid_cache.get('dev', full_name, 'dev') uuid_pkg = package_config.uuid_pkg uuid_pads = package_config.uuid_pads uuid_signals = [SIGNALS[s] for s in fet_config.signals] @@ -173,7 +152,7 @@ def generate_dev( f.write('\n') -if __name__ == '__main__': +def main() -> None: # Diodes Incorporated # fmt: off generate_dev( @@ -260,4 +239,8 @@ def generate_dev( ], ) # fmt: on - save_cache(uuid_cache_file, uuid_cache) + + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_mounting_holes.py b/generate_mounting_holes.py index b39fa04..6bf01f5 100644 --- a/generate_mounting_holes.py +++ b/generate_mounting_holes.py @@ -8,11 +8,10 @@ """ from os import path -from uuid import uuid4 from typing import Optional -from common import init_cache, now, save_cache +from common import UuidCache, now from entities.common import ( Angle, Author, @@ -68,16 +67,7 @@ courtyard_excess = 0.5 -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_mounting_holes.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, full_name: str, identifier: str) -> str: - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_mounting_holes.csv') def generate_pkg( @@ -100,7 +90,7 @@ def generate_pkg( keywords = f'mounting,hole,pad,drill,screw,{name},{hole_diameter}mm,{pad_diameter}mm' def _uuid(identifier: str) -> str: - return uuid('pkg', name.lower(), identifier) + return uuid_cache.get('pkg', name.lower(), identifier) uuid_pkg = _uuid('pkg') @@ -299,7 +289,7 @@ def generate_dev( keywords = f'mounting,hole,pad,drill,screw,{name},{hole_diameter}mm,{pad_diameter}mm' def _uuid(identifier: str) -> str: - return uuid('dev', name.lower(), identifier) + return uuid_cache.get('dev', name.lower(), identifier) uuid_dev = _uuid('dev') @@ -320,12 +310,13 @@ def _uuid(identifier: str) -> str: Category('8ca4f9fb-3dd3-4c1e-a097-6601b437bbc6'), ], component_uuid=ComponentUUID('5c0f6cd9-dced-46ae-8098-6cccaa8726ec'), - package_uuid=PackageUUID(uuid('pkg', name.lower(), 'pkg')), + package_uuid=PackageUUID(uuid_cache.get('pkg', name.lower(), 'pkg')), ) device.add_pad( ComponentPad( - uuid('pkg', name.lower(), 'pad'), SignalUUID('c8721bab-6c90-43f6-8135-c32fce7aecc0') + uuid_cache.get('pkg', name.lower(), 'pad'), + SignalUUID('c8721bab-6c90-43f6-8135-c32fce7aecc0'), ) ) device.add_approval('(approved no_parts)') @@ -333,7 +324,7 @@ def _uuid(identifier: str) -> str: device.serialize(path.join('out', library, 'dev')) -if __name__ == '__main__': +def main() -> None: # Maximum head diameters of standard screws: # # | Screw | ISO4762 | ISO7380 | ISO14580 | DIN965 | @@ -374,4 +365,7 @@ def _uuid(identifier: str) -> str: pad_diameter=pad_diameter, ) - save_cache(uuid_cache_file, uuid_cache) + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_qfn.py b/generate_qfn.py new file mode 100644 index 0000000..94a3ab0 --- /dev/null +++ b/generate_qfn.py @@ -0,0 +1,524 @@ +""" +Generate DFN packages + +""" + +import argparse +import logging +from collections import Counter +from math import isclose +from os import path + +from typing import Generator, Optional + +import qfn_mo_220 +import qfn_mo_288B +from common import UuidCache, grid_solderpaste, make_border_rectangle, now +from entities.common import ( + Align, + Angle, + Author, + Category, + Circle, + Created, + Deprecated, + Description, + Diameter, + Fill, + GeneratedBy, + GrabArea, + Height, + Keywords, + Layer, + Name, + Polygon, + Position, + Position3D, + Rotation, + Rotation3D, + Value, + Version, + Vertex, + Width, + generate_courtyard, +) +from entities.package import ( + AssemblyType, + AutoRotate, + ComponentSide, + CopperClearance, + Footprint, + Footprint3DModel, + FootprintPad, + LetterSpacing, + LineSpacing, + MinCopperClearance, + Mirror, + Package, + Package3DModel, + PackagePad, + PackagePadUuid, + PadFunction, + Shape, + ShapeRadius, + Size, + SolderPasteConfig, + StopMaskConfig, + StrokeText, + StrokeWidth, +) +from qfn_common import Variant + +generator_name = 'librepcb-parts-generator (generate_qfn.py)' + +silkscreen_line_width = 0.254 +label_offset = 1.0 +body_outline_width = 0.2 + + +def get_y(pin_number: int, pin_count: int, spacing: float) -> float: + """ + Return the y coordinate of the specified pin. + + The pin number is 1 index based. Pin 1 is at the top. The middle pin will + be at or near 0. + """ + mid = (pin_count + 1) / 2 + return -pin_number * spacing + mid * spacing + + +def center(a: float, b: float) -> float: + return (a + b) / 2.0 + + +def get_pad_positions(variant: Variant) -> Generator[tuple[str, float], None, None]: + """ + Calculates side (left, right, top, bottom) and relative position on that side. + Position is in number-of-pitches, e.g. -1.5, -0.5, +0.5, +1.5. + Position starts with the first pin on this side, i.e. absolute coordinates must + sometimes be added, sometimes subtracted. + """ + + def make_side(name: str, pins: int) -> Generator[tuple[str, float], None, None]: + for i in range(pins): + yield (name, float(i) - (pins - 1.0) / 2.0) + + yield from make_side('west', variant.num_pins_east_west) + yield from make_side('south', variant.num_pins_north_south) + yield from make_side('east', variant.num_pins_east_west) + yield from make_side('north', variant.num_pins_north_south) + + +def default_description(variant: Variant) -> str: + return f"""\ +{variant.num_pins}-pin Quad Flat No-Lead package (QFN), standardized by {variant.standard} + +Pitch: {variant.pitch:.1f} mm +Nominal width: {variant.body_size_y:.2f} mm +Nominal length: {variant.body_size_x:.2f} mm +Height: {variant.overall_height:.2f} mm + +Generated with {generator_name} +""".strip() + + +def generate_pkg( + variant: Variant, + uuid_cache: UuidCache, + pkgcat: str, + generate_3d_models: bool, + create_date: Optional[str] = None, + author: str = 'Klaus Neuschwander', + library: str = 'LibrePCB_Base.lplib', +) -> None: + category = 'pkg' + keywords = f'qfn{variant.num_pins}' + + package_uuid = uuid_cache.sub_cache('pkg', variant.name) + + uuid_pkg = package_uuid.get('pkg') + uuid_pads = [package_uuid.get('pad', p) for p in range(1, variant.num_pins + 1)] + uuid_exposed_pad = package_uuid.get('exposed') + + logging.info('Generating {variant.name}: {uuid_pkg}') + + # Create package + package = Package( + uuid=uuid_pkg, + name=Name(variant.name), + description=Description(default_description(variant)), + keywords=Keywords(keywords), + author=Author(author), + version=Version('0.1'), # TODO: what version is this? package? generator? data format? + created=Created(create_date or now()), + deprecated=Deprecated(False), + generated_by=GeneratedBy(generator_name), + categories=[Category(pkgcat)], + assembly_type=AssemblyType.SMT, + min_copper_clearance=MinCopperClearance(variant.min_clearance), + ) + + # Create pads + for p in range(1, variant.num_pins + 1): + package.add_pad(PackagePad(uuid_pads[p - 1], Name(str(p)))) + if variant.exposed_pad: + package.add_pad(PackagePad(uuid_exposed_pad, Name('ExposedPad'))) + + # Create Footprint function + def add_footprint_variant( + key: str, + name: str, + density_level: str, + ) -> None: + footprint_uuid = package_uuid.sub_cache('footprint', key) + + # Create Meta-data + footprint = Footprint( + uuid=footprint_uuid.get('footprint'), + name=Name(name), + description=Description(''), + position_3d=Position3D.zero(), + rotation_3d=Rotation3D.zero(), + ) + footprint.add_tag('ipc-density-level-{}'.format(density_level.lower())) + package.add_footprint(footprint) + + rel_pad_positions = list(get_pad_positions(variant)) + + try: + heel = 0.0 # adding a heel would break clearance requirements with exposed pad + toe = dict( + A=0.30, + B=0.20, + C=0.10, + )[density_level] + # side: no side excess + courtyard_excess = dict( + A=0.40, + B=0.20, + C=0.10, + )[density_level] + except KeyError: + raise RuntimeError(f'no default toe/heel defined for pitch {variant.pitch}') + + body_x = variant.body_size_x / 2 + body_y = variant.body_size_y / 2 + + # normal pads + for i_pad in range(variant.num_pins): + pad_name = i_pad + 1 + side, rel_position = rel_pad_positions[i_pad] + + if side in ('west', 'east'): + lead_inner = body_x - variant.lead_length_east_west + pad_inner = lead_inner - heel + pad_outer = body_x + toe + + pad_width = heel + variant.lead_length_east_west + toe + center_x = center(pad_inner, pad_outer) * (-1 if side == 'west' else +1) + center_y = variant.pitch * rel_position * (-1 if side == 'west' else +1) + + lead_x_1 = body_x * (-1 if side == 'west' else +1) + lead_x_2 = lead_inner * (-1 if side == 'west' else +1) + lead_y_1 = center_y - variant.lead_width / 2 + lead_y_2 = center_y + variant.lead_width / 2 + + else: + lead_inner = body_y - variant.lead_length_north_south + pad_inner = lead_inner - heel + pad_outer = body_y + toe + pad_width = heel + variant.lead_length_north_south + toe + center_x = variant.pitch * rel_position * (+1 if side == 'south' else -1) + center_y = center(pad_inner, pad_outer) * (-1 if side == 'south' else +1) + + lead_x_1 = center_x - variant.lead_width / 2 + lead_x_2 = center_x + variant.lead_width / 2 + lead_y_1 = body_y * (-1 if side == 'south' else +1) + lead_y_2 = lead_inner * (-1 if side == 'south' else +1) + assert isclose(pad_outer - pad_inner, pad_width), (pad_outer, pad_inner, pad_width) + + # pad + footprint.add_pad( + FootprintPad( + uuid=footprint_uuid.get('pad', pad_name), + side=ComponentSide.TOP, + shape=Shape.ROUNDED_RECT, + position=Position(center_x, center_y), + rotation=Rotation(0 if side in ('west', 'east') else 90), + size=Size(pad_width, variant.lead_width), + radius=ShapeRadius(0), + stop_mask=StopMaskConfig(StopMaskConfig.AUTO), + solder_paste=SolderPasteConfig.AUTO, + copper_clearance=CopperClearance(0.0), + function=PadFunction.STANDARD_PAD, + package_pad=PackagePadUuid(uuid_pads[i_pad]), + holes=[], + ) + ) + + # docu + footprint.add_polygon( + Polygon( + uuid=footprint_uuid.get('pad', pad_name, 'docu'), + layer=Layer('top_documentation'), + width=Width(0), + fill=Fill(True), + grab_area=GrabArea(False), + vertices=[ + Vertex(Position(x, y), Angle(0)) + for x, y in [ + (lead_x_1, lead_y_1), + (lead_x_1, lead_y_2), + (lead_x_2, lead_y_2), + (lead_x_2, lead_y_1), + (lead_x_1, lead_y_1), + ] + ], + ) + ) + + # exposed pad + if variant.exposed_pad: + footprint.add_pad( + FootprintPad( + uuid=footprint_uuid.get('pad', 'exposed'), + side=ComponentSide.TOP, + shape=Shape.ROUNDED_RECT, + position=Position(0, 0), + rotation=Rotation(0), + size=Size(variant.exposed_pad.x, variant.exposed_pad.y), + radius=ShapeRadius(0), + stop_mask=StopMaskConfig(StopMaskConfig.AUTO), + solder_paste=SolderPasteConfig.OFF, + copper_clearance=CopperClearance(0.0), + function=PadFunction.STANDARD_PAD, + package_pad=PackagePadUuid(uuid_exposed_pad), + holes=[], + ) + ) + + for p in grid_solderpaste( + uuid_cache=footprint_uuid.sub_cache('exposed_pad_solderpaste'), + x_min=-variant.exposed_pad.x / 2, + x_max=+variant.exposed_pad.x / 2, + y_min=-variant.exposed_pad.y / 2, + y_max=+variant.exposed_pad.y / 2, + ): + footprint.add_polygon(p) + # package outline + footprint.add_polygon( + Polygon( + uuid=footprint_uuid.get('outline'), + layer=Layer('top_package_outlines'), + width=Width(0), + fill=Fill(False), + grab_area=GrabArea(False), + vertices=make_border_rectangle( + -body_x, +body_x, +body_y, -body_y, width=0.0, direction='center' + ), + ) + ) + + # package outline on docu + footprint.add_polygon( + Polygon( + uuid=footprint_uuid.get('outline', 'docu'), + layer=Layer('top_documentation'), + width=Width(body_outline_width), + fill=Fill(False), + grab_area=GrabArea(False), + vertices=make_border_rectangle( + -body_x, +body_x, +body_y, -body_y, width=body_outline_width, direction='inner' + ), + ) + ) + + # docu pin1 indicator on package + footprint.add_circle( + Circle( + uuid=footprint_uuid.get('docu', 'pin1indicator'), + layer=Layer('top_documentation'), + width=Width(0), + fill=Fill(True), + grab_area=GrabArea(False), + diameter=Diameter(0.2), + position=Position( + -(body_x - 2 * body_outline_width), + +(body_y - 2 * body_outline_width), + ), + ) + ) + + # silkscreen + corner_size = 0.4 + silk_x = body_x + silkscreen_line_width / 2 + silk_y = body_y + silkscreen_line_width / 2 + + for x_sign in (-1, 1): + for y_sign in (-1, 1): + vertices = [ + (silk_x - corner_size, silk_y), + (silk_x, silk_y), + (silk_x, silk_y - corner_size), + ] + + footprint.add_polygon( + Polygon( + uuid=footprint_uuid.get('silkscreen', x_sign, y_sign), + layer=Layer('top_legend'), + width=Width(silkscreen_line_width), + fill=Fill(False), + grab_area=GrabArea(False), + vertices=[ + Vertex(Position(x * x_sign, y * y_sign), Angle(0)) for x, y in vertices + ], + ) + ) + + # silkscreen pin-1 indicator + footprint.add_circle( + Circle( + uuid=footprint_uuid.get('docu', 'silkscreen', 'pin1indicator'), + layer=Layer('top_legend'), + width=Width(0), + fill=Fill(True), + grab_area=GrabArea(False), + diameter=Diameter(silkscreen_line_width), + position=Position( + -(body_x + silkscreen_line_width * 1.5), + +(body_y), + ), + ) + ) + + # courtyard + footprint.add_polygon( + generate_courtyard( + uuid=footprint_uuid.get('courtyard'), + max_x=body_x + toe, + max_y=body_y + toe, + excess_x=courtyard_excess, + excess_y=courtyard_excess, + ) + ) + + # name + footprint.add_text( + StrokeText( + uuid=footprint_uuid.get('name'), + layer=Layer('top_names'), + position=Position(0.0, body_y + label_offset), + align=Align('center bottom'), + value=Value('{{NAME}}'), + height=Height(1), + stroke_width=StrokeWidth(0.2), + letter_spacing=LetterSpacing.AUTO, + line_spacing=LineSpacing.AUTO, + rotation=Rotation(0), + auto_rotate=AutoRotate(True), + mirror=Mirror(False), + ) + ) + + # value + footprint.add_text( + StrokeText( + uuid=footprint_uuid.get('value'), + layer=Layer('top_values'), + position=Position(0.0, -(body_y + label_offset)), + align=Align('center top'), + value=Value('{{VALUE}}'), + height=Height(1), + stroke_width=StrokeWidth(0.2), + letter_spacing=LetterSpacing.AUTO, + line_spacing=LineSpacing.AUTO, + rotation=Rotation(0), + auto_rotate=AutoRotate(True), + mirror=Mirror(False), + ) + ) + + # Apply function to available footprints + add_footprint_variant('density~b', 'Density Level B (median protrusion)', 'B') + add_footprint_variant('density~a', 'Density Level A (max protrusion)', 'A') + add_footprint_variant('density~c', 'Density Level C (min protrusion)', 'C') + + # 3d + if generate_3d_models: + uuid_3d = package_uuid.get('3d') + path_3d = path.join('out', library, 'pkg', uuid_pkg, f'{uuid_3d}.step') + generate_3d(variant, path_3d) + package.add_3d_model(Package3DModel(uuid_3d, Name(variant.name))) + for footprint in package.footprints: + footprint.add_3d_model(Footprint3DModel(uuid_3d)) + + # Save package + package.serialize(path.join('out', library, category)) + + +def generate_3d(variant: Variant, save_path: str) -> None: + import cadquery as cq + + from cadquery_helpers import StepAssembly, StepColor + + body_chamfer = 0.05 + dot_diameter = 0.3 + dot_depth = 0.15 + dot_offset = 0.5 + dot_center_x = -(variant.body_size_x / 2 - dot_offset) + dot_center_y = +(variant.body_size_y / 2 - dot_offset) + + body = ( + cq.Workplane('XY', origin=(0, 0, variant.overall_height / 2)) + .box(variant.body_size_x, variant.body_size_y, variant.overall_height) + .edges() + .chamfer(body_chamfer) + .workplane( + origin=(dot_center_x, dot_center_y), offset=variant.overall_height / 2 - dot_depth + ) + .cylinder(dot_depth + 0.1, dot_diameter / 2, centered=(True, True, False), combine='cut') + ) + dot = cq.Workplane('XY', origin=(dot_center_x, dot_center_y)).cylinder( + variant.overall_height - dot_depth + 0.1, dot_diameter / 2, centered=(True, True, False) + ) + assembly = StepAssembly(variant.name) + assembly.add_body(body, 'body', StepColor.IC_BODY) + assembly.add_body(dot, 'dot', StepColor.IC_PIN1_DOT) + assembly.save(save_path, fused=False) + + +def parse_args() -> argparse.Namespace: + parser = argparse.ArgumentParser() + parser.add_argument( + '--3d', action='store_true', dest='cadquery', help='Generate 3D models using cadquery' + ) + return parser.parse_args() + + +if __name__ == '__main__': + args = parse_args() + if not args.cadquery: + logging.warning('Not generating 3D models unless the command line option is selected') + + variants = qfn_mo_220.load_variants() + qfn_mo_288B.load_variants() + counts = Counter((v.name for v in variants)) + duplicates = [n for n, count in counts.items() if count > 1] + if duplicates: + raise RuntimeError(f'Multiple definitions of variants: {duplicates}') + + with UuidCache('uuid_cache_qfn.csv') as uuid_cache: + for variant in variants: + print(variant.name) + try: + generate_pkg( + variant=variant, + uuid_cache=uuid_cache, + pkgcat='e077449f-2272-41ce-92ce-0cb99dfa0697', + generate_3d_models=args.cadquery, + ) + except Exception as e: + try: + e.add_note(f'While generating variant {variant.name}') # type: ignore[attr-defined,unused-ignore] + except AttributeError: + pass + raise diff --git a/generate_qfp.py b/generate_qfp.py index 1d6df44..5d55b43 100644 --- a/generate_qfp.py +++ b/generate_qfp.py @@ -14,12 +14,11 @@ from copy import deepcopy from itertools import chain from os import path -from uuid import uuid4 from typing import Dict, Iterable, List, Optional, cast +from common import UuidCache, now, sign from common import format_ipc_dimension as fd -from common import init_cache, now, save_cache, sign from entities.common import ( Align, Angle, @@ -87,9 +86,7 @@ courtyard_around_pads = 0.1 # 100 µm -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_qfp.csv' -uuid_cache = init_cache(uuid_cache_file) +uuid_cache = UuidCache('uuid_cache_qfp.csv') # Based on Footprint Expert Guidelines, Chapter 7.0 (Nominal Calculation) @@ -336,24 +333,6 @@ def get_configs(self) -> List[QfpConfig]: # fmt: on -def uuid(category: str, full_name: str, identifier: str) -> str: - """ - Return a uuid for the specified pin. - - Params: - category: - For example 'cmp' or 'pkg'. - full_name: - For example "SOIC127P762X120-16". - identifier: - For example 'pad-1' or 'pin-13'. - """ - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] - - class Pad: def __init__(self, x: float, y: float, orientation: str): self.x = x @@ -440,7 +419,7 @@ def generate_pkg( full_description = config.description() def _uuid(identifier: str) -> str: - return uuid(category, full_name, identifier) + return uuid_cache.get(category, full_name, identifier) uuid_pkg = _uuid('pkg') uuid_pads = [_uuid('pad-{}'.format(p)) for p in range(1, config.lead_count + 1)] @@ -802,7 +781,7 @@ def _create_outline_vertices( add_footprint_variant('density~c', 'Density Level C (min protrusion)', 'C') # Generate 3D models - uuid_3d = uuid('pkg', full_name, '3d') + uuid_3d = uuid_cache.get('pkg', full_name, '3d') if generate_3d_models: generate_3d(library, full_name, uuid_pkg, uuid_3d, config) package.add_3d_model(Package3DModel(uuid_3d, Name(full_name))) @@ -906,7 +885,7 @@ def generate_3d( assembly.save(out_path, fused=False) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -930,4 +909,8 @@ def generate_3d( version='0.5', create_date='2019-02-07T21:03:03Z', ) - save_cache(uuid_cache_file, uuid_cache) + + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_screw_terminals.py b/generate_screw_terminals.py index fc41659..ebf633d 100644 --- a/generate_screw_terminals.py +++ b/generate_screw_terminals.py @@ -5,11 +5,10 @@ import math import sys from os import path -from uuid import uuid4 from typing import Any, Callable, List, Optional -from common import init_cache, now, save_cache +from common import UuidCache, now from entities.attribute import Attribute, AttributeType from entities.common import ( Align, @@ -74,18 +73,9 @@ courtyard_excess = 0.4 -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_screw_terminals.csv' -uuid_cache = init_cache(uuid_cache_file) +uuid_cache = UuidCache('uuid_cache_screw_terminals.csv') -uuid_cache_connectors = init_cache('uuid_cache_connectors.csv') - - -def uuid(category: str, full_name: str, identifier: str) -> str: - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache_connectors = UuidCache('uuid_cache_connectors.csv', stale_check=False) def create_screw_diagonal(y: float, diameter: float, dir: int) -> List[Vertex]: @@ -165,7 +155,7 @@ def __init__(self, name: str, mpn: str, circuits: int, datasheet: Optional[str] def uuid_key(self, family: Family) -> str: return ( - '{}-{}'.format(family.pkg_name_prefix, model.name) + '{}-{}'.format(family.pkg_name_prefix, self.name) .lower() .replace(' ', '') .replace(',', 'p') @@ -215,7 +205,7 @@ def generate_pkg( full_name = family.pkg_name_prefix + '_' + model.name.replace(' ', '_') def _uuid(identifier: str) -> str: - return uuid('pkg', model.uuid_key(family), identifier) + return uuid_cache.get('pkg', model.uuid_key(family), identifier) uuid_pkg = _uuid('pkg') @@ -627,16 +617,17 @@ def generate_dev( full_name = f'{family.dev_name_prefix} {model.name}' def _uuid(identifier: str) -> str: - return uuid('dev', model.uuid_key(family), identifier) + return uuid_cache.get('dev', model.uuid_key(family), identifier) uuid_dev = _uuid('dev') print('Generating {}: {}'.format(full_name, uuid_dev)) connector_uuid_stub = f'cmp-screwterminal-1x{model.circuits}' - component_uuid = uuid_cache_connectors[f'{connector_uuid_stub}-cmp'] + component_uuid = uuid_cache_connectors.get(f'{connector_uuid_stub}-cmp') signal_uuids = [ - uuid_cache_connectors[f'{connector_uuid_stub}-signal-{i}'] for i in range(model.circuits) + uuid_cache_connectors.get(f'{connector_uuid_stub}-signal-{i}') + for i in range(model.circuits) ] device = Device( @@ -651,11 +642,11 @@ def _uuid(identifier: str) -> str: generated_by=GeneratedBy(''), categories=[Category('f9db4ef5-2220-462a-adff-deac8402ecf0')], component_uuid=ComponentUUID(component_uuid), - package_uuid=PackageUUID(uuid('pkg', model.uuid_key(family), 'pkg')), + package_uuid=PackageUUID(uuid_cache.get('pkg', model.uuid_key(family), 'pkg')), ) for i in range(model.circuits): - pad_uuid = uuid('pkg', model.uuid_key(family), 'pad-{}'.format(i + 1)) + pad_uuid = uuid_cache.get('pkg', model.uuid_key(family), 'pad-{}'.format(i + 1)) device.add_pad(ComponentPad(pad_uuid, SignalUUID(signal_uuids[i]))) device.add_part( @@ -684,7 +675,7 @@ def _uuid(identifier: str) -> str: device.serialize(path.join('out', library, 'dev')) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -846,4 +837,7 @@ def _uuid(identifier: str) -> str: model=model, ) - save_cache(uuid_cache_file, uuid_cache) + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_so.py b/generate_so.py index 4c7557a..97dcf79 100644 --- a/generate_so.py +++ b/generate_so.py @@ -11,12 +11,11 @@ import sys from collections import namedtuple from os import path -from uuid import uuid4 from typing import Dict, Iterable, List, Optional, cast +from common import UuidCache, now from common import format_ipc_dimension as fd -from common import init_cache, now, save_cache from entities.common import ( Align, Angle, @@ -124,27 +123,7 @@ ] -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_so.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, full_name: str, identifier: str) -> str: - """ - Return a uuid for the specified pin. - - Params: - category: - For example 'cmp' or 'pkg'. - full_name: - For example "SOIC127P762X120-16". - identifier: - For example 'pad-1' or 'pin-13'. - """ - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_so.csv', stale_check=False) def excess_by_density(pitch: float, level: str) -> Excess: @@ -251,7 +230,7 @@ def generate_pkg( ) + '\n\nGenerated with {}'.format(generator) def _uuid(identifier: str) -> str: - return uuid(category, full_name, identifier) + return uuid_cache.get(category, full_name, identifier) uuid_pkg = _uuid('pkg') uuid_pads = [_uuid('pad-{}'.format(p)) for p in range(1, pin_count + 1)] @@ -611,7 +590,7 @@ def add_footprint_variant( add_footprint_variant('density~c', 'Density Level C (min protrusion)', 'C') # Generate 3D models - uuid_3d = uuid('pkg', full_name, '3d') + uuid_3d = uuid_cache.get('pkg', full_name, '3d') if generate_3d_models: generate_3d( library, full_name, uuid_pkg, uuid_3d, config, lead_width, lead_contact_length @@ -702,7 +681,7 @@ def generate_3d( assembly.save(out_path, fused=False) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -1119,4 +1098,8 @@ def generate_3d( version='0.3', create_date='2020-12-26T16:14:30Z', ) - save_cache(uuid_cache_file, uuid_cache) + + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_sod.py b/generate_sod.py index bdf2bd5..7763133 100644 --- a/generate_sod.py +++ b/generate_sod.py @@ -4,11 +4,10 @@ import sys from os import path -from uuid import uuid4 from typing import Dict, Iterable, Optional -from common import init_cache, now, save_cache +from common import UuidCache, now from entities.common import ( Align, Angle, @@ -72,29 +71,7 @@ courtyard_excess = 0.25 -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_sod.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, full_name: str, identifier: str, create: bool = True) -> str: - """ - Return a uuid for the specified pin. - - Params: - category: - For example 'cmp' or 'pkg'. - full_name: - For example "RESC3216X65". - identifier: - For example 'pad-1' or 'pin-13'. - """ - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - if not create: - raise ValueError('Unknown UUID: {}'.format(key)) - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_sod.csv') class FootprintConfig: @@ -189,7 +166,7 @@ def generate_pkg( ) def _uuid(identifier: str) -> str: - return uuid(category, full_name, identifier) + return uuid_cache.get(category, full_name, identifier) # UUIDs uuid_pkg = _uuid('pkg') @@ -425,7 +402,7 @@ def add_footprint_variant(fpt_config: FootprintConfig) -> None: add_footprint_variant(fpt) # Generate 3D model - uuid_3d = uuid('pkg', full_name, '3d') + uuid_3d = uuid_cache.get('pkg', full_name, '3d') if generate_3d_models: generate_3d(library, full_name, uuid_pkg, uuid_3d, config) package.add_3d_model(Package3DModel(uuid_3d, Name(full_name))) @@ -503,7 +480,7 @@ def generate_3d( assembly.save(out_path, fused=True) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -586,4 +563,8 @@ def generate_3d( version='0.2', create_date='2018-12-02T22:17:40Z', ) - save_cache(uuid_cache_file, uuid_cache) + + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_stm_mcu.py b/generate_stm_mcu.py index a5c1999..23f4823 100644 --- a/generate_stm_mcu.py +++ b/generate_stm_mcu.py @@ -29,12 +29,11 @@ import re from collections import defaultdict from os import listdir, path -from uuid import uuid4 from typing import Any, DefaultDict, Dict, Iterable, Iterator, List, Optional, Set, Tuple import common -from common import human_sort_key, init_cache, save_cache +from common import UuidCache, human_sort_key from entities.common import ( Align, Angle, @@ -97,27 +96,7 @@ cmpcat = [Category('22151601-c2d9-419a-87bc-266f9c7c3459')] outdir = path.join('out', 'STMicroelectronics.lplib') -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_stm_mcu.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, full_name: str, identifier: str) -> str: - """ - Return a uuid for the specified item. - - Params: - category: - For example 'cmp' or 'sym'. - full_name: - For example "STM32WB55CEUx". - identifier: - For example 'sym' or 'pin-pb9'. - """ - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_stm_mcu.csv') class Pin: @@ -636,7 +615,7 @@ def generate_sym(mcus: List[MCU], symbol_map: Dict[str, str], debug: bool = Fals if debug: print(pin_mapping) - uuid_sym = uuid('sym', mcu.symbol_identifier, 'sym') + uuid_sym = uuid_cache.get('sym', mcu.symbol_identifier, 'sym') symbol = Symbol( uuid_sym, Name(mcu.symbol_name), @@ -654,7 +633,7 @@ def generate_sym(mcus: List[MCU], symbol_map: Dict[str, str], debug: bool = Fals for pin_name, position, rotation in placement.pins(width, grid): symbol.add_pin( SymbolPin( - uuid('sym', mcu.symbol_identifier, 'pin-{}'.format(pin_name)), + uuid_cache.get('sym', mcu.symbol_identifier, 'pin-{}'.format(pin_name)), Name(pin_name), position, rotation, @@ -666,7 +645,7 @@ def generate_sym(mcus: List[MCU], symbol_map: Dict[str, str], debug: bool = Fals ) ) polygon = Polygon( - uuid('sym', mcu.symbol_identifier, 'polygon'), + uuid_cache.get('sym', mcu.symbol_identifier, 'polygon'), Layer('sym_outlines'), Width(line_width), Fill(False), @@ -682,7 +661,7 @@ def generate_sym(mcus: List[MCU], symbol_map: Dict[str, str], debug: bool = Fals symbol.add_polygon(polygon) text_name = Text( - uuid('sym', mcu.symbol_identifier, 'text-name'), + uuid_cache.get('sym', mcu.symbol_identifier, 'text-name'), Layer('sym_names'), Value('{{NAME}}'), Align('left bottom'), @@ -691,7 +670,7 @@ def generate_sym(mcus: List[MCU], symbol_map: Dict[str, str], debug: bool = Fals Rotation(0.0), ) text_value = Text( - uuid('sym', mcu.symbol_identifier, 'text-value'), + uuid_cache.get('sym', mcu.symbol_identifier, 'text-value'), Layer('sym_values'), Value('{{VALUE}}'), Align('left top'), @@ -743,7 +722,7 @@ def generate_cmp( cmp_version = '0.1' component = Component( - uuid('cmp', mcu.component_identifier, 'cmp'), + uuid_cache.get('cmp', mcu.component_identifier, 'cmp'), Name(name), Description(mcu.component_description), mcu.keywords, @@ -765,7 +744,7 @@ def generate_cmp( Signal( # Use original signal name, so that changing the cleanup function # does not influence the identifier. - uuid('cmp', mcu.component_identifier, 'signal-{}'.format(signal)), + uuid_cache.get('cmp', mcu.component_identifier, 'signal-{}'.format(signal)), # Use cleaned up signal name for name Name(signal), Role.PASSIVE, @@ -778,8 +757,8 @@ def generate_cmp( # Add symbol variant gate = Gate( - uuid('cmp', mcu.component_identifier, 'variant-single-gate1'), - SymbolUUID(uuid('sym', mcu.symbol_identifier, 'sym')), + uuid_cache.get('cmp', mcu.component_identifier, 'variant-single-gate1'), + SymbolUUID(uuid_cache.get('sym', mcu.symbol_identifier, 'sym')), Position(0, 0), Rotation(0.0), Required(True), @@ -788,14 +767,18 @@ def generate_cmp( for generic, concrete in pin_mapping.items(): gate.add_pin_signal_map( PinSignalMap( - uuid('sym', mcu.symbol_identifier, 'pin-{}'.format(generic)), - SignalUUID(uuid('cmp', mcu.component_identifier, 'signal-{}'.format(concrete))), + uuid_cache.get('sym', mcu.symbol_identifier, 'pin-{}'.format(generic)), + SignalUUID( + uuid_cache.get( + 'cmp', mcu.component_identifier, 'signal-{}'.format(concrete) + ) + ), TextDesignator.SIGNAL_NAME, ) ) component.add_variant( Variant( - uuid('cmp', mcu.component_identifier, 'variant-single'), + uuid_cache.get('cmp', mcu.component_identifier, 'variant-single'), Norm.EMPTY, Name('single'), Description('Symbol with all MCU pins'), @@ -843,7 +826,7 @@ def generate_dev( pad_uuid_mapping = common.get_pad_uuids(base_lib_path, package_uuid_mapping[mcu.package]) device = Device( - uuid('dev', mcu.ref, 'dev'), + uuid_cache.get('dev', mcu.ref, 'dev'), Name(mcu.ref), Description(mcu.description), mcu.keywords, @@ -853,7 +836,7 @@ def generate_dev( Deprecated(False), GeneratedBy(''), cmpcat, - ComponentUUID(uuid('cmp', mcu.component_identifier, 'cmp')), + ComponentUUID(uuid_cache.get('cmp', mcu.component_identifier, 'cmp')), PackageUUID(package_uuid_mapping[mcu.package]), ) for pin in mcu.pins: @@ -861,7 +844,9 @@ def generate_dev( device.add_pad( ComponentPad( pad_uuid, - SignalUUID(uuid('cmp', mcu.component_identifier, 'signal-{}'.format(pin.name))), + SignalUUID( + uuid_cache.get('cmp', mcu.component_identifier, 'signal-{}'.format(pin.name)) + ), ) ) @@ -904,7 +889,7 @@ def generate(data: Dict[str, MCU], base_lib_path: str, debug: bool = False) -> N generate_dev(mcu, symbol_map, base_lib_path, debug) -if __name__ == '__main__': +def main() -> None: parser = argparse.ArgumentParser(description='Generate STM MCU library elements') parser.add_argument( '--data-dir', @@ -945,4 +930,8 @@ def generate(data: Dict[str, MCU], base_lib_path: str, debug: bool = False) -> N generate(data, args.base_lib, args.debug) print() - save_cache(uuid_cache_file, uuid_cache) + + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/generate_tactile_switches.py b/generate_tactile_switches.py index 8a549e0..ed14cde 100644 --- a/generate_tactile_switches.py +++ b/generate_tactile_switches.py @@ -4,11 +4,10 @@ import sys from os import path -from uuid import uuid4 from typing import List, Optional, Tuple, Union -from common import init_cache, now, save_cache +from common import UuidCache, now from entities.attribute import Attribute, AttributeType from entities.common import ( Align, @@ -73,16 +72,7 @@ courtyard_excess = 0.4 -# Initialize UUID cache -uuid_cache_file = 'uuid_cache_tactile_switches.csv' -uuid_cache = init_cache(uuid_cache_file) - - -def uuid(category: str, full_name: str, identifier: str) -> str: - key = '{}-{}-{}'.format(category, full_name, identifier).lower().replace(' ', '~') - if key not in uuid_cache: - uuid_cache[key] = str(uuid4()) - return uuid_cache[key] +uuid_cache = UuidCache('uuid_cache_tactile_switches.csv') class ThtLeadConfig: @@ -188,7 +178,7 @@ def __init__( def uuid_key(self, family: Family) -> str: return ( - '{}-{}'.format(family.pkg_name_prefix, model.name) + '{}-{}'.format(family.pkg_name_prefix, self.name) .lower() .replace(' ', '') .replace(',', 'p') @@ -232,7 +222,7 @@ def generate_pkg( full_name = family.pkg_name_prefix + '_' + model.name.replace(' ', '_') def _uuid(identifier: str) -> str: - return uuid('pkg', model.uuid_key(family), identifier) + return uuid_cache.get('pkg', model.uuid_key(family), identifier) uuid_pkg = _uuid('pkg') @@ -705,7 +695,7 @@ def generate_dev( full_name = f'{family.dev_name_prefix} {model.name}' def _uuid(identifier: str) -> str: - return uuid('dev', model.uuid_key(family), identifier) + return uuid_cache.get('dev', model.uuid_key(family), identifier) uuid_dev = _uuid('dev') @@ -723,7 +713,7 @@ def _uuid(identifier: str) -> str: generated_by=GeneratedBy(''), categories=[Category('e29f0cb3-ef6d-4203-b854-d75150cbae0b')], component_uuid=ComponentUUID('6eedad0b-5b41-4233-9b7b-8be1ee8527e0'), - package_uuid=PackageUUID(uuid('pkg', model.uuid_key(family), 'pkg')), + package_uuid=PackageUUID(uuid_cache.get('pkg', model.uuid_key(family), 'pkg')), ) signal_uuids = [ @@ -732,7 +722,7 @@ def _uuid(identifier: str) -> str: ] for i in range(4): - pad_uuid = uuid('pkg', model.uuid_key(family), 'pad-{}'.format(i + 1)) + pad_uuid = uuid_cache.get('pkg', model.uuid_key(family), 'pad-{}'.format(i + 1)) device.add_pad(ComponentPad(pad_uuid, SignalUUID(signal_uuids[i // 2]))) for part in model.parts: @@ -751,7 +741,7 @@ def _uuid(identifier: str) -> str: device.serialize(path.join('out', library, 'dev')) -if __name__ == '__main__': +def main() -> None: if '--help' in sys.argv or '-h' in sys.argv: print(f'Usage: {sys.argv[0]} [--3d]') print() @@ -1529,4 +1519,7 @@ def _uuid(identifier: str) -> str: model=model, ) - save_cache(uuid_cache_file, uuid_cache) + +if __name__ == '__main__': + with uuid_cache: + main() diff --git a/pyproject.toml b/pyproject.toml index 5c08828..a5a31f7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -8,6 +8,9 @@ authors = [ requires-python = ">=3.10" dependencies = [ "cadquery == 2.6.1", + # casadi 3.8.0 ships a casadi.pyi with duplicate parameter names, which breaks mypy. + # Fix planned for 3.8.1: https://github.com/casadi/casadi/issues/4390 + "casadi != 3.8.0", ] version = "0.1.0" diff --git a/qfn_common.py b/qfn_common.py new file mode 100644 index 0000000..f0fa5b4 --- /dev/null +++ b/qfn_common.py @@ -0,0 +1,53 @@ +from dataclasses import dataclass + +from common import format_ipc_dimension as fp + + +@dataclass(frozen=True) +class Size: + x: float + y: float + + +def qfn_name( + standard: str, + num_pins: int, + pitch: float, + body_length: float, + body_width: float, + body_height: float, + lead_length: float, + lead_width: float, + exposed_pad: Size | None, +) -> str: + # Footprint expert guideline p.42: "Thermal Tabs are included in the Pin Quantity" + naming_num_pins = num_pins + (1 if exposed_pad else 0) + exposed = f'T{fp(exposed_pad.y)}X{fp(exposed_pad.x)}' if exposed_pad else '' + return ( + f'{standard}{naming_num_pins}P{fp(pitch)}_' + + f'{fp(body_length)}X{fp(body_width)}X{fp(body_height)}L{fp(lead_length)}X{fp(lead_width)}{exposed}' + ) + + +@dataclass(frozen=True) +class Variant: + name: str + standard: str + overall_height: float # A + body_size_x: float # D + body_size_y: float # E + pitch: float # e + # only for rendering, unused because we don't differentiate between different package versions + # upper_body_size_x: float # D1 + # upper_body_size_y: float # E1 + exposed_pad: Size | None # D2/E2 + lead_length_east_west: float # L + lead_length_north_south: float # L + lead_width: float # b + num_pins_east_west: int # ND + num_pins_north_south: int # NE + min_clearance: float # K + + @property + def num_pins(self) -> int: + return 2 * (self.num_pins_east_west + self.num_pins_north_south) diff --git a/qfn_mo_220.py b/qfn_mo_220.py new file mode 100644 index 0000000..3abf939 --- /dev/null +++ b/qfn_mo_220.py @@ -0,0 +1,137 @@ +""" +This file contains configurations for QFN packages according to MO-220-K.01. +Not all possible combinations are generated. You can enable more combinations in the table below. +""" + +from dataclasses import dataclass + +from typing import Optional + +from qfn_common import Size, Variant, qfn_name + +# table 1 values +overall_heights = dict( + V=1.00, + W=0.80, +) + +# body length/width have the same assignment +body_size = dict( + A=1.0, + B=1.5, + C=2.0, + D=2.5, + E=3.0, + F=3.5, + G=4.0, + H=5.0, + J=6.0, + K=7.0, + L=8.0, + M=9.0, + N=10.0, + P=11.0, + R=12.0, + S=4.5, + T=5.5, + U=6.5, +) + +terminal_pitch = dict( + A=1.00, + B=0.80, + C=0.65, + D=0.50, + E=0.40, +) + +# table 3 +lead_widths = { + 1.00: 0.40, + 0.80: 0.30, + 0.65: 0.30, + 0.50: 0.25, + 0.40: 0.20, +} + + +@dataclass +class VariantRow: + tag: str + D: float + E: float + D1: Optional[float] + E1: Optional[float] + D2: float + E2: float + L: float + ND: int + NE: int + + +# table 6 +# other values are derived from variation designators +# fmt: off +variant_table_definition = [ + # tag D E D1 E1 D2 E2 L ND NE + VariantRow('xEEB ', 3.00, 3.00, 2.75, 2.75, 0.70, 0.70, 0.55, 1, 1), + VariantRow('xGEB ', 4.00, 3.00, 3.75, 2.75, 1.70, 0.70, 0.55, 3, 1), + VariantRow('xGGB ', 4.00, 4.00, 3.75, 3.75, 1.70, 1.70, 0.55, 3, 3), + VariantRow('xGGB-1', 4.00, 4.00, None, None, 2.20, 2.20, 0.55, 4, 3), + VariantRow('xRRE-2', 12.00, 12.00, 11.75, 11.75, 10.10, 10.10, 0.40, 27, 27), +] +# fmt: on + + +min_K = 0.20 + + +def load_variants() -> list[Variant]: + variants: list[Variant] = [] + for row in variant_table_definition: + length_code = row.tag[1] + width_code = row.tag[2] + pitch_code = row.tag[3] + body_size_y = body_size[width_code] + body_size_x = body_size[length_code] + assert body_size_x == row.D + assert body_size_y == row.E + pitch = terminal_pitch[pitch_code] + num_pins = 2 * row.ND + 2 * row.NE + exposed_pad = Size(x=row.D2, y=row.E2) if row.D2 and row.E2 else None + lead_length = row.L + lead_width = lead_widths[terminal_pitch[pitch_code]] + for height_code in ('V',): # we ignore 'W' to have less packages + assert row.D >= 2 * row.L + 2 * min_K + row.D2, row + assert row.E >= 2 * row.L + 2 * min_K + row.E2, row + overall_height = overall_heights[height_code] + variants.append( + Variant( + standard='MO-220-K.01', + name=qfn_name( + standard=f'H{height_code}F-PQFN', + num_pins=num_pins, + pitch=pitch, + body_length=body_size_y, + body_width=body_size_x, + body_height=overall_height, + lead_length=lead_length, + lead_width=lead_width, + exposed_pad=exposed_pad, + ), + overall_height=overall_height, + body_size_x=body_size_x, + body_size_y=body_size_y, + pitch=pitch, + # upper_body_size_y=row.D1, + # upper_body_size_x=row.E1, + exposed_pad=exposed_pad, + lead_length_east_west=lead_length, + lead_length_north_south=lead_length, + lead_width=lead_width, + num_pins_north_south=row.ND, + num_pins_east_west=row.NE, + min_clearance=min_K, + ) + ) + return variants diff --git a/qfn_mo_288B.py b/qfn_mo_288B.py new file mode 100644 index 0000000..bccc521 --- /dev/null +++ b/qfn_mo_288B.py @@ -0,0 +1,142 @@ +""" +This file contains configurations for QFN packages according to MO-228B +Not all possible combinations are generated. You can enable more combinations in the table below. +""" + +from dataclasses import dataclass + +from typing import Optional + +from qfn_common import Size, Variant, qfn_name + +# table 1 values +overall_heights = dict( + U=0.65, + X1=0.50, + X2=0.40, +) + +body_lengths = dict( + A=1.00, + B=1.10, + C=1.20, + D=1.40, + E=1.50, + F=1.80, + G=2.00, + H=2.30, + J=2.50, + K=2.20, +) + +body_size_ys = dict( + A=1.00, + B=1.40, + C=1.50, + D=1.70, + E=1.80, + F=2.00, + G=2.10, + H=2.60, + J=2.80, + K=3.00, + L=3.40, + M=1.20, +) + +terminal_pitches = dict( + D=0.50, + E=0.40, + F=0.35, +) + +# table 3 +lead_widths = { + 0.50: 0.25, + 0.40: 0.20, + 0.35: 0.17, +} + + +@dataclass +class VariantRow: + tag: str + D: float + E: float + D2: Optional[float] + E2: Optional[float] + L: float + L1: Optional[float] + ND: int + NE: int + + +# table 6 +# other values are derived from variation designators +variant_table_definition = [ + # tag D E D2 E2 L L1 ND NE + VariantRow('xECD ', 1.50, 1.50, None, None, 0.35, 0.40, 1, 3), + VariantRow( + 'xEFD ', 1.50, 2.00, None, None, 0.35, 0.40, 1, 4 + ), # JEDEC original, probably an error + # VariantRow("xFED ", 1.50, 2.00, None, None, 0.35, 0.40, 1, 4), +] + + +# table 2 +min_K = 0.15 + + +def load_variants() -> list[Variant]: + variants: list[Variant] = [] + for row in variant_table_definition: + tag = row.tag.strip() + length_code = tag[1] + width_code = tag[2] + pitch_code = tag[3] + body_size_y = body_size_ys[width_code] + body_size_x = body_lengths[length_code] + pitch = terminal_pitches[pitch_code] + num_pins = 2 * row.ND + 2 * row.NE + assert body_size_y == row.E, (body_size_y, row) + assert body_size_x == row.D, (body_size_x, row) + L1 = row.L1 if row.L1 else row.L + lead_width = lead_widths[terminal_pitches[pitch_code]] + exposed_pad = Size(x=row.D2, y=row.E2) if row.D2 and row.E2 else None + for height_code in ('U',): # We ignore X1 and X2 because the height difference is minimal + if row.D2 and row.E2: + assert row.D >= 2 * row.L + 2 * min_K + row.D2, row + assert row.E >= 2 * L1 + 2 * min_K + row.E2, row + else: + assert not row.D2 and not row.E2, 'D2 and E2 must be defined as a pair' + overall_height = overall_heights[height_code] + variants.append( + Variant( + standard='MO-288B', + name=qfn_name( + standard=f'H{height_code}F-PQFN', + num_pins=num_pins, + pitch=pitch, + body_length=body_size_x, + body_width=body_size_x, + body_height=overall_height, + lead_length=row.L, + lead_width=lead_width, + exposed_pad=exposed_pad, + ), + overall_height=overall_height, + body_size_x=body_size_x, + body_size_y=body_size_y, + pitch=pitch, + # upper_body_size_y=row.D1, + # upper_body_size_x=row.E1, + exposed_pad=exposed_pad, + lead_length_east_west=row.L, + lead_length_north_south=L1, + lead_width=lead_width, + num_pins_north_south=row.ND, + num_pins_east_west=row.NE, + min_clearance=min_K, + ) + ) + return variants diff --git a/uuid_cache_qfn.csv b/uuid_cache_qfn.csv new file mode 100644 index 0000000..42b6e7b --- /dev/null +++ b/uuid_cache_qfn.csv @@ -0,0 +1,1847 @@ +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-courtyard",1fd6ba16-01fb-42f6-b2f4-1692f2f9e057 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-docu-pin1indicator",7eaf7101-3714-4e4e-acef-f91cee3f48d8 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-docu-silkscreen-pin1indicator",81292dd0-ab20-410f-a5c3-5db48cd92e7c +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-footprint",b7f3702c-a242-46c8-a708-e8752767b9b5 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-name",a95c8858-27db-4f80-8954-eff1ee4b7b1d +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-outline",06114e24-169f-4c50-8043-b7cc15256dd2 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-outline-docu",b7062718-c1c1-47de-a734-64f18af27b99 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-1",a9677b83-6ee2-4d5f-b7d2-69c9b0f16d53 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-1-docu",9f5aaff6-f19c-4b73-98ab-c2cde36d117c +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-10",53330dfa-c525-48d7-b41b-94fa4e610774 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-10-docu",a73922d8-13d4-46f2-9a82-55044a81cef9 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-2",e939dc55-73b6-4846-8a6a-bcbe849bdbca +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-2-docu",d8ef747f-f967-4a32-ad52-afdd9cf3a4bb +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-3",346d5870-325e-4978-9bed-ea4faa0f1021 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-3-docu",2f5ad634-ed43-47d6-a989-660e59b759ae +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-4",35cd6fe8-4558-49c0-acd3-ee4ff22ca30e +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-4-docu",d6d068fe-7626-4b4c-bf18-39a0bb940c35 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-5",78d049f7-f028-478a-ae09-c399a1024ec0 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-5-docu",b82453ac-e162-4a9f-b94a-ac350cbf03b1 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-6",135a32ab-98db-468c-bfad-cb08a9e300e9 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-6-docu",bd344e72-4404-473b-9e54-e10ce2c89671 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-7",2ce31469-bb8f-4de6-a19a-9a1ebec3e42b +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-7-docu",4777bff2-311a-46fc-a893-3730f6d893a0 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-8",80609493-a44a-459b-b20e-36eaec30b808 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-8-docu",02cd20ca-d137-4e4e-a71c-7f83635af68f +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-9",3455e179-e23a-4ad2-bc72-c76145b9e40c +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-pad-9-docu",2fa2a308-a2a6-4104-a1dd-a9156d697448 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-silkscreen--1--1",71b43a73-ba51-4a34-9694-819f449c4b35 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-silkscreen--1-1",47e87f7b-9605-4b31-b354-e3bc4f7eb953 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-silkscreen-1--1",afb56d84-c112-4ac6-a134-5d5b1870afcc +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-silkscreen-1-1",e4c6b493-3ff4-4bb5-bc9e-6dca4aaef643 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~a')-value",143606c5-77f0-4557-8c94-07f1bcd7796f +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-courtyard",3d8d26d2-4467-4d0f-beb7-087dfd765806 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-docu-pin1indicator",8ee89f3d-e700-4c38-8888-f44617635d03 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-docu-silkscreen-pin1indicator",7aafeca1-e2b6-4124-99ef-7718d45f914c +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-footprint",3421c151-3a98-408a-9119-151fb3c8b76a +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-name",df9d23bf-3fa4-4468-b4cd-cf86ba7ce82f +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-outline",b724bf6d-d12f-4960-8210-83b514c425e2 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-outline-docu",bb490af7-e163-4fc8-838c-8e54a65a0b91 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-1",aa59c86b-fd62-4445-b5c0-22af285e4c9e +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-1-docu",e2475888-2c02-4992-be04-55e85006b8f1 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-10",7fe0ae43-bfd1-4b11-ad43-4abdec6c1b34 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-10-docu",7ab11ace-62f6-4767-99f2-0f492cdac11c +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-2",21d3018e-5ac9-4b33-96b4-c543e0946fcb +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-2-docu",a99d60e3-919f-46f5-a9e0-9c12ca9fd392 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-3",9caffa42-0af7-4ee7-883a-8b8ec4a3f3ad +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-3-docu",3a812874-2d1d-4f50-ab99-51161f5502b0 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-4",395d7a15-7e53-41e1-8118-c7d594ab6f5b +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-4-docu",da6a653c-ae8f-4b4d-9c8f-56f61f9c2b36 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-5",7d339653-1726-48fe-9dc7-52f30e773ae4 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-5-docu",b8c36ec2-c9b8-46e9-b1ad-23ab9276664f +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-6",2368d1b6-11c8-4668-9d29-1eab6aba99de +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-6-docu",2ada8661-e4c8-482f-84f8-cea4297b94f3 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-7",c1c825e0-2c50-4a7f-97e5-eb782648a504 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-7-docu",7176dc79-96da-4b57-9a01-8f2df05d3117 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-8",ba12c2d4-66f5-485a-8b1a-dd5903bd916e +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-8-docu",2a50fc79-70d5-4eaa-84ff-9bd9619ff4b5 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-9",60f380fa-538d-46cd-9072-4565f0ed0ea4 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-pad-9-docu",d6069403-a151-41ed-9c93-125e39ef15e1 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-silkscreen--1--1",197713ca-5b80-4251-8501-e1403f4b0300 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-silkscreen--1-1",be96e2fe-4f76-4dcd-a8e7-1bac9671830b +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-silkscreen-1--1",08d68c69-72f8-4bf0-907a-b8b8845c62f4 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-silkscreen-1-1",da39957f-5637-48fd-aaf7-9e2753e47030 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~b')-value",3c2d4e9c-ef1c-441f-98df-958de92071e2 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-courtyard",b22c134c-5e22-4e6f-b0be-852c22325ba1 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-docu-pin1indicator",6c0fa87f-8f80-4670-8e31-a373e6fb62c2 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-docu-silkscreen-pin1indicator",1fc01cdb-f754-4056-b32f-275c61898bac +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-footprint",60016a6c-48dd-4423-a668-d86762aadc5d +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-name",03d1b378-7056-4a07-b09a-ce8ea1a9d4bd +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-outline",9807c3c5-040e-4a92-8ebb-0090a47458d4 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-outline-docu",32e0e2ef-f9aa-4169-ad9c-740a77821f44 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-1",725de5f3-2873-47c9-94c5-6ad49c1a1a46 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-1-docu",21ffdb3b-f71f-4ea4-87af-40008659d451 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-10",2dafd08f-2f3e-400c-a961-7f0f11a32083 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-10-docu",8dd816b1-b45b-44c1-a0b4-d449fdb50a45 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-2",ba017fe4-768c-4a9b-862e-de6c9cc6c701 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-2-docu",b179d9bf-8e74-4b86-9d34-13c0da7aab8c +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-3",1a6b35c3-c915-43d2-a191-97a45133ab16 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-3-docu",069e49c1-e1fa-4363-b571-a757089d0496 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-4",35e6db0e-3fe6-46c1-8c3b-b0130cccdef2 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-4-docu",75332445-e2d5-462b-ba66-67b0e3b24fee +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-5",899b8385-5832-49d1-b29c-a87cc743dacc +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-5-docu",58005467-2de3-44eb-80c6-000f616ee06b +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-6",251e9d50-e32d-4b1c-b11e-28c5c2ec63a8 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-6-docu",c7117cac-edb7-49f5-bfea-6ce57cb6803f +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-7",b4699cf5-9401-403f-a8f1-3bb9b0c8d3cb +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-7-docu",d6930e5e-d177-4ea9-a2d7-ee09272fda5a +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-8",85fb0cc4-f2f0-4d8d-b96c-aabd7c521cba +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-8-docu",d7c22e6b-8d25-422f-9995-8db470b4f0fb +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-9",79c74ae8-3003-49d9-9526-8e4f83a263bc +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-pad-9-docu",214ccf38-feae-4632-9d24-a5b28c70f4f3 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-silkscreen--1--1",38bb3f78-ed5a-4ce8-9b6a-b486aeea8ea8 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-silkscreen--1-1",e216902b-7908-45cd-8c79-753724ecab20 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-silkscreen-1--1",ab48d25d-f3c2-4050-bcb6-91956aabab53 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-silkscreen-1-1",8b9e2bb2-4961-4f54-bda9-19fd9fac3472 +"pkg-huf-pqfn10p50_150x150x65l35x25-('footprint',~'density~c')-value",8e6d09c2-cedf-4f25-8d30-334e522cc1f1 +pkg-huf-pqfn10p50_150x150x65l35x25-3d,b9802c20-ccfd-43bf-b470-87422c02a037 +pkg-huf-pqfn10p50_150x150x65l35x25-exposed,4893fe2c-fd15-411b-8c08-13eebb6c45d1 +pkg-huf-pqfn10p50_150x150x65l35x25-pad-1,47cfeb9d-c2d9-4e9e-8bca-3eb6540da696 +pkg-huf-pqfn10p50_150x150x65l35x25-pad-10,6525245e-75a7-4cf9-83fe-36c8511826df +pkg-huf-pqfn10p50_150x150x65l35x25-pad-2,dadc100a-bd9f-4018-baf9-93ca7a75b544 +pkg-huf-pqfn10p50_150x150x65l35x25-pad-3,a8f5ea08-2eee-4e71-8153-1dd95d85c337 +pkg-huf-pqfn10p50_150x150x65l35x25-pad-4,b6632f05-84e8-468c-ad91-20e67dd337c3 +pkg-huf-pqfn10p50_150x150x65l35x25-pad-5,107d8c20-76af-4c1d-8853-50bdce41df13 +pkg-huf-pqfn10p50_150x150x65l35x25-pad-6,ae5982d1-927c-4b92-ac4b-83c0548f20c8 +pkg-huf-pqfn10p50_150x150x65l35x25-pad-7,566d97be-df27-4fdd-b56b-89c87a949d0c +pkg-huf-pqfn10p50_150x150x65l35x25-pad-8,1feafff9-592c-4c89-800c-a4b593fa3920 +pkg-huf-pqfn10p50_150x150x65l35x25-pad-9,2fa5b0d9-ab1a-4785-b033-4310792165a0 +pkg-huf-pqfn10p50_150x150x65l35x25-pkg,a99c521b-5b62-498f-b66f-ef585479374f +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-courtyard",78a91167-d044-4a0d-98ad-9e8fd9a36910 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-docu-pin1indicator",87b20e66-807f-4f3d-b132-cfef4885f329 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-docu-silkscreen-pin1indicator",fdae6d3c-eb44-42aa-90e2-6af5cc562a76 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-footprint",7df4b587-635c-4306-9aae-49a418bf5447 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-name",625a4c53-ee83-48b9-aece-e3920fda17aa +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-outline",b1098a3a-8602-4156-b07a-96681057c1ea +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-outline-docu",9be88303-43e1-4c8d-9ec0-37a1522361ae +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-1",f485d59d-6e18-4ddf-9afc-ebe5c27ddd03 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-1-docu",b2428399-3783-467a-9625-525d3f457852 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-2",d4562f81-1518-45fc-9c57-96bfdba4bbc2 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-2-docu",dceed75e-f395-49a7-a699-61af5f9c52e0 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-3",ed157180-fd78-4552-8512-bd51564fea75 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-3-docu",1589e102-b1f4-4ede-92b5-68f705e9abe7 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-4",da5e9a89-fb32-4b5e-8eb3-09ee757830bc +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-4-docu",70470692-a31b-4579-820d-80084621e838 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-5",80fdb323-52ec-48e0-94e8-2f1beed1871b +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-5-docu",313891bb-932c-4c19-a252-96044e98a59d +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-6",7659b51f-9346-4e10-9d32-dffe5f2c5db6 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-6-docu",46d35e93-c54d-4bcb-8257-093580c22e0a +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-7",4ab5b1a7-e20e-4c31-8458-e72687cd5218 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-7-docu",4b4d0898-a1f3-42a4-9ad1-097c1438cf41 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-8",bbccafbd-ae26-40bb-9eab-5ccbbd26fc54 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-pad-8-docu",79b779b1-94f9-4925-bd8a-1696e7d14450 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-silkscreen--1--1",746b2ef6-6311-469a-a2d5-e935e1caa193 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-silkscreen--1-1",8af3ddfd-d66e-4e44-a477-fb1adde3b986 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-silkscreen-1--1",e1c6d9a4-fdff-4289-a798-79cf40b85277 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-silkscreen-1-1",d82e70f7-d818-4cc9-8af4-65203e0acccf +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~a')-value",faaae920-3e52-40a6-8c93-b22091ae811c +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-courtyard",175e0fb8-655a-482b-9e3e-fd0d80797d17 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-docu-pin1indicator",0afb8aac-0679-4f5a-b104-e7ab8ae81a71 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-docu-silkscreen-pin1indicator",227818c2-6047-4d91-907c-72fe6c5ec576 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-footprint",4a514e5c-d6b1-4b70-989b-61dcaec42f1c +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-name",84a4135c-c0c9-45b2-913b-207d66c42251 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-outline",ee620591-4666-4faf-96e5-5a425d027b50 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-outline-docu",191e0832-65a6-404a-b9e3-5fffa9a6618b +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-1",c807286a-5a29-4683-9aab-94e0c53960d0 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-1-docu",722f9b3b-19ee-4001-b45c-9d5edc63710c +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-2",9bd759b9-2855-4886-b5cc-93d96c5c5d14 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-2-docu",099404f5-8c01-41db-860a-0d8b1eaa57d7 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-3",387b6b8f-a9c3-4521-889a-547bfe638931 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-3-docu",d65db10b-0bb8-4833-9509-f16278eef32e +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-4",90a621ae-3828-4076-9861-1e6498be8ce9 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-4-docu",9dde0be4-9dd7-4ba1-b0b9-b21fbaa8cc79 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-5",e949ec6a-33b9-412f-9693-a54b7b7d1c5e +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-5-docu",a3e7c8e1-8f76-4233-8bd4-ac730e1c1803 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-6",0f6184da-1580-47b2-b4ff-6ab5f09cda48 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-6-docu",be113ba4-42e4-4bff-a2ad-862ee6c38bea +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-7",afc59029-ad37-4d0e-9ed5-f6ed1348e1e0 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-7-docu",4524e106-2780-46b1-9413-afdd3c98adc2 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-8",b379f623-3a53-4d76-80eb-fdc9727e2d07 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-pad-8-docu",9cb27afb-3d03-4742-8acb-79cb62a6b653 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-silkscreen--1--1",89b80a9d-e603-42dc-baf9-1782e282a5d8 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-silkscreen--1-1",9df84840-141e-4d6d-8709-aa75ff71c6bf +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-silkscreen-1--1",1e72bd58-fc26-4e6b-93fa-a56f246d9f4a +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-silkscreen-1-1",c02bf3d3-f66e-4095-bd28-eea6bcdc98f0 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~b')-value",67932561-6e83-4c62-8d8d-3d9af6897de0 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-courtyard",e08a9c2c-420d-49f2-92a7-27ecfbd38387 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-docu-pin1indicator",7823af0f-0f78-4153-8854-de5bcb5d5fbe +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-docu-silkscreen-pin1indicator",139fa49b-641d-40e4-a02f-d80b0f254401 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-footprint",0cc20453-13ba-45f2-b7e8-b8bd6d8b44be +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-name",39b6fded-861e-40e3-aef6-c5e928aa2b54 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-outline",6bef3c80-d8e9-487f-8f12-0b3cb5ed6c89 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-outline-docu",73648fe1-0e51-4881-a6c1-5f638524d191 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-1",c303d602-44c0-4e0e-930d-ffbb4b082411 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-1-docu",4e0b5a44-e3be-4214-9424-eb47167962a6 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-2",59baf914-7c8b-4f6f-a215-2635962bf13e +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-2-docu",ef638cb3-78bc-4404-bffa-b78fbfd29b36 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-3",55b659fc-a130-4b1f-8423-afbe12cc7038 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-3-docu",d8190963-5b99-4338-9459-53274ac7af74 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-4",a7c22b48-2bc1-476c-9d7e-62e749b6bc7c +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-4-docu",518a258b-7061-40c0-a268-0303779a2151 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-5",8a7fb134-9a62-45ea-8013-0ecb73e2c62d +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-5-docu",6172a7ab-cb6d-4f52-9693-2968af47e0fa +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-6",8c774234-c2bc-4889-90f0-e60afbdfe51e +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-6-docu",9bb2824f-bc63-4e21-98b5-799588138363 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-7",e36daf80-98ae-49fb-a206-a6e51d6df815 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-7-docu",afd52bfe-e8f1-4f48-9f02-fcda76f9223e +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-8",8fb504a9-c376-4c87-aa29-926e9e9ccb52 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-pad-8-docu",2c9a2c6a-1be2-42ce-8dfd-f3ff7351c01b +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-silkscreen--1--1",ba894269-2369-4acd-8f97-7eeb7109cee2 +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-silkscreen--1-1",f56ab6de-925e-4235-ae72-b35003097a3b +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-silkscreen-1--1",6620fcf1-61b8-4582-bf01-04386781623e +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-silkscreen-1-1",9503a416-2df1-4031-a493-86aa0f39c9ca +"pkg-huf-pqfn8p50_150x150x65l35x25-('footprint',~'density~c')-value",1b145b34-6a37-455f-bbde-9d4ef890938d +pkg-huf-pqfn8p50_150x150x65l35x25-3d,8486d8b7-3baf-4f34-876e-d5c9b836859c +pkg-huf-pqfn8p50_150x150x65l35x25-exposed,b00b084a-045c-4c78-ac9f-f4ec78389e60 +pkg-huf-pqfn8p50_150x150x65l35x25-pad-1,f33c522f-f1f3-4b26-9a8f-98e30e5d927c +pkg-huf-pqfn8p50_150x150x65l35x25-pad-2,812694f4-845d-4c73-ac1a-b08ff2aa3cdf +pkg-huf-pqfn8p50_150x150x65l35x25-pad-3,dea0f6f9-e967-40af-86fb-bf6ccc4b77a9 +pkg-huf-pqfn8p50_150x150x65l35x25-pad-4,b2839a88-0949-4844-8dd3-b28efcb6c5cd +pkg-huf-pqfn8p50_150x150x65l35x25-pad-5,2025a77d-40a7-457f-9cdc-c1125f282ce3 +pkg-huf-pqfn8p50_150x150x65l35x25-pad-6,d55bb41d-fa31-4837-85f0-6d41182512df +pkg-huf-pqfn8p50_150x150x65l35x25-pad-7,609dfb55-78a8-4a90-825d-419d11451a24 +pkg-huf-pqfn8p50_150x150x65l35x25-pad-8,a4ca3cdc-bc2e-48bf-8d62-65cc77550387 +pkg-huf-pqfn8p50_150x150x65l35x25-pkg,408edd79-e0f0-434d-a831-dc4441517973 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-0",3695fadb-dd3c-4c3d-8e28-83ca42e92e8f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-1",5b42a8c9-0efd-4d2b-8d40-9a87802f44a3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-10",fa015253-f392-4a48-ac44-da5c2e330c6a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-2",e8d9faed-ae8e-4936-bbad-7cd79b18c807 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-3",0524816b-ec59-4031-8786-1ed39d822e7e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-4",ce9bfb20-1690-4861-ad4b-4a9badf6cf2f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-5",d931ee5d-fd13-43f4-95e9-b159db78fe4c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-6",95bd1afe-c5a8-4d9c-857d-e76646116873 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-7",08a1c00f-efa3-4a90-8eff-5abd008b1c54 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-8",c18c2110-f485-4d31-88e8-f39c901c521b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-9",aac7442d-8f1b-482c-9bbc-d56bf8c01b1f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-0",1198847e-7d15-4058-8173-a493fde01660 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-1",5ddf7629-73a0-4d94-abee-8eb4dc7eebd5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-10",ca610e37-ff44-435a-8fc0-c8c3762ff467 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-2",203be391-a1fe-4239-bca0-68a0965a8b9d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-3",db6250dc-41ac-4529-9a79-6d4571d3f5a9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-4",7a73d7ea-3860-4ba5-891f-5c10d0afd04f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-5",7fbc7561-2365-49dd-a8e8-d06b8cfe04b8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-6",97f0fdcd-d971-4a2a-be5a-c139845cf591 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-7",123358f7-32bc-45d7-998b-94afd628981c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-8",0abab044-66c7-480b-a570-ba4c70437731 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-9",7dfc9af9-755a-4b23-853e-42a6ea63b298 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-10-0",fb3e8d53-b75a-40d5-b6ad-fb982e7f9ec1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-10-1",c535d277-e281-4930-928a-0af7df493f86 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-10-10",67f6c7c5-fecc-4651-91cc-8ae6309b79fa +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-10-2",209afc70-9580-4c90-a6ea-5733a693e38a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-10-3",289b0586-0541-44b4-96dc-acb177f618fc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-10-4",7be0b318-b99b-4270-82b9-ba4f2d6dd961 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-10-5",2cb089c4-4cc0-438f-aaaf-ec34bc5f2f74 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-10-6",c8b822e5-4801-4c4f-b9e3-560bb42e018d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-10-7",d7ddf98e-6e86-4f17-b3eb-ae7230a7650d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-10-8",41f0d04f-de40-4699-9512-9b11dfb389ff +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-10-9",44d7eda2-b528-437f-8810-127f3e1b2568 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-0",8d12ee91-ef6f-4040-b41e-fd24773e87de +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-1",6b968835-8983-4b31-aca6-1fd3610e19ac +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-10",9f94f955-e4f3-4492-96b1-9b4438453bdc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-2",fcecdd13-7a65-4607-b6a1-9028a8376c1d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-3",26512350-8588-40e1-9e0f-b3b8bedf2736 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-4",0f34bf27-6b07-48e4-9176-5b9b1f56dff4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-5",16445539-5b9c-402b-b134-1aabdd98242c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-6",22558056-e57e-4569-9846-bb59af07bfc8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-7",75a10a02-89da-4957-b9b7-d8ee99ea179c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-8",d28741a3-d5d7-43b8-9b7f-401c3d720d11 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-9",d43c6f14-41de-452a-afb3-9d1ded33cdea +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-3-0",138b0ed5-889c-4e9b-bf7b-160478a745d1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-3-1",a235a6f2-9666-4386-a0ea-91d7b99828a5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-3-10",713471ed-f29d-4256-92d0-49bc64fb2664 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-3-2",a8903419-bcb4-46e8-b8fd-a453521de495 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-3-3",169eea07-6455-4ec7-8d78-f1daf2fecbca +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-3-4",14cb6ff8-68b0-46b9-9c6b-5ea787650f32 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-3-5",098b06f7-1a36-49ac-9804-10bffafe22ea +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-3-6",61ed26b1-82bb-4e40-9af6-c41396bef377 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-3-7",6b2f5ad8-2256-41ae-bbff-c92c15512499 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-3-8",71f27b82-cc65-4c3c-8fbd-0bc319b7c87b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-3-9",a8a76699-936e-4be9-9fa4-c8e19685684a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-4-0",04d25258-f42a-4cf5-ac8e-1d6453bc1139 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-4-1",63624747-8114-4c52-8c79-6d2afe6246c8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-4-10",115b60cb-5f85-4a42-b9d2-a34d3c533925 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-4-2",c05f2f51-c005-4b27-bddf-2f39369d3067 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-4-3",eff49313-9abe-4aaf-9b29-66e6b1534688 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-4-4",f7733f5d-00f1-4b74-bb25-ca68ab8dcb2b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-4-5",2bf750b9-cf33-43b5-9ed5-581e3b54b83e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-4-6",40978888-889e-4aab-b414-f128c7578228 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-4-7",f385455b-4ff5-44cf-80f2-d90b89212722 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-4-8",4377a1ac-3fdd-41ca-af9b-36a2d2b3b742 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-4-9",52298b93-c68c-4fcd-a5e0-6e96f4ab3a2e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-5-0",23e285d5-85df-45c1-a91d-559cd9ed5428 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-5-1",7ca58971-fad9-4be9-9d02-d86fe5aa207f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-5-10",ef6a612f-fa43-4ae8-b7a5-0ab9f062b647 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-5-2",5fc8004a-9ecf-4706-aadb-6797a1e33665 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-5-3",292d1f5f-163b-417f-a5d5-36f532448dfc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-5-4",2c20ade9-88e4-41f7-8cb0-fdef2a0d34f1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-5-5",5547206e-eb9a-4c61-a677-8149ec3bc067 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-5-6",c10a1201-f3c7-4efe-8829-de9f6cbc70df +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-5-7",4a54ff6b-5104-43af-9690-d8514c05c653 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-5-8",ef0531fb-14a9-45b6-8961-6065c5695a5f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-5-9",26f28888-98f9-4a50-b010-0914d6c82beb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-6-0",6d6846dd-2e90-418c-b4d4-bdb8f58358fe +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-6-1",f5a22fc0-29ea-48ab-b30f-998ced35b4de +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-6-10",08e36fcc-02a2-4517-b3b5-f22f327d76e8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-6-2",444c6b6e-a2aa-49f8-ab0c-11f0437e0fa0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-6-3",78e947e2-f893-4ca8-b953-e9639af1c15a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-6-4",a087a086-0d01-4da7-aa5b-091f04b1e652 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-6-5",9e6d8bcd-85b0-4286-9933-37e7f7cadf29 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-6-6",f0622d41-b901-4201-ab18-82ae76965398 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-6-7",db05971c-3b1e-4a65-b9fa-16ec4dc3b6bc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-6-8",55648a38-c463-4d67-a407-6d6c71534bfb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-6-9",f5225597-9ed1-4016-ac07-50f1542d351e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-7-0",574673c9-39cd-48d4-84a4-cd9bf01728c2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-7-1",dec0b901-2050-45c0-a337-c091b3edc63c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-7-10",74d12b5b-01be-4d03-b6fa-81bab92d90b7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-7-2",0a8daf01-0263-4ef0-99f2-ad1723b41f48 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-7-3",f7e6a86e-1b6f-4772-a65d-b35a5bc73c00 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-7-4",6a83cef3-dfac-4c65-a33a-49abd68eaaa1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-7-5",96ef239c-c76f-4531-831b-8807c6cfaa53 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-7-6",06336f0c-1d43-45d7-9e12-549d66faba1d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-7-7",3679f5ce-f39e-4098-bd2d-60a58b72fd58 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-7-8",9cac7050-7fd7-4d16-bb52-752230c5f7c6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-7-9",95438671-231e-40b0-97e4-3da8d5c2f952 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-8-0",73f576f9-a313-4f52-af11-d1f2eb3d7917 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-8-1",a2362a75-2af3-4088-8ae4-4a6c5b7e82d6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-8-10",5cd92fcb-22f8-4b9a-a3bc-f860f2bd43f4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-8-2",64fec228-8437-4d73-9223-7d068bdc5a79 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-8-3",38f124ef-92ce-4ac3-909d-05a3527a43d5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-8-4",3e9b03b9-d70c-4791-a7f1-4916ac5817de +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-8-5",5cb2011c-f11a-4732-9f97-e4410de70d76 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-8-6",d3827adf-9eee-4bb2-96de-7ae104ab12d3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-8-7",69f217fc-8d13-42ed-8a08-eabdc0acdfdf +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-8-8",8bc087f5-63f3-4664-8bdd-a293b281f51e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-8-9",6cab53cf-d2cb-4a23-bd8a-11a32202bace +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-9-0",ddccca52-8cca-4085-8954-b32ebdb89e96 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-9-1",9f32cb31-6f25-4484-b23c-5b0c10b03e08 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-9-10",423967d9-9988-4656-a022-d8c40f871678 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-9-2",759f1755-45bb-4260-8f1e-7b90b877ffdb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-9-3",066d5c82-9cc0-4569-97bf-745969721b2c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-9-4",54a7d6bf-fd2a-468a-9c84-5c433526b1f5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-9-5",d93430c9-05a8-4aff-afd8-df1c4c103d05 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-9-6",008d76d8-cdb9-42c2-a93a-32308649fd77 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-9-7",f091c18a-9bac-4654-a3cb-6024a628393d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-9-8",8d2093c4-7b22-49b4-87f0-7a5289af0084 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-9-9",eeaf8efd-1ef6-4730-b2f8-979dee44a593 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-courtyard",81b2b23f-1a46-4411-ad8d-dce16e8d6193 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-docu-pin1indicator",ccdad32b-4de6-48c6-9c8b-e9a913984a84 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-docu-silkscreen-pin1indicator",2dc48101-54ce-4d09-98a4-3d8ecc609a66 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-footprint",d025a45a-d1ca-4c88-bad5-3abc0637fbc6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-name",0116fe37-5af9-4bb7-b478-9853e3ce4766 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-outline",05906241-1047-4890-b63f-5a49ddb6ee37 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-outline-docu",a8c13afd-cca1-4aea-b28b-cf75c2adb10d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-1",f02802b0-1ecf-4fd6-8899-fbed12d9790f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-1-docu",5f5e10f5-e92d-4912-a447-bdef8a34ff08 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-10",57e79947-4a72-4da3-a4d2-2e8ae84e6d2d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-10-docu",0429f561-45f9-48e5-851d-60b9aa2387dc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-100",2b440e66-3fb2-423a-a5fc-d75e41d0e226 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-100-docu",195a3b5a-68e2-4346-a60b-680ea48a3eaa +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-101",4316be0e-dc36-4009-9cdc-ed7acaa13c40 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-101-docu",1b03e89b-ca2b-474c-867d-4e908788f8c1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-102",b896b78b-216a-44ca-8f68-fad9990790eb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-102-docu",6e48b7fa-dea2-4f75-983b-222b1fe5d414 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-103",c0f339b4-436c-4fd3-ac0f-1669f56dc066 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-103-docu",b26dbc69-f745-4872-87f8-d0b6e08600ca +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-104",6627a882-c705-4734-9d5c-ba34e66cd6ba +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-104-docu",8f5e94d1-f69c-41e5-9e0e-b73c4cd5f11e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-105",b4211c5d-b26d-45e6-b976-ec7e0f1b2ec6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-105-docu",b359ae95-1a55-462c-b14b-caaf23a0ec58 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-106",ab456997-472c-4eb8-8d26-0da27b06a916 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-106-docu",442ce656-f76c-4a56-908e-83638461782a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-107",d7b977e9-4242-4696-8d5f-3e6b4defc2a5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-107-docu",de988781-a169-4640-9c92-63ae6b4a5f84 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-108",0e96cd4f-f382-4743-bb24-646929b46b6f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-108-docu",901f62cd-3a62-45c1-87f2-a60e4ba54736 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-11",93183260-4594-47bf-b8b8-853fcea198c2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-11-docu",49e05f89-3037-4501-bace-fc0dad41836d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-12",aebc6fa5-f753-4a5b-bf01-a32829d5743a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-12-docu",2784e206-0564-4e11-b042-ae238b6549e5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-13",342bd0a2-2f92-472a-8f6e-e59b85ff83dc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-13-docu",5263215b-352f-4ae8-82a2-e7c7ef4f7229 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-14",e97e65a5-819d-4ea3-8b02-17f7e4a5bb0a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-14-docu",eb0f1ff4-5272-4029-b6cd-a0c0c244f7c8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-15",6534f8f2-ddbb-4ad4-a1a4-79c17dd7d853 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-15-docu",ac515ca4-3970-47cd-8330-fa7ffc07bfc1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-16",cef0ed5b-670f-4d5a-b1b0-5e870271026c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-16-docu",179d18ec-c770-4f4b-8d7b-09892d59f60c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-17",80135de5-fe6e-4047-97f2-af89778cb22d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-17-docu",6bdef882-f297-429b-94f4-2dfbe963a13b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-18",d51b77dd-510f-4a21-b923-c23e00d9a801 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-18-docu",ebb72347-2e35-4820-82bd-7ce686a46d7e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-19",1dbf4f92-3e18-40e5-81dd-ab28327794a8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-19-docu",ad91e24c-e703-4bf7-9339-d13ac9fe81f5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-2",be22ffc7-473b-4454-94fc-8b0ed85a5a66 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-2-docu",144cf69e-4fe9-4f6f-9324-762201bb8898 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-20",bda32e7b-ae29-4ea7-99b5-d40bed80b38b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-20-docu",879837ec-6ce4-46be-9d27-66271d9af02c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-21",7e86a152-4f8b-4ab4-9418-94736c317df8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-21-docu",25d095ad-89c9-4fa4-bb4a-0ed916b63f75 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-22",a04da0e5-db96-4f1c-a523-4d7ef2e74dcd +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-22-docu",7f687cd0-9a58-44cb-bde6-437e47e93612 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-23",4ab110c1-7e2e-41bf-864b-f1ab05fc9fa6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-23-docu",96a56a97-c803-44ea-b2bb-da7503d82b8f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-24",aed87cf5-2272-44f8-94a4-5630175fdbce +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-24-docu",e29d1936-bde1-4985-87f1-aceb68788afc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-25",ae9c874c-28c1-4584-a2cb-01bceb24134b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-25-docu",5c0cc33c-b45a-4f13-9089-f4769b9f5bdd +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-26",5b9e0f57-bcb4-4ffa-a52e-fcb61ca0c625 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-26-docu",74d85ae8-eb05-4a63-8437-85b49a6af93e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-27",fc8d3e57-6335-4511-8067-2542295026c1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-27-docu",dde4784d-a589-4f84-b6df-897aa9454e39 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-28",4918de66-30fe-4a89-b157-e94b9003ae5b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-28-docu",692b5dd7-5d0e-4913-b532-e2585a12ba88 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-29",348fd136-472b-468c-b159-7883ab7ba561 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-29-docu",9ac52f63-122a-418d-9b4f-921a4b8684c3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-3",eec8eb5a-b9ed-440a-93ee-5b6a58c4986c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-3-docu",1eb44078-9429-407a-80e3-76bea7e9e187 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-30",bc0e7244-6c8c-42b6-81c4-9675dfeabc9e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-30-docu",7d70c365-661c-421b-b418-a2239571322e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-31",07a43b7c-2f56-4c83-9d53-e2bbbc278074 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-31-docu",874913fe-5b88-459c-bc4f-aebe5dff689c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-32",69f40023-5bb3-4244-b10e-bcb23c2f047f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-32-docu",53ad57e6-80c9-40cb-b8b3-e2b7298dde10 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-33",cc1b4eb9-8850-4a9d-8ceb-6bcdd1027d8b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-33-docu",b4395472-8ec2-45b8-99fa-65605820c33e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-34",9e066447-57de-46ff-a8d7-03091f333976 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-34-docu",845b2e61-df35-4e84-b249-148a4fab3f2b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-35",0b3aafc0-a4c0-496f-a5c0-875a640ee3ae +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-35-docu",1501b71c-d74b-4eff-9e5c-91b849944507 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-36",8521f357-4d1c-4e84-9214-102065cc06ff +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-36-docu",9e6b3996-d7f4-4394-916e-e34260961ae0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-37",10d1d3d2-bd9f-42b7-a559-b433a2a5c71e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-37-docu",7e938fb6-0721-4d23-a135-78f3d265397e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-38",007faddc-19da-47df-b23d-2d0ff1344c81 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-38-docu",33f7ed85-ff9a-4e20-aedd-7796a97b2f4c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-39",77797929-fcfd-43ab-a4c3-7c90ab3a8664 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-39-docu",76c9cd77-ba4d-4cb8-b2db-62748cb914a1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-4",5d5eeb83-6fb1-47b3-8b65-e833355300d5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-4-docu",f582b584-d474-45ae-8328-687502488c0a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-40",fc048e54-b5e3-4eb3-9da5-5c2cb044ba31 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-40-docu",859b3a1d-8773-49be-908a-6584359bfe1e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-41",85e22c54-d57a-4c06-ae47-1755316bdf30 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-41-docu",4cc28e77-4c91-4c40-9c16-c9e4d15138bd +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-42",ce64743f-1dc5-455b-90fe-70c77da97f01 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-42-docu",be3ca3f0-fff0-404e-9214-95bb0f7c51fb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-43",8283d209-8fee-4bd6-aa00-bf9f381cbdd3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-43-docu",197bd33c-03bb-4f43-9cda-a0aad2162f31 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-44",61764699-32a0-4e9c-93a5-be934e1e38aa +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-44-docu",69231e2c-eb2d-4d59-9a32-a3382e75611d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-45",0f81d078-3369-44bb-af84-410b8f39ec89 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-45-docu",a8e0f639-906b-4450-846a-0115b299b567 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-46",888cc793-454c-4102-bb68-2a229d959839 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-46-docu",10ce7382-18ca-4dae-8363-1bfd3fcd9499 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-47",05b43771-74ab-41a8-8738-eee37df2191e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-47-docu",4af8d943-7e26-4824-8ae4-f620489b72de +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-48",f5c77037-e802-4729-8632-5d25b5cad6cb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-48-docu",ad92bdf5-edc7-4476-9a3f-8c7ade93c64c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-49",494e1671-e935-419a-aa1c-f5d91def8b2c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-49-docu",e28502c1-9b5f-4619-adf4-f5b03cf41eb8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-5",c1966252-4f25-481b-b052-28d4671b9521 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-5-docu",fdabe904-98af-420a-9e97-d691f95bdf58 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-50",3d7ed3d1-7357-4949-8085-0c4d906712d2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-50-docu",98dd49b8-8d3d-4273-aeaf-61ef43f05742 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-51",5b211ff2-d459-4019-8071-d57d46f8b196 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-51-docu",81095ed1-8b42-43c1-8db0-66c05e4bf761 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-52",d7dddcd4-3963-48c0-97ab-1994c37822ed +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-52-docu",2e62e875-0277-4940-b5ec-1907497c1455 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-53",a1665a77-f1b9-49e0-9c15-fc2d559136ee +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-53-docu",4778bfa8-3a67-4abc-91b1-1109c6fcba71 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-54",4ff20d81-010f-405a-bdb2-bb2f4d75607e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-54-docu",6064ce37-57de-4093-88e7-091d0f89bcbb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-55",7c3b3457-40c3-4215-8b2e-78e9f25cd5f7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-55-docu",8cd8b50a-c55b-4191-a22f-f19861dd70db +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-56",7a2603c0-1acf-4921-802f-39e54e1cd8a0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-56-docu",f6d7ed67-4b04-487e-832a-16eda4f79e5f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-57",c52aa838-bea4-4a61-bf4e-397049d920fc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-57-docu",6b8f55e9-da35-4499-b203-11a4a4069e26 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-58",d4da22a3-50d4-47e5-931e-81d8e9808e42 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-58-docu",9587d050-0ad8-4bb4-a4a6-21f52e2eb0b9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-59",092650cd-43d0-4a98-9c6d-058fb17c134a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-59-docu",412b3810-208f-4723-8d96-f742b5cd52b3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-6",ae039a21-ebb7-4cd0-ae6e-fd6cc210b414 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-6-docu",c0d319da-c3f6-4117-b5ea-4b8cef1c5660 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-60",2b4f28d3-d92b-42fc-9ab1-f32651ffc987 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-60-docu",0d3bdadd-f676-4f0e-909b-e1b6313a043e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-61",fc06f5b0-5c5c-43bf-a183-3789fd533023 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-61-docu",8acd7334-2440-4030-a009-8a6550d148bd +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-62",5830f075-d3c3-4b45-8b65-b192d14718bf +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-62-docu",92283e79-978e-4e2f-a1f1-53e02d194159 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-63",5561e966-2a49-4106-91f0-2747249ccbdc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-63-docu",d502281b-58fd-460b-aef8-cadbd1b877ef +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-64",a92ced79-59c7-4e5a-ad09-8db727aad5ef +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-64-docu",1f9a5ef5-7b33-41f6-9566-06ca347ae74f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-65",11ea1bd5-6c6e-4ad3-87f5-af1dd048dda5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-65-docu",fb0f8216-e9ce-4534-980b-85fc43630cab +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-66",53e6dd3d-5579-418f-8a2f-1710b9aa2c89 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-66-docu",ff269658-1434-4fe8-8752-4d1c62d1fb8a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-67",a849a6cc-f6bc-4d64-9574-392b524f3ac6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-67-docu",ea632220-eda0-4ba8-a7f5-5df509ee61ba +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-68",63ea3765-41c1-4920-bebe-08ec3b8de679 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-68-docu",f897930d-8f2a-42d8-bc2e-4ad7685b6b57 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-69",b3008c9b-65a9-4337-95a0-686778de07f9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-69-docu",235fe074-42aa-487f-a346-57c77acbd5a4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-7",0332c74f-957d-408b-8037-a67d1a1885e5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-7-docu",986b2e98-bc87-439a-a17a-00dc2ae53d8c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-70",fde2bf4c-6f94-4953-b3d9-f25d9f19982e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-70-docu",876a0a97-3f5e-4985-968c-538de82e55c3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-71",7d83dacd-e775-4a23-b9ab-1cea1bea3adf +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-71-docu",00eee01f-4999-490d-ae4b-9abf09371c35 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-72",dd4bf614-8670-4d51-a3c8-474ef49dd7ee +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-72-docu",f367a6ef-1fc9-4ab6-beb2-7adb9cda9ace +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-73",ba2908a9-86de-48f1-a02e-37e91eacc248 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-73-docu",8689d7a3-b680-4710-bf3b-fbc59dac0910 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-74",cc571f65-2c72-4f29-9a75-1e5fcfe904cc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-74-docu",2bc896bd-8216-409c-b841-111d8bae8aaa +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-75",29849c88-ac8c-40ef-932b-b0bf4a76042a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-75-docu",9b17b52b-cf79-461a-bc40-3f8822ea069b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-76",e30cbe5a-29b0-4a96-8337-4d24fb816b89 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-76-docu",9ec755cc-602c-431f-afa5-4323707c376a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-77",47b44341-00b2-409b-a3ab-59f1ed92e124 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-77-docu",634a6bac-8807-476b-9070-47b29199967e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-78",0d94d6cd-2376-44fb-8b6a-46afaf980d43 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-78-docu",c06cd205-94e4-46cb-99df-ffa057fdbcfc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-79",0ba015aa-1565-409c-949d-5160e05d84c1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-79-docu",81870848-fcc6-4da9-870d-40a71218a846 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-8",86d62d98-902c-416a-86aa-74134954c042 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-8-docu",31f0afde-3dd7-4f5e-9583-c612da1f3cd2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-80",8e34fe85-383c-4aa1-aa12-8f342f3e9baa +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-80-docu",36c91b7a-faff-4ac2-a44f-6bd6ed5d2b60 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-81",d344baeb-29c5-438a-8db1-c0f3d01f8602 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-81-docu",3b4a72b3-835b-4743-9f0f-9d83c193c451 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-82",1c117601-59f8-4bec-9b41-a1d1010b7a12 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-82-docu",14408ba4-9ee8-4eee-b6e9-e82c5fe69b6c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-83",dff8f1d9-b02d-4126-b9fd-aba2774e29ad +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-83-docu",cca737b3-368e-418d-ab4d-0485de992c2c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-84",7ebc7a6e-72b1-4237-849e-2131972bb732 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-84-docu",088b0aaa-b19f-45f6-99b5-9be01809e7b8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-85",077292f5-dca2-4855-98c7-bad5c96815fa +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-85-docu",5f64fc72-7c24-4fe6-8181-3330b734a6cc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-86",0ce795ad-b4cf-4a1e-9b23-c869217ef741 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-86-docu",d1b12ca8-7aa9-4216-a320-473e6c8f64fc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-87",a615652d-9437-4436-b11f-4c0b0bd39c97 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-87-docu",975df354-30f7-44b3-9128-a74e60df848a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-88",5c03887d-de77-4204-836d-6902364ed3db +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-88-docu",30d4ff58-1e4e-4f47-95c2-8e9bac17c9d8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-89",86f474ad-6a55-45dd-a5b7-1285b7a7f297 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-89-docu",4241b25a-f9e1-439c-bb14-1ac4daa3d101 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-9",1a066631-8440-4b05-908d-fb9a499e0659 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-9-docu",44bc93a5-adf3-46aa-aaeb-15a9c6f9049b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-90",ff6fe881-d22b-4048-a108-d81c61dff8e5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-90-docu",c658117c-957b-4fed-85df-c3e0b81da7cf +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-91",fdc550bf-34dc-42d1-b474-b70b82934f45 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-91-docu",a34061ae-86c4-4b46-988f-4be575183601 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-92",1ca2ebdf-3c2d-4883-9f4f-5995cb1a6e62 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-92-docu",7e0290e6-4b08-4325-8dc8-8540b333854c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-93",c72a17b4-5b28-42e8-aa60-0fda9d09b7f8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-93-docu",5df30c16-6bbf-4065-8bf2-cb9fa78e43ea +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-94",906f8a94-67c1-4a9c-8750-9bcd083141d8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-94-docu",c0ac67dd-7873-4cc2-8dc8-4dfae4e4f121 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-95",ec3037f5-9dd1-415d-9308-90e6aff6f32c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-95-docu",960168e6-9d72-4837-af0e-ede5978134eb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-96",f2ef4d9a-803c-40c8-b471-ab63b40ecbbc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-96-docu",4a5bdf52-b379-40ff-ac67-84661964ba78 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-97",ff3cfa24-d75a-4bf5-87c5-4e240f530303 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-97-docu",b3fa1f35-db4b-4fa2-8186-209bc66ed312 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-98",1d37050b-9a7f-45ec-a530-6053f9cc7113 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-98-docu",02c8cb2b-70fa-4f31-879c-45c2409f3eab +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-99",fdf8a9cd-da8a-4570-89b2-1100869e0f50 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-99-docu",746c8691-0abd-40c8-9d73-08a9351b0cf1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-pad-exposed",17773540-b225-4f27-9518-4d27cabcf384 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-silkscreen--1--1",84d0a515-ee3a-4d24-918f-c70f76778783 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-silkscreen--1-1",da921715-a6bb-46ac-9a86-f9c6d4ebea22 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-silkscreen-1--1",a006f23f-efca-453a-8202-7a9addc56c3d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-silkscreen-1-1",0729a451-99d6-4abc-a842-34b5e062dbda +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~a')-value",e94ec8a4-170e-48c5-9fed-4b96b7b9143d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-0",477f2c18-7ccc-4949-b0c9-5c8b189a4123 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-1",33bb76aa-8c45-4cf0-a9e4-1cc45cc20864 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-10",ae96f620-bfe7-4893-bd0e-88cbcd649add +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-2",072dc164-9b8c-4ee2-a436-6cbf93ba8151 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-3",603a3197-f85b-4310-97a1-0fd77d3653de +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-4",07e522f6-c163-4f5f-bb87-af73d23c65b8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-5",d97879d0-115a-464b-a394-5bfba39ba94b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-6",0bc6473f-ab91-4766-8c72-81b273a0a716 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-7",2c995e97-4574-4ea8-ae1e-a21bc3168315 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-8",f5247b72-94cd-41a8-aa80-5411667c62a8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-9",453b1d98-f9d7-41fe-b5fb-349437aeedcf +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-0",86c78ac3-7306-4020-9258-bc7c697864d3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-1",80d61ec3-8f63-48aa-a761-b5946a312022 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-10",78500f51-3583-4a2d-bf65-d8f1890a71b3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-2",e64dbbc7-ee9e-4ab0-b51e-7705fc9d8051 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-3",5cc35956-5a25-4a9f-afd1-b0a4bcb12ac7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-4",0fd69d8b-4cd5-4e5d-832f-05f122536b84 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-5",71b828e4-177d-4026-ad49-fa9837af0028 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-6",3797a944-5e28-4eb2-a17d-d8b05afe9520 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-7",c233ec33-83dd-41fc-b30e-9050ad8ace6d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-8",3a607def-c674-49d5-a911-4cba70d90d5c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-9",71b85c38-b376-4f95-a1f6-ed7a2bb5086a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-10-0",500f2933-3108-44ce-975a-6632f32b8805 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-10-1",311690ad-5212-42c6-a30f-6943f599cfb0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-10-10",687ac368-4da1-4122-a7a0-ebdde6f67231 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-10-2",c6ef919d-7a90-48e6-b0e6-ab5bf7304302 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-10-3",4e6fa19b-69f1-4b12-8a8c-a5b7e41600c8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-10-4",146fbcd1-2511-465d-b4e1-079e49c99d61 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-10-5",5c8a39c4-099c-49cc-86ba-cfe0f57e476d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-10-6",70dbea52-f66f-4f5b-b22e-150bab5e411b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-10-7",c9be590e-d7df-4415-8ba0-4ad6c1461548 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-10-8",387fcb6b-a91a-4bf9-8211-7a8e03d3366e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-10-9",4f409a94-6e54-42cd-9c8c-446b7d8a3f6d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-0",9f82ff0e-4ffa-41cd-8869-990f66f379b7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-1",c88715fe-d10c-46d7-b86a-ce97a8d3955d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-10",5d95a9b5-d7bc-49fc-aae2-d159cbded122 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-2",b038426c-16b7-4617-b4b7-885bf14af561 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-3",0342591f-be71-4a5a-aa21-516e6bf5c42a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-4",d85785a0-9dea-4d38-85f3-eea27b165d04 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-5",ab602231-ca34-412f-b460-11a38ee908cc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-6",c67053b4-94cb-4fe7-9a67-a2e01a36c3bb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-7",8cae67d5-eb30-46de-bea0-640fb5650762 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-8",135adb56-acca-4d3d-b9d4-e217c975fd1d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-9",c6142347-3106-45f6-b587-f1fcc2a60440 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-3-0",8269f4f1-adee-45d8-91e4-5371bb93fe7c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-3-1",017b3460-a5c5-413e-b8da-ca9a0f0908eb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-3-10",5ed0c237-8a10-449e-a03c-f572149b45df +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-3-2",4700a03f-da30-4bc7-8a19-63be3c851010 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-3-3",e635d36b-a0bc-4449-b8db-9d4d72f110aa +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-3-4",62f88a17-553f-42da-b587-16ed759ee817 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-3-5",4fb543d7-4533-4aba-a9ba-43cc89b94e2f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-3-6",1283fb68-d147-4d8a-97f6-dc8044597a01 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-3-7",c3b4154f-4c2d-4139-b4d3-7100865f4871 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-3-8",68a4008f-bec7-452e-b312-bd69cb19d60a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-3-9",32b390e1-2f98-4b04-baf2-faf19e299fcf +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-4-0",058b13fe-ae4c-49b5-b197-bb731f82d389 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-4-1",d955af31-c0e9-4911-a666-ad3c8d5b5242 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-4-10",37220afe-0ae6-46ee-a8c2-4b83bc3e3b7d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-4-2",1992feb2-c5cc-4f56-97ea-d6f4aaf0ab91 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-4-3",2aad0427-986e-4c85-9dc6-0537927ef6b7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-4-4",5f6ef2ec-a30e-431b-b51b-e12cbdab36a7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-4-5",e9386c10-5c32-4043-8976-e7d70e9be505 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-4-6",c6a63213-e087-4715-9480-bc93f3b69380 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-4-7",4e74b3c0-07ff-4f20-8148-44c3a5278a94 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-4-8",9c660865-763d-406f-9ac4-03d3c5332a71 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-4-9",015aea18-4d17-4d67-b1d9-ade5bcab6f54 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-5-0",109a03c9-5926-4086-b478-c9e7f497d53b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-5-1",a34e6a24-a458-4214-b792-9db6431c8558 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-5-10",afeaaafc-187c-4a9b-aa0e-1975bae8255c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-5-2",85a6485c-7eed-4e66-b3c4-173763b1049e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-5-3",0b9b1e60-e4d5-4d08-ba60-5b0cf9a3fc22 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-5-4",ded971ed-0ab1-41bb-a3d2-8069105a4cf8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-5-5",d8bbadb6-a6d2-477e-8180-59de15590c0c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-5-6",d1f8d9db-e3ac-4583-8c61-8383d4afdd2a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-5-7",1774d710-10a7-4b00-bbbe-f77d1b12a296 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-5-8",482f8cee-0aef-438e-ad2a-9090d1c3ea4f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-5-9",9405814d-b7a0-4ed5-9c15-cb0a3c47ad64 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-6-0",0c44f8ec-9f9c-49f2-8bc2-8cf9bddd3150 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-6-1",b4a2391b-cbc0-4108-ae58-4d204b093b7f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-6-10",83ef2a70-6cd2-4e60-bea4-beebe99166ec +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-6-2",3ff3dcd7-59fe-46e1-95e4-a4171189ccf7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-6-3",42d40504-5ca0-4cc4-97fd-60e84515233e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-6-4",fec043a5-c7f8-4e63-a7d9-ff7b4b4c5eb4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-6-5",66e47646-da51-4b09-9051-c1249a2c97ff +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-6-6",3a146918-7067-4fa5-b3d2-fdd9a8815eed +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-6-7",54525173-28a0-4fa6-8696-b1248a689b6c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-6-8",d730438a-cca1-4b1a-b4f6-715fcdbd7284 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-6-9",4882ff99-fe79-46b6-aab9-f196ec382243 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-7-0",c2c650f0-6b8c-4888-bbfb-23aab6a53069 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-7-1",d984ae5b-31c2-43f2-833a-0d1b6a69c87c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-7-10",41f8d9d1-d167-46c4-bc96-4513d71d5d53 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-7-2",b8e25894-2f9f-48cc-8399-134316429610 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-7-3",5a29cf66-b7b2-4dad-b755-84797f76f192 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-7-4",5db02eb4-7dc8-49bc-9679-9d1e61aee135 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-7-5",5b2c458e-531a-48f0-87be-c5b6f5eb7b64 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-7-6",69c6430a-f03f-4007-8f92-71afb302dd93 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-7-7",e56105fe-d921-48b1-b947-d9ae5c4cd8a9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-7-8",4cfdc70b-811f-44e8-aa7b-c89be42247ea +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-7-9",3cf19d2d-1eb5-4c8a-aac4-eca4ea3982f2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-8-0",50db8a6c-2dc0-4523-9814-84a7848b2fbe +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-8-1",cdcd13a2-13a7-4369-9560-290070d0b288 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-8-10",de872e0e-77d6-4b8e-afc8-c754222260eb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-8-2",c4f65685-cc94-4c0a-a041-9cd57459dfca +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-8-3",860f18c3-745b-46ba-9f49-7d652b1d2d6f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-8-4",a1f7bd0c-7af5-4df1-899c-99b7cff37c4d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-8-5",1b4d6a96-1c29-4446-a759-36b10f9a7376 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-8-6",9ef2a34a-8aba-4d26-a69e-c6df0c83010a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-8-7",ceb2f810-ffa2-40e8-bc64-a3eb0992abca +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-8-8",262e6151-1eef-4dcd-9f53-313cc10c2a7a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-8-9",3b2f6de7-6277-4bd3-aaa9-4e7f4abd40ea +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-9-0",c7f6abd4-30ce-430d-95b7-41268338cf92 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-9-1",aaa2b4f2-bd99-408c-b68b-53891d3e13ef +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-9-10",ba87b586-91d0-4e29-b1f3-2019c3775c3e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-9-2",0245f60a-752b-405d-b7db-8e1f9da552b1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-9-3",6830e381-0b6a-4d65-98a6-947dd3799cc2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-9-4",17e7c6a6-6c49-40df-ace3-382955a8564c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-9-5",96a77275-7b99-49bb-aa77-41a75a7a00be +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-9-6",1a6d9cb8-69e2-4371-81ab-842ac8c856e4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-9-7",20b430b2-a62f-4445-8513-45900a5bda75 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-9-8",efef283b-6b90-48c7-8893-5267d9550a1d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-9-9",3e36c20c-8638-470d-bf5b-3ca0e093b2b5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-courtyard",d660da6e-1fda-441c-a9b9-f9de255f881a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-docu-pin1indicator",1d809f70-fcf6-494f-b9c2-aa9d3272e0a5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-docu-silkscreen-pin1indicator",35b26441-f06d-41ed-8f38-7f385df15744 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-footprint",5ae70da5-b38e-4d17-ab17-121908bad3dc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-name",c540537f-7209-42d5-becd-af0b00f0bc14 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-outline",e11cdc43-d6fc-4fc3-b22d-e61e82aaf4b0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-outline-docu",42b45df0-d45d-4e70-98cf-1123cd6ae07a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-1",61989c05-f2cb-467b-aa76-f17d2ebd74d8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-1-docu",fa2ed30b-1701-4e66-9c52-9d351e72b3c2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-10",831c842b-d6ea-41c5-a922-594d1becc76b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-10-docu",205f1b6e-3b88-4b9d-959f-a028e3175787 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-100",d7b0b5f3-8d53-49ae-8c3a-115df7cde08e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-100-docu",74d061dc-c0a8-4969-acac-4ccdc9b9ca5f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-101",f18d4b5f-030a-4a85-b31d-88ab3e2573f4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-101-docu",be18396c-93b8-418e-8d33-27bec9a3c0b3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-102",6fae2053-7d12-408d-b1e5-93547498fcf6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-102-docu",3f71c24c-700d-4849-b330-bc61cd01073a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-103",b29c4d5c-2dba-4bc7-b0a2-b91105667840 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-103-docu",797b2187-850e-4935-acbc-59ca993de1ab +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-104",db9b40dd-c812-4b72-a392-4c4f21f21f77 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-104-docu",5f858e5f-535f-448b-bcdf-1aa0e52af4d3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-105",06f3bae2-6ad4-496f-a135-97f921c298c0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-105-docu",7993e80e-d5d8-4d0a-8cff-5c47445916f2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-106",2c757d51-8783-4b8e-a58b-cd337c1185a3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-106-docu",e6077cf4-db5d-433d-badc-e86de8339b68 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-107",19fe29a4-7491-4666-8d27-b8f50b7fcf23 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-107-docu",04dc0bc2-42cb-4dce-b6e0-7238effcbcc0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-108",eded3d0b-c1c9-4458-a3eb-14b74a6afbfc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-108-docu",dd722c5d-e0fe-4599-a4a3-fa3f4dea67c9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-11",71f1db4f-d3fd-4104-a420-026453d2b0f0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-11-docu",8e9e3e46-201c-4ba2-9af4-b60dc2c1d1e5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-12",362d03bc-bd8c-465f-9cfd-738a80a55c6c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-12-docu",6ed65ba2-1edf-4ecf-b95b-777e07e788fb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-13",9d7644da-a7bf-4d74-9cd1-a5d1cf9b7579 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-13-docu",726e69c8-a100-4e9d-b56c-9a78f137f625 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-14",0418980b-5d7e-4fdd-865b-7b68d2a96975 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-14-docu",b98b05c1-a1e9-4efe-8514-c7e2684cd270 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-15",6b99b8c9-b40c-4d0c-8691-08960b8b1918 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-15-docu",f1d07da7-0825-4b4c-95fc-38739c028b70 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-16",54b83406-e107-4f1b-bc17-f3ce3e7f65fd +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-16-docu",4ed022fd-57e2-46a6-aa19-e2ad53c45d7d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-17",3f950838-e2f5-4284-b8b5-fed0fcdc45ef +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-17-docu",bb00ec07-35de-47ac-a382-5125e0710745 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-18",4fcb741e-4003-4d7c-83d7-71d7eeafc1a3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-18-docu",80f0ff75-f5da-4f78-a36c-fb8f1d8c1120 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-19",ead829fd-13dc-4110-abfa-5c503e698936 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-19-docu",4d934b07-d54f-4f43-ac1c-3930ab9a6a4a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-2",cd99b958-6fe4-4ab7-8d51-8ed15f457ca7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-2-docu",cd8752b1-27f5-4da9-9b73-552f855524e1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-20",3ce1d716-3fef-46ab-8ecb-a9175021ff0d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-20-docu",60fe5a5c-a178-4b05-a3cb-92bedaa317a5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-21",9883ec8b-1933-48e5-a4f3-7efc309d9e26 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-21-docu",d59b4bdb-8feb-4444-9cef-161fa0365cee +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-22",ff65ae79-3300-41b1-8941-44cbc1be75d5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-22-docu",939f736a-dffc-45b0-b956-5a2afc9e58a2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-23",96cf2db8-512b-4548-bd4b-36c450c215fb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-23-docu",06cfa658-50fc-4cfd-8849-fe53909c036c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-24",eea63ee1-8387-488c-bebb-e100461ab8db +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-24-docu",43c78e4d-0d31-4c55-b983-23c887c469d5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-25",cd66cd2a-fb6d-469b-a7c3-67cf6f6466ec +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-25-docu",74f70325-2dd5-4b09-a633-3678f1bc9770 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-26",3dd8fa01-5bf9-4e59-87e6-b05c6f7e7d7f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-26-docu",d8427f97-86db-4761-9678-ebc7bb52b64b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-27",0b7ea062-a533-4bae-bdd3-4b36b9e87a50 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-27-docu",e0c79d0a-b399-4628-aa66-9e1ea372a8cb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-28",75eb124a-be82-49e9-bf96-4a75631ac4ef +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-28-docu",85783746-a5d1-4a10-8410-6ea047941879 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-29",15ecccaa-87c7-4acf-847e-564af920b417 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-29-docu",dfe30c21-d456-42ac-b7fc-97ea46254c94 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-3",4683364c-55bc-4ef5-bc63-6d957463598a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-3-docu",39e0a6ee-d232-4f90-a0e6-e9f8222765c6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-30",e09b79b3-ae53-4f26-a1e5-bade7bc8ad13 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-30-docu",a16f1de4-4a8b-47fa-8864-ee034131210b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-31",8ec5dda4-ee73-450f-9692-dc1b68206f0a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-31-docu",4ff17795-3f4f-4f36-89a8-86f688b85004 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-32",48699338-4b1e-4b46-a0e0-fda354c6a845 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-32-docu",add5565f-8df0-4c69-a09f-7ffc16873470 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-33",cce7173b-d15c-47f9-a94c-ac49ca716cb5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-33-docu",2dd843fb-3ed8-4030-aa70-8d32dbda2cf2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-34",62124e8f-ad4c-4703-80b7-7288bd8d558c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-34-docu",8c767daa-0e49-45d3-bac8-7cf8baa11b1e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-35",4606081a-2986-46cc-9628-e7083ce019a2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-35-docu",873ce057-e873-42a8-b7bc-a5705171a5da +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-36",4cf2e440-4145-473d-9c55-72061a7f27ca +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-36-docu",ee52d489-6fc2-4062-83e6-3221ac90c95d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-37",d2a475ba-8b66-4535-b675-a28f72054019 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-37-docu",37c0d87b-2b23-49c3-bf96-d169fe9a1295 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-38",9d92d4cb-e2dd-4fc7-9755-212f3fbfa58f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-38-docu",9a43c3d7-427c-47d9-b710-80b95fa4ef50 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-39",efe2b8cc-8260-45f5-b410-046207b7323c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-39-docu",653911e1-a7a7-4ed4-b457-935a9c0c23d4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-4",f6239118-ec8e-4968-a645-a9fe28f87799 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-4-docu",39ca33b2-bf88-4cfd-aa93-959312ebeb99 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-40",360db896-e85b-4c18-82a5-713e32dba048 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-40-docu",ebace67b-715d-4d7f-b368-de5385ff7a9a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-41",72d4c0e5-7f51-4775-9c46-ab32a38b7830 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-41-docu",7eb57346-be53-4581-8614-700315dd0478 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-42",5059debd-fd26-422c-a58c-e6c334d3fd41 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-42-docu",5693ad2e-c169-43e2-b4c6-27ad6049e6db +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-43",edf76937-7f13-41a0-b7b9-c5aca71a1457 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-43-docu",d574e82a-ec83-4dfe-8adf-5931b729e113 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-44",92e03e40-3ec7-4291-b959-94d29688b6c1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-44-docu",9dfe11da-d0c3-47e4-9554-d1dcb1580c54 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-45",0690fb3c-7ae2-4827-a5cc-93c08e8c1aa9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-45-docu",a9ba3ca4-941c-41e6-abf7-3d2eb09ef2a9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-46",0bf343f5-517d-4884-97ae-340c7ad1f768 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-46-docu",a0e3e897-5946-4771-beab-6e354201447e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-47",3d3fa3fe-6d32-425b-9cc9-df1e88b86153 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-47-docu",467a40ad-83f3-407b-a211-5fd7563a0804 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-48",a74e6082-0477-4cd2-8970-3d4f3cc910c4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-48-docu",9c676c11-d855-4428-a4d3-b8b4283376c5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-49",9904f644-b5ea-4b59-a006-baf4f60c2a80 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-49-docu",b01f0055-dd13-4a85-9075-c5b1e4f294a0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-5",2975c299-fa85-4a64-900c-5ad4d032c89d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-5-docu",9642028b-c50a-4a3b-8ead-0c9142fa5dc7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-50",72548345-df56-4813-ad6f-63b847b6a3da +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-50-docu",0978a08a-a530-4055-82ce-3dccd4021389 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-51",b6ac6474-7055-46e9-b6e8-de119a89d2f1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-51-docu",e7892569-4fe5-409e-b444-0a69192b8f78 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-52",aac39d84-d672-4db6-9c55-646ebef9ce73 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-52-docu",2416a969-a997-4936-9454-f7e8cef4c90f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-53",e8922772-2631-4f4a-a671-84548417f35e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-53-docu",a77bbc76-7778-42ca-9e9d-d51b1fe6074e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-54",bd26736d-ef62-45c6-86eb-126a816e1e0c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-54-docu",0015a898-b3ba-43b8-ae3a-7a21581a4ac0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-55",92298f86-85bf-46c8-9240-5041787eefc9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-55-docu",038c166b-b2c9-4a4a-bc5a-61ceb4d0ea15 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-56",72501e12-5b24-40a3-85ce-fb257d2088e3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-56-docu",12bf5518-5c37-4cb8-9393-3aaaf899a957 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-57",85f3eb57-cdd1-424c-ae13-19c49f4cfba8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-57-docu",75a572b9-9755-4284-a411-60165cec2d39 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-58",0a06cd03-5a4f-4db2-84eb-4ca866cb1685 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-58-docu",aa28e3a0-b4b8-4088-aa4e-20caff24afd4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-59",05f023bf-9798-4bf7-848a-eb0bf0d0b39f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-59-docu",2a0eb79e-c8c5-450f-aa7f-64a1a4c390e6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-6",04517405-348d-4a5f-8d4f-6aac0d54af6f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-6-docu",632638d5-0919-4d1b-b565-2195f386bf18 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-60",2f56e54e-0e60-42b3-b23f-40892ad707fb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-60-docu",419cb9bd-043c-4f7e-9747-7f5392cbc962 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-61",58432e91-a0a7-443f-855b-b01936b1a632 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-61-docu",14ceb9b6-2184-435f-b132-f11f3461b9b3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-62",18700ea2-3ea6-45c8-a87d-a7c76f9d7027 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-62-docu",26fe7166-cefc-4e6f-a2d1-bdeb6fef241b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-63",7ad1e77b-0174-47ac-8f7e-d06ac121fedd +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-63-docu",934fd5ec-6a0d-480e-b5ce-517318f35ca8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-64",ca0691b2-d55f-4c96-8f54-b94f0d30099c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-64-docu",7c03bef7-1233-4887-969a-933cb3b15dc4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-65",0b131ccf-eb83-4ad3-83b8-fd92ef1ed368 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-65-docu",bf2fd693-0075-4c3b-a37a-3ae70e189b8d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-66",af49ffdd-393b-4f05-8553-95e485b58a00 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-66-docu",098185d8-b4a8-45a5-b555-f522084dfde2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-67",67adce93-ac65-4d4d-8895-8e336844dd24 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-67-docu",624c1b66-5219-4168-8b40-173feb8176f4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-68",bce94c3b-68ac-42f9-9245-93fd66bcbe95 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-68-docu",6851b90c-7a49-4b67-ac5f-7bb16fe2a178 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-69",b5d6d8c0-2fb7-4992-95a6-8b9e8ccab366 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-69-docu",8e41d957-c931-49d4-907b-c372f69248be +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-7",7d384167-4e03-4bde-8109-3dc905f00233 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-7-docu",8f2b5938-c6cf-4c3c-902b-19f49c397d33 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-70",59e8e65c-f241-46a0-9847-65a4d0f5fb7d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-70-docu",7d9e4ecf-db5b-4d47-8f72-9fd672f4b626 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-71",673b20d9-dc37-44f1-ae49-e38a916a5717 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-71-docu",0ca2d4de-30bd-44ad-8e5a-f6ceafbfaa1a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-72",fb008cf1-39fe-4b4b-a2d5-ee4f7b42d2f2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-72-docu",88f57cfd-97de-43f8-9f81-0fccb6eacba4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-73",cb1b651f-fc33-45ba-9a9f-bd3fc8852f2b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-73-docu",871da4ed-90ea-4eb7-91d1-790ea5bf3553 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-74",d550a0b1-e0d7-4b86-aec8-bda1031fda4d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-74-docu",5bc59e78-37e0-48e1-b14e-dfc4cdcf4554 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-75",b49b99e1-c91d-4859-a5b6-ad4f4515dfe5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-75-docu",d6128698-b0a3-44f6-b7b8-dfc5a226bd36 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-76",21b337f1-8e58-4050-8e4d-1936b14d6161 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-76-docu",4424f6e2-7a3b-4085-9202-fa1b2957f100 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-77",fcf2bf68-2f9a-43fa-a170-27ecfe1b662c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-77-docu",cdbc1a05-b2e2-4104-8024-d5e32d4b5b7a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-78",1c79d69a-a320-494e-aab4-c88120c1c022 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-78-docu",9009b854-737a-41c1-b68b-fed5290483eb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-79",88854905-c97d-454b-99f9-c3a1d52c5eb4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-79-docu",c17cc1a7-f014-4300-9624-4b481d97aa77 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-8",058dd395-7f6e-4b1d-85c8-06924d922dcc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-8-docu",e3e2238c-d47e-46fc-80d7-b1eb8a950c60 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-80",9f3c982c-bea0-4d09-a1b6-bed6e67909dc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-80-docu",f48e84cc-26b2-444a-abc4-9a825e797904 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-81",df4b05a8-490b-4289-b897-8f7085ccd165 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-81-docu",209834ff-5202-4714-81d9-e810b314048d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-82",0503d39a-e73c-49b4-9984-713ac05ea614 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-82-docu",36d62539-3e7b-41b4-b132-d4949bc97035 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-83",0659c3df-431e-4e20-8aba-09b09c5d3e93 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-83-docu",7b7f8810-8941-422a-ab12-5fada61e79c7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-84",3e6f159a-bff2-4dbc-858e-e763480eea06 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-84-docu",50e01414-6d11-4194-8def-403951a0d766 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-85",4e86dc84-8fbf-47a4-8030-30ac99facdcb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-85-docu",23d7cb59-5fd5-4480-8a3d-8234507b5e9f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-86",c40b5728-2a44-4826-8c26-4d9e1652ef19 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-86-docu",138c6f0b-3d00-4a93-aa7e-dfc2060cfbb6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-87",a9fda43a-970a-4f68-8801-fd4db16a91b3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-87-docu",7b3aa9f9-e1fd-4844-8579-03e3792860c9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-88",69941d8a-0150-466d-a048-50581e2d2b3e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-88-docu",354a65d7-7ee2-4e7e-bebd-703a6b4284a8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-89",7d217b43-df6b-447a-93e7-d689f071065b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-89-docu",187f238d-d6bb-4493-817c-07fef8e0937d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-9",50602968-cd91-4a90-a278-827dba35128c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-9-docu",d15be75e-ecd7-4c02-9da3-0a624291dea7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-90",e6c3d1e9-fdf6-4b63-9d19-aac8a2ff30cf +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-90-docu",72e83247-4624-431d-9fad-1de355dae66e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-91",48a66318-4cd0-4ef5-a51a-ddd7e6ca49a4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-91-docu",1628dfb2-8581-4eba-8be6-2a06a62d8e86 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-92",3c6c3835-31ef-4f53-9eb9-0addcec13013 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-92-docu",098e24ba-4d73-4867-a0ba-238dbd81fa54 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-93",9e9f7393-97c8-485b-bf92-a35a02f08037 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-93-docu",3155cd5a-d609-40c8-bbf7-39300186b285 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-94",c069c796-707c-4190-9e91-ed5e2b42ce3c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-94-docu",6fadf727-ca3e-43e1-9169-b595b6e33463 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-95",ee04c529-2425-4f48-8b9c-1c38425b9daa +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-95-docu",7e0e5152-578e-4df1-9d9c-1ec04afbec41 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-96",fea50376-c15a-4d92-8683-5b8ee134e0ae +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-96-docu",ece88966-5037-4a90-8961-5f5b29a06c76 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-97",44149c48-2e61-472d-bf07-490c8bcf069b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-97-docu",c2bfb683-8b2d-4ec2-8da9-b05dff669cb1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-98",531b8499-dca0-4f05-961b-c399937c9bc2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-98-docu",7d699f32-d1e7-4682-997c-e7740aaa4684 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-99",de845b2f-4170-4be9-9f09-90d151370a86 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-99-docu",08de3050-8bff-4495-ba4c-a541774dff9e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-pad-exposed",386d28a8-a47f-4c03-850f-b3a9d12f45ff +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-silkscreen--1--1",bebdc739-7a29-42a9-9099-e3a29ece152c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-silkscreen--1-1",3a30921c-36a1-4044-acd3-cf28c0637870 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-silkscreen-1--1",c8609d1a-bf79-4944-8112-0a46b1684d7b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-silkscreen-1-1",ad9349b4-81b7-4cbf-972a-64e6360a754f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~b')-value",75d43a7a-a503-4b70-9723-f0dc12f16d80 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-0",b07bd35c-2533-4a9e-aedd-951f8ed72b60 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-1",77e91b70-a648-45c9-a713-4059247bfb4b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-10",70e1377f-08f2-4533-85ba-720711371f6e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-2",cbe5814b-55c3-4e64-9fd8-61070984dbec +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-3",af066e49-0325-490f-87a5-7676be7c2faa +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-4",1349556c-894e-4f80-812e-2a2b35d36829 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-5",0f9cdd80-2eb7-4d6f-bd43-d4ec9284eac9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-6",0c37868e-e441-4c8a-9537-3de7d8a2b919 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-7",debf3a09-339e-4cea-8251-f48292800794 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-8",86377072-7194-4587-9bb0-795e0c68936a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-9",759a7022-4997-4aad-9066-26e53054357b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-0",999697fe-7cda-4328-b31a-b8c517ed8063 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-1",5ff2a589-97cb-4a56-963c-35812f4a83b7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-10",34fa65ff-8c78-462d-85c8-608ceadcc48f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-2",37ba0d63-618b-45dc-a36b-16d0362d7e96 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-3",42e28494-aea4-4c1d-ac2d-3ad01d14ff33 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-4",7f0c13ac-36bb-412a-a3c9-6e02bb48fe3e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-5",3b02b877-98f5-442d-abee-241f91ad83ee +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-6",9ac2c56e-3e06-45ee-b094-a811a0cc7bc2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-7",987989cc-5295-4b06-a945-75c382247510 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-8",a5e444b0-f5df-4707-b702-2930075ea6b2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-9",712f2a8c-bc5b-47b1-b555-021d71a5d58c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-10-0",6ccf61d8-8332-4a82-ab53-7dbfe0a571ac +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-10-1",e5892479-9d38-4c05-819b-c25e7ac93251 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-10-10",1e597e0c-d8eb-4376-a959-e8b12a13fd71 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-10-2",09e2c228-d779-45a5-adcc-eb8b10651b39 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-10-3",e3c66131-eb11-4a8c-9f06-6ed1939b2e25 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-10-4",6fbe7b00-3637-424f-8352-018439023a4a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-10-5",b3b58077-d170-4eaa-a395-591b22dba9fb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-10-6",eb4cf602-aa8a-4eac-b98e-82a44896b482 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-10-7",f3760cf7-ad06-49d6-b135-60052156ea6b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-10-8",ead458d1-9123-4677-82c1-fed77dd91112 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-10-9",b574b262-a024-48e0-8e65-8be5a7bfa313 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-0",ba256d43-5c66-4c9c-91f7-bd86374aa2fa +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-1",c963f034-27ae-43f1-8e47-c6dc4c9b5b2a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-10",de9e07e8-5c7d-4b9d-9ab7-5b963ee95542 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-2",1c3c397a-b9fa-41dd-9da2-2df068371c4d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-3",84f59c44-4cd1-4323-b639-d780bbec30e0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-4",df8b374d-8315-4431-b6e3-1a7bd2863194 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-5",4c5c35aa-0dc7-4b3a-8699-474d832a62ca +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-6",06e610d8-da04-4f48-bbfa-61e385e3956c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-7",6b487234-0853-4429-8149-e8a277ea7ccf +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-8",d337c799-ce56-4c20-a089-f27837193940 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-9",8df525e7-4f3e-46c2-850e-455d969420bd +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-3-0",88887654-18cd-46d6-a949-23415fbcd4e9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-3-1",627e4f91-6a66-4ccc-9395-e0f4217b18ce +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-3-10",53e41f21-ab3a-445d-820e-ab1185221261 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-3-2",554a631f-17dc-4629-b004-bd61f97e7780 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-3-3",cc4509ae-6ae3-4def-81fd-fb65d47d1d99 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-3-4",ef5a00dd-c0eb-4581-b276-dd3d2ac3371e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-3-5",222ab921-7457-4303-ba23-b63554c10c1e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-3-6",f2f42bef-aa55-411b-a4b3-41c623bcb064 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-3-7",020896a7-19fb-4acb-987c-aa3159b1df65 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-3-8",cb48ece2-a696-41d2-ae01-8d79cdcde1de +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-3-9",f76cce00-5f6e-4e7b-b4a0-9c8e5c1b63b8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-4-0",4bdc6e46-34fd-456a-827b-4702f1db6113 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-4-1",96c3198a-6c1b-4e73-b654-41e5411104a1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-4-10",9f3546e0-38dc-423e-87d9-a09a31086af4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-4-2",b21f3979-b478-4827-b61e-7800eb2b2a51 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-4-3",4b7b98a8-c882-4d9d-a0cf-61f510307b33 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-4-4",fb07bbbd-c899-40e0-a303-c76533e812bc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-4-5",aab43ce9-fbfb-4b5a-9eac-58ad2535864e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-4-6",73ebc143-b897-4179-ba6c-a777245ecc74 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-4-7",fe6628a8-7564-488b-9dda-556cd40a286f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-4-8",be1e3eac-8b20-479f-b128-e7517791b4f6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-4-9",82847e0d-e9a1-4dbd-a209-c0c922724264 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-5-0",1b44e1ce-db7a-4a3c-9821-82bd8c952061 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-5-1",897c138b-4bda-4d0a-b4c9-2e36ed200f3c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-5-10",ca9883fa-82f3-4b80-aab0-30f65f3fab1e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-5-2",c4f298ac-8a42-4548-961a-b6f8fb31843f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-5-3",97a7b5da-3bb3-43a6-a248-5ea6a5c812a4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-5-4",c266d517-84a6-4bf0-9eb6-d9b929df5dfc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-5-5",c819264c-53ed-42e9-8a63-7f12c425012d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-5-6",c2aa9b7a-8fab-4161-898d-f949243c9af1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-5-7",9727c8c1-2518-4f99-b136-017ff1e5fe85 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-5-8",510fc5c2-2747-4f72-bb19-c20cb65cfc48 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-5-9",750b6d02-0bff-42f7-8c5d-e181b6aa1300 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-6-0",9dea0e40-5f14-4d22-9b88-31df514c3d35 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-6-1",9bf8c329-5ff6-4273-a0e7-964df99acf2f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-6-10",7870c9af-46ee-4513-bd41-7d5e03b8ff90 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-6-2",25ed8aca-d923-458f-9c10-39b1832cec6b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-6-3",80620bf4-7656-4000-966c-66f19e30e3b9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-6-4",adaba664-cb5c-4617-b3b4-d2828826a885 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-6-5",68e20493-51ce-4d00-b72f-d1f69312a8f0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-6-6",bc81c86e-49c1-432c-b309-62933ce87d9c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-6-7",4d8e05ac-c75f-4847-9773-6ba775aead4d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-6-8",95fd3c93-00a5-4aac-b7c9-0c36cc88054f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-6-9",3fda12a9-cc7c-4232-8e28-94088a8195bb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-7-0",c516a294-8ba5-4b72-bfcc-eb693af4313d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-7-1",c8d39954-9180-487d-a1b5-14c31614b1f4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-7-10",f723c6fc-3a54-4d23-882b-b7b42331704d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-7-2",d2068fa8-49cb-4f5d-b664-e36b945eb7fd +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-7-3",e26e8258-2604-4ef1-8c6e-6208b10e0ad8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-7-4",e6eb2606-0774-4549-b0f7-d46fdbbb66ff +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-7-5",ecf3371e-082b-44c4-8fc9-f87ba5b84db7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-7-6",ce6ee352-3ef1-44da-9e49-42e688e73975 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-7-7",9c9f5df8-a670-4ad5-a674-81180cc71cd2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-7-8",42b5d44e-969a-49ce-a029-f7bfdfc2a5c6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-7-9",25f4aa6a-2c09-44cf-846e-33fb93d91507 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-8-0",04a71158-bc58-489f-a9bd-e63a4ca19334 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-8-1",62264fb2-69bf-4b79-909f-04ff90ddfd7c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-8-10",54cae6a9-21dd-4d3f-a1e6-a375147eeb5d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-8-2",5128659a-40d4-41a7-b3c9-5b47339e024a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-8-3",1da9ee22-cde9-4365-8a19-f4de0e268200 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-8-4",43de1645-66cf-4937-9d4b-b3c76cd248c1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-8-5",61b2104e-7d47-45bb-af6f-2a5af04dfe26 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-8-6",515f648f-88dd-4cd6-9219-0a3b5299fd6e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-8-7",6c432a5b-be92-4b1e-a1b0-f97c2e9cab1f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-8-8",49e23810-928c-4162-a5af-ef18dd5bbbd3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-8-9",a4fcede9-edae-40bb-9dc8-4aaa6496c045 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-9-0",c1a6d285-1079-4865-a141-92d3ae2f72e5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-9-1",debb86e4-24f0-4d86-83da-090ca244cedf +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-9-10",e9c7b015-2943-42d7-9553-a45dbb4fcf63 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-9-2",6ad75bf9-45fc-410b-a5bf-a0d8100fe5f2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-9-3",04b93f47-ae00-4fdc-b322-92e50f06b80c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-9-4",7f65037f-e1ba-4d77-b2d3-7e536a55c2c3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-9-5",b985b310-4f5e-48eb-a2f0-346feb8b3810 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-9-6",bfdc02eb-19dc-4e2a-bf70-1363740fa066 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-9-7",b4add830-475d-4b7b-a888-ad05ee55ae6e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-9-8",f5fe4599-6a63-424f-bf89-5cf76f70d07f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-9-9",67902432-2564-4253-af9d-0133ea31ab4a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-courtyard",4e65b6a7-f15e-46bf-b013-1cbf1febc31a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-docu-pin1indicator",fb4917d0-370f-4141-9f6f-72947b44821d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-docu-silkscreen-pin1indicator",82838b41-a268-492a-89d9-2f04acad32d5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-footprint",3c961e77-4b50-4eef-b2e4-7b9a8e543de4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-name",0929edd6-3225-41f5-a7f4-a73efebe02b9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-outline",6309549d-e40c-4db1-bf91-bc0410126cd8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-outline-docu",6c625c13-30c3-4b43-a9d3-91c97d5b2e9f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-1",20c87534-1ffe-4cec-ba26-575a07f80115 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-1-docu",43ab2cf5-a1af-41fa-a772-e4635fa30c58 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-10",b5d5e7f0-e464-45be-905b-70ebeee6e32a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-10-docu",0f6347f7-d64a-4dd1-8d4d-481418a2e038 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-100",93e5e95a-f411-43b8-ac54-68c9f7edf4de +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-100-docu",d4d040d1-040e-4be9-bba8-544498565dfa +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-101",2d985eb9-f599-4180-b6e4-3cf8ad0baa82 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-101-docu",2017867e-5dc9-444b-b61f-76aedac8684d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-102",0d4cf8ca-2235-4e0b-ada2-0b760d2bd06f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-102-docu",c11949e4-f2bb-4c4b-82b7-e7da526f9e60 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-103",4ae50e9a-8c31-49a3-bf20-c31d3ce4fa89 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-103-docu",d7bb29ca-5a77-43c5-856d-22416e3f5537 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-104",21a0f5e8-cd44-4285-beab-6e4cebf80b8a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-104-docu",9081a844-9b17-482b-8190-404b0e6182ea +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-105",6e5ced20-8892-4335-937e-b849c0acad95 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-105-docu",556f35e5-a10d-410d-b5bd-c4a8b0f63df0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-106",6de765f6-8a3e-4696-b2ec-6f2ae2987749 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-106-docu",773b305a-f2da-4411-b46a-f892ab063ec0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-107",93964acb-25d2-469c-9c3c-ab9fa86e364e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-107-docu",6066dc8f-7faf-4005-bab9-f303c6e3143b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-108",8d46f05b-fc9a-4b36-9f89-be8051d47411 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-108-docu",48a2c613-106c-45a2-bf08-9f8d00cf938c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-11",2b78c468-24a2-4d04-8d95-36a52fb3482a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-11-docu",6ef43082-35a1-4811-b466-7299c7ea810d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-12",9edee6b4-06bb-4117-862f-b68a5429aafc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-12-docu",be2f7d0e-0eec-47fa-b7ae-b9b7198d2d4c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-13",c1097105-c70a-44e9-8fce-015b2171fac4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-13-docu",3317630b-94f0-40e3-af5e-84f67ef50512 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-14",07c6ce5d-50fb-446b-8113-7e0e72144b4f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-14-docu",67ba5a32-f44b-429f-9c57-a3c79f525e98 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-15",a823adcd-8ef4-476f-854f-badd55e5f77c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-15-docu",79204968-b968-434f-8d1d-6404ede3e0c3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-16",d67b746a-1761-4845-9338-0f8c8808ca39 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-16-docu",ff3d79c2-de29-465e-a0a8-140e1a6bda13 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-17",6160ce42-36cc-4c09-a606-ee52c5cb19c4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-17-docu",1345ad0a-29ad-4207-8942-8c7aadcfd6df +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-18",9b0c558e-89e4-41f6-9430-fec3d63cf2d4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-18-docu",1e3c9d2b-4b01-4fe0-b7f6-ad5390623e1c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-19",2b93d724-8ffb-493e-990c-26697242831e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-19-docu",756adc45-e1c0-438a-b06c-1ef25e5a6b44 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-2",1fb22169-c237-44f0-9759-a75c7099fb0d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-2-docu",def47c9e-8676-4c8f-a7cb-01e18764eb47 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-20",1d0f0242-d456-46f9-8c2f-38b6e65a4a33 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-20-docu",382dd995-ca02-4ed6-8b44-feb53f5e7343 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-21",0a852ebb-6cc2-49ac-9dea-b9156fcdd3bc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-21-docu",048542b3-9d88-4372-a90d-543635fc4481 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-22",80ba06dc-82ee-453b-9155-e09845ae848b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-22-docu",455a5d43-232b-45e8-a1b8-f1bd0db4f87f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-23",af6d8e48-12cb-45b5-9283-2276a2c330eb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-23-docu",bcaecf81-cca1-4122-8b3e-9b8508cd4f73 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-24",06debc10-9736-493c-8751-09311ad197fb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-24-docu",ce7ab960-35c7-4138-86fe-3fe48b6ce73a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-25",080397e0-3717-4405-8b6b-6dbcc830125e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-25-docu",e0a3f4ce-e46e-40e5-a01b-86ffd914da30 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-26",7c84da7a-39cb-46b6-8251-b02b0f9d5979 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-26-docu",50765df6-b1e0-47e1-b7ed-2974567849fc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-27",1290657a-34ff-4c20-8021-785fee419243 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-27-docu",4fbdd61d-84ef-400a-b089-c746a2e882e4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-28",99c79824-bc4f-4a25-82b7-c6c681db91c0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-28-docu",4def59a6-93a6-492b-8461-628fe0a3ef38 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-29",1b5b81f1-3ef6-4047-a44f-828cf018a58d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-29-docu",98d79e24-ec40-4e50-b2cc-bbdff4bc78ef +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-3",6cff5c3b-9044-4aa5-a2ac-110454bcb528 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-3-docu",0778a6b7-005e-42c3-bdba-8ca5e76a9a1f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-30",04db99ca-7af7-4c08-8668-7c62159283af +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-30-docu",ef1c2e00-1088-4f44-b53a-f51cc77adb41 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-31",5556708f-bfec-4780-b492-cbbede9f0de5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-31-docu",dc273887-6d94-49dd-93df-441935f5d01c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-32",a954cc48-7007-44a2-b234-271bd41d7eca +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-32-docu",08850c5e-892b-4669-99f3-911994fb310f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-33",a3a1b5d8-9115-4afd-9802-34a0286dbab3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-33-docu",b0b68b1f-17d0-4b06-90d6-a118f385026f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-34",d6401bfd-7b3a-46ab-b01e-b6ca987320a6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-34-docu",f00a7139-efac-4496-b00e-cdbcb579ef3f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-35",fa33ec06-6e10-4a41-b0b8-9601f5f717ce +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-35-docu",0f7ffd8f-db14-4ca5-bed0-c5c850973f53 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-36",4a0e2f2c-c2bf-4085-a6f6-447be5a626cd +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-36-docu",1a055f93-63bf-4718-ad7d-6f82bd8da9da +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-37",c83c66a6-1185-40d4-821e-1e247cfc87c9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-37-docu",f15aaee9-5f1f-4568-bdcd-6c1b038ef248 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-38",93d53c5b-8b6a-4f4f-8575-71ddc17da693 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-38-docu",a826ff1b-d343-433a-835e-d57fdccfa2ea +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-39",c2b04b62-fa57-4c0c-a711-935ddced88ec +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-39-docu",1dc5ec75-2911-49f0-a69c-0ede082f07fe +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-4",3c7aa712-0b79-4508-b272-1cfc786b0402 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-4-docu",33cc912c-cc77-4882-8655-55b74df199da +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-40",47dde918-18a3-4adc-844b-dc4b6b04b31f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-40-docu",32230f15-00c2-4004-b0b2-e899b46f00a0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-41",2172d824-3e59-45f2-b529-f3afb486ef85 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-41-docu",82993d34-56ca-4fce-a41a-35a7923b38b0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-42",06c42b50-44c8-4cd7-8603-36824912ca94 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-42-docu",66328eeb-9e06-43e7-a235-cc5007b90afc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-43",746581cb-94cf-4d6a-b90b-803857103c18 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-43-docu",fa62e9e0-bdae-43a4-934a-c4b463842365 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-44",ba53e8a0-5dfc-40d3-b2a4-69c189f64c03 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-44-docu",aec9bd15-cbdf-429f-b314-60561a910c8b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-45",8a05b110-8a14-4189-ae27-9265a43d13ce +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-45-docu",417c45c4-d683-45e8-a554-f703db4b811c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-46",49073b26-9d41-47d3-a2df-c4b3adb898ef +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-46-docu",c8d14e12-78a0-4e63-9a91-9d74202dfd54 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-47",dc8e0b45-9799-45c5-94fb-8571accda7b9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-47-docu",f6508868-45d3-4c9d-a082-8f2bef2d1407 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-48",e628df49-4bcf-4636-a6ad-ac661761a146 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-48-docu",3c0716e5-95d8-4ea8-a25b-7990530a3a5e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-49",8ebea824-21a1-4659-bc7b-dca7eb6ac47b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-49-docu",4e25ef6e-12b9-45d0-9a52-89e0d9b654e7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-5",c76b405b-60ad-49be-9ebd-03dd8566fce2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-5-docu",cb33cdb4-ad31-4650-ae3b-dc79928b383b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-50",80570ad4-dfcd-41b7-a0d9-33bf87d946c8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-50-docu",ca7e7007-bb08-435a-aafd-8c635809623b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-51",3708c208-db78-4794-b36c-61f16352af82 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-51-docu",639d7998-ea74-4b2d-9fe3-7585e28cb550 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-52",b8055c8f-086a-484a-ad13-cc33ba287e85 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-52-docu",d8d28350-4255-4c7b-b1ec-b912edcd3842 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-53",08acf994-298e-4d50-9de1-4ab5a887d35b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-53-docu",ac4fe35b-6e1b-4a3f-90a4-7d26fa3896ae +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-54",6ce07c9f-1536-4418-b516-48773c00396b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-54-docu",95c58e18-22f0-40fe-8c57-9650bff5da06 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-55",5904eb8d-8e22-442a-9561-dfba183bf0d9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-55-docu",355948d3-c2d4-40b0-8bd5-a5f426e498dc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-56",c69613bc-b84a-4f6b-b1c4-5b89df21ac76 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-56-docu",582368a7-fa33-4617-9e64-175a260ddf0e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-57",72e1d768-69aa-4619-8550-76734b91c97e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-57-docu",d8707171-af4b-486c-8bfa-52750587d57b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-58",b6b6b947-44cc-40bc-baf4-b097b3193a24 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-58-docu",a4ad9e72-f89f-4266-a5da-f3f4b0bd2cb8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-59",47360754-ccde-4e49-842b-ecabfb30492c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-59-docu",ab4d2732-4fb9-435f-8bac-e3ec8d22e4c0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-6",d1674731-2176-4d17-b734-e15aec1690cf +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-6-docu",9ea8ac78-f7da-47b7-abe8-220188638abc +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-60",e5462867-90dd-41a1-b1b2-a44d75767832 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-60-docu",ff6a484f-f520-42fc-9323-a3a3daca87f3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-61",6084ffdf-e675-467c-b8c6-57540ba33259 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-61-docu",53ca5a5f-0fd4-4fba-a5cd-f95cdbe85968 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-62",0101d9d7-b521-493a-aa3e-68a01bb46edf +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-62-docu",9f8a1f06-7e4d-4867-a3a0-81f0e4648ed3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-63",a1d69eca-892e-4b7c-8c40-f602752163a2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-63-docu",c5920296-2db7-44ef-b0e0-9c24c7556fa6 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-64",5443f5d7-0197-4cbd-9ce8-c05c09a41e86 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-64-docu",f7ca3f08-abaa-4550-a873-39e18a0aa930 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-65",c809cd33-3631-4823-8096-f5194128f4de +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-65-docu",388e33fd-5f2b-4460-99a8-0016492d71c0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-66",584f21d1-7307-4a4e-9b8f-e8a724ad0782 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-66-docu",f4911230-4e6e-48d4-9c9a-ee14075db468 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-67",5eb9fe12-d193-4226-ae89-937faea5ff7b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-67-docu",062c8bde-5695-4d77-9524-7a3481488963 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-68",93ea3c9f-f155-4fe1-a260-ddb10f067b08 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-68-docu",3d9da219-e786-43c3-963f-7a3dfdb14ee4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-69",52dbea74-c567-4bd5-bca3-7e912d258f5a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-69-docu",b18481d0-5762-40d8-ae92-5a6bc686de34 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-7",7dab95fd-b7ff-49ab-9aa6-ec1112b95e44 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-7-docu",73abf720-4d29-43ee-989f-7b94233a4c8e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-70",f963efc7-f6d9-493d-b966-45cdf95282e1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-70-docu",14d7d992-b235-4bff-bb7c-3581b95c6ecd +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-71",ad5a88fb-3b36-47d5-a012-63c7c63be2b4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-71-docu",9b639989-29c9-452b-93c7-ec664d480fa3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-72",fdbbca5f-5091-4833-8a12-cf72bee5eff8 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-72-docu",3157dd65-cfee-4ae6-adc0-20cbc43a7456 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-73",89dc0d2b-8a8d-450b-bf17-a4f7438aa084 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-73-docu",4d7b99e5-48a9-4322-a73e-88226cb92e45 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-74",ca0ce829-0e58-495d-9447-a1f6f13ed1bd +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-74-docu",4f2281d8-ee30-44e2-a0c5-00cdb60c20c7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-75",e38e8f25-54d1-49a2-82b9-1c1c1d70d61f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-75-docu",6465bdc9-4bd0-4efe-ad0d-9f838344f7fb +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-76",d9aa057d-17be-4659-ad63-ec9790f4f8d2 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-76-docu",ff1d178a-3beb-4809-8baf-81f544f732c1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-77",46db07f0-0620-41c4-9db1-14240d414ad5 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-77-docu",3e6d3ced-9e59-439e-b199-bf7cbf824936 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-78",d1a8ec16-b461-4646-aa4b-a748316b8cd7 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-78-docu",058b8224-a9f4-4ead-9b63-175f9be0cd28 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-79",06057e77-246a-4635-ba82-76c240ab42aa +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-79-docu",34d59741-b946-45db-8406-2d0d87753e06 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-8",e8df7388-6f22-46d8-8643-478f463636d9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-8-docu",dfcf5ecb-84b5-457c-96a1-893c16d6202d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-80",119a9ac0-1739-4811-8597-44acfd28f69a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-80-docu",bb57affb-c7fe-4103-9fb0-e7a4394271ba +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-81",93ce22f7-2e21-4381-b3ec-67a6efbedca0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-81-docu",757609f0-7a84-48d9-b66c-16377f24ce84 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-82",97744ee4-1c13-442e-bc5d-fe832c843684 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-82-docu",109a3377-71e9-44ad-91b5-398cd02ef9de +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-83",47c23f31-3176-4cd4-9082-822ad1872905 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-83-docu",a37538b2-b098-4799-aa5a-40600cf9805f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-84",e9f182cc-6daf-421d-8894-e39c87d4760b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-84-docu",120498ec-c8cc-4327-891a-f47f412a43ff +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-85",70568e49-9810-4528-8387-b2b7e698dfc0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-85-docu",cc8b9894-b1a7-4c62-b921-dcdb363b004a +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-86",dba85314-e438-42ad-bc40-f17d9f332fa4 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-86-docu",9924fbbb-3cc3-4903-b1d8-55ac6a84b1a3 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-87",df0d8810-335f-4e54-bacf-017601601597 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-87-docu",eed5b16d-d253-4f53-afa0-ab6d7e4cadd9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-88",b93b78d2-6423-430a-ba11-04a243b5659b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-88-docu",11bbcf7a-f65b-46cf-a84c-73fcfa7c6d7b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-89",7c3f2a34-6788-4443-a4c5-dd86f66287fe +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-89-docu",6fff8605-2030-4f57-9f86-d669f3ea43ed +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-9",64e577b9-817e-43cb-889e-60ad0b726ff1 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-9-docu",517cc0ec-9529-48af-8b90-98e2fd117a74 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-90",b4c9cbe2-8c8c-4ea9-bc83-5a23797d66ed +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-90-docu",62fc458f-7556-436b-9b95-bb5361424c5c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-91",73c7f241-7ffd-42e5-b4ce-b8ef0eae5c82 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-91-docu",cf4c09b4-88f8-4d21-8324-10f560a609f0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-92",13a81374-fedb-47c0-8fa1-fd7ea0de9180 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-92-docu",75388e17-4f58-41f2-bc27-1184939d172e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-93",0f142498-ff3f-4da6-be96-cf9ff1efe8ef +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-93-docu",ff051eef-30af-4ae6-8717-f9ce76ac0cce +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-94",77aba79f-82a0-4540-9de5-25d97b58e05e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-94-docu",355d584c-ad23-4545-8080-88ce0f54bc74 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-95",029f1a57-3584-41bc-a882-ac2d503ddb9b +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-95-docu",b9d54a6b-0e9c-42d9-81d2-a65f85ce0e5c +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-96",78d776da-8339-4741-a88b-dfed3023d95e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-96-docu",845b7470-e018-4dbd-980f-5cc2cdd75a63 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-97",9018b969-f6ad-4f89-902f-795be5ce4a9d +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-97-docu",e6bba006-37d3-4eed-b7ac-b8f431cf21c0 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-98",05cd5ffd-47f3-4d1f-bcfd-0b8fa8fd7b3e +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-98-docu",2d316e43-fc67-4db1-944d-fb9d0b370491 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-99",134efa2b-0f69-40ff-add7-ef20d7edeb37 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-99-docu",7a084a72-263c-42db-8705-3af5737cdcc9 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-pad-exposed",dd37d395-9047-4acc-aa5f-eb5214c1ec91 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-silkscreen--1--1",56a16c21-3bab-4a85-9a03-49be6a1ad187 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-silkscreen--1-1",590a4859-657e-4b58-88d6-4518f44a2dbe +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-silkscreen-1--1",fcf79412-5a3c-418e-b939-05b0ee7ac84f +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-silkscreen-1-1",f581b986-85b7-4821-967c-5fd909e12523 +"pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-('footprint',~'density~c')-value",0cc83ea0-7c6d-4609-9ba3-3b803d141d55 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-3d,c2c4ce59-4b64-4d12-9697-e2928463c745 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-exposed,67d32cc4-3518-42b4-88ed-c8476d2ec1f5 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-1,26e084b9-eaea-4fa3-bae1-31809a94f923 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-10,67d8062d-4afd-4e92-bf51-c6dba167c87b +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-100,fa3f2326-609a-400f-8864-e496cb73a6c7 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-101,becd84e1-2a90-42a2-9e83-6fcadf31f19b +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-102,c0286b65-3580-4d37-8ae7-0c59c305d082 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-103,2a81db94-80bb-4f3a-bb25-9f965ff7921b +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-104,61fa8eec-0c89-44d0-893a-1d1e59eb6410 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-105,7b9c88e9-0e55-42f5-83d7-529d28866f3c +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-106,08254fd0-facc-4a41-bc82-b421851d17ff +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-107,6a1ceacf-07da-49b3-820a-1686750b8bff +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-108,65e8b9c6-1a95-4ef5-b5ae-40c1f35e777e +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-11,5057ec0d-3b39-43d7-9cd8-49161325429b +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-12,e3ccd640-5775-4acf-98b5-12dae8f473ba +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-13,bb60b2da-9b80-4065-88df-aaf17511c9c5 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-14,d70768c4-5b8f-4397-8cbe-27235c29b66c +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-15,125a6e88-a435-4128-82a0-3887a13b817f +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-16,e3cc16be-6b27-4a65-a052-516cf0c1c05f +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-17,db8d85e3-517a-4125-99cf-282a16e98da7 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-18,d9f8e1e9-baf0-4605-a341-749b177f1051 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-19,7dcaca05-8def-46e1-bf2d-81010e95b64c +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-2,e0490ffc-976f-42de-9714-e9ee7ac74294 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-20,48e55b65-9a74-4a6c-a0f6-5ed469685456 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-21,700d5034-3449-489e-80ec-cd1b9001d206 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-22,7d5f1a9d-9ab8-45df-b67b-9315d7984060 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-23,8e509b4d-35c6-40d1-9c6b-1b751a037494 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-24,28f971d9-61be-479e-9e44-94d728345768 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-25,96bf30a6-c59a-4d39-84ce-f41df5e59e59 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-26,65e0638e-0738-4dd2-b7f3-db1827c36832 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-27,a83c8f6b-66ce-4b12-aaad-05969fea8a41 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-28,1e86a4ba-855b-4199-926e-72cb26434a9d +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-29,fd0ce184-1557-4b2d-89fc-78058e0e52af +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-3,05877f9a-50dd-46cc-b9c7-8994f061b59d +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-30,b78f6687-274b-40bc-b76e-360395eda84c +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-31,3f39a231-061d-4d6f-b48e-3844087438d8 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-32,12b43db0-8ac3-4b5d-8fd6-ff66acac3548 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-33,5585897b-f2da-41dd-814c-d265a023734f +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-34,1f588983-8f75-4cb2-9391-5fd477beaa67 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-35,0edbb4e5-92d0-4c40-a156-443ec96356ae +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-36,5c03ab20-4c1a-44fa-ac73-698a9ad9c69f +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-37,a6568e39-1809-42a1-9da9-5329b67f9f4f +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-38,9b4f6bad-6c3a-46c8-8a9f-6d38528f2f62 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-39,b2c3d784-c2e9-42ea-9632-9a77a17c1988 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-4,b41e435a-4708-4d50-87a3-5dd9cc7afe47 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-40,45c6f3c7-b5e1-4f34-90d6-a450027ef1bf +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-41,1229028f-8ba3-4bef-a1e1-e1bed0bfdb29 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-42,4408b79e-5f74-4c86-85f2-90319101525a +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-43,0802fb50-948a-46f1-893d-a5a54e86f76d +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-44,dd19e459-1b39-420e-9436-edb9048bffef +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-45,edf2f813-d133-4c74-9559-84668784155a +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-46,41bd53e9-b39f-44df-8372-58026208bdeb +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-47,d36e7762-e0e7-4eba-8640-0c0367a3e75d +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-48,757d3a33-f133-4dae-9908-5e0a94ea23c5 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-49,7c3bb587-526b-482a-9607-dd050c731b4f +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-5,e5512ea3-5d9d-4230-9617-6b61d65f53d0 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-50,5d0bdc19-5403-407b-886c-d5439fe140e6 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-51,d1eb67e3-1358-4ab5-8851-121760f08b08 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-52,aac3df21-6964-4fd6-ac19-414d7ede43a5 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-53,f0ffd8e8-1628-4392-a85b-0892c059de2e +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-54,38ad7a24-c7fd-4b38-805a-0f9e43db1fd9 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-55,dd963799-f3d4-45a4-9f68-ebd4dffcb32e +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-56,f146217a-814a-45c4-947c-1dc03ba50fff +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-57,90d3e0c7-04b6-46c7-bf80-a91bac1041c0 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-58,ec7e7109-f087-4c29-b0c0-5e427a4bab11 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-59,80eac2bc-faec-44b6-b648-8d7f65195b10 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-6,b0f1ea0c-d274-40b3-83a8-ecb9ad2a8d7d +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-60,46e76c9b-c982-4326-b205-bc15a5cbef5e +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-61,5a897d8a-23e9-4b4b-81cf-d5d8330990aa +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-62,8029c580-c6dc-4a07-9128-76c3374330c3 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-63,47232969-bf2c-4727-ab13-aca63e575efe +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-64,4c575ef7-cf4f-4052-867b-23a12c23ca55 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-65,5f0f1807-cb88-4ba6-a3e9-08699cfe0b30 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-66,063407a1-0ad1-4413-acb5-83609783c699 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-67,31d81711-bed4-4b0a-b2fe-7cc52b4bdae7 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-68,0b6c9ba9-5eec-43ab-8c54-d6841e887aea +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-69,16d2f36e-7597-4995-9575-5cc47836e418 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-7,4eb0da78-b7d1-435f-a6d8-27259ac47485 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-70,7a790a85-5692-4cbf-8b8a-a75e86af4bb0 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-71,54b8de7f-6c96-45d5-87a9-d5ae4692b981 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-72,350f7a2c-2ea2-4790-8d3c-9c831e2693c7 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-73,32028e00-c5d3-4c3e-a919-acce8645f947 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-74,e9abc349-3cce-41ff-b289-0dd7a1ee1784 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-75,34dcb3a9-0efe-4094-8ff4-3e4e9b8c515a +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-76,fb0249f4-2ae2-4747-8f0a-4018a01f7d91 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-77,d13bd8fc-e75f-41c2-8d02-e5f1b8022ae7 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-78,46773aab-c6a4-4a7b-89de-efac43e449b3 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-79,6ce81d44-50e3-431d-85cb-4e253d48208c +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-8,63756f15-f768-4bfd-a3c0-3e197857ea99 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-80,d306fa5f-fcd3-47fc-9f04-c430ff98646e +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-81,8b3a12f9-40da-430b-88bf-80f2391acc7f +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-82,1a12b13c-69a2-4772-9a49-4f1944eff06f +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-83,a7b08c50-b970-44b6-af88-7dff3c338f54 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-84,b56d29ad-87df-4be5-8124-c282dd20ffd3 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-85,e90732fe-223f-4c8b-9f4a-cd4687e49c8d +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-86,6fd79a8e-79b8-4925-bcb6-24ba06f904d3 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-87,d94b59cb-9462-4a0b-a499-16f585e0a0bf +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-88,37611149-afc7-432e-baac-eb5ae21ae7a8 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-89,d6e18526-cbd4-4ed4-8858-1e4011a600c2 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-9,59e89693-e7c6-4d14-819b-39d39c631946 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-90,186d03ac-767a-4558-a3a1-af0408e965a7 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-91,e466da1e-cd61-4725-92bd-23c75c9f21d8 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-92,c135cd3e-a2a5-4317-af9c-8759a3c681f1 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-93,789ac4f0-f3ad-4df6-ad96-11455251d64b +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-94,ccdc326b-73cb-4193-bc99-1534c6657510 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-95,9ed81307-c85e-4b4f-9304-0823240d5f4d +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-96,ade726d1-15f5-4e82-afd3-90126405f424 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-97,b589dae3-c305-4afe-84ea-c19f0b5f8403 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-98,866f91a8-3bb5-4bef-b15b-7c47727db681 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pad-99,72da008a-e6b3-45b0-9949-be771e02e860 +pkg-hvf-pqfn109p40_1200x1200x100l40x20t1010x1010-pkg,6034be21-b68f-4c1f-95c0-41ae41f8e3ef +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-0",630943c7-bd06-47dd-a6d5-89a0f512dbaa +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-1",0d93cb10-00a5-4f3f-9ae4-008711a5c889 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-0",4527c927-d02d-4d76-8843-8ea636cca82c +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-1",09357fa2-1bf8-421f-9232-454ca1beb3d6 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-courtyard",1367b325-3ec2-4fae-94f5-50a0a83b045b +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-docu-pin1indicator",25907cd5-f03e-4d18-9a07-3e8443904590 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-docu-silkscreen-pin1indicator",79dc6c97-4483-4ee7-8e0c-fabe07f8fe88 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-footprint",7c18b35b-fc95-4328-870f-2dd039c57439 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-name",35bf3b83-6dc2-4808-a1bb-d391834b8b8d +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-outline",a1271d36-b15b-49a0-b7d7-f61f485d4500 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-outline-docu",ed9dab46-6dd2-4a1a-b0e8-cd21b8b7bf79 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-1",0b1b321c-76b4-474b-93e2-90d9a741ac65 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-1-docu",063c482d-a35c-435a-8509-b28e89ba3057 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-10",2a698210-8b6c-40b8-852c-dcf69223efc7 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-10-docu",e1278914-45c5-4b8c-9053-064152934f05 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-11",e433b238-a1d1-4216-82b1-092327e613a4 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-11-docu",839ad74e-78b2-43f5-a15f-aa148e90dc3b +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-12",e15790b8-5bcb-4208-8f9a-5595366dfe19 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-12-docu",f1b616f4-2483-493b-ac1d-c2388060e334 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-2",1326664c-e41a-4705-97e5-eade93fd1ea6 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-2-docu",93d6e931-bfa9-44f2-b792-a27b3bf27948 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-3",5025544f-a3e5-434a-8b20-0859e6209011 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-3-docu",49af76ed-ecf8-4efb-ba7c-503390b8b549 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-4",ed60b55b-cc51-4008-9b03-0da9450ba5f7 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-4-docu",2f2aeaca-6da1-4177-8499-8a9bd31dd125 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-5",e9eeedaa-c912-4d89-93a9-69a2693ac38c +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-5-docu",4136beb7-6742-4bf2-9dc6-70fe63dbf5ac +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-6",355a43be-19ac-48a6-8682-4334fe836e22 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-6-docu",4d78dde2-ef30-4226-94c7-ea70f0a73719 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-7",45a8e056-06dc-427d-abe8-68771b97bc3f +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-7-docu",7259a4d7-adaf-41e3-9d19-e09b56b0bfca +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-8",1e845e99-6146-44b6-8c62-a49a2a082a2b +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-8-docu",2206a132-bff3-487d-af40-47cd32caf792 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-9",6d03bfe4-ef03-4fa5-9d41-d44330f0584f +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-9-docu",2781f9a8-3798-4a46-8e73-46b40295a2b6 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-pad-exposed",2247b2cd-20d3-43ab-abec-a08af2d7d705 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-silkscreen--1--1",0c99678c-66dd-47f6-9a30-ffa61290a1f0 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-silkscreen--1-1",54225e9b-b12b-4b77-bd77-ae48a2a78b68 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-silkscreen-1--1",bf07fbe8-2f29-42e8-b69b-cfaf330897b7 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-silkscreen-1-1",e57ea0ad-e5ef-421c-be69-18024586be40 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~a')-value",51cab5a5-8801-4dfb-bc3b-98642e4eb71c +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-0",0ec9e6cd-4ad6-45d5-b777-091fd113331a +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-1",0c2d5ec4-7608-4e2e-8138-02c4951babd8 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-0",93a46cf2-6ad1-458c-9658-4ee9ce79b380 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-1",55425479-d0d3-4b5a-b244-52fed58acce9 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-courtyard",50b4509c-4a53-4071-8da8-3a64db7d3a76 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-docu-pin1indicator",5c91b0c9-942c-4883-b51d-c6994f95f3f9 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-docu-silkscreen-pin1indicator",4e0b6edf-dfd9-47be-8dbc-453a6b112f43 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-footprint",1f4a0c1b-ad1a-4476-9ae3-2cd4928157da +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-name",6f0ee57c-fecf-4288-9c94-c23520e5fe8c +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-outline",2d91e0ee-894f-45bb-a540-9416bdd6b3db +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-outline-docu",30f711db-e9b5-4d38-9553-efaa77623e64 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-1",29865abd-4cda-4a82-b363-fbf249904cd9 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-1-docu",bf1d9e2b-6b51-4418-847d-b26faaf82c2f +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-10",2cb8e64c-1542-4a88-b128-88684ce83a03 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-10-docu",20ac2c51-1b99-4c6f-b917-74fef7bfb7ab +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-11",cca6eb07-a4d1-4c89-a27d-52101410db65 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-11-docu",8b914cf9-01a7-49ef-85a9-78ce721267cd +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-12",955e7a72-60b1-4fe7-992d-14c2801b8b74 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-12-docu",4a0a4276-d545-4341-bada-652c8e4f722a +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-2",1c6497c3-934a-4cff-ac18-c4bdc3ae8084 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-2-docu",ac7278a6-9647-4b45-9b9a-b505b3db33d9 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-3",6b3cf972-0264-4be1-8dc4-630dde18d5ef +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-3-docu",fcf0b5ce-f260-43aa-bf1e-6f82ddf6fe6a +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-4",5b6a3340-d375-49ee-b281-f0f9aeeac2af +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-4-docu",7e1a8ff6-7651-4e6d-abf3-82af4f390fa0 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-5",b7f0705b-815b-4862-b8ae-b4b7a1be2c65 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-5-docu",8fd2ee66-78f2-47c4-99d6-d9ba2a13adb8 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-6",a7d5307a-4419-4263-8009-669ea158a390 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-6-docu",883e5c86-01cb-4217-a033-f4a6e3eb0bf0 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-7",dd55f205-44d0-425e-92f6-943e41949c1d +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-7-docu",d19a67f5-0fe2-4761-9bc6-9081583cc618 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-8",59a70586-28ac-46b8-ba53-aa629b8641e8 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-8-docu",8b887738-4dbf-4c0a-83a7-dde7394b607c +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-9",383acd13-6366-4382-8b9a-77cc01f0622f +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-9-docu",505e246c-9acb-44f1-9ca7-ac4993bb9db4 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-pad-exposed",a3438af6-1d29-41ef-b89d-e45adfa9e968 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-silkscreen--1--1",f5d98487-f863-4a83-8b10-f6f76876b43e +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-silkscreen--1-1",84ca961c-5499-4ecf-a0bf-d3c9de932791 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-silkscreen-1--1",7b9dbd36-77c0-4dea-96ae-925818d46cc2 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-silkscreen-1-1",140294a0-b16c-467e-bec4-f82299eb29b3 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~b')-value",7d7cd078-7c84-41e7-867a-098907d0240f +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-0",965ad359-e62c-4b37-b7ae-d9b5417118d1 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-1",9c06a9ce-2515-47b3-9e62-4e6cca5443bb +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-0",14c0ee27-73be-4564-8550-ccaf1c5eafdf +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-1",533d84ca-58f0-4867-bffd-ab416376ec2c +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-courtyard",eab03b75-db8e-4f47-aa46-68efb492165c +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-docu-pin1indicator",cfa0c4b9-254a-4c01-937d-27122f7b73ae +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-docu-silkscreen-pin1indicator",d1d2ce5a-fdde-4f64-9f7d-b53422cf52bd +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-footprint",3942c86d-6c98-4b7e-b02a-1f1558c07ef3 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-name",f5adb52a-97f7-44d2-a66c-5ef4851a4dea +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-outline",848e8be4-433a-4aa5-81ab-733db19c2abd +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-outline-docu",89490009-f8cc-44c6-9454-8938a3cfd1f1 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-1",2eaa3eb2-1488-4b81-bd87-aa414e35e27d +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-1-docu",92d21bc3-1ca6-40cd-9581-cc70db4bebc4 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-10",c66025a7-f2dd-4533-8f39-580d2321064d +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-10-docu",962b5f6e-4127-43f2-beb5-d7d6e4a863ca +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-11",3ea25379-eb80-40e2-93ff-1feac21d30eb +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-11-docu",41265d8f-6330-461f-97a7-9dab1dec456e +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-12",b87481b7-535f-4e85-8a45-3e4b08619650 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-12-docu",392205dc-4862-4f4f-aee4-1b18e24758ce +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-2",84d44335-12fd-40e2-84a8-254d9c781e1d +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-2-docu",734f012d-2b52-4ef5-a8a1-2108cb345969 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-3",65392478-28a0-456d-8705-6d1fd56b8446 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-3-docu",34be2390-eb9c-44f2-a62b-371edada54f1 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-4",90dbdfce-68af-4154-aa35-847350870fba +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-4-docu",40e7a3e3-5f56-42e1-9dcb-f499a8cab49d +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-5",363db75a-6892-4487-890b-9d9b5fb1ef46 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-5-docu",eb858dd1-6242-47da-acd8-8a2078062e55 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-6",8724ff6e-108c-4000-b9f9-8f4e2ed91733 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-6-docu",9283a5b9-fc5f-4e2d-a4ba-a78846cf64e1 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-7",85bc92e0-6052-4551-b55c-2f082fc38d6a +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-7-docu",be63afbb-67de-4c98-b4c8-27bba73d8bd6 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-8",081a9c82-d19a-42cc-ac1b-13893d81356d +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-8-docu",f0719989-44cb-44ad-9c71-09196a90a969 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-9",fbdc3872-001b-4ee8-b073-9222debbba2a +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-9-docu",a4078d0e-7f37-41ec-96f6-3378ad2f99b3 +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-pad-exposed",9f252bf5-7267-4516-ae98-7d3257d0c39d +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-silkscreen--1--1",3c9b6b65-6c90-48c4-a45d-68f29decf0ed +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-silkscreen--1-1",fbb5d563-d2f3-48e7-aa7e-c6e99df7bb1a +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-silkscreen-1--1",06fd6285-71ef-40e3-b94f-299a8d7829db +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-silkscreen-1-1",12a21b52-0be6-43e3-bd24-879fbe3d9b3f +"pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-('footprint',~'density~c')-value",a2d7e0d1-2be1-4aa5-8e1a-e38f06767cd9 +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-3d,34f11f2d-cbf5-4a58-9e63-899887394e69 +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-exposed,47195a7f-fa3f-4835-a624-afe194aab817 +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-pad-1,339a821b-0df2-46c5-a63a-a493712f78c7 +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-pad-10,d8d4c553-de78-48be-9f32-036db0b06ef9 +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-pad-11,67d15946-7caa-4ffc-9909-deffc33d001b +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-pad-12,78e4ed1d-3936-4a1c-8d1f-6143e3071893 +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-pad-2,c8043f53-e2df-45c4-be58-c54df131b279 +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-pad-3,57c908c0-d480-4529-baf4-4261d3070473 +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-pad-4,df2f11e8-989a-4702-b6af-1ec14c0bcee9 +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-pad-5,aa485ac8-3361-4c7f-b3ea-e355a9846ebc +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-pad-6,6b9e787c-1bb3-4039-876f-5249ca39e599 +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-pad-7,1f1517a3-c57f-49b6-81dd-3ce9ec11eb01 +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-pad-8,fbbb9958-ef67-4055-b4d6-74004bd3b138 +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-pad-9,f8603376-1bd6-4c92-9f63-03049e81af6f +pkg-hvf-pqfn13p80_400x400x100l55x30t170x170-pkg,c54faf51-1eb0-4e02-9a7a-8178b33e85dc +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-0",7193abd3-0a7b-4978-a911-a9fe075b7ca0 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-1",3de86414-b82c-4bd1-ac14-91beffc11412 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-2",27755b1f-7f2f-4495-9403-d766ecc01576 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-0",d8b9cb8b-bf01-4ad1-95fd-02c4ba1496ba +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-1",f50ad7e3-1341-41a8-807b-378777a43f33 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-2",70b07401-b497-477b-a4ae-a041ca5b252e +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-0",7de596aa-8d3b-436b-8b04-bd019f0d08eb +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-1",5b34dee9-fd9d-466f-97bf-e39e5a339e53 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-2-2",8bd3e9d9-e79b-4eff-a111-229c03b79f5f +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-courtyard",12243681-6a28-49e3-b570-93e789f01968 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-docu-pin1indicator",61feae38-02c8-4b94-aedf-e37a62425115 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-docu-silkscreen-pin1indicator",2fb599e7-1d26-476e-912f-62183dc00440 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-footprint",495c8fca-9f85-44c7-82b6-2280a1d70d8f +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-name",265b79cb-40d6-457c-b75f-c250ffd341d1 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-outline",82789e30-296d-4e5b-99a7-c67b42c53026 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-outline-docu",29ff32f0-86b0-4eed-b4fc-067ca04a0e5d +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-1",8c56e3b8-30d2-4623-8951-27f7b62bcc32 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-1-docu",6535e0f0-3c58-456e-852b-0e34ab01cc49 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-10",b5f3b60b-024d-4010-b418-6556852ac700 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-10-docu",7e24d9cb-e54f-4ff2-9917-30f27cda1b2a +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-11",4c2527cb-ed20-473b-bfc1-4be9b4a29625 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-11-docu",5bc1909b-9543-4dfb-9f19-fe37a1a947bf +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-12",e411463a-98bf-41de-b124-e096abfd77c9 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-12-docu",924f1f0c-b16b-4e51-9b3a-db278db87799 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-13",b52afaa0-e831-4c2f-a1b2-a14ce1599128 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-13-docu",0f801a7e-1b84-426e-a4ba-c8ae0be19cf7 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-14",e44fde93-8ed2-4866-a1e9-2d1928637ff8 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-14-docu",3592631b-c584-4219-bfa7-ddd7339772f8 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-2",74d9e74a-6cde-4d51-9620-bc5702726385 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-2-docu",08b534f3-42f1-46a7-8d51-5dbfb3034af6 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-3",bf2c0761-e2d2-48cb-b44a-a5a97d1af96c +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-3-docu",572eaf05-350a-4ab1-bf50-47c8e9f9e379 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-4",e752a863-5d8f-4222-b3ea-90ab3f205826 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-4-docu",726165cf-312b-4871-a647-426603dc1120 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-5",cde9ac5b-b013-4e1f-8939-53a9bbd71f04 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-5-docu",eb6daddb-fdbe-4a42-9711-5a7c50c108de +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-6",871ae60c-ecc2-46f5-8c16-2b2fa0ff1b56 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-6-docu",f88138d6-a8f8-4d7c-82bd-a46193fc7528 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-7",781da767-f89c-4688-9f34-b4d469d1ca9c +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-7-docu",a36fc9d3-636e-467a-b7a6-bd8f14d8721c +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-8",01bccd05-548f-49e1-b1eb-c7ba8cfecc87 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-8-docu",9a43e437-4a95-44e7-a4ef-6de097b116e1 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-9",fb4dd95b-9495-40f8-a1ed-1a437fb7d2d7 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-9-docu",aff2eb35-2836-4c80-92eb-173e8c6da38d +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-pad-exposed",eb6f53fd-bcab-4397-b552-8846a728eef5 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-silkscreen--1--1",5b88abc7-7760-45b3-956d-fa5bd64653e8 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-silkscreen--1-1",76fc9bf6-c6ad-47e0-a00a-4b7a38e4e055 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-silkscreen-1--1",39ef0983-9acb-4b33-983f-1e363ea5e256 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-silkscreen-1-1",12bc16dc-7b6c-4678-ba0d-33dd473020b0 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~a')-value",80c8cb48-962f-4865-b5c7-2bee55948448 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-0",66144112-386e-471a-b4b8-b2d381cc6e8b +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-1",5dbf3638-421d-418c-aa98-090c1829c71d +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-2",5ed3da10-4a79-40e5-bd98-fc4c27beb05a +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-0",306d8981-342f-4cd8-a6d6-e09409d6e840 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-1",c575f98d-2f5d-46c5-97cc-d9eec5071e40 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-2",f680165d-5b3f-492b-a189-46422e082120 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-0",2d8f8129-2f85-4b99-9937-14d15ac19848 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-1",b1e98361-b305-487d-bdde-07849912d4c1 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-2-2",1f4ed1ae-6537-4ecf-9dd4-eda4eba5848d +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-courtyard",27b3a975-a3c4-4b35-87ec-d60042bd8c9c +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-docu-pin1indicator",1677a583-b0c7-473d-a408-b9639d591c5a +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-docu-silkscreen-pin1indicator",983e92cb-14a8-4fdf-8935-d0b47aac89bb +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-footprint",276bd003-9379-4561-9a37-fa43683399d9 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-name",8c8a8bd1-7938-47aa-a72d-e25b408d6cf4 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-outline",0d1fdb0e-8ac9-461b-882a-26497d3e9870 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-outline-docu",4376b4b8-93f9-41ea-98a0-6287e26c3f7f +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-1",88586f74-5127-411e-b764-c09b64d88d1a +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-1-docu",e546fdc6-ad4f-4552-914b-4f87722b3e0e +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-10",c6e4fc2f-1846-4661-aca0-77247e829c5c +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-10-docu",561e5ffe-c053-4078-a901-e4946be674ec +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-11",dff577b9-edd7-4b75-abce-a3c57656e03f +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-11-docu",40e27fa0-6d1e-4b21-859d-ef685e0ad6e6 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-12",b1568025-3139-4d76-b53d-a73c7927570e +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-12-docu",c2878693-2c2f-4f16-a702-90a254e1ad70 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-13",468bded1-e9fb-4447-9b73-5bcf74613075 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-13-docu",3211866d-34a6-406c-99da-10aa78109350 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-14",e8276968-cf3b-4c1b-a9fb-8b4fd968721a +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-14-docu",3f4b77b7-4099-4aa9-bbcd-84b5e86d4ab9 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-2",6ff56736-b17e-45cb-a5fd-f971e0dc133c +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-2-docu",fff9f508-68ef-419b-ba3e-4d5cf389e5bd +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-3",c93db3ba-a84f-4bc6-b58f-f9cce56a9cdb +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-3-docu",af626322-8e5c-40ae-bacc-00987b3287d4 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-4",0e77f495-bcf5-45e9-a7f5-01e5440f8ebf +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-4-docu",bce502b9-d50d-4ea7-9c6c-0c8d172c1533 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-5",8cb51a1e-1ca9-4188-9049-e35a7aa8fa48 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-5-docu",df9434fc-b715-4d79-89a9-0f1f7544c0b5 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-6",02960ed2-8946-4f4c-9e53-ef4ac3e3f642 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-6-docu",1a4b2768-fe20-4816-b632-39401df8747f +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-7",abcf0114-172c-441d-b923-9bf85f07da2f +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-7-docu",f2757c80-381d-44fb-9bcc-4a9ec604d6b7 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-8",a2fbfc74-785c-46eb-ba47-c5870ae836b6 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-8-docu",18f3a0fe-cd24-433a-84bd-bca46e0ca06f +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-9",2d0a473d-c1b9-4f20-8155-d1fc719679e4 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-9-docu",476a5d41-ea2c-4eee-a1b0-782f68f55441 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-pad-exposed",ba5ec054-b02b-417e-8a30-69dcda36f5db +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-silkscreen--1--1",8910ab1f-bfc3-46a0-aa05-ddf2dbed04a4 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-silkscreen--1-1",de2be397-0705-4cd9-aa2b-ca7a7e0bbeba +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-silkscreen-1--1",44d17b55-93a2-49e8-8658-a8650b72ecfe +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-silkscreen-1-1",50538d3f-3797-4cfa-8477-553d6f514977 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~b')-value",4f8e7e75-c648-462b-aa79-937550afa665 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-0",c93a7727-3f08-4ce3-9337-04dab228a612 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-1",e6395cdd-cc81-4326-9581-14e7ac5de7e1 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-2",a208404b-2838-4086-a1c7-765064b9a624 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-0",07cdf483-90bf-42b2-a631-5f9cdbbd13dc +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-1",8259df4b-7e2b-4453-b31c-fa203a7b3084 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-2",52686b04-5787-402d-8c2e-d182ded1e812 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-0",696b6457-e674-4953-a751-3e1fa88827b5 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-1",5aea382e-80e5-493f-8f7f-c5b52f72cabd +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-2-2",a919e4eb-db69-4e35-97a7-90d1f7a270f6 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-courtyard",06d66456-c163-4dd8-ac7f-8f93acc238c5 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-docu-pin1indicator",15f48716-d566-4a8c-a628-54a10a033dcf +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-docu-silkscreen-pin1indicator",49ad2e21-0051-494b-8861-e8f00771d613 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-footprint",d80bd9c3-31c8-4726-869d-71bf8840d8fd +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-name",1411fb48-6605-4cf8-8487-454ff4dc2c44 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-outline",a37f09a0-a2af-4a36-96b6-893c057c406f +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-outline-docu",d8b1d28f-54c9-4fe9-b812-8130db823965 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-1",ccdc3261-91f0-4862-9795-8aa8aac62b8c +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-1-docu",50cc546f-a71d-4cde-91ed-ecccaa7ed408 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-10",1259eb8f-1f18-4680-b4c7-b4ec19fb5230 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-10-docu",430d8eff-6332-4c8e-9e5a-5ad32c93149d +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-11",9a02934d-f502-4224-8ac9-9384f6c1edd2 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-11-docu",520a182e-05b1-4ac2-8131-7554a0c54845 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-12",f34d4a6e-afaf-467d-8e82-26ae8a8349e6 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-12-docu",c97ccd82-ced5-409f-b4fa-05b571234656 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-13",8f94643c-e2e6-43eb-b2aa-76f7bae531c5 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-13-docu",0ce7d268-48ce-4232-90df-f62855481cbe +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-14",4258f96c-49ae-4625-ad19-0b29c516a514 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-14-docu",2fca170f-cf90-432e-815b-dc8929c8f358 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-2",7dbfc488-d6dc-428c-80ef-7295dfd5aadd +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-2-docu",6949160f-b91b-4e41-8d0b-12d3c9fc9805 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-3",f74e7fc9-8165-47c6-8230-706d11fb141c +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-3-docu",4a11e638-6deb-4011-bf45-4e51ee185423 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-4",cb72d253-854c-4694-b55d-8d9016a78bcd +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-4-docu",7b1fdcee-348a-40a5-9ee9-b8f401f0bad3 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-5",bfaba5a7-dbf1-4076-a75d-a9ae0091e9fe +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-5-docu",6b44ddbd-5026-4825-a9a5-5fa1958893f9 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-6",721e087e-062c-42c4-bc2c-f1849d189fcb +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-6-docu",685fe700-e0aa-4d18-b675-8de6d4c3dbf5 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-7",a5bb6de2-d699-4c49-8542-9f3785f94470 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-7-docu",4621a5a7-2f29-40a2-8aef-831ee6f07b99 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-8",5c83eab3-0519-439e-96b4-74792018c351 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-8-docu",a44ee3d7-49fa-4173-a429-312ade702c9d +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-9",d7e8ef06-056e-44dc-9dfa-b9da7d685507 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-9-docu",38fea600-d3f1-41bb-9689-973d9a1b0f69 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-pad-exposed",f9b75408-fdb5-4253-a8f4-333fe0bb57ce +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-silkscreen--1--1",5c6c8834-e731-4b11-86f9-1f99aa938654 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-silkscreen--1-1",41db2c51-5c8b-489d-9b87-19f97d8eb81a +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-silkscreen-1--1",84972b44-a98f-4c65-929c-7e582b4dfa6d +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-silkscreen-1-1",8384a6ea-bdc0-4f42-ac12-474eef88aff5 +"pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-('footprint',~'density~c')-value",66eb5c34-2519-4acc-a042-a046ba7809c1 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-3d,eb50b9bc-bf6f-4fa5-9223-af38c40a2569 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-exposed,e87a246c-8fbd-471e-9408-ab5570ebae06 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-1,2fd862ee-6edf-4a7f-8019-d0be20ed7db1 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-10,a5ee6f34-d084-4dce-a573-1a163e8ab1c1 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-11,aa727189-edfe-45a3-989d-c9c062e5d386 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-12,468a920f-9232-4ee8-9564-39779f3134e1 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-13,96b1548a-ccd9-48b7-a798-a51e11a9f8f0 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-14,b3f69e47-0717-424e-9129-006585ad7afd +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-2,902edc29-b64b-4983-b1c5-03315d8c2181 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-3,9ae6a621-a84d-43f1-9516-11855045b756 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-4,a6e7cbc0-05c5-4ae4-8433-fb177226e811 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-5,baee8089-1f0f-4e4c-8cfd-e4d3ad6f6442 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-6,c2c717be-8d83-47a2-9f2b-f53e85371379 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-7,63ee283c-6576-4f3b-963f-11354b4c6ec7 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-8,96ad2d3b-7e30-4b7f-9c47-784214816f21 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pad-9,8fd23f16-9c7c-426d-8cb1-1f659b0082d5 +pkg-hvf-pqfn15p80_400x400x100l55x30t220x220-pkg,56ad5851-a498-486d-a141-6cc6d40bd11c +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-0",b9d3a6ed-9099-42fe-9f5e-514ff4b34f30 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-courtyard",f5d44b47-b52a-481e-9348-1e78aae44cfc +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-docu-pin1indicator",2331d8da-77e9-4046-a982-456bdbc0ef8b +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-docu-silkscreen-pin1indicator",49dc947b-c7df-4b68-96ed-d24cf8dfbfcf +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-footprint",c617994b-2e3b-4ca1-be63-bc670c217e6a +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-name",0b24c8b4-cfce-48ff-862e-ebf09619d086 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-outline",32f313b7-e3a3-4f80-a712-e5e4439407ca +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-outline-docu",ea6e252f-e41a-4c67-a059-4762a2a65878 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-pad-1",b7e0e2a3-efb2-447f-a502-a9e215ab1e01 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-pad-1-docu",fc89e372-07db-4e89-9181-7b7db737a0a4 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-pad-2",a4c73dbc-2a2b-4ca2-938f-1741b14cb0ef +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-pad-2-docu",88e2c76a-57b4-41e8-a858-ff0a3b63d7fa +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-pad-3",dde3d5af-92f8-4dcc-ad38-5c902629bfcb +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-pad-3-docu",e874c4ef-af71-4c56-a7fd-1ee26a8dc362 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-pad-4",0d8035f1-47b4-48b9-9dde-7ce7a3f58cf4 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-pad-4-docu",97abb6d5-162d-43e7-8599-563871d453c8 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-pad-exposed",9e2cf916-df64-49ec-a5ce-a8a11abd7091 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-silkscreen--1--1",b61c73ad-4330-4508-b735-bb5d8276cac0 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-silkscreen--1-1",ee9ce626-8ce2-4d32-bad6-e5dbd6b9241e +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-silkscreen-1--1",a1800ec2-bf07-47d0-816b-6aac13de502c +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-silkscreen-1-1",063cea3b-63cf-479d-926e-9c0564b0bd7e +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~a')-value",396cbe3c-3642-4bb7-9c5e-281e40dac00d +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-0",36ebcfaa-b0c7-4641-be55-b080ec4d80ee +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-courtyard",59c01f6d-4541-4693-9e4f-714ee1dd873c +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-docu-pin1indicator",704c025c-9b83-4207-925e-79290fdd5502 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-docu-silkscreen-pin1indicator",26ea62ee-9e9a-491c-80d7-abe308f180bb +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-footprint",ae6215dd-ff7d-4d09-8261-4af3c9de8faf +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-name",c402f972-9ebc-4c87-9541-dfacfb5431af +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-outline",18570abd-af69-4336-95cd-26e2de5b9b04 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-outline-docu",38717765-4e24-494d-b0f2-29106c65db5d +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-pad-1",3aeeeb27-0c1e-4e99-9872-e140636d80d4 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-pad-1-docu",6fe72b6a-a7be-492a-9b0f-43a718955d25 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-pad-2",fd5e5e38-ec1a-4867-9938-1845024f6f9e +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-pad-2-docu",81fd592d-4df4-46b6-b8ee-dca10a1d773f +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-pad-3",108cb12c-00f8-43a7-9a75-75ba782a0a8a +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-pad-3-docu",6239a79b-2ae1-4e2b-a280-aed2018325e4 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-pad-4",fe3d5f4a-40d9-4ac9-84f4-94a41302c45a +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-pad-4-docu",fd567cea-086f-46f7-a79f-44e3a9f013d3 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-pad-exposed",c2206071-b3c6-414c-bf1e-85e4e2f7c9ee +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-silkscreen--1--1",add24f22-c3b5-4d2e-b92e-82f792ace7f8 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-silkscreen--1-1",a1d5bf56-8195-4511-a1be-3666814811cc +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-silkscreen-1--1",42fbc60c-b55f-459b-8b03-1b8c91732c3e +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-silkscreen-1-1",732b2db2-3c64-46c2-b47a-c978a7ebc756 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~b')-value",b6c54609-6d4a-43fb-8a8a-35feb16f9b6c +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-0",64038b0e-0372-4a5f-83ac-71f86821cc33 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-courtyard",8c101e4f-4d6e-4c37-839a-6bbb9f99260c +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-docu-pin1indicator",d3bffb33-c450-4f08-8ce3-0150e3eaca73 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-docu-silkscreen-pin1indicator",486433fd-8a8c-4a25-9538-0394a009cc40 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-footprint",3fd510c7-721e-45e8-93a9-39d1c666328b +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-name",e0da9816-893f-4c14-ab8c-15cbc9101d11 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-outline",cac7b9fa-196f-4398-b6c2-bbe860cb7c77 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-outline-docu",319da6ec-f31f-470a-91b1-f62640dc563f +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-pad-1",1a53bab3-359d-4b95-9d86-1b0cfe6b15ba +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-pad-1-docu",db521d83-55f4-4e28-9304-b63a77d3ed91 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-pad-2",b89a3cb1-49f3-4147-80cc-c29bea69a4b3 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-pad-2-docu",2b0fd42a-d713-4f33-9fe0-8b206eadb60e +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-pad-3",e104b1fa-ba65-4d7e-a742-7cbde566a319 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-pad-3-docu",165d20df-f6a6-4690-944d-aa86645ab012 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-pad-4",9e565abc-fb25-4986-95c4-82cccdae38b7 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-pad-4-docu",e68854b6-9ce0-44cd-9b4d-142471c94387 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-pad-exposed",37f24c39-19ea-4cc6-bc36-2f453232dfcb +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-silkscreen--1--1",a5a4d46d-a28b-4e00-a470-31f6db58ed0b +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-silkscreen--1-1",28f7e530-70b2-44dc-af2b-97077bbd3a1f +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-silkscreen-1--1",55a6b054-673c-41e3-830d-540ebbbca69d +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-silkscreen-1-1",1f0e0485-6380-440c-9dbe-4f0317264262 +"pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-('footprint',~'density~c')-value",161c7e0b-af5c-48a4-abc3-c47ff9dfc8b6 +pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-3d,9599fce6-b07c-47ac-8d47-1d50e3e45272 +pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-exposed,fdb8fa65-1511-441c-9da0-9cc6a0b42285 +pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-pad-1,1b141b74-e0c6-4fcf-8d91-34edbbcb4eae +pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-pad-2,125154f8-089f-4b19-a706-c55d32777de9 +pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-pad-3,f3f3c968-200a-4b17-85b2-6051b8f87c6e +pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-pad-4,024047dc-1ad5-44e5-8a04-e2320c666aa3 +pkg-hvf-pqfn5p80_300x300x100l55x30t70x70-pkg,655e7148-8da1-4c2b-939f-8172ed94e8b7 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-0-0",7ca7059e-48f0-4637-8b61-ccb8dc1243e1 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-('exposed_pad_solderpaste',)-solderpaste-1-0",94484213-d97a-4ca4-a017-5297afd657e0 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-courtyard",e5b701e3-8f75-4cf5-b3c3-46afe2b55637 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-docu-pin1indicator",bf320347-7ebb-44ad-a5a3-d65aa6b4dc59 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-docu-silkscreen-pin1indicator",ef628271-da3f-48e5-8fd5-46670238aeae +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-footprint",f4f9918b-2bfc-4c5d-bbcc-b67120d7e244 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-name",db58a1b8-bd69-47c1-8bf3-86a217e44b2f +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-outline",1bb3509f-9dba-43ac-b50e-0f92d0809aab +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-outline-docu",6a295940-b0ae-45f5-b57c-9e2a419f8098 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-1",f1ad8c63-3dee-4348-bb17-2b13af24be30 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-1-docu",1e33a8f2-ed39-4b78-9417-109b0d3c77ab +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-2",c4012f7f-db68-4471-8c3c-f0752c36da35 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-2-docu",dfa5ae03-8577-4001-8a0c-48aa10ea5a3b +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-3",b0afc18e-9768-40f6-870a-9241d56d0c82 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-3-docu",f425161b-4b05-420d-bc39-43eb20294363 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-4",f72fe7f2-5fa7-42bb-b3e0-2304f31332aa +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-4-docu",21af3903-b917-49ef-bf8f-ad88f1700c9b +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-5",16a9fcb8-d9de-4f4c-8413-0f8917c63029 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-5-docu",9d09b56e-6cef-43c1-8a59-d94f7ccaf0f1 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-6",5717c185-6410-4530-8447-b3a5c32602b8 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-6-docu",76093977-a29b-4eca-bd07-ac450513169e +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-7",7aabfff3-e0d5-48b7-9a54-e8e30bf3c49e +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-7-docu",6c84228c-485d-442f-8fbb-8499611bc3c1 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-8",6e407d32-2db2-438f-a7f8-18444c313bf9 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-8-docu",399b0595-24cf-4812-ac33-59bf91266632 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-pad-exposed",d5081b6f-2754-457e-9b40-800de1a06eea +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-silkscreen--1--1",02625164-1c35-484d-80f3-7679e828b92e +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-silkscreen--1-1",1a550330-9823-4a88-948d-e68dd0bb30fb +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-silkscreen-1--1",0f081839-d495-454f-ae71-6a546ab9b4f1 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-silkscreen-1-1",320c02dc-2949-48ab-9ac2-a80e819ffa23 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~a')-value",201297cd-46eb-402b-918e-ec9691e1c30f +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-0-0",947219ae-9c2b-4f8a-acc5-c0b69b2c2fe2 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-('exposed_pad_solderpaste',)-solderpaste-1-0",87632b0a-922f-4130-af84-e20878e86989 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-courtyard",eeb45d46-d611-4702-841a-17654da465fb +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-docu-pin1indicator",0a17b5a0-b5a4-4f6d-adfe-f650fd5ddf18 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-docu-silkscreen-pin1indicator",c0b8b883-44e5-4ce0-b6a7-a0ccc2a4b65b +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-footprint",0a912d2a-fab7-42e0-a366-d65d567ee264 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-name",db4939fe-b4d2-4729-9959-272b67de7324 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-outline",d9d7fa89-c138-4487-8455-5f6599a3b034 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-outline-docu",f4a06da1-43a6-46f4-ba47-ef03d815f478 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-1",454d119a-9d02-43f3-83e5-3b7d887b414f +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-1-docu",22e84561-5415-40f7-a390-311fa6d4188d +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-2",9b0daf55-dd6d-4085-a914-8eeb8cd57f8b +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-2-docu",23678d9c-a920-408c-a63e-186b340dd698 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-3",7d1a7d9e-f314-4472-910b-82c6c6b3592f +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-3-docu",1325f4bd-2988-4dbd-a465-579fcba8b023 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-4",3b192500-20d7-4965-b1ae-fb72f17c2844 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-4-docu",cea87d5e-72a2-494d-8de2-4a8485201c81 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-5",ed8c1e78-90fe-4a77-ac6e-2dbab455358e +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-5-docu",25409b21-7afc-4e9e-a9ed-2b405e1e3751 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-6",91830340-dd5b-4041-904d-347259b1763d +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-6-docu",230a2e4e-13b9-4531-a999-8f0d87b1e9f7 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-7",33fd4d10-819d-4586-b3b5-ee4901a3fcd7 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-7-docu",18369f02-5ca7-4235-847b-be610acfd954 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-8",53abfe4b-d0a2-4145-a1a2-01a00a2571d4 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-8-docu",4464bb2f-cffd-4e78-a887-0e078d94b42c +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-pad-exposed",735bd172-cf25-4065-bf89-79ee7ab52578 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-silkscreen--1--1",a52c2dab-51d6-4457-b8bb-f34c90ed61bd +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-silkscreen--1-1",37f04e07-3de9-4133-b5ae-0ba9841bd45e +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-silkscreen-1--1",16966f16-e5fd-4179-9bf5-e02760795253 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-silkscreen-1-1",5167c202-747b-4efe-aa00-1cd2d1753bf3 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~b')-value",101ec1cc-f1d9-4ba3-a5d7-90adaaedb837 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-0-0",f320a9c6-9614-4e31-bbef-581ff0f24e13 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-('exposed_pad_solderpaste',)-solderpaste-1-0",92c492fc-2643-4792-b33e-5dbeb2bb5f43 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-courtyard",ddc560a3-3f8b-4540-9d5c-dbad5f872f89 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-docu-pin1indicator",e1bb4e8e-bb4e-4d8d-acba-656a8eb3603e +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-docu-silkscreen-pin1indicator",59ebc7b8-f8a4-4b85-b853-606aeeda79c1 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-footprint",bc834125-b727-4e5a-b89f-854314909e09 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-name",8d55c31f-40d2-4401-aaa6-f1eca00b5489 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-outline",00b8f75a-a8a3-4991-a9e7-8dda4549070b +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-outline-docu",23ae4a96-7eb6-4c12-b77e-9b64ac108e4a +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-1",09821f59-8754-4849-9723-5d84d8f76e77 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-1-docu",0a786511-3a3a-403f-b266-43ef4e78be9e +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-2",6aadf61d-aebd-4698-bf1a-8db3c7cfab81 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-2-docu",030029a3-2687-422e-b664-7700e3fdc2b9 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-3",19318bf8-2f58-4505-ae5b-354b1b9a5664 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-3-docu",26ad6795-e34f-4ff5-9a03-5b95b7a2dfb4 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-4",4b0d5b46-0c95-4a21-b639-d2eaed991ab4 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-4-docu",454d80d8-40c9-44bd-9561-69817f1b6b21 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-5",8d56aeff-eb3f-4707-a94f-eac7a4be5cfd +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-5-docu",471615c1-8e88-4f1c-9469-63b03dc43b50 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-6",3290a893-ef4d-4be4-9870-11681e51fcd8 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-6-docu",1f25aba4-275a-448f-9b4e-c1a7093b3565 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-7",d676b07d-0bc8-473a-8461-d56f8e5f6798 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-7-docu",c450a8c7-9243-49d0-aae8-3732508c6915 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-8",dc36b45d-d487-4042-b11f-4bc481adef39 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-8-docu",7843ab3f-42f6-4171-acf5-1178bee507f6 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-pad-exposed",1036733e-1452-4322-aca2-f423b945ba5d +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-silkscreen--1--1",4e657e09-1d7a-4e40-b9e7-ea086a7327d2 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-silkscreen--1-1",5f6b8d3b-69c5-4064-a931-c736aae86794 +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-silkscreen-1--1",07bf6bd9-e6c5-4f2f-9694-a3e6cc4adc8c +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-silkscreen-1-1",d827c9b5-6b79-46db-bdb2-7889a495000e +"pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-('footprint',~'density~c')-value",a6dd0588-fb98-4bbc-9d81-e2a69ae752f8 +pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-3d,abe98767-106e-4052-bbd6-1d569f44f59c +pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-exposed,b034dbc3-3a05-42a8-b1a5-1425f4bfa0d1 +pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-pad-1,e5212ea2-421a-4d81-b9be-d9011515591a +pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-pad-2,c3cd40e5-1b2f-4b44-83a4-b4bae9408175 +pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-pad-3,24ae6648-7fd9-4e30-924f-453ecda067c3 +pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-pad-4,8689818a-6f1d-424f-9764-1a799825d995 +pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-pad-5,df60ae1e-fef0-48fe-9c46-5c2c13722d26 +pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-pad-6,26caf84b-02f0-4857-ab86-cf12e9a9f24c +pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-pad-7,05b2ca06-f249-4ae6-9e01-9eeef4032a49 +pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-pad-8,d37a4005-0d59-45b8-ac25-178f11ba706c +pkg-hvf-pqfn9p80_300x400x100l55x30t70x170-pkg,5f640cbb-a2cd-456d-985b-416cd6c5e6e9