$ErrorActionPreference = 'Stop' function ConvertFrom-Utf8Base64 { param([string]$Value) return [Text.Encoding]::UTF8.GetString([Convert]::FromBase64String($Value)) } $recordPath = ConvertFrom-Utf8Base64 'ZG9jcy9kZXNpZ24vQTAxX+WQr+WKqOeZu+W9leW8leWvvF/orr7orqHorrDlvZUubWQ=' $effect = ConvertFrom-Utf8Base64 'ZG9jcy9kZXNpZ24vc2NyZWVucy9BMDEt5ZCv5Yqo55m75b2V5byV5a+8LeaViOaenOeovy12My3mloflrZfms6jlhozlhaXlj6MucG5n' $record = Get-Content -LiteralPath $recordPath -Raw -Encoding utf8 $rules = @( (ConvertFrom-Utf8Base64 '55m75b2V'), (ConvertFrom-Utf8Base64 '5b6u5L+h55m75b2V'), (ConvertFrom-Utf8Base64 '6L+Y5rKh5pyJ6LSm5Y+377yf5rOo5YaM6LSm5Y+3'), (ConvertFrom-Utf8Base64 '5Y+M5qCH562+'), (ConvertFrom-Utf8Base64 '5Yid5aeL5pyq5Yu+6YCJ') ) foreach ($rule in $rules) { if ($record -notmatch [regex]::Escape($rule)) { throw "Missing A01 rule: $rule" } } $layoutRules = @( (ConvertFrom-Utf8Base64 '5YaF5a655a695bqmIDYzOHJweA=='), (ConvertFrom-Utf8Base64 '5Li75oyJ6ZKu6auY5bqmIDEwOHJweA=='), (ConvertFrom-Utf8Base64 'ZW52KHNhZmUtYXJlYS1pbnNldC1ib3R0b20p'), (ConvertFrom-Utf8Base64 '6LSm5Y+35a+G56CB55m75b2VIC8g5omL5py66aqM6K+B56CB55m75b2V') ) foreach ($rule in $layoutRules) { if ($record -notmatch [regex]::Escape($rule)) { throw "Missing A01 layout rule: $rule" } } $currentStructure = [regex]::Match($record, '(?s)## 2\..*?(?=## 3\.)').Value $currentStructureRule = ConvertFrom-Utf8Base64 '5Lik5Liq5aSn5oyJ6ZKu5ZKM5LiA5Liq5paH5a2X5YWl5Y+j' if ($currentStructure -notmatch [regex]::Escape($currentStructureRule)) { throw "Missing current A01 structure rule: $currentStructureRule" } if (-not (Test-Path -LiteralPath $effect)) { throw "Missing archived A01 effect: $effect" } Write-Output 'A01-DESIGN-RECORD-AUDIT PASS'