Jason Lee преди 10 години
родител
ревизия
14721c8422

+ 10 - 0
kneet2.xcodeproj/project.pbxproj

@@ -178,6 +178,8 @@
 		A130CDD81BF9C02100126AC5 /* Settings.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A132A59A1BBE70D6004877ED /* Settings.storyboard */; };
 		A130CDD91BF9C02100126AC5 /* Common.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A132A5901BBE70D6004877ED /* Common.storyboard */; };
 		A130CDDA1BF9C02100126AC5 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = A12BBC331BA94FAE00DE1B94 /* LaunchScreen.xib */; };
+		A13671BE1C02B56B005DF6C6 /* TriggerSelectPopupView.m in Sources */ = {isa = PBXBuildFile; fileRef = A13671BC1C02B56A005DF6C6 /* TriggerSelectPopupView.m */; };
+		A13671BF1C02B56B005DF6C6 /* TriggerSelectPopupView.xib in Resources */ = {isa = PBXBuildFile; fileRef = A13671BD1C02B56A005DF6C6 /* TriggerSelectPopupView.xib */; };
 		A17D62221BFEB2530030FE56 /* RulesAddViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = A17D62211BFEB2530030FE56 /* RulesAddViewController.m */; };
 		B07AEF45071D67A7C948B31B /* Pods.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D6B1A9CF6F5E71320D607201 /* Pods.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
 /* End PBXBuildFile section */
@@ -326,6 +328,9 @@
 		A132A5A91BBE7BF3004877ED /* MainViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = MainViewController.m; path = MainScreens/MainViewController.m; sourceTree = "<group>"; };
 		A132A5B11BBE814A004877ED /* UIView+Additions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Additions.h"; sourceTree = "<group>"; };
 		A132A5B21BBE814A004877ED /* UIView+Additions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Additions.m"; sourceTree = "<group>"; };
+		A13671BB1C02B56A005DF6C6 /* TriggerSelectPopupView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TriggerSelectPopupView.h; path = kneet2/Classes/ViewControllers/ThingsScreens/TriggerSelectPopupView.h; sourceTree = SOURCE_ROOT; };
+		A13671BC1C02B56A005DF6C6 /* TriggerSelectPopupView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = TriggerSelectPopupView.m; path = kneet2/Classes/ViewControllers/ThingsScreens/TriggerSelectPopupView.m; sourceTree = SOURCE_ROOT; };
+		A13671BD1C02B56A005DF6C6 /* TriggerSelectPopupView.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = TriggerSelectPopupView.xib; path = kneet2/Classes/ViewControllers/ThingsScreens/TriggerSelectPopupView.xib; sourceTree = SOURCE_ROOT; };
 		A14023E81BD8CAE30013756C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/HomeHub.storyboard; sourceTree = "<group>"; };
 		A14023EB1BD8CB7B0013756C /* HomeHubFirstStepViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HomeHubFirstStepViewController.h; sourceTree = "<group>"; };
 		A14023EC1BD8CB7B0013756C /* HomeHubFirstStepViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HomeHubFirstStepViewController.m; sourceTree = "<group>"; };
@@ -939,6 +944,9 @@
 				A1EA40B11BBD2B1B00FA7ABF /* RulesViewController.m */,
 				A17D62201BFEB2530030FE56 /* RulesAddViewController.h */,
 				A17D62211BFEB2530030FE56 /* RulesAddViewController.m */,
+				A13671BB1C02B56A005DF6C6 /* TriggerSelectPopupView.h */,
+				A13671BC1C02B56A005DF6C6 /* TriggerSelectPopupView.m */,
+				A13671BD1C02B56A005DF6C6 /* TriggerSelectPopupView.xib */,
 				A1EA408B1BBD2B1B00FA7ABF /* ActionPopTableView.h */,
 				A1EA408C1BBD2B1B00FA7ABF /* ActionPopTableView.m */,
 				A1EA408D1BBD2B1B00FA7ABF /* ActionPopTableView.xib */,
@@ -1186,6 +1194,7 @@
 				A130CDD71BF9C02100126AC5 /* HomeMember.storyboard in Resources */,
 				A130CDD41BF9C02100126AC5 /* Things.storyboard in Resources */,
 				A130CDD91BF9C02100126AC5 /* Common.storyboard in Resources */,
+				A13671BF1C02B56B005DF6C6 /* TriggerSelectPopupView.xib in Resources */,
 				A130CDD81BF9C02100126AC5 /* Settings.storyboard in Resources */,
 			);
 			runOnlyForDeploymentPostprocessing = 0;
@@ -1356,6 +1365,7 @@
 				A130CD531BF9BB4F00126AC5 /* RegisterTimerViewController.m in Sources */,
 				A130CD551BF9BB4F00126AC5 /* RuleRegisterTypeViewController.m in Sources */,
 				A130CD571BF9BB4F00126AC5 /* RulesDetailViewController.m in Sources */,
+				A13671BE1C02B56B005DF6C6 /* TriggerSelectPopupView.m in Sources */,
 				A130CD591BF9BB4F00126AC5 /* RulesRegisterPredefineViewController.m in Sources */,
 				A130CD5B1BF9BB4F00126AC5 /* RulesRegisterTitleViewController.m in Sources */,
 				A130CD5D1BF9BB4F00126AC5 /* RulesRegisterViewController.m in Sources */,

Файловите разлики са ограничени, защото са твърде много
+ 28 - 28
kneet2/Base.lproj/Rules.storyboard


+ 2 - 2
kneet2/Classes/CommonUI/DeviceNodePopupView.h

@@ -17,8 +17,8 @@
 
 @interface DeviceNodePopupView : CustomAlertView
 
-@property (weak, nonatomic) ItemModel *item;
-@property (weak, nonatomic, readonly) ItemModel *selectedItem;
+@property (weak, nonatomic) ItemModel *refDevice;
+@property (weak, nonatomic, readonly) ItemModel *selectedNode;
 
 @property (strong, nonatomic) NSString *typeCode;
 @property (assign, nonatomic) BOOL isModifyMode;

+ 7 - 7
kneet2/Classes/CommonUI/DeviceNodePopupView.m

@@ -89,11 +89,11 @@
 
 }
 
-- (void)setItem:(ItemModel *)item {
-    _item = item;
+- (void)setRefDevice:(ItemModel *)refDevice {
+    _refDevice = refDevice;
     
-    self.lblTitle.text = item.sourceName;
-    [self.imgvDevice sd_setImageWithURL:[NSURL URLWithString:item.imageFileName] placeholderImage:nil options:SDWebImageRefreshCached];
+    self.lblTitle.text = _refDevice.sourceName;
+    [self.imgvDevice sd_setImageWithURL:[NSURL URLWithString:_refDevice.imageFileName] placeholderImage:nil options:SDWebImageRefreshCached];
     
     [_tableView reloadData];
 }
@@ -119,7 +119,7 @@
 }
 
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
-    return _item.subItems ? _item.subItems.count : 0;
+    return _refDevice.subItems ? _refDevice.subItems.count : 0;
 }
 
 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
@@ -130,7 +130,7 @@
 
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     
-    ItemSubModel *subItem = _item.subItems[indexPath.row];
+    ItemSubModel *subItem = _refDevice.subItems[indexPath.row];
     
     DeviceNodePopupTableViewCell *tcell = (DeviceNodePopupTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"NodeCellIdentifier"];
     
@@ -232,7 +232,7 @@
         
         if ([_typeCode isEqualToString:ksItemTypeCodeAction]) {//디바이스 멀티    BOOL isSelected = NO;
             
-            _checkedItems = (NSMutableArray<ItemModel> *)[_item.subItems matchedArrayByObjectName:ksCustomCheckBoxStatus condition:YES];
+            _checkedItems = (NSMutableArray<ItemModel> *)[_refDevice.subItems matchedArrayByObjectName:ksCustomCheckBoxStatus condition:YES];
             if (!_checkedItems || !_checkedItems.count) {
                 [[JDFacade facade] alert:NSLocalizedString(@"선택된 항목이 없습니다", @"선택된 항목이 없습니다")];
                 return;

+ 2 - 2
kneet2/Classes/CommonUI/DeviceSelectPopupView.h

@@ -16,8 +16,8 @@
 
 @interface DeviceSelectPopupView : CustomAlertView
 
-@property (weak, nonatomic) NSMutableArray<ItemModel> *items;
-@property (weak, nonatomic, readonly) NSArray<ItemModel> *selectedItems;
+@property (weak, nonatomic) NSMutableArray<ItemModel> *refDevices;
+@property (weak, nonatomic, readonly) NSArray<ItemModel> *selectedDevices;
 
 @property (strong, nonatomic) NSString *typeCode;
 

+ 13 - 13
kneet2/Classes/CommonUI/DeviceSelectPopupView.m

@@ -35,7 +35,7 @@
     BOOL _isNotFirstLoading;
     UIImage *_bgCellImage1, *_bgCellImage2;
     
-    NSMutableArray<ItemModel> *_checkedItems;
+    NSMutableArray<ItemModel> *_checkedDevices;
 }
 
 @end
@@ -88,25 +88,25 @@
 
 }
 
