hopr_bindings/codegen/
hopr_boost.rs

1pub use hopr_boost::*;
2/// This module was auto-generated with ethers-rs Abigen.
3/// More information at: <https://github.com/gakonst/ethers-rs>
4#[allow(
5    clippy::enum_variant_names,
6    clippy::too_many_arguments,
7    clippy::upper_case_acronyms,
8    clippy::type_complexity,
9    dead_code,
10    non_camel_case_types,
11)]
12pub mod hopr_boost {
13    #[allow(deprecated)]
14    fn __abi() -> ::ethers::core::abi::Abi {
15        ::ethers::core::abi::ethabi::Contract {
16            constructor: ::core::option::Option::Some(::ethers::core::abi::ethabi::Constructor {
17                inputs: ::std::vec![
18                    ::ethers::core::abi::ethabi::Param {
19                        name: ::std::borrow::ToOwned::to_owned("newAdmin"),
20                        kind: ::ethers::core::abi::ethabi::ParamType::Address,
21                        internal_type: ::core::option::Option::Some(
22                            ::std::borrow::ToOwned::to_owned("address"),
23                        ),
24                    },
25                    ::ethers::core::abi::ethabi::Param {
26                        name: ::std::borrow::ToOwned::to_owned("baseTokenURI"),
27                        kind: ::ethers::core::abi::ethabi::ParamType::String,
28                        internal_type: ::core::option::Option::Some(
29                            ::std::borrow::ToOwned::to_owned("string"),
30                        ),
31                    },
32                ],
33            }),
34            functions: ::core::convert::From::from([
35                (
36                    ::std::borrow::ToOwned::to_owned("DEFAULT_ADMIN_ROLE"),
37                    ::std::vec![
38                        ::ethers::core::abi::ethabi::Function {
39                            name: ::std::borrow::ToOwned::to_owned("DEFAULT_ADMIN_ROLE"),
40                            inputs: ::std::vec![],
41                            outputs: ::std::vec![
42                                ::ethers::core::abi::ethabi::Param {
43                                    name: ::std::string::String::new(),
44                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
45                                        32usize,
46                                    ),
47                                    internal_type: ::core::option::Option::Some(
48                                        ::std::borrow::ToOwned::to_owned("bytes32"),
49                                    ),
50                                },
51                            ],
52                            constant: ::core::option::Option::None,
53                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
54                        },
55                    ],
56                ),
57                (
58                    ::std::borrow::ToOwned::to_owned("MINTER_ROLE"),
59                    ::std::vec![
60                        ::ethers::core::abi::ethabi::Function {
61                            name: ::std::borrow::ToOwned::to_owned("MINTER_ROLE"),
62                            inputs: ::std::vec![],
63                            outputs: ::std::vec![
64                                ::ethers::core::abi::ethabi::Param {
65                                    name: ::std::string::String::new(),
66                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
67                                        32usize,
68                                    ),
69                                    internal_type: ::core::option::Option::Some(
70                                        ::std::borrow::ToOwned::to_owned("bytes32"),
71                                    ),
72                                },
73                            ],
74                            constant: ::core::option::Option::None,
75                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
76                        },
77                    ],
78                ),
79                (
80                    ::std::borrow::ToOwned::to_owned("approve"),
81                    ::std::vec![
82                        ::ethers::core::abi::ethabi::Function {
83                            name: ::std::borrow::ToOwned::to_owned("approve"),
84                            inputs: ::std::vec![
85                                ::ethers::core::abi::ethabi::Param {
86                                    name: ::std::borrow::ToOwned::to_owned("to"),
87                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
88                                    internal_type: ::core::option::Option::Some(
89                                        ::std::borrow::ToOwned::to_owned("address"),
90                                    ),
91                                },
92                                ::ethers::core::abi::ethabi::Param {
93                                    name: ::std::borrow::ToOwned::to_owned("tokenId"),
94                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
95                                        256usize,
96                                    ),
97                                    internal_type: ::core::option::Option::Some(
98                                        ::std::borrow::ToOwned::to_owned("uint256"),
99                                    ),
100                                },
101                            ],
102                            outputs: ::std::vec![],
103                            constant: ::core::option::Option::None,
104                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
105                        },
106                    ],
107                ),
108                (
109                    ::std::borrow::ToOwned::to_owned("balanceOf"),
110                    ::std::vec![
111                        ::ethers::core::abi::ethabi::Function {
112                            name: ::std::borrow::ToOwned::to_owned("balanceOf"),
113                            inputs: ::std::vec![
114                                ::ethers::core::abi::ethabi::Param {
115                                    name: ::std::borrow::ToOwned::to_owned("owner"),
116                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
117                                    internal_type: ::core::option::Option::Some(
118                                        ::std::borrow::ToOwned::to_owned("address"),
119                                    ),
120                                },
121                            ],
122                            outputs: ::std::vec![
123                                ::ethers::core::abi::ethabi::Param {
124                                    name: ::std::string::String::new(),
125                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
126                                        256usize,
127                                    ),
128                                    internal_type: ::core::option::Option::Some(
129                                        ::std::borrow::ToOwned::to_owned("uint256"),
130                                    ),
131                                },
132                            ],
133                            constant: ::core::option::Option::None,
134                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
135                        },
136                    ],
137                ),
138                (
139                    ::std::borrow::ToOwned::to_owned("batchMint"),
140                    ::std::vec![
141                        ::ethers::core::abi::ethabi::Function {
142                            name: ::std::borrow::ToOwned::to_owned("batchMint"),
143                            inputs: ::std::vec![
144                                ::ethers::core::abi::ethabi::Param {
145                                    name: ::std::borrow::ToOwned::to_owned("to"),
146                                    kind: ::ethers::core::abi::ethabi::ParamType::Array(
147                                        ::std::boxed::Box::new(
148                                            ::ethers::core::abi::ethabi::ParamType::Address,
149                                        ),
150                                    ),
151                                    internal_type: ::core::option::Option::Some(
152                                        ::std::borrow::ToOwned::to_owned("address[]"),
153                                    ),
154                                },
155                                ::ethers::core::abi::ethabi::Param {
156                                    name: ::std::borrow::ToOwned::to_owned("boostType"),
157                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
158                                    internal_type: ::core::option::Option::Some(
159                                        ::std::borrow::ToOwned::to_owned("string"),
160                                    ),
161                                },
162                                ::ethers::core::abi::ethabi::Param {
163                                    name: ::std::borrow::ToOwned::to_owned("boostRank"),
164                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
165                                    internal_type: ::core::option::Option::Some(
166                                        ::std::borrow::ToOwned::to_owned("string"),
167                                    ),
168                                },
169                                ::ethers::core::abi::ethabi::Param {
170                                    name: ::std::borrow::ToOwned::to_owned("boostNumerator"),
171                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
172                                        256usize,
173                                    ),
174                                    internal_type: ::core::option::Option::Some(
175                                        ::std::borrow::ToOwned::to_owned("uint256"),
176                                    ),
177                                },
178                                ::ethers::core::abi::ethabi::Param {
179                                    name: ::std::borrow::ToOwned::to_owned("redeemDeadline"),
180                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
181                                        256usize,
182                                    ),
183                                    internal_type: ::core::option::Option::Some(
184                                        ::std::borrow::ToOwned::to_owned("uint256"),
185                                    ),
186                                },
187                            ],
188                            outputs: ::std::vec![],
189                            constant: ::core::option::Option::None,
190                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
191                        },
192                    ],
193                ),
194                (
195                    ::std::borrow::ToOwned::to_owned("boostOf"),
196                    ::std::vec![
197                        ::ethers::core::abi::ethabi::Function {
198                            name: ::std::borrow::ToOwned::to_owned("boostOf"),
199                            inputs: ::std::vec![
200                                ::ethers::core::abi::ethabi::Param {
201                                    name: ::std::borrow::ToOwned::to_owned("tokenId"),
202                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
203                                        256usize,
204                                    ),
205                                    internal_type: ::core::option::Option::Some(
206                                        ::std::borrow::ToOwned::to_owned("uint256"),
207                                    ),
208                                },
209                            ],
210                            outputs: ::std::vec![
211                                ::ethers::core::abi::ethabi::Param {
212                                    name: ::std::string::String::new(),
213                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
214                                        256usize,
215                                    ),
216                                    internal_type: ::core::option::Option::Some(
217                                        ::std::borrow::ToOwned::to_owned("uint256"),
218                                    ),
219                                },
220                                ::ethers::core::abi::ethabi::Param {
221                                    name: ::std::string::String::new(),
222                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
223                                        256usize,
224                                    ),
225                                    internal_type: ::core::option::Option::Some(
226                                        ::std::borrow::ToOwned::to_owned("uint256"),
227                                    ),
228                                },
229                            ],
230                            constant: ::core::option::Option::None,
231                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
232                        },
233                    ],
234                ),
235                (
236                    ::std::borrow::ToOwned::to_owned("getApproved"),
237                    ::std::vec![
238                        ::ethers::core::abi::ethabi::Function {
239                            name: ::std::borrow::ToOwned::to_owned("getApproved"),
240                            inputs: ::std::vec![
241                                ::ethers::core::abi::ethabi::Param {
242                                    name: ::std::borrow::ToOwned::to_owned("tokenId"),
243                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
244                                        256usize,
245                                    ),
246                                    internal_type: ::core::option::Option::Some(
247                                        ::std::borrow::ToOwned::to_owned("uint256"),
248                                    ),
249                                },
250                            ],
251                            outputs: ::std::vec![
252                                ::ethers::core::abi::ethabi::Param {
253                                    name: ::std::string::String::new(),
254                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
255                                    internal_type: ::core::option::Option::Some(
256                                        ::std::borrow::ToOwned::to_owned("address"),
257                                    ),
258                                },
259                            ],
260                            constant: ::core::option::Option::None,
261                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
262                        },
263                    ],
264                ),
265                (
266                    ::std::borrow::ToOwned::to_owned("getRoleAdmin"),
267                    ::std::vec![
268                        ::ethers::core::abi::ethabi::Function {
269                            name: ::std::borrow::ToOwned::to_owned("getRoleAdmin"),
270                            inputs: ::std::vec![
271                                ::ethers::core::abi::ethabi::Param {
272                                    name: ::std::borrow::ToOwned::to_owned("role"),
273                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
274                                        32usize,
275                                    ),
276                                    internal_type: ::core::option::Option::Some(
277                                        ::std::borrow::ToOwned::to_owned("bytes32"),
278                                    ),
279                                },
280                            ],
281                            outputs: ::std::vec![
282                                ::ethers::core::abi::ethabi::Param {
283                                    name: ::std::string::String::new(),
284                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
285                                        32usize,
286                                    ),
287                                    internal_type: ::core::option::Option::Some(
288                                        ::std::borrow::ToOwned::to_owned("bytes32"),
289                                    ),
290                                },
291                            ],
292                            constant: ::core::option::Option::None,
293                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
294                        },
295                    ],
296                ),
297                (
298                    ::std::borrow::ToOwned::to_owned("getRoleMember"),
299                    ::std::vec![
300                        ::ethers::core::abi::ethabi::Function {
301                            name: ::std::borrow::ToOwned::to_owned("getRoleMember"),
302                            inputs: ::std::vec![
303                                ::ethers::core::abi::ethabi::Param {
304                                    name: ::std::borrow::ToOwned::to_owned("role"),
305                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
306                                        32usize,
307                                    ),
308                                    internal_type: ::core::option::Option::Some(
309                                        ::std::borrow::ToOwned::to_owned("bytes32"),
310                                    ),
311                                },
312                                ::ethers::core::abi::ethabi::Param {
313                                    name: ::std::borrow::ToOwned::to_owned("index"),
314                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
315                                        256usize,
316                                    ),
317                                    internal_type: ::core::option::Option::Some(
318                                        ::std::borrow::ToOwned::to_owned("uint256"),
319                                    ),
320                                },
321                            ],
322                            outputs: ::std::vec![
323                                ::ethers::core::abi::ethabi::Param {
324                                    name: ::std::string::String::new(),
325                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
326                                    internal_type: ::core::option::Option::Some(
327                                        ::std::borrow::ToOwned::to_owned("address"),
328                                    ),
329                                },
330                            ],
331                            constant: ::core::option::Option::None,
332                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
333                        },
334                    ],
335                ),
336                (
337                    ::std::borrow::ToOwned::to_owned("getRoleMemberCount"),
338                    ::std::vec![
339                        ::ethers::core::abi::ethabi::Function {
340                            name: ::std::borrow::ToOwned::to_owned("getRoleMemberCount"),
341                            inputs: ::std::vec![
342                                ::ethers::core::abi::ethabi::Param {
343                                    name: ::std::borrow::ToOwned::to_owned("role"),
344                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
345                                        32usize,
346                                    ),
347                                    internal_type: ::core::option::Option::Some(
348                                        ::std::borrow::ToOwned::to_owned("bytes32"),
349                                    ),
350                                },
351                            ],
352                            outputs: ::std::vec![
353                                ::ethers::core::abi::ethabi::Param {
354                                    name: ::std::string::String::new(),
355                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
356                                        256usize,
357                                    ),
358                                    internal_type: ::core::option::Option::Some(
359                                        ::std::borrow::ToOwned::to_owned("uint256"),
360                                    ),
361                                },
362                            ],
363                            constant: ::core::option::Option::None,
364                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
365                        },
366                    ],
367                ),
368                (
369                    ::std::borrow::ToOwned::to_owned("grantRole"),
370                    ::std::vec![
371                        ::ethers::core::abi::ethabi::Function {
372                            name: ::std::borrow::ToOwned::to_owned("grantRole"),
373                            inputs: ::std::vec![
374                                ::ethers::core::abi::ethabi::Param {
375                                    name: ::std::borrow::ToOwned::to_owned("role"),
376                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
377                                        32usize,
378                                    ),
379                                    internal_type: ::core::option::Option::Some(
380                                        ::std::borrow::ToOwned::to_owned("bytes32"),
381                                    ),
382                                },
383                                ::ethers::core::abi::ethabi::Param {
384                                    name: ::std::borrow::ToOwned::to_owned("account"),
385                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
386                                    internal_type: ::core::option::Option::Some(
387                                        ::std::borrow::ToOwned::to_owned("address"),
388                                    ),
389                                },
390                            ],
391                            outputs: ::std::vec![],
392                            constant: ::core::option::Option::None,
393                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
394                        },
395                    ],
396                ),
397                (
398                    ::std::borrow::ToOwned::to_owned("hasRole"),
399                    ::std::vec![
400                        ::ethers::core::abi::ethabi::Function {
401                            name: ::std::borrow::ToOwned::to_owned("hasRole"),
402                            inputs: ::std::vec![
403                                ::ethers::core::abi::ethabi::Param {
404                                    name: ::std::borrow::ToOwned::to_owned("role"),
405                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
406                                        32usize,
407                                    ),
408                                    internal_type: ::core::option::Option::Some(
409                                        ::std::borrow::ToOwned::to_owned("bytes32"),
410                                    ),
411                                },
412                                ::ethers::core::abi::ethabi::Param {
413                                    name: ::std::borrow::ToOwned::to_owned("account"),
414                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
415                                    internal_type: ::core::option::Option::Some(
416                                        ::std::borrow::ToOwned::to_owned("address"),
417                                    ),
418                                },
419                            ],
420                            outputs: ::std::vec![
421                                ::ethers::core::abi::ethabi::Param {
422                                    name: ::std::string::String::new(),
423                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
424                                    internal_type: ::core::option::Option::Some(
425                                        ::std::borrow::ToOwned::to_owned("bool"),
426                                    ),
427                                },
428                            ],
429                            constant: ::core::option::Option::None,
430                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
431                        },
432                    ],
433                ),
434                (
435                    ::std::borrow::ToOwned::to_owned("isApprovedForAll"),
436                    ::std::vec![
437                        ::ethers::core::abi::ethabi::Function {
438                            name: ::std::borrow::ToOwned::to_owned("isApprovedForAll"),
439                            inputs: ::std::vec![
440                                ::ethers::core::abi::ethabi::Param {
441                                    name: ::std::borrow::ToOwned::to_owned("owner"),
442                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
443                                    internal_type: ::core::option::Option::Some(
444                                        ::std::borrow::ToOwned::to_owned("address"),
445                                    ),
446                                },
447                                ::ethers::core::abi::ethabi::Param {
448                                    name: ::std::borrow::ToOwned::to_owned("operator"),
449                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
450                                    internal_type: ::core::option::Option::Some(
451                                        ::std::borrow::ToOwned::to_owned("address"),
452                                    ),
453                                },
454                            ],
455                            outputs: ::std::vec![
456                                ::ethers::core::abi::ethabi::Param {
457                                    name: ::std::string::String::new(),
458                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
459                                    internal_type: ::core::option::Option::Some(
460                                        ::std::borrow::ToOwned::to_owned("bool"),
461                                    ),
462                                },
463                            ],
464                            constant: ::core::option::Option::None,
465                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
466                        },
467                    ],
468                ),
469                (
470                    ::std::borrow::ToOwned::to_owned("mint"),
471                    ::std::vec![
472                        ::ethers::core::abi::ethabi::Function {
473                            name: ::std::borrow::ToOwned::to_owned("mint"),
474                            inputs: ::std::vec![
475                                ::ethers::core::abi::ethabi::Param {
476                                    name: ::std::borrow::ToOwned::to_owned("to"),
477                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
478                                    internal_type: ::core::option::Option::Some(
479                                        ::std::borrow::ToOwned::to_owned("address"),
480                                    ),
481                                },
482                                ::ethers::core::abi::ethabi::Param {
483                                    name: ::std::borrow::ToOwned::to_owned("boostType"),
484                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
485                                    internal_type: ::core::option::Option::Some(
486                                        ::std::borrow::ToOwned::to_owned("string"),
487                                    ),
488                                },
489                                ::ethers::core::abi::ethabi::Param {
490                                    name: ::std::borrow::ToOwned::to_owned("boostRank"),
491                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
492                                    internal_type: ::core::option::Option::Some(
493                                        ::std::borrow::ToOwned::to_owned("string"),
494                                    ),
495                                },
496                                ::ethers::core::abi::ethabi::Param {
497                                    name: ::std::borrow::ToOwned::to_owned("boostNumerator"),
498                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
499                                        256usize,
500                                    ),
501                                    internal_type: ::core::option::Option::Some(
502                                        ::std::borrow::ToOwned::to_owned("uint256"),
503                                    ),
504                                },
505                                ::ethers::core::abi::ethabi::Param {
506                                    name: ::std::borrow::ToOwned::to_owned("redeemDeadline"),
507                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
508                                        256usize,
509                                    ),
510                                    internal_type: ::core::option::Option::Some(
511                                        ::std::borrow::ToOwned::to_owned("uint256"),
512                                    ),
513                                },
514                            ],
515                            outputs: ::std::vec![],
516                            constant: ::core::option::Option::None,
517                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
518                        },
519                    ],
520                ),
521                (
522                    ::std::borrow::ToOwned::to_owned("name"),
523                    ::std::vec![
524                        ::ethers::core::abi::ethabi::Function {
525                            name: ::std::borrow::ToOwned::to_owned("name"),
526                            inputs: ::std::vec![],
527                            outputs: ::std::vec![
528                                ::ethers::core::abi::ethabi::Param {
529                                    name: ::std::string::String::new(),
530                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
531                                    internal_type: ::core::option::Option::Some(
532                                        ::std::borrow::ToOwned::to_owned("string"),
533                                    ),
534                                },
535                            ],
536                            constant: ::core::option::Option::None,
537                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
538                        },
539                    ],
540                ),
541                (
542                    ::std::borrow::ToOwned::to_owned("ownerOf"),
543                    ::std::vec![
544                        ::ethers::core::abi::ethabi::Function {
545                            name: ::std::borrow::ToOwned::to_owned("ownerOf"),
546                            inputs: ::std::vec![
547                                ::ethers::core::abi::ethabi::Param {
548                                    name: ::std::borrow::ToOwned::to_owned("tokenId"),
549                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
550                                        256usize,
551                                    ),
552                                    internal_type: ::core::option::Option::Some(
553                                        ::std::borrow::ToOwned::to_owned("uint256"),
554                                    ),
555                                },
556                            ],
557                            outputs: ::std::vec![
558                                ::ethers::core::abi::ethabi::Param {
559                                    name: ::std::string::String::new(),
560                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
561                                    internal_type: ::core::option::Option::Some(
562                                        ::std::borrow::ToOwned::to_owned("address"),
563                                    ),
564                                },
565                            ],
566                            constant: ::core::option::Option::None,
567                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
568                        },
569                    ],
570                ),
571                (
572                    ::std::borrow::ToOwned::to_owned("reclaimErc20Tokens"),
573                    ::std::vec![
574                        ::ethers::core::abi::ethabi::Function {
575                            name: ::std::borrow::ToOwned::to_owned("reclaimErc20Tokens"),
576                            inputs: ::std::vec![
577                                ::ethers::core::abi::ethabi::Param {
578                                    name: ::std::borrow::ToOwned::to_owned("tokenAddress"),
579                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
580                                    internal_type: ::core::option::Option::Some(
581                                        ::std::borrow::ToOwned::to_owned("address"),
582                                    ),
583                                },
584                            ],
585                            outputs: ::std::vec![],
586                            constant: ::core::option::Option::None,
587                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
588                        },
589                    ],
590                ),
591                (
592                    ::std::borrow::ToOwned::to_owned("reclaimErc721Tokens"),
593                    ::std::vec![
594                        ::ethers::core::abi::ethabi::Function {
595                            name: ::std::borrow::ToOwned::to_owned(
596                                "reclaimErc721Tokens",
597                            ),
598                            inputs: ::std::vec![
599                                ::ethers::core::abi::ethabi::Param {
600                                    name: ::std::borrow::ToOwned::to_owned("tokenAddress"),
601                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
602                                    internal_type: ::core::option::Option::Some(
603                                        ::std::borrow::ToOwned::to_owned("address"),
604                                    ),
605                                },
606                                ::ethers::core::abi::ethabi::Param {
607                                    name: ::std::borrow::ToOwned::to_owned("tokenId"),
608                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
609                                        256usize,
610                                    ),
611                                    internal_type: ::core::option::Option::Some(
612                                        ::std::borrow::ToOwned::to_owned("uint256"),
613                                    ),
614                                },
615                            ],
616                            outputs: ::std::vec![],
617                            constant: ::core::option::Option::None,
618                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
619                        },
620                    ],
621                ),
622                (
623                    ::std::borrow::ToOwned::to_owned("renounceRole"),
624                    ::std::vec![
625                        ::ethers::core::abi::ethabi::Function {
626                            name: ::std::borrow::ToOwned::to_owned("renounceRole"),
627                            inputs: ::std::vec![
628                                ::ethers::core::abi::ethabi::Param {
629                                    name: ::std::borrow::ToOwned::to_owned("role"),
630                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
631                                        32usize,
632                                    ),
633                                    internal_type: ::core::option::Option::Some(
634                                        ::std::borrow::ToOwned::to_owned("bytes32"),
635                                    ),
636                                },
637                                ::ethers::core::abi::ethabi::Param {
638                                    name: ::std::borrow::ToOwned::to_owned("account"),
639                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
640                                    internal_type: ::core::option::Option::Some(
641                                        ::std::borrow::ToOwned::to_owned("address"),
642                                    ),
643                                },
644                            ],
645                            outputs: ::std::vec![],
646                            constant: ::core::option::Option::None,
647                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
648                        },
649                    ],
650                ),
651                (
652                    ::std::borrow::ToOwned::to_owned("revokeRole"),
653                    ::std::vec![
654                        ::ethers::core::abi::ethabi::Function {
655                            name: ::std::borrow::ToOwned::to_owned("revokeRole"),
656                            inputs: ::std::vec![
657                                ::ethers::core::abi::ethabi::Param {
658                                    name: ::std::borrow::ToOwned::to_owned("role"),
659                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
660                                        32usize,
661                                    ),
662                                    internal_type: ::core::option::Option::Some(
663                                        ::std::borrow::ToOwned::to_owned("bytes32"),
664                                    ),
665                                },
666                                ::ethers::core::abi::ethabi::Param {
667                                    name: ::std::borrow::ToOwned::to_owned("account"),
668                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
669                                    internal_type: ::core::option::Option::Some(
670                                        ::std::borrow::ToOwned::to_owned("address"),
671                                    ),
672                                },
673                            ],
674                            outputs: ::std::vec![],
675                            constant: ::core::option::Option::None,
676                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
677                        },
678                    ],
679                ),
680                (
681                    ::std::borrow::ToOwned::to_owned("safeTransferFrom"),
682                    ::std::vec![
683                        ::ethers::core::abi::ethabi::Function {
684                            name: ::std::borrow::ToOwned::to_owned("safeTransferFrom"),
685                            inputs: ::std::vec![
686                                ::ethers::core::abi::ethabi::Param {
687                                    name: ::std::borrow::ToOwned::to_owned("from"),
688                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
689                                    internal_type: ::core::option::Option::Some(
690                                        ::std::borrow::ToOwned::to_owned("address"),
691                                    ),
692                                },
693                                ::ethers::core::abi::ethabi::Param {
694                                    name: ::std::borrow::ToOwned::to_owned("to"),
695                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
696                                    internal_type: ::core::option::Option::Some(
697                                        ::std::borrow::ToOwned::to_owned("address"),
698                                    ),
699                                },
700                                ::ethers::core::abi::ethabi::Param {
701                                    name: ::std::borrow::ToOwned::to_owned("tokenId"),
702                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
703                                        256usize,
704                                    ),
705                                    internal_type: ::core::option::Option::Some(
706                                        ::std::borrow::ToOwned::to_owned("uint256"),
707                                    ),
708                                },
709                            ],
710                            outputs: ::std::vec![],
711                            constant: ::core::option::Option::None,
712                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
713                        },
714                        ::ethers::core::abi::ethabi::Function {
715                            name: ::std::borrow::ToOwned::to_owned("safeTransferFrom"),
716                            inputs: ::std::vec![
717                                ::ethers::core::abi::ethabi::Param {
718                                    name: ::std::borrow::ToOwned::to_owned("from"),
719                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
720                                    internal_type: ::core::option::Option::Some(
721                                        ::std::borrow::ToOwned::to_owned("address"),
722                                    ),
723                                },
724                                ::ethers::core::abi::ethabi::Param {
725                                    name: ::std::borrow::ToOwned::to_owned("to"),
726                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
727                                    internal_type: ::core::option::Option::Some(
728                                        ::std::borrow::ToOwned::to_owned("address"),
729                                    ),
730                                },
731                                ::ethers::core::abi::ethabi::Param {
732                                    name: ::std::borrow::ToOwned::to_owned("tokenId"),
733                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
734                                        256usize,
735                                    ),
736                                    internal_type: ::core::option::Option::Some(
737                                        ::std::borrow::ToOwned::to_owned("uint256"),
738                                    ),
739                                },
740                                ::ethers::core::abi::ethabi::Param {
741                                    name: ::std::borrow::ToOwned::to_owned("_data"),
742                                    kind: ::ethers::core::abi::ethabi::ParamType::Bytes,
743                                    internal_type: ::core::option::Option::Some(
744                                        ::std::borrow::ToOwned::to_owned("bytes"),
745                                    ),
746                                },
747                            ],
748                            outputs: ::std::vec![],
749                            constant: ::core::option::Option::None,
750                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
751                        },
752                    ],
753                ),
754                (
755                    ::std::borrow::ToOwned::to_owned("setApprovalForAll"),
756                    ::std::vec![
757                        ::ethers::core::abi::ethabi::Function {
758                            name: ::std::borrow::ToOwned::to_owned("setApprovalForAll"),
759                            inputs: ::std::vec![
760                                ::ethers::core::abi::ethabi::Param {
761                                    name: ::std::borrow::ToOwned::to_owned("operator"),
762                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
763                                    internal_type: ::core::option::Option::Some(
764                                        ::std::borrow::ToOwned::to_owned("address"),
765                                    ),
766                                },
767                                ::ethers::core::abi::ethabi::Param {
768                                    name: ::std::borrow::ToOwned::to_owned("approved"),
769                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
770                                    internal_type: ::core::option::Option::Some(
771                                        ::std::borrow::ToOwned::to_owned("bool"),
772                                    ),
773                                },
774                            ],
775                            outputs: ::std::vec![],
776                            constant: ::core::option::Option::None,
777                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
778                        },
779                    ],
780                ),
781                (
782                    ::std::borrow::ToOwned::to_owned("supportsInterface"),
783                    ::std::vec![
784                        ::ethers::core::abi::ethabi::Function {
785                            name: ::std::borrow::ToOwned::to_owned("supportsInterface"),
786                            inputs: ::std::vec![
787                                ::ethers::core::abi::ethabi::Param {
788                                    name: ::std::borrow::ToOwned::to_owned("interfaceId"),
789                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
790                                        4usize,
791                                    ),
792                                    internal_type: ::core::option::Option::Some(
793                                        ::std::borrow::ToOwned::to_owned("bytes4"),
794                                    ),
795                                },
796                            ],
797                            outputs: ::std::vec![
798                                ::ethers::core::abi::ethabi::Param {
799                                    name: ::std::string::String::new(),
800                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
801                                    internal_type: ::core::option::Option::Some(
802                                        ::std::borrow::ToOwned::to_owned("bool"),
803                                    ),
804                                },
805                            ],
806                            constant: ::core::option::Option::None,
807                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
808                        },
809                    ],
810                ),
811                (
812                    ::std::borrow::ToOwned::to_owned("symbol"),
813                    ::std::vec![
814                        ::ethers::core::abi::ethabi::Function {
815                            name: ::std::borrow::ToOwned::to_owned("symbol"),
816                            inputs: ::std::vec![],
817                            outputs: ::std::vec![
818                                ::ethers::core::abi::ethabi::Param {
819                                    name: ::std::string::String::new(),
820                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
821                                    internal_type: ::core::option::Option::Some(
822                                        ::std::borrow::ToOwned::to_owned("string"),
823                                    ),
824                                },
825                            ],
826                            constant: ::core::option::Option::None,
827                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
828                        },
829                    ],
830                ),
831                (
832                    ::std::borrow::ToOwned::to_owned("tokenByIndex"),
833                    ::std::vec![
834                        ::ethers::core::abi::ethabi::Function {
835                            name: ::std::borrow::ToOwned::to_owned("tokenByIndex"),
836                            inputs: ::std::vec![
837                                ::ethers::core::abi::ethabi::Param {
838                                    name: ::std::borrow::ToOwned::to_owned("index"),
839                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
840                                        256usize,
841                                    ),
842                                    internal_type: ::core::option::Option::Some(
843                                        ::std::borrow::ToOwned::to_owned("uint256"),
844                                    ),
845                                },
846                            ],
847                            outputs: ::std::vec![
848                                ::ethers::core::abi::ethabi::Param {
849                                    name: ::std::string::String::new(),
850                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
851                                        256usize,
852                                    ),
853                                    internal_type: ::core::option::Option::Some(
854                                        ::std::borrow::ToOwned::to_owned("uint256"),
855                                    ),
856                                },
857                            ],
858                            constant: ::core::option::Option::None,
859                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
860                        },
861                    ],
862                ),
863                (
864                    ::std::borrow::ToOwned::to_owned("tokenOfOwnerByIndex"),
865                    ::std::vec![
866                        ::ethers::core::abi::ethabi::Function {
867                            name: ::std::borrow::ToOwned::to_owned(
868                                "tokenOfOwnerByIndex",
869                            ),
870                            inputs: ::std::vec![
871                                ::ethers::core::abi::ethabi::Param {
872                                    name: ::std::borrow::ToOwned::to_owned("owner"),
873                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
874                                    internal_type: ::core::option::Option::Some(
875                                        ::std::borrow::ToOwned::to_owned("address"),
876                                    ),
877                                },
878                                ::ethers::core::abi::ethabi::Param {
879                                    name: ::std::borrow::ToOwned::to_owned("index"),
880                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
881                                        256usize,
882                                    ),
883                                    internal_type: ::core::option::Option::Some(
884                                        ::std::borrow::ToOwned::to_owned("uint256"),
885                                    ),
886                                },
887                            ],
888                            outputs: ::std::vec![
889                                ::ethers::core::abi::ethabi::Param {
890                                    name: ::std::string::String::new(),
891                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
892                                        256usize,
893                                    ),
894                                    internal_type: ::core::option::Option::Some(
895                                        ::std::borrow::ToOwned::to_owned("uint256"),
896                                    ),
897                                },
898                            ],
899                            constant: ::core::option::Option::None,
900                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
901                        },
902                    ],
903                ),
904                (
905                    ::std::borrow::ToOwned::to_owned("tokenURI"),
906                    ::std::vec![
907                        ::ethers::core::abi::ethabi::Function {
908                            name: ::std::borrow::ToOwned::to_owned("tokenURI"),
909                            inputs: ::std::vec![
910                                ::ethers::core::abi::ethabi::Param {
911                                    name: ::std::borrow::ToOwned::to_owned("tokenId"),
912                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
913                                        256usize,
914                                    ),
915                                    internal_type: ::core::option::Option::Some(
916                                        ::std::borrow::ToOwned::to_owned("uint256"),
917                                    ),
918                                },
919                            ],
920                            outputs: ::std::vec![
921                                ::ethers::core::abi::ethabi::Param {
922                                    name: ::std::string::String::new(),
923                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
924                                    internal_type: ::core::option::Option::Some(
925                                        ::std::borrow::ToOwned::to_owned("string"),
926                                    ),
927                                },
928                            ],
929                            constant: ::core::option::Option::None,
930                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
931                        },
932                    ],
933                ),
934                (
935                    ::std::borrow::ToOwned::to_owned("totalSupply"),
936                    ::std::vec![
937                        ::ethers::core::abi::ethabi::Function {
938                            name: ::std::borrow::ToOwned::to_owned("totalSupply"),
939                            inputs: ::std::vec![],
940                            outputs: ::std::vec![
941                                ::ethers::core::abi::ethabi::Param {
942                                    name: ::std::string::String::new(),
943                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
944                                        256usize,
945                                    ),
946                                    internal_type: ::core::option::Option::Some(
947                                        ::std::borrow::ToOwned::to_owned("uint256"),
948                                    ),
949                                },
950                            ],
951                            constant: ::core::option::Option::None,
952                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
953                        },
954                    ],
955                ),
956                (
957                    ::std::borrow::ToOwned::to_owned("transferFrom"),
958                    ::std::vec![
959                        ::ethers::core::abi::ethabi::Function {
960                            name: ::std::borrow::ToOwned::to_owned("transferFrom"),
961                            inputs: ::std::vec![
962                                ::ethers::core::abi::ethabi::Param {
963                                    name: ::std::borrow::ToOwned::to_owned("from"),
964                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
965                                    internal_type: ::core::option::Option::Some(
966                                        ::std::borrow::ToOwned::to_owned("address"),
967                                    ),
968                                },
969                                ::ethers::core::abi::ethabi::Param {
970                                    name: ::std::borrow::ToOwned::to_owned("to"),
971                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
972                                    internal_type: ::core::option::Option::Some(
973                                        ::std::borrow::ToOwned::to_owned("address"),
974                                    ),
975                                },
976                                ::ethers::core::abi::ethabi::Param {
977                                    name: ::std::borrow::ToOwned::to_owned("tokenId"),
978                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
979                                        256usize,
980                                    ),
981                                    internal_type: ::core::option::Option::Some(
982                                        ::std::borrow::ToOwned::to_owned("uint256"),
983                                    ),
984                                },
985                            ],
986                            outputs: ::std::vec![],
987                            constant: ::core::option::Option::None,
988                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
989                        },
990                    ],
991                ),
992                (
993                    ::std::borrow::ToOwned::to_owned("typeAt"),
994                    ::std::vec![
995                        ::ethers::core::abi::ethabi::Function {
996                            name: ::std::borrow::ToOwned::to_owned("typeAt"),
997                            inputs: ::std::vec![
998                                ::ethers::core::abi::ethabi::Param {
999                                    name: ::std::borrow::ToOwned::to_owned("typeIndex"),
1000                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1001                                        256usize,
1002                                    ),
1003                                    internal_type: ::core::option::Option::Some(
1004                                        ::std::borrow::ToOwned::to_owned("uint256"),
1005                                    ),
1006                                },
1007                            ],
1008                            outputs: ::std::vec![
1009                                ::ethers::core::abi::ethabi::Param {
1010                                    name: ::std::string::String::new(),
1011                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
1012                                    internal_type: ::core::option::Option::Some(
1013                                        ::std::borrow::ToOwned::to_owned("string"),
1014                                    ),
1015                                },
1016                            ],
1017                            constant: ::core::option::Option::None,
1018                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1019                        },
1020                    ],
1021                ),
1022                (
1023                    ::std::borrow::ToOwned::to_owned("typeIndexOf"),
1024                    ::std::vec![
1025                        ::ethers::core::abi::ethabi::Function {
1026                            name: ::std::borrow::ToOwned::to_owned("typeIndexOf"),
1027                            inputs: ::std::vec![
1028                                ::ethers::core::abi::ethabi::Param {
1029                                    name: ::std::borrow::ToOwned::to_owned("tokenId"),
1030                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1031                                        256usize,
1032                                    ),
1033                                    internal_type: ::core::option::Option::Some(
1034                                        ::std::borrow::ToOwned::to_owned("uint256"),
1035                                    ),
1036                                },
1037                            ],
1038                            outputs: ::std::vec![
1039                                ::ethers::core::abi::ethabi::Param {
1040                                    name: ::std::string::String::new(),
1041                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1042                                        256usize,
1043                                    ),
1044                                    internal_type: ::core::option::Option::Some(
1045                                        ::std::borrow::ToOwned::to_owned("uint256"),
1046                                    ),
1047                                },
1048                            ],
1049                            constant: ::core::option::Option::None,
1050                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1051                        },
1052                    ],
1053                ),
1054                (
1055                    ::std::borrow::ToOwned::to_owned("typeOf"),
1056                    ::std::vec![
1057                        ::ethers::core::abi::ethabi::Function {
1058                            name: ::std::borrow::ToOwned::to_owned("typeOf"),
1059                            inputs: ::std::vec![
1060                                ::ethers::core::abi::ethabi::Param {
1061                                    name: ::std::borrow::ToOwned::to_owned("tokenId"),
1062                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1063                                        256usize,
1064                                    ),
1065                                    internal_type: ::core::option::Option::Some(
1066                                        ::std::borrow::ToOwned::to_owned("uint256"),
1067                                    ),
1068                                },
1069                            ],
1070                            outputs: ::std::vec![
1071                                ::ethers::core::abi::ethabi::Param {
1072                                    name: ::std::string::String::new(),
1073                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
1074                                    internal_type: ::core::option::Option::Some(
1075                                        ::std::borrow::ToOwned::to_owned("string"),
1076                                    ),
1077                                },
1078                            ],
1079                            constant: ::core::option::Option::None,
1080                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::View,
1081                        },
1082                    ],
1083                ),
1084                (
1085                    ::std::borrow::ToOwned::to_owned("updateBaseURI"),
1086                    ::std::vec![
1087                        ::ethers::core::abi::ethabi::Function {
1088                            name: ::std::borrow::ToOwned::to_owned("updateBaseURI"),
1089                            inputs: ::std::vec![
1090                                ::ethers::core::abi::ethabi::Param {
1091                                    name: ::std::borrow::ToOwned::to_owned("baseTokenURI"),
1092                                    kind: ::ethers::core::abi::ethabi::ParamType::String,
1093                                    internal_type: ::core::option::Option::Some(
1094                                        ::std::borrow::ToOwned::to_owned("string"),
1095                                    ),
1096                                },
1097                            ],
1098                            outputs: ::std::vec![],
1099                            constant: ::core::option::Option::None,
1100                            state_mutability: ::ethers::core::abi::ethabi::StateMutability::NonPayable,
1101                        },
1102                    ],
1103                ),
1104            ]),
1105            events: ::core::convert::From::from([
1106                (
1107                    ::std::borrow::ToOwned::to_owned("Approval"),
1108                    ::std::vec![
1109                        ::ethers::core::abi::ethabi::Event {
1110                            name: ::std::borrow::ToOwned::to_owned("Approval"),
1111                            inputs: ::std::vec![
1112                                ::ethers::core::abi::ethabi::EventParam {
1113                                    name: ::std::borrow::ToOwned::to_owned("owner"),
1114                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1115                                    indexed: true,
1116                                },
1117                                ::ethers::core::abi::ethabi::EventParam {
1118                                    name: ::std::borrow::ToOwned::to_owned("approved"),
1119                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1120                                    indexed: true,
1121                                },
1122                                ::ethers::core::abi::ethabi::EventParam {
1123                                    name: ::std::borrow::ToOwned::to_owned("tokenId"),
1124                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1125                                        256usize,
1126                                    ),
1127                                    indexed: true,
1128                                },
1129                            ],
1130                            anonymous: false,
1131                        },
1132                    ],
1133                ),
1134                (
1135                    ::std::borrow::ToOwned::to_owned("ApprovalForAll"),
1136                    ::std::vec![
1137                        ::ethers::core::abi::ethabi::Event {
1138                            name: ::std::borrow::ToOwned::to_owned("ApprovalForAll"),
1139                            inputs: ::std::vec![
1140                                ::ethers::core::abi::ethabi::EventParam {
1141                                    name: ::std::borrow::ToOwned::to_owned("owner"),
1142                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1143                                    indexed: true,
1144                                },
1145                                ::ethers::core::abi::ethabi::EventParam {
1146                                    name: ::std::borrow::ToOwned::to_owned("operator"),
1147                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1148                                    indexed: true,
1149                                },
1150                                ::ethers::core::abi::ethabi::EventParam {
1151                                    name: ::std::borrow::ToOwned::to_owned("approved"),
1152                                    kind: ::ethers::core::abi::ethabi::ParamType::Bool,
1153                                    indexed: false,
1154                                },
1155                            ],
1156                            anonymous: false,
1157                        },
1158                    ],
1159                ),
1160                (
1161                    ::std::borrow::ToOwned::to_owned("BoostMinted"),
1162                    ::std::vec![
1163                        ::ethers::core::abi::ethabi::Event {
1164                            name: ::std::borrow::ToOwned::to_owned("BoostMinted"),
1165                            inputs: ::std::vec![
1166                                ::ethers::core::abi::ethabi::EventParam {
1167                                    name: ::std::borrow::ToOwned::to_owned("boostTypeIndex"),
1168                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1169                                        256usize,
1170                                    ),
1171                                    indexed: true,
1172                                },
1173                                ::ethers::core::abi::ethabi::EventParam {
1174                                    name: ::std::borrow::ToOwned::to_owned("boostNumerator"),
1175                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1176                                        256usize,
1177                                    ),
1178                                    indexed: true,
1179                                },
1180                                ::ethers::core::abi::ethabi::EventParam {
1181                                    name: ::std::borrow::ToOwned::to_owned("redeemDeadline"),
1182                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1183                                        256usize,
1184                                    ),
1185                                    indexed: true,
1186                                },
1187                            ],
1188                            anonymous: false,
1189                        },
1190                    ],
1191                ),
1192                (
1193                    ::std::borrow::ToOwned::to_owned("RoleAdminChanged"),
1194                    ::std::vec![
1195                        ::ethers::core::abi::ethabi::Event {
1196                            name: ::std::borrow::ToOwned::to_owned("RoleAdminChanged"),
1197                            inputs: ::std::vec![
1198                                ::ethers::core::abi::ethabi::EventParam {
1199                                    name: ::std::borrow::ToOwned::to_owned("role"),
1200                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1201                                        32usize,
1202                                    ),
1203                                    indexed: true,
1204                                },
1205                                ::ethers::core::abi::ethabi::EventParam {
1206                                    name: ::std::borrow::ToOwned::to_owned("previousAdminRole"),
1207                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1208                                        32usize,
1209                                    ),
1210                                    indexed: true,
1211                                },
1212                                ::ethers::core::abi::ethabi::EventParam {
1213                                    name: ::std::borrow::ToOwned::to_owned("newAdminRole"),
1214                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1215                                        32usize,
1216                                    ),
1217                                    indexed: true,
1218                                },
1219                            ],
1220                            anonymous: false,
1221                        },
1222                    ],
1223                ),
1224                (
1225                    ::std::borrow::ToOwned::to_owned("RoleGranted"),
1226                    ::std::vec![
1227                        ::ethers::core::abi::ethabi::Event {
1228                            name: ::std::borrow::ToOwned::to_owned("RoleGranted"),
1229                            inputs: ::std::vec![
1230                                ::ethers::core::abi::ethabi::EventParam {
1231                                    name: ::std::borrow::ToOwned::to_owned("role"),
1232                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1233                                        32usize,
1234                                    ),
1235                                    indexed: true,
1236                                },
1237                                ::ethers::core::abi::ethabi::EventParam {
1238                                    name: ::std::borrow::ToOwned::to_owned("account"),
1239                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1240                                    indexed: true,
1241                                },
1242                                ::ethers::core::abi::ethabi::EventParam {
1243                                    name: ::std::borrow::ToOwned::to_owned("sender"),
1244                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1245                                    indexed: true,
1246                                },
1247                            ],
1248                            anonymous: false,
1249                        },
1250                    ],
1251                ),
1252                (
1253                    ::std::borrow::ToOwned::to_owned("RoleRevoked"),
1254                    ::std::vec![
1255                        ::ethers::core::abi::ethabi::Event {
1256                            name: ::std::borrow::ToOwned::to_owned("RoleRevoked"),
1257                            inputs: ::std::vec![
1258                                ::ethers::core::abi::ethabi::EventParam {
1259                                    name: ::std::borrow::ToOwned::to_owned("role"),
1260                                    kind: ::ethers::core::abi::ethabi::ParamType::FixedBytes(
1261                                        32usize,
1262                                    ),
1263                                    indexed: true,
1264                                },
1265                                ::ethers::core::abi::ethabi::EventParam {
1266                                    name: ::std::borrow::ToOwned::to_owned("account"),
1267                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1268                                    indexed: true,
1269                                },
1270                                ::ethers::core::abi::ethabi::EventParam {
1271                                    name: ::std::borrow::ToOwned::to_owned("sender"),
1272                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1273                                    indexed: true,
1274                                },
1275                            ],
1276                            anonymous: false,
1277                        },
1278                    ],
1279                ),
1280                (
1281                    ::std::borrow::ToOwned::to_owned("Transfer"),
1282                    ::std::vec![
1283                        ::ethers::core::abi::ethabi::Event {
1284                            name: ::std::borrow::ToOwned::to_owned("Transfer"),
1285                            inputs: ::std::vec![
1286                                ::ethers::core::abi::ethabi::EventParam {
1287                                    name: ::std::borrow::ToOwned::to_owned("from"),
1288                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1289                                    indexed: true,
1290                                },
1291                                ::ethers::core::abi::ethabi::EventParam {
1292                                    name: ::std::borrow::ToOwned::to_owned("to"),
1293                                    kind: ::ethers::core::abi::ethabi::ParamType::Address,
1294                                    indexed: true,
1295                                },
1296                                ::ethers::core::abi::ethabi::EventParam {
1297                                    name: ::std::borrow::ToOwned::to_owned("tokenId"),
1298                                    kind: ::ethers::core::abi::ethabi::ParamType::Uint(
1299                                        256usize,
1300                                    ),
1301                                    indexed: true,
1302                                },
1303                            ],
1304                            anonymous: false,
1305                        },
1306                    ],
1307                ),
1308            ]),
1309            errors: ::std::collections::BTreeMap::new(),
1310            receive: false,
1311            fallback: false,
1312        }
1313    }
1314    ///The parsed JSON ABI of the contract.
1315    pub static HOPRBOOST_ABI: ::ethers::contract::Lazy<::ethers::core::abi::Abi> = ::ethers::contract::Lazy::new(
1316        __abi,
1317    );
1318    #[rustfmt::skip]
1319    const __BYTECODE: &[u8] = b"`\x80`@R4\x80\x15b\0\0\x11W`\0\x80\xFD[P`@Qb\x004\xDB8\x03\x80b\x004\xDB\x839\x81\x01`@\x81\x90Rb\0\x004\x91b\0\x02YV[`@Q\x80`@\x01`@R\x80`\x0E\x81R` \x01m\x12\x13\xD4\x14\x88\x10\x9B\xDB\xDC\xDD\x08\x13\x91\x95`\x92\x1B\x81RP`@Q\x80`@\x01`@R\x80`\n\x81R` \x01i\x12\x13\xD4\x14\x88\x10\x9B\xDB\xDC\xDD`\xB2\x1B\x81RP\x81`\x02\x90\x81b\0\0\x8F\x91\x90b\0\x03\xDDV[P`\x03b\0\0\x9E\x82\x82b\0\x03\xDDV[PP`\x01`\rUP`\x0Eb\0\0\xB4\x82\x82b\0\x03\xDDV[Pb\0\0\xC2`\0\x83b\0\0\xF6V[b\0\0\xEE\x7F\x9F-\xF0\xFE\xD2\xC7vH\xDEX`\xA4\xCCP\x8C\xD0\x81\x8C\x85\xB8\xB8\xA1\xABL\xEE\xEF\x8D\x98\x1C\x89V\xA6\x83b\0\0\xF6V[PPb\0\x04\xA9V[b\0\x01\x02\x82\x82b\0\x01\x06V[PPV[b\0\x01\x12\x82\x82b\0\x011V[`\0\x82\x81R`\x01` R`@\x90 b\0\x01,\x90\x82b\0\x01\xD1V[PPPV[`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x84R\x90\x91R\x90 T`\xFF\x16b\0\x01\x02W`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x84R\x90\x91R\x90 \x80T`\xFF\x19\x16`\x01\x17\x90Ub\0\x01\x8D3\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x83\x7F/\x87\x88\x11~~\xFF\x1D\x82\xE9&\xECyI\x01\xD1|x\x02JP'\t@0E@\xA73eo\r`@Q`@Q\x80\x91\x03\x90\xA4PPV[`\0b\0\x01\xE8\x83`\x01`\x01`\xA0\x1B\x03\x84\x16b\0\x01\xF1V[\x90P[\x92\x91PPV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Tb\0\x02:WP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ub\0\x01\xEBV[P`\0b\0\x01\xEBV[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0\x80`@\x83\x85\x03\x12\x15b\0\x02mW`\0\x80\xFD[\x82Q`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14b\0\x02\x85W`\0\x80\xFD[` \x84\x81\x01Q\x91\x93P\x90`\x01`\x01`@\x1B\x03\x80\x82\x11\x15b\0\x02\xA5W`\0\x80\xFD[\x81\x86\x01\x91P\x86`\x1F\x83\x01\x12b\0\x02\xBAW`\0\x80\xFD[\x81Q\x81\x81\x11\x15b\0\x02\xCFWb\0\x02\xCFb\0\x02CV[`@Q`\x1F\x82\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x83\x82\x11\x81\x83\x10\x17\x15b\0\x02\xFAWb\0\x02\xFAb\0\x02CV[\x81`@R\x82\x81R\x89\x86\x84\x87\x01\x01\x11\x15b\0\x03\x13W`\0\x80\xFD[`\0\x93P[\x82\x84\x10\x15b\0\x037W\x84\x84\x01\x86\x01Q\x81\x85\x01\x87\x01R\x92\x85\x01\x92b\0\x03\x18V[`\0\x86\x84\x83\x01\x01R\x80\x96PPPPPPP\x92P\x92\x90PV[`\x01\x81\x81\x1C\x90\x82\x16\x80b\0\x03dW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03b\0\x03\x85WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[`\x1F\x82\x11\x15b\0\x01,W`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15b\0\x03\xB4WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15b\0\x03\xD5W\x82\x81U`\x01\x01b\0\x03\xC0V[PPPPPPV[\x81Q`\x01`\x01`@\x1B\x03\x81\x11\x15b\0\x03\xF9Wb\0\x03\xF9b\0\x02CV[b\0\x04\x11\x81b\0\x04\n\x84Tb\0\x03OV[\x84b\0\x03\x8BV[` \x80`\x1F\x83\x11`\x01\x81\x14b\0\x04IW`\0\x84\x15b\0\x040WP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ub\0\x03\xD5V[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15b\0\x04zW\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01b\0\x04YV[P\x85\x82\x10\x15b\0\x04\x99W\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[a0\"\x80b\0\x04\xB9`\09`\0\xF3\xFE`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x02\x06W`\x005`\xE0\x1C\x80cp\xA0\x821\x11a\x01\x1AW\x80c\xA2,\xB4e\x11a\0\xADW\x80c\xC8{V\xDD\x11a\0|W\x80c\xC8{V\xDD\x14a\x04\x98W\x80c\xCA\x15\xC8s\x14a\x04\xABW\x80c\xD59\x13\x93\x14a\x04\xBEW\x80c\xD5Gt\x1F\x14a\x04\xE5W\x80c\xE9\x85\xE9\xC5\x14a\x04\xF8W`\0\x80\xFD[\x80c\xA2,\xB4e\x14a\x04LW\x80c\xB5\x18Z\x88\x14a\x04_W\x80c\xB8\x8DO\xDE\x14a\x04rW\x80c\xC5\x88\xFF\x8B\x14a\x04\x85W`\0\x80\xFD[\x80c\x93\x16\x88\xCB\x11a\0\xE9W\x80c\x93\x16\x88\xCB\x14a\x04\x16W\x80c\x93e\xC53\x14a\x04)W\x80c\x95\xD8\x9BA\x14a\x04<W\x80c\xA2\x17\xFD\xDF\x14a\x04DW`\0\x80\xFD[\x80cp\xA0\x821\x14a\x03\x9BW\x80c\x89l\xDD\xF4\x14a\x03\xAEW\x80c\x90\x10\xD0|\x14a\x03\xF0W\x80c\x91\xD1HT\x14a\x04\x03W`\0\x80\xFD[\x80c//\xF1]\x11a\x01\x9DW\x80cH\xC6NA\x11a\x01lW\x80cH\xC6NA\x14a\x03/W\x80cOl\xCC\xE7\x14a\x03BW\x80cV#\x17\xC5\x14a\x03UW\x80c`g\xBC\x15\x14a\x03uW\x80ccR!\x1E\x14a\x03\x88W`\0\x80\xFD[\x80c//\xF1]\x14a\x02\xE3W\x80c/t\\Y\x14a\x02\xF6W\x80c6V\x8A\xBE\x14a\x03\tW\x80cB\x84.\x0E\x14a\x03\x1CW`\0\x80\xFD[\x80c\x18\x16\r\xDD\x11a\x01\xD9W\x80c\x18\x16\r\xDD\x14a\x02\x88W\x80c#\xB8r\xDD\x14a\x02\x9AW\x80c$\x8A\x9C\xA3\x14a\x02\xADW\x80c)\x86}\xAC\x14a\x02\xD0W`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x02\x0BW\x80c\x06\xFD\xDE\x03\x14a\x023W\x80c\x08\x18\x12\xFC\x14a\x02HW\x80c\t^\xA7\xB3\x14a\x02sW[`\0\x80\xFD[a\x02\x1Ea\x02\x196`\x04a&oV[a\x054V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x02;a\x05_V[`@Qa\x02*\x91\x90a&\xDCV[a\x02[a\x02V6`\x04a&\xEFV[a\x05\xF1V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02*V[a\x02\x86a\x02\x816`\x04a'$V[a\x06~V[\0[`\x0BT[`@Q\x90\x81R` \x01a\x02*V[a\x02\x86a\x02\xA86`\x04a'NV[a\x07\x93V[a\x02\x8Ca\x02\xBB6`\x04a&\xEFV[`\0\x90\x81R` \x81\x90R`@\x90 `\x01\x01T\x90V[a\x02\x86a\x02\xDE6`\x04a(6V[a\x07\xC4V[a\x02\x86a\x02\xF16`\x04a(\xBCV[a\x08vV[a\x02\x8Ca\x03\x046`\x04a'$V[a\x08\x9CV[a\x02\x86a\x03\x176`\x04a(\xBCV[a\t2V[a\x02\x86a\x03*6`\x04a'NV[a\t\xB0V[a\x02\x86a\x03=6`\x04a'$V[a\t\xCBV[a\x02\x8Ca\x03P6`\x04a&\xEFV[a\n\xA4V[a\x02\x8Ca\x03c6`\x04a&\xEFV[`\0\x90\x81R`\x13` R`@\x90 T\x90V[a\x02\x86a\x03\x836`\x04a(\xE8V[a\x0B7V[a\x02[a\x03\x966`\x04a&\xEFV[a\x0C V[a\x02\x8Ca\x03\xA96`\x04a(\xE8V[a\x0C\x97V[a\x03\xDBa\x03\xBC6`\x04a&\xEFV[`\0\x90\x81R`\x11` \x90\x81R`@\x80\x83 T`\x12\x90\x92R\x90\x91 T\x90\x91V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x02*V[a\x02[a\x03\xFE6`\x04a)\x03V[a\r\x1EV[a\x02\x1Ea\x04\x116`\x04a(\xBCV[a\r=V[a\x02\x86a\x04$6`\x04a)%V[a\rfV[a\x02\x86a\x0476`\x04a)\xA3V[a\r~V[a\x02;a\x0E\xEBV[a\x02\x8C`\0\x81V[a\x02\x86a\x04Z6`\x04a*\x88V[a\x0E\xFAV[a\x02;a\x04m6`\x04a&\xEFV[a\x0F\x05V[a\x02\x86a\x04\x806`\x04a*\xBFV[a\x0F\x12V[a\x02;a\x04\x936`\x04a&\xEFV[a\x0FJV[a\x02;a\x04\xA66`\x04a&\xEFV[a\x0FhV[a\x02\x8Ca\x04\xB96`\x04a&\xEFV[a\x0FsV[a\x02\x8C\x7F\x9F-\xF0\xFE\xD2\xC7vH\xDEX`\xA4\xCCP\x8C\xD0\x81\x8C\x85\xB8\xB8\xA1\xABL\xEE\xEF\x8D\x98\x1C\x89V\xA6\x81V[a\x02\x86a\x04\xF36`\x04a(\xBCV[a\x0F\x8AV[a\x02\x1Ea\x05\x066`\x04a+;V[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\0\x90\x81R`\x07` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T`\xFF\x16\x90V[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c\rc\x9A\xDD`\xE1\x1B\x14\x80a\x05YWPa\x05Y\x82a\x0F\xB0V[\x92\x91PPV[```\x02\x80Ta\x05n\x90a+eV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x05\x9A\x90a+eV[\x80\x15a\x05\xE7W\x80`\x1F\x10a\x05\xBCWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x05\xE7V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x05\xCAW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[`\0a\x05\xFC\x82a\x0F\xD5V[a\x06bW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FERC721: approved query for nonex`D\x82\x01Rk4\xB9\xBA2\xB7:\x10:7\xB5\xB2\xB7`\xA1\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[P`\0\x90\x81R`\x06` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\0a\x06\x89\x82a\x0C V[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x06\xF6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FERC721: approval to current owne`D\x82\x01R`9`\xF9\x1B`d\x82\x01R`\x84\x01a\x06YV[3`\x01`\x01`\xA0\x1B\x03\x82\x16\x14\x80a\x07\x12WPa\x07\x12\x813a\x05\x06V[a\x07\x84W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R\x7FERC721: approve caller is not ow`D\x82\x01R\x7Fner nor approved for all\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06YV[a\x07\x8E\x83\x83a\x0F\xF2V[PPPV[a\x07\x9D3\x82a\x10`V[a\x07\xB9W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06Y\x90a+\x9FV[a\x07\x8E\x83\x83\x83a\x11JV[\x7F\x9F-\xF0\xFE\xD2\xC7vH\xDEX`\xA4\xCCP\x8C\xD0\x81\x8C\x85\xB8\xB8\xA1\xABL\xEE\xEF\x8D\x98\x1C\x89V\xA6a\x07\xEF\x813a\x12\xF5V[a\x07\xFA`\x0F\x86a\x13YV[P`\0a\x08\x08`\x0F\x87a\x14\x06V[\x90P`\0\x86\x86`@Q` \x01a\x08\x1F\x92\x91\x90a+\xF0V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90Pa\x08=\x88\x86\x86\x85\x85a\x141V[\x83\x85\x83\x7Fs^^\xB5\xAF\xDDr\xCCde}\xED~]\xE3\x90\xAF7\x08\xAF\xB5\xB9\xA8\x0B\x0E\\\x91\x1A\x04\x99\xD9\x8F`@Q`@Q\x80\x91\x03\x90\xA4PPPPPPPPV[`\0\x82\x81R` \x81\x90R`@\x90 `\x01\x01Ta\x08\x92\x813a\x12\xF5V[a\x07\x8E\x83\x83a\x14\x82V[`\0a\x08\xA7\x83a\x0C\x97V[\x82\x10a\t\tW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FERC721Enumerable: owner index ou`D\x82\x01Rjt of bounds`\xA8\x1B`d\x82\x01R`\x84\x01a\x06YV[P`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a\t\xA2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FAccessControl: can only renounce`D\x82\x01Rn\x1097\xB62\xB9\x9037\xB9\x109\xB2\xB63`\x89\x1B`d\x82\x01R`\x84\x01a\x06YV[a\t\xAC\x82\x82a\x14\xA4V[PPV[a\x07\x8E\x83\x83\x83`@Q\x80` \x01`@R\x80`\0\x81RPa\x0F\x12V[`\0a\t\xD7\x813a\x12\xF5V[`\x02`\rT\x03a\n)W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x06YV[`\x02`\rU`@\x80Qc#\xB8r\xDD`\xE0\x1B\x81R0`\x04\x82\x01R3`$\x82\x01R`D\x81\x01\x84\x90R\x90Q`\x01`\x01`\xA0\x1B\x03\x85\x16\x91c#\xB8r\xDD\x91`d\x80\x83\x01\x92`\0\x92\x91\x90\x82\x90\x03\x01\x81\x83\x87\x80;\x15\x80\x15a\n\x82W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\n\x96W=`\0\x80>=`\0\xFD[PP`\x01`\rUPPPPPV[`\0a\n\xAF`\x0BT\x90V[\x82\x10a\x0B\x12W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FERC721Enumerable: global index o`D\x82\x01Rkut of bounds`\xA0\x1B`d\x82\x01R`\x84\x01a\x06YV[`\x0B\x82\x81T\x81\x10a\x0B%Wa\x0B%a,,V[\x90`\0R` `\0 \x01T\x90P\x91\x90PV[`\0a\x0BC\x813a\x12\xF5V[`\x02`\rT\x03a\x0B\x95W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x06YV[`\x02`\rUa\x0C\x173`@Qcp\xA0\x821`\xE0\x1B\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x85\x16\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xE2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x06\x91\x90a,BV[`\x01`\x01`\xA0\x1B\x03\x85\x16\x91\x90a\x14\xC6V[PP`\x01`\rUV[`\0\x81\x81R`\x04` R`@\x81 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\x05YW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`)`$\x82\x01R\x7FERC721: owner query for nonexist`D\x82\x01Rh2\xB7:\x10:7\xB5\xB2\xB7`\xB9\x1B`d\x82\x01R`\x84\x01a\x06YV[`\0`\x01`\x01`\xA0\x1B\x03\x82\x16a\r\x02W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FERC721: balance query for the ze`D\x82\x01Riro address`\xB0\x1B`d\x82\x01R`\x84\x01a\x06YV[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x05` R`@\x90 T\x90V[`\0\x82\x81R`\x01` R`@\x81 a\r6\x90\x83a\x15\x18V[\x93\x92PPPV[`\0\x91\x82R` \x82\x81R`@\x80\x84 `\x01`\x01`\xA0\x1B\x03\x93\x90\x93\x16\x84R\x91\x90R\x90 T`\xFF\x16\x90V[`\0a\rr\x813a\x12\xF5V[`\x0Ea\x07\x8E\x83\x82a,\xA1V[\x7F\x9F-\xF0\xFE\xD2\xC7vH\xDEX`\xA4\xCCP\x8C\xD0\x81\x8C\x85\xB8\xB8\xA1\xABL\xEE\xEF\x8D\x98\x1C\x89V\xA6a\r\xA9\x813a\x12\xF5V[a\r\xEC\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP`\x0F\x93\x92PPa\x13Y\x90PV[P`\0a\x0E2\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP`\x0F\x93\x92PPa\x14\x06\x90PV[\x90P`\0\x88\x88\x88\x88`@Q` \x01a\x0EM\x94\x93\x92\x91\x90a-aV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0[\x8A\x81\x10\x15a\x0E\xAEWa\x0E\x9C\x8C\x8C\x83\x81\x81\x10a\x0E~Wa\x0E~a,,V[\x90P` \x02\x01` \x81\x01\x90a\x0E\x93\x91\x90a(\xE8V[\x87\x87\x86\x86a\x141V[\x80a\x0E\xA6\x81a-\xA2V[\x91PPa\x0EaV[P\x83\x85\x83\x7Fs^^\xB5\xAF\xDDr\xCCde}\xED~]\xE3\x90\xAF7\x08\xAF\xB5\xB9\xA8\x0B\x0E\\\x91\x1A\x04\x99\xD9\x8F`@Q`@Q\x80\x91\x03\x90\xA4PPPPPPPPPPPV[```\x03\x80Ta\x05n\x90a+eV[a\t\xAC3\x83\x83a\x15$V[``a\x05Y`\x0F\x83a\x15\xF2V[a\x0F\x1C3\x83a\x10`V[a\x0F8W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06Y\x90a+\x9FV[a\x0FD\x84\x84\x84\x84a\x16\xABV[PPPPV[`\0\x81\x81R`\x13` R`@\x90 T``\x90a\x05Y\x90`\x0F\x90a\x15\xF2V[``a\x05Y\x82a\x16\xDEV[`\0\x81\x81R`\x01` R`@\x81 a\x05Y\x90a\x18?V[`\0\x82\x81R` \x81\x90R`@\x90 `\x01\x01Ta\x0F\xA6\x813a\x12\xF5V[a\x07\x8E\x83\x83a\x14\xA4V[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cx\x0E\x9Dc`\xE0\x1B\x14\x80a\x05YWPa\x05Y\x82a\x18IV[`\0\x90\x81R`\x04` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x15\x15\x90V[`\0\x81\x81R`\x06` R`@\x90 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x81\x17\x90\x91U\x81\x90a\x10'\x82a\x0C V[`\x01`\x01`\xA0\x1B\x03\x16\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%`@Q`@Q\x80\x91\x03\x90\xA4PPV[`\0a\x10k\x82a\x0F\xD5V[a\x10\xCCW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FERC721: operator query for nonex`D\x82\x01Rk4\xB9\xBA2\xB7:\x10:7\xB5\xB2\xB7`\xA1\x1B`d\x82\x01R`\x84\x01a\x06YV[`\0a\x10\xD7\x83a\x0C V[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01`\x01`\xA0\x1B\x03\x16\x14\x80a\x11\x12WP\x83`\x01`\x01`\xA0\x1B\x03\x16a\x11\x07\x84a\x05\xF1V[`\x01`\x01`\xA0\x1B\x03\x16\x14[\x80a\x11BWP`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x90\x81R`\x07` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R T`\xFF\x16[\x94\x93PPPPV[\x82`\x01`\x01`\xA0\x1B\x03\x16a\x11]\x82a\x0C V[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x11\xC5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`)`$\x82\x01R\x7FERC721: transfer of token that i`D\x82\x01Rh9\x9077\xBA\x107\xBB\xB7`\xB9\x1B`d\x82\x01R`\x84\x01a\x06YV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x12'W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FERC721: transfer to the zero add`D\x82\x01Rcress`\xE0\x1B`d\x82\x01R`\x84\x01a\x06YV[a\x122\x83\x83\x83a\x18\x89V[a\x12=`\0\x82a\x0F\xF2V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x05` R`@\x81 \x80T`\x01\x92\x90a\x12f\x90\x84\x90a-\xBBV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x05` R`@\x81 \x80T`\x01\x92\x90a\x12\x94\x90\x84\x90a-\xCEV[\x90\x91UPP`\0\x81\x81R`\x04` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x86\x81\x16\x91\x82\x17\x90\x92U\x91Q\x84\x93\x91\x87\x16\x91\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x91\xA4PPPV[a\x12\xFF\x82\x82a\r=V[a\t\xACWa\x13\x17\x81`\x01`\x01`\xA0\x1B\x03\x16`\x14a\x18\x94V[a\x13\"\x83` a\x18\x94V[`@Q` \x01a\x133\x92\x91\x90a-\xE1V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90RbF\x1B\xCD`\xE5\x1B\x82Ra\x06Y\x91`\x04\x01a&\xDCV[`\0a\x13e\x83\x83a\x1A0V[a\x13\xFEW\x82T`\x01\x81\x01\x84U`\0\x84\x81R` \x90 \x01a\x13\x85\x83\x82a,\xA1V[P\x82T`@Q`\x01\x85\x01\x90a\x13\x9B\x90\x85\x90a.VV[\x90\x81R` \x01`@Q\x80\x91\x03\x90 \x81\x90UP\x82`\x01\x01\x82`@Qa\x13\xBF\x91\x90a.VV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x81 T\x90\x7F\x11Iz\x83IQ\tTi\x93\x0E\xC6.\x16A\xF0\xDC\xF3a}\x9C\xD7W\x9Bm\xA7nT\xDF0\0\xA7\x90`\0\x90\xA2P`\x01a\x05YV[P`\0a\x05YV[`\0\x82`\x01\x01\x82`@Qa\x14\x1A\x91\x90a.VV[\x90\x81R` \x01`@Q\x80\x91\x03\x90 T\x90P\x92\x91PPV[`\0a\x14<`\x0BT\x90V[\x90Pa\x14H\x86\x82a\x1A]V[`\0\x81\x81R`\x11` \x90\x81R`@\x80\x83 \x88\x90U`\x12\x82R\x80\x83 \x87\x90U`\x13\x90\x91R\x90 \x83\x90Ua\x14z\x81\x83a\x1B\x9CV[PPPPPPV[a\x14\x8C\x82\x82a\x1C V[`\0\x82\x81R`\x01` R`@\x90 a\x07\x8E\x90\x82a\x1C\xA4V[a\x14\xAE\x82\x82a\x1C\xB9V[`\0\x82\x81R`\x01` R`@\x90 a\x07\x8E\x90\x82a\x1D\x1EV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16`$\x82\x01R`D\x80\x82\x01\x84\x90R\x82Q\x80\x83\x03\x90\x91\x01\x81R`d\x90\x91\x01\x90\x91R` \x81\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16c\xA9\x05\x9C\xBB`\xE0\x1B\x17\x90Ra\x07\x8E\x90\x84\x90a\x1D3V[`\0a\r6\x83\x83a\x1E\x05V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x15\x85W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01R\x7FERC721: approve to caller\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06YV[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 \x94\x87\x16\x80\x84R\x94\x82R\x91\x82\x90 \x80T`\xFF\x19\x16\x86\x15\x15\x90\x81\x17\x90\x91U\x91Q\x91\x82R\x7F\x170~\xAB9\xABa\x07\xE8\x89\x98E\xAD=Y\xBD\x96S\xF2\0\xF2 \x92\x04\x89\xCA+Y7il1\x91\x01`@Q\x80\x91\x03\x90\xA3PPPV[``\x82a\x16\0`\x01\x84a-\xBBV[\x81T\x81\x10a\x16\x10Wa\x16\x10a,,V[\x90`\0R` `\0 \x01\x80Ta\x16%\x90a+eV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x16Q\x90a+eV[\x80\x15a\x16\x9EW\x80`\x1F\x10a\x16sWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x16\x9EV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x16\x81W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x92\x91PPV[a\x16\xB6\x84\x84\x84a\x11JV[a\x16\xC2\x84\x84\x84\x84a\x1E/V[a\x0FDW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06Y\x90a.rV[``a\x16\xE9\x82a\x0F\xD5V[a\x17OW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`1`$\x82\x01R\x7FERC721URIStorage: URI query for `D\x82\x01Rp77\xB72\xBC4\xB9\xBA2\xB7:\x10:7\xB5\xB2\xB7`y\x1B`d\x82\x01R`\x84\x01a\x06YV[`\0\x82\x81R`\x08` R`@\x81 \x80Ta\x17h\x90a+eV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x17\x94\x90a+eV[\x80\x15a\x17\xE1W\x80`\x1F\x10a\x17\xB6Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x17\xE1V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x17\xC4W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P`\0a\x17\xF2a\x1F0V[\x90P\x80Q`\0\x03a\x18\x04WP\x92\x91PPV[\x81Q\x15a\x186W\x80\x82`@Q` \x01a\x18\x1E\x92\x91\x90a.\xC4V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x92PPP\x91\x90PV[a\x11B\x84a\x1F?V[`\0a\x05Y\x82T\x90V[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c\x80\xACX\xCD`\xE0\x1B\x14\x80a\x18zWP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c[^\x13\x9F`\xE0\x1B\x14[\x80a\x05YWPa\x05Y\x82a \tV[a\x07\x8E\x83\x83\x83a .V[```\0a\x18\xA3\x83`\x02a.\xF3V[a\x18\xAE\x90`\x02a-\xCEV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18\xC6Wa\x18\xC6a'\x8AV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x18\xF0W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P`\x03`\xFC\x1B\x81`\0\x81Q\x81\x10a\x19\x0BWa\x19\x0Ba,,V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x0F`\xFB\x1B\x81`\x01\x81Q\x81\x10a\x19:Wa\x19:a,,V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\0a\x19^\x84`\x02a.\xF3V[a\x19i\x90`\x01a-\xCEV[\x90P[`\x01\x81\x11\x15a\x19\xE1Wo\x18\x18\x99\x19\x9A\x1A\x9B\x1B\x9C\x1C\xB0\xB11\xB22\xB3`\x81\x1B\x85`\x0F\x16`\x10\x81\x10a\x19\x9DWa\x19\x9Da,,V[\x1A`\xF8\x1B\x82\x82\x81Q\x81\x10a\x19\xB3Wa\x19\xB3a,,V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x04\x94\x90\x94\x1C\x93a\x19\xDA\x81a/\nV[\x90Pa\x19lV[P\x83\x15a\r6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FStrings: hex length insufficient`D\x82\x01R`d\x01a\x06YV[`\0\x82`\x01\x01\x82`@Qa\x1AD\x91\x90a.VV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T\x15\x15\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x1A\xB3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FERC721: mint to the zero address`D\x82\x01R`d\x01a\x06YV[a\x1A\xBC\x81a\x0F\xD5V[\x15a\x1B\tW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FERC721: token already minted\0\0\0\0`D\x82\x01R`d\x01a\x06YV[a\x1B\x15`\0\x83\x83a\x18\x89V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x05` R`@\x81 \x80T`\x01\x92\x90a\x1B>\x90\x84\x90a-\xCEV[\x90\x91UPP`\0\x81\x81R`\x04` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x86\x16\x90\x81\x17\x90\x91U\x90Q\x83\x92\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x82\x90\xA4PPV[a\x1B\xA5\x82a\x0F\xD5V[a\x1C\x08W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FERC721URIStorage: URI set of non`D\x82\x01Rm2\xBC4\xB9\xBA2\xB7:\x10:7\xB5\xB2\xB7`\x91\x1B`d\x82\x01R`\x84\x01a\x06YV[`\0\x82\x81R`\x08` R`@\x90 a\x07\x8E\x82\x82a,\xA1V[a\x1C*\x82\x82a\r=V[a\t\xACW`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x84R\x90\x91R\x90 \x80T`\xFF\x19\x16`\x01\x17\x90Ua\x1C`3\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x83\x7F/\x87\x88\x11~~\xFF\x1D\x82\xE9&\xECyI\x01\xD1|x\x02JP'\t@0E@\xA73eo\r`@Q`@Q\x80\x91\x03\x90\xA4PPV[`\0a\r6\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a \xE6V[a\x1C\xC3\x82\x82a\r=V[\x15a\t\xACW`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x80\x85R\x92R\x80\x83 \x80T`\xFF\x19\x16\x90UQ3\x92\x85\x91\x7F\xF69\x1F\\2\xD9\xC6\x9D*G\xEAg\x0BD)t\xB595\xD1\xED\xC7\xFDd\xEB!\xE0G\xA89\x17\x1B\x91\x90\xA4PPV[`\0a\r6\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a!-V[`\0a\x1D\x88\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85`\x01`\x01`\xA0\x1B\x03\x16a\" \x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\x07\x8EW\x80\x80` \x01\x90Q\x81\x01\x90a\x1D\xA6\x91\x90a/!V[a\x07\x8EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01Ri\x1B\xDD\x08\x1C\xDDX\xD8\xD9YY`\xB2\x1B`d\x82\x01R`\x84\x01a\x06YV[`\0\x82`\0\x01\x82\x81T\x81\x10a\x1E\x1CWa\x1E\x1Ca,,V[\x90`\0R` `\0 \x01T\x90P\x92\x91PPV[`\0`\x01`\x01`\xA0\x1B\x03\x84\x16;\x15a\x1F%W`@Qc\n\x85\xBD\x01`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x16\x90c\x15\x0Bz\x02\x90a\x1Es\x903\x90\x89\x90\x88\x90\x88\x90`\x04\x01a/>V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x92PPP\x80\x15a\x1E\xAEWP`@\x80Q`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01\x90\x92Ra\x1E\xAB\x91\x81\x01\x90a/{V[`\x01[a\x1F\x0BW=\x80\x80\x15a\x1E\xDCW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x1E\xE1V[``\x91P[P\x80Q`\0\x03a\x1F\x03W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06Y\x90a.rV[\x80Q\x81` \x01\xFD[`\x01`\x01`\xE0\x1B\x03\x19\x16c\n\x85\xBD\x01`\xE1\x1B\x14\x90Pa\x11BV[P`\x01\x94\x93PPPPV[```\x0E\x80Ta\x05n\x90a+eV[``a\x1FJ\x82a\x0F\xD5V[a\x1F\xAEW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FERC721Metadata: URI query for no`D\x82\x01Rn72\xBC4\xB9\xBA2\xB7:\x10:7\xB5\xB2\xB7`\x89\x1B`d\x82\x01R`\x84\x01a\x06YV[`\0a\x1F\xB8a\x1F0V[\x90P`\0\x81Q\x11a\x1F\xD8W`@Q\x80` \x01`@R\x80`\0\x81RPa\r6V[\x80a\x1F\xE2\x84a\"/V[`@Q` \x01a\x1F\xF3\x92\x91\x90a.\xC4V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x93\x92PPPV[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cZ\x05\x18\x0F`\xE0\x1B\x14\x80a\x05YWPa\x05Y\x82a#0V[`\x01`\x01`\xA0\x1B\x03\x83\x16a \x89Wa \x84\x81`\x0B\x80T`\0\x83\x81R`\x0C` R`@\x81 \x82\x90U`\x01\x82\x01\x83U\x91\x90\x91R\x7F\x01u\xB7\xA68Bw\x03\xF0\xDB\xE7\xBB\x9B\xBF\x98z%Qq{4\xE7\x9F3\xB5\xB1\0\x8D\x1F\xA0\x1D\xB9\x01UV[a \xACV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x14a \xACWa \xAC\x83\x82a#eV[`\x01`\x01`\xA0\x1B\x03\x82\x16a \xC3Wa\x07\x8E\x81a$\x02V[\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14a\x07\x8EWa\x07\x8E\x82\x82a$\xB1V[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Ta\x13\xFEWP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\x05YV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a\"\x16W`\0a!Q`\x01\x83a-\xBBV[\x85T\x90\x91P`\0\x90a!e\x90`\x01\x90a-\xBBV[\x90P\x81\x81\x14a!\xCAW`\0\x86`\0\x01\x82\x81T\x81\x10a!\x85Wa!\x85a,,V[\x90`\0R` `\0 \x01T\x90P\x80\x87`\0\x01\x84\x81T\x81\x10a!\xA8Wa!\xA8a,,V[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a!\xDBWa!\xDBa/\x98V[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x85`\x01\x01`\0\x86\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\x01\x93PPPPa\x05YV[`\0\x91PPa\x05YV[``a\x11B\x84\x84`\0\x85a$\xF5V[``\x81`\0\x03a\"VWPP`@\x80Q\x80\x82\x01\x90\x91R`\x01\x81R`\x03`\xFC\x1B` \x82\x01R\x90V[\x81`\0[\x81\x15a\"\x80W\x80a\"j\x81a-\xA2V[\x91Pa\"y\x90P`\n\x83a/\xC4V[\x91Pa\"ZV[`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\"\x9BWa\"\x9Ba'\x8AV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\"\xC5W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P[\x84\x15a\x11BWa\"\xDA`\x01\x83a-\xBBV[\x91Pa\"\xE7`\n\x86a/\xD8V[a\"\xF2\x90`0a-\xCEV[`\xF8\x1B\x81\x83\x81Q\x81\x10a#\x07Wa#\x07a,,V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SPa#)`\n\x86a/\xC4V[\x94Pa\"\xC9V[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cye\xDB\x0B`\xE0\x1B\x14\x80a\x05YWPc\x01\xFF\xC9\xA7`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x83\x16\x14a\x05YV[`\0`\x01a#r\x84a\x0C\x97V[a#|\x91\x90a-\xBBV[`\0\x83\x81R`\n` R`@\x90 T\x90\x91P\x80\x82\x14a#\xCFW`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x85\x84R\x82R\x80\x83 T\x84\x84R\x81\x84 \x81\x90U\x83R`\n\x90\x91R\x90 \x81\x90U[P`\0\x91\x82R`\n` \x90\x81R`@\x80\x84 \x84\x90U`\x01`\x01`\xA0\x1B\x03\x90\x94\x16\x83R`\t\x81R\x83\x83 \x91\x83RR\x90\x81 UV[`\x0BT`\0\x90a$\x14\x90`\x01\x90a-\xBBV[`\0\x83\x81R`\x0C` R`@\x81 T`\x0B\x80T\x93\x94P\x90\x92\x84\x90\x81\x10a$<Wa$<a,,V[\x90`\0R` `\0 \x01T\x90P\x80`\x0B\x83\x81T\x81\x10a$]Wa$]a,,V[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x82\x81R`\x0C\x90\x91R`@\x80\x82 \x84\x90U\x85\x82R\x81 U`\x0B\x80T\x80a$\x95Wa$\x95a/\x98V[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90UPPPPV[`\0a$\xBC\x83a\x0C\x97V[`\x01`\x01`\xA0\x1B\x03\x90\x93\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x86\x84R\x82R\x80\x83 \x85\x90U\x93\x82R`\n\x90R\x91\x90\x91 \x91\x90\x91UPV[``\x82G\x10\x15a%VW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01Re\x1C\x88\x18\xD8[\x1B`\xD2\x1B`d\x82\x01R`\x84\x01a\x06YV[\x84;a%\xA4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x06YV[`\0\x80\x86`\x01`\x01`\xA0\x1B\x03\x16\x85\x87`@Qa%\xC0\x91\x90a.VV[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a%\xFDW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a&\x02V[``\x91P[P\x91P\x91Pa&\x12\x82\x82\x86a&\x1DV[\x97\x96PPPPPPPV[``\x83\x15a&,WP\x81a\r6V[\x82Q\x15a&<W\x82Q\x80\x84` \x01\xFD[\x81`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06Y\x91\x90a&\xDCV[`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a&lW`\0\x80\xFD[PV[`\0` \x82\x84\x03\x12\x15a&\x81W`\0\x80\xFD[\x815a\r6\x81a&VV[`\0[\x83\x81\x10\x15a&\xA7W\x81\x81\x01Q\x83\x82\x01R` \x01a&\x8FV[PP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra&\xC8\x81` \x86\x01` \x86\x01a&\x8CV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\r6` \x83\x01\x84a&\xB0V[`\0` \x82\x84\x03\x12\x15a'\x01W`\0\x80\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a'\x1FW`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a'7W`\0\x80\xFD[a'@\x83a'\x08V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a'cW`\0\x80\xFD[a'l\x84a'\x08V[\x92Pa'z` \x85\x01a'\x08V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15a'\xBBWa'\xBBa'\x8AV[`@Q`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a'\xE3Wa'\xE3a'\x8AV[\x81`@R\x80\x93P\x85\x81R\x86\x86\x86\x01\x11\x15a'\xFCW`\0\x80\xFD[\x85\x85` \x83\x017`\0` \x87\x83\x01\x01RPPP\x93\x92PPPV[`\0\x82`\x1F\x83\x01\x12a('W`\0\x80\xFD[a\r6\x83\x835` \x85\x01a'\xA0V[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15a(NW`\0\x80\xFD[a(W\x86a'\x08V[\x94P` \x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a(tW`\0\x80\xFD[a(\x80\x89\x83\x8A\x01a(\x16V[\x95P`@\x88\x015\x91P\x80\x82\x11\x15a(\x96W`\0\x80\xFD[Pa(\xA3\x88\x82\x89\x01a(\x16V[\x95\x98\x94\x97P\x94\x95``\x81\x015\x95P`\x80\x015\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a(\xCFW`\0\x80\xFD[\x825\x91Pa(\xDF` \x84\x01a'\x08V[\x90P\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a(\xFAW`\0\x80\xFD[a\r6\x82a'\x08V[`\0\x80`@\x83\x85\x03\x12\x15a)\x16W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0` \x82\x84\x03\x12\x15a)7W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a)NW`\0\x80\xFD[a\x11B\x84\x82\x85\x01a(\x16V[`\0\x80\x83`\x1F\x84\x01\x12a)lW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a)\x84W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a)\x9CW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80`\xA0\x89\x8B\x03\x12\x15a)\xBFW`\0\x80\xFD[\x885g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a)\xD7W`\0\x80\xFD[\x81\x8B\x01\x91P\x8B`\x1F\x83\x01\x12a)\xEBW`\0\x80\xFD[\x815\x81\x81\x11\x15a)\xFAW`\0\x80\xFD[\x8C` \x82`\x05\x1B\x85\x01\x01\x11\x15a*\x0FW`\0\x80\xFD[` \x92\x83\x01\x9AP\x98P\x90\x8A\x015\x90\x80\x82\x11\x15a**W`\0\x80\xFD[a*6\x8C\x83\x8D\x01a)ZV[\x90\x98P\x96P`@\x8B\x015\x91P\x80\x82\x11\x15a*OW`\0\x80\xFD[Pa*\\\x8B\x82\x8C\x01a)ZV[\x99\x9C\x98\x9BP\x96\x99\x95\x98\x96\x97``\x87\x015\x96`\x80\x015\x95P\x93PPPPV[\x80\x15\x15\x81\x14a&lW`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a*\x9BW`\0\x80\xFD[a*\xA4\x83a'\x08V[\x91P` \x83\x015a*\xB4\x81a*zV[\x80\x91PP\x92P\x92\x90PV[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a*\xD5W`\0\x80\xFD[a*\xDE\x85a'\x08V[\x93Pa*\xEC` \x86\x01a'\x08V[\x92P`@\x85\x015\x91P``\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a+\x0FW`\0\x80\xFD[\x85\x01`\x1F\x81\x01\x87\x13a+ W`\0\x80\xFD[a+/\x87\x825` \x84\x01a'\xA0V[\x91PP\x92\x95\x91\x94P\x92PV[`\0\x80`@\x83\x85\x03\x12\x15a+NW`\0\x80\xFD[a+W\x83a'\x08V[\x91Pa(\xDF` \x84\x01a'\x08V[`\x01\x81\x81\x1C\x90\x82\x16\x80a+yW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a+\x99WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[` \x80\x82R`1\x90\x82\x01R\x7FERC721: transfer caller is not o`@\x82\x01Rp\x1D\xDB\x99\\\x88\x1B\x9B\xDC\x88\x18\\\x1C\x1C\x9B\xDD\x99Y`z\x1B``\x82\x01R`\x80\x01\x90V[`\0\x83Qa,\x02\x81\x84` \x88\x01a&\x8CV[`/`\xF8\x1B\x90\x83\x01\x90\x81R\x83Qa, \x81`\x01\x84\x01` \x88\x01a&\x8CV[\x01`\x01\x01\x94\x93PPPPV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a,TW`\0\x80\xFD[PQ\x91\x90PV[`\x1F\x82\x11\x15a\x07\x8EW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a,\x82WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x14zW\x82\x81U`\x01\x01a,\x8EV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a,\xBBWa,\xBBa'\x8AV[a,\xCF\x81a,\xC9\x84Ta+eV[\x84a,[V[` \x80`\x1F\x83\x11`\x01\x81\x14a-\x04W`\0\x84\x15a,\xECWP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x14zV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a-3W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a-\x14V[P\x85\x82\x10\x15a-QW\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[\x83\x85\x827`\0\x84\x82\x01`/`\xF8\x1B\x81R\x83\x85`\x01\x83\x017`\0\x93\x01`\x01\x01\x92\x83RP\x90\x94\x93PPPPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\x01\x82\x01a-\xB4Wa-\xB4a-\x8CV[P`\x01\x01\x90V[\x81\x81\x03\x81\x81\x11\x15a\x05YWa\x05Ya-\x8CV[\x80\x82\x01\x80\x82\x11\x15a\x05YWa\x05Ya-\x8CV[\x7FAccessControl: account \0\0\0\0\0\0\0\0\0\x81R`\0\x83Qa.\x19\x81`\x17\x85\x01` \x88\x01a&\x8CV[p\x01\x03K\x99\x03kK\x9B\x9BKs9\x03\x93{c)`}\x1B`\x17\x91\x84\x01\x91\x82\x01R\x83Qa.J\x81`(\x84\x01` \x88\x01a&\x8CV[\x01`(\x01\x94\x93PPPPV[`\0\x82Qa.h\x81\x84` \x87\x01a&\x8CV[\x91\x90\x91\x01\x92\x91PPV[` \x80\x82R`2\x90\x82\x01R\x7FERC721: transfer to non ERC721Re`@\x82\x01Rq1\xB2\xB4\xBB2\xB9\x104\xB6\xB862\xB6\xB2\xB7:2\xB9`q\x1B``\x82\x01R`\x80\x01\x90V[`\0\x83Qa.\xD6\x81\x84` \x88\x01a&\x8CV[\x83Q\x90\x83\x01\x90a.\xEA\x81\x83` \x88\x01a&\x8CV[\x01\x94\x93PPPPV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x05YWa\x05Ya-\x8CV[`\0\x81a/\x19Wa/\x19a-\x8CV[P`\0\x19\x01\x90V[`\0` \x82\x84\x03\x12\x15a/3W`\0\x80\xFD[\x81Qa\r6\x81a*zV[`\x01`\x01`\xA0\x1B\x03\x85\x81\x16\x82R\x84\x16` \x82\x01R`@\x81\x01\x83\x90R`\x80``\x82\x01\x81\x90R`\0\x90a/q\x90\x83\x01\x84a&\xB0V[\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15a/\x8DW`\0\x80\xFD[\x81Qa\r6\x81a&VV[cNH{q`\xE0\x1B`\0R`1`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82a/\xD3Wa/\xD3a/\xAEV[P\x04\x90V[`\0\x82a/\xE7Wa/\xE7a/\xAEV[P\x06\x90V\xFE\xA2dipfsX\"\x12 m{\xDE\xEA\xFDk<\xBBC\x1FL|\"%\x04^\xD0\xE8\xE3\x9A6\x8F1\n'\xAEI_/\xC1\x0C\xDBdsolcC\0\x08\x13\x003";
1320    /// The bytecode of the contract.
1321    pub static HOPRBOOST_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
1322        __BYTECODE,
1323    );
1324    #[rustfmt::skip]
1325    const __DEPLOYED_BYTECODE: &[u8] = b"`\x80`@R4\x80\x15a\0\x10W`\0\x80\xFD[P`\x046\x10a\x02\x06W`\x005`\xE0\x1C\x80cp\xA0\x821\x11a\x01\x1AW\x80c\xA2,\xB4e\x11a\0\xADW\x80c\xC8{V\xDD\x11a\0|W\x80c\xC8{V\xDD\x14a\x04\x98W\x80c\xCA\x15\xC8s\x14a\x04\xABW\x80c\xD59\x13\x93\x14a\x04\xBEW\x80c\xD5Gt\x1F\x14a\x04\xE5W\x80c\xE9\x85\xE9\xC5\x14a\x04\xF8W`\0\x80\xFD[\x80c\xA2,\xB4e\x14a\x04LW\x80c\xB5\x18Z\x88\x14a\x04_W\x80c\xB8\x8DO\xDE\x14a\x04rW\x80c\xC5\x88\xFF\x8B\x14a\x04\x85W`\0\x80\xFD[\x80c\x93\x16\x88\xCB\x11a\0\xE9W\x80c\x93\x16\x88\xCB\x14a\x04\x16W\x80c\x93e\xC53\x14a\x04)W\x80c\x95\xD8\x9BA\x14a\x04<W\x80c\xA2\x17\xFD\xDF\x14a\x04DW`\0\x80\xFD[\x80cp\xA0\x821\x14a\x03\x9BW\x80c\x89l\xDD\xF4\x14a\x03\xAEW\x80c\x90\x10\xD0|\x14a\x03\xF0W\x80c\x91\xD1HT\x14a\x04\x03W`\0\x80\xFD[\x80c//\xF1]\x11a\x01\x9DW\x80cH\xC6NA\x11a\x01lW\x80cH\xC6NA\x14a\x03/W\x80cOl\xCC\xE7\x14a\x03BW\x80cV#\x17\xC5\x14a\x03UW\x80c`g\xBC\x15\x14a\x03uW\x80ccR!\x1E\x14a\x03\x88W`\0\x80\xFD[\x80c//\xF1]\x14a\x02\xE3W\x80c/t\\Y\x14a\x02\xF6W\x80c6V\x8A\xBE\x14a\x03\tW\x80cB\x84.\x0E\x14a\x03\x1CW`\0\x80\xFD[\x80c\x18\x16\r\xDD\x11a\x01\xD9W\x80c\x18\x16\r\xDD\x14a\x02\x88W\x80c#\xB8r\xDD\x14a\x02\x9AW\x80c$\x8A\x9C\xA3\x14a\x02\xADW\x80c)\x86}\xAC\x14a\x02\xD0W`\0\x80\xFD[\x80c\x01\xFF\xC9\xA7\x14a\x02\x0BW\x80c\x06\xFD\xDE\x03\x14a\x023W\x80c\x08\x18\x12\xFC\x14a\x02HW\x80c\t^\xA7\xB3\x14a\x02sW[`\0\x80\xFD[a\x02\x1Ea\x02\x196`\x04a&oV[a\x054V[`@Q\x90\x15\x15\x81R` \x01[`@Q\x80\x91\x03\x90\xF3[a\x02;a\x05_V[`@Qa\x02*\x91\x90a&\xDCV[a\x02[a\x02V6`\x04a&\xEFV[a\x05\xF1V[`@Q`\x01`\x01`\xA0\x1B\x03\x90\x91\x16\x81R` \x01a\x02*V[a\x02\x86a\x02\x816`\x04a'$V[a\x06~V[\0[`\x0BT[`@Q\x90\x81R` \x01a\x02*V[a\x02\x86a\x02\xA86`\x04a'NV[a\x07\x93V[a\x02\x8Ca\x02\xBB6`\x04a&\xEFV[`\0\x90\x81R` \x81\x90R`@\x90 `\x01\x01T\x90V[a\x02\x86a\x02\xDE6`\x04a(6V[a\x07\xC4V[a\x02\x86a\x02\xF16`\x04a(\xBCV[a\x08vV[a\x02\x8Ca\x03\x046`\x04a'$V[a\x08\x9CV[a\x02\x86a\x03\x176`\x04a(\xBCV[a\t2V[a\x02\x86a\x03*6`\x04a'NV[a\t\xB0V[a\x02\x86a\x03=6`\x04a'$V[a\t\xCBV[a\x02\x8Ca\x03P6`\x04a&\xEFV[a\n\xA4V[a\x02\x8Ca\x03c6`\x04a&\xEFV[`\0\x90\x81R`\x13` R`@\x90 T\x90V[a\x02\x86a\x03\x836`\x04a(\xE8V[a\x0B7V[a\x02[a\x03\x966`\x04a&\xEFV[a\x0C V[a\x02\x8Ca\x03\xA96`\x04a(\xE8V[a\x0C\x97V[a\x03\xDBa\x03\xBC6`\x04a&\xEFV[`\0\x90\x81R`\x11` \x90\x81R`@\x80\x83 T`\x12\x90\x92R\x90\x91 T\x90\x91V[`@\x80Q\x92\x83R` \x83\x01\x91\x90\x91R\x01a\x02*V[a\x02[a\x03\xFE6`\x04a)\x03V[a\r\x1EV[a\x02\x1Ea\x04\x116`\x04a(\xBCV[a\r=V[a\x02\x86a\x04$6`\x04a)%V[a\rfV[a\x02\x86a\x0476`\x04a)\xA3V[a\r~V[a\x02;a\x0E\xEBV[a\x02\x8C`\0\x81V[a\x02\x86a\x04Z6`\x04a*\x88V[a\x0E\xFAV[a\x02;a\x04m6`\x04a&\xEFV[a\x0F\x05V[a\x02\x86a\x04\x806`\x04a*\xBFV[a\x0F\x12V[a\x02;a\x04\x936`\x04a&\xEFV[a\x0FJV[a\x02;a\x04\xA66`\x04a&\xEFV[a\x0FhV[a\x02\x8Ca\x04\xB96`\x04a&\xEFV[a\x0FsV[a\x02\x8C\x7F\x9F-\xF0\xFE\xD2\xC7vH\xDEX`\xA4\xCCP\x8C\xD0\x81\x8C\x85\xB8\xB8\xA1\xABL\xEE\xEF\x8D\x98\x1C\x89V\xA6\x81V[a\x02\x86a\x04\xF36`\x04a(\xBCV[a\x0F\x8AV[a\x02\x1Ea\x05\x066`\x04a+;V[`\x01`\x01`\xA0\x1B\x03\x91\x82\x16`\0\x90\x81R`\x07` \x90\x81R`@\x80\x83 \x93\x90\x94\x16\x82R\x91\x90\x91R T`\xFF\x16\x90V[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c\rc\x9A\xDD`\xE1\x1B\x14\x80a\x05YWPa\x05Y\x82a\x0F\xB0V[\x92\x91PPV[```\x02\x80Ta\x05n\x90a+eV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x05\x9A\x90a+eV[\x80\x15a\x05\xE7W\x80`\x1F\x10a\x05\xBCWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x05\xE7V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x05\xCAW\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x90V[`\0a\x05\xFC\x82a\x0F\xD5V[a\x06bW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FERC721: approved query for nonex`D\x82\x01Rk4\xB9\xBA2\xB7:\x10:7\xB5\xB2\xB7`\xA1\x1B`d\x82\x01R`\x84\x01[`@Q\x80\x91\x03\x90\xFD[P`\0\x90\x81R`\x06` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x90V[`\0a\x06\x89\x82a\x0C V[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x06\xF6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`!`$\x82\x01R\x7FERC721: approval to current owne`D\x82\x01R`9`\xF9\x1B`d\x82\x01R`\x84\x01a\x06YV[3`\x01`\x01`\xA0\x1B\x03\x82\x16\x14\x80a\x07\x12WPa\x07\x12\x813a\x05\x06V[a\x07\x84W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`8`$\x82\x01R\x7FERC721: approve caller is not ow`D\x82\x01R\x7Fner nor approved for all\0\0\0\0\0\0\0\0`d\x82\x01R`\x84\x01a\x06YV[a\x07\x8E\x83\x83a\x0F\xF2V[PPPV[a\x07\x9D3\x82a\x10`V[a\x07\xB9W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06Y\x90a+\x9FV[a\x07\x8E\x83\x83\x83a\x11JV[\x7F\x9F-\xF0\xFE\xD2\xC7vH\xDEX`\xA4\xCCP\x8C\xD0\x81\x8C\x85\xB8\xB8\xA1\xABL\xEE\xEF\x8D\x98\x1C\x89V\xA6a\x07\xEF\x813a\x12\xF5V[a\x07\xFA`\x0F\x86a\x13YV[P`\0a\x08\x08`\x0F\x87a\x14\x06V[\x90P`\0\x86\x86`@Q` \x01a\x08\x1F\x92\x91\x90a+\xF0V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90Pa\x08=\x88\x86\x86\x85\x85a\x141V[\x83\x85\x83\x7Fs^^\xB5\xAF\xDDr\xCCde}\xED~]\xE3\x90\xAF7\x08\xAF\xB5\xB9\xA8\x0B\x0E\\\x91\x1A\x04\x99\xD9\x8F`@Q`@Q\x80\x91\x03\x90\xA4PPPPPPPPV[`\0\x82\x81R` \x81\x90R`@\x90 `\x01\x01Ta\x08\x92\x813a\x12\xF5V[a\x07\x8E\x83\x83a\x14\x82V[`\0a\x08\xA7\x83a\x0C\x97V[\x82\x10a\t\tW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`+`$\x82\x01R\x7FERC721Enumerable: owner index ou`D\x82\x01Rjt of bounds`\xA8\x1B`d\x82\x01R`\x84\x01a\x06YV[P`\x01`\x01`\xA0\x1B\x03\x91\x90\x91\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x93\x83R\x92\x90R T\x90V[`\x01`\x01`\xA0\x1B\x03\x81\x163\x14a\t\xA2W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FAccessControl: can only renounce`D\x82\x01Rn\x1097\xB62\xB9\x9037\xB9\x109\xB2\xB63`\x89\x1B`d\x82\x01R`\x84\x01a\x06YV[a\t\xAC\x82\x82a\x14\xA4V[PPV[a\x07\x8E\x83\x83\x83`@Q\x80` \x01`@R\x80`\0\x81RPa\x0F\x12V[`\0a\t\xD7\x813a\x12\xF5V[`\x02`\rT\x03a\n)W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x06YV[`\x02`\rU`@\x80Qc#\xB8r\xDD`\xE0\x1B\x81R0`\x04\x82\x01R3`$\x82\x01R`D\x81\x01\x84\x90R\x90Q`\x01`\x01`\xA0\x1B\x03\x85\x16\x91c#\xB8r\xDD\x91`d\x80\x83\x01\x92`\0\x92\x91\x90\x82\x90\x03\x01\x81\x83\x87\x80;\x15\x80\x15a\n\x82W`\0\x80\xFD[PZ\xF1\x15\x80\x15a\n\x96W=`\0\x80>=`\0\xFD[PP`\x01`\rUPPPPPV[`\0a\n\xAF`\x0BT\x90V[\x82\x10a\x0B\x12W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FERC721Enumerable: global index o`D\x82\x01Rkut of bounds`\xA0\x1B`d\x82\x01R`\x84\x01a\x06YV[`\x0B\x82\x81T\x81\x10a\x0B%Wa\x0B%a,,V[\x90`\0R` `\0 \x01T\x90P\x91\x90PV[`\0a\x0BC\x813a\x12\xF5V[`\x02`\rT\x03a\x0B\x95W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1F`$\x82\x01R\x7FReentrancyGuard: reentrant call\0`D\x82\x01R`d\x01a\x06YV[`\x02`\rUa\x0C\x173`@Qcp\xA0\x821`\xE0\x1B\x81R0`\x04\x82\x01R`\x01`\x01`\xA0\x1B\x03\x85\x16\x90cp\xA0\x821\x90`$\x01` `@Q\x80\x83\x03\x81\x86Z\xFA\x15\x80\x15a\x0B\xE2W=`\0\x80>=`\0\xFD[PPPP`@Q=`\x1F\x19`\x1F\x82\x01\x16\x82\x01\x80`@RP\x81\x01\x90a\x0C\x06\x91\x90a,BV[`\x01`\x01`\xA0\x1B\x03\x85\x16\x91\x90a\x14\xC6V[PP`\x01`\rUV[`\0\x81\x81R`\x04` R`@\x81 T`\x01`\x01`\xA0\x1B\x03\x16\x80a\x05YW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`)`$\x82\x01R\x7FERC721: owner query for nonexist`D\x82\x01Rh2\xB7:\x10:7\xB5\xB2\xB7`\xB9\x1B`d\x82\x01R`\x84\x01a\x06YV[`\0`\x01`\x01`\xA0\x1B\x03\x82\x16a\r\x02W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FERC721: balance query for the ze`D\x82\x01Riro address`\xB0\x1B`d\x82\x01R`\x84\x01a\x06YV[P`\x01`\x01`\xA0\x1B\x03\x16`\0\x90\x81R`\x05` R`@\x90 T\x90V[`\0\x82\x81R`\x01` R`@\x81 a\r6\x90\x83a\x15\x18V[\x93\x92PPPV[`\0\x91\x82R` \x82\x81R`@\x80\x84 `\x01`\x01`\xA0\x1B\x03\x93\x90\x93\x16\x84R\x91\x90R\x90 T`\xFF\x16\x90V[`\0a\rr\x813a\x12\xF5V[`\x0Ea\x07\x8E\x83\x82a,\xA1V[\x7F\x9F-\xF0\xFE\xD2\xC7vH\xDEX`\xA4\xCCP\x8C\xD0\x81\x8C\x85\xB8\xB8\xA1\xABL\xEE\xEF\x8D\x98\x1C\x89V\xA6a\r\xA9\x813a\x12\xF5V[a\r\xEC\x87\x87\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP`\x0F\x93\x92PPa\x13Y\x90PV[P`\0a\x0E2\x88\x88\x80\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x93\x92\x91\x90\x81\x81R` \x01\x83\x83\x80\x82\x847`\0\x92\x01\x91\x90\x91RP`\x0F\x93\x92PPa\x14\x06\x90PV[\x90P`\0\x88\x88\x88\x88`@Q` \x01a\x0EM\x94\x93\x92\x91\x90a-aV[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x90P`\0[\x8A\x81\x10\x15a\x0E\xAEWa\x0E\x9C\x8C\x8C\x83\x81\x81\x10a\x0E~Wa\x0E~a,,V[\x90P` \x02\x01` \x81\x01\x90a\x0E\x93\x91\x90a(\xE8V[\x87\x87\x86\x86a\x141V[\x80a\x0E\xA6\x81a-\xA2V[\x91PPa\x0EaV[P\x83\x85\x83\x7Fs^^\xB5\xAF\xDDr\xCCde}\xED~]\xE3\x90\xAF7\x08\xAF\xB5\xB9\xA8\x0B\x0E\\\x91\x1A\x04\x99\xD9\x8F`@Q`@Q\x80\x91\x03\x90\xA4PPPPPPPPPPPV[```\x03\x80Ta\x05n\x90a+eV[a\t\xAC3\x83\x83a\x15$V[``a\x05Y`\x0F\x83a\x15\xF2V[a\x0F\x1C3\x83a\x10`V[a\x0F8W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06Y\x90a+\x9FV[a\x0FD\x84\x84\x84\x84a\x16\xABV[PPPPV[`\0\x81\x81R`\x13` R`@\x90 T``\x90a\x05Y\x90`\x0F\x90a\x15\xF2V[``a\x05Y\x82a\x16\xDEV[`\0\x81\x81R`\x01` R`@\x81 a\x05Y\x90a\x18?V[`\0\x82\x81R` \x81\x90R`@\x90 `\x01\x01Ta\x0F\xA6\x813a\x12\xF5V[a\x07\x8E\x83\x83a\x14\xA4V[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cx\x0E\x9Dc`\xE0\x1B\x14\x80a\x05YWPa\x05Y\x82a\x18IV[`\0\x90\x81R`\x04` R`@\x90 T`\x01`\x01`\xA0\x1B\x03\x16\x15\x15\x90V[`\0\x81\x81R`\x06` R`@\x90 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x84\x16\x90\x81\x17\x90\x91U\x81\x90a\x10'\x82a\x0C V[`\x01`\x01`\xA0\x1B\x03\x16\x7F\x8C[\xE1\xE5\xEB\xEC}[\xD1OqB}\x1E\x84\xF3\xDD\x03\x14\xC0\xF7\xB2)\x1E[ \n\xC8\xC7\xC3\xB9%`@Q`@Q\x80\x91\x03\x90\xA4PPV[`\0a\x10k\x82a\x0F\xD5V[a\x10\xCCW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`,`$\x82\x01R\x7FERC721: operator query for nonex`D\x82\x01Rk4\xB9\xBA2\xB7:\x10:7\xB5\xB2\xB7`\xA1\x1B`d\x82\x01R`\x84\x01a\x06YV[`\0a\x10\xD7\x83a\x0C V[\x90P\x80`\x01`\x01`\xA0\x1B\x03\x16\x84`\x01`\x01`\xA0\x1B\x03\x16\x14\x80a\x11\x12WP\x83`\x01`\x01`\xA0\x1B\x03\x16a\x11\x07\x84a\x05\xF1V[`\x01`\x01`\xA0\x1B\x03\x16\x14[\x80a\x11BWP`\x01`\x01`\xA0\x1B\x03\x80\x82\x16`\0\x90\x81R`\x07` \x90\x81R`@\x80\x83 \x93\x88\x16\x83R\x92\x90R T`\xFF\x16[\x94\x93PPPPV[\x82`\x01`\x01`\xA0\x1B\x03\x16a\x11]\x82a\x0C V[`\x01`\x01`\xA0\x1B\x03\x16\x14a\x11\xC5W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`)`$\x82\x01R\x7FERC721: transfer of token that i`D\x82\x01Rh9\x9077\xBA\x107\xBB\xB7`\xB9\x1B`d\x82\x01R`\x84\x01a\x06YV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x12'W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`$\x80\x82\x01R\x7FERC721: transfer to the zero add`D\x82\x01Rcress`\xE0\x1B`d\x82\x01R`\x84\x01a\x06YV[a\x122\x83\x83\x83a\x18\x89V[a\x12=`\0\x82a\x0F\xF2V[`\x01`\x01`\xA0\x1B\x03\x83\x16`\0\x90\x81R`\x05` R`@\x81 \x80T`\x01\x92\x90a\x12f\x90\x84\x90a-\xBBV[\x90\x91UPP`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x05` R`@\x81 \x80T`\x01\x92\x90a\x12\x94\x90\x84\x90a-\xCEV[\x90\x91UPP`\0\x81\x81R`\x04` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x86\x81\x16\x91\x82\x17\x90\x92U\x91Q\x84\x93\x91\x87\x16\x91\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x91\xA4PPPV[a\x12\xFF\x82\x82a\r=V[a\t\xACWa\x13\x17\x81`\x01`\x01`\xA0\x1B\x03\x16`\x14a\x18\x94V[a\x13\"\x83` a\x18\x94V[`@Q` \x01a\x133\x92\x91\x90a-\xE1V[`@\x80Q`\x1F\x19\x81\x84\x03\x01\x81R\x90\x82\x90RbF\x1B\xCD`\xE5\x1B\x82Ra\x06Y\x91`\x04\x01a&\xDCV[`\0a\x13e\x83\x83a\x1A0V[a\x13\xFEW\x82T`\x01\x81\x01\x84U`\0\x84\x81R` \x90 \x01a\x13\x85\x83\x82a,\xA1V[P\x82T`@Q`\x01\x85\x01\x90a\x13\x9B\x90\x85\x90a.VV[\x90\x81R` \x01`@Q\x80\x91\x03\x90 \x81\x90UP\x82`\x01\x01\x82`@Qa\x13\xBF\x91\x90a.VV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x81 T\x90\x7F\x11Iz\x83IQ\tTi\x93\x0E\xC6.\x16A\xF0\xDC\xF3a}\x9C\xD7W\x9Bm\xA7nT\xDF0\0\xA7\x90`\0\x90\xA2P`\x01a\x05YV[P`\0a\x05YV[`\0\x82`\x01\x01\x82`@Qa\x14\x1A\x91\x90a.VV[\x90\x81R` \x01`@Q\x80\x91\x03\x90 T\x90P\x92\x91PPV[`\0a\x14<`\x0BT\x90V[\x90Pa\x14H\x86\x82a\x1A]V[`\0\x81\x81R`\x11` \x90\x81R`@\x80\x83 \x88\x90U`\x12\x82R\x80\x83 \x87\x90U`\x13\x90\x91R\x90 \x83\x90Ua\x14z\x81\x83a\x1B\x9CV[PPPPPPV[a\x14\x8C\x82\x82a\x1C V[`\0\x82\x81R`\x01` R`@\x90 a\x07\x8E\x90\x82a\x1C\xA4V[a\x14\xAE\x82\x82a\x1C\xB9V[`\0\x82\x81R`\x01` R`@\x90 a\x07\x8E\x90\x82a\x1D\x1EV[`@\x80Q`\x01`\x01`\xA0\x1B\x03\x84\x16`$\x82\x01R`D\x80\x82\x01\x84\x90R\x82Q\x80\x83\x03\x90\x91\x01\x81R`d\x90\x91\x01\x90\x91R` \x81\x01\x80Q`\x01`\x01`\xE0\x1B\x03\x16c\xA9\x05\x9C\xBB`\xE0\x1B\x17\x90Ra\x07\x8E\x90\x84\x90a\x1D3V[`\0a\r6\x83\x83a\x1E\x05V[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x03a\x15\x85W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x19`$\x82\x01R\x7FERC721: approve to caller\0\0\0\0\0\0\0`D\x82\x01R`d\x01a\x06YV[`\x01`\x01`\xA0\x1B\x03\x83\x81\x16`\0\x81\x81R`\x07` \x90\x81R`@\x80\x83 \x94\x87\x16\x80\x84R\x94\x82R\x91\x82\x90 \x80T`\xFF\x19\x16\x86\x15\x15\x90\x81\x17\x90\x91U\x91Q\x91\x82R\x7F\x170~\xAB9\xABa\x07\xE8\x89\x98E\xAD=Y\xBD\x96S\xF2\0\xF2 \x92\x04\x89\xCA+Y7il1\x91\x01`@Q\x80\x91\x03\x90\xA3PPPV[``\x82a\x16\0`\x01\x84a-\xBBV[\x81T\x81\x10a\x16\x10Wa\x16\x10a,,V[\x90`\0R` `\0 \x01\x80Ta\x16%\x90a+eV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x16Q\x90a+eV[\x80\x15a\x16\x9EW\x80`\x1F\x10a\x16sWa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x16\x9EV[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x16\x81W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P\x92\x91PPV[a\x16\xB6\x84\x84\x84a\x11JV[a\x16\xC2\x84\x84\x84\x84a\x1E/V[a\x0FDW`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06Y\x90a.rV[``a\x16\xE9\x82a\x0F\xD5V[a\x17OW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`1`$\x82\x01R\x7FERC721URIStorage: URI query for `D\x82\x01Rp77\xB72\xBC4\xB9\xBA2\xB7:\x10:7\xB5\xB2\xB7`y\x1B`d\x82\x01R`\x84\x01a\x06YV[`\0\x82\x81R`\x08` R`@\x81 \x80Ta\x17h\x90a+eV[\x80`\x1F\x01` \x80\x91\x04\x02` \x01`@Q\x90\x81\x01`@R\x80\x92\x91\x90\x81\x81R` \x01\x82\x80Ta\x17\x94\x90a+eV[\x80\x15a\x17\xE1W\x80`\x1F\x10a\x17\xB6Wa\x01\0\x80\x83T\x04\x02\x83R\x91` \x01\x91a\x17\xE1V[\x82\x01\x91\x90`\0R` `\0 \x90[\x81T\x81R\x90`\x01\x01\x90` \x01\x80\x83\x11a\x17\xC4W\x82\x90\x03`\x1F\x16\x82\x01\x91[PPPPP\x90P`\0a\x17\xF2a\x1F0V[\x90P\x80Q`\0\x03a\x18\x04WP\x92\x91PPV[\x81Q\x15a\x186W\x80\x82`@Q` \x01a\x18\x1E\x92\x91\x90a.\xC4V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x92PPP\x91\x90PV[a\x11B\x84a\x1F?V[`\0a\x05Y\x82T\x90V[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c\x80\xACX\xCD`\xE0\x1B\x14\x80a\x18zWP`\x01`\x01`\xE0\x1B\x03\x19\x82\x16c[^\x13\x9F`\xE0\x1B\x14[\x80a\x05YWPa\x05Y\x82a \tV[a\x07\x8E\x83\x83\x83a .V[```\0a\x18\xA3\x83`\x02a.\xF3V[a\x18\xAE\x90`\x02a-\xCEV[g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\x18\xC6Wa\x18\xC6a'\x8AV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\x18\xF0W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P`\x03`\xFC\x1B\x81`\0\x81Q\x81\x10a\x19\x0BWa\x19\x0Ba,,V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x0F`\xFB\x1B\x81`\x01\x81Q\x81\x10a\x19:Wa\x19:a,,V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\0a\x19^\x84`\x02a.\xF3V[a\x19i\x90`\x01a-\xCEV[\x90P[`\x01\x81\x11\x15a\x19\xE1Wo\x18\x18\x99\x19\x9A\x1A\x9B\x1B\x9C\x1C\xB0\xB11\xB22\xB3`\x81\x1B\x85`\x0F\x16`\x10\x81\x10a\x19\x9DWa\x19\x9Da,,V[\x1A`\xF8\x1B\x82\x82\x81Q\x81\x10a\x19\xB3Wa\x19\xB3a,,V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SP`\x04\x94\x90\x94\x1C\x93a\x19\xDA\x81a/\nV[\x90Pa\x19lV[P\x83\x15a\r6W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FStrings: hex length insufficient`D\x82\x01R`d\x01a\x06YV[`\0\x82`\x01\x01\x82`@Qa\x1AD\x91\x90a.VV[\x90\x81R`@Q\x90\x81\x90\x03` \x01\x90 T\x15\x15\x93\x92PPPV[`\x01`\x01`\xA0\x1B\x03\x82\x16a\x1A\xB3W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01\x81\x90R`$\x82\x01R\x7FERC721: mint to the zero address`D\x82\x01R`d\x01a\x06YV[a\x1A\xBC\x81a\x0F\xD5V[\x15a\x1B\tW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1C`$\x82\x01R\x7FERC721: token already minted\0\0\0\0`D\x82\x01R`d\x01a\x06YV[a\x1B\x15`\0\x83\x83a\x18\x89V[`\x01`\x01`\xA0\x1B\x03\x82\x16`\0\x90\x81R`\x05` R`@\x81 \x80T`\x01\x92\x90a\x1B>\x90\x84\x90a-\xCEV[\x90\x91UPP`\0\x81\x81R`\x04` R`@\x80\x82 \x80T`\x01`\x01`\xA0\x1B\x03\x19\x16`\x01`\x01`\xA0\x1B\x03\x86\x16\x90\x81\x17\x90\x91U\x90Q\x83\x92\x90\x7F\xDD\xF2R\xAD\x1B\xE2\xC8\x9Bi\xC2\xB0h\xFC7\x8D\xAA\x95+\xA7\xF1c\xC4\xA1\x16(\xF5ZM\xF5#\xB3\xEF\x90\x82\x90\xA4PPV[a\x1B\xA5\x82a\x0F\xD5V[a\x1C\x08W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`.`$\x82\x01R\x7FERC721URIStorage: URI set of non`D\x82\x01Rm2\xBC4\xB9\xBA2\xB7:\x10:7\xB5\xB2\xB7`\x91\x1B`d\x82\x01R`\x84\x01a\x06YV[`\0\x82\x81R`\x08` R`@\x90 a\x07\x8E\x82\x82a,\xA1V[a\x1C*\x82\x82a\r=V[a\t\xACW`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x84R\x90\x91R\x90 \x80T`\xFF\x19\x16`\x01\x17\x90Ua\x1C`3\x90V[`\x01`\x01`\xA0\x1B\x03\x16\x81`\x01`\x01`\xA0\x1B\x03\x16\x83\x7F/\x87\x88\x11~~\xFF\x1D\x82\xE9&\xECyI\x01\xD1|x\x02JP'\t@0E@\xA73eo\r`@Q`@Q\x80\x91\x03\x90\xA4PPV[`\0a\r6\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a \xE6V[a\x1C\xC3\x82\x82a\r=V[\x15a\t\xACW`\0\x82\x81R` \x81\x81R`@\x80\x83 `\x01`\x01`\xA0\x1B\x03\x85\x16\x80\x85R\x92R\x80\x83 \x80T`\xFF\x19\x16\x90UQ3\x92\x85\x91\x7F\xF69\x1F\\2\xD9\xC6\x9D*G\xEAg\x0BD)t\xB595\xD1\xED\xC7\xFDd\xEB!\xE0G\xA89\x17\x1B\x91\x90\xA4PPV[`\0a\r6\x83`\x01`\x01`\xA0\x1B\x03\x84\x16a!-V[`\0a\x1D\x88\x82`@Q\x80`@\x01`@R\x80` \x81R` \x01\x7FSafeERC20: low-level call failed\x81RP\x85`\x01`\x01`\xA0\x1B\x03\x16a\" \x90\x92\x91\x90c\xFF\xFF\xFF\xFF\x16V[\x80Q\x90\x91P\x15a\x07\x8EW\x80\x80` \x01\x90Q\x81\x01\x90a\x1D\xA6\x91\x90a/!V[a\x07\x8EW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`*`$\x82\x01R\x7FSafeERC20: ERC20 operation did n`D\x82\x01Ri\x1B\xDD\x08\x1C\xDDX\xD8\xD9YY`\xB2\x1B`d\x82\x01R`\x84\x01a\x06YV[`\0\x82`\0\x01\x82\x81T\x81\x10a\x1E\x1CWa\x1E\x1Ca,,V[\x90`\0R` `\0 \x01T\x90P\x92\x91PPV[`\0`\x01`\x01`\xA0\x1B\x03\x84\x16;\x15a\x1F%W`@Qc\n\x85\xBD\x01`\xE1\x1B\x81R`\x01`\x01`\xA0\x1B\x03\x85\x16\x90c\x15\x0Bz\x02\x90a\x1Es\x903\x90\x89\x90\x88\x90\x88\x90`\x04\x01a/>V[` `@Q\x80\x83\x03\x81`\0\x87Z\xF1\x92PPP\x80\x15a\x1E\xAEWP`@\x80Q`\x1F=\x90\x81\x01`\x1F\x19\x16\x82\x01\x90\x92Ra\x1E\xAB\x91\x81\x01\x90a/{V[`\x01[a\x1F\x0BW=\x80\x80\x15a\x1E\xDCW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a\x1E\xE1V[``\x91P[P\x80Q`\0\x03a\x1F\x03W`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06Y\x90a.rV[\x80Q\x81` \x01\xFD[`\x01`\x01`\xE0\x1B\x03\x19\x16c\n\x85\xBD\x01`\xE1\x1B\x14\x90Pa\x11BV[P`\x01\x94\x93PPPPV[```\x0E\x80Ta\x05n\x90a+eV[``a\x1FJ\x82a\x0F\xD5V[a\x1F\xAEW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`/`$\x82\x01R\x7FERC721Metadata: URI query for no`D\x82\x01Rn72\xBC4\xB9\xBA2\xB7:\x10:7\xB5\xB2\xB7`\x89\x1B`d\x82\x01R`\x84\x01a\x06YV[`\0a\x1F\xB8a\x1F0V[\x90P`\0\x81Q\x11a\x1F\xD8W`@Q\x80` \x01`@R\x80`\0\x81RPa\r6V[\x80a\x1F\xE2\x84a\"/V[`@Q` \x01a\x1F\xF3\x92\x91\x90a.\xC4V[`@Q` \x81\x83\x03\x03\x81R\x90`@R\x93\x92PPPV[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cZ\x05\x18\x0F`\xE0\x1B\x14\x80a\x05YWPa\x05Y\x82a#0V[`\x01`\x01`\xA0\x1B\x03\x83\x16a \x89Wa \x84\x81`\x0B\x80T`\0\x83\x81R`\x0C` R`@\x81 \x82\x90U`\x01\x82\x01\x83U\x91\x90\x91R\x7F\x01u\xB7\xA68Bw\x03\xF0\xDB\xE7\xBB\x9B\xBF\x98z%Qq{4\xE7\x9F3\xB5\xB1\0\x8D\x1F\xA0\x1D\xB9\x01UV[a \xACV[\x81`\x01`\x01`\xA0\x1B\x03\x16\x83`\x01`\x01`\xA0\x1B\x03\x16\x14a \xACWa \xAC\x83\x82a#eV[`\x01`\x01`\xA0\x1B\x03\x82\x16a \xC3Wa\x07\x8E\x81a$\x02V[\x82`\x01`\x01`\xA0\x1B\x03\x16\x82`\x01`\x01`\xA0\x1B\x03\x16\x14a\x07\x8EWa\x07\x8E\x82\x82a$\xB1V[`\0\x81\x81R`\x01\x83\x01` R`@\x81 Ta\x13\xFEWP\x81T`\x01\x81\x81\x01\x84U`\0\x84\x81R` \x80\x82 \x90\x93\x01\x84\x90U\x84T\x84\x82R\x82\x86\x01\x90\x93R`@\x90 \x91\x90\x91Ua\x05YV[`\0\x81\x81R`\x01\x83\x01` R`@\x81 T\x80\x15a\"\x16W`\0a!Q`\x01\x83a-\xBBV[\x85T\x90\x91P`\0\x90a!e\x90`\x01\x90a-\xBBV[\x90P\x81\x81\x14a!\xCAW`\0\x86`\0\x01\x82\x81T\x81\x10a!\x85Wa!\x85a,,V[\x90`\0R` `\0 \x01T\x90P\x80\x87`\0\x01\x84\x81T\x81\x10a!\xA8Wa!\xA8a,,V[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x91\x82R`\x01\x88\x01\x90R`@\x90 \x83\x90U[\x85T\x86\x90\x80a!\xDBWa!\xDBa/\x98V[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90U\x85`\x01\x01`\0\x86\x81R` \x01\x90\x81R` \x01`\0 `\0\x90U`\x01\x93PPPPa\x05YV[`\0\x91PPa\x05YV[``a\x11B\x84\x84`\0\x85a$\xF5V[``\x81`\0\x03a\"VWPP`@\x80Q\x80\x82\x01\x90\x91R`\x01\x81R`\x03`\xFC\x1B` \x82\x01R\x90V[\x81`\0[\x81\x15a\"\x80W\x80a\"j\x81a-\xA2V[\x91Pa\"y\x90P`\n\x83a/\xC4V[\x91Pa\"ZV[`\0\x81g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a\"\x9BWa\"\x9Ba'\x8AV[`@Q\x90\x80\x82R\x80`\x1F\x01`\x1F\x19\x16` \x01\x82\x01`@R\x80\x15a\"\xC5W` \x82\x01\x81\x806\x837\x01\x90P[P\x90P[\x84\x15a\x11BWa\"\xDA`\x01\x83a-\xBBV[\x91Pa\"\xE7`\n\x86a/\xD8V[a\"\xF2\x90`0a-\xCEV[`\xF8\x1B\x81\x83\x81Q\x81\x10a#\x07Wa#\x07a,,V[` \x01\x01\x90`\x01`\x01`\xF8\x1B\x03\x19\x16\x90\x81`\0\x1A\x90SPa#)`\n\x86a/\xC4V[\x94Pa\"\xC9V[`\0`\x01`\x01`\xE0\x1B\x03\x19\x82\x16cye\xDB\x0B`\xE0\x1B\x14\x80a\x05YWPc\x01\xFF\xC9\xA7`\xE0\x1B`\x01`\x01`\xE0\x1B\x03\x19\x83\x16\x14a\x05YV[`\0`\x01a#r\x84a\x0C\x97V[a#|\x91\x90a-\xBBV[`\0\x83\x81R`\n` R`@\x90 T\x90\x91P\x80\x82\x14a#\xCFW`\x01`\x01`\xA0\x1B\x03\x84\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x85\x84R\x82R\x80\x83 T\x84\x84R\x81\x84 \x81\x90U\x83R`\n\x90\x91R\x90 \x81\x90U[P`\0\x91\x82R`\n` \x90\x81R`@\x80\x84 \x84\x90U`\x01`\x01`\xA0\x1B\x03\x90\x94\x16\x83R`\t\x81R\x83\x83 \x91\x83RR\x90\x81 UV[`\x0BT`\0\x90a$\x14\x90`\x01\x90a-\xBBV[`\0\x83\x81R`\x0C` R`@\x81 T`\x0B\x80T\x93\x94P\x90\x92\x84\x90\x81\x10a$<Wa$<a,,V[\x90`\0R` `\0 \x01T\x90P\x80`\x0B\x83\x81T\x81\x10a$]Wa$]a,,V[`\0\x91\x82R` \x80\x83 \x90\x91\x01\x92\x90\x92U\x82\x81R`\x0C\x90\x91R`@\x80\x82 \x84\x90U\x85\x82R\x81 U`\x0B\x80T\x80a$\x95Wa$\x95a/\x98V[`\x01\x90\x03\x81\x81\x90`\0R` `\0 \x01`\0\x90U\x90UPPPPV[`\0a$\xBC\x83a\x0C\x97V[`\x01`\x01`\xA0\x1B\x03\x90\x93\x16`\0\x90\x81R`\t` \x90\x81R`@\x80\x83 \x86\x84R\x82R\x80\x83 \x85\x90U\x93\x82R`\n\x90R\x91\x90\x91 \x91\x90\x91UPV[``\x82G\x10\x15a%VW`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`&`$\x82\x01R\x7FAddress: insufficient balance fo`D\x82\x01Re\x1C\x88\x18\xD8[\x1B`\xD2\x1B`d\x82\x01R`\x84\x01a\x06YV[\x84;a%\xA4W`@QbF\x1B\xCD`\xE5\x1B\x81R` `\x04\x82\x01R`\x1D`$\x82\x01R\x7FAddress: call to non-contract\0\0\0`D\x82\x01R`d\x01a\x06YV[`\0\x80\x86`\x01`\x01`\xA0\x1B\x03\x16\x85\x87`@Qa%\xC0\x91\x90a.VV[`\0`@Q\x80\x83\x03\x81\x85\x87Z\xF1\x92PPP=\x80`\0\x81\x14a%\xFDW`@Q\x91P`\x1F\x19`?=\x01\x16\x82\x01`@R=\x82R=`\0` \x84\x01>a&\x02V[``\x91P[P\x91P\x91Pa&\x12\x82\x82\x86a&\x1DV[\x97\x96PPPPPPPV[``\x83\x15a&,WP\x81a\r6V[\x82Q\x15a&<W\x82Q\x80\x84` \x01\xFD[\x81`@QbF\x1B\xCD`\xE5\x1B\x81R`\x04\x01a\x06Y\x91\x90a&\xDCV[`\x01`\x01`\xE0\x1B\x03\x19\x81\x16\x81\x14a&lW`\0\x80\xFD[PV[`\0` \x82\x84\x03\x12\x15a&\x81W`\0\x80\xFD[\x815a\r6\x81a&VV[`\0[\x83\x81\x10\x15a&\xA7W\x81\x81\x01Q\x83\x82\x01R` \x01a&\x8FV[PP`\0\x91\x01RV[`\0\x81Q\x80\x84Ra&\xC8\x81` \x86\x01` \x86\x01a&\x8CV[`\x1F\x01`\x1F\x19\x16\x92\x90\x92\x01` \x01\x92\x91PPV[` \x81R`\0a\r6` \x83\x01\x84a&\xB0V[`\0` \x82\x84\x03\x12\x15a'\x01W`\0\x80\xFD[P5\x91\x90PV[\x805`\x01`\x01`\xA0\x1B\x03\x81\x16\x81\x14a'\x1FW`\0\x80\xFD[\x91\x90PV[`\0\x80`@\x83\x85\x03\x12\x15a'7W`\0\x80\xFD[a'@\x83a'\x08V[\x94` \x93\x90\x93\x015\x93PPPV[`\0\x80`\0``\x84\x86\x03\x12\x15a'cW`\0\x80\xFD[a'l\x84a'\x08V[\x92Pa'z` \x85\x01a'\x08V[\x91P`@\x84\x015\x90P\x92P\x92P\x92V[cNH{q`\xE0\x1B`\0R`A`\x04R`$`\0\xFD[`\0g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x84\x11\x15a'\xBBWa'\xBBa'\x8AV[`@Q`\x1F\x85\x01`\x1F\x19\x90\x81\x16`?\x01\x16\x81\x01\x90\x82\x82\x11\x81\x83\x10\x17\x15a'\xE3Wa'\xE3a'\x8AV[\x81`@R\x80\x93P\x85\x81R\x86\x86\x86\x01\x11\x15a'\xFCW`\0\x80\xFD[\x85\x85` \x83\x017`\0` \x87\x83\x01\x01RPPP\x93\x92PPPV[`\0\x82`\x1F\x83\x01\x12a('W`\0\x80\xFD[a\r6\x83\x835` \x85\x01a'\xA0V[`\0\x80`\0\x80`\0`\xA0\x86\x88\x03\x12\x15a(NW`\0\x80\xFD[a(W\x86a'\x08V[\x94P` \x86\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a(tW`\0\x80\xFD[a(\x80\x89\x83\x8A\x01a(\x16V[\x95P`@\x88\x015\x91P\x80\x82\x11\x15a(\x96W`\0\x80\xFD[Pa(\xA3\x88\x82\x89\x01a(\x16V[\x95\x98\x94\x97P\x94\x95``\x81\x015\x95P`\x80\x015\x93\x92PPPV[`\0\x80`@\x83\x85\x03\x12\x15a(\xCFW`\0\x80\xFD[\x825\x91Pa(\xDF` \x84\x01a'\x08V[\x90P\x92P\x92\x90PV[`\0` \x82\x84\x03\x12\x15a(\xFAW`\0\x80\xFD[a\r6\x82a'\x08V[`\0\x80`@\x83\x85\x03\x12\x15a)\x16W`\0\x80\xFD[PP\x805\x92` \x90\x91\x015\x91PV[`\0` \x82\x84\x03\x12\x15a)7W`\0\x80\xFD[\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a)NW`\0\x80\xFD[a\x11B\x84\x82\x85\x01a(\x16V[`\0\x80\x83`\x1F\x84\x01\x12a)lW`\0\x80\xFD[P\x815g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a)\x84W`\0\x80\xFD[` \x83\x01\x91P\x83` \x82\x85\x01\x01\x11\x15a)\x9CW`\0\x80\xFD[\x92P\x92\x90PV[`\0\x80`\0\x80`\0\x80`\0\x80`\xA0\x89\x8B\x03\x12\x15a)\xBFW`\0\x80\xFD[\x885g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x80\x82\x11\x15a)\xD7W`\0\x80\xFD[\x81\x8B\x01\x91P\x8B`\x1F\x83\x01\x12a)\xEBW`\0\x80\xFD[\x815\x81\x81\x11\x15a)\xFAW`\0\x80\xFD[\x8C` \x82`\x05\x1B\x85\x01\x01\x11\x15a*\x0FW`\0\x80\xFD[` \x92\x83\x01\x9AP\x98P\x90\x8A\x015\x90\x80\x82\x11\x15a**W`\0\x80\xFD[a*6\x8C\x83\x8D\x01a)ZV[\x90\x98P\x96P`@\x8B\x015\x91P\x80\x82\x11\x15a*OW`\0\x80\xFD[Pa*\\\x8B\x82\x8C\x01a)ZV[\x99\x9C\x98\x9BP\x96\x99\x95\x98\x96\x97``\x87\x015\x96`\x80\x015\x95P\x93PPPPV[\x80\x15\x15\x81\x14a&lW`\0\x80\xFD[`\0\x80`@\x83\x85\x03\x12\x15a*\x9BW`\0\x80\xFD[a*\xA4\x83a'\x08V[\x91P` \x83\x015a*\xB4\x81a*zV[\x80\x91PP\x92P\x92\x90PV[`\0\x80`\0\x80`\x80\x85\x87\x03\x12\x15a*\xD5W`\0\x80\xFD[a*\xDE\x85a'\x08V[\x93Pa*\xEC` \x86\x01a'\x08V[\x92P`@\x85\x015\x91P``\x85\x015g\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a+\x0FW`\0\x80\xFD[\x85\x01`\x1F\x81\x01\x87\x13a+ W`\0\x80\xFD[a+/\x87\x825` \x84\x01a'\xA0V[\x91PP\x92\x95\x91\x94P\x92PV[`\0\x80`@\x83\x85\x03\x12\x15a+NW`\0\x80\xFD[a+W\x83a'\x08V[\x91Pa(\xDF` \x84\x01a'\x08V[`\x01\x81\x81\x1C\x90\x82\x16\x80a+yW`\x7F\x82\x16\x91P[` \x82\x10\x81\x03a+\x99WcNH{q`\xE0\x1B`\0R`\"`\x04R`$`\0\xFD[P\x91\x90PV[` \x80\x82R`1\x90\x82\x01R\x7FERC721: transfer caller is not o`@\x82\x01Rp\x1D\xDB\x99\\\x88\x1B\x9B\xDC\x88\x18\\\x1C\x1C\x9B\xDD\x99Y`z\x1B``\x82\x01R`\x80\x01\x90V[`\0\x83Qa,\x02\x81\x84` \x88\x01a&\x8CV[`/`\xF8\x1B\x90\x83\x01\x90\x81R\x83Qa, \x81`\x01\x84\x01` \x88\x01a&\x8CV[\x01`\x01\x01\x94\x93PPPPV[cNH{q`\xE0\x1B`\0R`2`\x04R`$`\0\xFD[`\0` \x82\x84\x03\x12\x15a,TW`\0\x80\xFD[PQ\x91\x90PV[`\x1F\x82\x11\x15a\x07\x8EW`\0\x81\x81R` \x81 `\x1F\x85\x01`\x05\x1C\x81\x01` \x86\x10\x15a,\x82WP\x80[`\x1F\x85\x01`\x05\x1C\x82\x01\x91P[\x81\x81\x10\x15a\x14zW\x82\x81U`\x01\x01a,\x8EV[\x81Qg\xFF\xFF\xFF\xFF\xFF\xFF\xFF\xFF\x81\x11\x15a,\xBBWa,\xBBa'\x8AV[a,\xCF\x81a,\xC9\x84Ta+eV[\x84a,[V[` \x80`\x1F\x83\x11`\x01\x81\x14a-\x04W`\0\x84\x15a,\xECWP\x85\x83\x01Q[`\0\x19`\x03\x86\x90\x1B\x1C\x19\x16`\x01\x85\x90\x1B\x17\x85Ua\x14zV[`\0\x85\x81R` \x81 `\x1F\x19\x86\x16\x91[\x82\x81\x10\x15a-3W\x88\x86\x01Q\x82U\x94\x84\x01\x94`\x01\x90\x91\x01\x90\x84\x01a-\x14V[P\x85\x82\x10\x15a-QW\x87\x85\x01Q`\0\x19`\x03\x88\x90\x1B`\xF8\x16\x1C\x19\x16\x81U[PPPPP`\x01\x90\x81\x1B\x01\x90UPV[\x83\x85\x827`\0\x84\x82\x01`/`\xF8\x1B\x81R\x83\x85`\x01\x83\x017`\0\x93\x01`\x01\x01\x92\x83RP\x90\x94\x93PPPPV[cNH{q`\xE0\x1B`\0R`\x11`\x04R`$`\0\xFD[`\0`\x01\x82\x01a-\xB4Wa-\xB4a-\x8CV[P`\x01\x01\x90V[\x81\x81\x03\x81\x81\x11\x15a\x05YWa\x05Ya-\x8CV[\x80\x82\x01\x80\x82\x11\x15a\x05YWa\x05Ya-\x8CV[\x7FAccessControl: account \0\0\0\0\0\0\0\0\0\x81R`\0\x83Qa.\x19\x81`\x17\x85\x01` \x88\x01a&\x8CV[p\x01\x03K\x99\x03kK\x9B\x9BKs9\x03\x93{c)`}\x1B`\x17\x91\x84\x01\x91\x82\x01R\x83Qa.J\x81`(\x84\x01` \x88\x01a&\x8CV[\x01`(\x01\x94\x93PPPPV[`\0\x82Qa.h\x81\x84` \x87\x01a&\x8CV[\x91\x90\x91\x01\x92\x91PPV[` \x80\x82R`2\x90\x82\x01R\x7FERC721: transfer to non ERC721Re`@\x82\x01Rq1\xB2\xB4\xBB2\xB9\x104\xB6\xB862\xB6\xB2\xB7:2\xB9`q\x1B``\x82\x01R`\x80\x01\x90V[`\0\x83Qa.\xD6\x81\x84` \x88\x01a&\x8CV[\x83Q\x90\x83\x01\x90a.\xEA\x81\x83` \x88\x01a&\x8CV[\x01\x94\x93PPPPV[\x80\x82\x02\x81\x15\x82\x82\x04\x84\x14\x17a\x05YWa\x05Ya-\x8CV[`\0\x81a/\x19Wa/\x19a-\x8CV[P`\0\x19\x01\x90V[`\0` \x82\x84\x03\x12\x15a/3W`\0\x80\xFD[\x81Qa\r6\x81a*zV[`\x01`\x01`\xA0\x1B\x03\x85\x81\x16\x82R\x84\x16` \x82\x01R`@\x81\x01\x83\x90R`\x80``\x82\x01\x81\x90R`\0\x90a/q\x90\x83\x01\x84a&\xB0V[\x96\x95PPPPPPV[`\0` \x82\x84\x03\x12\x15a/\x8DW`\0\x80\xFD[\x81Qa\r6\x81a&VV[cNH{q`\xE0\x1B`\0R`1`\x04R`$`\0\xFD[cNH{q`\xE0\x1B`\0R`\x12`\x04R`$`\0\xFD[`\0\x82a/\xD3Wa/\xD3a/\xAEV[P\x04\x90V[`\0\x82a/\xE7Wa/\xE7a/\xAEV[P\x06\x90V\xFE\xA2dipfsX\"\x12 m{\xDE\xEA\xFDk<\xBBC\x1FL|\"%\x04^\xD0\xE8\xE3\x9A6\x8F1\n'\xAEI_/\xC1\x0C\xDBdsolcC\0\x08\x13\x003";
1326    /// The deployed bytecode of the contract.
1327    pub static HOPRBOOST_DEPLOYED_BYTECODE: ::ethers::core::types::Bytes = ::ethers::core::types::Bytes::from_static(
1328        __DEPLOYED_BYTECODE,
1329    );
1330    pub struct HoprBoost<M>(::ethers::contract::Contract<M>);
1331    impl<M> ::core::clone::Clone for HoprBoost<M> {
1332        fn clone(&self) -> Self {
1333            Self(::core::clone::Clone::clone(&self.0))
1334        }
1335    }
1336    impl<M> ::core::ops::Deref for HoprBoost<M> {
1337        type Target = ::ethers::contract::Contract<M>;
1338        fn deref(&self) -> &Self::Target {
1339            &self.0
1340        }
1341    }
1342    impl<M> ::core::ops::DerefMut for HoprBoost<M> {
1343        fn deref_mut(&mut self) -> &mut Self::Target {
1344            &mut self.0
1345        }
1346    }
1347    impl<M> ::core::fmt::Debug for HoprBoost<M> {
1348        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
1349            f.debug_tuple(::core::stringify!(HoprBoost)).field(&self.address()).finish()
1350        }
1351    }
1352    impl<M: ::ethers::providers::Middleware> HoprBoost<M> {
1353        /// Creates a new contract instance with the specified `ethers` client at
1354        /// `address`. The contract derefs to a `ethers::Contract` object.
1355        pub fn new<T: Into<::ethers::core::types::Address>>(
1356            address: T,
1357            client: ::std::sync::Arc<M>,
1358        ) -> Self {
1359            Self(
1360                ::ethers::contract::Contract::new(
1361                    address.into(),
1362                    HOPRBOOST_ABI.clone(),
1363                    client,
1364                ),
1365            )
1366        }
1367        /// Constructs the general purpose `Deployer` instance based on the provided constructor arguments and sends it.
1368        /// Returns a new instance of a deployer that returns an instance of this contract after sending the transaction
1369        ///
1370        /// Notes:
1371        /// - If there are no constructor arguments, you should pass `()` as the argument.
1372        /// - The default poll duration is 7 seconds.
1373        /// - The default number of confirmations is 1 block.
1374        ///
1375        ///
1376        /// # Example
1377        ///
1378        /// Generate contract bindings with `abigen!` and deploy a new contract instance.
1379        ///
1380        /// *Note*: this requires a `bytecode` and `abi` object in the `greeter.json` artifact.
1381        ///
1382        /// ```ignore
1383        /// # async fn deploy<M: ethers::providers::Middleware>(client: ::std::sync::Arc<M>) {
1384        ///     abigen!(Greeter, "../greeter.json");
1385        ///
1386        ///    let greeter_contract = Greeter::deploy(client, "Hello world!".to_string()).unwrap().send().await.unwrap();
1387        ///    let msg = greeter_contract.greet().call().await.unwrap();
1388        /// # }
1389        /// ```
1390        pub fn deploy<T: ::ethers::core::abi::Tokenize>(
1391            client: ::std::sync::Arc<M>,
1392            constructor_args: T,
1393        ) -> ::core::result::Result<
1394            ::ethers::contract::builders::ContractDeployer<M, Self>,
1395            ::ethers::contract::ContractError<M>,
1396        > {
1397            let factory = ::ethers::contract::ContractFactory::new(
1398                HOPRBOOST_ABI.clone(),
1399                HOPRBOOST_BYTECODE.clone().into(),
1400                client,
1401            );
1402            let deployer = factory.deploy(constructor_args)?;
1403            let deployer = ::ethers::contract::ContractDeployer::new(deployer);
1404            Ok(deployer)
1405        }
1406        ///Calls the contract's `DEFAULT_ADMIN_ROLE` (0xa217fddf) function
1407        pub fn default_admin_role(
1408            &self,
1409        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
1410            self.0
1411                .method_hash([162, 23, 253, 223], ())
1412                .expect("method not found (this should never happen)")
1413        }
1414        ///Calls the contract's `MINTER_ROLE` (0xd5391393) function
1415        pub fn minter_role(
1416            &self,
1417        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
1418            self.0
1419                .method_hash([213, 57, 19, 147], ())
1420                .expect("method not found (this should never happen)")
1421        }
1422        ///Calls the contract's `approve` (0x095ea7b3) function
1423        pub fn approve(
1424            &self,
1425            to: ::ethers::core::types::Address,
1426            token_id: ::ethers::core::types::U256,
1427        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1428            self.0
1429                .method_hash([9, 94, 167, 179], (to, token_id))
1430                .expect("method not found (this should never happen)")
1431        }
1432        ///Calls the contract's `balanceOf` (0x70a08231) function
1433        pub fn balance_of(
1434            &self,
1435            owner: ::ethers::core::types::Address,
1436        ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1437            self.0
1438                .method_hash([112, 160, 130, 49], owner)
1439                .expect("method not found (this should never happen)")
1440        }
1441        ///Calls the contract's `batchMint` (0x9365c533) function
1442        pub fn batch_mint(
1443            &self,
1444            to: ::std::vec::Vec<::ethers::core::types::Address>,
1445            boost_type: ::std::string::String,
1446            boost_rank: ::std::string::String,
1447            boost_numerator: ::ethers::core::types::U256,
1448            redeem_deadline: ::ethers::core::types::U256,
1449        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1450            self.0
1451                .method_hash(
1452                    [147, 101, 197, 51],
1453                    (to, boost_type, boost_rank, boost_numerator, redeem_deadline),
1454                )
1455                .expect("method not found (this should never happen)")
1456        }
1457        ///Calls the contract's `boostOf` (0x896cddf4) function
1458        pub fn boost_of(
1459            &self,
1460            token_id: ::ethers::core::types::U256,
1461        ) -> ::ethers::contract::builders::ContractCall<
1462            M,
1463            (::ethers::core::types::U256, ::ethers::core::types::U256),
1464        > {
1465            self.0
1466                .method_hash([137, 108, 221, 244], token_id)
1467                .expect("method not found (this should never happen)")
1468        }
1469        ///Calls the contract's `getApproved` (0x081812fc) function
1470        pub fn get_approved(
1471            &self,
1472            token_id: ::ethers::core::types::U256,
1473        ) -> ::ethers::contract::builders::ContractCall<
1474            M,
1475            ::ethers::core::types::Address,
1476        > {
1477            self.0
1478                .method_hash([8, 24, 18, 252], token_id)
1479                .expect("method not found (this should never happen)")
1480        }
1481        ///Calls the contract's `getRoleAdmin` (0x248a9ca3) function
1482        pub fn get_role_admin(
1483            &self,
1484            role: [u8; 32],
1485        ) -> ::ethers::contract::builders::ContractCall<M, [u8; 32]> {
1486            self.0
1487                .method_hash([36, 138, 156, 163], role)
1488                .expect("method not found (this should never happen)")
1489        }
1490        ///Calls the contract's `getRoleMember` (0x9010d07c) function
1491        pub fn get_role_member(
1492            &self,
1493            role: [u8; 32],
1494            index: ::ethers::core::types::U256,
1495        ) -> ::ethers::contract::builders::ContractCall<
1496            M,
1497            ::ethers::core::types::Address,
1498        > {
1499            self.0
1500                .method_hash([144, 16, 208, 124], (role, index))
1501                .expect("method not found (this should never happen)")
1502        }
1503        ///Calls the contract's `getRoleMemberCount` (0xca15c873) function
1504        pub fn get_role_member_count(
1505            &self,
1506            role: [u8; 32],
1507        ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1508            self.0
1509                .method_hash([202, 21, 200, 115], role)
1510                .expect("method not found (this should never happen)")
1511        }
1512        ///Calls the contract's `grantRole` (0x2f2ff15d) function
1513        pub fn grant_role(
1514            &self,
1515            role: [u8; 32],
1516            account: ::ethers::core::types::Address,
1517        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1518            self.0
1519                .method_hash([47, 47, 241, 93], (role, account))
1520                .expect("method not found (this should never happen)")
1521        }
1522        ///Calls the contract's `hasRole` (0x91d14854) function
1523        pub fn has_role(
1524            &self,
1525            role: [u8; 32],
1526            account: ::ethers::core::types::Address,
1527        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1528            self.0
1529                .method_hash([145, 209, 72, 84], (role, account))
1530                .expect("method not found (this should never happen)")
1531        }
1532        ///Calls the contract's `isApprovedForAll` (0xe985e9c5) function
1533        pub fn is_approved_for_all(
1534            &self,
1535            owner: ::ethers::core::types::Address,
1536            operator: ::ethers::core::types::Address,
1537        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1538            self.0
1539                .method_hash([233, 133, 233, 197], (owner, operator))
1540                .expect("method not found (this should never happen)")
1541        }
1542        ///Calls the contract's `mint` (0x29867dac) function
1543        pub fn mint(
1544            &self,
1545            to: ::ethers::core::types::Address,
1546            boost_type: ::std::string::String,
1547            boost_rank: ::std::string::String,
1548            boost_numerator: ::ethers::core::types::U256,
1549            redeem_deadline: ::ethers::core::types::U256,
1550        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1551            self.0
1552                .method_hash(
1553                    [41, 134, 125, 172],
1554                    (to, boost_type, boost_rank, boost_numerator, redeem_deadline),
1555                )
1556                .expect("method not found (this should never happen)")
1557        }
1558        ///Calls the contract's `name` (0x06fdde03) function
1559        pub fn name(
1560            &self,
1561        ) -> ::ethers::contract::builders::ContractCall<M, ::std::string::String> {
1562            self.0
1563                .method_hash([6, 253, 222, 3], ())
1564                .expect("method not found (this should never happen)")
1565        }
1566        ///Calls the contract's `ownerOf` (0x6352211e) function
1567        pub fn owner_of(
1568            &self,
1569            token_id: ::ethers::core::types::U256,
1570        ) -> ::ethers::contract::builders::ContractCall<
1571            M,
1572            ::ethers::core::types::Address,
1573        > {
1574            self.0
1575                .method_hash([99, 82, 33, 30], token_id)
1576                .expect("method not found (this should never happen)")
1577        }
1578        ///Calls the contract's `reclaimErc20Tokens` (0x6067bc15) function
1579        pub fn reclaim_erc_20_tokens(
1580            &self,
1581            token_address: ::ethers::core::types::Address,
1582        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1583            self.0
1584                .method_hash([96, 103, 188, 21], token_address)
1585                .expect("method not found (this should never happen)")
1586        }
1587        ///Calls the contract's `reclaimErc721Tokens` (0x48c64e41) function
1588        pub fn reclaim_erc_721_tokens(
1589            &self,
1590            token_address: ::ethers::core::types::Address,
1591            token_id: ::ethers::core::types::U256,
1592        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1593            self.0
1594                .method_hash([72, 198, 78, 65], (token_address, token_id))
1595                .expect("method not found (this should never happen)")
1596        }
1597        ///Calls the contract's `renounceRole` (0x36568abe) function
1598        pub fn renounce_role(
1599            &self,
1600            role: [u8; 32],
1601            account: ::ethers::core::types::Address,
1602        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1603            self.0
1604                .method_hash([54, 86, 138, 190], (role, account))
1605                .expect("method not found (this should never happen)")
1606        }
1607        ///Calls the contract's `revokeRole` (0xd547741f) function
1608        pub fn revoke_role(
1609            &self,
1610            role: [u8; 32],
1611            account: ::ethers::core::types::Address,
1612        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1613            self.0
1614                .method_hash([213, 71, 116, 31], (role, account))
1615                .expect("method not found (this should never happen)")
1616        }
1617        ///Calls the contract's `safeTransferFrom` (0x42842e0e) function
1618        pub fn safe_transfer_from(
1619            &self,
1620            from: ::ethers::core::types::Address,
1621            to: ::ethers::core::types::Address,
1622            token_id: ::ethers::core::types::U256,
1623        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1624            self.0
1625                .method_hash([66, 132, 46, 14], (from, to, token_id))
1626                .expect("method not found (this should never happen)")
1627        }
1628        ///Calls the contract's `safeTransferFrom` (0xb88d4fde) function
1629        pub fn safe_transfer_from_with_from_and_to_and_data(
1630            &self,
1631            from: ::ethers::core::types::Address,
1632            to: ::ethers::core::types::Address,
1633            token_id: ::ethers::core::types::U256,
1634            data: ::ethers::core::types::Bytes,
1635        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1636            self.0
1637                .method_hash([184, 141, 79, 222], (from, to, token_id, data))
1638                .expect("method not found (this should never happen)")
1639        }
1640        ///Calls the contract's `setApprovalForAll` (0xa22cb465) function
1641        pub fn set_approval_for_all(
1642            &self,
1643            operator: ::ethers::core::types::Address,
1644            approved: bool,
1645        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1646            self.0
1647                .method_hash([162, 44, 180, 101], (operator, approved))
1648                .expect("method not found (this should never happen)")
1649        }
1650        ///Calls the contract's `supportsInterface` (0x01ffc9a7) function
1651        pub fn supports_interface(
1652            &self,
1653            interface_id: [u8; 4],
1654        ) -> ::ethers::contract::builders::ContractCall<M, bool> {
1655            self.0
1656                .method_hash([1, 255, 201, 167], interface_id)
1657                .expect("method not found (this should never happen)")
1658        }
1659        ///Calls the contract's `symbol` (0x95d89b41) function
1660        pub fn symbol(
1661            &self,
1662        ) -> ::ethers::contract::builders::ContractCall<M, ::std::string::String> {
1663            self.0
1664                .method_hash([149, 216, 155, 65], ())
1665                .expect("method not found (this should never happen)")
1666        }
1667        ///Calls the contract's `tokenByIndex` (0x4f6ccce7) function
1668        pub fn token_by_index(
1669            &self,
1670            index: ::ethers::core::types::U256,
1671        ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1672            self.0
1673                .method_hash([79, 108, 204, 231], index)
1674                .expect("method not found (this should never happen)")
1675        }
1676        ///Calls the contract's `tokenOfOwnerByIndex` (0x2f745c59) function
1677        pub fn token_of_owner_by_index(
1678            &self,
1679            owner: ::ethers::core::types::Address,
1680            index: ::ethers::core::types::U256,
1681        ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1682            self.0
1683                .method_hash([47, 116, 92, 89], (owner, index))
1684                .expect("method not found (this should never happen)")
1685        }
1686        ///Calls the contract's `tokenURI` (0xc87b56dd) function
1687        pub fn token_uri(
1688            &self,
1689            token_id: ::ethers::core::types::U256,
1690        ) -> ::ethers::contract::builders::ContractCall<M, ::std::string::String> {
1691            self.0
1692                .method_hash([200, 123, 86, 221], token_id)
1693                .expect("method not found (this should never happen)")
1694        }
1695        ///Calls the contract's `totalSupply` (0x18160ddd) function
1696        pub fn total_supply(
1697            &self,
1698        ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1699            self.0
1700                .method_hash([24, 22, 13, 221], ())
1701                .expect("method not found (this should never happen)")
1702        }
1703        ///Calls the contract's `transferFrom` (0x23b872dd) function
1704        pub fn transfer_from(
1705            &self,
1706            from: ::ethers::core::types::Address,
1707            to: ::ethers::core::types::Address,
1708            token_id: ::ethers::core::types::U256,
1709        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1710            self.0
1711                .method_hash([35, 184, 114, 221], (from, to, token_id))
1712                .expect("method not found (this should never happen)")
1713        }
1714        ///Calls the contract's `typeAt` (0xb5185a88) function
1715        pub fn type_at(
1716            &self,
1717            type_index: ::ethers::core::types::U256,
1718        ) -> ::ethers::contract::builders::ContractCall<M, ::std::string::String> {
1719            self.0
1720                .method_hash([181, 24, 90, 136], type_index)
1721                .expect("method not found (this should never happen)")
1722        }
1723        ///Calls the contract's `typeIndexOf` (0x562317c5) function
1724        pub fn type_index_of(
1725            &self,
1726            token_id: ::ethers::core::types::U256,
1727        ) -> ::ethers::contract::builders::ContractCall<M, ::ethers::core::types::U256> {
1728            self.0
1729                .method_hash([86, 35, 23, 197], token_id)
1730                .expect("method not found (this should never happen)")
1731        }
1732        ///Calls the contract's `typeOf` (0xc588ff8b) function
1733        pub fn type_of(
1734            &self,
1735            token_id: ::ethers::core::types::U256,
1736        ) -> ::ethers::contract::builders::ContractCall<M, ::std::string::String> {
1737            self.0
1738                .method_hash([197, 136, 255, 139], token_id)
1739                .expect("method not found (this should never happen)")
1740        }
1741        ///Calls the contract's `updateBaseURI` (0x931688cb) function
1742        pub fn update_base_uri(
1743            &self,
1744            base_token_uri: ::std::string::String,
1745        ) -> ::ethers::contract::builders::ContractCall<M, ()> {
1746            self.0
1747                .method_hash([147, 22, 136, 203], base_token_uri)
1748                .expect("method not found (this should never happen)")
1749        }
1750        ///Gets the contract's `Approval` event
1751        pub fn approval_filter(
1752            &self,
1753        ) -> ::ethers::contract::builders::Event<
1754            ::std::sync::Arc<M>,
1755            M,
1756            ApprovalFilter,
1757        > {
1758            self.0.event()
1759        }
1760        ///Gets the contract's `ApprovalForAll` event
1761        pub fn approval_for_all_filter(
1762            &self,
1763        ) -> ::ethers::contract::builders::Event<
1764            ::std::sync::Arc<M>,
1765            M,
1766            ApprovalForAllFilter,
1767        > {
1768            self.0.event()
1769        }
1770        ///Gets the contract's `BoostMinted` event
1771        pub fn boost_minted_filter(
1772            &self,
1773        ) -> ::ethers::contract::builders::Event<
1774            ::std::sync::Arc<M>,
1775            M,
1776            BoostMintedFilter,
1777        > {
1778            self.0.event()
1779        }
1780        ///Gets the contract's `RoleAdminChanged` event
1781        pub fn role_admin_changed_filter(
1782            &self,
1783        ) -> ::ethers::contract::builders::Event<
1784            ::std::sync::Arc<M>,
1785            M,
1786            RoleAdminChangedFilter,
1787        > {
1788            self.0.event()
1789        }
1790        ///Gets the contract's `RoleGranted` event
1791        pub fn role_granted_filter(
1792            &self,
1793        ) -> ::ethers::contract::builders::Event<
1794            ::std::sync::Arc<M>,
1795            M,
1796            RoleGrantedFilter,
1797        > {
1798            self.0.event()
1799        }
1800        ///Gets the contract's `RoleRevoked` event
1801        pub fn role_revoked_filter(
1802            &self,
1803        ) -> ::ethers::contract::builders::Event<
1804            ::std::sync::Arc<M>,
1805            M,
1806            RoleRevokedFilter,
1807        > {
1808            self.0.event()
1809        }
1810        ///Gets the contract's `Transfer` event
1811        pub fn transfer_filter(
1812            &self,
1813        ) -> ::ethers::contract::builders::Event<
1814            ::std::sync::Arc<M>,
1815            M,
1816            TransferFilter,
1817        > {
1818            self.0.event()
1819        }
1820        /// Returns an `Event` builder for all the events of this contract.
1821        pub fn events(
1822            &self,
1823        ) -> ::ethers::contract::builders::Event<
1824            ::std::sync::Arc<M>,
1825            M,
1826            HoprBoostEvents,
1827        > {
1828            self.0.event_with_filter(::core::default::Default::default())
1829        }
1830    }
1831    impl<M: ::ethers::providers::Middleware> From<::ethers::contract::Contract<M>>
1832    for HoprBoost<M> {
1833        fn from(contract: ::ethers::contract::Contract<M>) -> Self {
1834            Self::new(contract.address(), contract.client())
1835        }
1836    }
1837    #[derive(
1838        Clone,
1839        ::ethers::contract::EthEvent,
1840        ::ethers::contract::EthDisplay,
1841        serde::Serialize,
1842        serde::Deserialize,
1843        Default,
1844        Debug,
1845        PartialEq,
1846        Eq,
1847        Hash
1848    )]
1849    #[ethevent(name = "Approval", abi = "Approval(address,address,uint256)")]
1850    pub struct ApprovalFilter {
1851        #[ethevent(indexed)]
1852        pub owner: ::ethers::core::types::Address,
1853        #[ethevent(indexed)]
1854        pub approved: ::ethers::core::types::Address,
1855        #[ethevent(indexed)]
1856        pub token_id: ::ethers::core::types::U256,
1857    }
1858    #[derive(
1859        Clone,
1860        ::ethers::contract::EthEvent,
1861        ::ethers::contract::EthDisplay,
1862        serde::Serialize,
1863        serde::Deserialize,
1864        Default,
1865        Debug,
1866        PartialEq,
1867        Eq,
1868        Hash
1869    )]
1870    #[ethevent(name = "ApprovalForAll", abi = "ApprovalForAll(address,address,bool)")]
1871    pub struct ApprovalForAllFilter {
1872        #[ethevent(indexed)]
1873        pub owner: ::ethers::core::types::Address,
1874        #[ethevent(indexed)]
1875        pub operator: ::ethers::core::types::Address,
1876        pub approved: bool,
1877    }
1878    #[derive(
1879        Clone,
1880        ::ethers::contract::EthEvent,
1881        ::ethers::contract::EthDisplay,
1882        serde::Serialize,
1883        serde::Deserialize,
1884        Default,
1885        Debug,
1886        PartialEq,
1887        Eq,
1888        Hash
1889    )]
1890    #[ethevent(name = "BoostMinted", abi = "BoostMinted(uint256,uint256,uint256)")]
1891    pub struct BoostMintedFilter {
1892        #[ethevent(indexed)]
1893        pub boost_type_index: ::ethers::core::types::U256,
1894        #[ethevent(indexed)]
1895        pub boost_numerator: ::ethers::core::types::U256,
1896        #[ethevent(indexed)]
1897        pub redeem_deadline: ::ethers::core::types::U256,
1898    }
1899    #[derive(
1900        Clone,
1901        ::ethers::contract::EthEvent,
1902        ::ethers::contract::EthDisplay,
1903        serde::Serialize,
1904        serde::Deserialize,
1905        Default,
1906        Debug,
1907        PartialEq,
1908        Eq,
1909        Hash
1910    )]
1911    #[ethevent(
1912        name = "RoleAdminChanged",
1913        abi = "RoleAdminChanged(bytes32,bytes32,bytes32)"
1914    )]
1915    pub struct RoleAdminChangedFilter {
1916        #[ethevent(indexed)]
1917        pub role: [u8; 32],
1918        #[ethevent(indexed)]
1919        pub previous_admin_role: [u8; 32],
1920        #[ethevent(indexed)]
1921        pub new_admin_role: [u8; 32],
1922    }
1923    #[derive(
1924        Clone,
1925        ::ethers::contract::EthEvent,
1926        ::ethers::contract::EthDisplay,
1927        serde::Serialize,
1928        serde::Deserialize,
1929        Default,
1930        Debug,
1931        PartialEq,
1932        Eq,
1933        Hash
1934    )]
1935    #[ethevent(name = "RoleGranted", abi = "RoleGranted(bytes32,address,address)")]
1936    pub struct RoleGrantedFilter {
1937        #[ethevent(indexed)]
1938        pub role: [u8; 32],
1939        #[ethevent(indexed)]
1940        pub account: ::ethers::core::types::Address,
1941        #[ethevent(indexed)]
1942        pub sender: ::ethers::core::types::Address,
1943    }
1944    #[derive(
1945        Clone,
1946        ::ethers::contract::EthEvent,
1947        ::ethers::contract::EthDisplay,
1948        serde::Serialize,
1949        serde::Deserialize,
1950        Default,
1951        Debug,
1952        PartialEq,
1953        Eq,
1954        Hash
1955    )]
1956    #[ethevent(name = "RoleRevoked", abi = "RoleRevoked(bytes32,address,address)")]
1957    pub struct RoleRevokedFilter {
1958        #[ethevent(indexed)]
1959        pub role: [u8; 32],
1960        #[ethevent(indexed)]
1961        pub account: ::ethers::core::types::Address,
1962        #[ethevent(indexed)]
1963        pub sender: ::ethers::core::types::Address,
1964    }
1965    #[derive(
1966        Clone,
1967        ::ethers::contract::EthEvent,
1968        ::ethers::contract::EthDisplay,
1969        serde::Serialize,
1970        serde::Deserialize,
1971        Default,
1972        Debug,
1973        PartialEq,
1974        Eq,
1975        Hash
1976    )]
1977    #[ethevent(name = "Transfer", abi = "Transfer(address,address,uint256)")]
1978    pub struct TransferFilter {
1979        #[ethevent(indexed)]
1980        pub from: ::ethers::core::types::Address,
1981        #[ethevent(indexed)]
1982        pub to: ::ethers::core::types::Address,
1983        #[ethevent(indexed)]
1984        pub token_id: ::ethers::core::types::U256,
1985    }
1986    ///Container type for all of the contract's events
1987    #[derive(
1988        Clone,
1989        ::ethers::contract::EthAbiType,
1990        serde::Serialize,
1991        serde::Deserialize,
1992        Debug,
1993        PartialEq,
1994        Eq,
1995        Hash
1996    )]
1997    pub enum HoprBoostEvents {
1998        ApprovalFilter(ApprovalFilter),
1999        ApprovalForAllFilter(ApprovalForAllFilter),
2000        BoostMintedFilter(BoostMintedFilter),
2001        RoleAdminChangedFilter(RoleAdminChangedFilter),
2002        RoleGrantedFilter(RoleGrantedFilter),
2003        RoleRevokedFilter(RoleRevokedFilter),
2004        TransferFilter(TransferFilter),
2005    }
2006    impl ::ethers::contract::EthLogDecode for HoprBoostEvents {
2007        fn decode_log(
2008            log: &::ethers::core::abi::RawLog,
2009        ) -> ::core::result::Result<Self, ::ethers::core::abi::Error> {
2010            if let Ok(decoded) = ApprovalFilter::decode_log(log) {
2011                return Ok(HoprBoostEvents::ApprovalFilter(decoded));
2012            }
2013            if let Ok(decoded) = ApprovalForAllFilter::decode_log(log) {
2014                return Ok(HoprBoostEvents::ApprovalForAllFilter(decoded));
2015            }
2016            if let Ok(decoded) = BoostMintedFilter::decode_log(log) {
2017                return Ok(HoprBoostEvents::BoostMintedFilter(decoded));
2018            }
2019            if let Ok(decoded) = RoleAdminChangedFilter::decode_log(log) {
2020                return Ok(HoprBoostEvents::RoleAdminChangedFilter(decoded));
2021            }
2022            if let Ok(decoded) = RoleGrantedFilter::decode_log(log) {
2023                return Ok(HoprBoostEvents::RoleGrantedFilter(decoded));
2024            }
2025            if let Ok(decoded) = RoleRevokedFilter::decode_log(log) {
2026                return Ok(HoprBoostEvents::RoleRevokedFilter(decoded));
2027            }
2028            if let Ok(decoded) = TransferFilter::decode_log(log) {
2029                return Ok(HoprBoostEvents::TransferFilter(decoded));
2030            }
2031            Err(::ethers::core::abi::Error::InvalidData)
2032        }
2033    }
2034    impl ::core::fmt::Display for HoprBoostEvents {
2035        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
2036            match self {
2037                Self::ApprovalFilter(element) => ::core::fmt::Display::fmt(element, f),
2038                Self::ApprovalForAllFilter(element) => {
2039                    ::core::fmt::Display::fmt(element, f)
2040                }
2041                Self::BoostMintedFilter(element) => ::core::fmt::Display::fmt(element, f),
2042                Self::RoleAdminChangedFilter(element) => {
2043                    ::core::fmt::Display::fmt(element, f)
2044                }
2045                Self::RoleGrantedFilter(element) => ::core::fmt::Display::fmt(element, f),
2046                Self::RoleRevokedFilter(element) => ::core::fmt::Display::fmt(element, f),
2047                Self::TransferFilter(element) => ::core::fmt::Display::fmt(element, f),
2048            }
2049        }
2050    }
2051    impl ::core::convert::From<ApprovalFilter> for HoprBoostEvents {
2052        fn from(value: ApprovalFilter) -> Self {
2053            Self::ApprovalFilter(value)
2054        }
2055    }
2056    impl ::core::convert::From<ApprovalForAllFilter> for HoprBoostEvents {
2057        fn from(value: ApprovalForAllFilter) -> Self {
2058            Self::ApprovalForAllFilter(value)
2059        }
2060    }
2061    impl ::core::convert::From<BoostMintedFilter> for HoprBoostEvents {
2062        fn from(value: BoostMintedFilter) -> Self {
2063            Self::BoostMintedFilter(value)
2064        }
2065    }
2066    impl ::core::convert::From<RoleAdminChangedFilter> for HoprBoostEvents {
2067        fn from(value: RoleAdminChangedFilter) -> Self {
2068            Self::RoleAdminChangedFilter(value)
2069        }
2070    }
2071    impl ::core::convert::From<RoleGrantedFilter> for HoprBoostEvents {
2072        fn from(value: RoleGrantedFilter) -> Self {
2073            Self::RoleGrantedFilter(value)
2074        }
2075    }
2076    impl ::core::convert::From<RoleRevokedFilter> for HoprBoostEvents {
2077        fn from(value: RoleRevokedFilter) -> Self {
2078            Self::RoleRevokedFilter(value)
2079        }
2080    }
2081    impl ::core::convert::From<TransferFilter> for HoprBoostEvents {
2082        fn from(value: TransferFilter) -> Self {
2083            Self::TransferFilter(value)
2084        }
2085    }
2086    ///Container type for all input parameters for the `DEFAULT_ADMIN_ROLE` function with signature `DEFAULT_ADMIN_ROLE()` and selector `0xa217fddf`
2087    #[derive(
2088        Clone,
2089        ::ethers::contract::EthCall,
2090        ::ethers::contract::EthDisplay,
2091        serde::Serialize,
2092        serde::Deserialize,
2093        Default,
2094        Debug,
2095        PartialEq,
2096        Eq,
2097        Hash
2098    )]
2099    #[ethcall(name = "DEFAULT_ADMIN_ROLE", abi = "DEFAULT_ADMIN_ROLE()")]
2100    pub struct DefaultAdminRoleCall;
2101    ///Container type for all input parameters for the `MINTER_ROLE` function with signature `MINTER_ROLE()` and selector `0xd5391393`
2102    #[derive(
2103        Clone,
2104        ::ethers::contract::EthCall,
2105        ::ethers::contract::EthDisplay,
2106        serde::Serialize,
2107        serde::Deserialize,
2108        Default,
2109        Debug,
2110        PartialEq,
2111        Eq,
2112        Hash
2113    )]
2114    #[ethcall(name = "MINTER_ROLE", abi = "MINTER_ROLE()")]
2115    pub struct MinterRoleCall;
2116    ///Container type for all input parameters for the `approve` function with signature `approve(address,uint256)` and selector `0x095ea7b3`
2117    #[derive(
2118        Clone,
2119        ::ethers::contract::EthCall,
2120        ::ethers::contract::EthDisplay,
2121        serde::Serialize,
2122        serde::Deserialize,
2123        Default,
2124        Debug,
2125        PartialEq,
2126        Eq,
2127        Hash
2128    )]
2129    #[ethcall(name = "approve", abi = "approve(address,uint256)")]
2130    pub struct ApproveCall {
2131        pub to: ::ethers::core::types::Address,
2132        pub token_id: ::ethers::core::types::U256,
2133    }
2134    ///Container type for all input parameters for the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231`
2135    #[derive(
2136        Clone,
2137        ::ethers::contract::EthCall,
2138        ::ethers::contract::EthDisplay,
2139        serde::Serialize,
2140        serde::Deserialize,
2141        Default,
2142        Debug,
2143        PartialEq,
2144        Eq,
2145        Hash
2146    )]
2147    #[ethcall(name = "balanceOf", abi = "balanceOf(address)")]
2148    pub struct BalanceOfCall {
2149        pub owner: ::ethers::core::types::Address,
2150    }
2151    ///Container type for all input parameters for the `batchMint` function with signature `batchMint(address[],string,string,uint256,uint256)` and selector `0x9365c533`
2152    #[derive(
2153        Clone,
2154        ::ethers::contract::EthCall,
2155        ::ethers::contract::EthDisplay,
2156        serde::Serialize,
2157        serde::Deserialize,
2158        Default,
2159        Debug,
2160        PartialEq,
2161        Eq,
2162        Hash
2163    )]
2164    #[ethcall(
2165        name = "batchMint",
2166        abi = "batchMint(address[],string,string,uint256,uint256)"
2167    )]
2168    pub struct BatchMintCall {
2169        pub to: ::std::vec::Vec<::ethers::core::types::Address>,
2170        pub boost_type: ::std::string::String,
2171        pub boost_rank: ::std::string::String,
2172        pub boost_numerator: ::ethers::core::types::U256,
2173        pub redeem_deadline: ::ethers::core::types::U256,
2174    }
2175    ///Container type for all input parameters for the `boostOf` function with signature `boostOf(uint256)` and selector `0x896cddf4`
2176    #[derive(
2177        Clone,
2178        ::ethers::contract::EthCall,
2179        ::ethers::contract::EthDisplay,
2180        serde::Serialize,
2181        serde::Deserialize,
2182        Default,
2183        Debug,
2184        PartialEq,
2185        Eq,
2186        Hash
2187    )]
2188    #[ethcall(name = "boostOf", abi = "boostOf(uint256)")]
2189    pub struct BoostOfCall {
2190        pub token_id: ::ethers::core::types::U256,
2191    }
2192    ///Container type for all input parameters for the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc`
2193    #[derive(
2194        Clone,
2195        ::ethers::contract::EthCall,
2196        ::ethers::contract::EthDisplay,
2197        serde::Serialize,
2198        serde::Deserialize,
2199        Default,
2200        Debug,
2201        PartialEq,
2202        Eq,
2203        Hash
2204    )]
2205    #[ethcall(name = "getApproved", abi = "getApproved(uint256)")]
2206    pub struct GetApprovedCall {
2207        pub token_id: ::ethers::core::types::U256,
2208    }
2209    ///Container type for all input parameters for the `getRoleAdmin` function with signature `getRoleAdmin(bytes32)` and selector `0x248a9ca3`
2210    #[derive(
2211        Clone,
2212        ::ethers::contract::EthCall,
2213        ::ethers::contract::EthDisplay,
2214        serde::Serialize,
2215        serde::Deserialize,
2216        Default,
2217        Debug,
2218        PartialEq,
2219        Eq,
2220        Hash
2221    )]
2222    #[ethcall(name = "getRoleAdmin", abi = "getRoleAdmin(bytes32)")]
2223    pub struct GetRoleAdminCall {
2224        pub role: [u8; 32],
2225    }
2226    ///Container type for all input parameters for the `getRoleMember` function with signature `getRoleMember(bytes32,uint256)` and selector `0x9010d07c`
2227    #[derive(
2228        Clone,
2229        ::ethers::contract::EthCall,
2230        ::ethers::contract::EthDisplay,
2231        serde::Serialize,
2232        serde::Deserialize,
2233        Default,
2234        Debug,
2235        PartialEq,
2236        Eq,
2237        Hash
2238    )]
2239    #[ethcall(name = "getRoleMember", abi = "getRoleMember(bytes32,uint256)")]
2240    pub struct GetRoleMemberCall {
2241        pub role: [u8; 32],
2242        pub index: ::ethers::core::types::U256,
2243    }
2244    ///Container type for all input parameters for the `getRoleMemberCount` function with signature `getRoleMemberCount(bytes32)` and selector `0xca15c873`
2245    #[derive(
2246        Clone,
2247        ::ethers::contract::EthCall,
2248        ::ethers::contract::EthDisplay,
2249        serde::Serialize,
2250        serde::Deserialize,
2251        Default,
2252        Debug,
2253        PartialEq,
2254        Eq,
2255        Hash
2256    )]
2257    #[ethcall(name = "getRoleMemberCount", abi = "getRoleMemberCount(bytes32)")]
2258    pub struct GetRoleMemberCountCall {
2259        pub role: [u8; 32],
2260    }
2261    ///Container type for all input parameters for the `grantRole` function with signature `grantRole(bytes32,address)` and selector `0x2f2ff15d`
2262    #[derive(
2263        Clone,
2264        ::ethers::contract::EthCall,
2265        ::ethers::contract::EthDisplay,
2266        serde::Serialize,
2267        serde::Deserialize,
2268        Default,
2269        Debug,
2270        PartialEq,
2271        Eq,
2272        Hash
2273    )]
2274    #[ethcall(name = "grantRole", abi = "grantRole(bytes32,address)")]
2275    pub struct GrantRoleCall {
2276        pub role: [u8; 32],
2277        pub account: ::ethers::core::types::Address,
2278    }
2279    ///Container type for all input parameters for the `hasRole` function with signature `hasRole(bytes32,address)` and selector `0x91d14854`
2280    #[derive(
2281        Clone,
2282        ::ethers::contract::EthCall,
2283        ::ethers::contract::EthDisplay,
2284        serde::Serialize,
2285        serde::Deserialize,
2286        Default,
2287        Debug,
2288        PartialEq,
2289        Eq,
2290        Hash
2291    )]
2292    #[ethcall(name = "hasRole", abi = "hasRole(bytes32,address)")]
2293    pub struct HasRoleCall {
2294        pub role: [u8; 32],
2295        pub account: ::ethers::core::types::Address,
2296    }
2297    ///Container type for all input parameters for the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5`
2298    #[derive(
2299        Clone,
2300        ::ethers::contract::EthCall,
2301        ::ethers::contract::EthDisplay,
2302        serde::Serialize,
2303        serde::Deserialize,
2304        Default,
2305        Debug,
2306        PartialEq,
2307        Eq,
2308        Hash
2309    )]
2310    #[ethcall(name = "isApprovedForAll", abi = "isApprovedForAll(address,address)")]
2311    pub struct IsApprovedForAllCall {
2312        pub owner: ::ethers::core::types::Address,
2313        pub operator: ::ethers::core::types::Address,
2314    }
2315    ///Container type for all input parameters for the `mint` function with signature `mint(address,string,string,uint256,uint256)` and selector `0x29867dac`
2316    #[derive(
2317        Clone,
2318        ::ethers::contract::EthCall,
2319        ::ethers::contract::EthDisplay,
2320        serde::Serialize,
2321        serde::Deserialize,
2322        Default,
2323        Debug,
2324        PartialEq,
2325        Eq,
2326        Hash
2327    )]
2328    #[ethcall(name = "mint", abi = "mint(address,string,string,uint256,uint256)")]
2329    pub struct MintCall {
2330        pub to: ::ethers::core::types::Address,
2331        pub boost_type: ::std::string::String,
2332        pub boost_rank: ::std::string::String,
2333        pub boost_numerator: ::ethers::core::types::U256,
2334        pub redeem_deadline: ::ethers::core::types::U256,
2335    }
2336    ///Container type for all input parameters for the `name` function with signature `name()` and selector `0x06fdde03`
2337    #[derive(
2338        Clone,
2339        ::ethers::contract::EthCall,
2340        ::ethers::contract::EthDisplay,
2341        serde::Serialize,
2342        serde::Deserialize,
2343        Default,
2344        Debug,
2345        PartialEq,
2346        Eq,
2347        Hash
2348    )]
2349    #[ethcall(name = "name", abi = "name()")]
2350    pub struct NameCall;
2351    ///Container type for all input parameters for the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e`
2352    #[derive(
2353        Clone,
2354        ::ethers::contract::EthCall,
2355        ::ethers::contract::EthDisplay,
2356        serde::Serialize,
2357        serde::Deserialize,
2358        Default,
2359        Debug,
2360        PartialEq,
2361        Eq,
2362        Hash
2363    )]
2364    #[ethcall(name = "ownerOf", abi = "ownerOf(uint256)")]
2365    pub struct OwnerOfCall {
2366        pub token_id: ::ethers::core::types::U256,
2367    }
2368    ///Container type for all input parameters for the `reclaimErc20Tokens` function with signature `reclaimErc20Tokens(address)` and selector `0x6067bc15`
2369    #[derive(
2370        Clone,
2371        ::ethers::contract::EthCall,
2372        ::ethers::contract::EthDisplay,
2373        serde::Serialize,
2374        serde::Deserialize,
2375        Default,
2376        Debug,
2377        PartialEq,
2378        Eq,
2379        Hash
2380    )]
2381    #[ethcall(name = "reclaimErc20Tokens", abi = "reclaimErc20Tokens(address)")]
2382    pub struct ReclaimErc20TokensCall {
2383        pub token_address: ::ethers::core::types::Address,
2384    }
2385    ///Container type for all input parameters for the `reclaimErc721Tokens` function with signature `reclaimErc721Tokens(address,uint256)` and selector `0x48c64e41`
2386    #[derive(
2387        Clone,
2388        ::ethers::contract::EthCall,
2389        ::ethers::contract::EthDisplay,
2390        serde::Serialize,
2391        serde::Deserialize,
2392        Default,
2393        Debug,
2394        PartialEq,
2395        Eq,
2396        Hash
2397    )]
2398    #[ethcall(
2399        name = "reclaimErc721Tokens",
2400        abi = "reclaimErc721Tokens(address,uint256)"
2401    )]
2402    pub struct ReclaimErc721TokensCall {
2403        pub token_address: ::ethers::core::types::Address,
2404        pub token_id: ::ethers::core::types::U256,
2405    }
2406    ///Container type for all input parameters for the `renounceRole` function with signature `renounceRole(bytes32,address)` and selector `0x36568abe`
2407    #[derive(
2408        Clone,
2409        ::ethers::contract::EthCall,
2410        ::ethers::contract::EthDisplay,
2411        serde::Serialize,
2412        serde::Deserialize,
2413        Default,
2414        Debug,
2415        PartialEq,
2416        Eq,
2417        Hash
2418    )]
2419    #[ethcall(name = "renounceRole", abi = "renounceRole(bytes32,address)")]
2420    pub struct RenounceRoleCall {
2421        pub role: [u8; 32],
2422        pub account: ::ethers::core::types::Address,
2423    }
2424    ///Container type for all input parameters for the `revokeRole` function with signature `revokeRole(bytes32,address)` and selector `0xd547741f`
2425    #[derive(
2426        Clone,
2427        ::ethers::contract::EthCall,
2428        ::ethers::contract::EthDisplay,
2429        serde::Serialize,
2430        serde::Deserialize,
2431        Default,
2432        Debug,
2433        PartialEq,
2434        Eq,
2435        Hash
2436    )]
2437    #[ethcall(name = "revokeRole", abi = "revokeRole(bytes32,address)")]
2438    pub struct RevokeRoleCall {
2439        pub role: [u8; 32],
2440        pub account: ::ethers::core::types::Address,
2441    }
2442    ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256)` and selector `0x42842e0e`
2443    #[derive(
2444        Clone,
2445        ::ethers::contract::EthCall,
2446        ::ethers::contract::EthDisplay,
2447        serde::Serialize,
2448        serde::Deserialize,
2449        Default,
2450        Debug,
2451        PartialEq,
2452        Eq,
2453        Hash
2454    )]
2455    #[ethcall(
2456        name = "safeTransferFrom",
2457        abi = "safeTransferFrom(address,address,uint256)"
2458    )]
2459    pub struct SafeTransferFromCall {
2460        pub from: ::ethers::core::types::Address,
2461        pub to: ::ethers::core::types::Address,
2462        pub token_id: ::ethers::core::types::U256,
2463    }
2464    ///Container type for all input parameters for the `safeTransferFrom` function with signature `safeTransferFrom(address,address,uint256,bytes)` and selector `0xb88d4fde`
2465    #[derive(
2466        Clone,
2467        ::ethers::contract::EthCall,
2468        ::ethers::contract::EthDisplay,
2469        serde::Serialize,
2470        serde::Deserialize,
2471        Default,
2472        Debug,
2473        PartialEq,
2474        Eq,
2475        Hash
2476    )]
2477    #[ethcall(
2478        name = "safeTransferFrom",
2479        abi = "safeTransferFrom(address,address,uint256,bytes)"
2480    )]
2481    pub struct SafeTransferFromWithFromAndToAndDataCall {
2482        pub from: ::ethers::core::types::Address,
2483        pub to: ::ethers::core::types::Address,
2484        pub token_id: ::ethers::core::types::U256,
2485        pub data: ::ethers::core::types::Bytes,
2486    }
2487    ///Container type for all input parameters for the `setApprovalForAll` function with signature `setApprovalForAll(address,bool)` and selector `0xa22cb465`
2488    #[derive(
2489        Clone,
2490        ::ethers::contract::EthCall,
2491        ::ethers::contract::EthDisplay,
2492        serde::Serialize,
2493        serde::Deserialize,
2494        Default,
2495        Debug,
2496        PartialEq,
2497        Eq,
2498        Hash
2499    )]
2500    #[ethcall(name = "setApprovalForAll", abi = "setApprovalForAll(address,bool)")]
2501    pub struct SetApprovalForAllCall {
2502        pub operator: ::ethers::core::types::Address,
2503        pub approved: bool,
2504    }
2505    ///Container type for all input parameters for the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
2506    #[derive(
2507        Clone,
2508        ::ethers::contract::EthCall,
2509        ::ethers::contract::EthDisplay,
2510        serde::Serialize,
2511        serde::Deserialize,
2512        Default,
2513        Debug,
2514        PartialEq,
2515        Eq,
2516        Hash
2517    )]
2518    #[ethcall(name = "supportsInterface", abi = "supportsInterface(bytes4)")]
2519    pub struct SupportsInterfaceCall {
2520        pub interface_id: [u8; 4],
2521    }
2522    ///Container type for all input parameters for the `symbol` function with signature `symbol()` and selector `0x95d89b41`
2523    #[derive(
2524        Clone,
2525        ::ethers::contract::EthCall,
2526        ::ethers::contract::EthDisplay,
2527        serde::Serialize,
2528        serde::Deserialize,
2529        Default,
2530        Debug,
2531        PartialEq,
2532        Eq,
2533        Hash
2534    )]
2535    #[ethcall(name = "symbol", abi = "symbol()")]
2536    pub struct SymbolCall;
2537    ///Container type for all input parameters for the `tokenByIndex` function with signature `tokenByIndex(uint256)` and selector `0x4f6ccce7`
2538    #[derive(
2539        Clone,
2540        ::ethers::contract::EthCall,
2541        ::ethers::contract::EthDisplay,
2542        serde::Serialize,
2543        serde::Deserialize,
2544        Default,
2545        Debug,
2546        PartialEq,
2547        Eq,
2548        Hash
2549    )]
2550    #[ethcall(name = "tokenByIndex", abi = "tokenByIndex(uint256)")]
2551    pub struct TokenByIndexCall {
2552        pub index: ::ethers::core::types::U256,
2553    }
2554    ///Container type for all input parameters for the `tokenOfOwnerByIndex` function with signature `tokenOfOwnerByIndex(address,uint256)` and selector `0x2f745c59`
2555    #[derive(
2556        Clone,
2557        ::ethers::contract::EthCall,
2558        ::ethers::contract::EthDisplay,
2559        serde::Serialize,
2560        serde::Deserialize,
2561        Default,
2562        Debug,
2563        PartialEq,
2564        Eq,
2565        Hash
2566    )]
2567    #[ethcall(
2568        name = "tokenOfOwnerByIndex",
2569        abi = "tokenOfOwnerByIndex(address,uint256)"
2570    )]
2571    pub struct TokenOfOwnerByIndexCall {
2572        pub owner: ::ethers::core::types::Address,
2573        pub index: ::ethers::core::types::U256,
2574    }
2575    ///Container type for all input parameters for the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd`
2576    #[derive(
2577        Clone,
2578        ::ethers::contract::EthCall,
2579        ::ethers::contract::EthDisplay,
2580        serde::Serialize,
2581        serde::Deserialize,
2582        Default,
2583        Debug,
2584        PartialEq,
2585        Eq,
2586        Hash
2587    )]
2588    #[ethcall(name = "tokenURI", abi = "tokenURI(uint256)")]
2589    pub struct TokenURICall {
2590        pub token_id: ::ethers::core::types::U256,
2591    }
2592    ///Container type for all input parameters for the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd`
2593    #[derive(
2594        Clone,
2595        ::ethers::contract::EthCall,
2596        ::ethers::contract::EthDisplay,
2597        serde::Serialize,
2598        serde::Deserialize,
2599        Default,
2600        Debug,
2601        PartialEq,
2602        Eq,
2603        Hash
2604    )]
2605    #[ethcall(name = "totalSupply", abi = "totalSupply()")]
2606    pub struct TotalSupplyCall;
2607    ///Container type for all input parameters for the `transferFrom` function with signature `transferFrom(address,address,uint256)` and selector `0x23b872dd`
2608    #[derive(
2609        Clone,
2610        ::ethers::contract::EthCall,
2611        ::ethers::contract::EthDisplay,
2612        serde::Serialize,
2613        serde::Deserialize,
2614        Default,
2615        Debug,
2616        PartialEq,
2617        Eq,
2618        Hash
2619    )]
2620    #[ethcall(name = "transferFrom", abi = "transferFrom(address,address,uint256)")]
2621    pub struct TransferFromCall {
2622        pub from: ::ethers::core::types::Address,
2623        pub to: ::ethers::core::types::Address,
2624        pub token_id: ::ethers::core::types::U256,
2625    }
2626    ///Container type for all input parameters for the `typeAt` function with signature `typeAt(uint256)` and selector `0xb5185a88`
2627    #[derive(
2628        Clone,
2629        ::ethers::contract::EthCall,
2630        ::ethers::contract::EthDisplay,
2631        serde::Serialize,
2632        serde::Deserialize,
2633        Default,
2634        Debug,
2635        PartialEq,
2636        Eq,
2637        Hash
2638    )]
2639    #[ethcall(name = "typeAt", abi = "typeAt(uint256)")]
2640    pub struct TypeAtCall {
2641        pub type_index: ::ethers::core::types::U256,
2642    }
2643    ///Container type for all input parameters for the `typeIndexOf` function with signature `typeIndexOf(uint256)` and selector `0x562317c5`
2644    #[derive(
2645        Clone,
2646        ::ethers::contract::EthCall,
2647        ::ethers::contract::EthDisplay,
2648        serde::Serialize,
2649        serde::Deserialize,
2650        Default,
2651        Debug,
2652        PartialEq,
2653        Eq,
2654        Hash
2655    )]
2656    #[ethcall(name = "typeIndexOf", abi = "typeIndexOf(uint256)")]
2657    pub struct TypeIndexOfCall {
2658        pub token_id: ::ethers::core::types::U256,
2659    }
2660    ///Container type for all input parameters for the `typeOf` function with signature `typeOf(uint256)` and selector `0xc588ff8b`
2661    #[derive(
2662        Clone,
2663        ::ethers::contract::EthCall,
2664        ::ethers::contract::EthDisplay,
2665        serde::Serialize,
2666        serde::Deserialize,
2667        Default,
2668        Debug,
2669        PartialEq,
2670        Eq,
2671        Hash
2672    )]
2673    #[ethcall(name = "typeOf", abi = "typeOf(uint256)")]
2674    pub struct TypeOfCall {
2675        pub token_id: ::ethers::core::types::U256,
2676    }
2677    ///Container type for all input parameters for the `updateBaseURI` function with signature `updateBaseURI(string)` and selector `0x931688cb`
2678    #[derive(
2679        Clone,
2680        ::ethers::contract::EthCall,
2681        ::ethers::contract::EthDisplay,
2682        serde::Serialize,
2683        serde::Deserialize,
2684        Default,
2685        Debug,
2686        PartialEq,
2687        Eq,
2688        Hash
2689    )]
2690    #[ethcall(name = "updateBaseURI", abi = "updateBaseURI(string)")]
2691    pub struct UpdateBaseURICall {
2692        pub base_token_uri: ::std::string::String,
2693    }
2694    ///Container type for all of the contract's call
2695    #[derive(
2696        Clone,
2697        ::ethers::contract::EthAbiType,
2698        serde::Serialize,
2699        serde::Deserialize,
2700        Debug,
2701        PartialEq,
2702        Eq,
2703        Hash
2704    )]
2705    pub enum HoprBoostCalls {
2706        DefaultAdminRole(DefaultAdminRoleCall),
2707        MinterRole(MinterRoleCall),
2708        Approve(ApproveCall),
2709        BalanceOf(BalanceOfCall),
2710        BatchMint(BatchMintCall),
2711        BoostOf(BoostOfCall),
2712        GetApproved(GetApprovedCall),
2713        GetRoleAdmin(GetRoleAdminCall),
2714        GetRoleMember(GetRoleMemberCall),
2715        GetRoleMemberCount(GetRoleMemberCountCall),
2716        GrantRole(GrantRoleCall),
2717        HasRole(HasRoleCall),
2718        IsApprovedForAll(IsApprovedForAllCall),
2719        Mint(MintCall),
2720        Name(NameCall),
2721        OwnerOf(OwnerOfCall),
2722        ReclaimErc20Tokens(ReclaimErc20TokensCall),
2723        ReclaimErc721Tokens(ReclaimErc721TokensCall),
2724        RenounceRole(RenounceRoleCall),
2725        RevokeRole(RevokeRoleCall),
2726        SafeTransferFrom(SafeTransferFromCall),
2727        SafeTransferFromWithFromAndToAndData(SafeTransferFromWithFromAndToAndDataCall),
2728        SetApprovalForAll(SetApprovalForAllCall),
2729        SupportsInterface(SupportsInterfaceCall),
2730        Symbol(SymbolCall),
2731        TokenByIndex(TokenByIndexCall),
2732        TokenOfOwnerByIndex(TokenOfOwnerByIndexCall),
2733        TokenURI(TokenURICall),
2734        TotalSupply(TotalSupplyCall),
2735        TransferFrom(TransferFromCall),
2736        TypeAt(TypeAtCall),
2737        TypeIndexOf(TypeIndexOfCall),
2738        TypeOf(TypeOfCall),
2739        UpdateBaseURI(UpdateBaseURICall),
2740    }
2741    impl ::ethers::core::abi::AbiDecode for HoprBoostCalls {
2742        fn decode(
2743            data: impl AsRef<[u8]>,
2744        ) -> ::core::result::Result<Self, ::ethers::core::abi::AbiError> {
2745            let data = data.as_ref();
2746            if let Ok(decoded) = <DefaultAdminRoleCall as ::ethers::core::abi::AbiDecode>::decode(
2747                data,
2748            ) {
2749                return Ok(Self::DefaultAdminRole(decoded));
2750            }
2751            if let Ok(decoded) = <MinterRoleCall as ::ethers::core::abi::AbiDecode>::decode(
2752                data,
2753            ) {
2754                return Ok(Self::MinterRole(decoded));
2755            }
2756            if let Ok(decoded) = <ApproveCall as ::ethers::core::abi::AbiDecode>::decode(
2757                data,
2758            ) {
2759                return Ok(Self::Approve(decoded));
2760            }
2761            if let Ok(decoded) = <BalanceOfCall as ::ethers::core::abi::AbiDecode>::decode(
2762                data,
2763            ) {
2764                return Ok(Self::BalanceOf(decoded));
2765            }
2766            if let Ok(decoded) = <BatchMintCall as ::ethers::core::abi::AbiDecode>::decode(
2767                data,
2768            ) {
2769                return Ok(Self::BatchMint(decoded));
2770            }
2771            if let Ok(decoded) = <BoostOfCall as ::ethers::core::abi::AbiDecode>::decode(
2772                data,
2773            ) {
2774                return Ok(Self::BoostOf(decoded));
2775            }
2776            if let Ok(decoded) = <GetApprovedCall as ::ethers::core::abi::AbiDecode>::decode(
2777                data,
2778            ) {
2779                return Ok(Self::GetApproved(decoded));
2780            }
2781            if let Ok(decoded) = <GetRoleAdminCall as ::ethers::core::abi::AbiDecode>::decode(
2782                data,
2783            ) {
2784                return Ok(Self::GetRoleAdmin(decoded));
2785            }
2786            if let Ok(decoded) = <GetRoleMemberCall as ::ethers::core::abi::AbiDecode>::decode(
2787                data,
2788            ) {
2789                return Ok(Self::GetRoleMember(decoded));
2790            }
2791            if let Ok(decoded) = <GetRoleMemberCountCall as ::ethers::core::abi::AbiDecode>::decode(
2792                data,
2793            ) {
2794                return Ok(Self::GetRoleMemberCount(decoded));
2795            }
2796            if let Ok(decoded) = <GrantRoleCall as ::ethers::core::abi::AbiDecode>::decode(
2797                data,
2798            ) {
2799                return Ok(Self::GrantRole(decoded));
2800            }
2801            if let Ok(decoded) = <HasRoleCall as ::ethers::core::abi::AbiDecode>::decode(
2802                data,
2803            ) {
2804                return Ok(Self::HasRole(decoded));
2805            }
2806            if let Ok(decoded) = <IsApprovedForAllCall as ::ethers::core::abi::AbiDecode>::decode(
2807                data,
2808            ) {
2809                return Ok(Self::IsApprovedForAll(decoded));
2810            }
2811            if let Ok(decoded) = <MintCall as ::ethers::core::abi::AbiDecode>::decode(
2812                data,
2813            ) {
2814                return Ok(Self::Mint(decoded));
2815            }
2816            if let Ok(decoded) = <NameCall as ::ethers::core::abi::AbiDecode>::decode(
2817                data,
2818            ) {
2819                return Ok(Self::Name(decoded));
2820            }
2821            if let Ok(decoded) = <OwnerOfCall as ::ethers::core::abi::AbiDecode>::decode(
2822                data,
2823            ) {
2824                return Ok(Self::OwnerOf(decoded));
2825            }
2826            if let Ok(decoded) = <ReclaimErc20TokensCall as ::ethers::core::abi::AbiDecode>::decode(
2827                data,
2828            ) {
2829                return Ok(Self::ReclaimErc20Tokens(decoded));
2830            }
2831            if let Ok(decoded) = <ReclaimErc721TokensCall as ::ethers::core::abi::AbiDecode>::decode(
2832                data,
2833            ) {
2834                return Ok(Self::ReclaimErc721Tokens(decoded));
2835            }
2836            if let Ok(decoded) = <RenounceRoleCall as ::ethers::core::abi::AbiDecode>::decode(
2837                data,
2838            ) {
2839                return Ok(Self::RenounceRole(decoded));
2840            }
2841            if let Ok(decoded) = <RevokeRoleCall as ::ethers::core::abi::AbiDecode>::decode(
2842                data,
2843            ) {
2844                return Ok(Self::RevokeRole(decoded));
2845            }
2846            if let Ok(decoded) = <SafeTransferFromCall as ::ethers::core::abi::AbiDecode>::decode(
2847                data,
2848            ) {
2849                return Ok(Self::SafeTransferFrom(decoded));
2850            }
2851            if let Ok(decoded) = <SafeTransferFromWithFromAndToAndDataCall as ::ethers::core::abi::AbiDecode>::decode(
2852                data,
2853            ) {
2854                return Ok(Self::SafeTransferFromWithFromAndToAndData(decoded));
2855            }
2856            if let Ok(decoded) = <SetApprovalForAllCall as ::ethers::core::abi::AbiDecode>::decode(
2857                data,
2858            ) {
2859                return Ok(Self::SetApprovalForAll(decoded));
2860            }
2861            if let Ok(decoded) = <SupportsInterfaceCall as ::ethers::core::abi::AbiDecode>::decode(
2862                data,
2863            ) {
2864                return Ok(Self::SupportsInterface(decoded));
2865            }
2866            if let Ok(decoded) = <SymbolCall as ::ethers::core::abi::AbiDecode>::decode(
2867                data,
2868            ) {
2869                return Ok(Self::Symbol(decoded));
2870            }
2871            if let Ok(decoded) = <TokenByIndexCall as ::ethers::core::abi::AbiDecode>::decode(
2872                data,
2873            ) {
2874                return Ok(Self::TokenByIndex(decoded));
2875            }
2876            if let Ok(decoded) = <TokenOfOwnerByIndexCall as ::ethers::core::abi::AbiDecode>::decode(
2877                data,
2878            ) {
2879                return Ok(Self::TokenOfOwnerByIndex(decoded));
2880            }
2881            if let Ok(decoded) = <TokenURICall as ::ethers::core::abi::AbiDecode>::decode(
2882                data,
2883            ) {
2884                return Ok(Self::TokenURI(decoded));
2885            }
2886            if let Ok(decoded) = <TotalSupplyCall as ::ethers::core::abi::AbiDecode>::decode(
2887                data,
2888            ) {
2889                return Ok(Self::TotalSupply(decoded));
2890            }
2891            if let Ok(decoded) = <TransferFromCall as ::ethers::core::abi::AbiDecode>::decode(
2892                data,
2893            ) {
2894                return Ok(Self::TransferFrom(decoded));
2895            }
2896            if let Ok(decoded) = <TypeAtCall as ::ethers::core::abi::AbiDecode>::decode(
2897                data,
2898            ) {
2899                return Ok(Self::TypeAt(decoded));
2900            }
2901            if let Ok(decoded) = <TypeIndexOfCall as ::ethers::core::abi::AbiDecode>::decode(
2902                data,
2903            ) {
2904                return Ok(Self::TypeIndexOf(decoded));
2905            }
2906            if let Ok(decoded) = <TypeOfCall as ::ethers::core::abi::AbiDecode>::decode(
2907                data,
2908            ) {
2909                return Ok(Self::TypeOf(decoded));
2910            }
2911            if let Ok(decoded) = <UpdateBaseURICall as ::ethers::core::abi::AbiDecode>::decode(
2912                data,
2913            ) {
2914                return Ok(Self::UpdateBaseURI(decoded));
2915            }
2916            Err(::ethers::core::abi::Error::InvalidData.into())
2917        }
2918    }
2919    impl ::ethers::core::abi::AbiEncode for HoprBoostCalls {
2920        fn encode(self) -> Vec<u8> {
2921            match self {
2922                Self::DefaultAdminRole(element) => {
2923                    ::ethers::core::abi::AbiEncode::encode(element)
2924                }
2925                Self::MinterRole(element) => {
2926                    ::ethers::core::abi::AbiEncode::encode(element)
2927                }
2928                Self::Approve(element) => ::ethers::core::abi::AbiEncode::encode(element),
2929                Self::BalanceOf(element) => {
2930                    ::ethers::core::abi::AbiEncode::encode(element)
2931                }
2932                Self::BatchMint(element) => {
2933                    ::ethers::core::abi::AbiEncode::encode(element)
2934                }
2935                Self::BoostOf(element) => ::ethers::core::abi::AbiEncode::encode(element),
2936                Self::GetApproved(element) => {
2937                    ::ethers::core::abi::AbiEncode::encode(element)
2938                }
2939                Self::GetRoleAdmin(element) => {
2940                    ::ethers::core::abi::AbiEncode::encode(element)
2941                }
2942                Self::GetRoleMember(element) => {
2943                    ::ethers::core::abi::AbiEncode::encode(element)
2944                }
2945                Self::GetRoleMemberCount(element) => {
2946                    ::ethers::core::abi::AbiEncode::encode(element)
2947                }
2948                Self::GrantRole(element) => {
2949                    ::ethers::core::abi::AbiEncode::encode(element)
2950                }
2951                Self::HasRole(element) => ::ethers::core::abi::AbiEncode::encode(element),
2952                Self::IsApprovedForAll(element) => {
2953                    ::ethers::core::abi::AbiEncode::encode(element)
2954                }
2955                Self::Mint(element) => ::ethers::core::abi::AbiEncode::encode(element),
2956                Self::Name(element) => ::ethers::core::abi::AbiEncode::encode(element),
2957                Self::OwnerOf(element) => ::ethers::core::abi::AbiEncode::encode(element),
2958                Self::ReclaimErc20Tokens(element) => {
2959                    ::ethers::core::abi::AbiEncode::encode(element)
2960                }
2961                Self::ReclaimErc721Tokens(element) => {
2962                    ::ethers::core::abi::AbiEncode::encode(element)
2963                }
2964                Self::RenounceRole(element) => {
2965                    ::ethers::core::abi::AbiEncode::encode(element)
2966                }
2967                Self::RevokeRole(element) => {
2968                    ::ethers::core::abi::AbiEncode::encode(element)
2969                }
2970                Self::SafeTransferFrom(element) => {
2971                    ::ethers::core::abi::AbiEncode::encode(element)
2972                }
2973                Self::SafeTransferFromWithFromAndToAndData(element) => {
2974                    ::ethers::core::abi::AbiEncode::encode(element)
2975                }
2976                Self::SetApprovalForAll(element) => {
2977                    ::ethers::core::abi::AbiEncode::encode(element)
2978                }
2979                Self::SupportsInterface(element) => {
2980                    ::ethers::core::abi::AbiEncode::encode(element)
2981                }
2982                Self::Symbol(element) => ::ethers::core::abi::AbiEncode::encode(element),
2983                Self::TokenByIndex(element) => {
2984                    ::ethers::core::abi::AbiEncode::encode(element)
2985                }
2986                Self::TokenOfOwnerByIndex(element) => {
2987                    ::ethers::core::abi::AbiEncode::encode(element)
2988                }
2989                Self::TokenURI(element) => {
2990                    ::ethers::core::abi::AbiEncode::encode(element)
2991                }
2992                Self::TotalSupply(element) => {
2993                    ::ethers::core::abi::AbiEncode::encode(element)
2994                }
2995                Self::TransferFrom(element) => {
2996                    ::ethers::core::abi::AbiEncode::encode(element)
2997                }
2998                Self::TypeAt(element) => ::ethers::core::abi::AbiEncode::encode(element),
2999                Self::TypeIndexOf(element) => {
3000                    ::ethers::core::abi::AbiEncode::encode(element)
3001                }
3002                Self::TypeOf(element) => ::ethers::core::abi::AbiEncode::encode(element),
3003                Self::UpdateBaseURI(element) => {
3004                    ::ethers::core::abi::AbiEncode::encode(element)
3005                }
3006            }
3007        }
3008    }
3009    impl ::core::fmt::Display for HoprBoostCalls {
3010        fn fmt(&self, f: &mut ::core::fmt::Formatter<'_>) -> ::core::fmt::Result {
3011            match self {
3012                Self::DefaultAdminRole(element) => ::core::fmt::Display::fmt(element, f),
3013                Self::MinterRole(element) => ::core::fmt::Display::fmt(element, f),
3014                Self::Approve(element) => ::core::fmt::Display::fmt(element, f),
3015                Self::BalanceOf(element) => ::core::fmt::Display::fmt(element, f),
3016                Self::BatchMint(element) => ::core::fmt::Display::fmt(element, f),
3017                Self::BoostOf(element) => ::core::fmt::Display::fmt(element, f),
3018                Self::GetApproved(element) => ::core::fmt::Display::fmt(element, f),
3019                Self::GetRoleAdmin(element) => ::core::fmt::Display::fmt(element, f),
3020                Self::GetRoleMember(element) => ::core::fmt::Display::fmt(element, f),
3021                Self::GetRoleMemberCount(element) => {
3022                    ::core::fmt::Display::fmt(element, f)
3023                }
3024                Self::GrantRole(element) => ::core::fmt::Display::fmt(element, f),
3025                Self::HasRole(element) => ::core::fmt::Display::fmt(element, f),
3026                Self::IsApprovedForAll(element) => ::core::fmt::Display::fmt(element, f),
3027                Self::Mint(element) => ::core::fmt::Display::fmt(element, f),
3028                Self::Name(element) => ::core::fmt::Display::fmt(element, f),
3029                Self::OwnerOf(element) => ::core::fmt::Display::fmt(element, f),
3030                Self::ReclaimErc20Tokens(element) => {
3031                    ::core::fmt::Display::fmt(element, f)
3032                }
3033                Self::ReclaimErc721Tokens(element) => {
3034                    ::core::fmt::Display::fmt(element, f)
3035                }
3036                Self::RenounceRole(element) => ::core::fmt::Display::fmt(element, f),
3037                Self::RevokeRole(element) => ::core::fmt::Display::fmt(element, f),
3038                Self::SafeTransferFrom(element) => ::core::fmt::Display::fmt(element, f),
3039                Self::SafeTransferFromWithFromAndToAndData(element) => {
3040                    ::core::fmt::Display::fmt(element, f)
3041                }
3042                Self::SetApprovalForAll(element) => ::core::fmt::Display::fmt(element, f),
3043                Self::SupportsInterface(element) => ::core::fmt::Display::fmt(element, f),
3044                Self::Symbol(element) => ::core::fmt::Display::fmt(element, f),
3045                Self::TokenByIndex(element) => ::core::fmt::Display::fmt(element, f),
3046                Self::TokenOfOwnerByIndex(element) => {
3047                    ::core::fmt::Display::fmt(element, f)
3048                }
3049                Self::TokenURI(element) => ::core::fmt::Display::fmt(element, f),
3050                Self::TotalSupply(element) => ::core::fmt::Display::fmt(element, f),
3051                Self::TransferFrom(element) => ::core::fmt::Display::fmt(element, f),
3052                Self::TypeAt(element) => ::core::fmt::Display::fmt(element, f),
3053                Self::TypeIndexOf(element) => ::core::fmt::Display::fmt(element, f),
3054                Self::TypeOf(element) => ::core::fmt::Display::fmt(element, f),
3055                Self::UpdateBaseURI(element) => ::core::fmt::Display::fmt(element, f),
3056            }
3057        }
3058    }
3059    impl ::core::convert::From<DefaultAdminRoleCall> for HoprBoostCalls {
3060        fn from(value: DefaultAdminRoleCall) -> Self {
3061            Self::DefaultAdminRole(value)
3062        }
3063    }
3064    impl ::core::convert::From<MinterRoleCall> for HoprBoostCalls {
3065        fn from(value: MinterRoleCall) -> Self {
3066            Self::MinterRole(value)
3067        }
3068    }
3069    impl ::core::convert::From<ApproveCall> for HoprBoostCalls {
3070        fn from(value: ApproveCall) -> Self {
3071            Self::Approve(value)
3072        }
3073    }
3074    impl ::core::convert::From<BalanceOfCall> for HoprBoostCalls {
3075        fn from(value: BalanceOfCall) -> Self {
3076            Self::BalanceOf(value)
3077        }
3078    }
3079    impl ::core::convert::From<BatchMintCall> for HoprBoostCalls {
3080        fn from(value: BatchMintCall) -> Self {
3081            Self::BatchMint(value)
3082        }
3083    }
3084    impl ::core::convert::From<BoostOfCall> for HoprBoostCalls {
3085        fn from(value: BoostOfCall) -> Self {
3086            Self::BoostOf(value)
3087        }
3088    }
3089    impl ::core::convert::From<GetApprovedCall> for HoprBoostCalls {
3090        fn from(value: GetApprovedCall) -> Self {
3091            Self::GetApproved(value)
3092        }
3093    }
3094    impl ::core::convert::From<GetRoleAdminCall> for HoprBoostCalls {
3095        fn from(value: GetRoleAdminCall) -> Self {
3096            Self::GetRoleAdmin(value)
3097        }
3098    }
3099    impl ::core::convert::From<GetRoleMemberCall> for HoprBoostCalls {
3100        fn from(value: GetRoleMemberCall) -> Self {
3101            Self::GetRoleMember(value)
3102        }
3103    }
3104    impl ::core::convert::From<GetRoleMemberCountCall> for HoprBoostCalls {
3105        fn from(value: GetRoleMemberCountCall) -> Self {
3106            Self::GetRoleMemberCount(value)
3107        }
3108    }
3109    impl ::core::convert::From<GrantRoleCall> for HoprBoostCalls {
3110        fn from(value: GrantRoleCall) -> Self {
3111            Self::GrantRole(value)
3112        }
3113    }
3114    impl ::core::convert::From<HasRoleCall> for HoprBoostCalls {
3115        fn from(value: HasRoleCall) -> Self {
3116            Self::HasRole(value)
3117        }
3118    }
3119    impl ::core::convert::From<IsApprovedForAllCall> for HoprBoostCalls {
3120        fn from(value: IsApprovedForAllCall) -> Self {
3121            Self::IsApprovedForAll(value)
3122        }
3123    }
3124    impl ::core::convert::From<MintCall> for HoprBoostCalls {
3125        fn from(value: MintCall) -> Self {
3126            Self::Mint(value)
3127        }
3128    }
3129    impl ::core::convert::From<NameCall> for HoprBoostCalls {
3130        fn from(value: NameCall) -> Self {
3131            Self::Name(value)
3132        }
3133    }
3134    impl ::core::convert::From<OwnerOfCall> for HoprBoostCalls {
3135        fn from(value: OwnerOfCall) -> Self {
3136            Self::OwnerOf(value)
3137        }
3138    }
3139    impl ::core::convert::From<ReclaimErc20TokensCall> for HoprBoostCalls {
3140        fn from(value: ReclaimErc20TokensCall) -> Self {
3141            Self::ReclaimErc20Tokens(value)
3142        }
3143    }
3144    impl ::core::convert::From<ReclaimErc721TokensCall> for HoprBoostCalls {
3145        fn from(value: ReclaimErc721TokensCall) -> Self {
3146            Self::ReclaimErc721Tokens(value)
3147        }
3148    }
3149    impl ::core::convert::From<RenounceRoleCall> for HoprBoostCalls {
3150        fn from(value: RenounceRoleCall) -> Self {
3151            Self::RenounceRole(value)
3152        }
3153    }
3154    impl ::core::convert::From<RevokeRoleCall> for HoprBoostCalls {
3155        fn from(value: RevokeRoleCall) -> Self {
3156            Self::RevokeRole(value)
3157        }
3158    }
3159    impl ::core::convert::From<SafeTransferFromCall> for HoprBoostCalls {
3160        fn from(value: SafeTransferFromCall) -> Self {
3161            Self::SafeTransferFrom(value)
3162        }
3163    }
3164    impl ::core::convert::From<SafeTransferFromWithFromAndToAndDataCall>
3165    for HoprBoostCalls {
3166        fn from(value: SafeTransferFromWithFromAndToAndDataCall) -> Self {
3167            Self::SafeTransferFromWithFromAndToAndData(value)
3168        }
3169    }
3170    impl ::core::convert::From<SetApprovalForAllCall> for HoprBoostCalls {
3171        fn from(value: SetApprovalForAllCall) -> Self {
3172            Self::SetApprovalForAll(value)
3173        }
3174    }
3175    impl ::core::convert::From<SupportsInterfaceCall> for HoprBoostCalls {
3176        fn from(value: SupportsInterfaceCall) -> Self {
3177            Self::SupportsInterface(value)
3178        }
3179    }
3180    impl ::core::convert::From<SymbolCall> for HoprBoostCalls {
3181        fn from(value: SymbolCall) -> Self {
3182            Self::Symbol(value)
3183        }
3184    }
3185    impl ::core::convert::From<TokenByIndexCall> for HoprBoostCalls {
3186        fn from(value: TokenByIndexCall) -> Self {
3187            Self::TokenByIndex(value)
3188        }
3189    }
3190    impl ::core::convert::From<TokenOfOwnerByIndexCall> for HoprBoostCalls {
3191        fn from(value: TokenOfOwnerByIndexCall) -> Self {
3192            Self::TokenOfOwnerByIndex(value)
3193        }
3194    }
3195    impl ::core::convert::From<TokenURICall> for HoprBoostCalls {
3196        fn from(value: TokenURICall) -> Self {
3197            Self::TokenURI(value)
3198        }
3199    }
3200    impl ::core::convert::From<TotalSupplyCall> for HoprBoostCalls {
3201        fn from(value: TotalSupplyCall) -> Self {
3202            Self::TotalSupply(value)
3203        }
3204    }
3205    impl ::core::convert::From<TransferFromCall> for HoprBoostCalls {
3206        fn from(value: TransferFromCall) -> Self {
3207            Self::TransferFrom(value)
3208        }
3209    }
3210    impl ::core::convert::From<TypeAtCall> for HoprBoostCalls {
3211        fn from(value: TypeAtCall) -> Self {
3212            Self::TypeAt(value)
3213        }
3214    }
3215    impl ::core::convert::From<TypeIndexOfCall> for HoprBoostCalls {
3216        fn from(value: TypeIndexOfCall) -> Self {
3217            Self::TypeIndexOf(value)
3218        }
3219    }
3220    impl ::core::convert::From<TypeOfCall> for HoprBoostCalls {
3221        fn from(value: TypeOfCall) -> Self {
3222            Self::TypeOf(value)
3223        }
3224    }
3225    impl ::core::convert::From<UpdateBaseURICall> for HoprBoostCalls {
3226        fn from(value: UpdateBaseURICall) -> Self {
3227            Self::UpdateBaseURI(value)
3228        }
3229    }
3230    ///Container type for all return fields from the `DEFAULT_ADMIN_ROLE` function with signature `DEFAULT_ADMIN_ROLE()` and selector `0xa217fddf`
3231    #[derive(
3232        Clone,
3233        ::ethers::contract::EthAbiType,
3234        ::ethers::contract::EthAbiCodec,
3235        serde::Serialize,
3236        serde::Deserialize,
3237        Default,
3238        Debug,
3239        PartialEq,
3240        Eq,
3241        Hash
3242    )]
3243    pub struct DefaultAdminRoleReturn(pub [u8; 32]);
3244    ///Container type for all return fields from the `MINTER_ROLE` function with signature `MINTER_ROLE()` and selector `0xd5391393`
3245    #[derive(
3246        Clone,
3247        ::ethers::contract::EthAbiType,
3248        ::ethers::contract::EthAbiCodec,
3249        serde::Serialize,
3250        serde::Deserialize,
3251        Default,
3252        Debug,
3253        PartialEq,
3254        Eq,
3255        Hash
3256    )]
3257    pub struct MinterRoleReturn(pub [u8; 32]);
3258    ///Container type for all return fields from the `balanceOf` function with signature `balanceOf(address)` and selector `0x70a08231`
3259    #[derive(
3260        Clone,
3261        ::ethers::contract::EthAbiType,
3262        ::ethers::contract::EthAbiCodec,
3263        serde::Serialize,
3264        serde::Deserialize,
3265        Default,
3266        Debug,
3267        PartialEq,
3268        Eq,
3269        Hash
3270    )]
3271    pub struct BalanceOfReturn(pub ::ethers::core::types::U256);
3272    ///Container type for all return fields from the `boostOf` function with signature `boostOf(uint256)` and selector `0x896cddf4`
3273    #[derive(
3274        Clone,
3275        ::ethers::contract::EthAbiType,
3276        ::ethers::contract::EthAbiCodec,
3277        serde::Serialize,
3278        serde::Deserialize,
3279        Default,
3280        Debug,
3281        PartialEq,
3282        Eq,
3283        Hash
3284    )]
3285    pub struct BoostOfReturn(
3286        pub ::ethers::core::types::U256,
3287        pub ::ethers::core::types::U256,
3288    );
3289    ///Container type for all return fields from the `getApproved` function with signature `getApproved(uint256)` and selector `0x081812fc`
3290    #[derive(
3291        Clone,
3292        ::ethers::contract::EthAbiType,
3293        ::ethers::contract::EthAbiCodec,
3294        serde::Serialize,
3295        serde::Deserialize,
3296        Default,
3297        Debug,
3298        PartialEq,
3299        Eq,
3300        Hash
3301    )]
3302    pub struct GetApprovedReturn(pub ::ethers::core::types::Address);
3303    ///Container type for all return fields from the `getRoleAdmin` function with signature `getRoleAdmin(bytes32)` and selector `0x248a9ca3`
3304    #[derive(
3305        Clone,
3306        ::ethers::contract::EthAbiType,
3307        ::ethers::contract::EthAbiCodec,
3308        serde::Serialize,
3309        serde::Deserialize,
3310        Default,
3311        Debug,
3312        PartialEq,
3313        Eq,
3314        Hash
3315    )]
3316    pub struct GetRoleAdminReturn(pub [u8; 32]);
3317    ///Container type for all return fields from the `getRoleMember` function with signature `getRoleMember(bytes32,uint256)` and selector `0x9010d07c`
3318    #[derive(
3319        Clone,
3320        ::ethers::contract::EthAbiType,
3321        ::ethers::contract::EthAbiCodec,
3322        serde::Serialize,
3323        serde::Deserialize,
3324        Default,
3325        Debug,
3326        PartialEq,
3327        Eq,
3328        Hash
3329    )]
3330    pub struct GetRoleMemberReturn(pub ::ethers::core::types::Address);
3331    ///Container type for all return fields from the `getRoleMemberCount` function with signature `getRoleMemberCount(bytes32)` and selector `0xca15c873`
3332    #[derive(
3333        Clone,
3334        ::ethers::contract::EthAbiType,
3335        ::ethers::contract::EthAbiCodec,
3336        serde::Serialize,
3337        serde::Deserialize,
3338        Default,
3339        Debug,
3340        PartialEq,
3341        Eq,
3342        Hash
3343    )]
3344    pub struct GetRoleMemberCountReturn(pub ::ethers::core::types::U256);
3345    ///Container type for all return fields from the `hasRole` function with signature `hasRole(bytes32,address)` and selector `0x91d14854`
3346    #[derive(
3347        Clone,
3348        ::ethers::contract::EthAbiType,
3349        ::ethers::contract::EthAbiCodec,
3350        serde::Serialize,
3351        serde::Deserialize,
3352        Default,
3353        Debug,
3354        PartialEq,
3355        Eq,
3356        Hash
3357    )]
3358    pub struct HasRoleReturn(pub bool);
3359    ///Container type for all return fields from the `isApprovedForAll` function with signature `isApprovedForAll(address,address)` and selector `0xe985e9c5`
3360    #[derive(
3361        Clone,
3362        ::ethers::contract::EthAbiType,
3363        ::ethers::contract::EthAbiCodec,
3364        serde::Serialize,
3365        serde::Deserialize,
3366        Default,
3367        Debug,
3368        PartialEq,
3369        Eq,
3370        Hash
3371    )]
3372    pub struct IsApprovedForAllReturn(pub bool);
3373    ///Container type for all return fields from the `name` function with signature `name()` and selector `0x06fdde03`
3374    #[derive(
3375        Clone,
3376        ::ethers::contract::EthAbiType,
3377        ::ethers::contract::EthAbiCodec,
3378        serde::Serialize,
3379        serde::Deserialize,
3380        Default,
3381        Debug,
3382        PartialEq,
3383        Eq,
3384        Hash
3385    )]
3386    pub struct NameReturn(pub ::std::string::String);
3387    ///Container type for all return fields from the `ownerOf` function with signature `ownerOf(uint256)` and selector `0x6352211e`
3388    #[derive(
3389        Clone,
3390        ::ethers::contract::EthAbiType,
3391        ::ethers::contract::EthAbiCodec,
3392        serde::Serialize,
3393        serde::Deserialize,
3394        Default,
3395        Debug,
3396        PartialEq,
3397        Eq,
3398        Hash
3399    )]
3400    pub struct OwnerOfReturn(pub ::ethers::core::types::Address);
3401    ///Container type for all return fields from the `supportsInterface` function with signature `supportsInterface(bytes4)` and selector `0x01ffc9a7`
3402    #[derive(
3403        Clone,
3404        ::ethers::contract::EthAbiType,
3405        ::ethers::contract::EthAbiCodec,
3406        serde::Serialize,
3407        serde::Deserialize,
3408        Default,
3409        Debug,
3410        PartialEq,
3411        Eq,
3412        Hash
3413    )]
3414    pub struct SupportsInterfaceReturn(pub bool);
3415    ///Container type for all return fields from the `symbol` function with signature `symbol()` and selector `0x95d89b41`
3416    #[derive(
3417        Clone,
3418        ::ethers::contract::EthAbiType,
3419        ::ethers::contract::EthAbiCodec,
3420        serde::Serialize,
3421        serde::Deserialize,
3422        Default,
3423        Debug,
3424        PartialEq,
3425        Eq,
3426        Hash
3427    )]
3428    pub struct SymbolReturn(pub ::std::string::String);
3429    ///Container type for all return fields from the `tokenByIndex` function with signature `tokenByIndex(uint256)` and selector `0x4f6ccce7`
3430    #[derive(
3431        Clone,
3432        ::ethers::contract::EthAbiType,
3433        ::ethers::contract::EthAbiCodec,
3434        serde::Serialize,
3435        serde::Deserialize,
3436        Default,
3437        Debug,
3438        PartialEq,
3439        Eq,
3440        Hash
3441    )]
3442    pub struct TokenByIndexReturn(pub ::ethers::core::types::U256);
3443    ///Container type for all return fields from the `tokenOfOwnerByIndex` function with signature `tokenOfOwnerByIndex(address,uint256)` and selector `0x2f745c59`
3444    #[derive(
3445        Clone,
3446        ::ethers::contract::EthAbiType,
3447        ::ethers::contract::EthAbiCodec,
3448        serde::Serialize,
3449        serde::Deserialize,
3450        Default,
3451        Debug,
3452        PartialEq,
3453        Eq,
3454        Hash
3455    )]
3456    pub struct TokenOfOwnerByIndexReturn(pub ::ethers::core::types::U256);
3457    ///Container type for all return fields from the `tokenURI` function with signature `tokenURI(uint256)` and selector `0xc87b56dd`
3458    #[derive(
3459        Clone,
3460        ::ethers::contract::EthAbiType,
3461        ::ethers::contract::EthAbiCodec,
3462        serde::Serialize,
3463        serde::Deserialize,
3464        Default,
3465        Debug,
3466        PartialEq,
3467        Eq,
3468        Hash
3469    )]
3470    pub struct TokenURIReturn(pub ::std::string::String);
3471    ///Container type for all return fields from the `totalSupply` function with signature `totalSupply()` and selector `0x18160ddd`
3472    #[derive(
3473        Clone,
3474        ::ethers::contract::EthAbiType,
3475        ::ethers::contract::EthAbiCodec,
3476        serde::Serialize,
3477        serde::Deserialize,
3478        Default,
3479        Debug,
3480        PartialEq,
3481        Eq,
3482        Hash
3483    )]
3484    pub struct TotalSupplyReturn(pub ::ethers::core::types::U256);
3485    ///Container type for all return fields from the `typeAt` function with signature `typeAt(uint256)` and selector `0xb5185a88`
3486    #[derive(
3487        Clone,
3488        ::ethers::contract::EthAbiType,
3489        ::ethers::contract::EthAbiCodec,
3490        serde::Serialize,
3491        serde::Deserialize,
3492        Default,
3493        Debug,
3494        PartialEq,
3495        Eq,
3496        Hash
3497    )]
3498    pub struct TypeAtReturn(pub ::std::string::String);
3499    ///Container type for all return fields from the `typeIndexOf` function with signature `typeIndexOf(uint256)` and selector `0x562317c5`
3500    #[derive(
3501        Clone,
3502        ::ethers::contract::EthAbiType,
3503        ::ethers::contract::EthAbiCodec,
3504        serde::Serialize,
3505        serde::Deserialize,
3506        Default,
3507        Debug,
3508        PartialEq,
3509        Eq,
3510        Hash
3511    )]
3512    pub struct TypeIndexOfReturn(pub ::ethers::core::types::U256);
3513    ///Container type for all return fields from the `typeOf` function with signature `typeOf(uint256)` and selector `0xc588ff8b`
3514    #[derive(
3515        Clone,
3516        ::ethers::contract::EthAbiType,
3517        ::ethers::contract::EthAbiCodec,
3518        serde::Serialize,
3519        serde::Deserialize,
3520        Default,
3521        Debug,
3522        PartialEq,
3523        Eq,
3524        Hash
3525    )]
3526    pub struct TypeOfReturn(pub ::std::string::String);
3527}