diff --git a/backend/apps/fertilizer/admin.py b/backend/apps/fertilizer/admin.py index f19acaa..445ea6c 100644 --- a/backend/apps/fertilizer/admin.py +++ b/backend/apps/fertilizer/admin.py @@ -2,6 +2,7 @@ from django.contrib import admin from .models import ( Fertilizer, FertilizationPlan, FertilizationEntry, DeliveryPlan, DeliveryGroup, DeliveryGroupField, DeliveryTrip, DeliveryTripItem, + SpreadingSession, SpreadingSessionItem, ) @@ -17,7 +18,7 @@ class FertilizationEntryInline(admin.TabularInline): @admin.register(FertilizationPlan) class FertilizationPlanAdmin(admin.ModelAdmin): - list_display = ['name', 'year', 'variety'] + list_display = ['name', 'year', 'variety', 'is_confirmed', 'confirmed_at'] list_filter = ['year'] inlines = [FertilizationEntryInline] @@ -60,3 +61,15 @@ class DeliveryGroupAdmin(admin.ModelAdmin): class DeliveryTripAdmin(admin.ModelAdmin): list_display = ['delivery_plan', 'order', 'name', 'date'] inlines = [DeliveryTripItemInline] + + +class SpreadingSessionItemInline(admin.TabularInline): + model = SpreadingSessionItem + extra = 0 + + +@admin.register(SpreadingSession) +class SpreadingSessionAdmin(admin.ModelAdmin): + list_display = ['year', 'date', 'name'] + list_filter = ['year', 'date'] + inlines = [SpreadingSessionItemInline] diff --git a/backend/apps/fertilizer/migrations/0008_spreadingsession_fertilizationentry_actual_bags_and_more.py b/backend/apps/fertilizer/migrations/0008_spreadingsession_fertilizationentry_actual_bags_and_more.py new file mode 100644 index 0000000..30a169b --- /dev/null +++ b/backend/apps/fertilizer/migrations/0008_spreadingsession_fertilizationentry_actual_bags_and_more.py @@ -0,0 +1,57 @@ +# Generated by Django 5.0 on 2026-03-17 08:49 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('fertilizer', '0007_delivery_models'), + ('fields', '0006_e1c_chusankan_17_fields'), + ] + + operations = [ + migrations.CreateModel( + name='SpreadingSession', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('year', models.IntegerField(verbose_name='年度')), + ('date', models.DateField(verbose_name='散布日')), + ('name', models.CharField(blank=True, max_length=100, verbose_name='名前')), + ('notes', models.TextField(blank=True, default='', verbose_name='備考')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ], + options={ + 'verbose_name': '散布実績', + 'verbose_name_plural': '散布実績', + 'ordering': ['-date', '-id'], + }, + ), + migrations.AddField( + model_name='fertilizationentry', + name='actual_bags', + field=models.DecimalField(blank=True, decimal_places=4, max_digits=10, null=True, verbose_name='実績袋数'), + ), + migrations.CreateModel( + name='SpreadingSessionItem', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('actual_bags', models.DecimalField(decimal_places=4, max_digits=10, verbose_name='実散布袋数')), + ('planned_bags_snapshot', models.DecimalField(decimal_places=4, max_digits=10, verbose_name='計画袋数スナップショット')), + ('delivered_bags_snapshot', models.DecimalField(decimal_places=4, max_digits=10, verbose_name='運搬済み袋数スナップショット')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('fertilizer', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='fertilizer.fertilizer', verbose_name='肥料')), + ('field', models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, to='fields.field', verbose_name='圃場')), + ('session', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='items', to='fertilizer.spreadingsession', verbose_name='散布実績')), + ], + options={ + 'verbose_name': '散布実績明細', + 'verbose_name_plural': '散布実績明細', + 'ordering': ['field__display_order', 'field__id', 'fertilizer__name'], + 'unique_together': {('session', 'field', 'fertilizer')}, + }, + ), + ] diff --git a/backend/apps/fertilizer/models.py b/backend/apps/fertilizer/models.py index 3c87975..961ad75 100644 --- a/backend/apps/fertilizer/models.py +++ b/backend/apps/fertilizer/models.py @@ -69,6 +69,13 @@ class FertilizationEntry(models.Model): Fertilizer, on_delete=models.PROTECT, verbose_name='肥料' ) bags = models.DecimalField(max_digits=8, decimal_places=2, verbose_name='袋数') + actual_bags = models.DecimalField( + max_digits=10, + decimal_places=4, + null=True, + blank=True, + verbose_name='実績袋数', + ) class Meta: verbose_name = '施肥エントリ' @@ -179,3 +186,63 @@ class DeliveryTripItem(models.Model): def __str__(self): return f"{self.trip} / {self.field.name} / {self.fertilizer.name}: {self.bags}袋" + + +class SpreadingSession(models.Model): + """散布日単位の実績""" + year = models.IntegerField(verbose_name='年度') + date = models.DateField(verbose_name='散布日') + name = models.CharField(max_length=100, blank=True, verbose_name='名前') + notes = models.TextField(blank=True, default='', verbose_name='備考') + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + + class Meta: + verbose_name = '散布実績' + verbose_name_plural = '散布実績' + ordering = ['-date', '-id'] + + def __str__(self): + label = self.name.strip() or f'{self.date}' + return f'{self.year} {label}' + + +class SpreadingSessionItem(models.Model): + """散布実績明細:圃場×肥料ごとの実績""" + session = models.ForeignKey( + SpreadingSession, + on_delete=models.CASCADE, + related_name='items', + verbose_name='散布実績', + ) + field = models.ForeignKey( + 'fields.Field', on_delete=models.PROTECT, verbose_name='圃場' + ) + fertilizer = models.ForeignKey( + Fertilizer, on_delete=models.PROTECT, verbose_name='肥料' + ) + actual_bags = models.DecimalField(max_digits=10, decimal_places=4, verbose_name='実散布袋数') + planned_bags_snapshot = models.DecimalField( + max_digits=10, + decimal_places=4, + verbose_name='計画袋数スナップショット', + ) + delivered_bags_snapshot = models.DecimalField( + max_digits=10, + decimal_places=4, + verbose_name='運搬済み袋数スナップショット', + ) + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + + class Meta: + verbose_name = '散布実績明細' + verbose_name_plural = '散布実績明細' + unique_together = [['session', 'field', 'fertilizer']] + ordering = ['field__display_order', 'field__id', 'fertilizer__name'] + + def __str__(self): + return ( + f'{self.session} / {self.field.name} / ' + f'{self.fertilizer.name}: {self.actual_bags}袋' + ) diff --git a/backend/apps/fertilizer/serializers.py b/backend/apps/fertilizer/serializers.py index 1789370..366bbd4 100644 --- a/backend/apps/fertilizer/serializers.py +++ b/backend/apps/fertilizer/serializers.py @@ -1,8 +1,22 @@ +from decimal import Decimal + +from django.db.models import Sum from rest_framework import serializers + +from apps.workrecords.services import sync_delivery_work_record from .models import ( - Fertilizer, FertilizationPlan, FertilizationEntry, - DeliveryPlan, DeliveryGroup, DeliveryGroupField, DeliveryTrip, DeliveryTripItem, + DeliveryGroup, + DeliveryGroupField, + DeliveryPlan, + DeliveryTrip, + DeliveryTripItem, + FertilizationEntry, + FertilizationPlan, + Fertilizer, + SpreadingSession, + SpreadingSessionItem, ) +from .services import sync_actual_bags_for_pairs, sync_spreading_session_side_effects class FertilizerSerializer(serializers.ModelSerializer): @@ -36,7 +50,16 @@ class FertilizationEntrySerializer(serializers.ModelSerializer): class Meta: model = FertilizationEntry - fields = ['id', 'field', 'field_name', 'field_area_tan', 'fertilizer', 'fertilizer_name', 'bags'] + fields = [ + 'id', + 'field', + 'field_name', + 'field_area_tan', + 'fertilizer', + 'fertilizer_name', + 'bags', + 'actual_bags', + ] class FertilizationPlanSerializer(serializers.ModelSerializer): @@ -45,15 +68,34 @@ class FertilizationPlanSerializer(serializers.ModelSerializer): entries = FertilizationEntrySerializer(many=True, read_only=True) field_count = serializers.SerializerMethodField() fertilizer_count = serializers.SerializerMethodField() + planned_total_bags = serializers.SerializerMethodField() + spread_total_bags = serializers.SerializerMethodField() + remaining_total_bags = serializers.SerializerMethodField() + spread_status = serializers.SerializerMethodField() is_confirmed = serializers.BooleanField(read_only=True) confirmed_at = serializers.DateTimeField(read_only=True) class Meta: model = FertilizationPlan fields = [ - 'id', 'name', 'year', 'variety', 'variety_name', 'crop_name', - 'calc_settings', 'entries', 'field_count', 'fertilizer_count', - 'is_confirmed', 'confirmed_at', 'created_at', 'updated_at' + 'id', + 'name', + 'year', + 'variety', + 'variety_name', + 'crop_name', + 'calc_settings', + 'entries', + 'field_count', + 'fertilizer_count', + 'planned_total_bags', + 'spread_total_bags', + 'remaining_total_bags', + 'spread_status', + 'is_confirmed', + 'confirmed_at', + 'created_at', + 'updated_at', ] def get_variety_name(self, obj): @@ -68,9 +110,32 @@ class FertilizationPlanSerializer(serializers.ModelSerializer): def get_fertilizer_count(self, obj): return obj.entries.values('fertilizer').distinct().count() + def get_planned_total_bags(self, obj): + total = sum((entry.bags or Decimal('0')) for entry in obj.entries.all()) + return str(total) + + def get_spread_total_bags(self, obj): + total = sum((entry.actual_bags or Decimal('0')) for entry in obj.entries.all()) + return str(total) + + def get_remaining_total_bags(self, obj): + planned = sum((entry.bags or Decimal('0')) for entry in obj.entries.all()) + actual = sum((entry.actual_bags or Decimal('0')) for entry in obj.entries.all()) + return str(planned - actual) + + def get_spread_status(self, obj): + planned = sum((entry.bags or Decimal('0')) for entry in obj.entries.all()) + actual = sum((entry.actual_bags or Decimal('0')) for entry in obj.entries.all()) + if actual <= 0: + return 'unspread' + if actual > planned: + return 'over_applied' + if actual < planned: + return 'partial' + return 'completed' + class FertilizationPlanWriteSerializer(serializers.ModelSerializer): - """保存用(entries を一括で受け取る)""" entries = serializers.ListField(child=serializers.DictField(), write_only=True, required=False) class Meta: @@ -80,7 +145,8 @@ class FertilizationPlanWriteSerializer(serializers.ModelSerializer): def create(self, validated_data): entries_data = validated_data.pop('entries', []) plan = FertilizationPlan.objects.create(**validated_data) - self._save_entries(plan, entries_data) + pairs = self._save_entries(plan, entries_data) + sync_actual_bags_for_pairs(plan.year, pairs) return plan def update(self, instance, validated_data): @@ -90,21 +156,23 @@ class FertilizationPlanWriteSerializer(serializers.ModelSerializer): instance.save() if entries_data is not None: instance.entries.all().delete() - self._save_entries(instance, entries_data) + pairs = self._save_entries(instance, entries_data) + sync_actual_bags_for_pairs(instance.year, pairs) return instance def _save_entries(self, plan, entries_data): + pairs = set() for entry in entries_data: + pairs.add((entry['field_id'], entry['fertilizer_id'])) FertilizationEntry.objects.create( plan=plan, field_id=entry['field_id'], fertilizer_id=entry['fertilizer_id'], bags=entry['bags'], ) + return pairs -# ─── 運搬計画 ──────────────────────────────────────────────────────────── - class DeliveryGroupFieldSerializer(serializers.ModelSerializer): id = serializers.IntegerField(source='field.id', read_only=True) name = serializers.CharField(source='field.name', read_only=True) @@ -128,18 +196,51 @@ class DeliveryGroupReadSerializer(serializers.ModelSerializer): class DeliveryTripItemSerializer(serializers.ModelSerializer): field_name = serializers.CharField(source='field.name', read_only=True) fertilizer_name = serializers.CharField(source='fertilizer.name', read_only=True) + spread_bags = serializers.SerializerMethodField() + remaining_bags = serializers.SerializerMethodField() class Meta: model = DeliveryTripItem - fields = ['id', 'field', 'field_name', 'fertilizer', 'fertilizer_name', 'bags'] + fields = [ + 'id', + 'field', + 'field_name', + 'fertilizer', + 'fertilizer_name', + 'bags', + 'spread_bags', + 'remaining_bags', + ] + + def get_spread_bags(self, obj): + total = ( + SpreadingSessionItem.objects.filter( + session__year=obj.trip.delivery_plan.year, + field_id=obj.field_id, + fertilizer_id=obj.fertilizer_id, + ).aggregate(total=Sum('actual_bags'))['total'] + ) + return str(total or Decimal('0')) + + def get_remaining_bags(self, obj): + total = ( + SpreadingSessionItem.objects.filter( + session__year=obj.trip.delivery_plan.year, + field_id=obj.field_id, + fertilizer_id=obj.fertilizer_id, + ).aggregate(total=Sum('actual_bags'))['total'] + ) + spread_total = total or Decimal('0') + return str(obj.bags - spread_total) class DeliveryTripReadSerializer(serializers.ModelSerializer): items = DeliveryTripItemSerializer(many=True, read_only=True) + work_record_id = serializers.IntegerField(source='work_record.id', read_only=True) class Meta: model = DeliveryTrip - fields = ['id', 'order', 'name', 'date', 'items'] + fields = ['id', 'order', 'name', 'date', 'work_record_id', 'items'] class DeliveryPlanListSerializer(serializers.ModelSerializer): @@ -149,8 +250,13 @@ class DeliveryPlanListSerializer(serializers.ModelSerializer): class Meta: model = DeliveryPlan fields = [ - 'id', 'year', 'name', 'group_count', 'trip_count', - 'created_at', 'updated_at', + 'id', + 'year', + 'name', + 'group_count', + 'trip_count', + 'created_at', + 'updated_at', ] def get_group_count(self, obj): @@ -170,20 +276,27 @@ class DeliveryPlanReadSerializer(serializers.ModelSerializer): class Meta: model = DeliveryPlan fields = [ - 'id', 'year', 'name', 'groups', 'trips', - 'unassigned_fields', 'available_fertilizers', 'all_entries', - 'created_at', 'updated_at', + 'id', + 'year', + 'name', + 'groups', + 'trips', + 'unassigned_fields', + 'available_fertilizers', + 'all_entries', + 'created_at', + 'updated_at', ] def get_unassigned_fields(self, obj): assigned_ids = DeliveryGroupField.objects.filter( delivery_plan=obj ).values_list('field_id', flat=True) - # 年度の施肥計画に含まれる全圃場 plan_field_ids = FertilizationEntry.objects.filter( plan__year=obj.year ).values_list('field_id', flat=True).distinct() from apps.fields.models import Field + unassigned = Field.objects.filter( id__in=plan_field_ids ).exclude(id__in=assigned_ids).order_by('display_order', 'id') @@ -197,20 +310,20 @@ class DeliveryPlanReadSerializer(serializers.ModelSerializer): return [{'id': f.id, 'name': f.name} for f in fertilizers] def get_all_entries(self, obj): - """年度の全施肥計画のエントリ(フロントで袋数計算に使用)""" entries = FertilizationEntry.objects.filter( plan__year=obj.year ).select_related('field', 'fertilizer') return [ { - 'field': e.field_id, - 'field_name': e.field.name, - 'field_area_tan': str(e.field.area_tan), - 'fertilizer': e.fertilizer_id, - 'fertilizer_name': e.fertilizer.name, - 'bags': str(e.bags), + 'field': entry.field_id, + 'field_name': entry.field.name, + 'field_area_tan': str(entry.field.area_tan), + 'fertilizer': entry.fertilizer_id, + 'fertilizer_name': entry.fertilizer.name, + 'bags': str(entry.bags), + 'actual_bags': str(entry.actual_bags) if entry.actual_bags is not None else None, } - for e in entries + for entry in entries ] @@ -245,13 +358,13 @@ class DeliveryPlanWriteSerializer(serializers.ModelSerializer): return instance def _save_groups(self, plan, groups_data): - for g_data in groups_data: + for group_data in groups_data: group = DeliveryGroup.objects.create( delivery_plan=plan, - name=g_data['name'], - order=g_data.get('order', 0), + name=group_data['name'], + order=group_data.get('order', 0), ) - for field_id in g_data.get('field_ids', []): + for field_id in group_data.get('field_ids', []): DeliveryGroupField.objects.create( delivery_plan=plan, group=group, @@ -259,17 +372,116 @@ class DeliveryPlanWriteSerializer(serializers.ModelSerializer): ) def _save_trips(self, plan, trips_data): - for t_data in trips_data: + for trip_data in trips_data: trip = DeliveryTrip.objects.create( delivery_plan=plan, - order=t_data.get('order', 0), - name=t_data.get('name', ''), - date=t_data.get('date'), + order=trip_data.get('order', 0), + name=trip_data.get('name', ''), + date=trip_data.get('date'), ) - for item in t_data.get('items', []): + for item in trip_data.get('items', []): DeliveryTripItem.objects.create( trip=trip, field_id=item['field_id'], fertilizer_id=item['fertilizer_id'], bags=item['bags'], ) + sync_delivery_work_record(trip) + + +class SpreadingSessionItemReadSerializer(serializers.ModelSerializer): + field_name = serializers.CharField(source='field.name', read_only=True) + fertilizer_name = serializers.CharField(source='fertilizer.name', read_only=True) + + class Meta: + model = SpreadingSessionItem + fields = [ + 'id', + 'field', + 'field_name', + 'fertilizer', + 'fertilizer_name', + 'actual_bags', + 'planned_bags_snapshot', + 'delivered_bags_snapshot', + ] + + +class SpreadingSessionSerializer(serializers.ModelSerializer): + items = SpreadingSessionItemReadSerializer(many=True, read_only=True) + work_record_id = serializers.IntegerField(source='work_record.id', read_only=True) + + class Meta: + model = SpreadingSession + fields = [ + 'id', + 'year', + 'date', + 'name', + 'notes', + 'work_record_id', + 'items', + 'created_at', + 'updated_at', + ] + + +class SpreadingSessionItemWriteInputSerializer(serializers.Serializer): + field_id = serializers.IntegerField() + fertilizer_id = serializers.IntegerField() + actual_bags = serializers.DecimalField(max_digits=10, decimal_places=4) + planned_bags_snapshot = serializers.DecimalField(max_digits=10, decimal_places=4) + delivered_bags_snapshot = serializers.DecimalField(max_digits=10, decimal_places=4) + + +class SpreadingSessionWriteSerializer(serializers.ModelSerializer): + items = SpreadingSessionItemWriteInputSerializer(many=True, write_only=True) + + class Meta: + model = SpreadingSession + fields = ['id', 'year', 'date', 'name', 'notes', 'items'] + + def validate_items(self, value): + if not value: + raise serializers.ValidationError('items を1件以上指定してください。') + seen = set() + for item in value: + if item['actual_bags'] <= 0: + raise serializers.ValidationError('actual_bags は 0 より大きい値を指定してください。') + key = (item['field_id'], item['fertilizer_id']) + if key in seen: + raise serializers.ValidationError('同一 session 内で field + fertilizer を重複登録できません。') + seen.add(key) + return value + + def create(self, validated_data): + items_data = validated_data.pop('items', []) + session = SpreadingSession.objects.create(**validated_data) + new_pairs = self._replace_items(session, items_data) + sync_spreading_session_side_effects(session, new_pairs) + return session + + def update(self, instance, validated_data): + items_data = validated_data.pop('items', []) + old_pairs = {(item.field_id, item.fertilizer_id) for item in instance.items.all()} + for attr, value in validated_data.items(): + setattr(instance, attr, value) + instance.save() + new_pairs = self._replace_items(instance, items_data) + sync_spreading_session_side_effects(instance, old_pairs | new_pairs) + return instance + + def _replace_items(self, session, items_data): + session.items.all().delete() + new_pairs = set() + for item in items_data: + new_pairs.add((item['field_id'], item['fertilizer_id'])) + SpreadingSessionItem.objects.create( + session=session, + field_id=item['field_id'], + fertilizer_id=item['fertilizer_id'], + actual_bags=item['actual_bags'], + planned_bags_snapshot=item['planned_bags_snapshot'], + delivered_bags_snapshot=item['delivered_bags_snapshot'], + ) + return new_pairs diff --git a/backend/apps/fertilizer/services.py b/backend/apps/fertilizer/services.py new file mode 100644 index 0000000..7c0a3da --- /dev/null +++ b/backend/apps/fertilizer/services.py @@ -0,0 +1,65 @@ +from decimal import Decimal + +from django.db import transaction +from django.db.models import Sum + +from apps.materials.models import StockTransaction +from apps.workrecords.services import sync_spreading_work_record +from .models import FertilizationEntry, SpreadingSessionItem + + +def sync_actual_bags_for_pairs(year, field_fertilizer_pairs): + pairs = { + (int(field_id), int(fertilizer_id)) + for field_id, fertilizer_id in field_fertilizer_pairs + } + if not pairs: + return + + for field_id, fertilizer_id in pairs: + total = ( + SpreadingSessionItem.objects.filter( + session__year=year, + field_id=field_id, + fertilizer_id=fertilizer_id, + ).aggregate(total=Sum('actual_bags'))['total'] + ) + FertilizationEntry.objects.filter( + plan__year=year, + field_id=field_id, + fertilizer_id=fertilizer_id, + ).update(actual_bags=total) + + +@transaction.atomic +def sync_spreading_session_side_effects(session, field_fertilizer_pairs): + sync_actual_bags_for_pairs(session.year, field_fertilizer_pairs) + sync_stock_uses_for_spreading_session(session) + sync_spreading_work_record(session) + + +@transaction.atomic +def sync_stock_uses_for_spreading_session(session): + StockTransaction.objects.filter(spreading_item__session=session).delete() + + session_items = session.items.select_related('fertilizer__material') + for item in session_items: + material = getattr(item.fertilizer, 'material', None) + if material is None: + continue + StockTransaction.objects.create( + material=material, + transaction_type=StockTransaction.TransactionType.USE, + quantity=item.actual_bags, + occurred_on=session.date, + note=f'散布実績「{session.name.strip() or session.date}」', + fertilization_plan=None, + spreading_item=item, + ) + + +def to_decimal_or_zero(value): + try: + return Decimal(str(value)) + except Exception: + return Decimal('0') diff --git a/backend/apps/fertilizer/urls.py b/backend/apps/fertilizer/urls.py index 3ad7fea..980f71e 100644 --- a/backend/apps/fertilizer/urls.py +++ b/backend/apps/fertilizer/urls.py @@ -6,9 +6,11 @@ router = DefaultRouter() router.register(r'fertilizers', views.FertilizerViewSet, basename='fertilizer') router.register(r'plans', views.FertilizationPlanViewSet, basename='fertilization-plan') router.register(r'delivery', views.DeliveryPlanViewSet, basename='delivery-plan') +router.register(r'spreading', views.SpreadingSessionViewSet, basename='spreading-session') urlpatterns = [ - path('', include(router.urls)), path('candidate_fields/', views.CandidateFieldsView.as_view(), name='candidate-fields'), path('calculate/', views.CalculateView.as_view(), name='fertilizer-calculate'), + path('spreading/candidates/', views.SpreadingCandidatesView.as_view(), name='spreading-candidates'), + path('', include(router.urls)), ] diff --git a/backend/apps/fertilizer/views.py b/backend/apps/fertilizer/views.py index 51506aa..761166f 100644 --- a/backend/apps/fertilizer/views.py +++ b/backend/apps/fertilizer/views.py @@ -1,10 +1,10 @@ from decimal import Decimal, InvalidOperation +from django.db.models import Sum from django.http import HttpResponse from django.template.loader import render_to_string from rest_framework import viewsets, status from rest_framework.decorators import action -from rest_framework.exceptions import ValidationError from rest_framework.permissions import IsAuthenticated from rest_framework.response import Response from rest_framework.views import APIView @@ -12,15 +12,14 @@ from weasyprint import HTML from apps.fields.models import Field from apps.materials.stock_service import ( - confirm_spreading as confirm_spreading_service, create_reserves_for_plan, delete_reserves_for_plan, - unconfirm_spreading, ) -from apps.plans.models import Plan, Variety +from apps.plans.models import Plan from .models import ( Fertilizer, FertilizationPlan, FertilizationEntry, DeliveryPlan, DeliveryGroup, DeliveryGroupField, DeliveryTrip, DeliveryTripItem, + SpreadingSession, SpreadingSessionItem, ) from .serializers import ( FertilizerSerializer, @@ -29,7 +28,10 @@ from .serializers import ( DeliveryPlanListSerializer, DeliveryPlanReadSerializer, DeliveryPlanWriteSerializer, + SpreadingSessionSerializer, + SpreadingSessionWriteSerializer, ) +from .services import sync_actual_bags_for_pairs class FertilizerViewSet(viewsets.ModelViewSet): @@ -60,8 +62,6 @@ class FertilizationPlanViewSet(viewsets.ModelViewSet): create_reserves_for_plan(instance) def perform_update(self, serializer): - if serializer.instance.is_confirmed: - raise ValidationError({'detail': '確定済みの施肥計画は編集できません。'}) instance = serializer.save() create_reserves_for_plan(instance) @@ -123,68 +123,6 @@ class FertilizationPlanViewSet(viewsets.ModelViewSet): response['Content-Disposition'] = f'attachment; filename="fertilization_{plan.year}_{plan.id}.pdf"' return response - @action(detail=True, methods=['post'], url_path='confirm_spreading') - def confirm_spreading(self, request, pk=None): - plan = self.get_object() - - if plan.is_confirmed: - return Response( - {'detail': 'この計画は既に散布確定済みです。'}, - status=status.HTTP_400_BAD_REQUEST, - ) - - entries_data = request.data.get('entries', []) - if not entries_data: - return Response( - {'detail': '実績データが空です。'}, - status=status.HTTP_400_BAD_REQUEST, - ) - - actual_entries = [] - for entry in entries_data: - field_id = entry.get('field_id') - fertilizer_id = entry.get('fertilizer_id') - if not field_id or not fertilizer_id: - return Response( - {'detail': 'field_id と fertilizer_id が必要です。'}, - status=status.HTTP_400_BAD_REQUEST, - ) - try: - actual_bags = Decimal(str(entry.get('actual_bags', 0))) - except InvalidOperation: - return Response( - {'detail': 'actual_bags は数値で指定してください。'}, - status=status.HTTP_400_BAD_REQUEST, - ) - actual_entries.append( - { - 'field_id': field_id, - 'fertilizer_id': fertilizer_id, - 'actual_bags': actual_bags, - } - ) - - confirm_spreading_service(plan, actual_entries) - plan.refresh_from_db() - serializer = self.get_serializer(plan) - return Response(serializer.data) - - @action(detail=True, methods=['post'], url_path='unconfirm') - def unconfirm(self, request, pk=None): - plan = self.get_object() - - if not plan.is_confirmed: - return Response( - {'detail': 'この計画はまだ確定されていません。'}, - status=status.HTTP_400_BAD_REQUEST, - ) - - unconfirm_spreading(plan) - plan.refresh_from_db() - serializer = self.get_serializer(plan) - return Response(serializer.data) - - class CandidateFieldsView(APIView): """作付け計画から圃場候補を返す""" permission_classes = [IsAuthenticated] @@ -421,3 +359,232 @@ class DeliveryPlanViewSet(viewsets.ModelViewSet): f'attachment; filename="delivery_{plan.year}_{plan.id}.pdf"' ) return response + + +class SpreadingSessionViewSet(viewsets.ModelViewSet): + permission_classes = [IsAuthenticated] + + def get_queryset(self): + queryset = SpreadingSession.objects.prefetch_related( + 'items', + 'items__field', + 'items__fertilizer', + ).select_related('work_record') + year = self.request.query_params.get('year') + if year: + queryset = queryset.filter(year=year) + return queryset + + def get_serializer_class(self): + if self.action in ['create', 'update', 'partial_update']: + return SpreadingSessionWriteSerializer + return SpreadingSessionSerializer + + def perform_destroy(self, instance): + year = instance.year + affected_pairs = {(item.field_id, item.fertilizer_id) for item in instance.items.all()} + instance.delete() + sync_actual_bags_for_pairs(year, affected_pairs) + + +class SpreadingCandidatesView(APIView): + permission_classes = [IsAuthenticated] + + def get(self, request): + year = request.query_params.get('year') + session_id = request.query_params.get('session_id') + delivery_plan_id = request.query_params.get('delivery_plan_id') + plan_id = request.query_params.get('plan_id') + if not year: + return Response( + {'detail': 'year が必要です。'}, + status=status.HTTP_400_BAD_REQUEST, + ) + + try: + year = int(year) + except (TypeError, ValueError): + return Response( + {'detail': 'year は数値で指定してください。'}, + status=status.HTTP_400_BAD_REQUEST, + ) + + if delivery_plan_id: + try: + delivery_plan_id = int(delivery_plan_id) + except (TypeError, ValueError): + return Response( + {'detail': 'delivery_plan_id は数値で指定してください。'}, + status=status.HTTP_400_BAD_REQUEST, + ) + if plan_id: + try: + plan_id = int(plan_id) + except (TypeError, ValueError): + return Response( + {'detail': 'plan_id は数値で指定してください。'}, + status=status.HTTP_400_BAD_REQUEST, + ) + + current_session = None + current_map = {} + if session_id: + try: + current_session = SpreadingSession.objects.prefetch_related('items').get( + pk=session_id, + year=year, + ) + except SpreadingSession.DoesNotExist: + return Response( + {'detail': '散布実績が見つかりません。'}, + status=status.HTTP_404_NOT_FOUND, + ) + current_map = { + (item.field_id, item.fertilizer_id): { + 'actual_bags': item.actual_bags, + 'field_name': item.field.name, + 'field_area_tan': str(item.field.area_tan), + 'fertilizer_name': item.fertilizer.name, + } + for item in current_session.items.all() + } + + candidates = {} + + plan_queryset = FertilizationEntry.objects.filter(plan__year=year) + if plan_id: + plan_queryset = plan_queryset.filter(plan_id=plan_id) + plan_rows = ( + plan_queryset + .values( + 'field_id', + 'field__name', + 'field__area_tan', + 'fertilizer_id', + 'fertilizer__name', + ) + .annotate(planned_bags=Sum('bags')) + ) + for row in plan_rows: + key = (row['field_id'], row['fertilizer_id']) + candidates.setdefault( + key, + { + 'field': row['field_id'], + 'field_name': row['field__name'], + 'field_area_tan': str(row['field__area_tan']), + 'fertilizer': row['fertilizer_id'], + 'fertilizer_name': row['fertilizer__name'], + 'planned_bags': Decimal('0'), + 'delivered_bags': Decimal('0'), + 'spread_bags': Decimal('0'), + 'current_session_bags': Decimal('0'), + }, + )['planned_bags'] = row['planned_bags'] or Decimal('0') + + delivery_queryset = DeliveryTripItem.objects.filter(trip__delivery_plan__year=year) + if delivery_plan_id: + delivery_queryset = delivery_queryset.filter(trip__delivery_plan_id=delivery_plan_id) + delivery_rows = delivery_queryset.values( + 'field_id', + 'field__name', + 'field__area_tan', + 'fertilizer_id', + 'fertilizer__name', + ).annotate(delivered_bags=Sum('bags')) + for row in delivery_rows: + key = (row['field_id'], row['fertilizer_id']) + candidates.setdefault( + key, + { + 'field': row['field_id'], + 'field_name': row['field__name'], + 'field_area_tan': str(row['field__area_tan']), + 'fertilizer': row['fertilizer_id'], + 'fertilizer_name': row['fertilizer__name'], + 'planned_bags': Decimal('0'), + 'delivered_bags': Decimal('0'), + 'spread_bags': Decimal('0'), + 'current_session_bags': Decimal('0'), + }, + )['delivered_bags'] = row['delivered_bags'] or Decimal('0') + + spread_queryset = SpreadingSessionItem.objects.filter(session__year=year) + if current_session is not None: + spread_queryset = spread_queryset.exclude(session=current_session) + spread_rows = ( + spread_queryset + .values( + 'field_id', + 'field__name', + 'field__area_tan', + 'fertilizer_id', + 'fertilizer__name', + ) + .annotate(spread_bags=Sum('actual_bags')) + ) + for row in spread_rows: + key = (row['field_id'], row['fertilizer_id']) + candidates.setdefault( + key, + { + 'field': row['field_id'], + 'field_name': row['field__name'], + 'field_area_tan': str(row['field__area_tan']), + 'fertilizer': row['fertilizer_id'], + 'fertilizer_name': row['fertilizer__name'], + 'planned_bags': Decimal('0'), + 'delivered_bags': Decimal('0'), + 'spread_bags': Decimal('0'), + 'current_session_bags': Decimal('0'), + }, + )['spread_bags'] = row['spread_bags'] or Decimal('0') + + for key, current_data in current_map.items(): + candidates.setdefault( + key, + { + 'field': key[0], + 'field_name': current_data['field_name'], + 'field_area_tan': current_data['field_area_tan'], + 'fertilizer': key[1], + 'fertilizer_name': current_data['fertilizer_name'], + 'planned_bags': Decimal('0'), + 'delivered_bags': Decimal('0'), + 'spread_bags': Decimal('0'), + 'current_session_bags': Decimal('0'), + }, + )['current_session_bags'] = current_data['actual_bags'] or Decimal('0') + + rows = [] + for candidate in candidates.values(): + delivered = candidate['delivered_bags'] + planned = candidate['planned_bags'] + current_bags = candidate['current_session_bags'] + if delivery_plan_id: + include_row = delivered > 0 or current_bags > 0 + elif plan_id: + include_row = planned > 0 or current_bags > 0 + else: + include_row = delivered > 0 or current_bags > 0 + if not include_row: + continue + remaining = delivered - candidate['spread_bags'] + rows.append( + { + 'field': candidate['field'], + 'field_name': candidate['field_name'], + 'field_area_tan': candidate['field_area_tan'], + 'fertilizer': candidate['fertilizer'], + 'fertilizer_name': candidate['fertilizer_name'], + 'planned_bags': str(planned), + 'delivered_bags': str(delivered), + 'spread_bags': str(candidate['spread_bags'] + current_bags), + 'spread_bags_other': str(candidate['spread_bags']), + 'current_session_bags': str(current_bags), + 'remaining_bags': str(remaining), + } + ) + + rows.sort(key=lambda row: (row['field_name'], row['fertilizer_name'])) + return Response(rows) diff --git a/backend/apps/materials/migrations/0003_stocktransaction_spreading_item_and_more.py b/backend/apps/materials/migrations/0003_stocktransaction_spreading_item_and_more.py new file mode 100644 index 0000000..fc25e10 --- /dev/null +++ b/backend/apps/materials/migrations/0003_stocktransaction_spreading_item_and_more.py @@ -0,0 +1,25 @@ +# Generated by Django 5.0 on 2026-03-17 08:49 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('fertilizer', '0008_spreadingsession_fertilizationentry_actual_bags_and_more'), + ('materials', '0002_stocktransaction_fertilization_plan'), + ] + + operations = [ + migrations.AddField( + model_name='stocktransaction', + name='spreading_item', + field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='stock_transactions', to='fertilizer.spreadingsessionitem', verbose_name='散布実績明細'), + ), + migrations.AlterField( + model_name='stocktransaction', + name='transaction_type', + field=models.CharField(choices=[('purchase', '入庫'), ('use', '使用'), ('reserve', '引当'), ('adjustment_plus', '棚卸増'), ('adjustment_minus', '棚卸減'), ('discard', '廃棄')], max_length=30, verbose_name='取引種別'), + ), + ] diff --git a/backend/apps/materials/models.py b/backend/apps/materials/models.py index 104f06b..64ea25c 100644 --- a/backend/apps/materials/models.py +++ b/backend/apps/materials/models.py @@ -205,6 +205,14 @@ class StockTransaction(models.Model): related_name='stock_reservations', verbose_name='施肥計画', ) + spreading_item = models.ForeignKey( + 'fertilizer.SpreadingSessionItem', + on_delete=models.CASCADE, + null=True, + blank=True, + related_name='stock_transactions', + verbose_name='散布実績明細', + ) created_at = models.DateTimeField(auto_now_add=True) class Meta: diff --git a/backend/apps/materials/stock_service.py b/backend/apps/materials/stock_service.py index 2941e7b..71a0366 100644 --- a/backend/apps/materials/stock_service.py +++ b/backend/apps/materials/stock_service.py @@ -14,9 +14,6 @@ def create_reserves_for_plan(plan): transaction_type=StockTransaction.TransactionType.RESERVE, ).delete() - if plan.is_confirmed: - return - occurred_on = ( plan.updated_at.date() if getattr(plan, 'updated_at', None) else timezone.localdate() ) diff --git a/backend/apps/workrecords/__init__.py b/backend/apps/workrecords/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/workrecords/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/workrecords/admin.py b/backend/apps/workrecords/admin.py new file mode 100644 index 0000000..b32c04d --- /dev/null +++ b/backend/apps/workrecords/admin.py @@ -0,0 +1,11 @@ +from django.contrib import admin + +from .models import WorkRecord + + +@admin.register(WorkRecord) +class WorkRecordAdmin(admin.ModelAdmin): + list_display = ['work_date', 'work_type', 'title', 'year', 'auto_created'] + list_filter = ['work_type', 'year', 'auto_created'] + search_fields = ['title'] + diff --git a/backend/apps/workrecords/apps.py b/backend/apps/workrecords/apps.py new file mode 100644 index 0000000..e5760af --- /dev/null +++ b/backend/apps/workrecords/apps.py @@ -0,0 +1,8 @@ +from django.apps import AppConfig + + +class WorkrecordsConfig(AppConfig): + default_auto_field = 'django.db.models.BigAutoField' + name = 'apps.workrecords' + verbose_name = '作業記録' + diff --git a/backend/apps/workrecords/migrations/0001_initial.py b/backend/apps/workrecords/migrations/0001_initial.py new file mode 100644 index 0000000..b138118 --- /dev/null +++ b/backend/apps/workrecords/migrations/0001_initial.py @@ -0,0 +1,36 @@ +# Generated by Django 5.0 on 2026-03-17 08:49 + +import django.db.models.deletion +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ('fertilizer', '0008_spreadingsession_fertilizationentry_actual_bags_and_more'), + ] + + operations = [ + migrations.CreateModel( + name='WorkRecord', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('work_date', models.DateField(verbose_name='作業日')), + ('work_type', models.CharField(choices=[('fertilizer_delivery', '肥料運搬'), ('fertilizer_spreading', '肥料散布')], max_length=40, verbose_name='作業種別')), + ('title', models.CharField(max_length=200, verbose_name='タイトル')), + ('year', models.IntegerField(verbose_name='年度')), + ('auto_created', models.BooleanField(default=True, verbose_name='自動生成')), + ('created_at', models.DateTimeField(auto_now_add=True)), + ('updated_at', models.DateTimeField(auto_now=True)), + ('delivery_trip', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='work_record', to='fertilizer.deliverytrip', verbose_name='運搬回')), + ('spreading_session', models.OneToOneField(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='work_record', to='fertilizer.spreadingsession', verbose_name='散布実績')), + ], + options={ + 'verbose_name': '作業記録', + 'verbose_name_plural': '作業記録', + 'ordering': ['-work_date', '-updated_at', '-id'], + }, + ), + ] diff --git a/backend/apps/workrecords/migrations/__init__.py b/backend/apps/workrecords/migrations/__init__.py new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/backend/apps/workrecords/migrations/__init__.py @@ -0,0 +1 @@ + diff --git a/backend/apps/workrecords/models.py b/backend/apps/workrecords/models.py new file mode 100644 index 0000000..f7948bb --- /dev/null +++ b/backend/apps/workrecords/models.py @@ -0,0 +1,44 @@ +from django.db import models + + +class WorkRecord(models.Model): + class WorkType(models.TextChoices): + FERTILIZER_DELIVERY = 'fertilizer_delivery', '肥料運搬' + FERTILIZER_SPREADING = 'fertilizer_spreading', '肥料散布' + + work_date = models.DateField(verbose_name='作業日') + work_type = models.CharField( + max_length=40, + choices=WorkType.choices, + verbose_name='作業種別', + ) + title = models.CharField(max_length=200, verbose_name='タイトル') + year = models.IntegerField(verbose_name='年度') + auto_created = models.BooleanField(default=True, verbose_name='自動生成') + delivery_trip = models.OneToOneField( + 'fertilizer.DeliveryTrip', + on_delete=models.CASCADE, + null=True, + blank=True, + related_name='work_record', + verbose_name='運搬回', + ) + spreading_session = models.OneToOneField( + 'fertilizer.SpreadingSession', + on_delete=models.CASCADE, + null=True, + blank=True, + related_name='work_record', + verbose_name='散布実績', + ) + created_at = models.DateTimeField(auto_now_add=True) + updated_at = models.DateTimeField(auto_now=True) + + class Meta: + ordering = ['-work_date', '-updated_at', '-id'] + verbose_name = '作業記録' + verbose_name_plural = '作業記録' + + def __str__(self): + return f'{self.work_date} {self.get_work_type_display()}' + diff --git a/backend/apps/workrecords/serializers.py b/backend/apps/workrecords/serializers.py new file mode 100644 index 0000000..e011ffb --- /dev/null +++ b/backend/apps/workrecords/serializers.py @@ -0,0 +1,38 @@ +from rest_framework import serializers + +from .models import WorkRecord + + +class WorkRecordSerializer(serializers.ModelSerializer): + work_type_display = serializers.CharField(source='get_work_type_display', read_only=True) + delivery_plan_id = serializers.SerializerMethodField() + delivery_plan_name = serializers.SerializerMethodField() + + class Meta: + model = WorkRecord + fields = [ + 'id', + 'work_date', + 'work_type', + 'work_type_display', + 'title', + 'year', + 'auto_created', + 'delivery_trip', + 'delivery_plan_id', + 'delivery_plan_name', + 'spreading_session', + 'created_at', + 'updated_at', + ] + + def get_delivery_plan_id(self, obj): + if obj.delivery_trip_id: + return obj.delivery_trip.delivery_plan_id + return None + + def get_delivery_plan_name(self, obj): + if obj.delivery_trip_id: + return obj.delivery_trip.delivery_plan.name + return None + diff --git a/backend/apps/workrecords/services.py b/backend/apps/workrecords/services.py new file mode 100644 index 0000000..534d6b5 --- /dev/null +++ b/backend/apps/workrecords/services.py @@ -0,0 +1,33 @@ +from .models import WorkRecord + + +def sync_delivery_work_record(trip): + if trip.date is None: + WorkRecord.objects.filter(delivery_trip=trip).delete() + return + + WorkRecord.objects.update_or_create( + delivery_trip=trip, + defaults={ + 'work_date': trip.date, + 'work_type': WorkRecord.WorkType.FERTILIZER_DELIVERY, + 'title': f'肥料運搬: {trip.delivery_plan.name} {trip.order + 1}回目', + 'year': trip.delivery_plan.year, + 'auto_created': True, + 'spreading_session': None, + }, + ) + + +def sync_spreading_work_record(session): + WorkRecord.objects.update_or_create( + spreading_session=session, + defaults={ + 'work_date': session.date, + 'work_type': WorkRecord.WorkType.FERTILIZER_SPREADING, + 'title': f'肥料散布: {session.name.strip() or session.date}', + 'year': session.year, + 'auto_created': True, + 'delivery_trip': None, + }, + ) diff --git a/backend/apps/workrecords/urls.py b/backend/apps/workrecords/urls.py new file mode 100644 index 0000000..105b15c --- /dev/null +++ b/backend/apps/workrecords/urls.py @@ -0,0 +1,12 @@ +from django.urls import include, path +from rest_framework.routers import DefaultRouter + +from .views import WorkRecordViewSet + +router = DefaultRouter() +router.register(r'', WorkRecordViewSet, basename='workrecord') + +urlpatterns = [ + path('', include(router.urls)), +] + diff --git a/backend/apps/workrecords/views.py b/backend/apps/workrecords/views.py new file mode 100644 index 0000000..547a4cb --- /dev/null +++ b/backend/apps/workrecords/views.py @@ -0,0 +1,22 @@ +from rest_framework import viewsets +from rest_framework.permissions import IsAuthenticated + +from .models import WorkRecord +from .serializers import WorkRecordSerializer + + +class WorkRecordViewSet(viewsets.ReadOnlyModelViewSet): + serializer_class = WorkRecordSerializer + permission_classes = [IsAuthenticated] + + def get_queryset(self): + queryset = WorkRecord.objects.select_related( + 'delivery_trip', + 'delivery_trip__delivery_plan', + 'spreading_session', + ) + year = self.request.query_params.get('year') + if year: + queryset = queryset.filter(year=year) + return queryset + diff --git a/backend/keinasystem/settings.py b/backend/keinasystem/settings.py index 8a8dec9..63c1573 100644 --- a/backend/keinasystem/settings.py +++ b/backend/keinasystem/settings.py @@ -45,6 +45,7 @@ INSTALLED_APPS = [ 'apps.weather', 'apps.fertilizer', 'apps.materials', + 'apps.workrecords', ] MIDDLEWARE = [ diff --git a/backend/keinasystem/urls.py b/backend/keinasystem/urls.py index 15ec930..c35d8f8 100644 --- a/backend/keinasystem/urls.py +++ b/backend/keinasystem/urls.py @@ -59,4 +59,5 @@ urlpatterns = [ path('api/weather/', include('apps.weather.urls')), path('api/fertilizer/', include('apps.fertilizer.urls')), path('api/materials/', include('apps.materials.urls')), + path('api/workrecords/', include('apps.workrecords.urls')), ] diff --git a/frontend/src/app/distribution/_components/DeliveryEditPage.tsx b/frontend/src/app/distribution/_components/DeliveryEditPage.tsx index 69482bd..e1859f2 100644 --- a/frontend/src/app/distribution/_components/DeliveryEditPage.tsx +++ b/frontend/src/app/distribution/_components/DeliveryEditPage.tsx @@ -2,7 +2,7 @@ import { useEffect, useState, useMemo, useCallback } from 'react'; import { useRouter } from 'next/navigation'; -import { Plus, X, ChevronUp, ChevronDown, Pencil, Check, Truck, ArrowLeft } from 'lucide-react'; +import { Plus, X, ChevronUp, ChevronDown, Pencil, Check, Truck, ArrowLeft, Sprout } from 'lucide-react'; import Navbar from '@/components/Navbar'; import { DeliveryPlan, DeliveryAllEntry } from '@/types'; import { api } from '@/lib/api'; @@ -676,9 +676,20 @@ export default function DeliveryEditPage({ planId }: Props) { 運搬計画一覧 -

