// Amazon FPGA Hardware Development Kit // // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 `pragma protect begin_protected `pragma protect version = 1 `pragma protect encrypt_agent = "XILINX" `pragma protect encrypt_agent_info = "Xilinx Encryption Tool 2015" `pragma protect key_keyowner = "Xilinx", key_keyname = "xilinxt_2017_05", key_method = "rsa" `pragma protect encoding = (enctype = "BASE64", line_length = 76, bytes = 256) `pragma protect key_block uVw5JhLL11X7sFlU0pAE+ly6TbXZG7ItJn3Ex9cXjSY7p1sc5OM17XcDMDqOEbaLgeEhUuwbGf++ sY41qYpCyxKVTUSlo4RbifB6OdtPL5WbplRlVmZr6tVckowDKyf+KTfQD5yDuN/lqu/csQO2OWFG +FTZmZC2+4QJQc3yS24aV3ap6SiICL9zEXwFqFiBkzn/JHjRL0ul0SX2IlY2DGLf1ZP0frmZpeV5 jf+hw24P7s4xKjAFgaTp3id7hTx/VMEsA2ezH0GQbEMKybRgNRwMm93ZH7rKsmeh+vLM4uzdiiPH viyKgiHJcWlJF11UMelWbvVoYsF7uDJ90n/5Ww== `pragma protect key_keyowner = "Synopsys", key_keyname = "SNPS-VCS-RSA-1", key_method = "rsa" `pragma protect encoding = (enctype = "BASE64", line_length = 76, bytes = 128) `pragma protect key_block s7Yn4DABLzF4SLp/0V98P0CDCkZYnP8iqDei0IedIEX1lGPO+wDX247jQ5AIWSMu+s+1jQIMeWFm wwhaOWGt3o1acmXqPnf1xmu+ASh0sjaaro7Te7bhxTdbst8KbfW4m1RJX+UShZxi74/veNFylojR HiUek/GVQNWaepFc9Xo= `pragma protect key_keyowner = "Mentor Graphics Corporation", key_keyname = "MGC-VERIF-SIM-RSA-1", key_method = "rsa" `pragma protect encoding = (enctype = "BASE64", line_length = 76, bytes = 128) `pragma protect key_block SulZTeegbwtiqqiy6RNAoCNHsjD2rBzbr8ndOVV7AUZ0X/egfC2PVGUQ2Zwy0uxx/G5Py0ihEuGz MBiYAP/4TcshTSjLEVglOzGlp6fbSx9KYr1eCu1tcnF84602dfHBQHUV4WrLSSNvwXOKp/AKyOG7 1ALfiTkaDf2vG5TjkzI= `pragma protect key_keyowner = "Cadence Design Systems.", key_keyname = "cds_rsa_key", key_method = "rsa" `pragma protect encoding = (enctype = "BASE64", line_length = 76, bytes = 64) `pragma protect key_block VeIIJaaPUtlfe1VvZdR/BjuSRIXs9q5wYiTwm+LKSUDNMtXCl0A6nj2xESHweWlx4Lsjnho6VXem 7zwg08AWnw== `pragma protect data_method = "AES128-CBC" `pragma protect encoding = (enctype = "BASE64", line_length = 76, bytes = 7104) `pragma protect data_block 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 `pragma protect end_protected