<< | Index | >>
Experiment (execute update_stock_atc)
UPDATES = [ :update_stock, #:update_suppliers, :update_users, #:update_user_access, :update_group_access, #:update_user_article_prices, #:update_user_article_discounts, #:update_user_group_discounts, #:update_user_volume_prices, :update_stock_atc, :update_sl, :update_atc_classes, :update_fachinfos, ]
Run
masa@masa ~/ywesee/bbmb.ch $ bin/admin ch.bbmb.globopharm> update
Log
BbmbApp::update - updating admin@ywesee.com update: update_stock update_stock done update: update_users update_users done update: update_group_access update_group_access done update: update_stock_atc update_stock_atc done update: update_atc_classes update_atc_classes done update: update_fachinfos update_fachinfos done
Result
Note
Experiment
masa@masa ~/ywesee/bbmb.ch $ bin/admin ch.bbmb.globopharm> users['1'].product('26194').value(:article_descr) -> Accolate 20mg 180 Tabletten ch.bbmb.globopharm> users['1'].product('26194').value(:article_number) -> 26194 ch.bbmb.globopharm> users['1'].product('26194').fachinfo -> ch.bbmb.globopharm> users['1'].product('26194').fachinfo.class -> NilClass
ch.bbmb.globopharm> users['1'].product('26194').value(:article_descr) -> Accolate 20mg 180 Tabletten ch.bbmb.globopharm> users['1'].product('26194').value(:article_number) -> 26194 ch.bbmb.globopharm> users['1'].product('26194').fachinfo -> #<ODDB::FachinfoDocument:0xb2e878c8> ch.bbmb.globopharm> users['1'].product('26194').fachinfo.class -> ODDB::FachinfoDocument
Note
src/model/stock.rb#set_fachinfos
def set_fachinfos(fachinfos) fachinfos.each { |fachinfo| fachinfo.article_codes.each { |codes| if(product = resolve(codes)) if product.frozen? @products[key] = product.dup product = @products[key] end product.fachinfo = fachinfo end } } end
Experiment
def update_fachinfos p "getin update_fachinfos in yaml" #http = Net::HTTP.new(self::class::HTTP_SERVER) docs = nil p "1" http = nil p "2" path = self::class::FACHINFO_PATH p "3" name = File.basename(path) p "4" local = File.expand_path(name, self::class::DATA_DIR) p "5" if(is_newer?(http, path, local) && download(http, path, local)) p "6" self::class::YAML_COLLECTOR.fachinfos(local) { |collector| p "7" docs = collect_dump('fi_dump', :fachinfo_documents, collector) '' # return empty string across drb-boundary } p "8" end p docs p "9" docs end
Result
"getin update_fachinfos in yaml" "1" "2" "3" "4" "5" nil "9"
Note
Experiment
module BBMB class YamlPlugin #BACKUP_PATH = '/var/backup/hotpower/www/oddb.org/data' BACKUP_PATH = '/home/masa/ywesee/bbmb.ch/backup_yaml'
UPDATES = [ #:update_stock, #:update_suppliers, #:update_users, #:update_user_access, #:update_group_access, #:update_user_article_prices, #:update_user_article_discounts, #:update_user_group_discounts, #:update_user_volume_prices, #:update_stock_atc, #:update_sl, #:update_atc_classes, :update_fachinfos, ]
Run
masa@masa ~/ywesee/bbmb.ch $ bin/admin ch.bbmb.globopharm> update
Result
uninitialized constant ODDB::Text::Section (druby://localhost:10004) /home/masa/ywesee/bbmb.ch/src/oddb/yaml.rb:24 (druby://localhost:10004) /usr/lib64/ruby/1.8/yaml.rb:217:in `call' (druby://localhost:10004) /usr/lib64/ruby/1.8/yaml.rb:217:in `transfer' (druby://localhost:10004) /usr/lib64/ruby/1.8/yaml.rb:217:in `node_import' (druby://localhost:10004) /usr/lib64/ruby/1.8/yaml.rb:217:in `load_documents' (druby://localhost:10004) /usr/lib64/ruby/1.8/yaml.rb:217:in `each_document' (druby://localhost:10004) /usr/lib64/ruby/1.8/yaml.rb:232:in `load_documents' (druby://localhost:10004) ./src/yaml_collector.rb:35:in `collect_fachinfos' (druby://localhost:10004) src/yaml_oddb.rb:46:in `fachinfos' /home/masa/ywesee/bbmb.ch/src/plugin/yaml.rb:130:in `update_fachinfos' /home/masa/ywesee/bbmb.ch/src/custom/behavior.rb:617:in `update_fachinfos' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:636:in `send' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:636:in `update' /home/masa/ywesee/bbmb.ch/src/custom/behavior.rb:97:in `each' /home/masa/ywesee/bbmb.ch/src/custom/behavior.rb:97:in `updates' /home/masa/ywesee/bbmb.ch/src/model/reseller.rb:48:in `send' /home/masa/ywesee/bbmb.ch/src/model/reseller.rb:48:in `method_missing' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:632:in `update' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:629:in `each' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:629:in `update' (eval):1:in `_admin' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:207:in `initialize' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:207:in `__mnemonic_new__' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:207:in `new' /usr/lib64/ruby/site_ruby/1.8/sbsm/drbserver.rb:55:in `_admin' /usr/lib64/ruby/1.8/drb/drb.rb:1555:in `__send__' /usr/lib64/ruby/1.8/drb/drb.rb:1555:in `perform_without_block' /usr/lib64/ruby/1.8/drb/drb.rb:1515:in `perform' /usr/lib64/ruby/1.8/drb/drb.rb:1589:in `main_loop' /usr/lib64/ruby/1.8/drb/drb.rb:1585:in `loop' /usr/lib64/ruby/1.8/drb/drb.rb:1585:in `main_loop' /usr/lib64/ruby/1.8/drb/drb.rb:1581:in `start' /usr/lib64/ruby/1.8/drb/drb.rb:1581:in `main_loop' /usr/lib64/ruby/1.8/drb/drb.rb:1430:in `run' /usr/lib64/ruby/1.8/drb/drb.rb:1427:in `start' /usr/lib64/ruby/1.8/drb/drb.rb:1427:in `run' /usr/lib64/ruby/1.8/drb/drb.rb:1347:in `initialize' /usr/lib64/ruby/1.8/drb/drb.rb:1627:in `new' /usr/lib64/ruby/1.8/drb/drb.rb:1627:in `start_service' bin/bbmbd:16 bin/bbmbd:15:in `each' bin/bbmbd:15
Experiment
#!/usr/bin/env ruby # YAML -- ODDB -- 17.05.2004 -- hwyss@ywesee.com require 'yaml' require 'oddb/language' #require 'oddb/text' require '/home/masa/ywesee/bbmb.ch/src/oddb/text'
Run
Result
/usr/lib64/ruby/site_ruby/1.8/oddb/text/document.rb:11: superclass mismatch for class Document (TypeError) from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /usr/lib64/ruby/site_ruby/1.8/oddb/text.rb:5 from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /home/masa/ywesee/bbmb.ch/src/oddb/atcclass.rb:5 from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from /home/masa/ywesee/bbmb.ch/src/oddb/yaml.rb:8 from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from ./ext/yaml_oddb/src/yaml_collector.rb:4 from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' from /usr/lib64/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' from ext/yaml_oddb/src/yaml_oddb.rb:9
Note
Experiment (replace oddb/text with the full path)
masa@masa ~/ywesee/bbmb.ch $ grep -r oddb src |grep require src/oddb/atcclass.rb:#require 'oddb/text' src/oddb/atcclass.rb:require '/home/masa/ywesee/bbmb.ch/src/oddb/text' src/oddb/fachinfo.rb:#require 'oddb/text' src/oddb/fachinfo.rb:require '/home/masa/ywesee/bbmb.ch/src/oddb/text' src/oddb/yaml.rb:#require 'oddb/text' src/oddb/yaml.rb:require '/home/masa/ywesee/bbmb.ch/src/oddb/text'
Result
undefined method `join' for {:article_pcode=>"880231", :article_ean13=>"7680426940109"}:Hash /home/masa/ywesee/bbmb.ch/src/model/stock.rb:253:in `set_fachinfos' /home/masa/ywesee/bbmb.ch/src/model/stock.rb:252:in `each' /home/masa/ywesee/bbmb.ch/src/model/stock.rb:252:in `set_fachinfos' /home/masa/ywesee/bbmb.ch/src/model/stock.rb:251:in `each' /home/masa/ywesee/bbmb.ch/src/model/stock.rb:251:in `set_fachinfos' /usr/lib64/ruby/1.8/open-uri.rb:32:in `open_uri_original_open' /usr/lib64/ruby/1.8/open-uri.rb:32:in `open' /home/masa/ywesee/bbmb.ch/src/model/stock.rb:250:in `set_fachinfos' /home/masa/ywesee/bbmb.ch/src/model/reseller.rb:133:in `set_fachinfos' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:233:in `update_fachinfos' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:221:in `execute' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:192:in `runAt' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:220:in `execute' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:105:in `executeCommand' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:102:in `synchronize' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:102:in `executeCommand' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:637:in `send' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:637:in `update' /home/masa/ywesee/bbmb.ch/src/custom/behavior.rb:97:in `each' /home/masa/ywesee/bbmb.ch/src/custom/behavior.rb:97:in `updates' /home/masa/ywesee/bbmb.ch/src/model/reseller.rb:48:in `send' /home/masa/ywesee/bbmb.ch/src/model/reseller.rb:48:in `method_missing' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:632:in `update' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:629:in `each' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:629:in `update' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:207:in `initialize' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:207:in `__mnemonic_new__' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:207:in `new' /usr/lib64/ruby/site_ruby/1.8/sbsm/drbserver.rb:55:in `_admin' /usr/lib64/ruby/1.8/drb/drb.rb:1555:in `__send__' /usr/lib64/ruby/1.8/drb/drb.rb:1555:in `perform_without_block' /usr/lib64/ruby/1.8/drb/drb.rb:1515:in `perform' /usr/lib64/ruby/1.8/drb/drb.rb:1589:in `main_loop' /usr/lib64/ruby/1.8/drb/drb.rb:1585:in `loop' /usr/lib64/ruby/1.8/drb/drb.rb:1585:in `main_loop' /usr/lib64/ruby/1.8/drb/drb.rb:1581:in `start' /usr/lib64/ruby/1.8/drb/drb.rb:1581:in `main_loop' /usr/lib64/ruby/1.8/drb/drb.rb:1430:in `run' /usr/lib64/ruby/1.8/drb/drb.rb:1427:in `start' /usr/lib64/ruby/1.8/drb/drb.rb:1427:in `run' /usr/lib64/ruby/1.8/drb/drb.rb:1347:in `initialize' /usr/lib64/ruby/1.8/drb/drb.rb:1627:in `new' /usr/lib64/ruby/1.8/drb/drb.rb:1627:in `start_service' bin/bbmbd:16 bin/bbmbd:15:in `each' bin/bbmbd:15
Result
Next
Experiment
UPDATES = [ #:update_stock, #:update_suppliers, #:update_users, #:update_user_access, #:update_group_access, #:update_user_article_prices, #:update_user_article_discounts, #:update_user_group_discounts, #:update_user_volume_prices, #:update_stock_atc, #:update_sl, :update_atc_classes, #:update_fachinfos, ]
Result
update: update_atc_classes "getin update_atc_classes in yaml" undefined method `include?' for nil:NilClass /home/masa/ywesee/bbmb.ch/src/model/reseller.rb:122:in `set_atc_classes' /home/masa/ywesee/bbmb.ch/src/model/reseller.rb:121:in `each' /home/masa/ywesee/bbmb.ch/src/model/reseller.rb:121:in `set_atc_classes' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:229:in `update_atc_classes' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:221:in `execute' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:192:in `runAt' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:220:in `execute' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:105:in `executeCommand' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:102:in `synchronize' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:102:in `executeCommand' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:637:in `send' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:637:in `update' /home/masa/ywesee/bbmb.ch/src/custom/behavior.rb:97:in `each' /home/masa/ywesee/bbmb.ch/src/custom/behavior.rb:97:in `updates' /home/masa/ywesee/bbmb.ch/src/model/reseller.rb:48:in `send' /home/masa/ywesee/bbmb.ch/src/model/reseller.rb:48:in `method_missing' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:632:in `update' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:629:in `each' /home/masa/ywesee/bbmb.ch/src/util/bbmbapp.rb:629:in `update' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:207:in `initialize' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:207:in `__mnemonic_new__' /usr/lib64/ruby/site_ruby/1.8/mnemonic/Mnemonic.rb:207:in `new' /usr/lib64/ruby/site_ruby/1.8/sbsm/drbserver.rb:55:in `_admin' /usr/lib64/ruby/1.8/drb/drb.rb:1555:in `__send__' /usr/lib64/ruby/1.8/drb/drb.rb:1555:in `perform_without_block' /usr/lib64/ruby/1.8/drb/drb.rb:1515:in `perform' /usr/lib64/ruby/1.8/drb/drb.rb:1589:in `main_loop' /usr/lib64/ruby/1.8/drb/drb.rb:1585:in `loop' /usr/lib64/ruby/1.8/drb/drb.rb:1585:in `main_loop' /usr/lib64/ruby/1.8/drb/drb.rb:1581:in `start' /usr/lib64/ruby/1.8/drb/drb.rb:1581:in `main_loop' /usr/lib64/ruby/1.8/drb/drb.rb:1430:in `run' /usr/lib64/ruby/1.8/drb/drb.rb:1427:in `start' /usr/lib64/ruby/1.8/drb/drb.rb:1427:in `run' /usr/lib64/ruby/1.8/drb/drb.rb:1347:in `initialize' /usr/lib64/ruby/1.8/drb/drb.rb:1627:in `new' /usr/lib64/ruby/1.8/drb/drb.rb:1627:in `start_service' bin/bbmbd:16 bin/bbmbd:15:in `each' bin/bbmbd:15
Experiment
def set_atc_classes(atcs)
atcs.each { |atc_class|
#unless(@atc_classes.include?(atc_class.code))
unless(atc_classes.include?(atc_class.code))
@atc_classes.store(atc_class.code, atc_class)
end
}
end
Run
masa@masa ~/ywesee/bbmb.ch $ bin/admin ch.bbmb.globopharm> update
Result
Next
Experiment
UPDATES = [ #:update_stock, #:update_suppliers, #:update_users, #:update_user_access, #:update_group_access, #:update_user_article_prices, #:update_user_article_discounts, #:update_user_group_discounts, #:update_user_volume_prices, #:update_stock_atc, :update_sl, #:update_atc_classes, #:update_fachinfos, ]
Result
Next
Experiment
UPDATES = [ :update_stock, #:update_suppliers, :update_users, #:update_user_access, :update_group_access, #:update_user_article_prices, #:update_user_article_discounts, #:update_user_group_discounts, #:update_user_volume_prices, :update_stock_atc, :update_sl, :update_atc_classes, :update_fachinfos, ]
Run
masa@masa ~/ywesee/bbmb.ch $ cd log/mnemonic/ masa@masa ~/ywesee/bbmb.ch/log/mnemonic $ rm *.* masa@masa ~/ywesee/bbmb.ch/log/mnemonic $ cp ~/work/bbmb_data_bak/mnemonic_local_update_all_kund_bak/*.* . masa@masa ~/ywesee/bbmb.ch/log/mnemonic $ cd ../.. masa@masa ~/ywesee/bbmb.ch $ rm data/yaml/*.yaml
ch.bbmb.globopharm> overwrite_customer_ids_by_email '/home/masa/work/bbmb_data_bak/new_data/new_customer_id_ean_email.dat' -> 27 ch.bbmb.globopharm> replace_customer_ids_gag_to_alloga '/home/masa/work/bbmb_data_bak/new_data/actual_gag_ean_allo_user_ids.csv' -> 123 ch.bbmb.globopharm> replace_article_ids_gag_to_alloga '/home/masa/work/bbmb_data_bak/new_data/actual_gag_ean_allo_stock_ids.csv' -> 284 ch.bbmb.globopharm> update
Log
BbmbApp::update - updating admin@ywesee.com update: update_stock update_stock done update: update_users update_users done update: update_group_access update_group_access done update: update_stock_atc "getin update_stock_atc in custom" "getin update_stock_atc" "getin update_atc_sl in yaml" "getin update_stock_atc in bbmbapp" "getin set_stock_atc in reseller" "getin set_atc_classes in stock" update_stock_atc done update: update_sl "getin update_sl in custom" "getin update_sl in yaml" "getin update_sl in bbmbapp" "getin set_sl_entries in reseller" "getin set_sl_entries in stock" update_sl done update: update_atc_classes "getin update_atc_classes in custom" "getin update_atc_classes in yaml" "getin update_atc_classes in bbmbapp" "getin set_atc_classes in reseller" update_atc_classes done update: update_fachinfos "getin update_fachinfos in custom" "getin update_fachinfos in yaml" "getin update_fachinfos in bbmbapp" "getin set_fachinfos in reseller" "getin set_fachinfos in stock" update_fachinfos done
Result
NoMethodError undefined method `heading' for nil:NilClass
error in SBSM::Session#to_html: /de/gag/ddd/state_id/70328976366320/article_number/81000138 NoMethodError undefined method `heading' for nil:NilClass /home/masa/ywesee/bbmb.ch/src/view/chapter.rb:35:in `to_html' /usr/lib64/ruby/site_ruby/1.8/htmlgrid/composite.rb:263:in `to_html' /usr/lib64/ruby/site_ruby/1.8/htmlgrid/template.rb:134:in `to_html' /usr/lib64/ruby/site_ruby/1.8/htmlgrid/template.rb:119:in `call' /usr/lib64/ruby/site_ruby/1.8/htmlgrid/template.rb:119:in `template_tags' /usr/lib64/ruby/site_ruby/1.8/htmlgrid/template.rb:114:in `template_html' (eval):1022:in `body' /usr/lib64/ruby/site_ruby/1.8/htmlgrid/template.rb:112:in `template_html' /usr/lib64/ruby/1.8/cgi.rb:1657:in `html' (eval):1006:in `html' /usr/lib64/ruby/1.8/cgi.rb:1657:in `html' /usr/lib64/ruby/site_ruby/1.8/htmlgrid/template.rb:111:in `template_html' /usr/lib64/ruby/site_ruby/1.8/htmlgrid/template.rb:133:in `to_html' /usr/lib64/ruby/site_ruby/1.8/sbsm/state.rb:197:in `to_html' /usr/lib64/ruby/site_ruby/1.8/sbsm/session.rb:516:in `to_html' /usr/lib64/ruby/site_ruby/1.8/sbsm/session.rb:177:in `drb_process' /usr/lib64/ruby/site_ruby/1.8/sbsm/session.rb:174:in `synchronize' /usr/lib64/ruby/site_ruby/1.8/sbsm/session.rb:174:in `drb_process' /usr/lib64/ruby/1.8/drb/drb.rb:1555:in `__send__' /usr/lib64/ruby/1.8/drb/drb.rb:1555:in `perform_without_block' /usr/lib64/ruby/1.8/drb/drb.rb:1515:in `perform' /usr/lib64/ruby/1.8/drb/drb.rb:1589:in `main_loop' /usr/lib64/ruby/1.8/drb/drb.rb:1585:in `loop' /usr/lib64/ruby/1.8/drb/drb.rb:1585:in `main_loop' /usr/lib64/ruby/1.8/drb/drb.rb:1581:in `start' /usr/lib64/ruby/1.8/drb/drb.rb:1581:in `main_loop' /usr/lib64/ruby/1.8/drb/drb.rb:1430:in `run' /usr/lib64/ruby/1.8/drb/drb.rb:1427:in `start' /usr/lib64/ruby/1.8/drb/drb.rb:1427:in `run' /usr/lib64/ruby/1.8/drb/drb.rb:1347:in `initialize' /usr/lib64/ruby/1.8/drb/drb.rb:1627:in `new' /usr/lib64/ruby/1.8/drb/drb.rb:1627:in `start_service' bin/bbmbd:16 bin/bbmbd:15:in `each' bin/bbmbd:15
Experiment
UPDATES = [ #:update_stock, #:update_suppliers, #:update_users, #:update_user_access, #:update_group_access, #:update_user_article_prices, #:update_user_article_discounts, #:update_user_group_discounts, #:update_user_volume_prices, :update_stock_atc, :update_sl, :update_atc_classes, :update_fachinfos, ]
Run
masa@masa ~/ywesee/bbmb.ch $ cd log/mnemonic/ masa@masa ~/ywesee/bbmb.ch/log/mnemonic $ rm *.* masa@masa ~/ywesee/bbmb.ch/log/mnemonic $ cp ~/work/bbmb_data_bak/mnemonic_local_update_all_kund_bak/*.* . masa@masa ~/ywesee/bbmb.ch/log/mnemonic $ cd ../.. masa@masa ~/ywesee/bbmb.ch $ rm data/yaml/*.yaml
ch.bbmb.globopharm> update
Result
Note