- {isEdit ? '運搬計画を編集' : '運搬計画を新規作成'} -

+
+

+ {isEdit ? '運搬計画を編集' : '運搬計画を新規作成'} +

+ {isEdit && planId && ( + + )} +
{saveError && (
diff --git a/frontend/src/app/distribution/page.tsx b/frontend/src/app/distribution/page.tsx index 534c4c6..4df09bb 100644 --- a/frontend/src/app/distribution/page.tsx +++ b/frontend/src/app/distribution/page.tsx @@ -2,7 +2,7 @@ import { useEffect, useState } from 'react'; import { useRouter } from 'next/navigation'; -import { Truck, Plus, FileDown, Pencil, Trash2, X } from 'lucide-react'; +import { Truck, Plus, FileDown, Pencil, Trash2, X, Sprout } from 'lucide-react'; import Navbar from '@/components/Navbar'; import { api } from '@/lib/api'; import { DeliveryPlanListItem } from '@/types'; @@ -75,13 +75,22 @@ export default function DeliveryListPage() {

運搬計画

- +
+ + +
{/* 年度セレクタ */} diff --git a/frontend/src/app/fertilizer/_components/FertilizerEditPage.tsx b/frontend/src/app/fertilizer/_components/FertilizerEditPage.tsx index 3366777..ecfa43f 100644 --- a/frontend/src/app/fertilizer/_components/FertilizerEditPage.tsx +++ b/frontend/src/app/fertilizer/_components/FertilizerEditPage.tsx @@ -2,7 +2,7 @@ import { useState, useEffect, useCallback } from 'react'; import { useRouter } from 'next/navigation'; -import { ChevronLeft, Plus, X, Calculator, Save, FileDown, Undo2 } from 'lucide-react'; +import { ChevronLeft, Plus, X, Calculator, Save, FileDown, Undo2, Sprout } from 'lucide-react'; import Navbar from '@/components/Navbar'; import { api } from '@/lib/api'; import { Crop, FertilizationPlan, Fertilizer, Field, StockSummary } from '@/types'; @@ -62,6 +62,7 @@ export default function FertilizerEditPage({ planId }: { planId?: number }) { // roundedColumns: 四捨五入済みの肥料列ID(↩ トグル用) const [calcMatrix, setCalcMatrix] = useState({}); const [adjusted, setAdjusted] = useState({}); + const [actualMatrix, setActualMatrix] = useState({}); const [roundedColumns, setRoundedColumns] = useState>(new Set()); const [stockByMaterialId, setStockByMaterialId] = useState>({}); const [initialPlanTotals, setInitialPlanTotals] = useState>({}); @@ -102,8 +103,8 @@ export default function FertilizerEditPage({ planId }: { planId?: number }) { setName(plan.name); setYear(plan.year); setVarietyId(plan.variety); - setIsConfirmed(plan.is_confirmed); - setConfirmedAt(plan.confirmed_at); + setIsConfirmed(false); + setConfirmedAt(null); const fertIds = Array.from(new Set(plan.entries.map((e) => e.fertilizer))); const ferts = fertsRes.data.filter((f: Fertilizer) => fertIds.includes(f.id)); @@ -122,11 +123,17 @@ export default function FertilizerEditPage({ planId }: { planId?: number }) { // 保存済みの値は adjusted に復元 const newAdjusted: Matrix = {}; + const newActualMatrix: Matrix = {}; plan.entries.forEach((e) => { if (!newAdjusted[e.field]) newAdjusted[e.field] = {}; newAdjusted[e.field][e.fertilizer] = String(e.bags); + if (e.actual_bags !== null && e.actual_bags !== undefined) { + if (!newActualMatrix[e.field]) newActualMatrix[e.field] = {}; + newActualMatrix[e.field][e.fertilizer] = String(e.actual_bags); + } }); setAdjusted(newAdjusted); + setActualMatrix(newActualMatrix); setInitialPlanTotals( plan.entries.reduce((acc: Record, entry) => { acc[entry.fertilizer] = (acc[entry.fertilizer] ?? 0) + Number(entry.bags); @@ -498,6 +505,15 @@ export default function FertilizerEditPage({ planId }: { planId?: number }) {
+ {!isNew && planId && ( + + )} {!isNew && isConfirmed && ( +
- {/* 年度セレクタ */} -
+
- {deleteError && ( -
- - {deleteError} - -
- )} - - {actionError && ( -
- - {actionError} - + {error && ( +
+ {error}
)} {loading ? (

読み込み中...

) : plans.length === 0 ? ( -
- +
+

{year}年度の施肥計画はありません

) : ( -
+
- + - - - - - - + + + + + + + + {plans.map((plan) => ( - - + + - - - + + + + +
計画名作物 / 品種状態圃場数肥料種数計画名作物 / 品種散布状況計画実績圃場
-
- {plan.name} - {plan.is_confirmed && ( - - - 確定済み - - )} -
-
{plan.name} {plan.crop_name} / {plan.variety_name} - {plan.is_confirmed - ? `散布確定 ${plan.confirmed_at ? new Date(plan.confirmed_at).toLocaleString('ja-JP') : ''}` - : '未確定'} - {plan.field_count}筆{plan.fertilizer_count}種 -
- {!plan.is_confirmed ? ( - - ) : ( - - )} + + {STATUS_LABELS[plan.spread_status]} + +
{plan.planned_total_bags}{plan.spread_total_bags}{plan.remaining_total_bags}{plan.field_count}筆 +
)} - - setConfirmTarget(null)} - onConfirmed={fetchPlans} - /> ); } diff --git a/frontend/src/app/fertilizer/spreading/page.tsx b/frontend/src/app/fertilizer/spreading/page.tsx new file mode 100644 index 0000000..4be06d6 --- /dev/null +++ b/frontend/src/app/fertilizer/spreading/page.tsx @@ -0,0 +1,747 @@ +'use client'; + +import { useEffect, useMemo, useState } from 'react'; +import { useRouter, useSearchParams } from 'next/navigation'; +import { ChevronLeft, Pencil, Plus, Save, Sprout, Trash2, X } from 'lucide-react'; + +import Navbar from '@/components/Navbar'; +import { api } from '@/lib/api'; +import { + DeliveryPlan, + FertilizationPlan, + SpreadingCandidate, + SpreadingSession, +} from '@/types'; + +const CURRENT_YEAR = new Date().getFullYear(); +const YEAR_KEY = 'spreadingYear'; + +type SourceType = 'delivery' | 'plan' | 'year'; + +type FormState = { + date: string; + name: string; + notes: string; + itemValues: Record; +}; + +type MatrixField = { + id: number; + name: string; + area_tan: string; +}; + +type MatrixFertilizer = { + id: number; + name: string; +}; + +const candidateKey = (fieldId: number, fertilizerId: number) => `${fieldId}:${fertilizerId}`; + +const toNumber = (value: string | number | null | undefined) => { + const parsed = Number(value ?? 0); + return Number.isFinite(parsed) ? parsed : 0; +}; + +const formatDisplay = (value: string | number | null | undefined) => { + const num = toNumber(value); + if (Number.isInteger(num)) { + return String(num); + } + return num.toFixed(4).replace(/\.?0+$/, ''); +}; + +const formatInputValue = (value: number) => { + if (value <= 0) return '0'; + return value.toFixed(2).replace(/\.?0+$/, ''); +}; + +const getDefaultDate = (year: number) => { + const today = new Date(); + if (today.getFullYear() !== year) { + return `${year}-01-01`; + } + const month = String(today.getMonth() + 1).padStart(2, '0'); + const day = String(today.getDate()).padStart(2, '0'); + return `${year}-${month}-${day}`; +}; + +const getSourceType = (deliveryPlanId: number | null, fertilizationPlanId: number | null): SourceType => { + if (deliveryPlanId) return 'delivery'; + if (fertilizationPlanId) return 'plan'; + return 'year'; +}; + +const buildCreateInitialValues = (rows: SpreadingCandidate[], sourceType: SourceType) => { + const values: Record = {}; + rows.forEach((candidate) => { + let base = 0; + if (sourceType === 'delivery') { + base = toNumber(candidate.delivered_bags) - toNumber(candidate.spread_bags_other); + } else if (sourceType === 'plan') { + base = toNumber(candidate.planned_bags) - toNumber(candidate.spread_bags_other); + } else { + base = toNumber(candidate.delivered_bags) - toNumber(candidate.spread_bags_other); + } + values[candidateKey(candidate.field, candidate.fertilizer)] = formatInputValue(Math.max(base, 0)); + }); + return values; +}; + +export default function SpreadingPage() { + const router = useRouter(); + const searchParams = useSearchParams(); + const queryYear = Number(searchParams.get('year') || '0') || null; + const deliveryPlanId = Number(searchParams.get('delivery_plan') || '0') || null; + const fertilizationPlanId = Number(searchParams.get('plan') || '0') || null; + const sourceType = getSourceType(deliveryPlanId, fertilizationPlanId); + + const [year, setYear] = useState(() => { + if (typeof window !== 'undefined') { + return parseInt(localStorage.getItem(YEAR_KEY) || String(CURRENT_YEAR), 10); + } + return CURRENT_YEAR; + }); + const [sessions, setSessions] = useState([]); + const [candidates, setCandidates] = useState([]); + const [loading, setLoading] = useState(true); + const [formLoading, setFormLoading] = useState(false); + const [saving, setSaving] = useState(false); + const [error, setError] = useState(null); + const [editingSessionId, setEditingSessionId] = useState(null); + const [form, setForm] = useState(null); + const [openedFromQuery, setOpenedFromQuery] = useState(false); + const [openedFromSource, setOpenedFromSource] = useState(false); + const [sourceName, setSourceName] = useState(null); + + useEffect(() => { + if (queryYear && queryYear !== year) { + setYear(queryYear); + } + }, [queryYear, year]); + + useEffect(() => { + localStorage.setItem(YEAR_KEY, String(year)); + void fetchSessions(); + setForm(null); + setEditingSessionId(null); + setOpenedFromQuery(false); + setOpenedFromSource(false); + }, [year]); + + useEffect(() => { + const loadSource = async () => { + if (deliveryPlanId) { + try { + const res = await api.get(`/fertilizer/delivery/${deliveryPlanId}/`); + const plan: DeliveryPlan = res.data; + setSourceName(plan.name); + return; + } catch (e) { + console.error(e); + setSourceName(`運搬計画 #${deliveryPlanId}`); + return; + } + } + if (fertilizationPlanId) { + try { + const res = await api.get(`/fertilizer/plans/${fertilizationPlanId}/`); + const plan: FertilizationPlan = res.data; + setSourceName(plan.name); + return; + } catch (e) { + console.error(e); + setSourceName(`施肥計画 #${fertilizationPlanId}`); + return; + } + } + setSourceName(null); + }; + void loadSource(); + }, [deliveryPlanId, fertilizationPlanId]); + + useEffect(() => { + const sessionParam = searchParams.get('session'); + if (!sessionParam || openedFromQuery || sessions.length === 0) { + return; + } + const targetId = Number(sessionParam); + if (!targetId) { + return; + } + const target = sessions.find((session) => session.id === targetId); + if (target) { + void openEditor(target); + setOpenedFromQuery(true); + } + }, [openedFromQuery, searchParams, sessions]); + + useEffect(() => { + const sessionParam = searchParams.get('session'); + if (sessionParam || sourceType === 'year' || openedFromSource || form || formLoading) { + return; + } + void startCreate(); + setOpenedFromSource(true); + }, [form, formLoading, openedFromSource, searchParams, sourceType]); + + const fetchSessions = async () => { + setLoading(true); + setError(null); + try { + const res = await api.get(`/fertilizer/spreading/?year=${year}`); + setSessions(res.data); + } catch (e) { + console.error(e); + setError('散布実績の読み込みに失敗しました。'); + } finally { + setLoading(false); + } + }; + + const loadCandidates = async (sessionId?: number) => { + const params = new URLSearchParams({ year: String(year) }); + if (sessionId) { + params.set('session_id', String(sessionId)); + } + if (deliveryPlanId) { + params.set('delivery_plan_id', String(deliveryPlanId)); + } + if (fertilizationPlanId) { + params.set('plan_id', String(fertilizationPlanId)); + } + const res = await api.get(`/fertilizer/spreading/candidates/?${params.toString()}`); + setCandidates(res.data); + return res.data as SpreadingCandidate[]; + }; + + const startCreate = async () => { + setFormLoading(true); + setError(null); + try { + const loaded = await loadCandidates(); + setEditingSessionId(null); + setForm({ + date: getDefaultDate(year), + name: '', + notes: '', + itemValues: buildCreateInitialValues(loaded, sourceType), + }); + } catch (e) { + console.error(e); + setError('散布候補の読み込みに失敗しました。'); + } finally { + setFormLoading(false); + } + }; + + const openEditor = async (session: SpreadingSession) => { + setFormLoading(true); + setError(null); + try { + await loadCandidates(session.id); + const itemValues = session.items.reduce>((acc, item) => { + acc[candidateKey(item.field, item.fertilizer)] = String(item.actual_bags); + return acc; + }, {}); + setEditingSessionId(session.id); + setForm({ + date: session.date, + name: session.name, + notes: session.notes, + itemValues, + }); + } catch (e) { + console.error(e); + setError('散布候補の読み込みに失敗しました。'); + } finally { + setFormLoading(false); + } + }; + + const closeEditor = () => { + setEditingSessionId(null); + setForm(null); + setCandidates([]); + }; + + const candidateMap = useMemo(() => { + const map = new Map(); + candidates.forEach((candidate) => { + map.set(candidateKey(candidate.field, candidate.fertilizer), candidate); + }); + return map; + }, [candidates]); + + const matrixFields = useMemo(() => { + const map = new Map(); + candidates.forEach((candidate) => { + if (!map.has(candidate.field)) { + map.set(candidate.field, { + id: candidate.field, + name: candidate.field_name, + area_tan: candidate.field_area_tan, + }); + } + }); + return Array.from(map.values()).sort((a, b) => a.name.localeCompare(b.name, 'ja')); + }, [candidates]); + + const matrixFertilizers = useMemo(() => { + const map = new Map(); + candidates.forEach((candidate) => { + if (!map.has(candidate.fertilizer)) { + map.set(candidate.fertilizer, { + id: candidate.fertilizer, + name: candidate.fertilizer_name, + }); + } + }); + return Array.from(map.values()).sort((a, b) => a.name.localeCompare(b.name, 'ja')); + }, [candidates]); + + const handleItemChange = (fieldId: number, fertilizerId: number, value: string) => { + if (!form) return; + const key = candidateKey(fieldId, fertilizerId); + setForm({ + ...form, + itemValues: { + ...form.itemValues, + [key]: value, + }, + }); + }; + + const getCellValue = (fieldId: number, fertilizerId: number) => { + if (!form) return ''; + return form.itemValues[candidateKey(fieldId, fertilizerId)] ?? '0'; + }; + + const selectedRows = useMemo(() => { + if (!form) return []; + return candidates.filter((candidate) => { + const value = toNumber(form.itemValues[candidateKey(candidate.field, candidate.fertilizer)] || '0'); + return value > 0; + }); + }, [candidates, form]); + + const getRowTotal = (fieldId: number) => { + if (!form) return 0; + return matrixFertilizers.reduce((sum, fertilizer) => { + const candidate = candidateMap.get(candidateKey(fieldId, fertilizer.id)); + if (!candidate) return sum; + return sum + toNumber(getCellValue(fieldId, fertilizer.id)); + }, 0); + }; + + const getColumnTotal = (fertilizerId: number) => { + if (!form) return 0; + return matrixFields.reduce((sum, field) => { + const candidate = candidateMap.get(candidateKey(field.id, fertilizerId)); + if (!candidate) return sum; + return sum + toNumber(getCellValue(field.id, fertilizerId)); + }, 0); + }; + + const totalInputBags = selectedRows.reduce((sum, candidate) => { + return sum + toNumber(form?.itemValues[candidateKey(candidate.field, candidate.fertilizer)] || '0'); + }, 0); + + const handleSave = async () => { + if (!form) return; + setError(null); + if (!form.date) { + setError('散布日を入力してください。'); + return; + } + + const items = selectedRows.map((candidate) => ({ + field_id: candidate.field, + fertilizer_id: candidate.fertilizer, + actual_bags: toNumber(form.itemValues[candidateKey(candidate.field, candidate.fertilizer)] || '0'), + planned_bags_snapshot: toNumber(candidate.planned_bags), + delivered_bags_snapshot: toNumber(candidate.delivered_bags), + })); + + if (items.length === 0) { + setError('散布実績を1件以上入力してください。'); + return; + } + + setSaving(true); + try { + const payload = { + year, + date: form.date, + name: form.name, + notes: form.notes, + items, + }; + if (editingSessionId) { + await api.put(`/fertilizer/spreading/${editingSessionId}/`, payload); + } else { + await api.post('/fertilizer/spreading/', payload); + } + await fetchSessions(); + closeEditor(); + } catch (e) { + console.error(e); + setError('散布実績の保存に失敗しました。'); + } finally { + setSaving(false); + } + }; + + const handleDelete = async (sessionId: number) => { + setError(null); + try { + await api.delete(`/fertilizer/spreading/${sessionId}/`); + await fetchSessions(); + if (editingSessionId === sessionId) { + closeEditor(); + } + } catch (e) { + console.error(e); + setError('散布実績の削除に失敗しました。'); + } + }; + + const years = Array.from({ length: 5 }, (_, i) => CURRENT_YEAR + 1 - i); + + const sourceSummary = + sourceType === 'delivery' + ? '初期値は運搬計画値から散布済を引いた値です。' + : sourceType === 'plan' + ? '初期値は施肥計画値から散布済を引いた値です。' + : '初期値は運搬済みから散布済を引いた値です。'; + + const sourceLabel = + sourceType === 'delivery' + ? '運搬計画を選択した状態です' + : sourceType === 'plan' + ? '施肥計画を選択した状態です' + : null; + + const clearFilterHref = `/fertilizer/spreading?year=${year}`; + + return ( +
+ +
+
+
+ + +

散布実績

+
+ +
+ +
+ + +
+ + {sourceLabel && ( +
+
+
{sourceLabel}
+
+ {sourceName ?? (sourceType === 'delivery' ? `運搬計画 #${deliveryPlanId}` : `施肥計画 #${fertilizationPlanId}`)} + {' '}を起点に散布候補を絞り込んでいます。 +
+
{sourceSummary}
+
+ +
+ )} + + {error && ( +
+ {error} +
+ )} + + {(form || formLoading) && ( +
+
+

+ {editingSessionId ? '散布実績を編集' : '散布実績を登録'} +

+

+ 施肥計画と同じ感覚で、圃場 × 肥料のマトリックスで実績を入力します。 +

+

{sourceSummary}

+
+ + {formLoading || !form ? ( +
候補を読み込み中...
+ ) : ( +
+
+
+ + setForm({ ...form, date: e.target.value })} + className="w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-green-500" + /> +
+
+ + setForm({ ...form, name: e.target.value })} + placeholder="例: 3/17 元肥散布" + className="w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-green-500" + /> +
+
+ + setForm({ ...form, notes: e.target.value })} + placeholder="任意" + className="w-full rounded-lg border border-gray-300 px-3 py-2 text-sm focus:outline-none focus:ring-2 focus:ring-green-500" + /> +
+
+ +
+ + + + + {matrixFertilizers.map((fertilizer) => ( + + ))} + + + + + {matrixFields.length === 0 ? ( + + + + ) : ( + matrixFields.map((field) => ( + + + {matrixFertilizers.map((fertilizer) => { + const candidate = candidateMap.get(candidateKey(field.id, fertilizer.id)); + if (!candidate) { + return ( + + ); + } + + return ( + + ); + })} + + + )) + )} + + {matrixFields.length > 0 && ( + + + + {matrixFertilizers.map((fertilizer) => ( + + ))} + + + + )} +
+ 圃場 + +
{fertilizer.name}
+
+ 入力計 {formatDisplay(getColumnTotal(fertilizer.id))}袋 +
+
+ 行合計 +
+ 散布対象の候補がありません。 +
+
{field.name}
+
{field.area_tan}反
+
+ - + +
+
+
+ 計画 + {formatDisplay(candidate.planned_bags)} +
+
+ + {sourceType === 'plan' ? '計画残' : '未散布'} + + + {formatDisplay( + sourceType === 'plan' + ? Math.max(toNumber(candidate.planned_bags) - toNumber(candidate.spread_bags_other), 0) + : Math.max(toNumber(candidate.delivered_bags) - toNumber(candidate.spread_bags_other), 0) + )} + +
+
+ 運搬 + {formatDisplay(candidate.delivered_bags)} +
+
+ 散布済 + {formatDisplay(candidate.spread_bags_other)} +
+
+ handleItemChange(field.id, fertilizer.id, e.target.value)} + className="w-20 shrink-0 rounded border border-gray-300 px-2 py-1.5 text-right text-sm focus:outline-none focus:ring-2 focus:ring-green-500" + /> +
+
+ {formatDisplay(getRowTotal(field.id))} +
合計 + {formatDisplay(getColumnTotal(fertilizer.id))} + + {formatDisplay(totalInputBags)} +
+
+ +
+

+ 入力中 {selectedRows.length}件 / 合計 {formatDisplay(totalInputBags)}袋 +

+
+ + +
+
+
+ )} +
+ )} + +
+
+

登録済み散布実績

+
+ {loading ? ( +
読み込み中...
+ ) : sessions.length === 0 ? ( +
この年度の散布実績はまだありません。
+ ) : ( +
+ + + + + + + + + + + + {sessions.map((session) => { + const totalBags = session.items.reduce((sum, item) => sum + toNumber(item.actual_bags), 0); + return ( + + + + + + + + + ); + })} + +
散布日名称明細数合計袋数作業記録 +
{session.date} +
{session.name || '名称なし'}
+ {session.notes &&
{session.notes}
} +
{session.items.length}{formatDisplay(totalBags)} + {session.work_record_id ? `#${session.work_record_id}` : '-'} + +
+ + +
+
+
+ )} +
+
+
+ ); +} diff --git a/frontend/src/app/workrecords/page.tsx b/frontend/src/app/workrecords/page.tsx new file mode 100644 index 0000000..938ec66 --- /dev/null +++ b/frontend/src/app/workrecords/page.tsx @@ -0,0 +1,138 @@ +'use client'; + +import { useEffect, useState } from 'react'; +import { useRouter } from 'next/navigation'; +import { ChevronLeft, NotebookText } from 'lucide-react'; + +import Navbar from '@/components/Navbar'; +import { api } from '@/lib/api'; +import { WorkRecord } from '@/types'; + +const CURRENT_YEAR = new Date().getFullYear(); +const YEAR_KEY = 'workRecordYear'; + +export default function WorkRecordsPage() { + const router = useRouter(); + const [year, setYear] = useState(() => { + if (typeof window !== 'undefined') { + return parseInt(localStorage.getItem(YEAR_KEY) || String(CURRENT_YEAR), 10); + } + return CURRENT_YEAR; + }); + const [records, setRecords] = useState([]); + const [loading, setLoading] = useState(true); + const [error, setError] = useState(null); + + useEffect(() => { + localStorage.setItem(YEAR_KEY, String(year)); + void fetchRecords(); + }, [year]); + + const fetchRecords = async () => { + setLoading(true); + setError(null); + try { + const res = await api.get(`/workrecords/?year=${year}`); + setRecords(res.data); + } catch (e) { + console.error(e); + setError('作業記録の読み込みに失敗しました。'); + } finally { + setLoading(false); + } + }; + + const moveToSource = (record: WorkRecord) => { + if (record.spreading_session) { + router.push(`/fertilizer/spreading?session=${record.spreading_session}`); + return; + } + if (record.delivery_plan_id) { + router.push(`/distribution/${record.delivery_plan_id}/edit`); + } + }; + + const years = Array.from({ length: 5 }, (_, i) => CURRENT_YEAR + 1 - i); + + return ( +
+ +
+
+ + +

作業記録

+
+ +
+ + +
+ + {error && ( +
+ {error} +
+ )} + +
+ {loading ? ( +
読み込み中...
+ ) : records.length === 0 ? ( +
この年度の作業記録はまだありません。
+ ) : ( + + + + + + + + + + + {records.map((record) => ( + + + + + + + + ))} + +
作業日種別タイトル参照先 +
{record.work_date}{record.work_type_display}{record.title} + {record.spreading_session + ? `散布実績 #${record.spreading_session}` + : record.delivery_plan_name + ? `${record.delivery_plan_name}` + : '-'} + + {(record.spreading_session || record.delivery_plan_id) && ( + + )} +
+ )} +
+
+
+ ); +} diff --git a/frontend/src/components/Navbar.tsx b/frontend/src/components/Navbar.tsx index 713dad1..cb835a6 100644 --- a/frontend/src/components/Navbar.tsx +++ b/frontend/src/components/Navbar.tsx @@ -1,7 +1,7 @@ 'use client'; import { useRouter, usePathname } from 'next/navigation'; -import { LogOut, Wheat, MapPin, FileText, Upload, LayoutDashboard, Mail, History, Shield, KeyRound, Cloud, Sprout, FlaskConical, Package } from 'lucide-react'; +import { LogOut, Wheat, MapPin, FileText, Upload, LayoutDashboard, History, Shield, KeyRound, Cloud, Sprout, FlaskConical, Package, NotebookText, PencilLine } from 'lucide-react'; import { logout } from '@/lib/api'; export default function Navbar() { @@ -114,7 +114,7 @@ export default function Navbar() { + +
diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts index b6a11f1..4a1510b 100644 --- a/frontend/src/types/index.ts +++ b/frontend/src/types/index.ts @@ -140,7 +140,8 @@ export interface FertilizationEntry { field_area_tan?: string; fertilizer: number; fertilizer_name?: string; - bags: number; + bags: number | string; + actual_bags?: string | null; } export interface FertilizationPlan { @@ -154,6 +155,10 @@ export interface FertilizationPlan { entries: FertilizationEntry[]; field_count: number; fertilizer_count: number; + planned_total_bags: string; + spread_total_bags: string; + remaining_total_bags: string; + spread_status: 'unspread' | 'partial' | 'completed' | 'over_applied'; is_confirmed: boolean; confirmed_at: string | null; created_at: string; @@ -180,6 +185,8 @@ export interface DeliveryTripItem { fertilizer: number; fertilizer_name: string; bags: string; + spread_bags: string; + remaining_bags: string; } export interface DeliveryTrip { @@ -187,6 +194,7 @@ export interface DeliveryTrip { order: number; name: string; date: string | null; + work_record_id: number | null; items: DeliveryTripItem[]; } @@ -197,6 +205,7 @@ export interface DeliveryAllEntry { fertilizer: number; fertilizer_name: string; bags: string; + actual_bags?: string | null; } export interface DeliveryPlan { @@ -222,6 +231,59 @@ export interface DeliveryPlanListItem { updated_at: string; } +export interface SpreadingCandidate { + field: number; + field_name: string; + field_area_tan: string; + fertilizer: number; + fertilizer_name: string; + planned_bags: string; + delivered_bags: string; + spread_bags: string; + spread_bags_other: string; + current_session_bags: string; + remaining_bags: string; +} + +export interface SpreadingSessionItem { + id: number; + field: number; + field_name: string; + fertilizer: number; + fertilizer_name: string; + actual_bags: string; + planned_bags_snapshot: string; + delivered_bags_snapshot: string; +} + +export interface SpreadingSession { + id: number; + year: number; + date: string; + name: string; + notes: string; + work_record_id: number | null; + items: SpreadingSessionItem[]; + created_at: string; + updated_at: string; +} + +export interface WorkRecord { + id: number; + work_date: string; + work_type: 'fertilizer_delivery' | 'fertilizer_spreading'; + work_type_display: string; + title: string; + year: number; + auto_created: boolean; + delivery_trip: number | null; + delivery_plan_id: number | null; + delivery_plan_name: string | null; + spreading_session: number | null; + created_at: string; + updated_at: string; +} + export interface MailSender { id: number; type: 'address' | 'domain'; diff --git a/frontend/tsconfig.tsbuildinfo b/frontend/tsconfig.tsbuildinfo index 02cb753..549c46f 100644 --- a/frontend/tsconfig.tsbuildinfo +++ b/frontend/tsconfig.tsbuildinfo @@ -1 +1 @@ -{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/prop-types/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/shared/lib/amp.d.ts","./node_modules/next/amp.d.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/react/canary.d.ts","./node_modules/@types/react/experimental.d.ts","./node_modules/@types/react-dom/index.d.ts","./node_modules/@types/react-dom/canary.d.ts","./node_modules/@types/react-dom/experimental.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/future/route-kind.d.ts","./node_modules/next/dist/server/future/route-definitions/route-definition.d.ts","./node_modules/next/dist/server/future/route-matches/route-match.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/lib/revalidate.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/server/future/helpers/i18n-provider.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/server/font-utils.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/server/future/route-modules/route-module.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/server/future/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/future/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/client/components/static-generation-async-storage.external.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/client/components/request-async-storage.external.d.ts","./node_modules/next/dist/server/app-render/create-error-handler.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.d.ts","./node_modules/@types/react/jsx-runtime.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/router-reducer/create-initial-router-state.d.ts","./node_modules/next/dist/client/components/app-router.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/client/components/action-async-storage.external.d.ts","./node_modules/next/dist/build/webpack/plugins/app-build-manifest-plugin.d.ts","./node_modules/next/dist/build/utils.d.ts","./node_modules/next/dist/client/components/static-generation-bailout.d.ts","./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.d.ts","./node_modules/next/dist/client/components/searchparams-bailout-proxy.d.ts","./node_modules/next/dist/client/components/not-found-boundary.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/future/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/future/route-modules/pages/module.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/server/future/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/future/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/future/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/future/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/future/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/future/normalizers/normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/future/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/future/normalizers/request/prefix.d.ts","./node_modules/next/dist/server/future/normalizers/request/postponed.d.ts","./node_modules/next/dist/server/future/normalizers/request/prefetch-rsc.d.ts","./node_modules/next/dist/server/future/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/build/webpack/plugins/define-env-plugin.d.ts","./node_modules/next/dist/build/swc/index.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/types/index.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate-path.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate-tag.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/shared/lib/runtime-config.external.d.ts","./node_modules/next/config.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/client/components/draft-mode.d.ts","./node_modules/next/dist/client/components/headers.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/index.d.ts","./node_modules/next/image-types/global.d.ts","./next-env.d.ts","./node_modules/source-map-js/source-map.d.ts","./node_modules/postcss/lib/previous-map.d.ts","./node_modules/postcss/lib/input.d.ts","./node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/postcss/lib/declaration.d.ts","./node_modules/postcss/lib/root.d.ts","./node_modules/postcss/lib/warning.d.ts","./node_modules/postcss/lib/lazy-result.d.ts","./node_modules/postcss/lib/no-work-result.d.ts","./node_modules/postcss/lib/processor.d.ts","./node_modules/postcss/lib/result.d.ts","./node_modules/postcss/lib/document.d.ts","./node_modules/postcss/lib/rule.d.ts","./node_modules/postcss/lib/node.d.ts","./node_modules/postcss/lib/comment.d.ts","./node_modules/postcss/lib/container.d.ts","./node_modules/postcss/lib/at-rule.d.ts","./node_modules/postcss/lib/list.d.ts","./node_modules/postcss/lib/postcss.d.ts","./node_modules/postcss/lib/postcss.d.mts","./node_modules/tailwindcss/types/generated/corepluginlist.d.ts","./node_modules/tailwindcss/types/generated/colors.d.ts","./node_modules/tailwindcss/types/config.d.ts","./node_modules/tailwindcss/types/index.d.ts","./tailwind.config.ts","./node_modules/axios/index.d.ts","./src/lib/api.ts","./src/types/index.ts","./node_modules/next/dist/compiled/@next/font/dist/types.d.ts","./node_modules/next/dist/compiled/@next/font/dist/google/index.d.ts","./node_modules/next/font/google/index.d.ts","./src/app/layout.tsx","./src/app/page.tsx","./node_modules/lucide-react/dist/lucide-react.d.ts","./src/components/navbar.tsx","./src/app/allocation/page.tsx","./src/app/dashboard/page.tsx","./src/app/distribution/page.tsx","./src/app/distribution/_components/distributioneditpage.tsx","./src/app/distribution/[id]/edit/page.tsx","./src/app/distribution/new/page.tsx","./src/app/fertilizer/_components/confirmspreadingmodal.tsx","./src/app/fertilizer/page.tsx","./src/app/fertilizer/_components/fertilizereditpage.tsx","./src/app/fertilizer/[id]/edit/page.tsx","./src/app/fertilizer/masters/page.tsx","./src/app/fertilizer/new/page.tsx","./src/components/linkmodal.tsx","./src/app/fields/page.tsx","./src/app/fields/[id]/page.tsx","./src/app/fields/new/page.tsx","./src/app/import/page.tsx","./src/app/login/page.tsx","./src/app/mail/feedback/[token]/page.tsx","./src/app/mail/history/page.tsx","./src/app/mail/rules/page.tsx","./src/app/materials/_components/stockoverview.tsx","./src/app/materials/_components/stocktransactionform.tsx","./src/app/materials/page.tsx","./src/app/materials/_components/materialform.tsx","./src/app/materials/masters/page.tsx","./src/app/reports/page.tsx","./src/app/settings/password/page.tsx","./src/app/weather/page.tsx","./.next/types/app/layout.ts","./.next/types/app/page.ts","./.next/types/app/allocation/page.ts","./.next/types/app/dashboard/page.ts","./.next/types/app/fertilizer/page.ts","./.next/types/app/fertilizer/[id]/edit/page.ts","./.next/types/app/login/page.ts","./.next/types/app/materials/page.ts","./.next/types/app/materials/masters/page.ts","./node_modules/@types/json5/index.d.ts"],"fileIdsList":[[99,145,355,441],[99,145,355,442],[99,145,355,450],[99,145,355,448],[99,145,355,437],[99,145,355,458],[99,145,355,466],[99,145,355,464],[99,145,355,438],[99,145,403,404],[99,145],[99,142,145],[99,144,145],[145],[99,145,150,178],[99,145,146,151,156,164,175,186],[99,145,146,147,156,164],[94,95,96,99,145],[99,145,148,187],[99,145,149,150,157,165],[99,145,150,175,183],[99,145,151,153,156,164],[99,144,145,152],[99,145,153,154],[99,145,155,156],[99,144,145,156],[99,145,156,157,158,175,186],[99,145,156,157,158,171,175,178],[99,145,153,156,159,164,175,186],[99,145,156,157,159,160,164,175,183,186],[99,145,159,161,175,183,186],[97,98,99,100,101,102,103,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192],[99,145,156,162],[99,145,163,186,191],[99,145,153,156,164,175],[99,145,165],[99,145,166],[99,144,145,167],[99,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192],[99,145,169],[99,145,170],[99,145,156,171,172],[99,145,171,173,187,189],[99,145,156,175,176,178],[99,145,177,178],[99,145,175,176],[99,145,178],[99,145,179],[99,142,145,175,180],[99,145,156,181,182],[99,145,181,182],[99,145,150,164,175,183],[99,145,184],[99,145,164,185],[99,145,159,170,186],[99,145,150,187],[99,145,175,188],[99,145,163,189],[99,145,190],[99,140,145],[99,140,145,156,158,167,175,178,186,189,191],[99,145,175,192],[87,99,145,197,198,199],[87,99,145,197,198],[87,99,145],[87,91,99,145,196,356,399],[87,91,99,145,195,356,399],[84,85,86,99,145],[92,99,145],[99,145,360],[99,145,362,363,364,365],[99,145,367],[99,145,202,211,217,219,356],[99,145,202,209,213,221,232],[99,145,211],[99,145,211,333],[99,145,266,281,297,402],[99,145,305],[99,145,194,202,211,215,220,232,264,266,269,289,299,356],[99,145,202,211,218,252,262,330,331,402],[99,145,218,402],[99,145,211,262,263,264,402],[99,145,211,218,252,402],[99,145,402],[99,145,218,219,402],[99,144,145,193],[87,99,145,282,283,284,302,303],[99,145,273],[87,99,145,196,282],[99,145,272,274,377],[87,99,145,282,283,300],[99,145,278,303,387,388],[87,99,145,282],[99,145,226,386],[99,144,145,193,226,272,273,274],[87,99,145,300,303],[99,145,300,302],[99,145,300,301,303],[99,144,145,193,212,221,269,270],[99,145,290],[87,99,145,203,380],[87,99,145,186,193],[87,99,145,218,250],[87,99,145,218],[99,145,248,253],[87,99,145,249,359],[99,145,434],[87,91,99,145,159,193,195,196,356,397,398],[99,145,356],[99,145,201],[99,145,349,350,351,352,353,354],[99,145,351],[87,99,145,249,282,359],[87,99,145,282,357,359],[87,99,145,282,359],[99,145,159,193,212,359],[99,145,159,193,210,221,222,240,271,275,276,299,300],[99,145,270,271,275,283,285,286,287,288,291,292,293,294,295,296,402],[87,99,145,170,193,211,240,242,244,269,299,356,402],[99,145,159,193,212,213,226,227,272],[99,145,159,193,211,213],[99,145,159,175,193,210,212,213],[99,145,159,170,186,193,201,203,210,211,212,213,218,221,222,223,233,234,236,239,240,242,243,244,268,269,300,308,310,313,315,318,320,321,322,356],[99,145,159,175,193],[99,145,202,203,204,210,356,359,402],[99,145,159,175,186,193,207,332,334,335,402],[99,145,170,186,193,207,210,212,230,234,236,237,238,242,269,313,323,325,330,345,346],[99,145,211,215,269],[99,145,210,211],[99,145,223,314],[99,145,316],[99,145,314],[99,145,316,319],[99,145,316,317],[99,145,206,207],[99,145,206,245],[99,145,206],[99,145,208,223,312],[99,145,311],[99,145,207,208],[99,145,208,309],[99,145,207],[99,145,299],[99,145,159,193,210,222,241,260,266,277,280,298,300],[99,145,254,255,256,257,258,259,278,279,303,357],[99,145,307],[99,145,159,193,210,222,241,246,304,306,308,356,359],[99,145,159,186,193,203,210,211,268],[99,145,265],[99,145,159,193,338,344],[99,145,233,268,359],[99,145,330,339,345,348],[99,145,159,215,330,338,340],[99,145,202,211,233,243,342],[99,145,159,193,211,218,243,326,336,337,341,342,343],[99,145,194,240,241,356,359],[99,145,159,170,186,193,208,210,212,215,220,221,222,230,233,234,236,237,238,239,242,244,268,269,310,323,324,359],[99,145,159,193,210,211,215,325,347],[99,145,159,193,212,221],[87,99,145,159,170,193,201,203,210,213,222,239,240,242,244,307,356,359],[99,145,159,170,186,193,205,208,209,212],[99,145,206,267],[99,145,159,193,206,221,222],[99,145,159,193,211,223],[99,145,159,193],[99,145,226],[99,145,225],[99,145,227],[99,145,211,224,226,230],[99,145,211,224,226],[99,145,159,193,205,211,212,227,228,229],[87,99,145,300,301,302],[99,145,261],[87,99,145,203],[87,99,145,236],[87,99,145,194,239,244,356,359],[99,145,203,380,381],[87,99,145,253],[87,99,145,170,186,193,201,247,249,251,252,359],[99,145,212,218,236],[99,145,170,193],[99,145,235],[87,99,145,157,159,170,193,201,253,262,356,357,358],[83,87,88,89,90,99,145,195,196,356,399],[99,145,150],[99,145,327,328,329],[99,145,327],[99,145,369],[99,145,371],[99,145,373],[99,145,435],[99,145,375],[99,145,378],[99,145,382],[91,93,99,145,356,361,366,368,370,372,374,376,379,383,385,390,391,393,400,401,402],[99,145,384],[99,145,389],[99,145,249],[99,145,392],[99,144,145,227,228,229,230,394,395,396,399],[99,145,193],[87,91,99,145,159,161,170,193,195,196,197,199,201,213,348,355,359,399],[99,145,421],[99,145,419,421],[99,145,410,418,419,420,422,424],[99,145,408],[99,145,411,416,421,424],[99,145,407,424],[99,145,411,412,415,416,417,424],[99,145,411,412,413,415,416,424],[99,145,408,409,410,411,412,416,417,418,420,421,422,424],[99,145,424],[99,145,406,408,409,410,411,412,413,415,416,417,418,419,420,421,422,423],[99,145,406,424],[99,145,411,413,414,416,417,424],[99,145,415,424],[99,145,416,417,421,424],[99,145,409,419],[99,145,426,427],[99,145,425,428],[99,112,116,145,186],[99,112,145,175,186],[99,107,145],[99,109,112,145,183,186],[99,145,164,183],[99,107,145,193],[99,109,112,145,164,186],[99,104,105,108,111,145,156,175,186],[99,112,119,145],[99,104,110,145],[99,112,133,134,145],[99,108,112,145,178,186,193],[99,133,145,193],[99,106,107,145,193],[99,112,145],[99,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,134,135,136,137,138,139,145],[99,112,127,145],[99,112,119,120,145],[99,110,112,120,121,145],[99,111,145],[99,104,107,112,145],[99,112,116,120,121,145],[99,116,145],[99,110,112,115,145,186],[99,104,109,112,119,145],[99,145,175],[99,107,112,133,145,191,193],[87,99,145,432,433,439,440],[87,99,145,390,432,439,440],[99,145,444],[87,99,145,390,432,433,439,440],[99,145,449],[87,99,145,432,433,439],[87,99,145,390,432,433,439,440,447],[87,99,145,390,432,433,439,440,453],[87,99,145,432,439,440],[99,145,403,436],[87,99,145,390,432,439],[87,99,145,390],[99,145,433,439],[87,99,145,433,439],[87,99,145,390,432,433,439,440,465],[87,99,145,390,432,433,439,440,462,463],[87,99,145,439],[99,145,390,432,439],[99,145,431],[99,145,429]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"0990a7576222f248f0a3b888adcb7389f957928ce2afb1cd5128169086ff4d29","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"035312d4945d13efa134ae482f6dc56a1a9346f7ac3be7ccbad5741058ce87f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc69795d9954ee4ad57545b10c7bf1a7260d990231b1685c147ea71a6faa265c","impliedFormat":1},{"version":"8bc6c94ff4f2af1f4023b7bb2379b08d3d7dd80c698c9f0b07431ea16101f05f","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"57194e1f007f3f2cbef26fa299d4c6b21f4623a2eddc63dfeef79e38e187a36e","impliedFormat":1},{"version":"0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","impliedFormat":1},{"version":"05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba481bca06f37d3f2c137ce343c7d5937029b2468f8e26111f3c9d9963d6568d","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ef24f9a22a88e3e9b3b3d8c40ab1ddb0853f1bfbd5c843c37800138437b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"8cd19276b6590b3ebbeeb030ac271871b9ed0afc3074ac88a94ed2449174b776","affectsGlobalScope":true,"impliedFormat":1},{"version":"696eb8d28f5949b87d894b26dc97318ef944c794a9a4e4f62360cd1d1958014b","impliedFormat":1},{"version":"3f8fa3061bd7402970b399300880d55257953ee6d3cd408722cb9ac20126460c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"68bd56c92c2bd7d2339457eb84d63e7de3bd56a69b25f3576e1568d21a162398","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e93b123f7c2944969d291b35fed2af79a6e9e27fdd5faa99748a51c07c02d28","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"87aad3dd9752067dc875cfaa466fc44246451c0c560b820796bdd528e29bef40","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"8db0ae9cb14d9955b14c214f34dae1b9ef2baee2fe4ce794a4cd3ac2531e3255","affectsGlobalScope":true,"impliedFormat":1},{"version":"15fc6f7512c86810273af28f224251a5a879e4261b4d4c7e532abfbfc3983134","impliedFormat":1},{"version":"58adba1a8ab2d10b54dc1dced4e41f4e7c9772cbbac40939c0dc8ce2cdb1d442","impliedFormat":1},{"version":"4b34bdb6f29a4347b7db9c0f8622686035fe25adb1c9e927acd8d22a2cbb6ccb","impliedFormat":1},{"version":"714435130b9015fae551788df2a88038471a5a11eb471f27c4ede86552842bc9","impliedFormat":1},{"version":"855cd5f7eb396f5f1ab1bc0f8580339bff77b68a770f84c6b254e319bbfd1ac7","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"27fdb0da0daf3b337c5530c5f266efe046a6ceb606e395b346974e4360c36419","impliedFormat":1},{"version":"2d2fcaab481b31a5882065c7951255703ddbe1c0e507af56ea42d79ac3911201","impliedFormat":1},{"version":"a192fe8ec33f75edbc8d8f3ed79f768dfae11ff5735e7fe52bfa69956e46d78d","impliedFormat":1},{"version":"ca867399f7db82df981d6915bcbb2d81131d7d1ef683bc782b59f71dda59bc85","affectsGlobalScope":true,"impliedFormat":1},{"version":"0e456fd5b101271183d99a9087875a282323e3a3ff0d7bcf1881537eaa8b8e63","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"6e70e9570e98aae2b825b533aa6292b6abd542e8d9f6e9475e88e1d7ba17c866","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"47ab634529c5955b6ad793474ae188fce3e6163e3a3fb5edd7e0e48f14435333","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"fad4e3c207fe23922d0b2d06b01acbfb9714c4f2685cf80fd384c8a100c82fd0","affectsGlobalScope":true,"impliedFormat":1},{"version":"74cf591a0f63db318651e0e04cb55f8791385f86e987a67fd4d2eaab8191f730","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"ddc734b4fae82a01d247e9e342d020976640b5e93b4e9b3a1e30e5518883a060","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"c3b41e74b9a84b88b1dca61ec39eee25c0dbc8e7d519ba11bb070918cfacf656","affectsGlobalScope":true,"impliedFormat":1},{"version":"4737a9dc24d0e68b734e6cfbcea0c15a2cfafeb493485e27905f7856988c6b29","affectsGlobalScope":true,"impliedFormat":1},{"version":"36d8d3e7506b631c9582c251a2c0b8a28855af3f76719b12b534c6edf952748d","impliedFormat":1},{"version":"1ca69210cc42729e7ca97d3a9ad48f2e9cb0042bada4075b588ae5387debd318","impliedFormat":1},{"version":"f5ebe66baaf7c552cfa59d75f2bfba679f329204847db3cec385acda245e574e","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"05db535df8bdc30d9116fe754a3473d1b6479afbc14ae8eb18b605c62677d518","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1},{"version":"8caa5c86be1b793cd5f599e27ecb34252c41e011980f7d61ae4989a149ff6ccc","impliedFormat":1},{"version":"f9fd93190acb1ffe0bc0fb395df979452f8d625071e9ffc8636e4dfb86ab2508","impliedFormat":1},{"version":"5f41fd8732a89e940c58ce22206e3df85745feb8983e2b4c6257fb8cbb118493","impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"1cfa8647d7d71cb03847d616bd79320abfc01ddea082a49569fda71ac5ece66b","impliedFormat":1},{"version":"bb7a61dd55dc4b9422d13da3a6bb9cc5e89be888ef23bbcf6558aa9726b89a1c","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"cfe4ef4710c3786b6e23dae7c086c70b4f4835a2e4d77b75d39f9046106e83d3","impliedFormat":1},{"version":"cbea99888785d49bb630dcbb1613c73727f2b5a2cf02e1abcaab7bcf8d6bf3c5","impliedFormat":1},{"version":"98817124fd6c4f60e0b935978c207309459fb71ab112cf514f26f333bf30830e","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"2dad084c67e649f0f354739ec7df7c7df0779a28a4f55c97c6b6883ae850d1ce","impliedFormat":1},{"version":"fa5bbc7ab4130dd8cdc55ea294ec39f76f2bc507a0f75f4f873e38631a836ca7","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"cf86de1054b843e484a3c9300d62fbc8c97e77f168bbffb131d560ca0474d4a8","impliedFormat":1},{"version":"a28e69b82de8008d23b88974aeb6fba7195d126c947d0da43c16e6bc2f719f9f","impliedFormat":1},{"version":"528637e771ee2e808390d46a591eaef375fa4b9c99b03749e22b1d2e868b1b7c","impliedFormat":1},{"version":"6faf62b01899a492bf7f9a69318b4e6b83057a6cd32d2b943550a5624309577f","impliedFormat":1},{"version":"fc46f093d1b754a8e3e34a071a1dd402f42003927676757a9a10c6f1d195a35b","impliedFormat":1},{"version":"b7b3258e8d47333721f9d4c287361d773f8fa88e52d1148812485d9fc06d2577","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"a9af0e608929aaf9ce96bd7a7b99c9360636c31d73670e4af09a09950df97841","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"e8db7e1cf8a10b4bbb58002ce9e7e73493abac738a09855c499fb56f773a729c","impliedFormat":1},{"version":"47e5af2a841356a961f815e7c55d72554db0c11b4cba4d0caab91f8717846a94","impliedFormat":1},{"version":"4c91cc1ab59b55d880877ccf1999ded0bb2ebc8e3a597c622962d65bf0e76be8","impliedFormat":1},{"version":"fa1ea09d3e073252eccff2f6630a4ce5633cc2ff963ba672dd8fd6783108ea83","impliedFormat":1},{"version":"f5f541902bf7ae0512a177295de9b6bcd6809ea38307a2c0a18bfca72212f368","impliedFormat":1},{"version":"e8da637cbd6ed1cf6c36e9424f6bcee4515ca2c677534d4006cbd9a05f930f0c","impliedFormat":1},{"version":"ca1b882a105a1972f82cc58e3be491e7d750a1eb074ffd13b198269f57ed9e1b","impliedFormat":1},{"version":"c9d71f340f1a4576cd2a572f73a54dc7212161fa172dfe3dea64ac627c8fcb50","impliedFormat":1},{"version":"3867ca0e9757cc41e04248574f4f07b8f9e3c0c2a796a5eb091c65bfd2fc8bdb","impliedFormat":1},{"version":"6c66f6f7d9ff019a644ff50dd013e6bf59be4bf389092948437efa6b77dc8f9a","impliedFormat":1},{"version":"4e10622f89fea7b05dd9b52fb65e1e2b5cbd96d4cca3d9e1a60bb7f8a9cb86a1","impliedFormat":1},{"version":"ef2d1bd01d144d426b72db3744e7a6b6bb518a639d5c9c8d86438fb75a3b1934","impliedFormat":1},{"version":"b9750fe7235da7d8bf75cb171bf067b7350380c74271d3f80f49aea7466b55b5","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"2694e85d282be0138d8e6f7e43c5c165aa1f40e0358489f1d7babf388b5fd368","impliedFormat":1},{"version":"e9e731cc4d5767a85639ad3d203d4a54b0038177b91819badee8c7efcf23a743","impliedFormat":1},{"version":"ac60bbee0d4235643cc52b57768b22de8c257c12bd8c2039860540cab1fa1d82","impliedFormat":1},{"version":"973b59a17aaa817eb205baf6c132b83475a5c0a44e8294a472af7793b1817e89","impliedFormat":1},{"version":"ada39cbb2748ab2873b7835c90c8d4620723aedf323550e8489f08220e477c7f","impliedFormat":1},{"version":"6e5f5cee603d67ee1ba6120815497909b73399842254fc1e77a0d5cdc51d8c9c","impliedFormat":1},{"version":"f79e0681538ef94c273a46bb1a073b4fe9fdc93ef7f40cc2c3abd683b85f51fc","impliedFormat":1},{"version":"70f3814c457f54a7efe2d9ce9d2686de9250bb42eb7f4c539bd2280a42e52d33","impliedFormat":1},{"version":"17ace83a5bea3f1da7e0aef7aab0f52bca22619e243537a83a89352a611b837d","impliedFormat":1},{"version":"ef61792acbfa8c27c9bd113f02731e66229f7d3a169e3c1993b508134f1a58e0","impliedFormat":1},{"version":"afcb759e8e3ad6549d5798820697002bc07bdd039899fad0bf522e7e8a9f5866","impliedFormat":1},{"version":"f6404e7837b96da3ea4d38c4f1a3812c96c9dcdf264e93d5bdb199f983a3ef4b","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1dc574e42493e8bf9bb37be44d9e38c5bd7bbc04f884e5e58b4d69636cb192b3","impliedFormat":1},{"version":"9deab571c42ed535c17054f35da5b735d93dc454d83c9a5330ecc7a4fb184e9e","affectsGlobalScope":true,"impliedFormat":1},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true,"impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"903e299a28282fa7b714586e28409ed73c3b63f5365519776bf78e8cf173db36","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"dd3900b24a6a8745efeb7ad27629c0f8a626470ac229c1d73f1fe29d67e44dca","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"ec29be0737d39268696edcec4f5e97ce26f449fa9b7afc2f0f99a86def34a418","impliedFormat":1},{"version":"4d4481ad9bd6783871db9d06eedc06214b24587c1d94b1d3cbe2e99d4d73d665","impliedFormat":1},{"version":"ec6cba1c02c675e4dd173251b156792e8d3b0c816af6d6ad93f1a55d674591aa","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"41acd266e78e6880cdf79bacac97be0cf597e8d2b9ad8e27704ad43426eb8f2a","impliedFormat":1},{"version":"e15d3c84d5077bb4a3adee4c791022967b764dc41cb8fa3cfa44d4379b2c95f5","impliedFormat":1},{"version":"78244a2a8ab1080e0dd8fc3633c204c9a4be61611d19912f4b157f7ef7367049","impliedFormat":1},{"version":"e1fc1a1045db5aa09366be2b330e4ce391550041fc3e925f60998ca0b647aa97","impliedFormat":1},{"version":"b3751ab2273a6abc16e56cb61246db847fb0c6d4b71dad6c04761ca0c6c99fc3","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"abf9bfffaa0bb56e8afa78b8fabd0ba5923803444b92e87577a90f3537404526","impliedFormat":1},{"version":"3556cfbab7b43da96d15a442ddbb970e1f2fc97876d055b6555d86d7ac57dae5","impliedFormat":1},{"version":"437751e0352c6e924ddf30e90849f1d9eb00ca78c94d58d6a37202ec84eb8393","impliedFormat":1},{"version":"48e8af7fdb2677a44522fd185d8c87deff4d36ee701ea003c6c780b1407a1397","impliedFormat":1},{"version":"606e6f841ba9667de5d83ca458449f0ed8c511ba635f753eaa731e532dea98c7","impliedFormat":1},{"version":"d860ce4d43c27a105290c6fdf75e13df0d40e3a4e079a3c47620255b0e396c64","impliedFormat":1},{"version":"b064dd7dd6aa5efef7e0cc056fed33fc773ea39d1e43452ee18a81d516fb762c","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","impliedFormat":1},{"version":"680793958f6a70a44c8d9ae7d46b7a385361c69ac29dcab3ed761edce1c14ab8","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"3d1a2f2bcad11d489f6502087379ad28a773461e1dca80297d2219e89d778a31","impliedFormat":1},{"version":"ccccbca40b0615f5b14902e7d960f0c7a96b75d9ea6a20d9c1a88f5874fe55e5","impliedFormat":1},{"version":"5fe23bd829e6be57d41929ac374ee9551ccc3c44cee893167b7b5b77be708014","impliedFormat":1},{"version":"8755047a16970243683d857754a93863da6fed6bf1737d195f55444c667ae8ee","impliedFormat":1},{"version":"438c7513b1df91dcef49b13cd7a1c4720f91a36e88c1df731661608b7c055f10","impliedFormat":1},{"version":"ad444a874f011d3a797f1a41579dbfcc6b246623f49c20009f60e211dbd5315e","impliedFormat":1},{"version":"361e2b13c6765d7f85bb7600b48fde782b90c7c41105b7dab1f6e7871071ba20","impliedFormat":1},{"version":"1f5730d4bbb923addc1eb475056b464327d5720702481c799a0c0a36a4f7fa70","impliedFormat":1},{"version":"4c335d3a693925d96a8412087b3d675d20f04aa94f49581d1ecefb7373d458a1","impliedFormat":1},{"version":"0c62ce5d1677ebb0192a92bb9268b276f43c678dabc85a4a218304c913ecb8c4","impliedFormat":1},{"version":"9c250db4bab4f78fad08be7f4e43e962cc143e0f78763831653549ceb477344a","impliedFormat":1},{"version":"021a9498000497497fd693dd315325484c58a71b5929e2bbb91f419b04b24cea","impliedFormat":1},{"version":"9385cdc09850950bc9b59cca445a3ceb6fcca32b54e7b626e746912e489e535e","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"d6786782daa690925e139faad965b2d1745f71380c26861717f10525790566d9","impliedFormat":1},{"version":"63a8e96f65a22604eae82737e409d1536e69a467bb738bec505f4f97cce9d878","impliedFormat":1},{"version":"3fd78152a7031315478f159c6a5872c712ece6f01212c78ea82aef21cb0726e2","impliedFormat":1},{"version":"3c9da5c5ebb23a13ab8b0f40d137240c2573e4b515a0f76ecce4606ffa54cc68","impliedFormat":1},{"version":"cda4052f66b1e6cb7cf1fdfd96335d1627aa24a3b8b82ba4a9f873ec3a7bcde8","impliedFormat":1},{"version":"bf68ee06b7310056264cc7a380076a6d9b826c5e6ee3e1519a3d8f3a9c7178a4","impliedFormat":1},{"version":"e4b75a33f36b8a8885f11d3b89a4fb5e6f56a35d4208b519d35b2c7971d0fe76","impliedFormat":1},{"version":"fd933f824347f9edd919618a76cdb6a0c0085c538115d9a287fa0c7f59957ab3","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"6a1aa3e55bdc50503956c5cd09ae4cd72e3072692d742816f65c66ca14f4dfdd","impliedFormat":1},{"version":"ab75cfd9c4f93ffd601f7ca1753d6a9d953bbedfbd7a5b3f0436ac8a1de60dfa","impliedFormat":1},{"version":"28ebfca21bccf412dbb83a1095ee63eaa65dfc31d06f436f3b5f24bfe3ede7fa","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"1364f64d2fb03bbb514edc42224abd576c064f89be6a990136774ecdd881a1da","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"950fb67a59be4c2dbe69a5786292e60a5cb0e8612e0e223537784c731af55db1","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"07ca44e8d8288e69afdec7a31fa408ce6ab90d4f3d620006701d5544646da6aa","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"4e4475fba4ed93a72f167b061cd94a2e171b82695c56de9899275e880e06ba41","impliedFormat":1},{"version":"97c5f5d580ab2e4decd0a3135204050f9b97cd7908c5a8fbc041eadede79b2fa","impliedFormat":1},{"version":"49b2375c586882c3ac7f57eba86680ff9742a8d8cb2fe25fe54d1b9673690d41","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"b51b87cf7cf94c043a7f5f8d017ee7ebd3f2303fde69a824b32ef5d58f6df63e","impliedFormat":1},{"version":"b33ac7d8d7d1bfc8cc06c75d1ee186d21577ab2026f482e29babe32b10b26512","impliedFormat":1},{"version":"a735f9a950f91e0b3efa82ef4f6acc6193d41d329ae006f7f54cffc1ef1d01c9","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","impliedFormat":1},{"version":"71bc9bc7afa31a36fb61f66a668b44ee0e7c9ed0f2f364ca0185ffff8bc8f174","impliedFormat":1},{"version":"bbc183d2d69f4b59fd4dd8799ffdf4eb91173d1c4ad71cce91a3811c021bf80c","impliedFormat":1},{"version":"7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","impliedFormat":1},{"version":"8dbc4134a4b3623fc476be5f36de35c40f2768e2e3d9ed437e0d5f1c4cd850f6","impliedFormat":1},{"version":"d5563f7b039981b4f1b011936b7d0dcdd96824c721842ff74881c54f2f634284","impliedFormat":1},{"version":"3ceeb1a114a85d03997d2c611c45cf3c5f26eeb63dd9b5fd9dc9eb04af98b2a4","impliedFormat":1},{"version":"eb8b35932068daa1ca6199109bf932fd0ceec9abd68506034cf8573e96ff7d09","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"443fbe38a293542919fdeb3118772f4c0096681bbc0c59bc6b9939ddee8dd066","impliedFormat":1},{"version":"94404c4a878fe291e7578a2a80264c6f18e9f1933fbb57e48f0eb368672e389c","impliedFormat":1},{"version":"5c1b7f03aa88be854bc15810bfd5bd5a1943c5a7620e1c53eddd2a013996343e","impliedFormat":1},{"version":"f416c9c3eee9d47ff49132c34f96b9180e50485d435d5748f0e8b72521d28d2e","impliedFormat":1},{"version":"b4a49b80b0c625e4c7a9d6fcd95cd7d6a94ca6116b056d144de0cf70c03e4697","impliedFormat":1},{"version":"60a86278bd85866c81bc8e48d23659279b7a2d5231b06799498455586f7c8138","impliedFormat":1},{"version":"01aa917531e116485beca44a14970834687b857757159769c16b228eb1e49c5f","impliedFormat":1},{"version":"fbcde1fdade133b4a976480c0d4c692e030306f53909d7765dfef98436dec777","impliedFormat":1},{"version":"4f1ce48766482ed4c19da9b1103f87690abb7ba0a2885a9816c852bfad6881a1","impliedFormat":1},{"version":"187a6fdbdecb972510b7555f3caacb44b58415da8d5825d03a583c4b73fde4cf","impliedFormat":1},{"version":"d4c3250105a612202289b3a266bb7e323db144f6b9414f9dea85c531c098b811","impliedFormat":1},{"version":"18e2ae9d03e8bdc58ffecd37018bdb33969b1804a24de412f3c866324904b485","impliedFormat":1},{"version":"741067675daa6d4334a2dc80a4452ca3850e89d5852e330db7cb2b5f867173b1","impliedFormat":1},{"version":"a1c8542ed1189091dd39e732e4390882a9bcd15c0ca093f6e9483eba4e37573f","impliedFormat":1},{"version":"131b1475d2045f20fb9f43b7aa6b7cb51f25250b5e4c6a1d4aa3cf4dd1a68793","impliedFormat":1},{"version":"3a17f09634c50cce884721f54fd9e7b98e03ac505889c560876291fcf8a09e90","impliedFormat":1},{"version":"32531dfbb0cdc4525296648f53b2b5c39b64282791e2a8c765712e49e6461046","impliedFormat":1},{"version":"0ce1b2237c1c3df49748d61568160d780d7b26693bd9feb3acb0744a152cd86d","impliedFormat":1},{"version":"e489985388e2c71d3542612685b4a7db326922b57ac880f299da7026a4e8a117","impliedFormat":1},{"version":"76264a4df0b7c78b7b12dfaedc05d9f1016f27be1f3d0836417686ff6757f659","impliedFormat":1},{"version":"272692898cec41af73cb5b65f4197a7076007aecd30c81514d32fdb933483335","affectsGlobalScope":true,"impliedFormat":1},{"version":"fd1b9d883b9446f1e1da1e1033a6a98995c25fbf3c10818a78960e2f2917d10c","impliedFormat":1},{"version":"19252079538942a69be1645e153f7dbbc1ef56b4f983c633bf31fe26aeac32cd","impliedFormat":1},{"version":"bc11f3ac00ac060462597add171220aed628c393f2782ac75dd29ff1e0db871c","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"ec9fd890d681789cb0aa9efbc50b1e0afe76fbf3c49c3ac50ff80e90e29c6bcb","impliedFormat":1},{"version":"5fbd292aa08208ae99bf06d5da63321fdc768ee43a7a104980963100a3841752","impliedFormat":1},{"version":"9eac5a6beea91cfb119688bf44a5688b129b804ede186e5e2413572a534c21bb","impliedFormat":1},{"version":"e81bf06c0600517d8f04cc5de398c28738bfdf04c91fb42ad835bfe6b0d63a23","impliedFormat":1},{"version":"363996fe13c513a7793aa28ffb05b5d0230db2b3d21b7bfaf21f79e4cde54b4e","impliedFormat":1},{"version":"b7fff2d004c5879cae335db8f954eb1d61242d9f2d28515e67902032723caeab","impliedFormat":1},{"version":"5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","impliedFormat":1},{"version":"bb18bf4a61a17b4a6199eb3938ecfa4a59eb7c40843ad4a82b975ab6f7e3d925","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"15959543f93f27e8e2b1a012fe28e14b682034757e2d7a6c1f02f87107fc731e","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"2b664c3cc544d0e35276e1fb2d4989f7d4b4027ffc64da34ec83a6ccf2e5c528","impliedFormat":1},{"version":"a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","impliedFormat":1},{"version":"3cd8f0464e0939b47bfccbb9bb474a6d87d57210e304029cd8eb59c63a81935d","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"3026abd48e5e312f2328629ede6e0f770d21c3cd32cee705c450e589d015ee09","impliedFormat":1},{"version":"4a8bae6576783c910147d19ec6bef24fd2a24e83acbbb2043a60eec7134738e6","impliedFormat":1},{"version":"7663d2c19ce5ef8288c790edba3d45af54e58c84f1b37b1249f6d49d962f3d91","impliedFormat":1},{"version":"f72ee46ae3f73e6c5ff0da682177251d80500dd423bfd50286124cd0ca11e160","impliedFormat":1},{"version":"898b714aad9cfd0e546d1ad2c031571de7622bd0f9606a499bee193cf5e7cf0c","impliedFormat":1},{"version":"94f4c1779dc2bbe0cf909eb8700898b1869ed8563acb3ec26cbe8047d642c269","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"5d26aae738fa3efc87c24f6e5ec07c54694e6bcf431cc38d3da7576d6bb35bd6","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"65c2c49eda6c44aa170bfd449ef6f6970843b005356624a393cc887310752c5c","impliedFormat":1},{"version":"e769eb743cd01a0b7ffbb59293d2e4fa5848ab39430e196941143af6ecd4569e","impliedFormat":1},{"version":"68f81dad9e8d7b7aa15f35607a70c8b68798cf579ac44bd85325b8e2f1fb3600","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"94fd3ce628bd94a2caf431e8d85901dbe3a64ab52c0bd1dbe498f63ca18789f7","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"c0eeaaa67c85c3bb6c52b629ebbfd3b2292dc67e8c0ffda2fc6cd2f78dc471e6","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"b95a6f019095dd1d48fd04965b50dfd63e5743a6e75478343c46d2582a5132bf","impliedFormat":99},{"version":"c2008605e78208cfa9cd70bd29856b72dda7ad89df5dc895920f8e10bcb9cd0a","impliedFormat":99},{"version":"b97cb5616d2ab82a98ec9ada7b9e9cabb1f5da880ec50ea2b8dc5baa4cbf3c16","impliedFormat":99},{"version":"16fd66ae997b2f01c972531239da90fbf8ab4022bb145b9587ef746f6cecde5a","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc8fbee8f73bf5ffd6ba08ba1c554d6f714c49cae5b5e984afd545ab1b7abe06","affectsGlobalScope":true,"impliedFormat":1},{"version":"3586f5ea3cc27083a17bd5c9059ede9421d587286d5a47f4341a4c2d00e4fa91","impliedFormat":1},{"version":"a6df929821e62f4719551f7955b9f42c0cd53c1370aec2dd322e24196a7dfe33","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},"9269d492817e359123ac64c8205e5d05dab63d71a3a7a229e68b5d9a0e8150bf",{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","impliedFormat":1},{"version":"333caa2bfff7f06017f114de738050dd99a765c7eb16571c6d25a38c0d5365dc","impliedFormat":1},{"version":"e61df3640a38d535fd4bc9f4a53aef17c296b58dc4b6394fd576b808dd2fe5e6","impliedFormat":1},{"version":"459920181700cec8cbdf2a5faca127f3f17fd8dd9d9e577ed3f5f3af5d12a2e4","impliedFormat":1},{"version":"4719c209b9c00b579553859407a7e5dcfaa1c472994bd62aa5dd3cc0757eb077","impliedFormat":1},{"version":"7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","impliedFormat":1},{"version":"70790a7f0040993ca66ab8a07a059a0f8256e7bb57d968ae945f696cbff4ac7a","impliedFormat":1},{"version":"d1b9a81e99a0050ca7f2d98d7eedc6cda768f0eb9fa90b602e7107433e64c04c","impliedFormat":1},{"version":"a022503e75d6953d0e82c2c564508a5c7f8556fad5d7f971372d2d40479e4034","impliedFormat":1},{"version":"b215c4f0096f108020f666ffcc1f072c81e9f2f95464e894a5d5f34c5ea2a8b1","impliedFormat":1},{"version":"644491cde678bd462bb922c1d0cfab8f17d626b195ccb7f008612dc31f445d2d","impliedFormat":1},{"version":"dfe54dab1fa4961a6bcfba68c4ca955f8b5bbeb5f2ab3c915aa7adaa2eabc03a","impliedFormat":1},{"version":"1251d53755b03cde02466064260bb88fd83c30006a46395b7d9167340bc59b73","impliedFormat":1},{"version":"47865c5e695a382a916b1eedda1b6523145426e48a2eae4647e96b3b5e52024f","impliedFormat":1},{"version":"4cdf27e29feae6c7826cdd5c91751cc35559125e8304f9e7aed8faef97dcf572","impliedFormat":1},{"version":"331b8f71bfae1df25d564f5ea9ee65a0d847c4a94baa45925b6f38c55c7039bf","impliedFormat":1},{"version":"2a771d907aebf9391ac1f50e4ad37952943515eeea0dcc7e78aa08f508294668","impliedFormat":1},{"version":"0146fd6262c3fd3da51cb0254bb6b9a4e42931eb2f56329edd4c199cb9aaf804","impliedFormat":1},{"version":"183f480885db5caa5a8acb833c2be04f98056bdcc5fb29e969ff86e07efe57ab","impliedFormat":99},{"version":"b558c9a18ea4e6e4157124465c3ef1063e64640da139e67be5edb22f534f2f08","impliedFormat":1},{"version":"01374379f82be05d25c08d2f30779fa4a4c41895a18b93b33f14aeef51768692","impliedFormat":1},{"version":"b0dee183d4e65cf938242efaf3d833c6b645afb35039d058496965014f158141","impliedFormat":1},{"version":"c0bbbf84d3fbd85dd60d040c81e8964cc00e38124a52e9c5dcdedf45fea3f213","impliedFormat":1},{"version":"d13fcfb0807c8de36b9e980c36b3e3848e1011d5c509d637df8101f337855d07","signature":"f65ce75c9085571e6321abf2bf9833709f4897e381f89e9925521833dbb7ab16"},{"version":"faf770b3935c2ba6558b2bb65af5d5de58945d81f496dc1a5938c41a1abb358b","impliedFormat":99},{"version":"e82ae2c960f50111104a8cca98a6b064565c4985345d08ffbbc1fcd735f85ab0","signature":"02e8d486c500591f57a65ac6c3f89bc1a9e036f6764bc106ed6dd0c43df15f5b"},{"version":"fbca4ed2dc57504544798e28f094976b1cb4ebe027ba33f12d3db69b36e89fdb","signature":"d4791c2ed837cbf2f3f946f02ca796fc2cd1d309692544b946b70bd828543f17"},{"version":"fe93c474ab38ac02e30e3af073412b4f92b740152cf3a751fdaee8cbea982341","impliedFormat":1},{"version":"2243ccc64224e509b363b0027e4ae4720c14ad3ea0bfdac1357d12fade504e84","impliedFormat":1},{"version":"1e00b8bf9e3766c958218cd6144ffe08418286f89ff44ba5a2cc830c03dd22c7","impliedFormat":1},{"version":"8b87ec747b4eb455ca831b9a90a30b1465d3d5b6739690eefa54ea65d86557af","signature":"01a977ade994fe0de990222140f158a0dc3b03529994c449aa39333d0facac02"},{"version":"2fbafd877e9776c0c9b2d5f533f8a4e238235b75dd9aca50db156d831ed45fac","signature":"3eb972ae325aa293fdb6077cdf956f209ee6ea34b4e874ff7ec8686b3079972f"},{"version":"4c54300bb2670678e16cb98079486f3f2bfa061dd1b954e7e4a8999959420507","impliedFormat":1},{"version":"b6f48a7cc5a1511c414194323a92611355bb47bf2580d7020952c23a8864a2ce","signature":"d2ead9f2fbb260f258b010c555ac15e540c95968f950332e270b6520edd7cf81"},"fd080e99b08fc63c9c277022c67872cdcd0c7e64bba911b9455476df70b7b160",{"version":"27d6c7299e72f23e91cb4edde13b0a38b9479b7a2f8eba13127b4bac299af6e2","signature":"6c45675928d5db83b67f6f8d0c2238049d5290a975c3d1c99b7d2cdf8b415168"},"36421b8c9533a70127e8667931a33743a353df9249a08d2e02e389aa3b6b1b07","a7790b1028ecd11b0dae44be2362c50f3f54737d73b0f34797f60fa538ed6f5e","d59dd31e8e76ce0ceb5429ac6d07fdfa1807c956690963e3360a14b5ddad0fae","15158b208010290d4a67f865a76ba8fe58cfdc973bb7366b8176fca2d1175153",{"version":"348c92e4b6a46d690fcb1684fe24442286b2cebe92b6c43d1a7a78a13944a319","signature":"acad6562c96a652ff700ad520701327abf9c0e11af3ab9cd45f880055b1c5af8"},{"version":"2746def1cf0cdd849c2fb9810baf56cb81e30e159a8a8d53332ce8f03ea31b23","signature":"0ed030a7e3c91bda5414eb34812e36f3dda8a5739b883d8cb4dd2e3aff37253e"},{"version":"4391bd873a2b67fe0c36f82ea0db4e440da3d450058904c478255882d4ec8c0d","signature":"7a1c5b30079a0357e210ebfcf3c68d18f5b4e2baf3eb2185a5b1ed6ba75e0425"},"f2eab7e30ed4c52e7baeed133c65e46dc9ddf90f626748a5d7e0964e181b9039",{"version":"a26f74f39f3d9d9420e064f2d6fcb179c77f6b29d5fa8b720d1eeb0bff6b9f52","signature":"4286a47c1cf9ea371c759ae690a689f7f064d431936ea72eefc75c95c7ab6f85"},"568f0a86110fae49f568341d9c0e0755ce95ebc042d9da0dc9c0eb8fa0fe0c9f",{"version":"3722f98b26e3aff038de1aec4cd7375906b5f79c89a388391d48e96e7b8532a9","signature":"8f57ae9bde5786f88bf5db102b374344be827cc1159e4d8e0c1f1da4067a2995"},"32764a34b61022da43561aa7c96bf1afa30ecb1b762d0414d569a73b7abf2537","d41a97657f8782e29fad452af355c8d14624a423f5bd5d96f5a6fd80a1538a8d",{"version":"76eb9778be4d31b4e14abf2e9d36532edf7c0a3d6bd2cb9fb868cd5f28e97a3e","signature":"d1c54127b35edcbb429b825589e7ab608f067a51e53f25861a49806ee5a64d24"},{"version":"fc633d715c87ff375aef523dc88424dec1d8963fc507975301dd427380360a87","signature":"fc975886fcd38e2d33a24c7a3d1e6d56b0e83760e593d15a88eaccfa72d1c7db"},{"version":"f614443cececb15b91044b77c0320e2a7424c6559f51ddd8ecff17b73c067cfc","signature":"45b373ad2e114de335dd3eaf62f9658266d71c2f34537489f88f3b4815fa72f8"},{"version":"6492dc47dfce1135d7186a31d5285ce5ea9553a57b02ebe2d5f02d8bcd998b03","signature":"57bf6d3d9869fcfaa16bbc070fb1d67e3cba7323e46af9aafc0e9fa862758603"},{"version":"f25b7d7089e7f635e02e3c465ce7a3d851b3d8fcd376465e76bd589b134a8892","signature":"91b905b985aaeda26e36c54bc924487b48c933963789d5f6bbd5ecaf51826546"},{"version":"2982bb0cca8bb1ab2199becdf43fc425a18caa30134ef24649b57bc4db787aad","signature":"37391120d58950db7cfadc4abdd838e09f2875115e58761eaa13986577643062"},{"version":"88146893bf0590705430fb6cf38c7f2bc655c7b57573eb595fa8250cd14ba37c","signature":"e095d577bb5418d6d69e26b2c7228a7e8b90d20e51d804fc3fe4a0e5553aa1ff"},"acbf4c0efd92d33bcf4207564874aed6bcb8c1e5dff25b1054a4229694f71391","e30f1f501467b238f875037b63ba031e09fc290aab14b7c099227c85a603eb88","43f403fe631b122bb151418f8155bbf652ab7723377aba6623f1989623f3aed4","164255d9b0e4bc1c3905e897faa9cc4e12ba442f4a0515de1221bd6e4dc6003e",{"version":"e21cdf8c1f94bf9c15cad0ddd58814d745b54749f2bbd8652158422591b23c53","signature":"a64e611c31584bb3e06885be32c1a510d7628b5d158fc0e936a348b8564bf1f8"},{"version":"8a804712587b624baceb59a9a315ff7ae2d24e916c823132c202cee656715e2a","signature":"0ba8b0b9d7e347133245546a399400f6ddfcc060af283bec7a9611e3d25aea17"},{"version":"c38e408c008fda0cd15ba5f04355c27bae3f0d5d867528c1818ae247739edabd","signature":"a0fc769884800899915b3e4fb697c3d5fc9965e18ea475888e952ce6e4631b5f"},{"version":"1dc7d8e1d1a4a16bab54270a978e6d73eb3882d710c9e947aa1dfea38900d0e1","signature":"2cc743b624d6891f9275f11f76fedfe235af04641c806e7dc65e55740db4dd29"},{"version":"812d81ac0d26ec904d61da8522dacdc3ec53a0255707dd20e21383a172d0b933","signature":"2cc743b624d6891f9275f11f76fedfe235af04641c806e7dc65e55740db4dd29"},"4275403ac99e582a116d46be276e91f5870c0115bd95f77f92a4434b4a6a75b3",{"version":"86bb0810cd10b05f3522cbcc0ac73039eb75cf1beb7d5f22fa5844bd15da14f8","signature":"2cc743b624d6891f9275f11f76fedfe235af04641c806e7dc65e55740db4dd29"},"607cfbeaca91b58fd2e442af0f9c738f078c6b26d0460d7eaf999b75897ca848",{"version":"d3eaf0715dca3ed22d0db0fb1bbb0fcec4b42686ca1cb7ee0cec2455ccdf4415","signature":"2cc743b624d6891f9275f11f76fedfe235af04641c806e7dc65e55740db4dd29"},{"version":"0537f709adbca13cc45c2a80a3a26a549fdcdf7057415c0478e28351b5114ce0","signature":"2cc743b624d6891f9275f11f76fedfe235af04641c806e7dc65e55740db4dd29"},{"version":"bc7137b4fcb3b1cdca0fcd510a17abe41999db1ec56bd7eac5f08072a4b59751","signature":"2cc743b624d6891f9275f11f76fedfe235af04641c806e7dc65e55740db4dd29"},{"version":"34da624f1f6741b155761b8547b0f98b3408577fd80dd55623efff8b65e475b1","signature":"2cc743b624d6891f9275f11f76fedfe235af04641c806e7dc65e55740db4dd29"},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1}],"root":[405,430,432,433,437,438,[440,478]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true},"referencedMap":[[472,1],[473,2],[475,3],[474,4],[470,5],[476,6],[478,7],[477,8],[471,9],[405,10],[358,11],[479,11],[142,12],[143,12],[144,13],[99,14],[145,15],[146,16],[147,17],[94,11],[97,18],[95,11],[96,11],[148,19],[149,20],[150,21],[151,22],[152,23],[153,24],[154,24],[155,25],[156,26],[157,27],[158,28],[100,11],[98,11],[159,29],[160,30],[161,31],[193,32],[162,33],[163,34],[164,35],[165,36],[166,37],[167,38],[168,39],[169,40],[170,41],[171,42],[172,42],[173,43],[174,11],[175,44],[177,45],[176,46],[178,47],[179,48],[180,49],[181,50],[182,51],[183,52],[184,53],[185,54],[186,55],[187,56],[188,57],[189,58],[190,59],[101,11],[102,11],[103,11],[141,60],[191,61],[192,62],[86,11],[198,63],[199,64],[197,65],[195,66],[196,67],[84,11],[87,68],[282,65],[431,11],[85,11],[439,65],[93,69],[361,70],[366,71],[368,72],[218,73],[233,74],[331,75],[264,11],[334,76],[298,77],[306,78],[290,79],[332,80],[219,81],[263,11],[265,82],[289,11],[333,83],[240,84],[220,85],[244,84],[234,84],[204,84],[288,86],[209,11],[285,87],[377,88],[283,89],[378,90],[270,11],[286,91],[389,92],[294,93],[388,11],[386,11],[387,94],[287,65],[275,95],[284,96],[301,97],[302,98],[293,11],[271,99],[291,100],[292,93],[381,101],[384,102],[251,103],[250,104],[249,105],[392,65],[248,106],[225,11],[395,11],[435,107],[434,11],[398,11],[397,65],[399,108],[200,11],[326,11],[232,109],[202,110],[349,11],[350,11],[352,11],[355,111],[351,11],[353,112],[354,112],[217,11],[231,11],[360,113],[369,114],[373,115],[213,116],[277,117],[276,11],[297,118],[295,11],[296,11],[300,119],[273,120],[212,121],[238,122],[323,123],[205,124],[211,125],[201,75],[336,126],[347,127],[335,11],[346,128],[239,11],[223,129],[315,130],[314,11],[322,131],[316,132],[320,133],[321,134],[319,132],[318,134],[317,132],[260,135],[245,135],[309,136],[246,136],[207,137],[206,11],[313,138],[312,139],[311,140],[310,141],[208,142],[281,143],[299,144],[280,145],[305,146],[307,147],[304,145],[241,142],[194,11],[324,148],[266,149],[345,150],[269,151],[340,152],[221,11],[341,153],[343,154],[344,155],[339,11],[338,124],[242,156],[325,157],[348,158],[214,11],[216,11],[222,159],[308,160],[210,161],[215,11],[268,162],[267,163],[224,164],[274,165],[272,166],[226,167],[228,168],[396,11],[227,169],[229,170],[363,11],[364,11],[362,11],[365,11],[394,11],[230,171],[279,65],[92,11],[303,172],[252,11],[262,173],[371,65],[380,174],[259,65],[375,93],[258,175],[357,176],[257,174],[203,11],[382,177],[255,65],[256,65],[247,11],[261,11],[254,178],[253,179],[243,180],[237,181],[342,11],[236,182],[235,11],[367,11],[278,65],[359,183],[83,11],[91,184],[88,65],[89,11],[90,11],[337,185],[330,186],[329,11],[328,187],[327,11],[370,188],[372,189],[374,190],[436,191],[376,192],[379,193],[404,194],[383,194],[403,195],[385,196],[390,197],[391,198],[393,199],[400,200],[402,11],[401,201],[356,202],[422,203],[420,204],[421,205],[409,206],[410,204],[417,207],[408,208],[413,209],[423,11],[414,210],[419,211],[425,212],[424,213],[407,214],[415,215],[416,216],[411,217],[418,203],[412,218],[406,11],[428,219],[427,11],[426,11],[429,220],[81,11],[82,11],[13,11],[14,11],[16,11],[15,11],[2,11],[17,11],[18,11],[19,11],[20,11],[21,11],[22,11],[23,11],[24,11],[3,11],[25,11],[26,11],[4,11],[27,11],[31,11],[28,11],[29,11],[30,11],[32,11],[33,11],[34,11],[5,11],[35,11],[36,11],[37,11],[38,11],[6,11],[42,11],[39,11],[40,11],[41,11],[43,11],[7,11],[44,11],[49,11],[50,11],[45,11],[46,11],[47,11],[48,11],[8,11],[54,11],[51,11],[52,11],[53,11],[55,11],[9,11],[56,11],[57,11],[58,11],[60,11],[59,11],[61,11],[62,11],[10,11],[63,11],[64,11],[65,11],[11,11],[66,11],[67,11],[68,11],[69,11],[70,11],[1,11],[71,11],[72,11],[12,11],[76,11],[74,11],[79,11],[78,11],[73,11],[77,11],[75,11],[80,11],[119,221],[129,222],[118,221],[139,223],[110,224],[109,225],[138,201],[132,226],[137,227],[112,228],[126,229],[111,230],[135,231],[107,232],[106,201],[136,233],[108,234],[113,235],[114,11],[117,235],[104,11],[140,236],[130,237],[121,238],[122,239],[124,240],[120,241],[123,242],[133,201],[115,243],[116,244],[125,245],[105,246],[128,237],[127,235],[131,11],[134,247],[441,248],[442,249],[445,250],[444,251],[446,250],[443,251],[450,252],[447,253],[449,251],[451,251],[452,252],[448,254],[455,255],[456,249],[454,255],[457,256],[437,257],[458,258],[459,259],[460,249],[461,256],[465,260],[462,261],[463,253],[466,262],[464,263],[438,259],[467,256],[468,249],[469,256],[453,264],[440,265],[432,266],[433,11],[430,267]],"semanticDiagnosticsPerFile":[[469,[{"start":197,"length":10,"messageText":"Cannot find module 'recharts' or its corresponding type declarations.","category":1,"code":2307},{"start":13491,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":14766,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":23017,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":23116,"length":1,"messageText":"Parameter '_' implicitly has an 'any' type.","category":1,"code":7006},{"start":23119,"length":7,"messageText":"Parameter 'payload' implicitly has an 'any' type.","category":1,"code":7006},{"start":24579,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":24653,"length":1,"messageText":"Parameter '_' implicitly has an 'any' type.","category":1,"code":7006},{"start":24656,"length":7,"messageText":"Parameter 'payload' implicitly has an 'any' type.","category":1,"code":7006}]]],"affectedFilesPendingEmit":[472,473,475,474,470,476,478,477,471,441,442,445,444,446,443,450,447,449,451,452,448,455,456,454,457,437,458,459,460,461,465,462,463,466,464,438,467,468,469,453,440,432,433,430],"version":"5.9.3"} \ No newline at end of file +{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2023.d.ts","./node_modules/typescript/lib/lib.es2024.d.ts","./node_modules/typescript/lib/lib.esnext.d.ts","./node_modules/typescript/lib/lib.dom.d.ts","./node_modules/typescript/lib/lib.dom.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.es2023.array.d.ts","./node_modules/typescript/lib/lib.es2023.collection.d.ts","./node_modules/typescript/lib/lib.es2023.intl.d.ts","./node_modules/typescript/lib/lib.es2024.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2024.collection.d.ts","./node_modules/typescript/lib/lib.es2024.object.d.ts","./node_modules/typescript/lib/lib.es2024.promise.d.ts","./node_modules/typescript/lib/lib.es2024.regexp.d.ts","./node_modules/typescript/lib/lib.es2024.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2024.string.d.ts","./node_modules/typescript/lib/lib.esnext.array.d.ts","./node_modules/typescript/lib/lib.esnext.collection.d.ts","./node_modules/typescript/lib/lib.esnext.intl.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.promise.d.ts","./node_modules/typescript/lib/lib.esnext.decorators.d.ts","./node_modules/typescript/lib/lib.esnext.iterator.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.esnext.error.d.ts","./node_modules/typescript/lib/lib.esnext.sharedmemory.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/next/dist/styled-jsx/types/css.d.ts","./node_modules/@types/react/global.d.ts","./node_modules/csstype/index.d.ts","./node_modules/@types/prop-types/index.d.ts","./node_modules/@types/react/index.d.ts","./node_modules/next/dist/styled-jsx/types/index.d.ts","./node_modules/next/dist/styled-jsx/types/macro.d.ts","./node_modules/next/dist/styled-jsx/types/style.d.ts","./node_modules/next/dist/styled-jsx/types/global.d.ts","./node_modules/next/dist/shared/lib/amp.d.ts","./node_modules/next/amp.d.ts","./node_modules/@types/node/compatibility/disposable.d.ts","./node_modules/@types/node/compatibility/indexable.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/compatibility/index.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/file.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/filereader.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/next/dist/server/get-page-files.d.ts","./node_modules/@types/react/canary.d.ts","./node_modules/@types/react/experimental.d.ts","./node_modules/@types/react-dom/index.d.ts","./node_modules/@types/react-dom/canary.d.ts","./node_modules/@types/react-dom/experimental.d.ts","./node_modules/next/dist/compiled/webpack/webpack.d.ts","./node_modules/next/dist/server/config.d.ts","./node_modules/next/dist/lib/load-custom-routes.d.ts","./node_modules/next/dist/shared/lib/image-config.d.ts","./node_modules/next/dist/build/webpack/plugins/subresource-integrity-plugin.d.ts","./node_modules/next/dist/server/body-streams.d.ts","./node_modules/next/dist/server/future/route-kind.d.ts","./node_modules/next/dist/server/future/route-definitions/route-definition.d.ts","./node_modules/next/dist/server/future/route-matches/route-match.d.ts","./node_modules/next/dist/client/components/app-router-headers.d.ts","./node_modules/next/dist/server/request-meta.d.ts","./node_modules/next/dist/server/config-shared.d.ts","./node_modules/next/dist/server/base-http/index.d.ts","./node_modules/next/dist/server/api-utils/index.d.ts","./node_modules/next/dist/server/node-environment.d.ts","./node_modules/next/dist/server/require-hook.d.ts","./node_modules/next/dist/server/node-polyfill-crypto.d.ts","./node_modules/next/dist/lib/page-types.d.ts","./node_modules/next/dist/build/analysis/get-page-static-info.d.ts","./node_modules/next/dist/build/webpack/loaders/get-module-build-info.d.ts","./node_modules/next/dist/build/webpack/plugins/middleware-plugin.d.ts","./node_modules/next/dist/server/lib/revalidate.d.ts","./node_modules/next/dist/server/render-result.d.ts","./node_modules/next/dist/server/future/helpers/i18n-provider.d.ts","./node_modules/next/dist/server/web/next-url.d.ts","./node_modules/next/dist/compiled/@edge-runtime/cookies/index.d.ts","./node_modules/next/dist/server/web/spec-extension/cookies.d.ts","./node_modules/next/dist/server/web/spec-extension/request.d.ts","./node_modules/next/dist/server/web/spec-extension/fetch-event.d.ts","./node_modules/next/dist/server/web/spec-extension/response.d.ts","./node_modules/next/dist/server/web/types.d.ts","./node_modules/next/dist/lib/setup-exception-listeners.d.ts","./node_modules/next/dist/lib/constants.d.ts","./node_modules/next/dist/build/index.d.ts","./node_modules/next/dist/build/webpack/plugins/pages-manifest-plugin.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-regex.d.ts","./node_modules/next/dist/shared/lib/router/utils/route-matcher.d.ts","./node_modules/next/dist/shared/lib/router/utils/parse-url.d.ts","./node_modules/next/dist/server/base-http/node.d.ts","./node_modules/next/dist/server/font-utils.d.ts","./node_modules/next/dist/build/webpack/plugins/flight-manifest-plugin.d.ts","./node_modules/next/dist/server/future/route-modules/route-module.d.ts","./node_modules/next/dist/server/load-components.d.ts","./node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.d.ts","./node_modules/next/dist/build/webpack/plugins/next-font-manifest-plugin.d.ts","./node_modules/next/dist/server/future/route-definitions/locale-route-definition.d.ts","./node_modules/next/dist/server/future/route-definitions/pages-route-definition.d.ts","./node_modules/next/dist/shared/lib/mitt.d.ts","./node_modules/next/dist/client/with-router.d.ts","./node_modules/next/dist/client/router.d.ts","./node_modules/next/dist/client/route-loader.d.ts","./node_modules/next/dist/client/page-loader.d.ts","./node_modules/next/dist/shared/lib/bloom-filter.d.ts","./node_modules/next/dist/shared/lib/router/router.d.ts","./node_modules/next/dist/shared/lib/router-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/loadable.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/image-config-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-definitions/app-page-route-definition.d.ts","./node_modules/next/dist/shared/lib/modern-browserslist-target.d.ts","./node_modules/next/dist/shared/lib/constants.d.ts","./node_modules/next/dist/build/webpack/loaders/metadata/types.d.ts","./node_modules/next/dist/build/page-extensions-type.d.ts","./node_modules/next/dist/build/webpack/loaders/next-app-loader.d.ts","./node_modules/next/dist/server/lib/app-dir-module.d.ts","./node_modules/next/dist/server/response-cache/types.d.ts","./node_modules/next/dist/server/response-cache/index.d.ts","./node_modules/next/dist/server/lib/incremental-cache/index.d.ts","./node_modules/next/dist/client/components/hooks-server-context.d.ts","./node_modules/next/dist/client/components/static-generation-async-storage.external.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.d.ts","./node_modules/next/dist/server/async-storage/draft-mode-provider.d.ts","./node_modules/next/dist/server/web/spec-extension/adapters/headers.d.ts","./node_modules/next/dist/client/components/request-async-storage.external.d.ts","./node_modules/next/dist/server/app-render/create-error-handler.d.ts","./node_modules/next/dist/server/app-render/app-render.d.ts","./node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.d.ts","./node_modules/next/dist/shared/lib/amp-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.d.ts","./node_modules/@types/react/jsx-runtime.d.ts","./node_modules/next/dist/client/components/error-boundary.d.ts","./node_modules/next/dist/client/components/router-reducer/create-initial-router-state.d.ts","./node_modules/next/dist/client/components/app-router.d.ts","./node_modules/next/dist/client/components/layout-router.d.ts","./node_modules/next/dist/client/components/render-from-template-context.d.ts","./node_modules/next/dist/client/components/action-async-storage.external.d.ts","./node_modules/next/dist/build/webpack/plugins/app-build-manifest-plugin.d.ts","./node_modules/next/dist/build/utils.d.ts","./node_modules/next/dist/client/components/static-generation-bailout.d.ts","./node_modules/next/dist/client/components/static-generation-searchparams-bailout-provider.d.ts","./node_modules/next/dist/client/components/searchparams-bailout-proxy.d.ts","./node_modules/next/dist/client/components/not-found-boundary.d.ts","./node_modules/next/dist/server/app-render/rsc/preloads.d.ts","./node_modules/next/dist/server/app-render/rsc/taint.d.ts","./node_modules/next/dist/server/app-render/entry-base.d.ts","./node_modules/next/dist/build/templates/app-page.d.ts","./node_modules/next/dist/server/future/route-modules/app-page/module.d.ts","./node_modules/next/dist/server/app-render/types.d.ts","./node_modules/next/dist/client/components/router-reducer/fetch-server-response.d.ts","./node_modules/next/dist/client/components/router-reducer/router-reducer-types.d.ts","./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.d.ts","./node_modules/next/dist/server/future/route-modules/pages/vendored/contexts/entrypoints.d.ts","./node_modules/next/dist/server/future/route-modules/pages/module.compiled.d.ts","./node_modules/next/dist/build/templates/pages.d.ts","./node_modules/next/dist/server/future/route-modules/pages/module.d.ts","./node_modules/next/dist/server/render.d.ts","./node_modules/next/dist/server/future/route-definitions/pages-api-route-definition.d.ts","./node_modules/next/dist/server/future/route-matches/pages-api-route-match.d.ts","./node_modules/next/dist/server/future/route-matchers/route-matcher.d.ts","./node_modules/next/dist/server/future/route-matcher-providers/route-matcher-provider.d.ts","./node_modules/next/dist/server/future/route-matcher-managers/route-matcher-manager.d.ts","./node_modules/next/dist/server/future/normalizers/normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/locale-route-normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/request/pathname-normalizer.d.ts","./node_modules/next/dist/server/future/normalizers/request/suffix.d.ts","./node_modules/next/dist/server/future/normalizers/request/rsc.d.ts","./node_modules/next/dist/server/future/normalizers/request/prefix.d.ts","./node_modules/next/dist/server/future/normalizers/request/postponed.d.ts","./node_modules/next/dist/server/future/normalizers/request/prefetch-rsc.d.ts","./node_modules/next/dist/server/future/normalizers/request/next-data.d.ts","./node_modules/next/dist/server/base-server.d.ts","./node_modules/next/dist/server/image-optimizer.d.ts","./node_modules/next/dist/server/next-server.d.ts","./node_modules/next/dist/lib/coalesced-function.d.ts","./node_modules/next/dist/trace/types.d.ts","./node_modules/next/dist/trace/trace.d.ts","./node_modules/next/dist/trace/shared.d.ts","./node_modules/next/dist/trace/index.d.ts","./node_modules/next/dist/build/load-jsconfig.d.ts","./node_modules/next/dist/build/webpack-config.d.ts","./node_modules/next/dist/build/webpack/plugins/define-env-plugin.d.ts","./node_modules/next/dist/build/swc/index.d.ts","./node_modules/next/dist/server/dev/parse-version-info.d.ts","./node_modules/next/dist/server/dev/hot-reloader-types.d.ts","./node_modules/next/dist/telemetry/storage.d.ts","./node_modules/next/dist/server/lib/types.d.ts","./node_modules/next/dist/server/lib/router-utils/types.d.ts","./node_modules/next/dist/server/lib/render-server.d.ts","./node_modules/next/dist/server/lib/router-server.d.ts","./node_modules/next/dist/shared/lib/router/utils/path-match.d.ts","./node_modules/next/dist/server/lib/router-utils/filesystem.d.ts","./node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.d.ts","./node_modules/next/dist/server/lib/dev-bundler-service.d.ts","./node_modules/next/dist/server/dev/static-paths-worker.d.ts","./node_modules/next/dist/server/dev/next-dev-server.d.ts","./node_modules/next/dist/server/next.d.ts","./node_modules/next/dist/lib/metadata/types/alternative-urls-types.d.ts","./node_modules/next/dist/lib/metadata/types/extra-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-types.d.ts","./node_modules/next/dist/lib/metadata/types/manifest-types.d.ts","./node_modules/next/dist/lib/metadata/types/opengraph-types.d.ts","./node_modules/next/dist/lib/metadata/types/twitter-types.d.ts","./node_modules/next/dist/lib/metadata/types/metadata-interface.d.ts","./node_modules/next/types/index.d.ts","./node_modules/next/dist/shared/lib/html-context.shared-runtime.d.ts","./node_modules/@next/env/dist/index.d.ts","./node_modules/next/dist/shared/lib/utils.d.ts","./node_modules/next/dist/pages/_app.d.ts","./node_modules/next/app.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-cache.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate-path.d.ts","./node_modules/next/dist/server/web/spec-extension/revalidate-tag.d.ts","./node_modules/next/dist/server/web/spec-extension/unstable-no-store.d.ts","./node_modules/next/cache.d.ts","./node_modules/next/dist/shared/lib/runtime-config.external.d.ts","./node_modules/next/config.d.ts","./node_modules/next/dist/pages/_document.d.ts","./node_modules/next/document.d.ts","./node_modules/next/dist/shared/lib/dynamic.d.ts","./node_modules/next/dynamic.d.ts","./node_modules/next/dist/pages/_error.d.ts","./node_modules/next/error.d.ts","./node_modules/next/dist/shared/lib/head.d.ts","./node_modules/next/head.d.ts","./node_modules/next/dist/client/components/draft-mode.d.ts","./node_modules/next/dist/client/components/headers.d.ts","./node_modules/next/headers.d.ts","./node_modules/next/dist/shared/lib/get-img-props.d.ts","./node_modules/next/dist/client/image-component.d.ts","./node_modules/next/dist/shared/lib/image-external.d.ts","./node_modules/next/image.d.ts","./node_modules/next/dist/client/link.d.ts","./node_modules/next/link.d.ts","./node_modules/next/dist/client/components/redirect-status-code.d.ts","./node_modules/next/dist/client/components/redirect.d.ts","./node_modules/next/dist/client/components/not-found.d.ts","./node_modules/next/dist/client/components/navigation.d.ts","./node_modules/next/navigation.d.ts","./node_modules/next/router.d.ts","./node_modules/next/dist/client/script.d.ts","./node_modules/next/script.d.ts","./node_modules/next/dist/server/web/spec-extension/user-agent.d.ts","./node_modules/next/dist/compiled/@edge-runtime/primitives/url.d.ts","./node_modules/next/dist/server/web/spec-extension/image-response.d.ts","./node_modules/next/dist/compiled/@vercel/og/satori/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/emoji/index.d.ts","./node_modules/next/dist/compiled/@vercel/og/types.d.ts","./node_modules/next/server.d.ts","./node_modules/next/types/global.d.ts","./node_modules/next/types/compiled.d.ts","./node_modules/next/index.d.ts","./node_modules/next/image-types/global.d.ts","./next-env.d.ts","./node_modules/source-map-js/source-map.d.ts","./node_modules/postcss/lib/previous-map.d.ts","./node_modules/postcss/lib/input.d.ts","./node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/postcss/lib/declaration.d.ts","./node_modules/postcss/lib/root.d.ts","./node_modules/postcss/lib/warning.d.ts","./node_modules/postcss/lib/lazy-result.d.ts","./node_modules/postcss/lib/no-work-result.d.ts","./node_modules/postcss/lib/processor.d.ts","./node_modules/postcss/lib/result.d.ts","./node_modules/postcss/lib/document.d.ts","./node_modules/postcss/lib/rule.d.ts","./node_modules/postcss/lib/node.d.ts","./node_modules/postcss/lib/comment.d.ts","./node_modules/postcss/lib/container.d.ts","./node_modules/postcss/lib/at-rule.d.ts","./node_modules/postcss/lib/list.d.ts","./node_modules/postcss/lib/postcss.d.ts","./node_modules/postcss/lib/postcss.d.mts","./node_modules/tailwindcss/types/generated/corepluginlist.d.ts","./node_modules/tailwindcss/types/generated/colors.d.ts","./node_modules/tailwindcss/types/config.d.ts","./node_modules/tailwindcss/types/index.d.ts","./tailwind.config.ts","./node_modules/axios/index.d.ts","./src/lib/api.ts","./src/types/index.ts","./node_modules/next/dist/compiled/@next/font/dist/types.d.ts","./node_modules/next/dist/compiled/@next/font/dist/google/index.d.ts","./node_modules/next/font/google/index.d.ts","./src/app/layout.tsx","./src/app/page.tsx","./node_modules/lucide-react/dist/lucide-react.d.ts","./src/components/navbar.tsx","./src/app/allocation/page.tsx","./src/app/dashboard/page.tsx","./src/app/distribution/page.tsx","./src/app/distribution/_components/deliveryeditpage.tsx","./src/app/distribution/[id]/edit/page.tsx","./src/app/distribution/new/page.tsx","./src/app/fertilizer/page.tsx","./src/app/fertilizer/_components/fertilizereditpage.tsx","./src/app/fertilizer/[id]/edit/page.tsx","./src/app/fertilizer/_components/confirmspreadingmodal.tsx","./src/app/fertilizer/masters/page.tsx","./src/app/fertilizer/new/page.tsx","./src/app/fertilizer/spreading/page.tsx","./src/components/linkmodal.tsx","./src/app/fields/page.tsx","./src/app/fields/[id]/page.tsx","./src/app/fields/new/page.tsx","./src/app/import/page.tsx","./src/app/login/page.tsx","./src/app/mail/feedback/[token]/page.tsx","./src/app/mail/history/page.tsx","./src/app/mail/rules/page.tsx","./src/app/materials/_components/stockoverview.tsx","./src/app/materials/_components/stocktransactionform.tsx","./src/app/materials/page.tsx","./src/app/materials/_components/materialform.tsx","./src/app/materials/masters/page.tsx","./src/app/reports/page.tsx","./src/app/settings/password/page.tsx","./src/app/weather/page.tsx","./src/app/workrecords/page.tsx","./.next/types/app/layout.ts","./.next/types/app/page.ts","./.next/types/app/dashboard/page.ts","./.next/types/app/distribution/page.ts","./.next/types/app/distribution/[id]/edit/page.ts","./.next/types/app/fertilizer/page.ts","./.next/types/app/fertilizer/[id]/edit/page.ts","./.next/types/app/fertilizer/spreading/page.ts","./.next/types/app/materials/page.ts","./.next/types/app/weather/page.ts","./.next/types/app/workrecords/page.ts","./node_modules/@types/json5/index.d.ts"],"fileIdsList":[[99,145,355,442],[99,145,355,445],[99,145,355,443],[99,145,355,449],[99,145,355,447],[99,145,355,453],[99,145,355,437],[99,145,355,465],[99,145,355,438],[99,145,355,470],[99,145,355,471],[99,145,403,404],[99,145],[99,142,145],[99,144,145],[145],[99,145,150,178],[99,145,146,151,156,164,175,186],[99,145,146,147,156,164],[94,95,96,99,145],[99,145,148,187],[99,145,149,150,157,165],[99,145,150,175,183],[99,145,151,153,156,164],[99,144,145,152],[99,145,153,154],[99,145,155,156],[99,144,145,156],[99,145,156,157,158,175,186],[99,145,156,157,158,171,175,178],[99,145,153,156,159,164,175,186],[99,145,156,157,159,160,164,175,183,186],[99,145,159,161,175,183,186],[97,98,99,100,101,102,103,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192],[99,145,156,162],[99,145,163,186,191],[99,145,153,156,164,175],[99,145,165],[99,145,166],[99,144,145,167],[99,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192],[99,145,169],[99,145,170],[99,145,156,171,172],[99,145,171,173,187,189],[99,145,156,175,176,178],[99,145,177,178],[99,145,175,176],[99,145,178],[99,145,179],[99,142,145,175,180],[99,145,156,181,182],[99,145,181,182],[99,145,150,164,175,183],[99,145,184],[99,145,164,185],[99,145,159,170,186],[99,145,150,187],[99,145,175,188],[99,145,163,189],[99,145,190],[99,140,145],[99,140,145,156,158,167,175,178,186,189,191],[99,145,175,192],[87,99,145,197,198,199],[87,99,145,197,198],[87,99,145],[87,91,99,145,196,356,399],[87,91,99,145,195,356,399],[84,85,86,99,145],[92,99,145],[99,145,360],[99,145,362,363,364,365],[99,145,367],[99,145,202,211,217,219,356],[99,145,202,209,213,221,232],[99,145,211],[99,145,211,333],[99,145,266,281,297,402],[99,145,305],[99,145,194,202,211,215,220,232,264,266,269,289,299,356],[99,145,202,211,218,252,262,330,331,402],[99,145,218,402],[99,145,211,262,263,264,402],[99,145,211,218,252,402],[99,145,402],[99,145,218,219,402],[99,144,145,193],[87,99,145,282,283,284,302,303],[99,145,273],[87,99,145,196,282],[99,145,272,274,377],[87,99,145,282,283,300],[99,145,278,303,387,388],[87,99,145,282],[99,145,226,386],[99,144,145,193,226,272,273,274],[87,99,145,300,303],[99,145,300,302],[99,145,300,301,303],[99,144,145,193,212,221,269,270],[99,145,290],[87,99,145,203,380],[87,99,145,186,193],[87,99,145,218,250],[87,99,145,218],[99,145,248,253],[87,99,145,249,359],[99,145,434],[87,91,99,145,159,193,195,196,356,397,398],[99,145,356],[99,145,201],[99,145,349,350,351,352,353,354],[99,145,351],[87,99,145,249,282,359],[87,99,145,282,357,359],[87,99,145,282,359],[99,145,159,193,212,359],[99,145,159,193,210,221,222,240,271,275,276,299,300],[99,145,270,271,275,283,285,286,287,288,291,292,293,294,295,296,402],[87,99,145,170,193,211,240,242,244,269,299,356,402],[99,145,159,193,212,213,226,227,272],[99,145,159,193,211,213],[99,145,159,175,193,210,212,213],[99,145,159,170,186,193,201,203,210,211,212,213,218,221,222,223,233,234,236,239,240,242,243,244,268,269,300,308,310,313,315,318,320,321,322,356],[99,145,159,175,193],[99,145,202,203,204,210,356,359,402],[99,145,159,175,186,193,207,332,334,335,402],[99,145,170,186,193,207,210,212,230,234,236,237,238,242,269,313,323,325,330,345,346],[99,145,211,215,269],[99,145,210,211],[99,145,223,314],[99,145,316],[99,145,314],[99,145,316,319],[99,145,316,317],[99,145,206,207],[99,145,206,245],[99,145,206],[99,145,208,223,312],[99,145,311],[99,145,207,208],[99,145,208,309],[99,145,207],[99,145,299],[99,145,159,193,210,222,241,260,266,277,280,298,300],[99,145,254,255,256,257,258,259,278,279,303,357],[99,145,307],[99,145,159,193,210,222,241,246,304,306,308,356,359],[99,145,159,186,193,203,210,211,268],[99,145,265],[99,145,159,193,338,344],[99,145,233,268,359],[99,145,330,339,345,348],[99,145,159,215,330,338,340],[99,145,202,211,233,243,342],[99,145,159,193,211,218,243,326,336,337,341,342,343],[99,145,194,240,241,356,359],[99,145,159,170,186,193,208,210,212,215,220,221,222,230,233,234,236,237,238,239,242,244,268,269,310,323,324,359],[99,145,159,193,210,211,215,325,347],[99,145,159,193,212,221],[87,99,145,159,170,193,201,203,210,213,222,239,240,242,244,307,356,359],[99,145,159,170,186,193,205,208,209,212],[99,145,206,267],[99,145,159,193,206,221,222],[99,145,159,193,211,223],[99,145,159,193],[99,145,226],[99,145,225],[99,145,227],[99,145,211,224,226,230],[99,145,211,224,226],[99,145,159,193,205,211,212,227,228,229],[87,99,145,300,301,302],[99,145,261],[87,99,145,203],[87,99,145,236],[87,99,145,194,239,244,356,359],[99,145,203,380,381],[87,99,145,253],[87,99,145,170,186,193,201,247,249,251,252,359],[99,145,212,218,236],[99,145,170,193],[99,145,235],[87,99,145,157,159,170,193,201,253,262,356,357,358],[83,87,88,89,90,99,145,195,196,356,399],[99,145,150],[99,145,327,328,329],[99,145,327],[99,145,369],[99,145,371],[99,145,373],[99,145,435],[99,145,375],[99,145,378],[99,145,382],[91,93,99,145,356,361,366,368,370,372,374,376,379,383,385,390,391,393,400,401,402],[99,145,384],[99,145,389],[99,145,249],[99,145,392],[99,144,145,227,228,229,230,394,395,396,399],[99,145,193],[87,91,99,145,159,161,170,193,195,196,197,199,201,213,348,355,359,399],[99,145,421],[99,145,419,421],[99,145,410,418,419,420,422,424],[99,145,408],[99,145,411,416,421,424],[99,145,407,424],[99,145,411,412,415,416,417,424],[99,145,411,412,413,415,416,424],[99,145,408,409,410,411,412,416,417,418,420,421,422,424],[99,145,424],[99,145,406,408,409,410,411,412,413,415,416,417,418,419,420,421,422,423],[99,145,406,424],[99,145,411,413,414,416,417,424],[99,145,415,424],[99,145,416,417,421,424],[99,145,409,419],[99,145,426,427],[99,145,425,428],[99,112,116,145,186],[99,112,145,175,186],[99,107,145],[99,109,112,145,183,186],[99,145,164,183],[99,107,145,193],[99,109,112,145,164,186],[99,104,105,108,111,145,156,175,186],[99,112,119,145],[99,104,110,145],[99,112,133,134,145],[99,108,112,145,178,186,193],[99,133,145,193],[99,106,107,145,193],[99,112,145],[99,106,107,108,109,110,111,112,113,114,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,134,135,136,137,138,139,145],[99,112,127,145],[99,112,119,120,145],[99,110,112,120,121,145],[99,111,145],[99,104,107,112,145],[99,112,116,120,121,145],[99,116,145],[99,110,112,115,145,186],[99,104,109,112,119,145],[99,145,175],[99,107,112,133,145,191,193],[87,99,145,432,433,439,440],[87,99,145,390,432,439,440],[99,145,444],[87,99,145,390,432,433,439,440],[99,145,448],[87,99,145,432,433,439],[87,99,145,390,432,433,439,440,454],[87,99,145,432,439,440],[99,145,403,436],[87,99,145,390,432,439],[87,99,145,390],[99,145,433,439],[87,99,145,433,439],[87,99,145,390,432,433,439,440,466],[87,99,145,390,432,433,439,440,463,464],[87,99,145,439],[99,145,390,432,439],[99,145,431],[99,145,429]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"27bdc30a0e32783366a5abeda841bc22757c1797de8681bbe81fbc735eeb1c10","impliedFormat":1},{"version":"8fd575e12870e9944c7e1d62e1f5a73fcf23dd8d3a321f2a2c74c20d022283fe","impliedFormat":1},{"version":"2ab096661c711e4a81cc464fa1e6feb929a54f5340b46b0a07ac6bbf857471f0","impliedFormat":1},{"version":"080941d9f9ff9307f7e27a83bcd888b7c8270716c39af943532438932ec1d0b9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2e80ee7a49e8ac312cc11b77f1475804bee36b3b2bc896bead8b6e1266befb43","affectsGlobalScope":true,"impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"df83c2a6c73228b625b0beb6669c7ee2a09c914637e2d35170723ad49c0f5cd4","affectsGlobalScope":true,"impliedFormat":1},{"version":"436aaf437562f276ec2ddbee2f2cdedac7664c1e4c1d2c36839ddd582eeb3d0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e3c06ea092138bf9fa5e874a1fdbc9d54805d074bee1de31b99a11e2fec239d","affectsGlobalScope":true,"impliedFormat":1},{"version":"87dc0f382502f5bbce5129bdc0aea21e19a3abbc19259e0b43ae038a9fc4e326","affectsGlobalScope":true,"impliedFormat":1},{"version":"b1cb28af0c891c8c96b2d6b7be76bd394fddcfdb4709a20ba05a7c1605eea0f9","affectsGlobalScope":true,"impliedFormat":1},{"version":"2fef54945a13095fdb9b84f705f2b5994597640c46afeb2ce78352fab4cb3279","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac77cb3e8c6d3565793eb90a8373ee8033146315a3dbead3bde8db5eaf5e5ec6","affectsGlobalScope":true,"impliedFormat":1},{"version":"56e4ed5aab5f5920980066a9409bfaf53e6d21d3f8d020c17e4de584d29600ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ece9f17b3866cc077099c73f4983bddbcb1dc7ddb943227f1ec070f529dedd1","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a6282c8827e4b9a95f4bf4f5c205673ada31b982f50572d27103df8ceb8013c","affectsGlobalScope":true,"impliedFormat":1},{"version":"1c9319a09485199c1f7b0498f2988d6d2249793ef67edda49d1e584746be9032","affectsGlobalScope":true,"impliedFormat":1},{"version":"e3a2a0cee0f03ffdde24d89660eba2685bfbdeae955a6c67e8c4c9fd28928eeb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811c71eee4aa0ac5f7adf713323a5c41b0cf6c4e17367a34fbce379e12bbf0a4","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"60037901da1a425516449b9a20073aa03386cce92f7a1fd902d7602be3a7c2e9","affectsGlobalScope":true,"impliedFormat":1},{"version":"d4b1d2c51d058fc21ec2629fff7a76249dec2e36e12960ea056e3ef89174080f","affectsGlobalScope":true,"impliedFormat":1},{"version":"22adec94ef7047a6c9d1af3cb96be87a335908bf9ef386ae9fd50eeb37f44c47","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"73f78680d4c08509933daf80947902f6ff41b6230f94dd002ae372620adb0f60","affectsGlobalScope":true,"impliedFormat":1},{"version":"c5239f5c01bcfa9cd32f37c496cf19c61d69d37e48be9de612b541aac915805b","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"0990a7576222f248f0a3b888adcb7389f957928ce2afb1cd5128169086ff4d29","impliedFormat":1},{"version":"eb5b19b86227ace1d29ea4cf81387279d04bb34051e944bc53df69f58914b788","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac51dd7d31333793807a6abaa5ae168512b6131bd41d9c5b98477fc3b7800f9f","impliedFormat":1},{"version":"87d9d29dbc745f182683f63187bf3d53fd8673e5fca38ad5eaab69798ed29fbc","impliedFormat":1},{"version":"035312d4945d13efa134ae482f6dc56a1a9346f7ac3be7ccbad5741058ce87f3","affectsGlobalScope":true,"impliedFormat":1},{"version":"cc69795d9954ee4ad57545b10c7bf1a7260d990231b1685c147ea71a6faa265c","impliedFormat":1},{"version":"8bc6c94ff4f2af1f4023b7bb2379b08d3d7dd80c698c9f0b07431ea16101f05f","impliedFormat":1},{"version":"1b61d259de5350f8b1e5db06290d31eaebebc6baafd5f79d314b5af9256d7153","impliedFormat":1},{"version":"57194e1f007f3f2cbef26fa299d4c6b21f4623a2eddc63dfeef79e38e187a36e","impliedFormat":1},{"version":"0f6666b58e9276ac3a38fdc80993d19208442d6027ab885580d93aec76b4ef00","impliedFormat":1},{"version":"05fd364b8ef02fb1e174fbac8b825bdb1e5a36a016997c8e421f5fab0a6da0a0","impliedFormat":1},{"version":"70521b6ab0dcba37539e5303104f29b721bfb2940b2776da4cc818c07e1fefc1","affectsGlobalScope":true,"impliedFormat":1},{"version":"ab41ef1f2cdafb8df48be20cd969d875602483859dc194e9c97c8a576892c052","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"21d819c173c0cf7cc3ce57c3276e77fd9a8a01d35a06ad87158781515c9a438a","impliedFormat":1},{"version":"98cffbf06d6bab333473c70a893770dbe990783904002c4f1a960447b4b53dca","affectsGlobalScope":true,"impliedFormat":1},{"version":"ba481bca06f37d3f2c137ce343c7d5937029b2468f8e26111f3c9d9963d6568d","affectsGlobalScope":true,"impliedFormat":1},{"version":"6d9ef24f9a22a88e3e9b3b3d8c40ab1ddb0853f1bfbd5c843c37800138437b61","affectsGlobalScope":true,"impliedFormat":1},{"version":"1db0b7dca579049ca4193d034d835f6bfe73096c73663e5ef9a0b5779939f3d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"f26b11d8d8e4b8028f1c7d618b22274c892e4b0ef5b3678a8ccbad85419aef43","affectsGlobalScope":true,"impliedFormat":1},{"version":"5929864ce17fba74232584d90cb721a89b7ad277220627cc97054ba15a98ea8f","impliedFormat":1},{"version":"763fe0f42b3d79b440a9b6e51e9ba3f3f91352469c1e4b3b67bfa4ff6352f3f4","impliedFormat":1},{"version":"25c8056edf4314820382a5fdb4bb7816999acdcb929c8f75e3f39473b87e85bc","impliedFormat":1},{"version":"c464d66b20788266e5353b48dc4aa6bc0dc4a707276df1e7152ab0c9ae21fad8","impliedFormat":1},{"version":"78d0d27c130d35c60b5e5566c9f1e5be77caf39804636bc1a40133919a949f21","impliedFormat":1},{"version":"c6fd2c5a395f2432786c9cb8deb870b9b0e8ff7e22c029954fabdd692bff6195","impliedFormat":1},{"version":"1d6e127068ea8e104a912e42fc0a110e2aa5a66a356a917a163e8cf9a65e4a75","impliedFormat":1},{"version":"5ded6427296cdf3b9542de4471d2aa8d3983671d4cac0f4bf9c637208d1ced43","impliedFormat":1},{"version":"7f182617db458e98fc18dfb272d40aa2fff3a353c44a89b2c0ccb3937709bfb5","impliedFormat":1},{"version":"cadc8aced301244057c4e7e73fbcae534b0f5b12a37b150d80e5a45aa4bebcbd","impliedFormat":1},{"version":"385aab901643aa54e1c36f5ef3107913b10d1b5bb8cbcd933d4263b80a0d7f20","impliedFormat":1},{"version":"9670d44354bab9d9982eca21945686b5c24a3f893db73c0dae0fd74217a4c219","impliedFormat":1},{"version":"0b8a9268adaf4da35e7fa830c8981cfa22adbbe5b3f6f5ab91f6658899e657a7","impliedFormat":1},{"version":"11396ed8a44c02ab9798b7dca436009f866e8dae3c9c25e8c1fbc396880bf1bb","impliedFormat":1},{"version":"ba7bc87d01492633cb5a0e5da8a4a42a1c86270e7b3d2dea5d156828a84e4882","impliedFormat":1},{"version":"4893a895ea92c85345017a04ed427cbd6a1710453338df26881a6019432febdd","impliedFormat":1},{"version":"c21dc52e277bcfc75fac0436ccb75c204f9e1b3fa5e12729670910639f27343e","impliedFormat":1},{"version":"13f6f39e12b1518c6650bbb220c8985999020fe0f21d818e28f512b7771d00f9","impliedFormat":1},{"version":"9b5369969f6e7175740bf51223112ff209f94ba43ecd3bb09eefff9fd675624a","impliedFormat":1},{"version":"4fe9e626e7164748e8769bbf74b538e09607f07ed17c2f20af8d680ee49fc1da","impliedFormat":1},{"version":"24515859bc0b836719105bb6cc3d68255042a9f02a6022b3187948b204946bd2","impliedFormat":1},{"version":"ea0148f897b45a76544ae179784c95af1bd6721b8610af9ffa467a518a086a43","impliedFormat":1},{"version":"24c6a117721e606c9984335f71711877293a9651e44f59f3d21c1ea0856f9cc9","impliedFormat":1},{"version":"dd3273ead9fbde62a72949c97dbec2247ea08e0c6952e701a483d74ef92d6a17","impliedFormat":1},{"version":"405822be75ad3e4d162e07439bac80c6bcc6dbae1929e179cf467ec0b9ee4e2e","impliedFormat":1},{"version":"0db18c6e78ea846316c012478888f33c11ffadab9efd1cc8bcc12daded7a60b6","impliedFormat":1},{"version":"e61be3f894b41b7baa1fbd6a66893f2579bfad01d208b4ff61daef21493ef0a8","impliedFormat":1},{"version":"bd0532fd6556073727d28da0edfd1736417a3f9f394877b6d5ef6ad88fba1d1a","impliedFormat":1},{"version":"89167d696a849fce5ca508032aabfe901c0868f833a8625d5a9c6e861ef935d2","impliedFormat":1},{"version":"615ba88d0128ed16bf83ef8ccbb6aff05c3ee2db1cc0f89ab50a4939bfc1943f","impliedFormat":1},{"version":"a4d551dbf8746780194d550c88f26cf937caf8d56f102969a110cfaed4b06656","impliedFormat":1},{"version":"8bd86b8e8f6a6aa6c49b71e14c4ffe1211a0e97c80f08d2c8cc98838006e4b88","impliedFormat":1},{"version":"317e63deeb21ac07f3992f5b50cdca8338f10acd4fbb7257ebf56735bf52ab00","impliedFormat":1},{"version":"4732aec92b20fb28c5fe9ad99521fb59974289ed1e45aecb282616202184064f","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"bf67d53d168abc1298888693338cb82854bdb2e69ef83f8a0092093c2d562107","impliedFormat":1},{"version":"b52476feb4a0cbcb25e5931b930fc73cb6643fb1a5060bf8a3dda0eeae5b4b68","affectsGlobalScope":true,"impliedFormat":1},{"version":"e2677634fe27e87348825bb041651e22d50a613e2fdf6a4a3ade971d71bac37e","impliedFormat":1},{"version":"7394959e5a741b185456e1ef5d64599c36c60a323207450991e7a42e08911419","impliedFormat":1},{"version":"8c0bcd6c6b67b4b503c11e91a1fb91522ed585900eab2ab1f61bba7d7caa9d6f","impliedFormat":1},{"version":"8cd19276b6590b3ebbeeb030ac271871b9ed0afc3074ac88a94ed2449174b776","affectsGlobalScope":true,"impliedFormat":1},{"version":"696eb8d28f5949b87d894b26dc97318ef944c794a9a4e4f62360cd1d1958014b","impliedFormat":1},{"version":"3f8fa3061bd7402970b399300880d55257953ee6d3cd408722cb9ac20126460c","impliedFormat":1},{"version":"35ec8b6760fd7138bbf5809b84551e31028fb2ba7b6dc91d95d098bf212ca8b4","affectsGlobalScope":true,"impliedFormat":1},{"version":"5524481e56c48ff486f42926778c0a3cce1cc85dc46683b92b1271865bcf015a","impliedFormat":1},{"version":"68bd56c92c2bd7d2339457eb84d63e7de3bd56a69b25f3576e1568d21a162398","affectsGlobalScope":true,"impliedFormat":1},{"version":"3e93b123f7c2944969d291b35fed2af79a6e9e27fdd5faa99748a51c07c02d28","impliedFormat":1},{"version":"9d19808c8c291a9010a6c788e8532a2da70f811adb431c97520803e0ec649991","impliedFormat":1},{"version":"87aad3dd9752067dc875cfaa466fc44246451c0c560b820796bdd528e29bef40","impliedFormat":1},{"version":"4aacb0dd020eeaef65426153686cc639a78ec2885dc72ad220be1d25f1a439df","impliedFormat":1},{"version":"f0bd7e6d931657b59605c44112eaf8b980ba7f957a5051ed21cb93d978cf2f45","impliedFormat":1},{"version":"8db0ae9cb14d9955b14c214f34dae1b9ef2baee2fe4ce794a4cd3ac2531e3255","affectsGlobalScope":true,"impliedFormat":1},{"version":"15fc6f7512c86810273af28f224251a5a879e4261b4d4c7e532abfbfc3983134","impliedFormat":1},{"version":"58adba1a8ab2d10b54dc1dced4e41f4e7c9772cbbac40939c0dc8ce2cdb1d442","impliedFormat":1},{"version":"4b34bdb6f29a4347b7db9c0f8622686035fe25adb1c9e927acd8d22a2cbb6ccb","impliedFormat":1},{"version":"714435130b9015fae551788df2a88038471a5a11eb471f27c4ede86552842bc9","impliedFormat":1},{"version":"855cd5f7eb396f5f1ab1bc0f8580339bff77b68a770f84c6b254e319bbfd1ac7","impliedFormat":1},{"version":"5650cf3dace09e7c25d384e3e6b818b938f68f4e8de96f52d9c5a1b3db068e86","impliedFormat":1},{"version":"1354ca5c38bd3fd3836a68e0f7c9f91f172582ba30ab15bb8c075891b91502b7","affectsGlobalScope":true,"impliedFormat":1},{"version":"27fdb0da0daf3b337c5530c5f266efe046a6ceb606e395b346974e4360c36419","impliedFormat":1},{"version":"2d2fcaab481b31a5882065c7951255703ddbe1c0e507af56ea42d79ac3911201","impliedFormat":1},{"version":"a192fe8ec33f75edbc8d8f3ed79f768dfae11ff5735e7fe52bfa69956e46d78d","impliedFormat":1},{"version":"ca867399f7db82df981d6915bcbb2d81131d7d1ef683bc782b59f71dda59bc85","affectsGlobalScope":true,"impliedFormat":1},{"version":"0e456fd5b101271183d99a9087875a282323e3a3ff0d7bcf1881537eaa8b8e63","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e043a1bc8fbf2a255bccf9bf27e0f1caf916c3b0518ea34aa72357c0afd42ec","impliedFormat":1},{"version":"b4f70ec656a11d570e1a9edce07d118cd58d9760239e2ece99306ee9dfe61d02","impliedFormat":1},{"version":"3bc2f1e2c95c04048212c569ed38e338873f6a8593930cf5a7ef24ffb38fc3b6","impliedFormat":1},{"version":"6e70e9570e98aae2b825b533aa6292b6abd542e8d9f6e9475e88e1d7ba17c866","impliedFormat":1},{"version":"f9d9d753d430ed050dc1bf2667a1bab711ccbb1c1507183d794cc195a5b085cc","impliedFormat":1},{"version":"9eece5e586312581ccd106d4853e861aaaa1a39f8e3ea672b8c3847eedd12f6e","impliedFormat":1},{"version":"47ab634529c5955b6ad793474ae188fce3e6163e3a3fb5edd7e0e48f14435333","impliedFormat":1},{"version":"37ba7b45141a45ce6e80e66f2a96c8a5ab1bcef0fc2d0f56bb58df96ec67e972","impliedFormat":1},{"version":"45650f47bfb376c8a8ed39d4bcda5902ab899a3150029684ee4c10676d9fbaee","impliedFormat":1},{"version":"fad4e3c207fe23922d0b2d06b01acbfb9714c4f2685cf80fd384c8a100c82fd0","affectsGlobalScope":true,"impliedFormat":1},{"version":"74cf591a0f63db318651e0e04cb55f8791385f86e987a67fd4d2eaab8191f730","impliedFormat":1},{"version":"5eab9b3dc9b34f185417342436ec3f106898da5f4801992d8ff38ab3aff346b5","impliedFormat":1},{"version":"12ed4559eba17cd977aa0db658d25c4047067444b51acfdcbf38470630642b23","affectsGlobalScope":true,"impliedFormat":1},{"version":"f3ffabc95802521e1e4bcba4c88d8615176dc6e09111d920c7a213bdda6e1d65","impliedFormat":1},{"version":"ddc734b4fae82a01d247e9e342d020976640b5e93b4e9b3a1e30e5518883a060","impliedFormat":1},{"version":"ae56f65caf3be91108707bd8dfbccc2a57a91feb5daabf7165a06a945545ed26","impliedFormat":1},{"version":"a136d5de521da20f31631a0a96bf712370779d1c05b7015d7019a9b2a0446ca9","impliedFormat":1},{"version":"c3b41e74b9a84b88b1dca61ec39eee25c0dbc8e7d519ba11bb070918cfacf656","affectsGlobalScope":true,"impliedFormat":1},{"version":"4737a9dc24d0e68b734e6cfbcea0c15a2cfafeb493485e27905f7856988c6b29","affectsGlobalScope":true,"impliedFormat":1},{"version":"36d8d3e7506b631c9582c251a2c0b8a28855af3f76719b12b534c6edf952748d","impliedFormat":1},{"version":"1ca69210cc42729e7ca97d3a9ad48f2e9cb0042bada4075b588ae5387debd318","impliedFormat":1},{"version":"f5ebe66baaf7c552cfa59d75f2bfba679f329204847db3cec385acda245e574e","impliedFormat":1},{"version":"ed59add13139f84da271cafd32e2171876b0a0af2f798d0c663e8eeb867732cf","affectsGlobalScope":true,"impliedFormat":1},{"version":"05db535df8bdc30d9116fe754a3473d1b6479afbc14ae8eb18b605c62677d518","impliedFormat":1},{"version":"b1810689b76fd473bd12cc9ee219f8e62f54a7d08019a235d07424afbf074d25","impliedFormat":1},{"version":"8caa5c86be1b793cd5f599e27ecb34252c41e011980f7d61ae4989a149ff6ccc","impliedFormat":1},{"version":"f9fd93190acb1ffe0bc0fb395df979452f8d625071e9ffc8636e4dfb86ab2508","impliedFormat":1},{"version":"5f41fd8732a89e940c58ce22206e3df85745feb8983e2b4c6257fb8cbb118493","impliedFormat":1},{"version":"17ed71200119e86ccef2d96b73b02ce8854b76ad6bd21b5021d4269bec527b5f","impliedFormat":1},{"version":"1cfa8647d7d71cb03847d616bd79320abfc01ddea082a49569fda71ac5ece66b","impliedFormat":1},{"version":"bb7a61dd55dc4b9422d13da3a6bb9cc5e89be888ef23bbcf6558aa9726b89a1c","impliedFormat":1},{"version":"db6d2d9daad8a6d83f281af12ce4355a20b9a3e71b82b9f57cddcca0a8964a96","impliedFormat":1},{"version":"cfe4ef4710c3786b6e23dae7c086c70b4f4835a2e4d77b75d39f9046106e83d3","impliedFormat":1},{"version":"cbea99888785d49bb630dcbb1613c73727f2b5a2cf02e1abcaab7bcf8d6bf3c5","impliedFormat":1},{"version":"98817124fd6c4f60e0b935978c207309459fb71ab112cf514f26f333bf30830e","impliedFormat":1},{"version":"a86f82d646a739041d6702101afa82dcb935c416dd93cbca7fd754fd0282ce1f","impliedFormat":1},{"version":"2dad084c67e649f0f354739ec7df7c7df0779a28a4f55c97c6b6883ae850d1ce","impliedFormat":1},{"version":"fa5bbc7ab4130dd8cdc55ea294ec39f76f2bc507a0f75f4f873e38631a836ca7","impliedFormat":1},{"version":"df45ca1176e6ac211eae7ddf51336dc075c5314bc5c253651bae639defd5eec5","impliedFormat":1},{"version":"cf86de1054b843e484a3c9300d62fbc8c97e77f168bbffb131d560ca0474d4a8","impliedFormat":1},{"version":"a28e69b82de8008d23b88974aeb6fba7195d126c947d0da43c16e6bc2f719f9f","impliedFormat":1},{"version":"528637e771ee2e808390d46a591eaef375fa4b9c99b03749e22b1d2e868b1b7c","impliedFormat":1},{"version":"6faf62b01899a492bf7f9a69318b4e6b83057a6cd32d2b943550a5624309577f","impliedFormat":1},{"version":"fc46f093d1b754a8e3e34a071a1dd402f42003927676757a9a10c6f1d195a35b","impliedFormat":1},{"version":"b7b3258e8d47333721f9d4c287361d773f8fa88e52d1148812485d9fc06d2577","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"a9af0e608929aaf9ce96bd7a7b99c9360636c31d73670e4af09a09950df97841","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"c86fe861cf1b4c46a0fb7d74dffe596cf679a2e5e8b1456881313170f092e3fa","impliedFormat":1},{"version":"e8db7e1cf8a10b4bbb58002ce9e7e73493abac738a09855c499fb56f773a729c","impliedFormat":1},{"version":"47e5af2a841356a961f815e7c55d72554db0c11b4cba4d0caab91f8717846a94","impliedFormat":1},{"version":"4c91cc1ab59b55d880877ccf1999ded0bb2ebc8e3a597c622962d65bf0e76be8","impliedFormat":1},{"version":"fa1ea09d3e073252eccff2f6630a4ce5633cc2ff963ba672dd8fd6783108ea83","impliedFormat":1},{"version":"f5f541902bf7ae0512a177295de9b6bcd6809ea38307a2c0a18bfca72212f368","impliedFormat":1},{"version":"e8da637cbd6ed1cf6c36e9424f6bcee4515ca2c677534d4006cbd9a05f930f0c","impliedFormat":1},{"version":"ca1b882a105a1972f82cc58e3be491e7d750a1eb074ffd13b198269f57ed9e1b","impliedFormat":1},{"version":"c9d71f340f1a4576cd2a572f73a54dc7212161fa172dfe3dea64ac627c8fcb50","impliedFormat":1},{"version":"3867ca0e9757cc41e04248574f4f07b8f9e3c0c2a796a5eb091c65bfd2fc8bdb","impliedFormat":1},{"version":"6c66f6f7d9ff019a644ff50dd013e6bf59be4bf389092948437efa6b77dc8f9a","impliedFormat":1},{"version":"4e10622f89fea7b05dd9b52fb65e1e2b5cbd96d4cca3d9e1a60bb7f8a9cb86a1","impliedFormat":1},{"version":"ef2d1bd01d144d426b72db3744e7a6b6bb518a639d5c9c8d86438fb75a3b1934","impliedFormat":1},{"version":"b9750fe7235da7d8bf75cb171bf067b7350380c74271d3f80f49aea7466b55b5","impliedFormat":1},{"version":"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855","impliedFormat":1},{"version":"2694e85d282be0138d8e6f7e43c5c165aa1f40e0358489f1d7babf388b5fd368","impliedFormat":1},{"version":"e9e731cc4d5767a85639ad3d203d4a54b0038177b91819badee8c7efcf23a743","impliedFormat":1},{"version":"ac60bbee0d4235643cc52b57768b22de8c257c12bd8c2039860540cab1fa1d82","impliedFormat":1},{"version":"973b59a17aaa817eb205baf6c132b83475a5c0a44e8294a472af7793b1817e89","impliedFormat":1},{"version":"ada39cbb2748ab2873b7835c90c8d4620723aedf323550e8489f08220e477c7f","impliedFormat":1},{"version":"6e5f5cee603d67ee1ba6120815497909b73399842254fc1e77a0d5cdc51d8c9c","impliedFormat":1},{"version":"f79e0681538ef94c273a46bb1a073b4fe9fdc93ef7f40cc2c3abd683b85f51fc","impliedFormat":1},{"version":"70f3814c457f54a7efe2d9ce9d2686de9250bb42eb7f4c539bd2280a42e52d33","impliedFormat":1},{"version":"17ace83a5bea3f1da7e0aef7aab0f52bca22619e243537a83a89352a611b837d","impliedFormat":1},{"version":"ef61792acbfa8c27c9bd113f02731e66229f7d3a169e3c1993b508134f1a58e0","impliedFormat":1},{"version":"afcb759e8e3ad6549d5798820697002bc07bdd039899fad0bf522e7e8a9f5866","impliedFormat":1},{"version":"f6404e7837b96da3ea4d38c4f1a3812c96c9dcdf264e93d5bdb199f983a3ef4b","impliedFormat":1},{"version":"c5426dbfc1cf90532f66965a7aa8c1136a78d4d0f96d8180ecbfc11d7722f1a5","impliedFormat":1},{"version":"65a15fc47900787c0bd18b603afb98d33ede930bed1798fc984d5ebb78b26cf9","impliedFormat":1},{"version":"9d202701f6e0744adb6314d03d2eb8fc994798fc83d91b691b75b07626a69801","impliedFormat":1},{"version":"de9d2df7663e64e3a91bf495f315a7577e23ba088f2949d5ce9ec96f44fba37d","impliedFormat":1},{"version":"c7af78a2ea7cb1cd009cfb5bdb48cd0b03dad3b54f6da7aab615c2e9e9d570c5","impliedFormat":1},{"version":"1dc574e42493e8bf9bb37be44d9e38c5bd7bbc04f884e5e58b4d69636cb192b3","impliedFormat":1},{"version":"9deab571c42ed535c17054f35da5b735d93dc454d83c9a5330ecc7a4fb184e9e","affectsGlobalScope":true,"impliedFormat":1},{"version":"db01d18853469bcb5601b9fc9826931cc84cc1a1944b33cad76fd6f1e3d8c544","affectsGlobalScope":true,"impliedFormat":1},{"version":"dba114fb6a32b355a9cfc26ca2276834d72fe0e94cd2c3494005547025015369","impliedFormat":1},{"version":"903e299a28282fa7b714586e28409ed73c3b63f5365519776bf78e8cf173db36","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa6c12a7c0f6b84d512f200690bfc74819e99efae69e4c95c4cd30f6884c526e","impliedFormat":1},{"version":"f1c32f9ce9c497da4dc215c3bc84b722ea02497d35f9134db3bb40a8d918b92b","impliedFormat":1},{"version":"b73c319af2cc3ef8f6421308a250f328836531ea3761823b4cabbd133047aefa","affectsGlobalScope":true,"impliedFormat":1},{"version":"e433b0337b8106909e7953015e8fa3f2d30797cea27141d1c5b135365bb975a6","impliedFormat":1},{"version":"dd3900b24a6a8745efeb7ad27629c0f8a626470ac229c1d73f1fe29d67e44dca","impliedFormat":1},{"version":"ddff7fc6edbdc5163a09e22bf8df7bef75f75369ebd7ecea95ba55c4386e2441","impliedFormat":1},{"version":"106c6025f1d99fd468fd8bf6e5bda724e11e5905a4076c5d29790b6c3745e50c","impliedFormat":1},{"version":"ec29be0737d39268696edcec4f5e97ce26f449fa9b7afc2f0f99a86def34a418","impliedFormat":1},{"version":"4d4481ad9bd6783871db9d06eedc06214b24587c1d94b1d3cbe2e99d4d73d665","impliedFormat":1},{"version":"ec6cba1c02c675e4dd173251b156792e8d3b0c816af6d6ad93f1a55d674591aa","impliedFormat":1},{"version":"b620391fe8060cf9bedc176a4d01366e6574d7a71e0ac0ab344a4e76576fcbb8","impliedFormat":1},{"version":"41acd266e78e6880cdf79bacac97be0cf597e8d2b9ad8e27704ad43426eb8f2a","impliedFormat":1},{"version":"e15d3c84d5077bb4a3adee4c791022967b764dc41cb8fa3cfa44d4379b2c95f5","impliedFormat":1},{"version":"78244a2a8ab1080e0dd8fc3633c204c9a4be61611d19912f4b157f7ef7367049","impliedFormat":1},{"version":"e1fc1a1045db5aa09366be2b330e4ce391550041fc3e925f60998ca0b647aa97","impliedFormat":1},{"version":"b3751ab2273a6abc16e56cb61246db847fb0c6d4b71dad6c04761ca0c6c99fc3","impliedFormat":1},{"version":"43ba4f2fa8c698f5c304d21a3ef596741e8e85a810b7c1f9b692653791d8d97a","impliedFormat":1},{"version":"abf9bfffaa0bb56e8afa78b8fabd0ba5923803444b92e87577a90f3537404526","impliedFormat":1},{"version":"3556cfbab7b43da96d15a442ddbb970e1f2fc97876d055b6555d86d7ac57dae5","impliedFormat":1},{"version":"437751e0352c6e924ddf30e90849f1d9eb00ca78c94d58d6a37202ec84eb8393","impliedFormat":1},{"version":"48e8af7fdb2677a44522fd185d8c87deff4d36ee701ea003c6c780b1407a1397","impliedFormat":1},{"version":"606e6f841ba9667de5d83ca458449f0ed8c511ba635f753eaa731e532dea98c7","impliedFormat":1},{"version":"d860ce4d43c27a105290c6fdf75e13df0d40e3a4e079a3c47620255b0e396c64","impliedFormat":1},{"version":"b064dd7dd6aa5efef7e0cc056fed33fc773ea39d1e43452ee18a81d516fb762c","impliedFormat":1},{"version":"2e4f37ffe8862b14d8e24ae8763daaa8340c0df0b859d9a9733def0eee7562d9","impliedFormat":1},{"version":"13283350547389802aa35d9f2188effaeac805499169a06ef5cd77ce2a0bd63f","impliedFormat":1},{"version":"680793958f6a70a44c8d9ae7d46b7a385361c69ac29dcab3ed761edce1c14ab8","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"42c169fb8c2d42f4f668c624a9a11e719d5d07dacbebb63cbcf7ef365b0a75b3","impliedFormat":1},{"version":"3d1a2f2bcad11d489f6502087379ad28a773461e1dca80297d2219e89d778a31","impliedFormat":1},{"version":"ccccbca40b0615f5b14902e7d960f0c7a96b75d9ea6a20d9c1a88f5874fe55e5","impliedFormat":1},{"version":"5fe23bd829e6be57d41929ac374ee9551ccc3c44cee893167b7b5b77be708014","impliedFormat":1},{"version":"8755047a16970243683d857754a93863da6fed6bf1737d195f55444c667ae8ee","impliedFormat":1},{"version":"438c7513b1df91dcef49b13cd7a1c4720f91a36e88c1df731661608b7c055f10","impliedFormat":1},{"version":"ad444a874f011d3a797f1a41579dbfcc6b246623f49c20009f60e211dbd5315e","impliedFormat":1},{"version":"361e2b13c6765d7f85bb7600b48fde782b90c7c41105b7dab1f6e7871071ba20","impliedFormat":1},{"version":"1f5730d4bbb923addc1eb475056b464327d5720702481c799a0c0a36a4f7fa70","impliedFormat":1},{"version":"4c335d3a693925d96a8412087b3d675d20f04aa94f49581d1ecefb7373d458a1","impliedFormat":1},{"version":"0c62ce5d1677ebb0192a92bb9268b276f43c678dabc85a4a218304c913ecb8c4","impliedFormat":1},{"version":"9c250db4bab4f78fad08be7f4e43e962cc143e0f78763831653549ceb477344a","impliedFormat":1},{"version":"021a9498000497497fd693dd315325484c58a71b5929e2bbb91f419b04b24cea","impliedFormat":1},{"version":"9385cdc09850950bc9b59cca445a3ceb6fcca32b54e7b626e746912e489e535e","impliedFormat":1},{"version":"0a72186f94215d020cb386f7dca81d7495ab6c17066eb07d0f44a5bf33c1b21a","impliedFormat":1},{"version":"d6786782daa690925e139faad965b2d1745f71380c26861717f10525790566d9","impliedFormat":1},{"version":"63a8e96f65a22604eae82737e409d1536e69a467bb738bec505f4f97cce9d878","impliedFormat":1},{"version":"3fd78152a7031315478f159c6a5872c712ece6f01212c78ea82aef21cb0726e2","impliedFormat":1},{"version":"3c9da5c5ebb23a13ab8b0f40d137240c2573e4b515a0f76ecce4606ffa54cc68","impliedFormat":1},{"version":"cda4052f66b1e6cb7cf1fdfd96335d1627aa24a3b8b82ba4a9f873ec3a7bcde8","impliedFormat":1},{"version":"bf68ee06b7310056264cc7a380076a6d9b826c5e6ee3e1519a3d8f3a9c7178a4","impliedFormat":1},{"version":"e4b75a33f36b8a8885f11d3b89a4fb5e6f56a35d4208b519d35b2c7971d0fe76","impliedFormat":1},{"version":"fd933f824347f9edd919618a76cdb6a0c0085c538115d9a287fa0c7f59957ab3","impliedFormat":1},{"version":"6ac6715916fa75a1f7ebdfeacac09513b4d904b667d827b7535e84ff59679aff","impliedFormat":1},{"version":"6a1aa3e55bdc50503956c5cd09ae4cd72e3072692d742816f65c66ca14f4dfdd","impliedFormat":1},{"version":"ab75cfd9c4f93ffd601f7ca1753d6a9d953bbedfbd7a5b3f0436ac8a1de60dfa","impliedFormat":1},{"version":"28ebfca21bccf412dbb83a1095ee63eaa65dfc31d06f436f3b5f24bfe3ede7fa","impliedFormat":1},{"version":"b73cbf0a72c8800cf8f96a9acfe94f3ad32ca71342a8908b8ae484d61113f647","impliedFormat":1},{"version":"bae6dd176832f6423966647382c0d7ba9e63f8c167522f09a982f086cd4e8b23","impliedFormat":1},{"version":"1364f64d2fb03bbb514edc42224abd576c064f89be6a990136774ecdd881a1da","impliedFormat":1},{"version":"c9958eb32126a3843deedda8c22fb97024aa5d6dd588b90af2d7f2bfac540f23","impliedFormat":1},{"version":"950fb67a59be4c2dbe69a5786292e60a5cb0e8612e0e223537784c731af55db1","impliedFormat":1},{"version":"e927c2c13c4eaf0a7f17e6022eee8519eb29ef42c4c13a31e81a611ab8c95577","impliedFormat":1},{"version":"07ca44e8d8288e69afdec7a31fa408ce6ab90d4f3d620006701d5544646da6aa","impliedFormat":1},{"version":"70246ad95ad8a22bdfe806cb5d383a26c0c6e58e7207ab9c431f1cb175aca657","impliedFormat":1},{"version":"f00f3aa5d64ff46e600648b55a79dcd1333458f7a10da2ed594d9f0a44b76d0b","impliedFormat":1},{"version":"772d8d5eb158b6c92412c03228bd9902ccb1457d7a705b8129814a5d1a6308fc","impliedFormat":1},{"version":"4e4475fba4ed93a72f167b061cd94a2e171b82695c56de9899275e880e06ba41","impliedFormat":1},{"version":"97c5f5d580ab2e4decd0a3135204050f9b97cd7908c5a8fbc041eadede79b2fa","impliedFormat":1},{"version":"49b2375c586882c3ac7f57eba86680ff9742a8d8cb2fe25fe54d1b9673690d41","impliedFormat":1},{"version":"802e797bcab5663b2c9f63f51bdf67eff7c41bc64c0fd65e6da3e7941359e2f7","impliedFormat":1},{"version":"b51b87cf7cf94c043a7f5f8d017ee7ebd3f2303fde69a824b32ef5d58f6df63e","impliedFormat":1},{"version":"b33ac7d8d7d1bfc8cc06c75d1ee186d21577ab2026f482e29babe32b10b26512","impliedFormat":1},{"version":"a735f9a950f91e0b3efa82ef4f6acc6193d41d329ae006f7f54cffc1ef1d01c9","impliedFormat":1},{"version":"6459054aabb306821a043e02b89d54da508e3a6966601a41e71c166e4ea1474f","impliedFormat":1},{"version":"05c97cddbaf99978f83d96de2d8af86aded9332592f08ce4a284d72d0952c391","impliedFormat":1},{"version":"71bc9bc7afa31a36fb61f66a668b44ee0e7c9ed0f2f364ca0185ffff8bc8f174","impliedFormat":1},{"version":"bbc183d2d69f4b59fd4dd8799ffdf4eb91173d1c4ad71cce91a3811c021bf80c","impliedFormat":1},{"version":"7b6ff760c8a240b40dab6e4419b989f06a5b782f4710d2967e67c695ef3e93c4","impliedFormat":1},{"version":"8dbc4134a4b3623fc476be5f36de35c40f2768e2e3d9ed437e0d5f1c4cd850f6","impliedFormat":1},{"version":"d5563f7b039981b4f1b011936b7d0dcdd96824c721842ff74881c54f2f634284","impliedFormat":1},{"version":"3ceeb1a114a85d03997d2c611c45cf3c5f26eeb63dd9b5fd9dc9eb04af98b2a4","impliedFormat":1},{"version":"eb8b35932068daa1ca6199109bf932fd0ceec9abd68506034cf8573e96ff7d09","impliedFormat":1},{"version":"f974e4a06953682a2c15d5bd5114c0284d5abf8bc0fe4da25cb9159427b70072","impliedFormat":1},{"version":"443fbe38a293542919fdeb3118772f4c0096681bbc0c59bc6b9939ddee8dd066","impliedFormat":1},{"version":"94404c4a878fe291e7578a2a80264c6f18e9f1933fbb57e48f0eb368672e389c","impliedFormat":1},{"version":"5c1b7f03aa88be854bc15810bfd5bd5a1943c5a7620e1c53eddd2a013996343e","impliedFormat":1},{"version":"f416c9c3eee9d47ff49132c34f96b9180e50485d435d5748f0e8b72521d28d2e","impliedFormat":1},{"version":"b4a49b80b0c625e4c7a9d6fcd95cd7d6a94ca6116b056d144de0cf70c03e4697","impliedFormat":1},{"version":"60a86278bd85866c81bc8e48d23659279b7a2d5231b06799498455586f7c8138","impliedFormat":1},{"version":"01aa917531e116485beca44a14970834687b857757159769c16b228eb1e49c5f","impliedFormat":1},{"version":"fbcde1fdade133b4a976480c0d4c692e030306f53909d7765dfef98436dec777","impliedFormat":1},{"version":"4f1ce48766482ed4c19da9b1103f87690abb7ba0a2885a9816c852bfad6881a1","impliedFormat":1},{"version":"187a6fdbdecb972510b7555f3caacb44b58415da8d5825d03a583c4b73fde4cf","impliedFormat":1},{"version":"d4c3250105a612202289b3a266bb7e323db144f6b9414f9dea85c531c098b811","impliedFormat":1},{"version":"18e2ae9d03e8bdc58ffecd37018bdb33969b1804a24de412f3c866324904b485","impliedFormat":1},{"version":"741067675daa6d4334a2dc80a4452ca3850e89d5852e330db7cb2b5f867173b1","impliedFormat":1},{"version":"a1c8542ed1189091dd39e732e4390882a9bcd15c0ca093f6e9483eba4e37573f","impliedFormat":1},{"version":"131b1475d2045f20fb9f43b7aa6b7cb51f25250b5e4c6a1d4aa3cf4dd1a68793","impliedFormat":1},{"version":"3a17f09634c50cce884721f54fd9e7b98e03ac505889c560876291fcf8a09e90","impliedFormat":1},{"version":"32531dfbb0cdc4525296648f53b2b5c39b64282791e2a8c765712e49e6461046","impliedFormat":1},{"version":"0ce1b2237c1c3df49748d61568160d780d7b26693bd9feb3acb0744a152cd86d","impliedFormat":1},{"version":"e489985388e2c71d3542612685b4a7db326922b57ac880f299da7026a4e8a117","impliedFormat":1},{"version":"76264a4df0b7c78b7b12dfaedc05d9f1016f27be1f3d0836417686ff6757f659","impliedFormat":1},{"version":"272692898cec41af73cb5b65f4197a7076007aecd30c81514d32fdb933483335","affectsGlobalScope":true,"impliedFormat":1},{"version":"fd1b9d883b9446f1e1da1e1033a6a98995c25fbf3c10818a78960e2f2917d10c","impliedFormat":1},{"version":"19252079538942a69be1645e153f7dbbc1ef56b4f983c633bf31fe26aeac32cd","impliedFormat":1},{"version":"bc11f3ac00ac060462597add171220aed628c393f2782ac75dd29ff1e0db871c","impliedFormat":1},{"version":"616775f16134fa9d01fc677ad3f76e68c051a056c22ab552c64cc281a9686790","impliedFormat":1},{"version":"65c24a8baa2cca1de069a0ba9fba82a173690f52d7e2d0f1f7542d59d5eb4db0","impliedFormat":1},{"version":"ec9fd890d681789cb0aa9efbc50b1e0afe76fbf3c49c3ac50ff80e90e29c6bcb","impliedFormat":1},{"version":"5fbd292aa08208ae99bf06d5da63321fdc768ee43a7a104980963100a3841752","impliedFormat":1},{"version":"9eac5a6beea91cfb119688bf44a5688b129b804ede186e5e2413572a534c21bb","impliedFormat":1},{"version":"e81bf06c0600517d8f04cc5de398c28738bfdf04c91fb42ad835bfe6b0d63a23","impliedFormat":1},{"version":"363996fe13c513a7793aa28ffb05b5d0230db2b3d21b7bfaf21f79e4cde54b4e","impliedFormat":1},{"version":"b7fff2d004c5879cae335db8f954eb1d61242d9f2d28515e67902032723caeab","impliedFormat":1},{"version":"5f3dc10ae646f375776b4e028d2bed039a93eebbba105694d8b910feebbe8b9c","impliedFormat":1},{"version":"bb18bf4a61a17b4a6199eb3938ecfa4a59eb7c40843ad4a82b975ab6f7e3d925","impliedFormat":1},{"version":"4545c1a1ceca170d5d83452dd7c4994644c35cf676a671412601689d9a62da35","impliedFormat":1},{"version":"15959543f93f27e8e2b1a012fe28e14b682034757e2d7a6c1f02f87107fc731e","impliedFormat":1},{"version":"a2d648d333cf67b9aeac5d81a1a379d563a8ffa91ddd61c6179f68de724260ff","impliedFormat":1},{"version":"2b664c3cc544d0e35276e1fb2d4989f7d4b4027ffc64da34ec83a6ccf2e5c528","impliedFormat":1},{"version":"a3f41ed1b4f2fc3049394b945a68ae4fdefd49fa1739c32f149d32c0545d67f5","impliedFormat":1},{"version":"3cd8f0464e0939b47bfccbb9bb474a6d87d57210e304029cd8eb59c63a81935d","impliedFormat":1},{"version":"47699512e6d8bebf7be488182427189f999affe3addc1c87c882d36b7f2d0b0e","impliedFormat":1},{"version":"3026abd48e5e312f2328629ede6e0f770d21c3cd32cee705c450e589d015ee09","impliedFormat":1},{"version":"4a8bae6576783c910147d19ec6bef24fd2a24e83acbbb2043a60eec7134738e6","impliedFormat":1},{"version":"7663d2c19ce5ef8288c790edba3d45af54e58c84f1b37b1249f6d49d962f3d91","impliedFormat":1},{"version":"f72ee46ae3f73e6c5ff0da682177251d80500dd423bfd50286124cd0ca11e160","impliedFormat":1},{"version":"898b714aad9cfd0e546d1ad2c031571de7622bd0f9606a499bee193cf5e7cf0c","impliedFormat":1},{"version":"94f4c1779dc2bbe0cf909eb8700898b1869ed8563acb3ec26cbe8047d642c269","impliedFormat":1},{"version":"fedebeae32c5cdd1a85b4e0504a01996e4a8adf3dfa72876920d3dd6e42978e7","impliedFormat":1},{"version":"5d26aae738fa3efc87c24f6e5ec07c54694e6bcf431cc38d3da7576d6bb35bd6","impliedFormat":1},{"version":"cdf21eee8007e339b1b9945abf4a7b44930b1d695cc528459e68a3adc39a622e","impliedFormat":1},{"version":"db036c56f79186da50af66511d37d9fe77fa6793381927292d17f81f787bb195","impliedFormat":1},{"version":"65c2c49eda6c44aa170bfd449ef6f6970843b005356624a393cc887310752c5c","impliedFormat":1},{"version":"e769eb743cd01a0b7ffbb59293d2e4fa5848ab39430e196941143af6ecd4569e","impliedFormat":1},{"version":"68f81dad9e8d7b7aa15f35607a70c8b68798cf579ac44bd85325b8e2f1fb3600","impliedFormat":1},{"version":"1de80059b8078ea5749941c9f863aa970b4735bdbb003be4925c853a8b6b4450","impliedFormat":1},{"version":"1d079c37fa53e3c21ed3fa214a27507bda9991f2a41458705b19ed8c2b61173d","impliedFormat":1},{"version":"94fd3ce628bd94a2caf431e8d85901dbe3a64ab52c0bd1dbe498f63ca18789f7","impliedFormat":1},{"version":"5835a6e0d7cd2738e56b671af0e561e7c1b4fb77751383672f4b009f4e161d70","impliedFormat":1},{"version":"c0eeaaa67c85c3bb6c52b629ebbfd3b2292dc67e8c0ffda2fc6cd2f78dc471e6","impliedFormat":1},{"version":"4b7f74b772140395e7af67c4841be1ab867c11b3b82a51b1aeb692822b76c872","impliedFormat":1},{"version":"27be6622e2922a1b412eb057faa854831b95db9db5035c3f6d4b677b902ab3b7","impliedFormat":1},{"version":"b95a6f019095dd1d48fd04965b50dfd63e5743a6e75478343c46d2582a5132bf","impliedFormat":99},{"version":"c2008605e78208cfa9cd70bd29856b72dda7ad89df5dc895920f8e10bcb9cd0a","impliedFormat":99},{"version":"b97cb5616d2ab82a98ec9ada7b9e9cabb1f5da880ec50ea2b8dc5baa4cbf3c16","impliedFormat":99},{"version":"16fd66ae997b2f01c972531239da90fbf8ab4022bb145b9587ef746f6cecde5a","affectsGlobalScope":true,"impliedFormat":1},{"version":"fc8fbee8f73bf5ffd6ba08ba1c554d6f714c49cae5b5e984afd545ab1b7abe06","affectsGlobalScope":true,"impliedFormat":1},{"version":"3586f5ea3cc27083a17bd5c9059ede9421d587286d5a47f4341a4c2d00e4fa91","impliedFormat":1},{"version":"a6df929821e62f4719551f7955b9f42c0cd53c1370aec2dd322e24196a7dfe33","impliedFormat":1},{"version":"b789bf89eb19c777ed1e956dbad0925ca795701552d22e68fd130a032008b9f9","impliedFormat":1},"9269d492817e359123ac64c8205e5d05dab63d71a3a7a229e68b5d9a0e8150bf",{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"8885cf05f3e2abf117590bbb951dcf6359e3e5ac462af1c901cfd24c6a6472e2","impliedFormat":1},{"version":"333caa2bfff7f06017f114de738050dd99a765c7eb16571c6d25a38c0d5365dc","impliedFormat":1},{"version":"e61df3640a38d535fd4bc9f4a53aef17c296b58dc4b6394fd576b808dd2fe5e6","impliedFormat":1},{"version":"459920181700cec8cbdf2a5faca127f3f17fd8dd9d9e577ed3f5f3af5d12a2e4","impliedFormat":1},{"version":"4719c209b9c00b579553859407a7e5dcfaa1c472994bd62aa5dd3cc0757eb077","impliedFormat":1},{"version":"7ec359bbc29b69d4063fe7dad0baaf35f1856f914db16b3f4f6e3e1bca4099fa","impliedFormat":1},{"version":"70790a7f0040993ca66ab8a07a059a0f8256e7bb57d968ae945f696cbff4ac7a","impliedFormat":1},{"version":"d1b9a81e99a0050ca7f2d98d7eedc6cda768f0eb9fa90b602e7107433e64c04c","impliedFormat":1},{"version":"a022503e75d6953d0e82c2c564508a5c7f8556fad5d7f971372d2d40479e4034","impliedFormat":1},{"version":"b215c4f0096f108020f666ffcc1f072c81e9f2f95464e894a5d5f34c5ea2a8b1","impliedFormat":1},{"version":"644491cde678bd462bb922c1d0cfab8f17d626b195ccb7f008612dc31f445d2d","impliedFormat":1},{"version":"dfe54dab1fa4961a6bcfba68c4ca955f8b5bbeb5f2ab3c915aa7adaa2eabc03a","impliedFormat":1},{"version":"1251d53755b03cde02466064260bb88fd83c30006a46395b7d9167340bc59b73","impliedFormat":1},{"version":"47865c5e695a382a916b1eedda1b6523145426e48a2eae4647e96b3b5e52024f","impliedFormat":1},{"version":"4cdf27e29feae6c7826cdd5c91751cc35559125e8304f9e7aed8faef97dcf572","impliedFormat":1},{"version":"331b8f71bfae1df25d564f5ea9ee65a0d847c4a94baa45925b6f38c55c7039bf","impliedFormat":1},{"version":"2a771d907aebf9391ac1f50e4ad37952943515eeea0dcc7e78aa08f508294668","impliedFormat":1},{"version":"0146fd6262c3fd3da51cb0254bb6b9a4e42931eb2f56329edd4c199cb9aaf804","impliedFormat":1},{"version":"183f480885db5caa5a8acb833c2be04f98056bdcc5fb29e969ff86e07efe57ab","impliedFormat":99},{"version":"b558c9a18ea4e6e4157124465c3ef1063e64640da139e67be5edb22f534f2f08","impliedFormat":1},{"version":"01374379f82be05d25c08d2f30779fa4a4c41895a18b93b33f14aeef51768692","impliedFormat":1},{"version":"b0dee183d4e65cf938242efaf3d833c6b645afb35039d058496965014f158141","impliedFormat":1},{"version":"c0bbbf84d3fbd85dd60d040c81e8964cc00e38124a52e9c5dcdedf45fea3f213","impliedFormat":1},{"version":"d13fcfb0807c8de36b9e980c36b3e3848e1011d5c509d637df8101f337855d07","signature":"f65ce75c9085571e6321abf2bf9833709f4897e381f89e9925521833dbb7ab16"},{"version":"faf770b3935c2ba6558b2bb65af5d5de58945d81f496dc1a5938c41a1abb358b","impliedFormat":99},{"version":"e82ae2c960f50111104a8cca98a6b064565c4985345d08ffbbc1fcd735f85ab0","signature":"02e8d486c500591f57a65ac6c3f89bc1a9e036f6764bc106ed6dd0c43df15f5b"},{"version":"628bd3f9ff3d1e0149c7b05731ee90517d82e6f607808d7003cb7364401b1ff0","signature":"12c75191095354f5297a0188bafe757cf809b52beeb041ea822f20c0ab08e167"},{"version":"fe93c474ab38ac02e30e3af073412b4f92b740152cf3a751fdaee8cbea982341","impliedFormat":1},{"version":"2243ccc64224e509b363b0027e4ae4720c14ad3ea0bfdac1357d12fade504e84","impliedFormat":1},{"version":"1e00b8bf9e3766c958218cd6144ffe08418286f89ff44ba5a2cc830c03dd22c7","impliedFormat":1},{"version":"8b87ec747b4eb455ca831b9a90a30b1465d3d5b6739690eefa54ea65d86557af","signature":"01a977ade994fe0de990222140f158a0dc3b03529994c449aa39333d0facac02"},{"version":"2fbafd877e9776c0c9b2d5f533f8a4e238235b75dd9aca50db156d831ed45fac","signature":"3eb972ae325aa293fdb6077cdf956f209ee6ea34b4e874ff7ec8686b3079972f"},{"version":"4c54300bb2670678e16cb98079486f3f2bfa061dd1b954e7e4a8999959420507","impliedFormat":1},{"version":"39dd475f12e9d2f34f67b8f2e5453a75364c1a2c1e53ea6ac6eec75700913935","signature":"d2ead9f2fbb260f258b010c555ac15e540c95968f950332e270b6520edd7cf81"},"fd080e99b08fc63c9c277022c67872cdcd0c7e64bba911b9455476df70b7b160",{"version":"27d6c7299e72f23e91cb4edde13b0a38b9479b7a2f8eba13127b4bac299af6e2","signature":"6c45675928d5db83b67f6f8d0c2238049d5290a975c3d1c99b7d2cdf8b415168"},"957eba5e3c81215fa6ea30ba1f23b9e41a5b464f60850b02390cc8cf3b344b6c",{"version":"cc1f239aeb6c25e211e972cba881b5fa0865041fcbc8c319e2070dc6e2e422db","signature":"ffba73d988611fb85350a1f2fa1b69ea3740b958f238b29d30e0eea632754053"},"efeb5b87ba990ce00ee84d81489eb27793eb66f58e8b547f23e9b49d260e85d1","d41f45aefb6fe00c707149d210989d5205275e3ac8d638e874d861fca45685e7","05a16eec51bff3bd52fccd5d9623a61352ebe12b1bd90c26afe948c544a49a3b",{"version":"bb634f108797adcae2e828015773ca5824d7c27d76e932c21ac74bb831e06c1c","signature":"7a1c5b30079a0357e210ebfcf3c68d18f5b4e2baf3eb2185a5b1ed6ba75e0425"},"f2eab7e30ed4c52e7baeed133c65e46dc9ddf90f626748a5d7e0964e181b9039","348c92e4b6a46d690fcb1684fe24442286b2cebe92b6c43d1a7a78a13944a319","a26f74f39f3d9d9420e064f2d6fcb179c77f6b29d5fa8b720d1eeb0bff6b9f52","568f0a86110fae49f568341d9c0e0755ce95ebc042d9da0dc9c0eb8fa0fe0c9f",{"version":"a592b15f44671a6df372a72e3ed30f4a36b3f1c59c6c4ad04de168980afb52d6","signature":"cc721bcc861ad247a0bc00c96ee66f6fca99167a5c80aa7f408562594d604cfb"},{"version":"3722f98b26e3aff038de1aec4cd7375906b5f79c89a388391d48e96e7b8532a9","signature":"8f57ae9bde5786f88bf5db102b374344be827cc1159e4d8e0c1f1da4067a2995"},"32764a34b61022da43561aa7c96bf1afa30ecb1b762d0414d569a73b7abf2537","d41a97657f8782e29fad452af355c8d14624a423f5bd5d96f5a6fd80a1538a8d",{"version":"76eb9778be4d31b4e14abf2e9d36532edf7c0a3d6bd2cb9fb868cd5f28e97a3e","signature":"d1c54127b35edcbb429b825589e7ab608f067a51e53f25861a49806ee5a64d24"},{"version":"fc633d715c87ff375aef523dc88424dec1d8963fc507975301dd427380360a87","signature":"fc975886fcd38e2d33a24c7a3d1e6d56b0e83760e593d15a88eaccfa72d1c7db"},{"version":"f614443cececb15b91044b77c0320e2a7424c6559f51ddd8ecff17b73c067cfc","signature":"45b373ad2e114de335dd3eaf62f9658266d71c2f34537489f88f3b4815fa72f8"},{"version":"6492dc47dfce1135d7186a31d5285ce5ea9553a57b02ebe2d5f02d8bcd998b03","signature":"57bf6d3d9869fcfaa16bbc070fb1d67e3cba7323e46af9aafc0e9fa862758603"},{"version":"f25b7d7089e7f635e02e3c465ce7a3d851b3d8fcd376465e76bd589b134a8892","signature":"91b905b985aaeda26e36c54bc924487b48c933963789d5f6bbd5ecaf51826546"},{"version":"2982bb0cca8bb1ab2199becdf43fc425a18caa30134ef24649b57bc4db787aad","signature":"37391120d58950db7cfadc4abdd838e09f2875115e58761eaa13986577643062"},"88146893bf0590705430fb6cf38c7f2bc655c7b57573eb595fa8250cd14ba37c","acbf4c0efd92d33bcf4207564874aed6bcb8c1e5dff25b1054a4229694f71391","e30f1f501467b238f875037b63ba031e09fc290aab14b7c099227c85a603eb88","43f403fe631b122bb151418f8155bbf652ab7723377aba6623f1989623f3aed4","164255d9b0e4bc1c3905e897faa9cc4e12ba442f4a0515de1221bd6e4dc6003e",{"version":"e21cdf8c1f94bf9c15cad0ddd58814d745b54749f2bbd8652158422591b23c53","signature":"a64e611c31584bb3e06885be32c1a510d7628b5d158fc0e936a348b8564bf1f8"},{"version":"8a804712587b624baceb59a9a315ff7ae2d24e916c823132c202cee656715e2a","signature":"0ba8b0b9d7e347133245546a399400f6ddfcc060af283bec7a9611e3d25aea17"},{"version":"c38e408c008fda0cd15ba5f04355c27bae3f0d5d867528c1818ae247739edabd","signature":"a0fc769884800899915b3e4fb697c3d5fc9965e18ea475888e952ce6e4631b5f"},"c6759c041c00152f79c4719a83f13f0d43eacc2217c37bdf89864cb8db98577b",{"version":"1dc7d8e1d1a4a16bab54270a978e6d73eb3882d710c9e947aa1dfea38900d0e1","signature":"2cc743b624d6891f9275f11f76fedfe235af04641c806e7dc65e55740db4dd29"},{"version":"812d81ac0d26ec904d61da8522dacdc3ec53a0255707dd20e21383a172d0b933","signature":"2cc743b624d6891f9275f11f76fedfe235af04641c806e7dc65e55740db4dd29"},{"version":"86bb0810cd10b05f3522cbcc0ac73039eb75cf1beb7d5f22fa5844bd15da14f8","signature":"2cc743b624d6891f9275f11f76fedfe235af04641c806e7dc65e55740db4dd29"},"9a8084029c1d4920319d87da18849e46b36f2f1353b5448da6fedd990195d955","4a1a1f87b9428dc4f6940c17b0dea83596ae260f62ee6bbd2704cb27fad60d92","607cfbeaca91b58fd2e442af0f9c738f078c6b26d0460d7eaf999b75897ca848","d3eaf0715dca3ed22d0db0fb1bbb0fcec4b42686ca1cb7ee0cec2455ccdf4415","d038277bf1e5cf720ec1f39b0e80cc5183167eba2e0972bbd3b1d1b1c4c2f481","bc7137b4fcb3b1cdca0fcd510a17abe41999db1ec56bd7eac5f08072a4b59751",{"version":"9c7884eb4b6164b7f1e7236377a8296178b9460e275e24edaa9ce0ac5e4e2f1b","signature":"2cc743b624d6891f9275f11f76fedfe235af04641c806e7dc65e55740db4dd29"},{"version":"9924ef4757bf8085d7c50252a2a810ddfb1b3f472a53170e62ee528eae81438d","signature":"2cc743b624d6891f9275f11f76fedfe235af04641c806e7dc65e55740db4dd29"},{"version":"96d14f21b7652903852eef49379d04dbda28c16ed36468f8c9fa08f7c14c9538","impliedFormat":1}],"root":[405,430,432,433,437,438,[440,482]],"options":{"allowJs":true,"esModuleInterop":true,"jsx":1,"module":99,"skipLibCheck":true,"strict":true},"referencedMap":[[474,1],[476,2],[475,3],[478,4],[477,5],[479,6],[472,7],[480,8],[473,9],[481,10],[482,11],[405,12],[358,13],[483,13],[142,14],[143,14],[144,15],[99,16],[145,17],[146,18],[147,19],[94,13],[97,20],[95,13],[96,13],[148,21],[149,22],[150,23],[151,24],[152,25],[153,26],[154,26],[155,27],[156,28],[157,29],[158,30],[100,13],[98,13],[159,31],[160,32],[161,33],[193,34],[162,35],[163,36],[164,37],[165,38],[166,39],[167,40],[168,41],[169,42],[170,43],[171,44],[172,44],[173,45],[174,13],[175,46],[177,47],[176,48],[178,49],[179,50],[180,51],[181,52],[182,53],[183,54],[184,55],[185,56],[186,57],[187,58],[188,59],[189,60],[190,61],[101,13],[102,13],[103,13],[141,62],[191,63],[192,64],[86,13],[198,65],[199,66],[197,67],[195,68],[196,69],[84,13],[87,70],[282,67],[431,13],[85,13],[439,67],[93,71],[361,72],[366,73],[368,74],[218,75],[233,76],[331,77],[264,13],[334,78],[298,79],[306,80],[290,81],[332,82],[219,83],[263,13],[265,84],[289,13],[333,85],[240,86],[220,87],[244,86],[234,86],[204,86],[288,88],[209,13],[285,89],[377,90],[283,91],[378,92],[270,13],[286,93],[389,94],[294,95],[388,13],[386,13],[387,96],[287,67],[275,97],[284,98],[301,99],[302,100],[293,13],[271,101],[291,102],[292,95],[381,103],[384,104],[251,105],[250,106],[249,107],[392,67],[248,108],[225,13],[395,13],[435,109],[434,13],[398,13],[397,67],[399,110],[200,13],[326,13],[232,111],[202,112],[349,13],[350,13],[352,13],[355,113],[351,13],[353,114],[354,114],[217,13],[231,13],[360,115],[369,116],[373,117],[213,118],[277,119],[276,13],[297,120],[295,13],[296,13],[300,121],[273,122],[212,123],[238,124],[323,125],[205,126],[211,127],[201,77],[336,128],[347,129],[335,13],[346,130],[239,13],[223,131],[315,132],[314,13],[322,133],[316,134],[320,135],[321,136],[319,134],[318,136],[317,134],[260,137],[245,137],[309,138],[246,138],[207,139],[206,13],[313,140],[312,141],[311,142],[310,143],[208,144],[281,145],[299,146],[280,147],[305,148],[307,149],[304,147],[241,144],[194,13],[324,150],[266,151],[345,152],[269,153],[340,154],[221,13],[341,155],[343,156],[344,157],[339,13],[338,126],[242,158],[325,159],[348,160],[214,13],[216,13],[222,161],[308,162],[210,163],[215,13],[268,164],[267,165],[224,166],[274,167],[272,168],[226,169],[228,170],[396,13],[227,171],[229,172],[363,13],[364,13],[362,13],[365,13],[394,13],[230,173],[279,67],[92,13],[303,174],[252,13],[262,175],[371,67],[380,176],[259,67],[375,95],[258,177],[357,178],[257,176],[203,13],[382,179],[255,67],[256,67],[247,13],[261,13],[254,180],[253,181],[243,182],[237,183],[342,13],[236,184],[235,13],[367,13],[278,67],[359,185],[83,13],[91,186],[88,67],[89,13],[90,13],[337,187],[330,188],[329,13],[328,189],[327,13],[370,190],[372,191],[374,192],[436,193],[376,194],[379,195],[404,196],[383,196],[403,197],[385,198],[390,199],[391,200],[393,201],[400,202],[402,13],[401,203],[356,204],[422,205],[420,206],[421,207],[409,208],[410,206],[417,209],[408,210],[413,211],[423,13],[414,212],[419,213],[425,214],[424,215],[407,216],[415,217],[416,218],[411,219],[418,205],[412,220],[406,13],[428,221],[427,13],[426,13],[429,222],[81,13],[82,13],[13,13],[14,13],[16,13],[15,13],[2,13],[17,13],[18,13],[19,13],[20,13],[21,13],[22,13],[23,13],[24,13],[3,13],[25,13],[26,13],[4,13],[27,13],[31,13],[28,13],[29,13],[30,13],[32,13],[33,13],[34,13],[5,13],[35,13],[36,13],[37,13],[38,13],[6,13],[42,13],[39,13],[40,13],[41,13],[43,13],[7,13],[44,13],[49,13],[50,13],[45,13],[46,13],[47,13],[48,13],[8,13],[54,13],[51,13],[52,13],[53,13],[55,13],[9,13],[56,13],[57,13],[58,13],[60,13],[59,13],[61,13],[62,13],[10,13],[63,13],[64,13],[65,13],[11,13],[66,13],[67,13],[68,13],[69,13],[70,13],[1,13],[71,13],[72,13],[12,13],[76,13],[74,13],[79,13],[78,13],[73,13],[77,13],[75,13],[80,13],[119,223],[129,224],[118,223],[139,225],[110,226],[109,227],[138,203],[132,228],[137,229],[112,230],[126,231],[111,232],[135,233],[107,234],[106,203],[136,235],[108,236],[113,237],[114,13],[117,237],[104,13],[140,238],[130,239],[121,240],[122,241],[124,242],[120,243],[123,244],[133,203],[115,245],[116,246],[125,247],[105,248],[128,239],[127,237],[131,13],[134,249],[441,250],[442,251],[445,252],[444,253],[446,252],[443,253],[449,254],[450,255],[448,253],[451,253],[452,254],[447,253],[453,253],[456,256],[457,251],[455,256],[458,257],[437,258],[459,259],[460,260],[461,251],[462,257],[466,261],[463,262],[464,255],[467,263],[465,264],[438,260],[468,257],[469,251],[470,257],[471,253],[454,265],[440,266],[432,267],[433,13],[430,268]],"semanticDiagnosticsPerFile":[[470,[{"start":197,"length":10,"messageText":"Cannot find module 'recharts' or its corresponding type declarations.","category":1,"code":2307},{"start":13491,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":14766,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":23017,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":23116,"length":1,"messageText":"Parameter '_' implicitly has an 'any' type.","category":1,"code":7006},{"start":23119,"length":7,"messageText":"Parameter 'payload' implicitly has an 'any' type.","category":1,"code":7006},{"start":24579,"length":1,"messageText":"Parameter 'v' implicitly has an 'any' type.","category":1,"code":7006},{"start":24653,"length":1,"messageText":"Parameter '_' implicitly has an 'any' type.","category":1,"code":7006},{"start":24656,"length":7,"messageText":"Parameter 'payload' implicitly has an 'any' type.","category":1,"code":7006}]]],"affectedFilesPendingEmit":[474,476,475,478,477,479,472,480,473,481,482,441,442,445,444,446,443,449,450,448,451,452,447,453,456,457,455,458,437,459,460,461,462,466,463,464,467,465,438,468,469,470,471,454,440,432,433,430],"version":"5.9.3"} \ No newline at end of file