trigger OpponentBidInformation2Asset on Opponent_Bid_Information__c (after delete, after insert, after update) { 
 | 
// 2018年7月12日 为'对手中标信息'添加trigger by 张玉山 
 | 
    List<Opponent_Bid_Information__c> targetInsertObis = new List<Opponent_Bid_Information__c>(); 
 | 
    List<Opponent_Bid_Information__c> targetUpdateObis = new List<Opponent_Bid_Information__c>(); 
 | 
    List<Id> delAstIds = new List<Id>(); 
 | 
    List<String> OppoList = new List<String>(); 
 | 
    if (Trigger.isInsert) { 
 | 
        for (Opponent_Bid_Information__c obi : Trigger.new) { 
 | 
            if (obi.RecordType_DevName__c == 'OpponentBidInformation' && obi.HP_RecordType_DevName__c == 'HP') { 
 | 
                targetInsertObis.add(obi); 
 | 
            } 
 | 
            OppoList.add(obi.Opportunity__c); 
 | 
        } 
 | 
        system.debug('1234' + targetInsertObis); 
 | 
        //ControllerUtil.updateSIodcList(OppoList);//询价失单,SI需求表无效化 
 | 
    } 
 | 
    else if (Trigger.isUpdate) { 
 | 
        for (Opponent_Bid_Information__c obi : Trigger.new) { 
 | 
            if (obi.RecordType_DevName__c == 'OpponentBidInformation' && obi.HP_RecordType_DevName__c == 'HP' 
 | 
                && (obi.CompetitorProduct1__c != Trigger.oldMap.get(obi.Id).get('CompetitorProduct1__c') 
 | 
                    || obi.CompetitorProduct2__c != Trigger.oldMap.get(obi.Id).get('CompetitorProduct2__c') 
 | 
                    || obi.CompetitorProduct3__c != Trigger.oldMap.get(obi.Id).get('CompetitorProduct3__c') 
 | 
                    || obi.CompetitorProduct4__c != Trigger.oldMap.get(obi.Id).get('CompetitorProduct4__c') 
 | 
                ) 
 | 
            ) { 
 | 
                targetUpdateObis.add(obi); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
    else if (Trigger.isDelete) { 
 | 
        for (Opponent_Bid_Information__c obi : Trigger.old) { 
 | 
            if (obi.CompetitorAsset1__c != null) { 
 | 
                delAstIds.add(obi.CompetitorAsset1__c); 
 | 
            } 
 | 
            if (obi.CompetitorAsset2__c != null) { 
 | 
                delAstIds.add(obi.CompetitorAsset2__c); 
 | 
            } 
 | 
            if (obi.CompetitorAsset3__c != null) { 
 | 
                delAstIds.add(obi.CompetitorAsset3__c); 
 | 
            } 
 | 
            if (obi.CompetitorAsset4__c != null) { 
 | 
                delAstIds.add(obi.CompetitorAsset4__c); 
 | 
            } 
 | 
        } 
 | 
    } 
 | 
     
 | 
    if (targetInsertObis.size() > 0 || targetUpdateObis.size() > 0) { 
 | 
        Map<String, Asset> upsertAstMap = new Map<String, Asset>();   // obi.id + 枝番 ==> Asset  
 | 
        for (Opponent_Bid_Information__c obi : [ 
 | 
                 Select CompetitorAsset1__c, CompetitorProduct1__c, 
 | 
                        CompetitorAsset2__c, CompetitorProduct2__c, 
 | 
                        CompetitorAsset3__c, CompetitorProduct3__c, 
 | 
                        CompetitorAsset4__c, CompetitorProduct4__c, 
 | 
                        Opportunity__c, Submit_Day__c, 
 | 
                        Lost_By_Product__c, 
 | 
                        Lost_By_Brand__c, 
 | 
                        Opportunity__r.Hospital__c, Opportunity__r.Department_Class__c, Opportunity__r.AccountId 
 | 
                   From Opponent_Bid_Information__c 
 | 
                  Where (id IN :targetInsertObis or id IN :targetUpdateObis) 
 | 
                ] 
 | 
        ) { 
 | 
            if (obi.CompetitorProduct1__c != null) { 
 | 
                Asset upsertAssert = new Asset( 
 | 
                    Id = obi.CompetitorAsset1__c, 
 | 
                    Name = '*', 
 | 
                    Product2Id = obi.CompetitorProduct1__c, 
 | 
                    Opportunity__c = obi.Opportunity__c, 
 | 
                    InstallDate = obi.Submit_Day__c, 
 | 
                    Hospital__c = obi.Opportunity__r.Hospital__c, 
 | 
                    Department_Class__c = obi.Opportunity__r.Department_Class__c, 
 | 
                    AccountId = obi.Opportunity__r.AccountId, 
 | 
                    Status = '使用中', 
 | 
                    Asset_Owner__c = '病院資産', 
 | 
                    IsCompetitorProduct = True 
 | 
                ); 
 | 
                if(obi.Lost_By_Product__c != null){ 
 | 
                    upsertAssert.Manual_competitor_product_code__c = obi.Lost_By_Product__c; 
 | 
                } 
 | 
                if(obi.Lost_By_Brand__c != null){ 
 | 
                    upsertAssert.Manual_competitor_product_company__c = obi.Lost_By_Brand__c; 
 | 
                } 
 | 
  
 | 
                upsertAstMap.put(obi.Id + '_1', upsertAssert); 
 | 
            } 
 | 
            if (obi.CompetitorProduct2__c != null) { 
 | 
                Asset upsertAssert = new Asset( 
 | 
                    Id = obi.CompetitorAsset2__c, 
 | 
                    Name = '*', 
 | 
                    Product2Id = obi.CompetitorProduct2__c, 
 | 
                    Opportunity__c = obi.Opportunity__c, 
 | 
                    InstallDate = obi.Submit_Day__c, 
 | 
                    Hospital__c = obi.Opportunity__r.Hospital__c, 
 | 
                    Department_Class__c = obi.Opportunity__r.Department_Class__c, 
 | 
                    AccountId = obi.Opportunity__r.AccountId, 
 | 
                    Status = '使用中', 
 | 
                    Asset_Owner__c = '病院資産', 
 | 
                    IsCompetitorProduct = True 
 | 
                ); 
 | 
                upsertAstMap.put(obi.Id + '_2', upsertAssert); 
 | 
            } 
 | 
            if (obi.CompetitorProduct3__c != null) { 
 | 
                Asset upsertAssert = new Asset( 
 | 
                    Id = obi.CompetitorAsset3__c, 
 | 
                    Name = '*', 
 | 
                    Product2Id = obi.CompetitorProduct3__c, 
 | 
                    Opportunity__c = obi.Opportunity__c, 
 | 
                    InstallDate = obi.Submit_Day__c, 
 | 
                    Hospital__c = obi.Opportunity__r.Hospital__c, 
 | 
                    Department_Class__c = obi.Opportunity__r.Department_Class__c, 
 | 
                    AccountId = obi.Opportunity__r.AccountId, 
 | 
                    Status = '使用中', 
 | 
                    Asset_Owner__c = '病院資産', 
 | 
                    IsCompetitorProduct = True 
 | 
                ); 
 | 
                upsertAstMap.put(obi.Id + '_3', upsertAssert); 
 | 
            } 
 | 
            if (obi.CompetitorProduct4__c != null) { 
 | 
                Asset upsertAssert = new Asset( 
 | 
                    Id = obi.CompetitorAsset4__c, 
 | 
                    Name = '*', 
 | 
                    Product2Id = obi.CompetitorProduct4__c, 
 | 
                    Opportunity__c = obi.Opportunity__c, 
 | 
                    InstallDate = obi.Submit_Day__c, 
 | 
                    Hospital__c = obi.Opportunity__r.Hospital__c, 
 | 
                    Department_Class__c = obi.Opportunity__r.Department_Class__c, 
 | 
                    AccountId = obi.Opportunity__r.AccountId, 
 | 
                    Status = '使用中', 
 | 
                    Asset_Owner__c = '病院資産', 
 | 
                    IsCompetitorProduct = True 
 | 
                ); 
 | 
                upsertAstMap.put(obi.Id + '_4', upsertAssert); 
 | 
            } 
 | 
        } 
 | 
        system.debug('233332'+upsertAstMap.values()); 
 | 
        ControllerUtil.upsertAsset(upsertAstMap.values()); 
 | 
        List<Opponent_Bid_Information__c> updateObis = new List<Opponent_Bid_Information__c>(); 
 | 
        for (Opponent_Bid_Information__c obi : targetInsertObis) { 
 | 
            if (upsertAstMap.containsKey(obi.Id + '_1') || upsertAstMap.containsKey(obi.Id + '_2') 
 | 
                    || upsertAstMap.containsKey(obi.Id + '_3') || upsertAstMap.containsKey(obi.Id + '_4') 
 | 
            ) { 
 | 
                Opponent_Bid_Information__c updObi = new Opponent_Bid_Information__c(Id = obi.Id); 
 | 
                updateObis.add(updObi); 
 | 
                if (upsertAstMap.containsKey(obi.Id + '_1')) { 
 | 
                    updObi.CompetitorAsset1__c = upsertAstMap.get(obi.Id + '_1').Id; 
 | 
                } 
 | 
                if (upsertAstMap.containsKey(obi.Id + '_2')) { 
 | 
                    updObi.CompetitorAsset2__c = upsertAstMap.get(obi.Id + '_2').Id; 
 | 
                } 
 | 
                if (upsertAstMap.containsKey(obi.Id + '_3')) { 
 | 
                    updObi.CompetitorAsset3__c = upsertAstMap.get(obi.Id + '_3').Id; 
 | 
                } 
 | 
                if (upsertAstMap.containsKey(obi.Id + '_4')) { 
 | 
                    updObi.CompetitorAsset4__c = upsertAstMap.get(obi.Id + '_4').Id; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        for (Opponent_Bid_Information__c obi : targetUpdateObis) { 
 | 
            if (upsertAstMap.containsKey(obi.Id + '_1') || upsertAstMap.containsKey(obi.Id + '_2') 
 | 
                    || upsertAstMap.containsKey(obi.Id + '_3') || upsertAstMap.containsKey(obi.Id + '_4') 
 | 
            ) { 
 | 
                Opponent_Bid_Information__c updObi = new Opponent_Bid_Information__c(Id = obi.Id); 
 | 
                updateObis.add(updObi); 
 | 
                if (upsertAstMap.containsKey(obi.Id + '_1')) { 
 | 
                    updObi.CompetitorAsset1__c = upsertAstMap.get(obi.Id + '_1').Id; 
 | 
                } 
 | 
                if (upsertAstMap.containsKey(obi.Id + '_2')) { 
 | 
                    updObi.CompetitorAsset2__c = upsertAstMap.get(obi.Id + '_2').Id; 
 | 
                } 
 | 
                if (upsertAstMap.containsKey(obi.Id + '_3')) { 
 | 
                    updObi.CompetitorAsset3__c = upsertAstMap.get(obi.Id + '_3').Id; 
 | 
                } 
 | 
                if (upsertAstMap.containsKey(obi.Id + '_4')) { 
 | 
                    updObi.CompetitorAsset4__c = upsertAstMap.get(obi.Id + '_4').Id; 
 | 
                } 
 | 
            } 
 | 
        } 
 | 
        update updateObis; 
 | 
    } 
 | 
    if (delAstIds.size() > 0) { 
 | 
        ControllerUtil.deleteAsset(delAstIds); 
 | 
    }/* 
 | 
    Integer i = 0; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++; 
 | 
    i++;*/ 
 | 
} 
 |