-- (void)setItems:(NSMutableArray<ItemModel> *)items {
-    _items = items;
+- (void)setRefDevices:(NSMutableArray<ItemModel> *)refDevices {
+    _refDevices = refDevices;
     
-    for (ItemSubModel *item in _items) {
+    for (ItemSubModel *item in _refDevices) {
         [[JDFacade facade] setRadioButtonStatus:@NO object:item];
     }
     
     [_tableView reloadData];
 }
 
-- (NSArray<ItemModel> *)selectedItems {
-    NSArray<ItemModel> *items = nil;
+- (NSArray<ItemModel> *)selectedDevices {
+    NSArray<ItemModel> *devices = nil;
     
     if ([_typeCode isEqualToString:ksItemTypeCodeAction]) {
-        items = _checkedItems;
+        devices = _checkedDevices;
     } else {
-        items = (NSArray<ItemModel> *)@[_rgroup.valueForChecked];
+        devices = (NSArray<ItemModel> *)@[_rgroup.valueForChecked];
     }
-    return items;
+    return devices;
 }
 
 #pragma mark - Main Logic
@@ -118,7 +118,7 @@
 }
 
 - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
-    return _items ? _items.count : 0;
+    return _refDevices ? _refDevices.count : 0;
 }
 
 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
@@ -129,7 +129,7 @@
 
 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
     
-    ItemModel *item = _items[indexPath.row];
+    ItemModel *item = _refDevices[indexPath.row];
     
     DeviceSelectPopupTableViewCell *tcell = (DeviceSelectPopupTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"DeviceCellIdentifier"];
     tcell.lblDeviceName.text = item.sourceName;
@@ -206,8 +206,8 @@
     
     if ([_typeCode isEqualToString:ksItemTypeCodeAction]) {//디바이스 멀티    BOOL isSelected = NO;
         
-        _checkedItems = (NSMutableArray<ItemModel> *)[_items matchedArrayByObjectName:ksCustomCheckBoxStatus condition:YES];
-        if (!_checkedItems || !_checkedItems.count) {
+        _checkedDevices = (NSMutableArray<ItemModel> *)[_refDevices matchedArrayByObjectName:ksCustomCheckBoxStatus condition:YES];
+        if (!_checkedDevices || !_checkedDevices.count) {
             [[JDFacade facade] alert:NSLocalizedString(@"선택된 항목이 없습니다", @"선택된 항목이 없습니다")];
             return;
         }

+ 1 - 1
kneet2/Classes/CustomUI/CustomAlertView.m

@@ -164,7 +164,7 @@ static NSString *CustomAlertViewHandlerRunTimeAccosiationKey = @"CustomAlertView
         CGRect screenRect = [UIScreen mainScreen].bounds;
         self.frame = screenRect;
 
-        if (_maskingView.superview) {
+        if (_maskingView.superview) {    
             [_maskingView mas_makeConstraints:^(MASConstraintMaker *make) {
                 make.width.mas_equalTo(screenRect.size.width);
                 make.height.mas_equalTo(screenRect.size.height);

+ 1 - 0
kneet2/Classes/Model/DeviceModel.h

@@ -62,6 +62,7 @@
 @property (assign, nonatomic) BOOL isRequesting;
 
 - (instancetype)initWithSubItem:(ItemSubModel *)subItem;
++ (NSString *)contentValueMsgByCmdClsCode:(NSString *)cmdclsCode cmdclsTypeId:(NSString *)cmdclsTypeId contentValue:(NSString *)contentValue;
 
 @end
 

+ 10 - 0
kneet2/Classes/Model/DeviceModel.m

@@ -266,6 +266,16 @@
     return self;
 }
 
++ (NSString *)contentValueMsgByCmdClsCode:(NSString *)cmdclsCode cmdclsTypeId:(NSString *)cmdclsTypeId contentValue:(NSString *)contentValue {
+
+    DeviceModel *tmpDevice = [[DeviceModel alloc] init];
+    tmpDevice.cmdclsCode = cmdclsCode;
+    tmpDevice.cmdclsTypeId = cmdclsTypeId;
+    tmpDevice.contentValue = contentValue;
+    
+    return tmpDevice.contentValueMsg;
+}
+
 
 @end
 

+ 2 - 0
kneet2/Classes/Model/ItemModel.h

@@ -37,6 +37,8 @@ typedef NS_ENUM(NSInteger, CmdClsType) {
 #define ksItemSubTypeCodeAppPush    @"03"
 #define ksItemSubTypeCodeTimer      @"05"
 #define ksItemSubTypeCodeGeoFencing @"06"
+#define ksItemSubTypeCodeHeat       @"31"
+#define ksItemSubTypeCodeSun        @"32"
 
 #define ksItemTypeCodeTrigger       @"01"
 #define ksItemTypeCodeAction        @"02"

+ 11 - 7
kneet2/Classes/ViewControllers/MainScreens/HomeModeSettingsViewController.m

@@ -219,7 +219,7 @@
         tcell.lblDeviceName.text = subItem.sourceName;
         tcell.lblNodeName.text = subItem.sourceSubName;
 
-        //노의 액션 값을 세팅함.
+        //노의 액션 값을 세팅함.
         if (subItem.cmdclsValueList && subItem.cmdclsValueList.count) {//커맨드클래스 밸루 리스트가 있을 경우,
             CmdClsValueModel *cmdclsValue = [subItem.cmdclsValueList matchedObjectName:ksCustomRadioButtonStatus condition:YES];
             tcell.lblActionName.text = cmdclsValue.cmdclsValueMsg;
@@ -283,17 +283,19 @@
 - (void)btnAppendTouched:(id)sender {
     
     DeviceSelectPopupView *popup = [[DeviceSelectPopupView alloc] initFromNib];
-    popup.items = _items;
+    popup.refDevices = _items;
     popup.typeCode = ksItemTypeCodeTrigger;
     
     [popup showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) {
         if (buttonIndex == 0) {//ok
             DeviceNodePopupView *npopup = [[DeviceNodePopupView alloc] initFromNib];
-            npopup.item = popup.selectedItems[0];
+            npopup.refDevice = popup.selectedDevices[0];
             npopup.typeCode = ksItemTypeCodeTrigger;
             
             [npopup showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) {
-                 [_tableView reloadData];
+                if (buttonIndex == 0) {//OK
+                    [_tableView reloadData];
+                }
             }];
         }
     }];
@@ -305,12 +307,14 @@
     
     //노드 선택 팝럽.
     DeviceNodePopupView *npopup = [[DeviceNodePopupView alloc] initFromNib];
-    npopup.item = item;
-    npopup.typeCode = ksItemTypeCodeTrigger;
+    npopup.refDevice = item;
+    npopup.typeCode = ksItemTypeCodeTrigger; 
     npopup.isModifyMode = YES;
     
     [npopup showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) {
-        [_tableView reloadData];
+        if (buttonIndex == 0) {//OK
+            [_tableView reloadData];
+        }
     }];
 }
 

+ 2 - 2
kneet2/Classes/ViewControllers/MainScreens/InvitationAnswerPopupView.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9059" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9049"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/>
     </dependencies>
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>

+ 168 - 24
kneet2/Classes/ViewControllers/RuelsScreens/RulesAddViewController.m

@@ -21,6 +21,9 @@
 #import "CustomCheckBox.h"
 #import "DeviceSelectPopupView.h"
 #import "DeviceNodePopupView.h"
+#import "TriggerSelectPopupView.h"
+#import "DeviceModel.h"
+#import "CustomTextView.h"
 
 @implementation RulesAddHeaderTableViewCell
 
@@ -50,13 +53,15 @@
 
 @end
 
-@interface RulesAddViewController () {
+@interface RulesAddViewController () <CustomTextViewDelegate> {
     NSMutableArray<ItemModel> *_triggers, *_actions, *_conditions, *_pushes;
-    NSMutableArray<ItemModel> *_tmpDevices;
+    NSMutableArray<ItemModel> *_triggerDevices, *_actionDevices;
     
     BOOL _isNotFirstLoading, _isCustomCreation;
     NSMutableArray *_arrayForHeader, *_arrayForFooter;
     
+    CustomButton *_btnTriggerAdd, *_btnPushAdd;
+    
     CustomCheckBox *_chkConditions;
 }
 @end
@@ -102,7 +107,8 @@
         ItemListModel *fetchedItemList = (ItemListModel *)responseObject;
         
         if (fetchedItemList && fetchedItemList.list && fetchedItemList.list.count) {//API 성공 ,
-            _tmpDevices = fetchedItemList.list;
+            _triggerDevices = fetchedItemList.list;
+            _actionDevices = [(NSMutableArray<ItemModel> *)[NSMutableArray alloc] initWithArray:_triggerDevices copyItems:YES];
         }
         
     } failure:^(id errorObject) {
@@ -123,7 +129,9 @@
         count = _triggers && _triggers.count ? _triggers.count : 0;
         
     } else if (section == 1) {//actions
-        count = _actions && _actions.count ? _actions.count : 0;
+        
+        NSArray *matchedSubItems = [_actions matchedArrayInSubArrays:@"subItems" objectName:ksCustomRadioButtonStatus condition:YES];
+        count = matchedSubItems && matchedSubItems.count ? matchedSubItems.count : 0;
         
     } else if (section == 2) {//push-message
         count = _pushes && _pushes.count ? _pushes.count : 0;
@@ -140,14 +148,26 @@
     
     if (section == 0) {//trigger
         title = @"이 때가 되면";
-        title = _triggers && _triggers.count ? @"선택됨" : title;
+        if (_triggers && _triggers.count) {
+            ItemModel *item = _triggers[0];
+            
+            if ([item.itemSubTypeCode isEqualToString:ksItemSubTypeCodeDevice]) {
+                title = @"장치 상태가 바뀔 때";
+            } else if ([item.itemSubTypeCode isEqualToString:ksItemSubTypeCodeTimer]) {
+                title = @"이 시간마다";
+            } else if ([item.itemSubTypeCode isEqualToString:ksItemSubTypeCodeHeat]) {
+                title = @"더울때 / 추울때";
+            } else if ([item.itemSubTypeCode isEqualToString:ksItemSubTypeCodeSun]) {
+                title = @"해뜰때 / 질때";
+            }
+        }
         
     } else if (section == 1) {//action
         title = @"이 장치를 실행";
-        title = _actions && _actions.count ? @"선택됨" : title;
+//        title = _actions && _actions.count ? @"선택됨" : title;
     } else if (section == 2) {//pushes
         title = @"알림 메시지";
-        title = _pushes && _pushes.count ? @"선택됨" : title;
+//        title = _pushes && _pushes.count ? @"선택됨" : title;
     }
     
 //    else if (section == 3) {//conditions
@@ -159,11 +179,15 @@
 
 - (void)addTargetToHeaderAddButton:(CustomButton *)btnAdd section:(NSInteger)section {
     if (section == 0) {
+        _btnTriggerAdd = btnAdd;
         [btnAdd addTarget:self action:@selector(btnAddTriggerTouched:) forControlEvents:UIControlEventTouchUpInside];
+        
     } else if (section == 1) {
         [btnAdd addTarget:self action:@selector(btnAddActionTouched:) forControlEvents:UIControlEventTouchUpInside];
+        
     } else if (section == 2) {
-        [btnAdd addTarget:self action:@selector(btnAddTriggerTouched:) forControlEvents:UIControlEventTouchUpInside];
+        _btnPushAdd = btnAdd;
+        [btnAdd addTarget:self action:@selector(btnAddPushMessageTouched:) forControlEvents:UIControlEventTouchUpInside];
     }
 }
 
@@ -172,7 +196,7 @@
     UIView *view = _arrayForHeader.count > section ? _arrayForHeader[section] : nil;
     if (!view) {
         
-        if (section == 0 || section == 1 || section == 2) {
+        if (section == 0 || section == 1 || section == 2) {//TODO : hide add button or not;
 
             RulesAddHeaderTableViewCell *hcell = (RulesAddHeaderTableViewCell *)[tableView dequeueReusableCellWithIdentifier:@"HeaderCellIdentifier"];
             view = [[UIView alloc] initWithFrame:hcell.contentView.frame];
@@ -198,8 +222,7 @@
         
          if (section == 0 || section == 1 || section == 2) {
              RulesAddHeaderTableViewCell *hcell = (RulesAddHeaderTableViewCell *)view.subviews[0];
-//             NSString *headerTitle = [NSString stringWithFormat:@"%@ (%@)", group.dvcgrpName, group.deviceCount];
-//             [hcell.btnHeader setTitle:headerTitle forState:UIControlStateNormal];
+             hcell.lblTitle.text = hcell.lblTitle.text = [self headerTitleForSection:section];
              
          } else if (section == 3) {
              RulesAddConditionHeaderTableViewCell *hcell = (RulesAddConditionHeaderTableViewCell *)view.subviews[0];
@@ -263,20 +286,68 @@
     UITableViewCell *cell = nil;
     
     if (section == 0) {//triggers
+        ItemModel *item = _triggers[indexPath.row];
+        ItemSubModel *subItem = [item.subItems matchedObjectName:ksCustomRadioButtonStatus condition:YES];
+        
         RulesAddTableViewCell *tcell = (RulesAddTableViewCell *)[_tableView dequeueReusableCellWithIdentifier:@"RulesCellIdentifier"];
+        tcell.lblItem.text = item.sourceName;
+        tcell.lblSubItem.text = subItem.sourceSubName;
+        
+        //노드의 액션 값을 세팅함.
+        if (subItem.cmdclsValueList && subItem.cmdclsValueList.count) {//커맨드클래스 밸루 리스트가 있을 경우,
+            CmdClsValueModel *cmdclsValue = [subItem.cmdclsValueList matchedObjectName:ksCustomRadioButtonStatus condition:YES];
+            tcell.lblCondition.text = [DeviceModel contentValueMsgByCmdClsCode:subItem.cmdclsCode cmdclsTypeId:(NSString *)subItem.cmdclsTypeId contentValue:cmdclsValue.cmdclsValue];
+        } else {
+            tcell.lblCondition.text = subItem.cmdclsValueMsg;
+        }
+        
+        [tcell.imgvIcon sd_setImageWithURL:[NSURL URLWithString:subItem.imageFileName] placeholderImage:nil options:SDWebImageRefreshCached];
+        
+        if (![tcell.btnDelete actionsForTarget:self forControlEvent:UIControlEventTouchUpInside]) {
+            [tcell.btnDelete addTarget:self action:@selector(btnDeleteTriggerTouched:) forControlEvents:UIControlEventTouchUpInside];
+        }
         
         cell = tcell;
     } else if (section == 1) {//actions
         
         ItemModel *item = _actions[indexPath.row];
+
+        //노드 액션이 선택된 노드만 출력함.
+        NSInteger fcount = indexPath.row; //선택된 액션만 찾기 위한 인덱스
+        NSArray *matchedSubItems = [_actions matchedArrayInSubArrays:@"subItems" objectName:ksCustomRadioButtonStatus condition:YES];
+        
+        ItemSubModel *subItem = nil;
+        for (subItem in matchedSubItems) {
+            if (fcount == 0) {
+                break;
+            } else {
+                fcount--;
+            }
+        }
         
         RulesAddTableViewCell *tcell = (RulesAddTableViewCell *)[_tableView dequeueReusableCellWithIdentifier:@"RulesCellIdentifier"];
         tcell.lblItem.text = item.sourceName;
+        [tcell.imgvIcon sd_setImageWithURL:[NSURL URLWithString:item.imageFileName] placeholderImage:nil options:SDWebImageRefreshCached];
+        
+        //노드의 액션 값을 세팅함.
+        if (subItem.cmdclsValueList && subItem.cmdclsValueList.count) {//커맨드클래스 밸루 리스트가 있을 경우,
+            CmdClsValueModel *cmdclsValue = [subItem.cmdclsValueList matchedObjectName:ksCustomRadioButtonStatus condition:YES];
+            tcell.lblCondition.text = cmdclsValue.cmdclsValueMsg;
+        } else {
+            tcell.lblCondition.text = subItem.cmdclsValueMsg;
+        }
+        
+        tcell.btnDelete.value = subItem;
+        
+        if (![tcell.btnDelete actionsForTarget:self forControlEvent:UIControlEventTouchUpInside]) {
+            [tcell.btnDelete addTarget:self action:@selector(btnDeleteActionTouched:) forControlEvents:UIControlEventTouchUpInside];
+        }
         
         cell = tcell;
         
     } else if (section == 2) {//push-message
         RulesAddPushTableViewCell *tcell = (RulesAddPushTableViewCell *)[_tableView dequeueReusableCellWithIdentifier:@"PushCellIdentifier"];
+        tcell.txvMessage.delegate = self;
         
         cell = tcell;
 
@@ -293,39 +364,111 @@
     [tableView deselectRowAtIndexPath:indexPath animated:YES];
 }
 
+#pragma mark - TableView UI Events
 
 
-#pragma mark - UI Events
-
 - (void)btnAddTriggerTouched:(id)sender {
+    if (!_triggers) {
+        _triggers = (NSMutableArray<ItemModel> *)[[NSMutableArray alloc] init];
+    }
     
+    TriggerSelectPopupView *tpopup = [[TriggerSelectPopupView alloc] initFromNib];
+    tpopup.refTriggers = _triggers;
+    tpopup.refDevices = _triggerDevices;
+    [tpopup showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) {
+        if (buttonIndex == 0) {
+            [_tableView reloadData];
+        }
+    }];
 }
 
 - (void)btnAddActionTouched:(id)sender {
-    DeviceSelectPopupView *popup = [[DeviceSelectPopupView alloc] initFromNib];
-    popup.items = _tmpDevices;
-    popup.typeCode = ksItemTypeCodeTrigger;
+    DeviceSelectPopupView *dpopup = [[DeviceSelectPopupView alloc] initFromNib];
+    dpopup.refDevices = _actionDevices;
+    dpopup.typeCode = ksItemTypeCodeTrigger;
     
-    [popup showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) {
+    [dpopup showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) {
         if (buttonIndex == 0) {//ok
             DeviceNodePopupView *npopup = [[DeviceNodePopupView alloc] initFromNib];
-            npopup.item = popup.selectedItems[0];
+            npopup.refDevice = dpopup.selectedDevices[0];
             npopup.typeCode = ksItemTypeCodeTrigger;
             
             [npopup showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) {
                 //action add
-                
-                if (!_actions) {
-                    _actions = (NSMutableArray<ItemModel> *)[[NSMutableArray alloc] init];
+                if (buttonIndex == 0) {//OK
+                    if (!_actions) {
+                        _actions = (NSMutableArray<ItemModel> *)[[NSMutableArray alloc] init];
+                    }
+                    
+                    [_actions addObject:npopup.refDevice];
+                    [_tableView reloadData];
                 }
-                
-                [_actions addObject:npopup.item];
-                [_tableView reloadData];
             }];
         }
     }];
 }
 
+- (void)btnAddPushMessageTouched:(id)sender {
+    if (!_pushes) {
+        _pushes = [(NSMutableArray<ItemModel> *)[NSMutableArray alloc] init];
+    }
+    
+    if (!_pushes.count) {
+        ItemModel *push = [[ItemModel alloc] init];
+        push.itemSubTypeCode = ksItemSubTypeCodeAppPush;
+        
+        [_pushes addObject:push];
+    }
+    
+    [_tableView reloadData];
+}
+
+
+- (void)btnDeleteTriggerTouched:(id)sender {
+    if (_triggers && _triggers.count) {
+        [_triggers removeAllObjects];
+    }
+    
+    [_tableView reloadData];
+}
+
+- (void)btnDeleteActionTouched:(id)sender {
+    CustomButton *btnDelete = (CustomButton *)sender;
+    
+    ItemSubModel *subItem = (ItemSubModel *)btnDelete.value;
+    
+    //선택 설정을 초기화
+    [[JDFacade facade] setRadioButtonStatus:@NO object:subItem];
+    
+    for (CmdClsValueModel *cmdclsValue in subItem.cmdclsValueList) {
+        cmdclsValue.isSelected = NO;
+    }
+    
+    //액션과 일치하는 서브아이템을 삭제해줌.
+    [_actions enumerateObjectsUsingBlock:^(ItemModel *action, NSUInteger idx, BOOL * _Nonnull stop) {
+        NSArray *matchedArray = [action.subItems matchedArrayByObjectName:ksCustomRadioButtonStatus condition:YES];
+        
+        if (!matchedArray.count) {
+            [_actions removeObject:action];
+        }
+    }];
+    
+    [_tableView reloadData];
+}
+
+#pragma mark - CustomTextView Delegate
+
+- (BOOL)textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString *)text {
+    _btnPushAdd.hidden = textView.text.length > 0;
+
+    NSLog(@"%s\n %zd", __PRETTY_FUNCTION__, textView.text.length);
+    
+    return textView.text.length < 120;
+}
+
+#pragma mark - UI Events
+
+
 - (IBAction)btnConfirmTouched:(id)sender {
     //validate
 
@@ -344,4 +487,5 @@
 
 
 
+
 @end

+ 16 - 2
kneet2/Classes/ViewControllers/ThingsScreens/ModifySecureKeyPopupView.xib

@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="7706" systemVersion="14E46" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
     <dependencies>
         <deployment identifier="iOS"/>
-        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="7703"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/>
     </dependencies>
     <objects>
         <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
@@ -13,6 +13,7 @@
             <subviews>
                 <view alpha="0.29999999999999999" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4c3-gb-BwR" userLabel="maskView">
                     <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
+                    <animations/>
                     <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
                 </view>
                 <view contentMode="scaleToFill" placeholderIntrinsicWidth="300" placeholderIntrinsicHeight="282" translatesAutoresizingMaskIntoConstraints="NO" id="sqq-aQ-dqD" userLabel="popUpView">
@@ -23,9 +24,11 @@
                             <subviews>
                                 <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="5X6-Mj-lUl" userLabel="View - BgColor">
                                     <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
+                                    <animations/>
                                     <color key="backgroundColor" red="1" green="0.43137254899999999" blue="0.16862745100000001" alpha="1" colorSpace="calibratedRGB"/>
                                 </view>
                             </subviews>
+                            <animations/>
                             <color key="backgroundColor" red="0.43921568630000002" green="0.43921568630000002" blue="0.43921568630000002" alpha="1" colorSpace="calibratedRGB"/>
                             <constraints>
                                 <constraint firstAttribute="bottom" secondItem="5X6-Mj-lUl" secondAttribute="bottom" constant="51" id="EuK-Ng-m4N">
@@ -72,6 +75,7 @@
                                     <subviews>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Title" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IE2-24-gHl" customClass="CustomLabel">
                                             <rect key="frame" x="0.0" y="-21" width="42" height="21"/>
+                                            <animations/>
                                             <constraints>
                                                 <constraint firstAttribute="height" constant="63" id="Fcb-73-xKX">
                                                     <variation key="heightClass=regular-widthClass=compact" constant="64"/>
@@ -95,6 +99,7 @@
                                             </variation>
                                         </label>
                                     </subviews>
+                                    <animations/>
                                     <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="44" id="1fj-XN-uH0">
@@ -141,6 +146,7 @@
                                     <subviews>
                                         <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="보안키 입력" textAlignment="center" minimumFontSize="17" background="tp_01_img_input_bg_02" translatesAutoresizingMaskIntoConstraints="NO" id="5tn-6U-yYu" userLabel="txt - group" customClass="CustomTextField2">
                                             <rect key="frame" x="57" y="288" width="200" height="32"/>
+                                            <animations/>
                                             <constraints>
                                                 <constraint firstAttribute="height" constant="32" id="BdX-Sd-nR2"/>
                                                 <constraint firstAttribute="width" constant="200" id="yAI-l4-Tvk"/>
@@ -171,6 +177,7 @@
                                         </textField>
                                         <textField opaque="NO" clipsSubviews="YES" contentMode="scaleToFill" contentHorizontalAlignment="left" contentVerticalAlignment="center" placeholder="보안키 재확인" textAlignment="center" minimumFontSize="17" background="tp_01_img_input_bg_02" translatesAutoresizingMaskIntoConstraints="NO" id="4NC-al-78P" userLabel="txt - group" customClass="CustomTextField2">
                                             <rect key="frame" x="57" y="288" width="200" height="32"/>
+                                            <animations/>
                                             <constraints>
                                                 <constraint firstAttribute="height" constant="32" id="DHT-SD-vXn"/>
                                                 <constraint firstAttribute="width" constant="200" id="Raa-9x-w6j"/>
@@ -201,6 +208,7 @@
                                         </textField>
                                         <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="pQw-XP-coK" customClass="CustomLabel">
                                             <rect key="frame" x="0.0" y="-21" width="42" height="21"/>
+                                            <animations/>
                                             <string key="text">보안키를 안전하게 설정할수록
 다른 사람이 장치를 함부로
 등록할 수 없게 보호할 수 있습니다</string>
@@ -209,6 +217,7 @@
                                             <nil key="highlightedColor"/>
                                         </label>
                                     </subviews>
+                                    <animations/>
                                     <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
                                     <constraints>
                                         <constraint firstItem="4NC-al-78P" firstAttribute="centerX" secondItem="5tn-6U-yYu" secondAttribute="centerX" id="21L-g5-bR2"/>
@@ -263,6 +272,7 @@
                                 </view>
                                 <button opaque="NO" contentMode="scaleToFill" placeholderIntrinsicWidth="161" placeholderIntrinsicHeight="50" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="FKG-xS-HlM" customClass="CustomButton">
                                     <rect key="frame" x="-23" y="-15" width="46" height="30"/>
+                                    <animations/>
                                     <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
                                     <constraints>
                                         <constraint firstAttribute="width" relation="greaterThanOrEqual" constant="149" id="BNE-7a-kbD">
@@ -293,6 +303,7 @@
                                 </button>
                                 <button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" placeholderIntrinsicWidth="161" placeholderIntrinsicHeight="50" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="EtP-9O-R3A" customClass="CustomButton">
                                     <rect key="frame" x="-23" y="-15" width="46" height="30"/>
+                                    <animations/>
                                     <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
                                     <constraints>
                                         <constraint firstAttribute="height" constant="44" id="L9v-r3-6MJ">
@@ -319,6 +330,7 @@
                                     </connections>
                                 </button>
                             </subviews>
+                            <animations/>
                             <constraints>
                                 <constraint firstItem="FKG-xS-HlM" firstAttribute="top" secondItem="Mw5-GF-3oQ" secondAttribute="bottom" constant="1" id="99O-VT-gxI">
                                     <variation key="heightClass=regular-widthClass=compact" constant="1"/>
@@ -400,6 +412,7 @@
                             </variation>
                         </view>
                     </subviews>
+                    <animations/>
                     <constraints>
                         <constraint firstAttribute="bottom" secondItem="3Np-sH-ysD" secondAttribute="bottom" constant="1" id="4tu-Yz-TS5">
                             <variation key="heightClass=regular-widthClass=compact" constant="1"/>
@@ -450,6 +463,7 @@
                     </variation>
                 </view>
             </subviews>
+            <animations/>
             <constraints>
                 <constraint firstAttribute="centerX" secondItem="4c3-gb-BwR" secondAttribute="centerX" id="0tG-Bd-2ic"/>
                 <constraint firstAttribute="trailing" secondItem="4c3-gb-BwR" secondAttribute="trailing" id="F9j-6m-8Sq"/>

+ 39 - 0
kneet2/Classes/ViewControllers/ThingsScreens/TriggerSelectPopupView.h

@@ -0,0 +1,39 @@
+//
+//  TriggerSelectPopupView.h
+//  kneet2
+//
+//  Created by Jason Lee on 11/23/15.
+//  Copyright (c) 2015 ntels. All rights reserved.
+//
+
+@import UIKit;
+#import "CustomAlertView.h"
+#import "JDViewController.h"
+
+@class CustomButton;
+@class CustomLabel;
+
+@interface TriggerSelectPopupView : CustomAlertView
+
+@property (weak, nonatomic) NSMutableArray<ItemModel> *refTriggers;
+@property (weak, nonatomic) NSMutableArray<ItemModel> *refDevices;
+@property (weak, nonatomic, readonly) NSArray<ItemModel> *selectedItems;
+
+@property (strong, nonatomic) NSString *typeCode;
+
+//properties
+@property (weak, nonatomic) IBOutlet CustomLabel *lblTimer;
+@property (weak, nonatomic) IBOutlet CustomLabel *lblSun;
+@property (weak, nonatomic) IBOutlet CustomLabel *lblHeat;
+@property (weak, nonatomic) IBOutlet CustomLabel *lblDevice;
+
+//methods
+- (id)initFromNib;
+
+- (IBAction)btnTimerTouched:(id)sender;
+- (IBAction)btnSunTouched:(id)sender;
+- (IBAction)btnHeatTouched:(id)sender;
+- (IBAction)btnDeviceTouched:(id)sender;
+
+
+@end

+ 114 - 0
kneet2/Classes/ViewControllers/ThingsScreens/TriggerSelectPopupView.m

@@ -0,0 +1,114 @@
+//
+//  TriggerSelectPopupView.m
+//  kneet2
+//
+//  Created by Jason Lee on 11/23/15.
+//  Copyright (c) 2015 ntels. All rights reserved.
+//
+#import "JDObject.h"
+
+#import "CustomLabel.h"
+#import "CustomButton.h"
+
+#import "TriggerSelectPopupView.h"
+#import "DeviceSelectPopupView.h"
+#import "DeviceNodePopupView.h"
+
+@interface TriggerSelectPopupView () {
+    
+    NSMutableArray<ItemModel> *_checkedItems;
+}
+
+@end
+
+@implementation TriggerSelectPopupView
+
+- (id)initFromNib {
+
+    for (UIView *view in [CommonUtil nibViews:@"TriggerSelectPopupView"]) {
+        if ([view isKindOfClass:[TriggerSelectPopupView class]]) {
+            self = (TriggerSelectPopupView *)view;
+
+            //XIB의 경우, 현재 화면 사이즈로 맞춰줘야 함.
+            self.frame = [UIScreen mainScreen].bounds;
+            
+            [_lblTimer addTouchEventHandler:^(id label) {
+                [self btnTimerTouched:nil];
+            }];
+            
+            [_lblSun addTouchEventHandler:^(id label) {
+                [self btnSunTouched:nil];
+            }];
+            
+            [_lblHeat addTouchEventHandler:^(id label) {
+                [self btnHeatTouched:nil];
+            }];
+            
+            [_lblDevice addTouchEventHandler:^(id label) {
+                [self btnDeviceTouched:nil];
+            }];
+            
+            
+            //Localization
+            [self.btnConfirm setTitle:NSLocalizedString(@"확인", @"확인") forState:UIControlStateNormal];
+            [self.btnCancel setTitle:NSLocalizedString(@"취소", @"취소") forState:UIControlStateNormal];
+        }
+    }
+
+    return self;
+}
+
+- (void)didMoveToSuperview {
+    
+}
+
+#pragma mark - Main Logic
+
+
+#pragma mark - UI Events
+
+- (IBAction)btnTimerTouched:(id)sender {
+    
+}
+
+- (IBAction)btnSunTouched:(id)sender {
+    
+}
+
+- (IBAction)btnHeatTouched:(id)sender {
+    
+}
+
+- (IBAction)btnDeviceTouched:(id)sender {
+    
+    DeviceSelectPopupView *dpopup = [[DeviceSelectPopupView alloc] initFromNib];
+    dpopup.refDevices = _refDevices;
+    dpopup.typeCode = ksItemTypeCodeTrigger;
+    
+    [dpopup showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) {
+        if (buttonIndex == 0) {//ok
+            DeviceNodePopupView *npopup = [[DeviceNodePopupView alloc] initFromNib];
+            npopup.refDevice = dpopup.selectedDevices[0];
+            npopup.typeCode = ksItemTypeCodeTrigger;
+            
+            [npopup showWithCompletion:^(CustomAlertView *alertView, NSInteger buttonIndex) {
+                //action add
+                if (buttonIndex == 0) {//OK
+                    npopup.refDevice.itemSubTypeCode = ksItemSubTypeCodeDevice; //트리거 타입 설정
+                    [_refTriggers addObject:npopup.refDevice];
+                    [self btnConfirmTouched:nil];
+                }
+            }];
+        }
+    }];
+}
+
+- (IBAction)btnConfirmTouched:(id)sender {
+    //validate
+    
+    [super btnConfirmTouched:sender];
+}
+
+
+
+@end

+ 796 - 0
kneet2/Classes/ViewControllers/ThingsScreens/TriggerSelectPopupView.xib

@@ -0,0 +1,796 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<document type="com.apple.InterfaceBuilder3.CocoaTouch.XIB" version="3.0" toolsVersion="9060" systemVersion="15B42" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES">
+    <dependencies>
+        <deployment identifier="iOS"/>
+        <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="9051"/>
+    </dependencies>
+    <objects>
+        <placeholder placeholderIdentifier="IBFilesOwner" id="-1" userLabel="File's Owner"/>
+        <placeholder placeholderIdentifier="IBFirstResponder" id="-2" customClass="UIResponder"/>
+        <view contentMode="scaleToFill" id="qLf-va-EAG" customClass="TriggerSelectPopupView">
+            <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
+            <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
+            <subviews>
+                <view alpha="0.29999999999999999" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="4c3-gb-BwR" userLabel="maskView">
+                    <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
+                    <animations/>
+                    <color key="backgroundColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
+                </view>
+                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="sqq-aQ-dqD" userLabel="popUpView">
+                    <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
+                    <subviews>
+                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="3Np-sH-ysD" userLabel="ContainerView">
+                            <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
+                            <subviews>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="7nf-Ia-7Kq" userLabel="View - Title">
+                                    <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
+                                    <subviews>
+                                        <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="장치 선택" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="IE2-24-gHl" customClass="CustomLabel">
+                                            <rect key="frame" x="0.0" y="-21" width="42" height="21"/>
+                                            <animations/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="64" id="gmY-Rb-Qao"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" type="boldSystem" pointSize="18"/>
+                                            <color key="textColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                            <nil key="highlightedColor"/>
+                                            <variation key="default">
+                                                <mask key="constraints">
+                                                    <exclude reference="gmY-Rb-Qao"/>
+                                                </mask>
+                                            </variation>
+                                            <variation key="heightClass=regular-widthClass=compact">
+                                                <mask key="constraints">
+                                                    <include reference="gmY-Rb-Qao"/>
+                                                </mask>
+                                            </variation>
+                                        </label>
+                                    </subviews>
+                                    <animations/>
+                                    <color key="backgroundColor" red="0.95686274510000002" green="0.30588235289999999" blue="0.3294117647" alpha="1" colorSpace="calibratedRGB"/>
+                                    <constraints>
+                                        <constraint firstAttribute="height" constant="44" id="1fj-XN-uH0">
+                                            <variation key="heightClass=regular-widthClass=compact" constant="64"/>
+                                        </constraint>
+                                        <constraint firstItem="IE2-24-gHl" firstAttribute="leading" secondItem="7nf-Ia-7Kq" secondAttribute="leading" id="98Q-bq-Oq7">
+                                            <variation key="heightClass=regular-widthClass=compact" constant="20"/>
+                                        </constraint>
+                                        <constraint firstItem="IE2-24-gHl" firstAttribute="top" secondItem="7nf-Ia-7Kq" secondAttribute="top" id="Ldj-nV-yrM">
+                                            <variation key="heightClass=regular-widthClass=compact" constant="0.0"/>
+                                        </constraint>
+                                        <constraint firstAttribute="trailing" secondItem="IE2-24-gHl" secondAttribute="trailing" id="mUY-4l-GjT">
+                                            <variation key="heightClass=regular-widthClass=compact" constant="-8"/>
+                                        </constraint>
+                                        <constraint firstAttribute="bottom" secondItem="IE2-24-gHl" secondAttribute="bottom" id="yzV-EQ-HeM">
+                                            <variation key="heightClass=regular-widthClass=compact" constant="0.0"/>
+                                        </constraint>
+                                    </constraints>
+                                    <variation key="default">
+                                        <mask key="subviews">
+                                            <exclude reference="IE2-24-gHl"/>
+                                        </mask>
+                                        <mask key="constraints">
+                                            <exclude reference="1fj-XN-uH0"/>
+                                            <exclude reference="98Q-bq-Oq7"/>
+                                            <exclude reference="Ldj-nV-yrM"/>
+                                            <exclude reference="mUY-4l-GjT"/>
+                                            <exclude reference="yzV-EQ-HeM"/>
+                                        </mask>
+                                    </variation>
+                                    <variation key="heightClass=regular-widthClass=compact">
+                                        <mask key="subviews">
+                                            <include reference="IE2-24-gHl"/>
+                                        </mask>
+                                        <mask key="constraints">
+                                            <exclude reference="1fj-XN-uH0"/>
+                                            <include reference="98Q-bq-Oq7"/>
+                                            <include reference="Ldj-nV-yrM"/>
+                                            <include reference="mUY-4l-GjT"/>
+                                            <include reference="yzV-EQ-HeM"/>
+                                        </mask>
+                                    </variation>
+                                </view>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Mw5-GF-3oQ" userLabel="View - message">
+                                    <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
+                                    <subviews>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0OT-FD-UTZ" userLabel="View - 시간">
+                                            <rect key="frame" x="0.0" y="0.0" width="240" height="128"/>
+                                            <subviews>
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eX0-P7-FtN" customClass="CustomButton">
+                                                    <rect key="frame" x="-23" y="-15" width="46" height="30"/>
+                                                    <animations/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="75" id="8bD-3u-J7c"/>
+                                                        <constraint firstAttribute="height" constant="75" id="Dmj-Lk-pVq"/>
+                                                    </constraints>
+                                                    <state key="normal" title="시계"/>
+                                                    <variation key="default">
+                                                        <mask key="constraints">
+                                                            <exclude reference="8bD-3u-J7c"/>
+                                                            <exclude reference="Dmj-Lk-pVq"/>
+                                                        </mask>
+                                                    </variation>
+                                                    <variation key="heightClass=regular-widthClass=compact">
+                                                        <mask key="constraints">
+                                                            <include reference="8bD-3u-J7c"/>
+                                                            <include reference="Dmj-Lk-pVq"/>
+                                                        </mask>
+                                                    </variation>
+                                                    <connections>
+                                                        <action selector="btnTimerTouched:" destination="qLf-va-EAG" eventType="touchUpInside" id="Seu-h3-BiY"/>
+                                                    </connections>
+                                                </button>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="이 시간마다" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="vnx-kb-r1r" customClass="CustomLabel">
+                                                    <rect key="frame" x="-42" y="-21" width="42" height="21"/>
+                                                    <animations/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="20" id="es2-gg-Q2m"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                    <variation key="default">
+                                                        <mask key="constraints">
+                                                            <exclude reference="es2-gg-Q2m"/>
+                                                        </mask>
+                                                    </variation>
+                                                    <variation key="heightClass=regular-widthClass=compact">
+                                                        <mask key="constraints">
+                                                            <include reference="es2-gg-Q2m"/>
+                                                        </mask>
+                                                    </variation>
+                                                </label>
+                                            </subviews>
+                                            <animations/>
+                                            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                            <constraints>
+                                                <constraint firstAttribute="trailing" secondItem="vnx-kb-r1r" secondAttribute="trailing" id="Dal-YU-yoW"/>
+                                                <constraint firstItem="eX0-P7-FtN" firstAttribute="centerX" secondItem="0OT-FD-UTZ" secondAttribute="centerX" id="F0g-6z-aIU"/>
+                                                <constraint firstItem="vnx-kb-r1r" firstAttribute="leading" secondItem="0OT-FD-UTZ" secondAttribute="leading" id="KYa-P6-gaS"/>
+                                                <constraint firstAttribute="height" constant="145" id="dww-JG-bHx"/>
+                                                <constraint firstItem="eX0-P7-FtN" firstAttribute="top" secondItem="0OT-FD-UTZ" secondAttribute="top" constant="20" id="eEj-Kk-O23"/>
+                                                <constraint firstItem="vnx-kb-r1r" firstAttribute="top" secondItem="eX0-P7-FtN" secondAttribute="bottom" constant="10" id="gML-rX-9e9"/>
+                                                <constraint firstAttribute="width" constant="115" id="pql-9v-AOE"/>
+                                            </constraints>
+                                            <variation key="default">
+                                                <mask key="subviews">
+                                                    <exclude reference="eX0-P7-FtN"/>
+                                                    <exclude reference="vnx-kb-r1r"/>
+                                                </mask>
+                                                <mask key="constraints">
+                                                    <exclude reference="dww-JG-bHx"/>
+                                                    <exclude reference="pql-9v-AOE"/>
+                                                    <exclude reference="F0g-6z-aIU"/>
+                                                    <exclude reference="eEj-Kk-O23"/>
+                                                    <exclude reference="Dal-YU-yoW"/>
+                                                    <exclude reference="KYa-P6-gaS"/>
+                                                    <exclude reference="gML-rX-9e9"/>
+                                                </mask>
+                                            </variation>
+                                            <variation key="heightClass=regular-widthClass=compact">
+                                                <mask key="subviews">
+                                                    <include reference="eX0-P7-FtN"/>
+                                                    <include reference="vnx-kb-r1r"/>
+                                                </mask>
+                                                <mask key="constraints">
+                                                    <include reference="dww-JG-bHx"/>
+                                                    <include reference="pql-9v-AOE"/>
+                                                    <include reference="F0g-6z-aIU"/>
+                                                    <include reference="eEj-Kk-O23"/>
+                                                    <include reference="Dal-YU-yoW"/>
+                                                    <include reference="KYa-P6-gaS"/>
+                                                    <include reference="gML-rX-9e9"/>
+                                                </mask>
+                                            </variation>
+                                        </view>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="0Zv-tr-QwV" userLabel="View - 해뜰때">
+                                            <rect key="frame" x="0.0" y="0.0" width="240" height="128"/>
+                                            <subviews>
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="o6n-wb-pHO" customClass="CustomButton">
+                                                    <rect key="frame" x="-23" y="-15" width="46" height="30"/>
+                                                    <animations/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="75" id="Pja-t8-TH2"/>
+                                                        <constraint firstAttribute="width" constant="75" id="sK3-1Q-uAQ"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                    <state key="normal" title="해뜰때"/>
+                                                    <variation key="default">
+                                                        <mask key="constraints">
+                                                            <exclude reference="sK3-1Q-uAQ"/>
+                                                            <exclude reference="Pja-t8-TH2"/>
+                                                        </mask>
+                                                    </variation>
+                                                    <variation key="heightClass=regular-widthClass=compact">
+                                                        <mask key="constraints">
+                                                            <include reference="sK3-1Q-uAQ"/>
+                                                            <include reference="Pja-t8-TH2"/>
+                                                        </mask>
+                                                    </variation>
+                                                    <connections>
+                                                        <action selector="btnSunTouched:" destination="qLf-va-EAG" eventType="touchUpInside" id="iV3-zn-hZY"/>
+                                                    </connections>
+                                                </button>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="해뜰때 / 질때" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Clq-Jx-xBD" customClass="CustomLabel">
+                                                    <rect key="frame" x="-42" y="-21" width="42" height="21"/>
+                                                    <animations/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="20" id="qSj-gf-vMF"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                    <variation key="default">
+                                                        <mask key="constraints">
+                                                            <exclude reference="qSj-gf-vMF"/>
+                                                        </mask>
+                                                    </variation>
+                                                    <variation key="heightClass=regular-widthClass=compact">
+                                                        <mask key="constraints">
+                                                            <include reference="qSj-gf-vMF"/>
+                                                        </mask>
+                                                    </variation>
+                                                </label>
+                                            </subviews>
+                                            <animations/>
+                                            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                            <constraints>
+                                                <constraint firstItem="Clq-Jx-xBD" firstAttribute="top" secondItem="o6n-wb-pHO" secondAttribute="bottom" constant="10" id="4aq-WS-buH"/>
+                                                <constraint firstItem="o6n-wb-pHO" firstAttribute="top" secondItem="0Zv-tr-QwV" secondAttribute="top" constant="20" id="E5l-Rk-CDL"/>
+                                                <constraint firstAttribute="trailing" secondItem="Clq-Jx-xBD" secondAttribute="trailing" id="P3Y-tQ-6JK"/>
+                                                <constraint firstAttribute="height" constant="145" id="bTe-km-mIr"/>
+                                                <constraint firstAttribute="width" constant="115" id="kr0-Xc-eDc"/>
+                                                <constraint firstItem="o6n-wb-pHO" firstAttribute="centerX" secondItem="0Zv-tr-QwV" secondAttribute="centerX" id="nYN-7d-yZO"/>
+                                                <constraint firstItem="Clq-Jx-xBD" firstAttribute="leading" secondItem="0Zv-tr-QwV" secondAttribute="leading" id="y9L-bH-Eo9"/>
+                                            </constraints>
+                                            <variation key="default">
+                                                <mask key="subviews">
+                                                    <exclude reference="o6n-wb-pHO"/>
+                                                    <exclude reference="Clq-Jx-xBD"/>
+                                                </mask>
+                                                <mask key="constraints">
+                                                    <exclude reference="bTe-km-mIr"/>
+                                                    <exclude reference="kr0-Xc-eDc"/>
+                                                    <exclude reference="E5l-Rk-CDL"/>
+                                                    <exclude reference="nYN-7d-yZO"/>
+                                                    <exclude reference="4aq-WS-buH"/>
+                                                    <exclude reference="P3Y-tQ-6JK"/>
+                                                    <exclude reference="y9L-bH-Eo9"/>
+                                                </mask>
+                                            </variation>
+                                            <variation key="heightClass=regular-widthClass=compact">
+                                                <mask key="subviews">
+                                                    <include reference="o6n-wb-pHO"/>
+                                                    <include reference="Clq-Jx-xBD"/>
+                                                </mask>
+                                                <mask key="constraints">
+                                                    <include reference="bTe-km-mIr"/>
+                                                    <include reference="kr0-Xc-eDc"/>
+                                                    <include reference="E5l-Rk-CDL"/>
+                                                    <include reference="nYN-7d-yZO"/>
+                                                    <include reference="4aq-WS-buH"/>
+                                                    <include reference="P3Y-tQ-6JK"/>
+                                                    <include reference="y9L-bH-Eo9"/>
+                                                </mask>
+                                            </variation>
+                                        </view>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="zjW-My-q2G" userLabel="View - 온도">
+                                            <rect key="frame" x="0.0" y="0.0" width="240" height="128"/>
+                                            <subviews>
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JJ2-uP-efJ" customClass="CustomButton">
+                                                    <rect key="frame" x="-23" y="-15" width="46" height="30"/>
+                                                    <animations/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="width" constant="75" id="Bqg-Ku-XP4"/>
+                                                        <constraint firstAttribute="height" constant="75" id="pFJ-kL-Ldq"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                    <state key="normal" title="온도"/>
+                                                    <variation key="default">
+                                                        <mask key="constraints">
+                                                            <exclude reference="Bqg-Ku-XP4"/>
+                                                            <exclude reference="pFJ-kL-Ldq"/>
+                                                        </mask>
+                                                    </variation>
+                                                    <variation key="heightClass=regular-widthClass=compact">
+                                                        <mask key="constraints">
+                                                            <include reference="Bqg-Ku-XP4"/>
+                                                            <include reference="pFJ-kL-Ldq"/>
+                                                        </mask>
+                                                    </variation>
+                                                    <connections>
+                                                        <action selector="btnHeatTouched:" destination="qLf-va-EAG" eventType="touchUpInside" id="aEH-M7-TdR"/>
+                                                    </connections>
+                                                </button>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="더울때 / 추울때" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YVA-9B-Oh0" customClass="CustomLabel">
+                                                    <rect key="frame" x="-42" y="-21" width="42" height="21"/>
+                                                    <animations/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="20" id="Ng5-WX-EYA"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                    <variation key="default">
+                                                        <mask key="constraints">
+                                                            <exclude reference="Ng5-WX-EYA"/>
+                                                        </mask>
+                                                    </variation>
+                                                    <variation key="heightClass=regular-widthClass=compact">
+                                                        <mask key="constraints">
+                                                            <include reference="Ng5-WX-EYA"/>
+                                                        </mask>
+                                                    </variation>
+                                                </label>
+                                            </subviews>
+                                            <animations/>
+                                            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                            <constraints>
+                                                <constraint firstItem="JJ2-uP-efJ" firstAttribute="top" secondItem="zjW-My-q2G" secondAttribute="top" constant="20" id="0GV-0N-8po"/>
+                                                <constraint firstItem="YVA-9B-Oh0" firstAttribute="top" secondItem="JJ2-uP-efJ" secondAttribute="bottom" constant="10" id="0Gf-oJ-No4"/>
+                                                <constraint firstItem="YVA-9B-Oh0" firstAttribute="leading" secondItem="zjW-My-q2G" secondAttribute="leading" id="8S9-EU-knM"/>
+                                                <constraint firstAttribute="trailing" secondItem="YVA-9B-Oh0" secondAttribute="trailing" id="DMY-lz-kyE"/>
+                                                <constraint firstItem="JJ2-uP-efJ" firstAttribute="centerX" secondItem="zjW-My-q2G" secondAttribute="centerX" id="JG5-ZQ-Mp4"/>
+                                                <constraint firstAttribute="height" constant="145" id="Qsk-jt-kac"/>
+                                                <constraint firstAttribute="width" constant="115" id="u1B-jg-XYD"/>
+                                            </constraints>
+                                            <variation key="default">
+                                                <mask key="subviews">
+                                                    <exclude reference="JJ2-uP-efJ"/>
+                                                    <exclude reference="YVA-9B-Oh0"/>
+                                                </mask>
+                                                <mask key="constraints">
+                                                    <exclude reference="Qsk-jt-kac"/>
+                                                    <exclude reference="u1B-jg-XYD"/>
+                                                    <exclude reference="0GV-0N-8po"/>
+                                                    <exclude reference="JG5-ZQ-Mp4"/>
+                                                    <exclude reference="0Gf-oJ-No4"/>
+                                                    <exclude reference="8S9-EU-knM"/>
+                                                    <exclude reference="DMY-lz-kyE"/>
+                                                </mask>
+                                            </variation>
+                                            <variation key="heightClass=regular-widthClass=compact">
+                                                <mask key="subviews">
+                                                    <include reference="JJ2-uP-efJ"/>
+                                                    <include reference="YVA-9B-Oh0"/>
+                                                </mask>
+                                                <mask key="constraints">
+                                                    <include reference="Qsk-jt-kac"/>
+                                                    <include reference="u1B-jg-XYD"/>
+                                                    <include reference="0GV-0N-8po"/>
+                                                    <include reference="JG5-ZQ-Mp4"/>
+                                                    <include reference="0Gf-oJ-No4"/>
+                                                    <include reference="8S9-EU-knM"/>
+                                                    <include reference="DMY-lz-kyE"/>
+                                                </mask>
+                                            </variation>
+                                        </view>
+                                        <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="vIX-XW-52n" userLabel="View - 장치">
+                                            <rect key="frame" x="0.0" y="0.0" width="240" height="128"/>
+                                            <subviews>
+                                                <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zl9-Fx-jTa" customClass="CustomButton">
+                                                    <rect key="frame" x="-23" y="-15" width="46" height="30"/>
+                                                    <animations/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="75" id="F4e-l8-Sfw"/>
+                                                        <constraint firstAttribute="width" constant="75" id="dnz-NV-3tj"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                    <state key="normal" title="장치"/>
+                                                    <variation key="default">
+                                                        <mask key="constraints">
+                                                            <exclude reference="dnz-NV-3tj"/>
+                                                            <exclude reference="F4e-l8-Sfw"/>
+                                                        </mask>
+                                                    </variation>
+                                                    <variation key="heightClass=regular-widthClass=compact">
+                                                        <mask key="constraints">
+                                                            <include reference="dnz-NV-3tj"/>
+                                                            <include reference="F4e-l8-Sfw"/>
+                                                        </mask>
+                                                    </variation>
+                                                    <connections>
+                                                        <action selector="btnDeviceTouched:" destination="qLf-va-EAG" eventType="touchUpInside" id="Yiu-w0-hBu"/>
+                                                    </connections>
+                                                </button>
+                                                <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="장치 상태가 바뀔때" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="SBo-kw-gd5" customClass="CustomLabel">
+                                                    <rect key="frame" x="-42" y="-21" width="42" height="21"/>
+                                                    <animations/>
+                                                    <constraints>
+                                                        <constraint firstAttribute="height" constant="20" id="WRt-Hd-C1z"/>
+                                                    </constraints>
+                                                    <fontDescription key="fontDescription" type="system" pointSize="15"/>
+                                                    <color key="textColor" red="0.0" green="0.0" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                                    <nil key="highlightedColor"/>
+                                                    <variation key="default">
+                                                        <mask key="constraints">
+                                                            <exclude reference="WRt-Hd-C1z"/>
+                                                        </mask>
+                                                    </variation>
+                                                    <variation key="heightClass=regular-widthClass=compact">
+                                                        <mask key="constraints">
+                                                            <include reference="WRt-Hd-C1z"/>
+                                                        </mask>
+                                                    </variation>
+                                                </label>
+                                            </subviews>
+                                            <animations/>
+                                            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                            <constraints>
+                                                <constraint firstItem="zl9-Fx-jTa" firstAttribute="top" secondItem="vIX-XW-52n" secondAttribute="top" constant="20" id="8GD-vk-Vr3"/>
+                                                <constraint firstItem="SBo-kw-gd5" firstAttribute="leading" secondItem="vIX-XW-52n" secondAttribute="leading" id="EY8-S9-QAJ"/>
+                                                <constraint firstAttribute="width" constant="115" id="Hbq-8C-KTG"/>
+                                                <constraint firstAttribute="height" constant="145" id="Ql0-JZ-6Rx"/>
+                                                <constraint firstItem="SBo-kw-gd5" firstAttribute="top" secondItem="zl9-Fx-jTa" secondAttribute="bottom" constant="10" id="YFq-rk-PtA"/>
+                                                <constraint firstAttribute="trailing" secondItem="SBo-kw-gd5" secondAttribute="trailing" id="rCU-v4-1iG"/>
+                                                <constraint firstItem="zl9-Fx-jTa" firstAttribute="centerX" secondItem="vIX-XW-52n" secondAttribute="centerX" id="rdz-HV-tAQ"/>
+                                            </constraints>
+                                            <variation key="default">
+                                                <mask key="subviews">
+                                                    <exclude reference="zl9-Fx-jTa"/>
+                                                    <exclude reference="SBo-kw-gd5"/>
+                                                </mask>
+                                                <mask key="constraints">
+                                                    <exclude reference="Hbq-8C-KTG"/>
+                                                    <exclude reference="Ql0-JZ-6Rx"/>
+                                                    <exclude reference="8GD-vk-Vr3"/>
+                                                    <exclude reference="rdz-HV-tAQ"/>
+                                                    <exclude reference="EY8-S9-QAJ"/>
+                                                    <exclude reference="YFq-rk-PtA"/>
+                                                    <exclude reference="rCU-v4-1iG"/>
+                                                </mask>
+                                            </variation>
+                                            <variation key="heightClass=regular-widthClass=compact">
+                                                <mask key="subviews">
+                                                    <include reference="zl9-Fx-jTa"/>
+                                                    <include reference="SBo-kw-gd5"/>
+                                                </mask>
+                                                <mask key="constraints">
+                                                    <include reference="Hbq-8C-KTG"/>
+                                                    <include reference="Ql0-JZ-6Rx"/>
+                                                    <include reference="8GD-vk-Vr3"/>
+                                                    <include reference="rdz-HV-tAQ"/>
+                                                    <include reference="EY8-S9-QAJ"/>
+                                                    <include reference="YFq-rk-PtA"/>
+                                                    <include reference="rCU-v4-1iG"/>
+                                                </mask>
+                                            </variation>
+                                        </view>
+                                    </subviews>
+                                    <animations/>
+                                    <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                    <constraints>
+                                        <constraint firstItem="0OT-FD-UTZ" firstAttribute="top" secondItem="Mw5-GF-3oQ" secondAttribute="top" constant="20" id="32A-8I-Qcn"/>
+                                        <constraint firstAttribute="trailing" secondItem="vIX-XW-52n" secondAttribute="trailing" constant="15" id="DHB-gs-bdR"/>
+                                        <constraint firstAttribute="bottom" secondItem="vIX-XW-52n" secondAttribute="bottom" constant="20" id="JGf-B7-VUg"/>
+                                        <constraint firstItem="zjW-My-q2G" firstAttribute="leading" secondItem="Mw5-GF-3oQ" secondAttribute="leading" constant="15" id="RSX-bC-l0o"/>
+                                        <constraint firstItem="0OT-FD-UTZ" firstAttribute="leading" secondItem="Mw5-GF-3oQ" secondAttribute="leading" constant="15" id="TAB-Td-fYy"/>
+                                        <constraint firstItem="0Zv-tr-QwV" firstAttribute="leading" secondItem="0OT-FD-UTZ" secondAttribute="trailing" constant="30" id="TSr-KG-iNJ"/>
+                                        <constraint firstItem="vIX-XW-52n" firstAttribute="leading" secondItem="zjW-My-q2G" secondAttribute="trailing" constant="30" id="Weh-x2-wJG"/>
+                                        <constraint firstItem="0OT-FD-UTZ" firstAttribute="leading" secondItem="Mw5-GF-3oQ" secondAttribute="leading" constant="15" id="bv2-Yd-IEZ"/>
+                                        <constraint firstAttribute="trailing" secondItem="0Zv-tr-QwV" secondAttribute="trailing" constant="15" id="cBg-yV-qGA"/>
+                                        <constraint firstItem="vIX-XW-52n" firstAttribute="top" secondItem="0Zv-tr-QwV" secondAttribute="bottom" constant="10" id="jqR-0P-3LD"/>
+                                        <constraint firstAttribute="bottom" secondItem="zjW-My-q2G" secondAttribute="bottom" constant="20" id="m1U-iH-H2q"/>
+                                        <constraint firstItem="0OT-FD-UTZ" firstAttribute="top" secondItem="Mw5-GF-3oQ" secondAttribute="top" constant="20" id="mLg-yx-GYn"/>
+                                        <constraint firstItem="0Zv-tr-QwV" firstAttribute="top" secondItem="Mw5-GF-3oQ" secondAttribute="top" constant="20" id="nKr-eB-NWw"/>
+                                        <constraint firstItem="zjW-My-q2G" firstAttribute="top" secondItem="0OT-FD-UTZ" secondAttribute="bottom" constant="10" id="t3S-US-YbY"/>
+                                    </constraints>
+                                    <variation key="default">
+                                        <mask key="subviews">
+                                            <exclude reference="0OT-FD-UTZ"/>
+                                            <exclude reference="0Zv-tr-QwV"/>
+                                            <exclude reference="zjW-My-q2G"/>
+                                            <exclude reference="vIX-XW-52n"/>
+                                        </mask>
+                                        <mask key="constraints">
+                                            <exclude reference="32A-8I-Qcn"/>
+                                            <exclude reference="TAB-Td-fYy"/>
+                                            <exclude reference="bv2-Yd-IEZ"/>
+                                            <exclude reference="mLg-yx-GYn"/>
+                                            <exclude reference="TSr-KG-iNJ"/>
+                                            <exclude reference="cBg-yV-qGA"/>
+                                            <exclude reference="nKr-eB-NWw"/>
+                                            <exclude reference="RSX-bC-l0o"/>
+                                            <exclude reference="m1U-iH-H2q"/>
+                                            <exclude reference="t3S-US-YbY"/>
+                                            <exclude reference="DHB-gs-bdR"/>
+                                            <exclude reference="JGf-B7-VUg"/>
+                                            <exclude reference="Weh-x2-wJG"/>
+                                            <exclude reference="jqR-0P-3LD"/>
+                                        </mask>
+                                    </variation>
+                                    <variation key="heightClass=regular-widthClass=compact">
+                                        <mask key="subviews">
+                                            <include reference="0OT-FD-UTZ"/>
+                                            <include reference="0Zv-tr-QwV"/>
+                                            <include reference="zjW-My-q2G"/>
+                                            <include reference="vIX-XW-52n"/>
+                                        </mask>
+                                        <mask key="constraints">
+                                            <include reference="32A-8I-Qcn"/>
+                                            <include reference="TAB-Td-fYy"/>
+                                            <exclude reference="bv2-Yd-IEZ"/>
+                                            <exclude reference="mLg-yx-GYn"/>
+                                            <include reference="TSr-KG-iNJ"/>
+                                            <include reference="cBg-yV-qGA"/>
+                                            <include reference="nKr-eB-NWw"/>
+                                            <include reference="RSX-bC-l0o"/>
+                                            <include reference="m1U-iH-H2q"/>
+                                            <include reference="t3S-US-YbY"/>
+                                            <include reference="DHB-gs-bdR"/>
+                                            <include reference="JGf-B7-VUg"/>
+                                            <include reference="Weh-x2-wJG"/>
+                                            <include reference="jqR-0P-3LD"/>
+                                        </mask>
+                                    </variation>
+                                </view>
+                                <view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="bIs-li-8bz" userLabel="View - Buttons">
+                                    <rect key="frame" x="-20" y="156" width="338" height="90"/>
+                                    <subviews>
+                                        <button opaque="NO" contentMode="scaleToFill" placeholderIntrinsicWidth="145" placeholderIntrinsicHeight="70" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="FKG-xS-HlM" customClass="CustomButton">
+                                            <rect key="frame" x="20" y="20" width="149" height="50"/>
+                                            <animations/>
+                                            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                            <constraints>
+                                                <constraint firstAttribute="width" relation="greaterThanOrEqual" id="BNE-7a-kbD"/>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                            <state key="normal" title="확인">
+                                                <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
+                                                <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                            </state>
+                                            <state key="highlighted">
+                                                <color key="titleColor" red="0.73601246840000001" green="0.3682315451" blue="0.0" alpha="1" colorSpace="calibratedRGB"/>
+                                            </state>
+                                            <variation key="default">
+                                                <mask key="constraints">
+                                                    <exclude reference="BNE-7a-kbD"/>
+                                                </mask>
+                                            </variation>
+                                            <variation key="heightClass=regular-widthClass=compact">
+                                                <mask key="constraints">
+                                                    <include reference="BNE-7a-kbD"/>
+                                                </mask>
+                                            </variation>
+                                            <connections>
+                                                <action selector="btnConfirmTouched:" destination="qLf-va-EAG" eventType="touchUpInside" id="JvU-lL-1vP"/>
+                                            </connections>
+                                        </button>
+                                        <button opaque="NO" contentMode="scaleToFill" horizontalHuggingPriority="249" horizontalCompressionResistancePriority="749" placeholderIntrinsicWidth="144" placeholderIntrinsicHeight="70" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="EtP-9O-R3A" customClass="CustomButton">
+                                            <rect key="frame" x="170" y="20" width="148" height="50"/>
+                                            <animations/>
+                                            <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
+                                            <constraints>
+                                                <constraint firstAttribute="height" constant="44" id="L9v-r3-6MJ">
+                                                    <variation key="heightClass=regular-widthClass=compact" constant="50"/>
+                                                </constraint>
+                                            </constraints>
+                                            <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/>
+                                            <state key="normal" title="취소">
+                                                <color key="titleColor" white="0.0" alpha="1" colorSpace="calibratedWhite"/>
+                                                <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
+                                            </state>
+                                            <variation key="default">
+                                                <mask key="constraints">
+                                                    <exclude reference="L9v-r3-6MJ"/>
+                                                </mask>
+                                            </variation>
+                                            <variation key="heightClass=regular-widthClass=compact">
+                                                <mask key="constraints">
+                                                    <exclude reference="L9v-r3-6MJ"/>
+                                                </mask>
+                                            </variation>
+                                            <connections>
+                                                <action selector="btnCancelTouched:" destination="qLf-va-EAG" eventType="touchUpInside" id="g5k-Tn-E33"/>
+                                            </connections>
+                                        </button>
+                                    </subviews>
+                                    <animations/>
+                                    <color key="backgroundColor" white="0.66666666666666663" alpha="1" colorSpace="calibratedWhite"/>
+                                    <constraints>
+                                        <constraint firstItem="FKG-xS-HlM" firstAttribute="leading" secondItem="bIs-li-8bz" secondAttribute="leading" id="Fkf-og-ytd"/>
+                                        <constraint firstAttribute="trailing" secondItem="EtP-9O-R3A" secondAttribute="trailing" id="PjC-cB-YfR"/>
+                                        <constraint firstItem="FKG-xS-HlM" firstAttribute="top" secondItem="bIs-li-8bz" secondAttribute="top" constant="1" id="hu2-xM-w64"/>
+                                        <constraint firstAttribute="bottom" secondItem="FKG-xS-HlM" secondAttribute="bottom" id="l9l-jK-cst"/>
+                                        <constraint firstItem="EtP-9O-R3A" firstAttribute="width" secondItem="FKG-xS-HlM" secondAttribute="width" id="qJo-Xg-EhL">
+                                            <variation key="heightClass=regular-widthClass=compact" constant="-1"/>
+                                        </constraint>
+                                        <constraint firstItem="EtP-9O-R3A" firstAttribute="leading" secondItem="FKG-xS-HlM" secondAttribute="trailing" constant="1" id="rpW-dL-KWs"/>
+                                        <constraint firstAttribute="bottom" secondItem="EtP-9O-R3A" secondAttribute="bottom" id="sQC-dK-bJs"/>
+                                        <constraint firstItem="EtP-9O-R3A" firstAttribute="top" secondItem="bIs-li-8bz" secondAttribute="top" constant="1" id="xsM-oo-x8a"/>
+                                    </constraints>
+                                    <variation key="default">
+                                        <mask key="constraints">
+                                            <exclude reference="Fkf-og-ytd"/>
+                                            <exclude reference="hu2-xM-w64"/>
+                                            <exclude reference="l9l-jK-cst"/>
+                                            <exclude reference="PjC-cB-YfR"/>
+                                            <exclude reference="qJo-Xg-EhL"/>
+                                            <exclude reference="rpW-dL-KWs"/>
+                                            <exclude reference="sQC-dK-bJs"/>
+                                            <exclude reference="xsM-oo-x8a"/>
+                                        </mask>
+                                    </variation>
+                                    <variation key="heightClass=regular-widthClass=compact">
+                                        <mask key="constraints">
+                                            <include reference="Fkf-og-ytd"/>
+                                            <include reference="hu2-xM-w64"/>
+                                            <include reference="l9l-jK-cst"/>
+                                            <include reference="PjC-cB-YfR"/>
+                                            <include reference="qJo-Xg-EhL"/>
+                                            <include reference="rpW-dL-KWs"/>
+                                            <include reference="sQC-dK-bJs"/>
+                                            <include reference="xsM-oo-x8a"/>
+                                        </mask>
+                                    </variation>
+                                </view>
+                            </subviews>
+                            <animations/>
+                            <constraints>
+                                <constraint firstAttribute="trailing" secondItem="7nf-Ia-7Kq" secondAttribute="trailing" id="QFZ-sI-FTg"/>
+                                <constraint firstItem="Mw5-GF-3oQ" firstAttribute="leading" secondItem="3Np-sH-ysD" secondAttribute="leading" id="RFN-Kf-txX"/>
+                                <constraint firstItem="7nf-Ia-7Kq" firstAttribute="top" secondItem="3Np-sH-ysD" secondAttribute="top" id="SU0-8W-BVB">
+                                    <variation key="heightClass=regular-widthClass=compact" constant="0.0"/>
+                                </constraint>
+                                <constraint firstItem="Mw5-GF-3oQ" firstAttribute="centerY" secondItem="3Np-sH-ysD" secondAttribute="centerY" id="UWf-rC-hV7">
+                                    <variation key="heightClass=regular-widthClass=compact" constant="-3.5"/>
+                                </constraint>
+                                <constraint firstAttribute="trailing" secondItem="bIs-li-8bz" secondAttribute="trailing" id="UaC-ap-Ulp"/>
+                                <constraint firstItem="7nf-Ia-7Kq" firstAttribute="trailing" secondItem="Mw5-GF-3oQ" secondAttribute="trailing" id="fbA-Cy-O1e"/>
+                                <constraint firstItem="Mw5-GF-3oQ" firstAttribute="top" secondItem="7nf-Ia-7Kq" secondAttribute="bottom" constant="1" id="hfD-i1-Fhe">
+                                    <variation key="heightClass=regular-widthClass=compact" constant="0.0"/>
+                                </constraint>
+                                <constraint firstItem="7nf-Ia-7Kq" firstAttribute="leading" secondItem="3Np-sH-ysD" secondAttribute="leading" id="j4G-mB-NeU"/>
+                                <constraint firstAttribute="bottom" secondItem="bIs-li-8bz" secondAttribute="bottom" id="oNC-iJ-Za7"/>
+                                <constraint firstItem="bIs-li-8bz" firstAttribute="leading" secondItem="3Np-sH-ysD" secondAttribute="leading" id="s6c-op-QFh"/>
+                                <constraint firstItem="bIs-li-8bz" firstAttribute="top" secondItem="Mw5-GF-3oQ" secondAttribute="bottom" id="wPf-du-0AV"/>
+                            </constraints>
+                            <variation key="default">
+                                <mask key="subviews">
+                                    <exclude reference="7nf-Ia-7Kq"/>
+                                    <exclude reference="Mw5-GF-3oQ"/>
+                                </mask>
+                                <mask key="constraints">
+                                    <exclude reference="UaC-ap-Ulp"/>
+                                    <exclude reference="oNC-iJ-Za7"/>
+                                    <exclude reference="s6c-op-QFh"/>
+                                    <exclude reference="wPf-du-0AV"/>
+                                    <exclude reference="QFZ-sI-FTg"/>
+                                    <exclude reference="SU0-8W-BVB"/>
+                                    <exclude reference="fbA-Cy-O1e"/>
+                                    <exclude reference="j4G-mB-NeU"/>
+                                    <exclude reference="RFN-Kf-txX"/>
+                                    <exclude reference="UWf-rC-hV7"/>
+                                    <exclude reference="hfD-i1-Fhe"/>
+                                </mask>
+                            </variation>
+                            <variation key="heightClass=regular-widthClass=compact">
+                                <mask key="subviews">
+                                    <include reference="7nf-Ia-7Kq"/>
+                                    <include reference="Mw5-GF-3oQ"/>
+                                </mask>
+                                <mask key="constraints">
+                                    <include reference="UaC-ap-Ulp"/>
+                                    <include reference="oNC-iJ-Za7"/>
+                                    <include reference="s6c-op-QFh"/>
+                                    <include reference="wPf-du-0AV"/>
+                                    <include reference="QFZ-sI-FTg"/>
+                                    <include reference="SU0-8W-BVB"/>
+                                    <include reference="fbA-Cy-O1e"/>
+                                    <include reference="j4G-mB-NeU"/>
+                                    <include reference="RFN-Kf-txX"/>
+                                    <include reference="UWf-rC-hV7"/>
+                                    <include reference="hfD-i1-Fhe"/>
+                                </mask>
+                            </variation>
+                        </view>
+                    </subviews>
+                    <animations/>
+                    <constraints>
+                        <constraint firstAttribute="bottom" secondItem="3Np-sH-ysD" secondAttribute="bottom" constant="1" id="4tu-Yz-TS5">
+                            <variation key="heightClass=regular-widthClass=compact" constant="0.0"/>
+                        </constraint>
+                        <constraint firstItem="3Np-sH-ysD" firstAttribute="top" secondItem="sqq-aQ-dqD" secondAttribute="top" constant="1" id="CFR-Ui-y7e">
+                            <variation key="heightClass=regular-widthClass=compact" constant="0.0"/>
+                        </constraint>
+                        <constraint firstAttribute="trailing" secondItem="3Np-sH-ysD" secondAttribute="trailing" constant="66" id="SmO-lm-bHQ">
+                            <variation key="heightClass=regular-widthClass=compact" constant="0.0"/>
+                        </constraint>
+                        <constraint firstItem="3Np-sH-ysD" firstAttribute="leading" secondItem="sqq-aQ-dqD" secondAttribute="leading" constant="66" id="feN-Ai-BHU">
+                            <variation key="heightClass=regular-widthClass=compact" constant="0.0"/>
+                        </constraint>
+                    </constraints>
+                    <variation key="default">
+                        <mask key="subviews">
+                            <exclude reference="3Np-sH-ysD"/>
+                        </mask>
+                        <mask key="constraints">
+                            <exclude reference="4tu-Yz-TS5"/>
+                            <exclude reference="CFR-Ui-y7e"/>
+                            <exclude reference="SmO-lm-bHQ"/>
+                            <exclude reference="feN-Ai-BHU"/>
+                        </mask>
+                    </variation>
+                    <variation key="heightClass=regular-widthClass=compact">
+                        <mask key="subviews">
+                            <include reference="3Np-sH-ysD"/>
+                        </mask>
+                        <mask key="constraints">
+                            <include reference="4tu-Yz-TS5"/>
+                            <include reference="CFR-Ui-y7e"/>
+                            <include reference="SmO-lm-bHQ"/>
+                            <include reference="feN-Ai-BHU"/>
+                        </mask>
+                    </variation>
+                </view>
+            </subviews>
+            <animations/>
+            <constraints>
+                <constraint firstAttribute="centerX" secondItem="4c3-gb-BwR" secondAttribute="centerX" id="0tG-Bd-2ic"/>
+                <constraint firstAttribute="trailing" secondItem="4c3-gb-BwR" secondAttribute="trailing" id="F9j-6m-8Sq"/>
+                <constraint firstAttribute="centerY" secondItem="4c3-gb-BwR" secondAttribute="centerY" id="JX5-Sx-hSJ"/>
+                <constraint firstItem="4c3-gb-BwR" firstAttribute="trailing" secondItem="sqq-aQ-dqD" secondAttribute="trailing" constant="26" id="SNd-cf-17Y">
+                    <variation key="heightClass=regular-widthClass=compact" constant="15"/>
+                </constraint>
+                <constraint firstItem="4c3-gb-BwR" firstAttribute="top" secondItem="qLf-va-EAG" secondAttribute="top" id="TOG-yL-xSq"/>
+                <constraint firstItem="sqq-aQ-dqD" firstAttribute="leading" secondItem="4c3-gb-BwR" secondAttribute="leading" constant="25" id="jNe-AH-9q0">
+                    <variation key="heightClass=regular-widthClass=compact" constant="15"/>
+                </constraint>
+                <constraint firstAttribute="centerY" secondItem="sqq-aQ-dqD" secondAttribute="centerY" constant="12" id="rPN-2q-9iB">
+                    <variation key="heightClass=regular-widthClass=compact" constant="0.0"/>
+                </constraint>
+                <constraint firstAttribute="bottom" secondItem="4c3-gb-BwR" secondAttribute="bottom" id="uc7-M6-ZYJ"/>
+                <constraint firstItem="4c3-gb-BwR" firstAttribute="leading" secondItem="qLf-va-EAG" secondAttribute="leading" id="wPB-Gl-TgQ"/>
+            </constraints>
+            <simulatedScreenMetrics key="simulatedDestinationMetrics" type="retina4"/>
+            <variation key="default">
+                <mask key="subviews">
+                    <exclude reference="4c3-gb-BwR"/>
+                    <exclude reference="sqq-aQ-dqD"/>
+                </mask>
+                <mask key="constraints">
+                    <exclude reference="0tG-Bd-2ic"/>
+                    <exclude reference="F9j-6m-8Sq"/>
+                    <exclude reference="JX5-Sx-hSJ"/>
+                    <exclude reference="SNd-cf-17Y"/>
+                    <exclude reference="TOG-yL-xSq"/>
+                    <exclude reference="uc7-M6-ZYJ"/>
+                    <exclude reference="wPB-Gl-TgQ"/>
+                    <exclude reference="jNe-AH-9q0"/>
+                    <exclude reference="rPN-2q-9iB"/>
+                </mask>
+            </variation>
+            <variation key="heightClass=regular-widthClass=compact">
+                <mask key="subviews">
+                    <include reference="4c3-gb-BwR"/>
+                    <include reference="sqq-aQ-dqD"/>
+                </mask>
+                <mask key="constraints">
+                    <include reference="0tG-Bd-2ic"/>
+                    <include reference="F9j-6m-8Sq"/>
+                    <include reference="JX5-Sx-hSJ"/>
+                    <include reference="SNd-cf-17Y"/>
+                    <include reference="TOG-yL-xSq"/>
+                    <include reference="uc7-M6-ZYJ"/>
+                    <include reference="wPB-Gl-TgQ"/>
+                    <include reference="jNe-AH-9q0"/>
+                    <include reference="rPN-2q-9iB"/>
+                </mask>
+            </variation>
+            <connections>
+                <outlet property="btnCancel" destination="EtP-9O-R3A" id="mr5-zY-bQM"/>
+                <outlet property="btnConfirm" destination="FKG-xS-HlM" id="zTF-29-eYq"/>
+                <outlet property="constraintBtnConfirmWidth" destination="BNE-7a-kbD" id="C9m-XW-2MO"/>
+                <outlet property="containerView" destination="3Np-sH-ysD" id="uJs-dG-r2k"/>
+                <outlet property="lblDevice" destination="SBo-kw-gd5" id="c1v-eI-hLm"/>
+                <outlet property="lblHeat" destination="YVA-9B-Oh0" id="gmc-Hw-lZT"/>
+                <outlet property="lblSun" destination="Clq-Jx-xBD" id="cXN-wh-HbO"/>
+                <outlet property="lblTimer" destination="vnx-kb-r1r" id="ord-jS-mjX"/>
+                <outlet property="lblTitle" destination="IE2-24-gHl" id="DFB-ut-ky2"/>
+                <outlet property="maskingView" destination="4c3-gb-BwR" id="9bJ-5l-qJq"/>
+                <outlet property="popUpView" destination="sqq-aQ-dqD" id="BCO-MT-Cf2"/>
+            </connections>
+            <point key="canvasLocation" x="87" y="297"/>
+        </view>
+    </objects>
+</document>