// Copyright (c) 2017, the R8 project authors. Please see the AUTHORS file
// for details. All rights reserved. Use of this source code is governed by a
// BSD-style license that can be found in the LICENSE file.

package multidex002;

public class IntermediateClass {

    public static int get() {
        return new multidex002.manymethods.Big045().get45()
                + new multidex002.manymethods.Big046().get46()
                + new multidex002.manymethods.Big047().get47()
                + new multidex002.manymethods.Big048().get48()
                + new multidex002.manymethods.Big049().get49()
                + new multidex002.manymethods.Big050().get50()
                + new multidex002.manymethods.Big051().get51()
                + new multidex002.manymethods.Big052().get52()
                + new multidex002.manymethods.Big053().get53()
                + new multidex002.manymethods.Big054().get54()
                + new multidex002.manymethods.Big055().get55()
                + new multidex002.manymethods.Big056().get56()
                + new multidex002.manymethods.Big057().get57()
                + new multidex002.manymethods.Big058().get58()
                + new multidex002.manymethods.Big059().get59()
                + new multidex002.manymethods.Big060().get60()
                + new multidex002.manymethods.Big061().get61()
                + new multidex002.manymethods.Big062().get62()
                + new multidex002.manymethods.Big063().get63()
                + new multidex002.manymethods.Big064().get64()
                + new multidex002.manymethods.Big065().get65()
                + new multidex002.manymethods.Big066().get66()
                + new multidex002.manymethods.Big067().get67()
                + new multidex002.manymethods.Big068().get68()
                + new multidex002.manymethods.Big069().get69()
                + new multidex002.manymethods.Big070().get70()
                + new multidex002.manymethods.Big071().get71()
                + new multidex002.manymethods.Big072().get72()
                + new multidex002.manymethods.Big073().get73()
                + new multidex002.manymethods.Big074().get74()
                + new multidex002.manymethods.Big075().get75()
                + new multidex002.manymethods.Big076().get76()
                + new multidex002.manymethods.Big077().get77()
                + new multidex002.manymethods.Big078().get78()
                + new multidex002.manymethods.Big079().get79()
                + new multidex002.manymethods.Big080().get80();
    }

}
